{"version":3,"file":"kotlinx-html-js.js","sources":["collections/Maps.kt","text/regex/RegexExtensions.kt","generated/_Collections.kt","generated/_Arrays.kt","runtime/arrayUtils.kt","generated/_Strings.kt","../../../../../src/commonMain/kotlin/api.kt","../../../../../src/commonMain/kotlin/attributes.kt","text/Strings.kt","../../../../../src/commonMain/kotlin/compatibility.kt","../../../../../src/commonMain/kotlin/generated/gen-consumer-tags.kt","../../../../../src/commonMain/kotlin/generated/gen-tags-d.kt","../../../../../src/commonMain/kotlin/generated/gen-tags-f.kt","../../../../../src/commonMain/kotlin/generated/gen-tag-unions.kt","../../../../../src/commonMain/kotlin/delayed-consumer.kt","../../../../../src/commonMain/kotlin/delegating-map.kt","generated/_Maps.kt","../../../../../src/commonMain/kotlin/exception-consumer.kt","../../../../../src/commonMain/kotlin/filter-consumer.kt","../../../../../src/commonMain/kotlin/finalize-consumer.kt","../../../../../src/commonMain/kotlin/generated/gen-attr-traits.kt","../../../../../src/commonMain/kotlin/generated/gen-entities.kt","../../../../../src/commonMain/kotlin/generated/gen-enums.kt","../../../../../src/commonMain/kotlin/generated/gen-tag-groups.kt","../../../../../src/commonMain/kotlin/generated/gen-tags-a.kt","../../../../../src/commonMain/kotlin/generated/gen-tags-b.kt","../../../../../src/commonMain/kotlin/generated/gen-tags-c.kt","../../../../../src/commonMain/kotlin/generated/gen-tags-e.kt","../../../../../src/commonMain/kotlin/generated/gen-tags-h.kt","../../../../../src/commonMain/kotlin/generated/gen-tags-i.kt","../../../../../src/commonMain/kotlin/generated/gen-tags-k.kt","../../../../../src/commonMain/kotlin/generated/gen-tags-l.kt","../../../../../src/commonMain/kotlin/generated/gen-tags-m.kt","../../../../../src/commonMain/kotlin/generated/gen-tags-n.kt","../../../../../src/commonMain/kotlin/generated/gen-tags-o.kt","../../../../../src/commonMain/kotlin/generated/gen-tags-p.kt","../../../../../src/commonMain/kotlin/generated/gen-tags-q.kt","../../../../../src/commonMain/kotlin/generated/gen-tags-r.kt","../../../../../src/commonMain/kotlin/generated/gen-tags-s.kt","../../../../../src/commonMain/kotlin/generated/gen-tags-t.kt","../../../../../src/commonMain/kotlin/generated/gen-tags-u.kt","../../../../../src/commonMain/kotlin/generated/gen-tags-v.kt","../../../../../src/commonMain/kotlin/htmltag.kt","../../../../../src/commonMain/kotlin/measure-consumer.kt","../../../../../src/commonMain/kotlin/stream.kt","util/Standard.kt","../../../../../src/commonMain/kotlin/trace-consumer.kt","../../../../../src/commonMain/kotlin/util.kt","../../../../../src/jsMain/kotlin/compatibility-js.kt","../../../../../src/jsMain/kotlin/generated/gen-consumer-tags-js.kt","../../../../../src/jsMain/kotlin/dom-js.kt","collections/Collections.kt","kotlin/text/string.kt","../../../../../src/jsMain/kotlin/generated/gen-event-attrs-js.kt","../../../../../src/jsMain/kotlin/injector.kt","../../../../../src/jsMain/kotlin/trace-js.kt","../../../../../src/jsMain/kotlin/utilsImpl-js.kt","../../../../../src/jsMain/kotlin/visit-js.kt","../../../../../src/commonMain/kotlin/generated/gen-attributes.kt"],"sourcesContent":["/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n@file:kotlin.jvm.JvmMultifileClass\n@file:kotlin.jvm.JvmName(\"MapsKt\")\n@file:OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n\npackage kotlin.collections\n\nimport kotlin.contracts.*\n\nprivate object EmptyMap : Map, Serializable {\n private const val serialVersionUID: Long = 8246714829545688274\n\n override fun equals(other: Any?): Boolean = other is Map<*, *> && other.isEmpty()\n override fun hashCode(): Int = 0\n override fun toString(): String = \"{}\"\n\n override val size: Int get() = 0\n override fun isEmpty(): Boolean = true\n\n override fun containsKey(key: Any?): Boolean = false\n override fun containsValue(value: Nothing): Boolean = false\n override fun get(key: Any?): Nothing? = null\n override val entries: Set> get() = EmptySet\n override val keys: Set get() = EmptySet\n override val values: Collection get() = EmptyList\n\n private fun readResolve(): Any = EmptyMap\n}\n\n/**\n * Returns an empty read-only map of specified type.\n *\n * The returned map is serializable (JVM).\n * @sample samples.collections.Maps.Instantiation.emptyReadOnlyMap\n */\npublic fun emptyMap(): Map = @Suppress(\"UNCHECKED_CAST\") (EmptyMap as Map)\n\n/**\n * Returns a new read-only map with the specified contents, given as a list of pairs\n * where the first value is the key and the second is the value.\n *\n * If multiple pairs have the same key, the resulting map will contain the value from the last of those pairs.\n *\n * Entries of the map are iterated in the order they were specified.\n *\n * The returned map is serializable (JVM).\n *\n * @sample samples.collections.Maps.Instantiation.mapFromPairs\n */\npublic fun mapOf(vararg pairs: Pair): Map =\n if (pairs.size > 0) pairs.toMap(LinkedHashMap(mapCapacity(pairs.size))) else emptyMap()\n\n/**\n * Returns an empty read-only map.\n *\n * The returned map is serializable (JVM).\n * @sample samples.collections.Maps.Instantiation.emptyReadOnlyMap\n */\n@kotlin.internal.InlineOnly\npublic inline fun mapOf(): Map = emptyMap()\n\n/**\n * Returns an empty new [MutableMap].\n *\n * The returned map preserves the entry iteration order.\n * @sample samples.collections.Maps.Instantiation.emptyMutableMap\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic inline fun mutableMapOf(): MutableMap = LinkedHashMap()\n\n/**\n * Returns a new [MutableMap] with the specified contents, given as a list of pairs\n * where the first component is the key and the second is the value.\n *\n * If multiple pairs have the same key, the resulting map will contain the value from the last of those pairs.\n *\n * Entries of the map are iterated in the order they were specified.\n *\n * @sample samples.collections.Maps.Instantiation.mutableMapFromPairs\n * @sample samples.collections.Maps.Instantiation.emptyMutableMap\n */\npublic fun mutableMapOf(vararg pairs: Pair): MutableMap =\n LinkedHashMap(mapCapacity(pairs.size)).apply { putAll(pairs) }\n\n/**\n * Returns an empty new [HashMap].\n *\n * @sample samples.collections.Maps.Instantiation.emptyHashMap\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic inline fun hashMapOf(): HashMap = HashMap()\n\n/**\n * Returns a new [HashMap] with the specified contents, given as a list of pairs\n * where the first component is the key and the second is the value.\n *\n * @sample samples.collections.Maps.Instantiation.hashMapFromPairs\n */\npublic fun hashMapOf(vararg pairs: Pair): HashMap = HashMap(mapCapacity(pairs.size)).apply { putAll(pairs) }\n\n/**\n * Returns an empty new [LinkedHashMap].\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic inline fun linkedMapOf(): LinkedHashMap = LinkedHashMap()\n\n/**\n * Returns a new [LinkedHashMap] with the specified contents, given as a list of pairs\n * where the first component is the key and the second is the value.\n *\n * If multiple pairs have the same key, the resulting map will contain the value from the last of those pairs.\n *\n * Entries of the map are iterated in the order they were specified.\n *\n * @sample samples.collections.Maps.Instantiation.linkedMapFromPairs\n */\npublic fun linkedMapOf(vararg pairs: Pair): LinkedHashMap = pairs.toMap(LinkedHashMap(mapCapacity(pairs.size)))\n\n/**\n * Builds a new read-only [Map] by populating a [MutableMap] using the given [builderAction]\n * and returning a read-only map with the same key-value pairs.\n *\n * The map passed as a receiver to the [builderAction] is valid only inside that function.\n * Using it outside of the function produces an unspecified behavior.\n *\n * Entries of the map are iterated in the order they were added by the [builderAction].\n *\n * @sample samples.collections.Builders.Maps.buildMapSample\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalStdlibApi\n@kotlin.internal.InlineOnly\npublic inline fun buildMap(@BuilderInference builderAction: MutableMap.() -> Unit): Map {\n contract { callsInPlace(builderAction, InvocationKind.EXACTLY_ONCE) }\n return buildMapInternal(builderAction)\n}\n\n@PublishedApi\n@SinceKotlin(\"1.3\")\n@ExperimentalStdlibApi\n@kotlin.internal.InlineOnly\ninternal expect inline fun buildMapInternal(builderAction: MutableMap.() -> Unit): Map\n\n/**\n * Builds a new read-only [Map] by populating a [MutableMap] using the given [builderAction]\n * and returning a read-only map with the same key-value pairs.\n *\n * The map passed as a receiver to the [builderAction] is valid only inside that function.\n * Using it outside of the function produces an unspecified behavior.\n *\n * [capacity] is used to hint the expected number of pairs added in the [builderAction].\n *\n * Entries of the map are iterated in the order they were added by the [builderAction].\n *\n * @throws IllegalArgumentException if the given [capacity] is negative.\n *\n * @sample samples.collections.Builders.Maps.buildMapSample\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalStdlibApi\n@kotlin.internal.InlineOnly\npublic inline fun buildMap(capacity: Int, @BuilderInference builderAction: MutableMap.() -> Unit): Map {\n contract { callsInPlace(builderAction, InvocationKind.EXACTLY_ONCE) }\n return buildMapInternal(capacity, builderAction)\n}\n\n@PublishedApi\n@SinceKotlin(\"1.3\")\n@ExperimentalStdlibApi\n@kotlin.internal.InlineOnly\ninternal expect inline fun buildMapInternal(capacity: Int, builderAction: MutableMap.() -> Unit): Map\n\n/**\n * Calculate the initial capacity of a map.\n */\n@PublishedApi\ninternal expect fun mapCapacity(expectedSize: Int): Int\n\n/**\n * Returns `true` if this map is not empty.\n * @sample samples.collections.Maps.Usage.mapIsNotEmpty\n */\n@kotlin.internal.InlineOnly\npublic inline fun Map.isNotEmpty(): Boolean = !isEmpty()\n\n/**\n * Returns `true` if this nullable map is either null or empty.\n * @sample samples.collections.Maps.Usage.mapIsNullOrEmpty\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\npublic inline fun Map?.isNullOrEmpty(): Boolean {\n contract {\n returns(false) implies (this@isNullOrEmpty != null)\n }\n\n return this == null || isEmpty()\n}\n\n/**\n * Returns the [Map] if its not `null`, or the empty [Map] otherwise.\n *\n * @sample samples.collections.Maps.Usage.mapOrEmpty\n */\n@kotlin.internal.InlineOnly\npublic inline fun Map?.orEmpty(): Map = this ?: emptyMap()\n\n/**\n * Returns this map if it's not empty\n * or the result of calling [defaultValue] function if the map is empty.\n *\n * @sample samples.collections.Maps.Usage.mapIfEmpty\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\npublic inline fun M.ifEmpty(defaultValue: () -> R): R where M : Map<*, *>, M : R =\n if (isEmpty()) defaultValue() else this\n\n/**\n * Checks if the map contains the given key.\n *\n * This method allows to use the `x in map` syntax for checking whether an object is contained in the map.\n *\n * @sample samples.collections.Maps.Usage.containsKey\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun <@kotlin.internal.OnlyInputTypes K, V> Map.contains(key: K): Boolean = containsKey(key)\n\n/**\n * Returns the value corresponding to the given [key], or `null` if such a key is not present in the map.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun <@kotlin.internal.OnlyInputTypes K, V> Map.get(key: K): V? =\n @Suppress(\"UNCHECKED_CAST\") (this as Map).get(key)\n\n/**\n * Allows to use the index operator for storing values in a mutable map.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun MutableMap.set(key: K, value: V): Unit {\n put(key, value)\n}\n\n/**\n * Returns `true` if the map contains the specified [key].\n *\n * Allows to overcome type-safety restriction of `containsKey` that requires to pass a key of type `K`.\n */\n@kotlin.internal.InlineOnly\npublic inline fun <@kotlin.internal.OnlyInputTypes K> Map.containsKey(key: K): Boolean =\n @Suppress(\"UNCHECKED_CAST\") (this as Map).containsKey(key)\n\n/**\n * Returns `true` if the map maps one or more keys to the specified [value].\n *\n * Allows to overcome type-safety restriction of `containsValue` that requires to pass a value of type `V`.\n *\n * @sample samples.collections.Maps.Usage.containsValue\n */\n@Suppress(\"EXTENSION_SHADOWED_BY_MEMBER\") // false warning, extension takes precedence in some cases\n@kotlin.internal.InlineOnly\npublic inline fun Map.containsValue(value: V): Boolean = this.containsValue(value)\n\n\n/**\n * Removes the specified key and its corresponding value from this map.\n *\n * @return the previous value associated with the key, or `null` if the key was not present in the map.\n\n * Allows to overcome type-safety restriction of `remove` that requires to pass a key of type `K`.\n */\n@kotlin.internal.InlineOnly\npublic inline fun <@kotlin.internal.OnlyInputTypes K, V> MutableMap.remove(key: K): V? =\n @Suppress(\"UNCHECKED_CAST\") (this as MutableMap).remove(key)\n\n/**\n * Returns the key component of the map entry.\n *\n * This method allows to use destructuring declarations when working with maps, for example:\n * ```\n * for ((key, value) in map) {\n * // do something with the key and the value\n * }\n * ```\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun Map.Entry.component1(): K = key\n\n/**\n * Returns the value component of the map entry.\n *\n * This method allows to use destructuring declarations when working with maps, for example:\n * ```\n * for ((key, value) in map) {\n * // do something with the key and the value\n * }\n * ```\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun Map.Entry.component2(): V = value\n\n/**\n * Converts entry to [Pair] with key being first component and value being second.\n */\n@kotlin.internal.InlineOnly\npublic inline fun Map.Entry.toPair(): Pair = Pair(key, value)\n\n/**\n * Returns the value for the given key, or the result of the [defaultValue] function if there was no entry for the given key.\n *\n * @sample samples.collections.Maps.Usage.getOrElse\n */\n@kotlin.internal.InlineOnly\npublic inline fun Map.getOrElse(key: K, defaultValue: () -> V): V = get(key) ?: defaultValue()\n\n\ninternal inline fun Map.getOrElseNullable(key: K, defaultValue: () -> V): V {\n val value = get(key)\n if (value == null && !containsKey(key)) {\n return defaultValue()\n } else {\n @Suppress(\"UNCHECKED_CAST\")\n return value as V\n }\n}\n\n/**\n * Returns the value for the given [key] or throws an exception if there is no such key in the map.\n *\n * If the map was created by [withDefault], resorts to its `defaultValue` provider function\n * instead of throwing an exception.\n *\n * @throws NoSuchElementException when the map doesn't contain a value for the specified key and\n * no implicit default value was provided for that map.\n */\n@SinceKotlin(\"1.1\")\npublic fun Map.getValue(key: K): V = getOrImplicitDefault(key)\n\n/**\n * Returns the value for the given key. If the key is not found in the map, calls the [defaultValue] function,\n * puts its result into the map under the given key and returns it.\n *\n * Note that the operation is not guaranteed to be atomic if the map is being modified concurrently.\n *\n * @sample samples.collections.Maps.Usage.getOrPut\n */\npublic inline fun MutableMap.getOrPut(key: K, defaultValue: () -> V): V {\n val value = get(key)\n return if (value == null) {\n val answer = defaultValue()\n put(key, answer)\n answer\n } else {\n value\n }\n}\n\n/**\n * Returns an [Iterator] over the entries in the [Map].\n *\n * @sample samples.collections.Maps.Usage.forOverEntries\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun Map.iterator(): Iterator> = entries.iterator()\n\n/**\n * Returns a [MutableIterator] over the mutable entries in the [MutableMap].\n *\n */\n@kotlin.jvm.JvmName(\"mutableIterator\")\n@kotlin.internal.InlineOnly\npublic inline operator fun MutableMap.iterator(): MutableIterator> = entries.iterator()\n\n/**\n * Populates the given [destination] map with entries having the keys of this map and the values obtained\n * by applying the [transform] function to each entry in this [Map].\n */\npublic inline fun > Map.mapValuesTo(destination: M, transform: (Map.Entry) -> R): M {\n return entries.associateByTo(destination, { it.key }, transform)\n}\n\n/**\n * Populates the given [destination] map with entries having the keys obtained\n * by applying the [transform] function to each entry in this [Map] and the values of this map.\n *\n * In case if any two entries are mapped to the equal keys, the value of the latter one will overwrite\n * the value associated with the former one.\n */\npublic inline fun > Map.mapKeysTo(destination: M, transform: (Map.Entry) -> R): M {\n return entries.associateByTo(destination, transform, { it.value })\n}\n\n/**\n * Puts all the given [pairs] into this [MutableMap] with the first component in the pair being the key and the second the value.\n */\npublic fun MutableMap.putAll(pairs: Array>): Unit {\n for ((key, value) in pairs) {\n put(key, value)\n }\n}\n\n/**\n * Puts all the elements of the given collection into this [MutableMap] with the first component in the pair being the key and the second the value.\n */\npublic fun MutableMap.putAll(pairs: Iterable>): Unit {\n for ((key, value) in pairs) {\n put(key, value)\n }\n}\n\n/**\n * Puts all the elements of the given sequence into this [MutableMap] with the first component in the pair being the key and the second the value.\n */\npublic fun MutableMap.putAll(pairs: Sequence>): Unit {\n for ((key, value) in pairs) {\n put(key, value)\n }\n}\n\n/**\n * Returns a new map with entries having the keys of this map and the values obtained by applying the [transform]\n * function to each entry in this [Map].\n *\n * The returned map preserves the entry iteration order of the original map.\n *\n * @sample samples.collections.Maps.Transformations.mapValues\n */\npublic inline fun Map.mapValues(transform: (Map.Entry) -> R): Map {\n return mapValuesTo(LinkedHashMap(mapCapacity(size)), transform) // .optimizeReadOnlyMap()\n}\n\n/**\n * Returns a new Map with entries having the keys obtained by applying the [transform] function to each entry in this\n * [Map] and the values of this map.\n *\n * In case if any two entries are mapped to the equal keys, the value of the latter one will overwrite\n * the value associated with the former one.\n *\n * The returned map preserves the entry iteration order of the original map.\n *\n * @sample samples.collections.Maps.Transformations.mapKeys\n */\npublic inline fun Map.mapKeys(transform: (Map.Entry) -> R): Map {\n return mapKeysTo(LinkedHashMap(mapCapacity(size)), transform) // .optimizeReadOnlyMap()\n}\n\n/**\n * Returns a map containing all key-value pairs with keys matching the given [predicate].\n *\n * The returned map preserves the entry iteration order of the original map.\n * @sample samples.collections.Maps.Filtering.filterKeys\n */\npublic inline fun Map.filterKeys(predicate: (K) -> Boolean): Map {\n val result = LinkedHashMap()\n for (entry in this) {\n if (predicate(entry.key)) {\n result.put(entry.key, entry.value)\n }\n }\n return result\n}\n\n/**\n * Returns a map containing all key-value pairs with values matching the given [predicate].\n *\n * The returned map preserves the entry iteration order of the original map.\n * @sample samples.collections.Maps.Filtering.filterValues\n */\npublic inline fun Map.filterValues(predicate: (V) -> Boolean): Map {\n val result = LinkedHashMap()\n for (entry in this) {\n if (predicate(entry.value)) {\n result.put(entry.key, entry.value)\n }\n }\n return result\n}\n\n\n/**\n * Appends all entries matching the given [predicate] into the mutable map given as [destination] parameter.\n *\n * @return the destination map.\n * @sample samples.collections.Maps.Filtering.filterTo\n */\npublic inline fun > Map.filterTo(destination: M, predicate: (Map.Entry) -> Boolean): M {\n for (element in this) {\n if (predicate(element)) {\n destination.put(element.key, element.value)\n }\n }\n return destination\n}\n\n/**\n * Returns a new map containing all key-value pairs matching the given [predicate].\n *\n * The returned map preserves the entry iteration order of the original map.\n * @sample samples.collections.Maps.Filtering.filter\n */\npublic inline fun Map.filter(predicate: (Map.Entry) -> Boolean): Map {\n return filterTo(LinkedHashMap(), predicate)\n}\n\n/**\n * Appends all entries not matching the given [predicate] into the given [destination].\n *\n * @return the destination map.\n * @sample samples.collections.Maps.Filtering.filterNotTo\n */\npublic inline fun > Map.filterNotTo(destination: M, predicate: (Map.Entry) -> Boolean): M {\n for (element in this) {\n if (!predicate(element)) {\n destination.put(element.key, element.value)\n }\n }\n return destination\n}\n\n/**\n * Returns a new map containing all key-value pairs not matching the given [predicate].\n *\n * The returned map preserves the entry iteration order of the original map.\n * @sample samples.collections.Maps.Filtering.filterNot\n */\npublic inline fun Map.filterNot(predicate: (Map.Entry) -> Boolean): Map {\n return filterNotTo(LinkedHashMap(), predicate)\n}\n\n/**\n * Returns a new map containing all key-value pairs from the given collection of pairs.\n *\n * The returned map preserves the entry iteration order of the original collection.\n * If any of two pairs would have the same key the last one gets added to the map.\n */\npublic fun Iterable>.toMap(): Map {\n if (this is Collection) {\n return when (size) {\n 0 -> emptyMap()\n 1 -> mapOf(if (this is List) this[0] else iterator().next())\n else -> toMap(LinkedHashMap(mapCapacity(size)))\n }\n }\n return toMap(LinkedHashMap()).optimizeReadOnlyMap()\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs from the given collection of pairs.\n */\npublic fun > Iterable>.toMap(destination: M): M =\n destination.apply { putAll(this@toMap) }\n\n/**\n * Returns a new map containing all key-value pairs from the given array of pairs.\n *\n * The returned map preserves the entry iteration order of the original array.\n * If any of two pairs would have the same key the last one gets added to the map.\n */\npublic fun Array>.toMap(): Map = when (size) {\n 0 -> emptyMap()\n 1 -> mapOf(this[0])\n else -> toMap(LinkedHashMap(mapCapacity(size)))\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs from the given array of pairs.\n */\npublic fun > Array>.toMap(destination: M): M =\n destination.apply { putAll(this@toMap) }\n\n/**\n * Returns a new map containing all key-value pairs from the given sequence of pairs.\n *\n * The returned map preserves the entry iteration order of the original sequence.\n * If any of two pairs would have the same key the last one gets added to the map.\n */\npublic fun Sequence>.toMap(): Map = toMap(LinkedHashMap()).optimizeReadOnlyMap()\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs from the given sequence of pairs.\n */\npublic fun > Sequence>.toMap(destination: M): M =\n destination.apply { putAll(this@toMap) }\n\n/**\n * Returns a new read-only map containing all key-value pairs from the original map.\n *\n * The returned map preserves the entry iteration order of the original map.\n */\n@SinceKotlin(\"1.1\")\npublic fun Map.toMap(): Map = when (size) {\n 0 -> emptyMap()\n 1 -> toSingletonMap()\n else -> toMutableMap()\n}\n\n/**\n * Returns a new mutable map containing all key-value pairs from the original map.\n *\n * The returned map preserves the entry iteration order of the original map.\n */\n@SinceKotlin(\"1.1\")\npublic fun Map.toMutableMap(): MutableMap = LinkedHashMap(this)\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs from the given map.\n */\n@SinceKotlin(\"1.1\")\npublic fun > Map.toMap(destination: M): M =\n destination.apply { putAll(this@toMap) }\n\n/**\n * Creates a new read-only map by replacing or adding an entry to this map from a given key-value [pair].\n *\n * The returned map preserves the entry iteration order of the original map.\n * The [pair] is iterated in the end if it has a unique key.\n */\npublic operator fun Map.plus(pair: Pair): Map =\n if (this.isEmpty()) mapOf(pair) else LinkedHashMap(this).apply { put(pair.first, pair.second) }\n\n/**\n * Creates a new read-only map by replacing or adding entries to this map from a given collection of key-value [pairs].\n *\n * The returned map preserves the entry iteration order of the original map.\n * Those [pairs] with unique keys are iterated in the end in the order of [pairs] collection.\n */\npublic operator fun Map.plus(pairs: Iterable>): Map =\n if (this.isEmpty()) pairs.toMap() else LinkedHashMap(this).apply { putAll(pairs) }\n\n/**\n * Creates a new read-only map by replacing or adding entries to this map from a given array of key-value [pairs].\n *\n * The returned map preserves the entry iteration order of the original map.\n * Those [pairs] with unique keys are iterated in the end in the order of [pairs] array.\n */\npublic operator fun Map.plus(pairs: Array>): Map =\n if (this.isEmpty()) pairs.toMap() else LinkedHashMap(this).apply { putAll(pairs) }\n\n/**\n * Creates a new read-only map by replacing or adding entries to this map from a given sequence of key-value [pairs].\n *\n * The returned map preserves the entry iteration order of the original map.\n * Those [pairs] with unique keys are iterated in the end in the order of [pairs] sequence.\n */\npublic operator fun Map.plus(pairs: Sequence>): Map =\n LinkedHashMap(this).apply { putAll(pairs) }.optimizeReadOnlyMap()\n\n/**\n * Creates a new read-only map by replacing or adding entries to this map from another [map].\n *\n * The returned map preserves the entry iteration order of the original map.\n * Those entries of another [map] that are missing in this map are iterated in the end in the order of that [map].\n */\npublic operator fun Map.plus(map: Map): Map =\n LinkedHashMap(this).apply { putAll(map) }\n\n\n/**\n * Appends or replaces the given [pair] in this mutable map.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun MutableMap.plusAssign(pair: Pair) {\n put(pair.first, pair.second)\n}\n\n/**\n * Appends or replaces all pairs from the given collection of [pairs] in this mutable map.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun MutableMap.plusAssign(pairs: Iterable>) {\n putAll(pairs)\n}\n\n/**\n * Appends or replaces all pairs from the given array of [pairs] in this mutable map.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun MutableMap.plusAssign(pairs: Array>) {\n putAll(pairs)\n}\n\n/**\n * Appends or replaces all pairs from the given sequence of [pairs] in this mutable map.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun MutableMap.plusAssign(pairs: Sequence>) {\n putAll(pairs)\n}\n\n/**\n * Appends or replaces all entries from the given [map] in this mutable map.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun MutableMap.plusAssign(map: Map) {\n putAll(map)\n}\n\n/**\n * Returns a map containing all entries of the original map except the entry with the given [key].\n *\n * The returned map preserves the entry iteration order of the original map.\n */\n@SinceKotlin(\"1.1\")\npublic operator fun Map.minus(key: K): Map =\n this.toMutableMap().apply { minusAssign(key) }.optimizeReadOnlyMap()\n\n/**\n * Returns a map containing all entries of the original map except those entries\n * the keys of which are contained in the given [keys] collection.\n *\n * The returned map preserves the entry iteration order of the original map.\n */\n@SinceKotlin(\"1.1\")\npublic operator fun Map.minus(keys: Iterable): Map =\n this.toMutableMap().apply { minusAssign(keys) }.optimizeReadOnlyMap()\n\n/**\n * Returns a map containing all entries of the original map except those entries\n * the keys of which are contained in the given [keys] array.\n *\n * The returned map preserves the entry iteration order of the original map.\n */\n@SinceKotlin(\"1.1\")\npublic operator fun Map.minus(keys: Array): Map =\n this.toMutableMap().apply { minusAssign(keys) }.optimizeReadOnlyMap()\n\n/**\n * Returns a map containing all entries of the original map except those entries\n * the keys of which are contained in the given [keys] sequence.\n *\n * The returned map preserves the entry iteration order of the original map.\n */\n@SinceKotlin(\"1.1\")\npublic operator fun Map.minus(keys: Sequence): Map =\n this.toMutableMap().apply { minusAssign(keys) }.optimizeReadOnlyMap()\n\n/**\n * Removes the entry with the given [key] from this mutable map.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic inline operator fun MutableMap.minusAssign(key: K) {\n remove(key)\n}\n\n/**\n * Removes all entries the keys of which are contained in the given [keys] collection from this mutable map.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic inline operator fun MutableMap.minusAssign(keys: Iterable) {\n this.keys.removeAll(keys)\n}\n\n/**\n * Removes all entries the keys of which are contained in the given [keys] array from this mutable map.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic inline operator fun MutableMap.minusAssign(keys: Array) {\n this.keys.removeAll(keys)\n}\n\n/**\n * Removes all entries from the keys of which are contained in the given [keys] sequence from this mutable map.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic inline operator fun MutableMap.minusAssign(keys: Sequence) {\n this.keys.removeAll(keys)\n}\n\n\n// do not expose for now @PublishedApi\ninternal fun Map.optimizeReadOnlyMap() = when (size) {\n 0 -> emptyMap()\n 1 -> toSingletonMapOrSelf()\n else -> this\n}\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n@file:kotlin.jvm.JvmMultifileClass\n@file:kotlin.jvm.JvmName(\"StringsKt\")\n\npackage kotlin.text\n\n/**\n * Converts the string into a regular expression [Regex] with the default options.\n */\n@kotlin.internal.InlineOnly\npublic inline fun String.toRegex(): Regex = Regex(this)\n\n/**\n * Converts the string into a regular expression [Regex] with the specified single [option].\n */\n@kotlin.internal.InlineOnly\npublic inline fun String.toRegex(option: RegexOption): Regex = Regex(this, option)\n\n/**\n * Converts the string into a regular expression [Regex] with the specified set of [options].\n */\n@kotlin.internal.InlineOnly\npublic inline fun String.toRegex(options: Set): Regex = Regex(this, options)\n","/*\n * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n@file:kotlin.jvm.JvmMultifileClass\n@file:kotlin.jvm.JvmName(\"CollectionsKt\")\n\npackage kotlin.collections\n\n//\n// NOTE: THIS FILE IS AUTO-GENERATED by the GenerateStandardLib.kt\n// See: https://github.com/JetBrains/kotlin/tree/master/libraries/stdlib\n//\n\nimport kotlin.random.*\nimport kotlin.ranges.contains\nimport kotlin.ranges.reversed\n\n/**\n * Returns 1st *element* from the list.\n * \n * Throws an [IndexOutOfBoundsException] if the size of this list is less than 1.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun List.component1(): T {\n return get(0)\n}\n\n/**\n * Returns 2nd *element* from the list.\n * \n * Throws an [IndexOutOfBoundsException] if the size of this list is less than 2.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun List.component2(): T {\n return get(1)\n}\n\n/**\n * Returns 3rd *element* from the list.\n * \n * Throws an [IndexOutOfBoundsException] if the size of this list is less than 3.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun List.component3(): T {\n return get(2)\n}\n\n/**\n * Returns 4th *element* from the list.\n * \n * Throws an [IndexOutOfBoundsException] if the size of this list is less than 4.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun List.component4(): T {\n return get(3)\n}\n\n/**\n * Returns 5th *element* from the list.\n * \n * Throws an [IndexOutOfBoundsException] if the size of this list is less than 5.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun List.component5(): T {\n return get(4)\n}\n\n/**\n * Returns `true` if [element] is found in the collection.\n */\npublic operator fun <@kotlin.internal.OnlyInputTypes T> Iterable.contains(element: T): Boolean {\n if (this is Collection)\n return contains(element)\n return indexOf(element) >= 0\n}\n\n/**\n * Returns an element at the given [index] or throws an [IndexOutOfBoundsException] if the [index] is out of bounds of this collection.\n * \n * @sample samples.collections.Collections.Elements.elementAt\n */\npublic fun Iterable.elementAt(index: Int): T {\n if (this is List)\n return get(index)\n return elementAtOrElse(index) { throw IndexOutOfBoundsException(\"Collection doesn't contain element at index $index.\") }\n}\n\n/**\n * Returns an element at the given [index] or throws an [IndexOutOfBoundsException] if the [index] is out of bounds of this list.\n * \n * @sample samples.collections.Collections.Elements.elementAt\n */\n@kotlin.internal.InlineOnly\npublic inline fun List.elementAt(index: Int): T {\n return get(index)\n}\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this collection.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrElse\n */\npublic fun Iterable.elementAtOrElse(index: Int, defaultValue: (Int) -> T): T {\n if (this is List)\n return this.getOrElse(index, defaultValue)\n if (index < 0)\n return defaultValue(index)\n val iterator = iterator()\n var count = 0\n while (iterator.hasNext()) {\n val element = iterator.next()\n if (index == count++)\n return element\n }\n return defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this list.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrElse\n */\n@kotlin.internal.InlineOnly\npublic inline fun List.elementAtOrElse(index: Int, defaultValue: (Int) -> T): T {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this collection.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrNull\n */\npublic fun Iterable.elementAtOrNull(index: Int): T? {\n if (this is List)\n return this.getOrNull(index)\n if (index < 0)\n return null\n val iterator = iterator()\n var count = 0\n while (iterator.hasNext()) {\n val element = iterator.next()\n if (index == count++)\n return element\n }\n return null\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this list.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrNull\n */\n@kotlin.internal.InlineOnly\npublic inline fun List.elementAtOrNull(index: Int): T? {\n return this.getOrNull(index)\n}\n\n/**\n * Returns the first element matching the given [predicate], or `null` if no such element was found.\n * \n * @sample samples.collections.Collections.Elements.find\n */\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.find(predicate: (T) -> Boolean): T? {\n return firstOrNull(predicate)\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n * \n * @sample samples.collections.Collections.Elements.find\n */\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.findLast(predicate: (T) -> Boolean): T? {\n return lastOrNull(predicate)\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n * \n * @sample samples.collections.Collections.Elements.find\n */\n@kotlin.internal.InlineOnly\npublic inline fun List.findLast(predicate: (T) -> Boolean): T? {\n return lastOrNull(predicate)\n}\n\n/**\n * Returns first element.\n * @throws [NoSuchElementException] if the collection is empty.\n */\npublic fun Iterable.first(): T {\n when (this) {\n is List -> return this.first()\n else -> {\n val iterator = iterator()\n if (!iterator.hasNext())\n throw NoSuchElementException(\"Collection is empty.\")\n return iterator.next()\n }\n }\n}\n\n/**\n * Returns first element.\n * @throws [NoSuchElementException] if the list is empty.\n */\npublic fun List.first(): T {\n if (isEmpty())\n throw NoSuchElementException(\"List is empty.\")\n return this[0]\n}\n\n/**\n * Returns the first element matching the given [predicate].\n * @throws [NoSuchElementException] if no such element is found.\n */\npublic inline fun Iterable.first(predicate: (T) -> Boolean): T {\n for (element in this) if (predicate(element)) return element\n throw NoSuchElementException(\"Collection contains no element matching the predicate.\")\n}\n\n/**\n * Returns the first element, or `null` if the collection is empty.\n */\npublic fun Iterable.firstOrNull(): T? {\n when (this) {\n is List -> {\n if (isEmpty())\n return null\n else\n return this[0]\n }\n else -> {\n val iterator = iterator()\n if (!iterator.hasNext())\n return null\n return iterator.next()\n }\n }\n}\n\n/**\n * Returns the first element, or `null` if the list is empty.\n */\npublic fun List.firstOrNull(): T? {\n return if (isEmpty()) null else this[0]\n}\n\n/**\n * Returns the first element matching the given [predicate], or `null` if element was not found.\n */\npublic inline fun Iterable.firstOrNull(predicate: (T) -> Boolean): T? {\n for (element in this) if (predicate(element)) return element\n return null\n}\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this list.\n */\n@kotlin.internal.InlineOnly\npublic inline fun List.getOrElse(index: Int, defaultValue: (Int) -> T): T {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this list.\n * \n * @sample samples.collections.Collections.Elements.getOrNull\n */\npublic fun List.getOrNull(index: Int): T? {\n return if (index >= 0 && index <= lastIndex) get(index) else null\n}\n\n/**\n * Returns first index of [element], or -1 if the collection does not contain element.\n */\npublic fun <@kotlin.internal.OnlyInputTypes T> Iterable.indexOf(element: T): Int {\n if (this is List) return this.indexOf(element)\n var index = 0\n for (item in this) {\n checkIndexOverflow(index)\n if (element == item)\n return index\n index++\n }\n return -1\n}\n\n/**\n * Returns first index of [element], or -1 if the list does not contain element.\n */\n@Suppress(\"EXTENSION_SHADOWED_BY_MEMBER\") // false warning, extension takes precedence in some cases\npublic fun <@kotlin.internal.OnlyInputTypes T> List.indexOf(element: T): Int {\n return indexOf(element)\n}\n\n/**\n * Returns index of the first element matching the given [predicate], or -1 if the collection does not contain such element.\n */\npublic inline fun Iterable.indexOfFirst(predicate: (T) -> Boolean): Int {\n var index = 0\n for (item in this) {\n checkIndexOverflow(index)\n if (predicate(item))\n return index\n index++\n }\n return -1\n}\n\n/**\n * Returns index of the first element matching the given [predicate], or -1 if the list does not contain such element.\n */\npublic inline fun List.indexOfFirst(predicate: (T) -> Boolean): Int {\n var index = 0\n for (item in this) {\n if (predicate(item))\n return index\n index++\n }\n return -1\n}\n\n/**\n * Returns index of the last element matching the given [predicate], or -1 if the collection does not contain such element.\n */\npublic inline fun Iterable.indexOfLast(predicate: (T) -> Boolean): Int {\n var lastIndex = -1\n var index = 0\n for (item in this) {\n checkIndexOverflow(index)\n if (predicate(item))\n lastIndex = index\n index++\n }\n return lastIndex\n}\n\n/**\n * Returns index of the last element matching the given [predicate], or -1 if the list does not contain such element.\n */\npublic inline fun List.indexOfLast(predicate: (T) -> Boolean): Int {\n val iterator = this.listIterator(size)\n while (iterator.hasPrevious()) {\n if (predicate(iterator.previous())) {\n return iterator.nextIndex()\n }\n }\n return -1\n}\n\n/**\n * Returns the last element.\n * \n * @throws NoSuchElementException if the collection is empty.\n * \n * @sample samples.collections.Collections.Elements.last\n */\npublic fun Iterable.last(): T {\n when (this) {\n is List -> return this.last()\n else -> {\n val iterator = iterator()\n if (!iterator.hasNext())\n throw NoSuchElementException(\"Collection is empty.\")\n var last = iterator.next()\n while (iterator.hasNext())\n last = iterator.next()\n return last\n }\n }\n}\n\n/**\n * Returns the last element.\n * \n * @throws NoSuchElementException if the list is empty.\n * \n * @sample samples.collections.Collections.Elements.last\n */\npublic fun List.last(): T {\n if (isEmpty())\n throw NoSuchElementException(\"List is empty.\")\n return this[lastIndex]\n}\n\n/**\n * Returns the last element matching the given [predicate].\n * \n * @throws NoSuchElementException if no such element is found.\n * \n * @sample samples.collections.Collections.Elements.last\n */\npublic inline fun Iterable.last(predicate: (T) -> Boolean): T {\n var last: T? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n last = element\n found = true\n }\n }\n if (!found) throw NoSuchElementException(\"Collection contains no element matching the predicate.\")\n @Suppress(\"UNCHECKED_CAST\")\n return last as T\n}\n\n/**\n * Returns the last element matching the given [predicate].\n * \n * @throws NoSuchElementException if no such element is found.\n * \n * @sample samples.collections.Collections.Elements.last\n */\npublic inline fun List.last(predicate: (T) -> Boolean): T {\n val iterator = this.listIterator(size)\n while (iterator.hasPrevious()) {\n val element = iterator.previous()\n if (predicate(element)) return element\n }\n throw NoSuchElementException(\"List contains no element matching the predicate.\")\n}\n\n/**\n * Returns last index of [element], or -1 if the collection does not contain element.\n */\npublic fun <@kotlin.internal.OnlyInputTypes T> Iterable.lastIndexOf(element: T): Int {\n if (this is List) return this.lastIndexOf(element)\n var lastIndex = -1\n var index = 0\n for (item in this) {\n checkIndexOverflow(index)\n if (element == item)\n lastIndex = index\n index++\n }\n return lastIndex\n}\n\n/**\n * Returns last index of [element], or -1 if the list does not contain element.\n */\n@Suppress(\"EXTENSION_SHADOWED_BY_MEMBER\") // false warning, extension takes precedence in some cases\npublic fun <@kotlin.internal.OnlyInputTypes T> List.lastIndexOf(element: T): Int {\n return lastIndexOf(element)\n}\n\n/**\n * Returns the last element, or `null` if the collection is empty.\n * \n * @sample samples.collections.Collections.Elements.last\n */\npublic fun Iterable.lastOrNull(): T? {\n when (this) {\n is List -> return if (isEmpty()) null else this[size - 1]\n else -> {\n val iterator = iterator()\n if (!iterator.hasNext())\n return null\n var last = iterator.next()\n while (iterator.hasNext())\n last = iterator.next()\n return last\n }\n }\n}\n\n/**\n * Returns the last element, or `null` if the list is empty.\n * \n * @sample samples.collections.Collections.Elements.last\n */\npublic fun List.lastOrNull(): T? {\n return if (isEmpty()) null else this[size - 1]\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n * \n * @sample samples.collections.Collections.Elements.last\n */\npublic inline fun Iterable.lastOrNull(predicate: (T) -> Boolean): T? {\n var last: T? = null\n for (element in this) {\n if (predicate(element)) {\n last = element\n }\n }\n return last\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n * \n * @sample samples.collections.Collections.Elements.last\n */\npublic inline fun List.lastOrNull(predicate: (T) -> Boolean): T? {\n val iterator = this.listIterator(size)\n while (iterator.hasPrevious()) {\n val element = iterator.previous()\n if (predicate(element)) return element\n }\n return null\n}\n\n/**\n * Returns a random element from this collection.\n * \n * @throws NoSuchElementException if this collection is empty.\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\npublic inline fun Collection.random(): T {\n return random(Random)\n}\n\n/**\n * Returns a random element from this collection using the specified source of randomness.\n * \n * @throws NoSuchElementException if this collection is empty.\n */\n@SinceKotlin(\"1.3\")\npublic fun Collection.random(random: Random): T {\n if (isEmpty())\n throw NoSuchElementException(\"Collection is empty.\")\n return elementAt(random.nextInt(size))\n}\n\n/**\n * Returns a random element from this collection, or `null` if this collection is empty.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun Collection.randomOrNull(): T? {\n return randomOrNull(Random)\n}\n\n/**\n * Returns a random element from this collection using the specified source of randomness, or `null` if this collection is empty.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic fun Collection.randomOrNull(random: Random): T? {\n if (isEmpty())\n return null\n return elementAt(random.nextInt(size))\n}\n\n/**\n * Returns the single element, or throws an exception if the collection is empty or has more than one element.\n */\npublic fun Iterable.single(): T {\n when (this) {\n is List -> return this.single()\n else -> {\n val iterator = iterator()\n if (!iterator.hasNext())\n throw NoSuchElementException(\"Collection is empty.\")\n val single = iterator.next()\n if (iterator.hasNext())\n throw IllegalArgumentException(\"Collection has more than one element.\")\n return single\n }\n }\n}\n\n/**\n * Returns the single element, or throws an exception if the list is empty or has more than one element.\n */\npublic fun List.single(): T {\n return when (size) {\n 0 -> throw NoSuchElementException(\"List is empty.\")\n 1 -> this[0]\n else -> throw IllegalArgumentException(\"List has more than one element.\")\n }\n}\n\n/**\n * Returns the single element matching the given [predicate], or throws exception if there is no or more than one matching element.\n */\npublic inline fun Iterable.single(predicate: (T) -> Boolean): T {\n var single: T? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) throw IllegalArgumentException(\"Collection contains more than one matching element.\")\n single = element\n found = true\n }\n }\n if (!found) throw NoSuchElementException(\"Collection contains no element matching the predicate.\")\n @Suppress(\"UNCHECKED_CAST\")\n return single as T\n}\n\n/**\n * Returns single element, or `null` if the collection is empty or has more than one element.\n */\npublic fun Iterable.singleOrNull(): T? {\n when (this) {\n is List -> return if (size == 1) this[0] else null\n else -> {\n val iterator = iterator()\n if (!iterator.hasNext())\n return null\n val single = iterator.next()\n if (iterator.hasNext())\n return null\n return single\n }\n }\n}\n\n/**\n * Returns single element, or `null` if the list is empty or has more than one element.\n */\npublic fun List.singleOrNull(): T? {\n return if (size == 1) this[0] else null\n}\n\n/**\n * Returns the single element matching the given [predicate], or `null` if element was not found or more than one element was found.\n */\npublic inline fun Iterable.singleOrNull(predicate: (T) -> Boolean): T? {\n var single: T? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) return null\n single = element\n found = true\n }\n }\n if (!found) return null\n return single\n}\n\n/**\n * Returns a list containing all elements except first [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic fun Iterable.drop(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return toList()\n val list: ArrayList\n if (this is Collection<*>) {\n val resultSize = size - n\n if (resultSize <= 0)\n return emptyList()\n if (resultSize == 1)\n return listOf(last())\n list = ArrayList(resultSize)\n if (this is List) {\n if (this is RandomAccess) {\n for (index in n until size)\n list.add(this[index])\n } else {\n for (item in listIterator(n))\n list.add(item)\n }\n return list\n }\n }\n else {\n list = ArrayList()\n }\n var count = 0\n for (item in this) {\n if (count >= n) list.add(item) else ++count\n }\n return list.optimizeReadOnlyList()\n}\n\n/**\n * Returns a list containing all elements except last [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic fun List.dropLast(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n return take((size - n).coerceAtLeast(0))\n}\n\n/**\n * Returns a list containing all elements except last elements that satisfy the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic inline fun List.dropLastWhile(predicate: (T) -> Boolean): List {\n if (!isEmpty()) {\n val iterator = listIterator(size)\n while (iterator.hasPrevious()) {\n if (!predicate(iterator.previous())) {\n return take(iterator.nextIndex() + 1)\n }\n }\n }\n return emptyList()\n}\n\n/**\n * Returns a list containing all elements except first elements that satisfy the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic inline fun Iterable.dropWhile(predicate: (T) -> Boolean): List {\n var yielding = false\n val list = ArrayList()\n for (item in this)\n if (yielding)\n list.add(item)\n else if (!predicate(item)) {\n list.add(item)\n yielding = true\n }\n return list\n}\n\n/**\n * Returns a list containing only elements matching the given [predicate].\n * \n * @sample samples.collections.Collections.Filtering.filter\n */\npublic inline fun Iterable.filter(predicate: (T) -> Boolean): List {\n return filterTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing only elements matching the given [predicate].\n * @param [predicate] function that takes the index of an element and the element itself\n * and returns the result of predicate evaluation on the element.\n * \n * @sample samples.collections.Collections.Filtering.filterIndexed\n */\npublic inline fun Iterable.filterIndexed(predicate: (index: Int, T) -> Boolean): List {\n return filterIndexedTo(ArrayList(), predicate)\n}\n\n/**\n * Appends all elements matching the given [predicate] to the given [destination].\n * @param [predicate] function that takes the index of an element and the element itself\n * and returns the result of predicate evaluation on the element.\n * \n * @sample samples.collections.Collections.Filtering.filterIndexedTo\n */\npublic inline fun > Iterable.filterIndexedTo(destination: C, predicate: (index: Int, T) -> Boolean): C {\n forEachIndexed { index, element ->\n if (predicate(index, element)) destination.add(element)\n }\n return destination\n}\n\n/**\n * Returns a list containing all elements that are instances of specified type parameter R.\n * \n * @sample samples.collections.Collections.Filtering.filterIsInstance\n */\npublic inline fun Iterable<*>.filterIsInstance(): List<@kotlin.internal.NoInfer R> {\n return filterIsInstanceTo(ArrayList())\n}\n\n/**\n * Appends all elements that are instances of specified type parameter R to the given [destination].\n * \n * @sample samples.collections.Collections.Filtering.filterIsInstanceTo\n */\npublic inline fun > Iterable<*>.filterIsInstanceTo(destination: C): C {\n for (element in this) if (element is R) destination.add(element)\n return destination\n}\n\n/**\n * Returns a list containing all elements not matching the given [predicate].\n * \n * @sample samples.collections.Collections.Filtering.filter\n */\npublic inline fun Iterable.filterNot(predicate: (T) -> Boolean): List {\n return filterNotTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing all elements that are not `null`.\n * \n * @sample samples.collections.Collections.Filtering.filterNotNull\n */\npublic fun Iterable.filterNotNull(): List {\n return filterNotNullTo(ArrayList())\n}\n\n/**\n * Appends all elements that are not `null` to the given [destination].\n * \n * @sample samples.collections.Collections.Filtering.filterNotNullTo\n */\npublic fun , T : Any> Iterable.filterNotNullTo(destination: C): C {\n for (element in this) if (element != null) destination.add(element)\n return destination\n}\n\n/**\n * Appends all elements not matching the given [predicate] to the given [destination].\n * \n * @sample samples.collections.Collections.Filtering.filterTo\n */\npublic inline fun > Iterable.filterNotTo(destination: C, predicate: (T) -> Boolean): C {\n for (element in this) if (!predicate(element)) destination.add(element)\n return destination\n}\n\n/**\n * Appends all elements matching the given [predicate] to the given [destination].\n * \n * @sample samples.collections.Collections.Filtering.filterTo\n */\npublic inline fun > Iterable.filterTo(destination: C, predicate: (T) -> Boolean): C {\n for (element in this) if (predicate(element)) destination.add(element)\n return destination\n}\n\n/**\n * Returns a list containing elements at indices in the specified [indices] range.\n */\npublic fun List.slice(indices: IntRange): List {\n if (indices.isEmpty()) return listOf()\n return this.subList(indices.start, indices.endInclusive + 1).toList()\n}\n\n/**\n * Returns a list containing elements at specified [indices].\n */\npublic fun List.slice(indices: Iterable): List {\n val size = indices.collectionSizeOrDefault(10)\n if (size == 0) return emptyList()\n val list = ArrayList(size)\n for (index in indices) {\n list.add(get(index))\n }\n return list\n}\n\n/**\n * Returns a list containing first [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic fun Iterable.take(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return emptyList()\n if (this is Collection) {\n if (n >= size) return toList()\n if (n == 1) return listOf(first())\n }\n var count = 0\n val list = ArrayList(n)\n for (item in this) {\n list.add(item)\n if (++count == n)\n break\n }\n return list.optimizeReadOnlyList()\n}\n\n/**\n * Returns a list containing last [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic fun List.takeLast(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return emptyList()\n val size = size\n if (n >= size) return toList()\n if (n == 1) return listOf(last())\n val list = ArrayList(n)\n if (this is RandomAccess) {\n for (index in size - n until size)\n list.add(this[index])\n } else {\n for (item in listIterator(size - n))\n list.add(item)\n }\n return list\n}\n\n/**\n * Returns a list containing last elements satisfying the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic inline fun List.takeLastWhile(predicate: (T) -> Boolean): List {\n if (isEmpty())\n return emptyList()\n val iterator = listIterator(size)\n while (iterator.hasPrevious()) {\n if (!predicate(iterator.previous())) {\n iterator.next()\n val expectedSize = size - iterator.nextIndex()\n if (expectedSize == 0) return emptyList()\n return ArrayList(expectedSize).apply {\n while (iterator.hasNext())\n add(iterator.next())\n }\n }\n }\n return toList()\n}\n\n/**\n * Returns a list containing first elements satisfying the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic inline fun Iterable.takeWhile(predicate: (T) -> Boolean): List {\n val list = ArrayList()\n for (item in this) {\n if (!predicate(item))\n break\n list.add(item)\n }\n return list\n}\n\n/**\n * Reverses elements in the list in-place.\n */\npublic expect fun MutableList.reverse(): Unit\n\n/**\n * Returns a list with elements in reversed order.\n */\npublic fun Iterable.reversed(): List {\n if (this is Collection && size <= 1) return toList()\n val list = toMutableList()\n list.reverse()\n return list\n}\n\n/**\n * Randomly shuffles elements in this list in-place using the specified [random] instance as the source of randomness.\n * \n * See: https://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle#The_modern_algorithm\n */\n@SinceKotlin(\"1.3\")\npublic fun MutableList.shuffle(random: Random): Unit {\n for (i in lastIndex downTo 1) {\n val j = random.nextInt(i + 1)\n this[j] = this.set(i, this[j])\n }\n}\n\n/**\n * Sorts elements in the list in-place according to natural sort order of the value returned by specified [selector] function.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic inline fun > MutableList.sortBy(crossinline selector: (T) -> R?): Unit {\n if (size > 1) sortWith(compareBy(selector))\n}\n\n/**\n * Sorts elements in the list in-place descending according to natural sort order of the value returned by specified [selector] function.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic inline fun > MutableList.sortByDescending(crossinline selector: (T) -> R?): Unit {\n if (size > 1) sortWith(compareByDescending(selector))\n}\n\n/**\n * Sorts elements in the list in-place descending according to their natural sort order.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic fun > MutableList.sortDescending(): Unit {\n sortWith(reverseOrder())\n}\n\n/**\n * Returns a list of all elements sorted according to their natural sort order.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic fun > Iterable.sorted(): List {\n if (this is Collection) {\n if (size <= 1) return this.toList()\n @Suppress(\"UNCHECKED_CAST\")\n return (toTypedArray>() as Array).apply { sort() }.asList()\n }\n return toMutableList().apply { sort() }\n}\n\n/**\n * Returns a list of all elements sorted according to natural sort order of the value returned by specified [selector] function.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n * \n * @sample samples.collections.Collections.Sorting.sortedBy\n */\npublic inline fun > Iterable.sortedBy(crossinline selector: (T) -> R?): List {\n return sortedWith(compareBy(selector))\n}\n\n/**\n * Returns a list of all elements sorted descending according to natural sort order of the value returned by specified [selector] function.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic inline fun > Iterable.sortedByDescending(crossinline selector: (T) -> R?): List {\n return sortedWith(compareByDescending(selector))\n}\n\n/**\n * Returns a list of all elements sorted descending according to their natural sort order.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic fun > Iterable.sortedDescending(): List {\n return sortedWith(reverseOrder())\n}\n\n/**\n * Returns a list of all elements sorted according to the specified [comparator].\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic fun Iterable.sortedWith(comparator: Comparator): List {\n if (this is Collection) {\n if (size <= 1) return this.toList()\n @Suppress(\"UNCHECKED_CAST\")\n return (toTypedArray() as Array).apply { sortWith(comparator) }.asList()\n }\n return toMutableList().apply { sortWith(comparator) }\n}\n\n/**\n * Returns an array of Boolean containing all of the elements of this collection.\n */\npublic fun Collection.toBooleanArray(): BooleanArray {\n val result = BooleanArray(size)\n var index = 0\n for (element in this)\n result[index++] = element\n return result\n}\n\n/**\n * Returns an array of Byte containing all of the elements of this collection.\n */\npublic fun Collection.toByteArray(): ByteArray {\n val result = ByteArray(size)\n var index = 0\n for (element in this)\n result[index++] = element\n return result\n}\n\n/**\n * Returns an array of Char containing all of the elements of this collection.\n */\npublic fun Collection.toCharArray(): CharArray {\n val result = CharArray(size)\n var index = 0\n for (element in this)\n result[index++] = element\n return result\n}\n\n/**\n * Returns an array of Double containing all of the elements of this collection.\n */\npublic fun Collection.toDoubleArray(): DoubleArray {\n val result = DoubleArray(size)\n var index = 0\n for (element in this)\n result[index++] = element\n return result\n}\n\n/**\n * Returns an array of Float containing all of the elements of this collection.\n */\npublic fun Collection.toFloatArray(): FloatArray {\n val result = FloatArray(size)\n var index = 0\n for (element in this)\n result[index++] = element\n return result\n}\n\n/**\n * Returns an array of Int containing all of the elements of this collection.\n */\npublic fun Collection.toIntArray(): IntArray {\n val result = IntArray(size)\n var index = 0\n for (element in this)\n result[index++] = element\n return result\n}\n\n/**\n * Returns an array of Long containing all of the elements of this collection.\n */\npublic fun Collection.toLongArray(): LongArray {\n val result = LongArray(size)\n var index = 0\n for (element in this)\n result[index++] = element\n return result\n}\n\n/**\n * Returns an array of Short containing all of the elements of this collection.\n */\npublic fun Collection.toShortArray(): ShortArray {\n val result = ShortArray(size)\n var index = 0\n for (element in this)\n result[index++] = element\n return result\n}\n\n/**\n * Returns a [Map] containing key-value pairs provided by [transform] function\n * applied to elements of the given collection.\n * \n * If any of two pairs would have the same key the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original collection.\n * \n * @sample samples.collections.Collections.Transformations.associate\n */\npublic inline fun Iterable.associate(transform: (T) -> Pair): Map {\n val capacity = mapCapacity(collectionSizeOrDefault(10)).coerceAtLeast(16)\n return associateTo(LinkedHashMap(capacity), transform)\n}\n\n/**\n * Returns a [Map] containing the elements from the given collection indexed by the key\n * returned from [keySelector] function applied to each element.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original collection.\n * \n * @sample samples.collections.Collections.Transformations.associateBy\n */\npublic inline fun Iterable.associateBy(keySelector: (T) -> K): Map {\n val capacity = mapCapacity(collectionSizeOrDefault(10)).coerceAtLeast(16)\n return associateByTo(LinkedHashMap(capacity), keySelector)\n}\n\n/**\n * Returns a [Map] containing the values provided by [valueTransform] and indexed by [keySelector] functions applied to elements of the given collection.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original collection.\n * \n * @sample samples.collections.Collections.Transformations.associateByWithValueTransform\n */\npublic inline fun Iterable.associateBy(keySelector: (T) -> K, valueTransform: (T) -> V): Map {\n val capacity = mapCapacity(collectionSizeOrDefault(10)).coerceAtLeast(16)\n return associateByTo(LinkedHashMap(capacity), keySelector, valueTransform)\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs,\n * where key is provided by the [keySelector] function applied to each element of the given collection\n * and value is the element itself.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * @sample samples.collections.Collections.Transformations.associateByTo\n */\npublic inline fun > Iterable.associateByTo(destination: M, keySelector: (T) -> K): M {\n for (element in this) {\n destination.put(keySelector(element), element)\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs,\n * where key is provided by the [keySelector] function and\n * and value is provided by the [valueTransform] function applied to elements of the given collection.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * @sample samples.collections.Collections.Transformations.associateByToWithValueTransform\n */\npublic inline fun > Iterable.associateByTo(destination: M, keySelector: (T) -> K, valueTransform: (T) -> V): M {\n for (element in this) {\n destination.put(keySelector(element), valueTransform(element))\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs\n * provided by [transform] function applied to each element of the given collection.\n * \n * If any of two pairs would have the same key the last one gets added to the map.\n * \n * @sample samples.collections.Collections.Transformations.associateTo\n */\npublic inline fun > Iterable.associateTo(destination: M, transform: (T) -> Pair): M {\n for (element in this) {\n destination += transform(element)\n }\n return destination\n}\n\n/**\n * Returns a [Map] where keys are elements from the given collection and values are\n * produced by the [valueSelector] function applied to each element.\n * \n * If any two elements are equal, the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original collection.\n * \n * @sample samples.collections.Collections.Transformations.associateWith\n */\n@SinceKotlin(\"1.3\")\npublic inline fun Iterable.associateWith(valueSelector: (K) -> V): Map {\n val result = LinkedHashMap(mapCapacity(collectionSizeOrDefault(10)).coerceAtLeast(16))\n return associateWithTo(result, valueSelector)\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs for each element of the given collection,\n * where key is the element itself and value is provided by the [valueSelector] function applied to that key.\n * \n * If any two elements are equal, the last one overwrites the former value in the map.\n * \n * @sample samples.collections.Collections.Transformations.associateWithTo\n */\n@SinceKotlin(\"1.3\")\npublic inline fun > Iterable.associateWithTo(destination: M, valueSelector: (K) -> V): M {\n for (element in this) {\n destination.put(element, valueSelector(element))\n }\n return destination\n}\n\n/**\n * Appends all elements to the given [destination] collection.\n */\npublic fun > Iterable.toCollection(destination: C): C {\n for (item in this) {\n destination.add(item)\n }\n return destination\n}\n\n/**\n * Returns a new [HashSet] of all elements.\n */\npublic fun Iterable.toHashSet(): HashSet {\n return toCollection(HashSet(mapCapacity(collectionSizeOrDefault(12))))\n}\n\n/**\n * Returns a [List] containing all elements.\n */\npublic fun Iterable.toList(): List {\n if (this is Collection) {\n return when (size) {\n 0 -> emptyList()\n 1 -> listOf(if (this is List) get(0) else iterator().next())\n else -> this.toMutableList()\n }\n }\n return this.toMutableList().optimizeReadOnlyList()\n}\n\n/**\n * Returns a new [MutableList] filled with all elements of this collection.\n */\npublic fun Iterable.toMutableList(): MutableList {\n if (this is Collection)\n return this.toMutableList()\n return toCollection(ArrayList())\n}\n\n/**\n * Returns a new [MutableList] filled with all elements of this collection.\n */\npublic fun Collection.toMutableList(): MutableList {\n return ArrayList(this)\n}\n\n/**\n * Returns a [Set] of all elements.\n * \n * The returned set preserves the element iteration order of the original collection.\n */\npublic fun Iterable.toSet(): Set {\n if (this is Collection) {\n return when (size) {\n 0 -> emptySet()\n 1 -> setOf(if (this is List) this[0] else iterator().next())\n else -> toCollection(LinkedHashSet(mapCapacity(size)))\n }\n }\n return toCollection(LinkedHashSet()).optimizeReadOnlySet()\n}\n\n/**\n * Returns a single list of all elements yielded from results of [transform] function being invoked on each element of original collection.\n * \n * @sample samples.collections.Collections.Transformations.flatMap\n */\npublic inline fun Iterable.flatMap(transform: (T) -> Iterable): List {\n return flatMapTo(ArrayList(), transform)\n}\n\n/**\n * Returns a single list of all elements yielded from results of [transform] function being invoked on each element of original collection.\n * \n * @sample samples.collections.Collections.Transformations.flatMap\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapSequence\")\npublic inline fun Iterable.flatMap(transform: (T) -> Sequence): List {\n return flatMapTo(ArrayList(), transform)\n}\n\n/**\n * Returns a single list of all elements yielded from results of [transform] function being invoked on each element\n * and its index in the original collection.\n * \n * @sample samples.collections.Collections.Transformations.flatMapIndexed\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapIndexedIterable\")\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.flatMapIndexed(transform: (index: Int, T) -> Iterable): List {\n return flatMapIndexedTo(ArrayList(), transform)\n}\n\n/**\n * Returns a single list of all elements yielded from results of [transform] function being invoked on each element\n * and its index in the original collection.\n * \n * @sample samples.collections.Collections.Transformations.flatMapIndexed\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapIndexedSequence\")\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.flatMapIndexed(transform: (index: Int, T) -> Sequence): List {\n return flatMapIndexedTo(ArrayList(), transform)\n}\n\n/**\n * Appends all elements yielded from results of [transform] function being invoked on each element\n * and its index in the original collection, to the given [destination].\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapIndexedIterableTo\")\n@kotlin.internal.InlineOnly\npublic inline fun > Iterable.flatMapIndexedTo(destination: C, transform: (index: Int, T) -> Iterable): C {\n var index = 0\n for (element in this) {\n val list = transform(checkIndexOverflow(index++), element)\n destination.addAll(list)\n }\n return destination\n}\n\n/**\n * Appends all elements yielded from results of [transform] function being invoked on each element\n * and its index in the original collection, to the given [destination].\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapIndexedSequenceTo\")\n@kotlin.internal.InlineOnly\npublic inline fun > Iterable.flatMapIndexedTo(destination: C, transform: (index: Int, T) -> Sequence): C {\n var index = 0\n for (element in this) {\n val list = transform(checkIndexOverflow(index++), element)\n destination.addAll(list)\n }\n return destination\n}\n\n/**\n * Appends all elements yielded from results of [transform] function being invoked on each element of original collection, to the given [destination].\n */\npublic inline fun > Iterable.flatMapTo(destination: C, transform: (T) -> Iterable): C {\n for (element in this) {\n val list = transform(element)\n destination.addAll(list)\n }\n return destination\n}\n\n/**\n * Appends all elements yielded from results of [transform] function being invoked on each element of original collection, to the given [destination].\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapSequenceTo\")\npublic inline fun > Iterable.flatMapTo(destination: C, transform: (T) -> Sequence): C {\n for (element in this) {\n val list = transform(element)\n destination.addAll(list)\n }\n return destination\n}\n\n/**\n * Groups elements of the original collection by the key returned by the given [keySelector] function\n * applied to each element and returns a map where each group key is associated with a list of corresponding elements.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original collection.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\npublic inline fun Iterable.groupBy(keySelector: (T) -> K): Map> {\n return groupByTo(LinkedHashMap>(), keySelector)\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each element of the original collection\n * by the key returned by the given [keySelector] function applied to the element\n * and returns a map where each group key is associated with a list of corresponding values.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original collection.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\npublic inline fun Iterable.groupBy(keySelector: (T) -> K, valueTransform: (T) -> V): Map> {\n return groupByTo(LinkedHashMap>(), keySelector, valueTransform)\n}\n\n/**\n * Groups elements of the original collection by the key returned by the given [keySelector] function\n * applied to each element and puts to the [destination] map each group key associated with a list of corresponding elements.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\npublic inline fun >> Iterable.groupByTo(destination: M, keySelector: (T) -> K): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(element)\n }\n return destination\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each element of the original collection\n * by the key returned by the given [keySelector] function applied to the element\n * and puts to the [destination] map each group key associated with a list of corresponding values.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\npublic inline fun >> Iterable.groupByTo(destination: M, keySelector: (T) -> K, valueTransform: (T) -> V): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(valueTransform(element))\n }\n return destination\n}\n\n/**\n * Creates a [Grouping] source from a collection to be used later with one of group-and-fold operations\n * using the specified [keySelector] function to extract a key from each element.\n * \n * @sample samples.collections.Grouping.groupingByEachCount\n */\n@SinceKotlin(\"1.1\")\npublic inline fun Iterable.groupingBy(crossinline keySelector: (T) -> K): Grouping {\n return object : Grouping {\n override fun sourceIterator(): Iterator = this@groupingBy.iterator()\n override fun keyOf(element: T): K = keySelector(element)\n }\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each element in the original collection.\n * \n * @sample samples.collections.Collections.Transformations.map\n */\npublic inline fun Iterable.map(transform: (T) -> R): List {\n return mapTo(ArrayList(collectionSizeOrDefault(10)), transform)\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each element and its index in the original collection.\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun Iterable.mapIndexed(transform: (index: Int, T) -> R): List {\n return mapIndexedTo(ArrayList(collectionSizeOrDefault(10)), transform)\n}\n\n/**\n * Returns a list containing only the non-null results of applying the given [transform] function\n * to each element and its index in the original collection.\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun Iterable.mapIndexedNotNull(transform: (index: Int, T) -> R?): List {\n return mapIndexedNotNullTo(ArrayList(), transform)\n}\n\n/**\n * Applies the given [transform] function to each element and its index in the original collection\n * and appends only the non-null results to the given [destination].\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun > Iterable.mapIndexedNotNullTo(destination: C, transform: (index: Int, T) -> R?): C {\n forEachIndexed { index, element -> transform(index, element)?.let { destination.add(it) } }\n return destination\n}\n\n/**\n * Applies the given [transform] function to each element and its index in the original collection\n * and appends the results to the given [destination].\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun > Iterable.mapIndexedTo(destination: C, transform: (index: Int, T) -> R): C {\n var index = 0\n for (item in this)\n destination.add(transform(checkIndexOverflow(index++), item))\n return destination\n}\n\n/**\n * Returns a list containing only the non-null results of applying the given [transform] function\n * to each element in the original collection.\n * \n * @sample samples.collections.Collections.Transformations.mapNotNull\n */\npublic inline fun Iterable.mapNotNull(transform: (T) -> R?): List {\n return mapNotNullTo(ArrayList(), transform)\n}\n\n/**\n * Applies the given [transform] function to each element in the original collection\n * and appends only the non-null results to the given [destination].\n */\npublic inline fun > Iterable.mapNotNullTo(destination: C, transform: (T) -> R?): C {\n forEach { element -> transform(element)?.let { destination.add(it) } }\n return destination\n}\n\n/**\n * Applies the given [transform] function to each element of the original collection\n * and appends the results to the given [destination].\n */\npublic inline fun > Iterable.mapTo(destination: C, transform: (T) -> R): C {\n for (item in this)\n destination.add(transform(item))\n return destination\n}\n\n/**\n * Returns a lazy [Iterable] that wraps each element of the original collection\n * into an [IndexedValue] containing the index of that element and the element itself.\n */\npublic fun Iterable.withIndex(): Iterable> {\n return IndexingIterable { iterator() }\n}\n\n/**\n * Returns a list containing only distinct elements from the given collection.\n * \n * Among equal elements of the given collection, only the first one will be present in the resulting list.\n * The elements in the resulting list are in the same order as they were in the source collection.\n * \n * @sample samples.collections.Collections.Transformations.distinctAndDistinctBy\n */\npublic fun Iterable.distinct(): List {\n return this.toMutableSet().toList()\n}\n\n/**\n * Returns a list containing only elements from the given collection\n * having distinct keys returned by the given [selector] function.\n * \n * Among elements of the given collection with equal keys, only the first one will be present in the resulting list.\n * The elements in the resulting list are in the same order as they were in the source collection.\n * \n * @sample samples.collections.Collections.Transformations.distinctAndDistinctBy\n */\npublic inline fun Iterable.distinctBy(selector: (T) -> K): List {\n val set = HashSet()\n val list = ArrayList()\n for (e in this) {\n val key = selector(e)\n if (set.add(key))\n list.add(e)\n }\n return list\n}\n\n/**\n * Returns a set containing all elements that are contained by both this collection and the specified collection.\n * \n * The returned set preserves the element iteration order of the original collection.\n * \n * To get a set containing all elements that are contained at least in one of these collections use [union].\n */\npublic infix fun Iterable.intersect(other: Iterable): Set {\n val set = this.toMutableSet()\n set.retainAll(other)\n return set\n}\n\n/**\n * Returns a set containing all elements that are contained by this collection and not contained by the specified collection.\n * \n * The returned set preserves the element iteration order of the original collection.\n */\npublic infix fun Iterable.subtract(other: Iterable): Set {\n val set = this.toMutableSet()\n set.removeAll(other)\n return set\n}\n\n/**\n * Returns a new [MutableSet] containing all distinct elements from the given collection.\n * \n * The returned set preserves the element iteration order of the original collection.\n */\npublic fun Iterable.toMutableSet(): MutableSet {\n return when (this) {\n is Collection -> LinkedHashSet(this)\n else -> toCollection(LinkedHashSet())\n }\n}\n\n/**\n * Returns a set containing all distinct elements from both collections.\n * \n * The returned set preserves the element iteration order of the original collection.\n * Those elements of the [other] collection that are unique are iterated in the end\n * in the order of the [other] collection.\n * \n * To get a set containing all elements that are contained in both collections use [intersect].\n */\npublic infix fun Iterable.union(other: Iterable): Set {\n val set = this.toMutableSet()\n set.addAll(other)\n return set\n}\n\n/**\n * Returns `true` if all elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.all\n */\npublic inline fun Iterable.all(predicate: (T) -> Boolean): Boolean {\n if (this is Collection && isEmpty()) return true\n for (element in this) if (!predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if collection has at least one element.\n * \n * @sample samples.collections.Collections.Aggregates.any\n */\npublic fun Iterable.any(): Boolean {\n if (this is Collection) return !isEmpty()\n return iterator().hasNext()\n}\n\n/**\n * Returns `true` if at least one element matches the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.anyWithPredicate\n */\npublic inline fun Iterable.any(predicate: (T) -> Boolean): Boolean {\n if (this is Collection && isEmpty()) return false\n for (element in this) if (predicate(element)) return true\n return false\n}\n\n/**\n * Returns the number of elements in this collection.\n */\npublic fun Iterable.count(): Int {\n if (this is Collection) return size\n var count = 0\n for (element in this) checkCountOverflow(++count)\n return count\n}\n\n/**\n * Returns the number of elements in this collection.\n */\n@kotlin.internal.InlineOnly\npublic inline fun Collection.count(): Int {\n return size\n}\n\n/**\n * Returns the number of elements matching the given [predicate].\n */\npublic inline fun Iterable.count(predicate: (T) -> Boolean): Int {\n if (this is Collection && isEmpty()) return 0\n var count = 0\n for (element in this) if (predicate(element)) checkCountOverflow(++count)\n return count\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right\n * to current accumulator value and each element.\n * \n * Returns the specified [initial] value if the collection is empty.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n */\npublic inline fun Iterable.fold(initial: R, operation: (acc: R, T) -> R): R {\n var accumulator = initial\n for (element in this) accumulator = operation(accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original collection.\n * \n * Returns the specified [initial] value if the collection is empty.\n * \n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself, and calculates the next accumulator value.\n */\npublic inline fun Iterable.foldIndexed(initial: R, operation: (index: Int, acc: R, T) -> R): R {\n var index = 0\n var accumulator = initial\n for (element in this) accumulator = operation(checkIndexOverflow(index++), accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left\n * to each element and current accumulator value.\n * \n * Returns the specified [initial] value if the list is empty.\n * \n * @param [operation] function that takes an element and current accumulator value, and calculates the next accumulator value.\n */\npublic inline fun List.foldRight(initial: R, operation: (T, acc: R) -> R): R {\n var accumulator = initial\n if (!isEmpty()) {\n val iterator = listIterator(size)\n while (iterator.hasPrevious()) {\n accumulator = operation(iterator.previous(), accumulator)\n }\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left\n * to each element with its index in the original list and current accumulator value.\n * \n * Returns the specified [initial] value if the list is empty.\n * \n * @param [operation] function that takes the index of an element, the element itself\n * and current accumulator value, and calculates the next accumulator value.\n */\npublic inline fun List.foldRightIndexed(initial: R, operation: (index: Int, T, acc: R) -> R): R {\n var accumulator = initial\n if (!isEmpty()) {\n val iterator = listIterator(size)\n while (iterator.hasPrevious()) {\n val index = iterator.previousIndex()\n accumulator = operation(index, iterator.previous(), accumulator)\n }\n }\n return accumulator\n}\n\n/**\n * Performs the given [action] on each element.\n */\n@kotlin.internal.HidesMembers\npublic inline fun Iterable.forEach(action: (T) -> Unit): Unit {\n for (element in this) action(element)\n}\n\n/**\n * Performs the given [action] on each element, providing sequential index with the element.\n * @param [action] function that takes the index of an element and the element itself\n * and performs the action on the element.\n */\npublic inline fun Iterable.forEachIndexed(action: (index: Int, T) -> Unit): Unit {\n var index = 0\n for (item in this) action(checkIndexOverflow(index++), item)\n}\n\n@Deprecated(\"Use maxOrNull instead.\", ReplaceWith(\"this.maxOrNull()\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\n@SinceKotlin(\"1.1\")\npublic fun Iterable.max(): Double? {\n return maxOrNull()\n}\n\n@Deprecated(\"Use maxOrNull instead.\", ReplaceWith(\"this.maxOrNull()\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\n@SinceKotlin(\"1.1\")\npublic fun Iterable.max(): Float? {\n return maxOrNull()\n}\n\n@Deprecated(\"Use maxOrNull instead.\", ReplaceWith(\"this.maxOrNull()\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\npublic fun > Iterable.max(): T? {\n return maxOrNull()\n}\n\n@Deprecated(\"Use maxByOrNull instead.\", ReplaceWith(\"this.maxByOrNull(selector)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\npublic inline fun > Iterable.maxBy(selector: (T) -> R): T? {\n return maxByOrNull(selector)\n}\n\n/**\n * Returns the first element yielding the largest value of the given function or `null` if there are no elements.\n * \n * @sample samples.collections.Collections.Aggregates.maxByOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun > Iterable.maxByOrNull(selector: (T) -> R): T? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var maxElem = iterator.next()\n if (!iterator.hasNext()) return maxElem\n var maxValue = selector(maxElem)\n do {\n val e = iterator.next()\n val v = selector(e)\n if (maxValue < v) {\n maxElem = e\n maxValue = v\n }\n } while (iterator.hasNext())\n return maxElem\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the collection.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the collection is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.maxOf(selector: (T) -> Double): Double {\n val iterator = iterator()\n if (!iterator.hasNext()) throw NoSuchElementException()\n var maxValue = selector(iterator.next())\n while (iterator.hasNext()) {\n val v = selector(iterator.next())\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the collection.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the collection is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.maxOf(selector: (T) -> Float): Float {\n val iterator = iterator()\n if (!iterator.hasNext()) throw NoSuchElementException()\n var maxValue = selector(iterator.next())\n while (iterator.hasNext()) {\n val v = selector(iterator.next())\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the collection.\n * \n * @throws NoSuchElementException if the collection is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > Iterable.maxOf(selector: (T) -> R): R {\n val iterator = iterator()\n if (!iterator.hasNext()) throw NoSuchElementException()\n var maxValue = selector(iterator.next())\n while (iterator.hasNext()) {\n val v = selector(iterator.next())\n if (maxValue < v) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the collection or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.maxOfOrNull(selector: (T) -> Double): Double? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var maxValue = selector(iterator.next())\n while (iterator.hasNext()) {\n val v = selector(iterator.next())\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the collection or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.maxOfOrNull(selector: (T) -> Float): Float? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var maxValue = selector(iterator.next())\n while (iterator.hasNext()) {\n val v = selector(iterator.next())\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the collection or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > Iterable.maxOfOrNull(selector: (T) -> R): R? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var maxValue = selector(iterator.next())\n while (iterator.hasNext()) {\n val v = selector(iterator.next())\n if (maxValue < v) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the collection.\n * \n * @throws NoSuchElementException if the collection is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.maxOfWith(comparator: Comparator, selector: (T) -> R): R {\n val iterator = iterator()\n if (!iterator.hasNext()) throw NoSuchElementException()\n var maxValue = selector(iterator.next())\n while (iterator.hasNext()) {\n val v = selector(iterator.next())\n if (comparator.compare(maxValue, v) < 0) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the collection or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.maxOfWithOrNull(comparator: Comparator, selector: (T) -> R): R? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var maxValue = selector(iterator.next())\n while (iterator.hasNext()) {\n val v = selector(iterator.next())\n if (comparator.compare(maxValue, v) < 0) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest element or `null` if there are no elements.\n * \n * If any of elements is `NaN` returns `NaN`.\n */\n@SinceKotlin(\"1.4\")\npublic fun Iterable.maxOrNull(): Double? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var max = iterator.next()\n while (iterator.hasNext()) {\n val e = iterator.next()\n max = maxOf(max, e)\n }\n return max\n}\n\n/**\n * Returns the largest element or `null` if there are no elements.\n * \n * If any of elements is `NaN` returns `NaN`.\n */\n@SinceKotlin(\"1.4\")\npublic fun Iterable.maxOrNull(): Float? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var max = iterator.next()\n while (iterator.hasNext()) {\n val e = iterator.next()\n max = maxOf(max, e)\n }\n return max\n}\n\n/**\n * Returns the largest element or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\npublic fun > Iterable.maxOrNull(): T? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var max = iterator.next()\n while (iterator.hasNext()) {\n val e = iterator.next()\n if (max < e) max = e\n }\n return max\n}\n\n@Deprecated(\"Use maxWithOrNull instead.\", ReplaceWith(\"this.maxWithOrNull(comparator)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\npublic fun Iterable.maxWith(comparator: Comparator): T? {\n return maxWithOrNull(comparator)\n}\n\n/**\n * Returns the first element having the largest value according to the provided [comparator] or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\npublic fun Iterable.maxWithOrNull(comparator: Comparator): T? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var max = iterator.next()\n while (iterator.hasNext()) {\n val e = iterator.next()\n if (comparator.compare(max, e) < 0) max = e\n }\n return max\n}\n\n@Deprecated(\"Use minOrNull instead.\", ReplaceWith(\"this.minOrNull()\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\n@SinceKotlin(\"1.1\")\npublic fun Iterable.min(): Double? {\n return minOrNull()\n}\n\n@Deprecated(\"Use minOrNull instead.\", ReplaceWith(\"this.minOrNull()\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\n@SinceKotlin(\"1.1\")\npublic fun Iterable.min(): Float? {\n return minOrNull()\n}\n\n@Deprecated(\"Use minOrNull instead.\", ReplaceWith(\"this.minOrNull()\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\npublic fun > Iterable.min(): T? {\n return minOrNull()\n}\n\n@Deprecated(\"Use minByOrNull instead.\", ReplaceWith(\"this.minByOrNull(selector)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\npublic inline fun > Iterable.minBy(selector: (T) -> R): T? {\n return minByOrNull(selector)\n}\n\n/**\n * Returns the first element yielding the smallest value of the given function or `null` if there are no elements.\n * \n * @sample samples.collections.Collections.Aggregates.minByOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun > Iterable.minByOrNull(selector: (T) -> R): T? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var minElem = iterator.next()\n if (!iterator.hasNext()) return minElem\n var minValue = selector(minElem)\n do {\n val e = iterator.next()\n val v = selector(e)\n if (minValue > v) {\n minElem = e\n minValue = v\n }\n } while (iterator.hasNext())\n return minElem\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the collection.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the collection is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.minOf(selector: (T) -> Double): Double {\n val iterator = iterator()\n if (!iterator.hasNext()) throw NoSuchElementException()\n var minValue = selector(iterator.next())\n while (iterator.hasNext()) {\n val v = selector(iterator.next())\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the collection.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the collection is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.minOf(selector: (T) -> Float): Float {\n val iterator = iterator()\n if (!iterator.hasNext()) throw NoSuchElementException()\n var minValue = selector(iterator.next())\n while (iterator.hasNext()) {\n val v = selector(iterator.next())\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the collection.\n * \n * @throws NoSuchElementException if the collection is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > Iterable.minOf(selector: (T) -> R): R {\n val iterator = iterator()\n if (!iterator.hasNext()) throw NoSuchElementException()\n var minValue = selector(iterator.next())\n while (iterator.hasNext()) {\n val v = selector(iterator.next())\n if (minValue > v) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the collection or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.minOfOrNull(selector: (T) -> Double): Double? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var minValue = selector(iterator.next())\n while (iterator.hasNext()) {\n val v = selector(iterator.next())\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the collection or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.minOfOrNull(selector: (T) -> Float): Float? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var minValue = selector(iterator.next())\n while (iterator.hasNext()) {\n val v = selector(iterator.next())\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the collection or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > Iterable.minOfOrNull(selector: (T) -> R): R? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var minValue = selector(iterator.next())\n while (iterator.hasNext()) {\n val v = selector(iterator.next())\n if (minValue > v) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the collection.\n * \n * @throws NoSuchElementException if the collection is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.minOfWith(comparator: Comparator, selector: (T) -> R): R {\n val iterator = iterator()\n if (!iterator.hasNext()) throw NoSuchElementException()\n var minValue = selector(iterator.next())\n while (iterator.hasNext()) {\n val v = selector(iterator.next())\n if (comparator.compare(minValue, v) > 0) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the collection or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.minOfWithOrNull(comparator: Comparator, selector: (T) -> R): R? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var minValue = selector(iterator.next())\n while (iterator.hasNext()) {\n val v = selector(iterator.next())\n if (comparator.compare(minValue, v) > 0) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest element or `null` if there are no elements.\n * \n * If any of elements is `NaN` returns `NaN`.\n */\n@SinceKotlin(\"1.4\")\npublic fun Iterable.minOrNull(): Double? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var min = iterator.next()\n while (iterator.hasNext()) {\n val e = iterator.next()\n min = minOf(min, e)\n }\n return min\n}\n\n/**\n * Returns the smallest element or `null` if there are no elements.\n * \n * If any of elements is `NaN` returns `NaN`.\n */\n@SinceKotlin(\"1.4\")\npublic fun Iterable.minOrNull(): Float? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var min = iterator.next()\n while (iterator.hasNext()) {\n val e = iterator.next()\n min = minOf(min, e)\n }\n return min\n}\n\n/**\n * Returns the smallest element or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\npublic fun > Iterable.minOrNull(): T? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var min = iterator.next()\n while (iterator.hasNext()) {\n val e = iterator.next()\n if (min > e) min = e\n }\n return min\n}\n\n@Deprecated(\"Use minWithOrNull instead.\", ReplaceWith(\"this.minWithOrNull(comparator)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\npublic fun Iterable.minWith(comparator: Comparator): T? {\n return minWithOrNull(comparator)\n}\n\n/**\n * Returns the first element having the smallest value according to the provided [comparator] or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\npublic fun Iterable.minWithOrNull(comparator: Comparator): T? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var min = iterator.next()\n while (iterator.hasNext()) {\n val e = iterator.next()\n if (comparator.compare(min, e) > 0) min = e\n }\n return min\n}\n\n/**\n * Returns `true` if the collection has no elements.\n * \n * @sample samples.collections.Collections.Aggregates.none\n */\npublic fun Iterable.none(): Boolean {\n if (this is Collection) return isEmpty()\n return !iterator().hasNext()\n}\n\n/**\n * Returns `true` if no elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.noneWithPredicate\n */\npublic inline fun Iterable.none(predicate: (T) -> Boolean): Boolean {\n if (this is Collection && isEmpty()) return true\n for (element in this) if (predicate(element)) return false\n return true\n}\n\n/**\n * Performs the given [action] on each element and returns the collection itself afterwards.\n */\n@SinceKotlin(\"1.1\")\npublic inline fun > C.onEach(action: (T) -> Unit): C {\n return apply { for (element in this) action(element) }\n}\n\n/**\n * Performs the given [action] on each element, providing sequential index with the element,\n * and returns the collection itself afterwards.\n * @param [action] function that takes the index of an element and the element itself\n * and performs the action on the element.\n */\n@SinceKotlin(\"1.4\")\npublic inline fun > C.onEachIndexed(action: (index: Int, T) -> Unit): C {\n return apply { forEachIndexed(action) }\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right\n * to current accumulator value and each element.\n * \n * Throws an exception if this collection is empty. If the collection can be empty in an expected way,\n * please use [reduceOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes current accumulator value and an element,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduce\n */\npublic inline fun Iterable.reduce(operation: (acc: S, T) -> S): S {\n val iterator = this.iterator()\n if (!iterator.hasNext()) throw UnsupportedOperationException(\"Empty collection can't be reduced.\")\n var accumulator: S = iterator.next()\n while (iterator.hasNext()) {\n accumulator = operation(accumulator, iterator.next())\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original collection.\n * \n * Throws an exception if this collection is empty. If the collection can be empty in an expected way,\n * please use [reduceIndexedOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes the index of an element, current accumulator value and the element itself,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduce\n */\npublic inline fun Iterable.reduceIndexed(operation: (index: Int, acc: S, T) -> S): S {\n val iterator = this.iterator()\n if (!iterator.hasNext()) throw UnsupportedOperationException(\"Empty collection can't be reduced.\")\n var index = 1\n var accumulator: S = iterator.next()\n while (iterator.hasNext()) {\n accumulator = operation(checkIndexOverflow(index++), accumulator, iterator.next())\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original collection.\n * \n * Returns `null` if the collection is empty.\n * \n * @param [operation] function that takes the index of an element, current accumulator value and the element itself,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun Iterable.reduceIndexedOrNull(operation: (index: Int, acc: S, T) -> S): S? {\n val iterator = this.iterator()\n if (!iterator.hasNext()) return null\n var index = 1\n var accumulator: S = iterator.next()\n while (iterator.hasNext()) {\n accumulator = operation(checkIndexOverflow(index++), accumulator, iterator.next())\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right\n * to current accumulator value and each element.\n * \n * Returns `null` if the collection is empty.\n * \n * @param [operation] function that takes current accumulator value and an element,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceOrNull\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic inline fun Iterable.reduceOrNull(operation: (acc: S, T) -> S): S? {\n val iterator = this.iterator()\n if (!iterator.hasNext()) return null\n var accumulator: S = iterator.next()\n while (iterator.hasNext()) {\n accumulator = operation(accumulator, iterator.next())\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the last element and applying [operation] from right to left\n * to each element and current accumulator value.\n * \n * Throws an exception if this list is empty. If the list can be empty in an expected way,\n * please use [reduceRightOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes an element and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRight\n */\npublic inline fun List.reduceRight(operation: (T, acc: S) -> S): S {\n val iterator = listIterator(size)\n if (!iterator.hasPrevious())\n throw UnsupportedOperationException(\"Empty list can't be reduced.\")\n var accumulator: S = iterator.previous()\n while (iterator.hasPrevious()) {\n accumulator = operation(iterator.previous(), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the last element and applying [operation] from right to left\n * to each element with its index in the original list and current accumulator value.\n * \n * Throws an exception if this list is empty. If the list can be empty in an expected way,\n * please use [reduceRightIndexedOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes the index of an element, the element itself and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRight\n */\npublic inline fun List.reduceRightIndexed(operation: (index: Int, T, acc: S) -> S): S {\n val iterator = listIterator(size)\n if (!iterator.hasPrevious())\n throw UnsupportedOperationException(\"Empty list can't be reduced.\")\n var accumulator: S = iterator.previous()\n while (iterator.hasPrevious()) {\n val index = iterator.previousIndex()\n accumulator = operation(index, iterator.previous(), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the last element and applying [operation] from right to left\n * to each element with its index in the original list and current accumulator value.\n * \n * Returns `null` if the list is empty.\n * \n * @param [operation] function that takes the index of an element, the element itself and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRightOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun List.reduceRightIndexedOrNull(operation: (index: Int, T, acc: S) -> S): S? {\n val iterator = listIterator(size)\n if (!iterator.hasPrevious())\n return null\n var accumulator: S = iterator.previous()\n while (iterator.hasPrevious()) {\n val index = iterator.previousIndex()\n accumulator = operation(index, iterator.previous(), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the last element and applying [operation] from right to left\n * to each element and current accumulator value.\n * \n * Returns `null` if the list is empty.\n * \n * @param [operation] function that takes an element and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRightOrNull\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic inline fun List.reduceRightOrNull(operation: (T, acc: S) -> S): S? {\n val iterator = listIterator(size)\n if (!iterator.hasPrevious())\n return null\n var accumulator: S = iterator.previous()\n while (iterator.hasPrevious()) {\n accumulator = operation(iterator.previous(), accumulator)\n }\n return accumulator\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningFold\n */\n@SinceKotlin(\"1.4\")\npublic inline fun Iterable.runningFold(initial: R, operation: (acc: R, T) -> R): List {\n val estimatedSize = collectionSizeOrDefault(9)\n if (estimatedSize == 0) return listOf(initial)\n val result = ArrayList(estimatedSize + 1).apply { add(initial) }\n var accumulator = initial\n for (element in this) {\n accumulator = operation(accumulator, element)\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original collection and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningFold\n */\n@SinceKotlin(\"1.4\")\npublic inline fun Iterable.runningFoldIndexed(initial: R, operation: (index: Int, acc: R, T) -> R): List {\n val estimatedSize = collectionSizeOrDefault(9)\n if (estimatedSize == 0) return listOf(initial)\n val result = ArrayList(estimatedSize + 1).apply { add(initial) }\n var index = 0\n var accumulator = initial\n for (element in this) {\n accumulator = operation(index++, accumulator, element)\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with the first element of this collection.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes current accumulator value and the element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningReduce\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic inline fun Iterable.runningReduce(operation: (acc: S, T) -> S): List {\n val iterator = this.iterator()\n if (!iterator.hasNext()) return emptyList()\n var accumulator: S = iterator.next()\n val result = ArrayList(collectionSizeOrDefault(10)).apply { add(accumulator) }\n while (iterator.hasNext()) {\n accumulator = operation(accumulator, iterator.next())\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original collection and current accumulator value that starts with the first element of this collection.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningReduce\n */\n@SinceKotlin(\"1.4\")\npublic inline fun Iterable.runningReduceIndexed(operation: (index: Int, acc: S, T) -> S): List {\n val iterator = this.iterator()\n if (!iterator.hasNext()) return emptyList()\n var accumulator: S = iterator.next()\n val result = ArrayList(collectionSizeOrDefault(10)).apply { add(accumulator) }\n var index = 1\n while (iterator.hasNext()) {\n accumulator = operation(index++, accumulator, iterator.next())\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.scan\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic inline fun Iterable.scan(initial: R, operation: (acc: R, T) -> R): List {\n return runningFold(initial, operation)\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original collection and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.scan\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic inline fun Iterable.scanIndexed(initial: R, operation: (index: Int, acc: R, T) -> R): List {\n return runningFoldIndexed(initial, operation)\n}\n\n@Deprecated(\"Use runningReduce instead.\", ReplaceWith(\"runningReduce(operation)\"), level = DeprecationLevel.ERROR)\n@SinceKotlin(\"1.3\")\n@ExperimentalStdlibApi\npublic inline fun Iterable.scanReduce(operation: (acc: S, T) -> S): List {\n return runningReduce(operation)\n}\n\n@Deprecated(\"Use runningReduceIndexed instead.\", ReplaceWith(\"runningReduceIndexed(operation)\"), level = DeprecationLevel.ERROR)\n@SinceKotlin(\"1.3\")\n@ExperimentalStdlibApi\npublic inline fun Iterable.scanReduceIndexed(operation: (index: Int, acc: S, T) -> S): List {\n return runningReduceIndexed(operation)\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the collection.\n */\npublic inline fun Iterable.sumBy(selector: (T) -> Int): Int {\n var sum: Int = 0\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the collection.\n */\npublic inline fun Iterable.sumByDouble(selector: (T) -> Double): Double {\n var sum: Double = 0.0\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the collection.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfDouble\")\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.sumOf(selector: (T) -> Double): Double {\n var sum: Double = 0.toDouble()\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the collection.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfInt\")\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.sumOf(selector: (T) -> Int): Int {\n var sum: Int = 0.toInt()\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the collection.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfLong\")\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.sumOf(selector: (T) -> Long): Long {\n var sum: Long = 0.toLong()\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the collection.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfUInt\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.sumOf(selector: (T) -> UInt): UInt {\n var sum: UInt = 0.toUInt()\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the collection.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfULong\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.sumOf(selector: (T) -> ULong): ULong {\n var sum: ULong = 0.toULong()\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns an original collection containing all the non-`null` elements, throwing an [IllegalArgumentException] if there are any `null` elements.\n */\npublic fun Iterable.requireNoNulls(): Iterable {\n for (element in this) {\n if (element == null) {\n throw IllegalArgumentException(\"null element found in $this.\")\n }\n }\n @Suppress(\"UNCHECKED_CAST\")\n return this as Iterable\n}\n\n/**\n * Returns an original collection containing all the non-`null` elements, throwing an [IllegalArgumentException] if there are any `null` elements.\n */\npublic fun List.requireNoNulls(): List {\n for (element in this) {\n if (element == null) {\n throw IllegalArgumentException(\"null element found in $this.\")\n }\n }\n @Suppress(\"UNCHECKED_CAST\")\n return this as List\n}\n\n/**\n * Splits this collection into a list of lists each not exceeding the given [size].\n * \n * The last list in the resulting list may have fewer elements than the given [size].\n * \n * @param size the number of elements to take in each list, must be positive and can be greater than the number of elements in this collection.\n * \n * @sample samples.collections.Collections.Transformations.chunked\n */\n@SinceKotlin(\"1.2\")\npublic fun Iterable.chunked(size: Int): List> {\n return windowed(size, size, partialWindows = true)\n}\n\n/**\n * Splits this collection into several lists each not exceeding the given [size]\n * and applies the given [transform] function to an each.\n * \n * @return list of results of the [transform] applied to an each list.\n * \n * Note that the list passed to the [transform] function is ephemeral and is valid only inside that function.\n * You should not store it or allow it to escape in some way, unless you made a snapshot of it.\n * The last list may have fewer elements than the given [size].\n * \n * @param size the number of elements to take in each list, must be positive and can be greater than the number of elements in this collection.\n * \n * @sample samples.text.Strings.chunkedTransform\n */\n@SinceKotlin(\"1.2\")\npublic fun Iterable.chunked(size: Int, transform: (List) -> R): List {\n return windowed(size, size, partialWindows = true, transform = transform)\n}\n\n/**\n * Returns a list containing all elements of the original collection without the first occurrence of the given [element].\n */\npublic operator fun Iterable.minus(element: T): List {\n val result = ArrayList(collectionSizeOrDefault(10))\n var removed = false\n return this.filterTo(result) { if (!removed && it == element) { removed = true; false } else true }\n}\n\n/**\n * Returns a list containing all elements of the original collection except the elements contained in the given [elements] array.\n * \n * The [elements] array may be converted to a [HashSet] to speed up the operation, thus the elements are required to have\n * a correct and stable implementation of `hashCode()` that doesn't change between successive invocations.\n */\npublic operator fun Iterable.minus(elements: Array): List {\n if (elements.isEmpty()) return this.toList()\n val other = elements.toHashSet()\n return this.filterNot { it in other }\n}\n\n/**\n * Returns a list containing all elements of the original collection except the elements contained in the given [elements] collection.\n * \n * The [elements] collection may be converted to a [HashSet] to speed up the operation, thus the elements are required to have\n * a correct and stable implementation of `hashCode()` that doesn't change between successive invocations.\n */\npublic operator fun Iterable.minus(elements: Iterable): List {\n val other = elements.convertToSetForSetOperationWith(this)\n if (other.isEmpty())\n return this.toList()\n return this.filterNot { it in other }\n}\n\n/**\n * Returns a list containing all elements of the original collection except the elements contained in the given [elements] sequence.\n * \n * The [elements] sequence may be converted to a [HashSet] to speed up the operation, thus the elements are required to have\n * a correct and stable implementation of `hashCode()` that doesn't change between successive invocations.\n */\npublic operator fun Iterable.minus(elements: Sequence): List {\n val other = elements.toHashSet()\n if (other.isEmpty())\n return this.toList()\n return this.filterNot { it in other }\n}\n\n/**\n * Returns a list containing all elements of the original collection without the first occurrence of the given [element].\n */\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.minusElement(element: T): List {\n return minus(element)\n}\n\n/**\n * Splits the original collection into pair of lists,\n * where *first* list contains elements for which [predicate] yielded `true`,\n * while *second* list contains elements for which [predicate] yielded `false`.\n * \n * @sample samples.collections.Iterables.Operations.partition\n */\npublic inline fun Iterable.partition(predicate: (T) -> Boolean): Pair, List> {\n val first = ArrayList()\n val second = ArrayList()\n for (element in this) {\n if (predicate(element)) {\n first.add(element)\n } else {\n second.add(element)\n }\n }\n return Pair(first, second)\n}\n\n/**\n * Returns a list containing all elements of the original collection and then the given [element].\n */\npublic operator fun Iterable.plus(element: T): List {\n if (this is Collection) return this.plus(element)\n val result = ArrayList()\n result.addAll(this)\n result.add(element)\n return result\n}\n\n/**\n * Returns a list containing all elements of the original collection and then the given [element].\n */\npublic operator fun Collection.plus(element: T): List {\n val result = ArrayList(size + 1)\n result.addAll(this)\n result.add(element)\n return result\n}\n\n/**\n * Returns a list containing all elements of the original collection and then all elements of the given [elements] array.\n */\npublic operator fun Iterable.plus(elements: Array): List {\n if (this is Collection) return this.plus(elements)\n val result = ArrayList()\n result.addAll(this)\n result.addAll(elements)\n return result\n}\n\n/**\n * Returns a list containing all elements of the original collection and then all elements of the given [elements] array.\n */\npublic operator fun Collection.plus(elements: Array): List {\n val result = ArrayList(this.size + elements.size)\n result.addAll(this)\n result.addAll(elements)\n return result\n}\n\n/**\n * Returns a list containing all elements of the original collection and then all elements of the given [elements] collection.\n */\npublic operator fun Iterable.plus(elements: Iterable): List {\n if (this is Collection) return this.plus(elements)\n val result = ArrayList()\n result.addAll(this)\n result.addAll(elements)\n return result\n}\n\n/**\n * Returns a list containing all elements of the original collection and then all elements of the given [elements] collection.\n */\npublic operator fun Collection.plus(elements: Iterable): List {\n if (elements is Collection) {\n val result = ArrayList(this.size + elements.size)\n result.addAll(this)\n result.addAll(elements)\n return result\n } else {\n val result = ArrayList(this)\n result.addAll(elements)\n return result\n }\n}\n\n/**\n * Returns a list containing all elements of the original collection and then all elements of the given [elements] sequence.\n */\npublic operator fun Iterable.plus(elements: Sequence): List {\n val result = ArrayList()\n result.addAll(this)\n result.addAll(elements)\n return result\n}\n\n/**\n * Returns a list containing all elements of the original collection and then all elements of the given [elements] sequence.\n */\npublic operator fun Collection.plus(elements: Sequence): List {\n val result = ArrayList(this.size + 10)\n result.addAll(this)\n result.addAll(elements)\n return result\n}\n\n/**\n * Returns a list containing all elements of the original collection and then the given [element].\n */\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.plusElement(element: T): List {\n return plus(element)\n}\n\n/**\n * Returns a list containing all elements of the original collection and then the given [element].\n */\n@kotlin.internal.InlineOnly\npublic inline fun Collection.plusElement(element: T): List {\n return plus(element)\n}\n\n/**\n * Returns a list of snapshots of the window of the given [size]\n * sliding along this collection with the given [step], where each\n * snapshot is a list.\n * \n * Several last lists may have fewer elements than the given [size].\n * \n * Both [size] and [step] must be positive and can be greater than the number of elements in this collection.\n * @param size the number of elements to take in each window\n * @param step the number of elements to move the window forward by on an each step, by default 1\n * @param partialWindows controls whether or not to keep partial windows in the end if any,\n * by default `false` which means partial windows won't be preserved\n * \n * @sample samples.collections.Sequences.Transformations.takeWindows\n */\n@SinceKotlin(\"1.2\")\npublic fun Iterable.windowed(size: Int, step: Int = 1, partialWindows: Boolean = false): List> {\n checkWindowSizeStep(size, step)\n if (this is RandomAccess && this is List) {\n val thisSize = this.size\n val resultCapacity = thisSize / step + if (thisSize % step == 0) 0 else 1\n val result = ArrayList>(resultCapacity)\n var index = 0\n while (index in 0 until thisSize) {\n val windowSize = size.coerceAtMost(thisSize - index)\n if (windowSize < size && !partialWindows) break\n result.add(List(windowSize) { this[it + index] })\n index += step\n }\n return result\n }\n val result = ArrayList>()\n windowedIterator(iterator(), size, step, partialWindows, reuseBuffer = false).forEach {\n result.add(it)\n }\n return result\n}\n\n/**\n * Returns a list of results of applying the given [transform] function to\n * an each list representing a view over the window of the given [size]\n * sliding along this collection with the given [step].\n * \n * Note that the list passed to the [transform] function is ephemeral and is valid only inside that function.\n * You should not store it or allow it to escape in some way, unless you made a snapshot of it.\n * Several last lists may have fewer elements than the given [size].\n * \n * Both [size] and [step] must be positive and can be greater than the number of elements in this collection.\n * @param size the number of elements to take in each window\n * @param step the number of elements to move the window forward by on an each step, by default 1\n * @param partialWindows controls whether or not to keep partial windows in the end if any,\n * by default `false` which means partial windows won't be preserved\n * \n * @sample samples.collections.Sequences.Transformations.averageWindows\n */\n@SinceKotlin(\"1.2\")\npublic fun Iterable.windowed(size: Int, step: Int = 1, partialWindows: Boolean = false, transform: (List) -> R): List {\n checkWindowSizeStep(size, step)\n if (this is RandomAccess && this is List) {\n val thisSize = this.size\n val resultCapacity = thisSize / step + if (thisSize % step == 0) 0 else 1\n val result = ArrayList(resultCapacity)\n val window = MovingSubList(this)\n var index = 0\n while (index in 0 until thisSize) {\n val windowSize = size.coerceAtMost(thisSize - index)\n if (!partialWindows && windowSize < size) break\n window.move(index, index + windowSize)\n result.add(transform(window))\n index += step\n }\n return result\n }\n val result = ArrayList()\n windowedIterator(iterator(), size, step, partialWindows, reuseBuffer = true).forEach {\n result.add(transform(it))\n }\n return result\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` collection and the [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun Iterable.zip(other: Array): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of values built from the elements of `this` collection and the [other] array with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun Iterable.zip(other: Array, transform: (a: T, b: R) -> V): List {\n val arraySize = other.size\n val list = ArrayList(minOf(collectionSizeOrDefault(10), arraySize))\n var i = 0\n for (element in this) {\n if (i >= arraySize) break\n list.add(transform(element, other[i++]))\n }\n return list\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` collection and [other] collection with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun Iterable.zip(other: Iterable): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of values built from the elements of `this` collection and the [other] collection with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun Iterable.zip(other: Iterable, transform: (a: T, b: R) -> V): List {\n val first = iterator()\n val second = other.iterator()\n val list = ArrayList(minOf(collectionSizeOrDefault(10), other.collectionSizeOrDefault(10)))\n while (first.hasNext() && second.hasNext()) {\n list.add(transform(first.next(), second.next()))\n }\n return list\n}\n\n/**\n * Returns a list of pairs of each two adjacent elements in this collection.\n * \n * The returned list is empty if this collection contains less than two elements.\n * \n * @sample samples.collections.Collections.Transformations.zipWithNext\n */\n@SinceKotlin(\"1.2\")\npublic fun Iterable.zipWithNext(): List> {\n return zipWithNext { a, b -> a to b }\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to an each pair of two adjacent elements in this collection.\n * \n * The returned list is empty if this collection contains less than two elements.\n * \n * @sample samples.collections.Collections.Transformations.zipWithNextToFindDeltas\n */\n@SinceKotlin(\"1.2\")\npublic inline fun Iterable.zipWithNext(transform: (a: T, b: T) -> R): List {\n val iterator = iterator()\n if (!iterator.hasNext()) return emptyList()\n val result = mutableListOf()\n var current = iterator.next()\n while (iterator.hasNext()) {\n val next = iterator.next()\n result.add(transform(current, next))\n current = next\n }\n return result\n}\n\n/**\n * Appends the string from all the elements separated using [separator] and using the given [prefix] and [postfix] if supplied.\n * \n * If the collection could be huge, you can specify a non-negative value of [limit], in which case only the first [limit]\n * elements will be appended, followed by the [truncated] string (which defaults to \"...\").\n * \n * @sample samples.collections.Collections.Transformations.joinTo\n */\npublic fun Iterable.joinTo(buffer: A, separator: CharSequence = \", \", prefix: CharSequence = \"\", postfix: CharSequence = \"\", limit: Int = -1, truncated: CharSequence = \"...\", transform: ((T) -> CharSequence)? = null): A {\n buffer.append(prefix)\n var count = 0\n for (element in this) {\n if (++count > 1) buffer.append(separator)\n if (limit < 0 || count <= limit) {\n buffer.appendElement(element, transform)\n } else break\n }\n if (limit >= 0 && count > limit) buffer.append(truncated)\n buffer.append(postfix)\n return buffer\n}\n\n/**\n * Creates a string from all the elements separated using [separator] and using the given [prefix] and [postfix] if supplied.\n * \n * If the collection could be huge, you can specify a non-negative value of [limit], in which case only the first [limit]\n * elements will be appended, followed by the [truncated] string (which defaults to \"...\").\n * \n * @sample samples.collections.Collections.Transformations.joinToString\n */\npublic fun Iterable.joinToString(separator: CharSequence = \", \", prefix: CharSequence = \"\", postfix: CharSequence = \"\", limit: Int = -1, truncated: CharSequence = \"...\", transform: ((T) -> CharSequence)? = null): String {\n return joinTo(StringBuilder(), separator, prefix, postfix, limit, truncated, transform).toString()\n}\n\n/**\n * Returns this collection as an [Iterable].\n */\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.asIterable(): Iterable {\n return this\n}\n\n/**\n * Creates a [Sequence] instance that wraps the original collection returning its elements when being iterated.\n * \n * @sample samples.collections.Sequences.Building.sequenceFromCollection\n */\npublic fun Iterable.asSequence(): Sequence {\n return Sequence { this.iterator() }\n}\n\n/**\n * Returns an average value of elements in the collection.\n */\n@kotlin.jvm.JvmName(\"averageOfByte\")\npublic fun Iterable.average(): Double {\n var sum: Double = 0.0\n var count: Int = 0\n for (element in this) {\n sum += element\n checkCountOverflow(++count)\n }\n return if (count == 0) Double.NaN else sum / count\n}\n\n/**\n * Returns an average value of elements in the collection.\n */\n@kotlin.jvm.JvmName(\"averageOfShort\")\npublic fun Iterable.average(): Double {\n var sum: Double = 0.0\n var count: Int = 0\n for (element in this) {\n sum += element\n checkCountOverflow(++count)\n }\n return if (count == 0) Double.NaN else sum / count\n}\n\n/**\n * Returns an average value of elements in the collection.\n */\n@kotlin.jvm.JvmName(\"averageOfInt\")\npublic fun Iterable.average(): Double {\n var sum: Double = 0.0\n var count: Int = 0\n for (element in this) {\n sum += element\n checkCountOverflow(++count)\n }\n return if (count == 0) Double.NaN else sum / count\n}\n\n/**\n * Returns an average value of elements in the collection.\n */\n@kotlin.jvm.JvmName(\"averageOfLong\")\npublic fun Iterable.average(): Double {\n var sum: Double = 0.0\n var count: Int = 0\n for (element in this) {\n sum += element\n checkCountOverflow(++count)\n }\n return if (count == 0) Double.NaN else sum / count\n}\n\n/**\n * Returns an average value of elements in the collection.\n */\n@kotlin.jvm.JvmName(\"averageOfFloat\")\npublic fun Iterable.average(): Double {\n var sum: Double = 0.0\n var count: Int = 0\n for (element in this) {\n sum += element\n checkCountOverflow(++count)\n }\n return if (count == 0) Double.NaN else sum / count\n}\n\n/**\n * Returns an average value of elements in the collection.\n */\n@kotlin.jvm.JvmName(\"averageOfDouble\")\npublic fun Iterable.average(): Double {\n var sum: Double = 0.0\n var count: Int = 0\n for (element in this) {\n sum += element\n checkCountOverflow(++count)\n }\n return if (count == 0) Double.NaN else sum / count\n}\n\n/**\n * Returns the sum of all elements in the collection.\n */\n@kotlin.jvm.JvmName(\"sumOfByte\")\npublic fun Iterable.sum(): Int {\n var sum: Int = 0\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n/**\n * Returns the sum of all elements in the collection.\n */\n@kotlin.jvm.JvmName(\"sumOfShort\")\npublic fun Iterable.sum(): Int {\n var sum: Int = 0\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n/**\n * Returns the sum of all elements in the collection.\n */\n@kotlin.jvm.JvmName(\"sumOfInt\")\npublic fun Iterable.sum(): Int {\n var sum: Int = 0\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n/**\n * Returns the sum of all elements in the collection.\n */\n@kotlin.jvm.JvmName(\"sumOfLong\")\npublic fun Iterable.sum(): Long {\n var sum: Long = 0L\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n/**\n * Returns the sum of all elements in the collection.\n */\n@kotlin.jvm.JvmName(\"sumOfFloat\")\npublic fun Iterable.sum(): Float {\n var sum: Float = 0.0f\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n/**\n * Returns the sum of all elements in the collection.\n */\n@kotlin.jvm.JvmName(\"sumOfDouble\")\npublic fun Iterable.sum(): Double {\n var sum: Double = 0.0\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n","/*\n * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n@file:kotlin.jvm.JvmMultifileClass\n@file:kotlin.jvm.JvmName(\"ArraysKt\")\n\npackage kotlin.collections\n\n//\n// NOTE: THIS FILE IS AUTO-GENERATED by the GenerateStandardLib.kt\n// See: https://github.com/JetBrains/kotlin/tree/master/libraries/stdlib\n//\n\nimport kotlin.random.*\nimport kotlin.ranges.contains\nimport kotlin.ranges.reversed\n\n/**\n * Returns 1st *element* from the array.\n * \n * If the size of this array is less than 1, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun Array.component1(): T {\n return get(0)\n}\n\n/**\n * Returns 1st *element* from the array.\n * \n * If the size of this array is less than 1, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun ByteArray.component1(): Byte {\n return get(0)\n}\n\n/**\n * Returns 1st *element* from the array.\n * \n * If the size of this array is less than 1, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun ShortArray.component1(): Short {\n return get(0)\n}\n\n/**\n * Returns 1st *element* from the array.\n * \n * If the size of this array is less than 1, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun IntArray.component1(): Int {\n return get(0)\n}\n\n/**\n * Returns 1st *element* from the array.\n * \n * If the size of this array is less than 1, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun LongArray.component1(): Long {\n return get(0)\n}\n\n/**\n * Returns 1st *element* from the array.\n * \n * If the size of this array is less than 1, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun FloatArray.component1(): Float {\n return get(0)\n}\n\n/**\n * Returns 1st *element* from the array.\n * \n * If the size of this array is less than 1, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun DoubleArray.component1(): Double {\n return get(0)\n}\n\n/**\n * Returns 1st *element* from the array.\n * \n * If the size of this array is less than 1, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun BooleanArray.component1(): Boolean {\n return get(0)\n}\n\n/**\n * Returns 1st *element* from the array.\n * \n * If the size of this array is less than 1, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun CharArray.component1(): Char {\n return get(0)\n}\n\n/**\n * Returns 2nd *element* from the array.\n * \n * If the size of this array is less than 2, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun Array.component2(): T {\n return get(1)\n}\n\n/**\n * Returns 2nd *element* from the array.\n * \n * If the size of this array is less than 2, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun ByteArray.component2(): Byte {\n return get(1)\n}\n\n/**\n * Returns 2nd *element* from the array.\n * \n * If the size of this array is less than 2, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun ShortArray.component2(): Short {\n return get(1)\n}\n\n/**\n * Returns 2nd *element* from the array.\n * \n * If the size of this array is less than 2, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun IntArray.component2(): Int {\n return get(1)\n}\n\n/**\n * Returns 2nd *element* from the array.\n * \n * If the size of this array is less than 2, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun LongArray.component2(): Long {\n return get(1)\n}\n\n/**\n * Returns 2nd *element* from the array.\n * \n * If the size of this array is less than 2, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun FloatArray.component2(): Float {\n return get(1)\n}\n\n/**\n * Returns 2nd *element* from the array.\n * \n * If the size of this array is less than 2, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun DoubleArray.component2(): Double {\n return get(1)\n}\n\n/**\n * Returns 2nd *element* from the array.\n * \n * If the size of this array is less than 2, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun BooleanArray.component2(): Boolean {\n return get(1)\n}\n\n/**\n * Returns 2nd *element* from the array.\n * \n * If the size of this array is less than 2, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun CharArray.component2(): Char {\n return get(1)\n}\n\n/**\n * Returns 3rd *element* from the array.\n * \n * If the size of this array is less than 3, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun Array.component3(): T {\n return get(2)\n}\n\n/**\n * Returns 3rd *element* from the array.\n * \n * If the size of this array is less than 3, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun ByteArray.component3(): Byte {\n return get(2)\n}\n\n/**\n * Returns 3rd *element* from the array.\n * \n * If the size of this array is less than 3, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun ShortArray.component3(): Short {\n return get(2)\n}\n\n/**\n * Returns 3rd *element* from the array.\n * \n * If the size of this array is less than 3, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun IntArray.component3(): Int {\n return get(2)\n}\n\n/**\n * Returns 3rd *element* from the array.\n * \n * If the size of this array is less than 3, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun LongArray.component3(): Long {\n return get(2)\n}\n\n/**\n * Returns 3rd *element* from the array.\n * \n * If the size of this array is less than 3, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun FloatArray.component3(): Float {\n return get(2)\n}\n\n/**\n * Returns 3rd *element* from the array.\n * \n * If the size of this array is less than 3, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun DoubleArray.component3(): Double {\n return get(2)\n}\n\n/**\n * Returns 3rd *element* from the array.\n * \n * If the size of this array is less than 3, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun BooleanArray.component3(): Boolean {\n return get(2)\n}\n\n/**\n * Returns 3rd *element* from the array.\n * \n * If the size of this array is less than 3, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun CharArray.component3(): Char {\n return get(2)\n}\n\n/**\n * Returns 4th *element* from the array.\n * \n * If the size of this array is less than 4, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun Array.component4(): T {\n return get(3)\n}\n\n/**\n * Returns 4th *element* from the array.\n * \n * If the size of this array is less than 4, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun ByteArray.component4(): Byte {\n return get(3)\n}\n\n/**\n * Returns 4th *element* from the array.\n * \n * If the size of this array is less than 4, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun ShortArray.component4(): Short {\n return get(3)\n}\n\n/**\n * Returns 4th *element* from the array.\n * \n * If the size of this array is less than 4, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun IntArray.component4(): Int {\n return get(3)\n}\n\n/**\n * Returns 4th *element* from the array.\n * \n * If the size of this array is less than 4, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun LongArray.component4(): Long {\n return get(3)\n}\n\n/**\n * Returns 4th *element* from the array.\n * \n * If the size of this array is less than 4, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun FloatArray.component4(): Float {\n return get(3)\n}\n\n/**\n * Returns 4th *element* from the array.\n * \n * If the size of this array is less than 4, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun DoubleArray.component4(): Double {\n return get(3)\n}\n\n/**\n * Returns 4th *element* from the array.\n * \n * If the size of this array is less than 4, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun BooleanArray.component4(): Boolean {\n return get(3)\n}\n\n/**\n * Returns 4th *element* from the array.\n * \n * If the size of this array is less than 4, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun CharArray.component4(): Char {\n return get(3)\n}\n\n/**\n * Returns 5th *element* from the array.\n * \n * If the size of this array is less than 5, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun Array.component5(): T {\n return get(4)\n}\n\n/**\n * Returns 5th *element* from the array.\n * \n * If the size of this array is less than 5, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun ByteArray.component5(): Byte {\n return get(4)\n}\n\n/**\n * Returns 5th *element* from the array.\n * \n * If the size of this array is less than 5, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun ShortArray.component5(): Short {\n return get(4)\n}\n\n/**\n * Returns 5th *element* from the array.\n * \n * If the size of this array is less than 5, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun IntArray.component5(): Int {\n return get(4)\n}\n\n/**\n * Returns 5th *element* from the array.\n * \n * If the size of this array is less than 5, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun LongArray.component5(): Long {\n return get(4)\n}\n\n/**\n * Returns 5th *element* from the array.\n * \n * If the size of this array is less than 5, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun FloatArray.component5(): Float {\n return get(4)\n}\n\n/**\n * Returns 5th *element* from the array.\n * \n * If the size of this array is less than 5, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun DoubleArray.component5(): Double {\n return get(4)\n}\n\n/**\n * Returns 5th *element* from the array.\n * \n * If the size of this array is less than 5, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun BooleanArray.component5(): Boolean {\n return get(4)\n}\n\n/**\n * Returns 5th *element* from the array.\n * \n * If the size of this array is less than 5, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun CharArray.component5(): Char {\n return get(4)\n}\n\n/**\n * Returns `true` if [element] is found in the array.\n */\npublic operator fun <@kotlin.internal.OnlyInputTypes T> Array.contains(element: T): Boolean {\n return indexOf(element) >= 0\n}\n\n/**\n * Returns `true` if [element] is found in the array.\n */\npublic operator fun ByteArray.contains(element: Byte): Boolean {\n return indexOf(element) >= 0\n}\n\n/**\n * Returns `true` if [element] is found in the array.\n */\npublic operator fun ShortArray.contains(element: Short): Boolean {\n return indexOf(element) >= 0\n}\n\n/**\n * Returns `true` if [element] is found in the array.\n */\npublic operator fun IntArray.contains(element: Int): Boolean {\n return indexOf(element) >= 0\n}\n\n/**\n * Returns `true` if [element] is found in the array.\n */\npublic operator fun LongArray.contains(element: Long): Boolean {\n return indexOf(element) >= 0\n}\n\n/**\n * Returns `true` if [element] is found in the array.\n */\n@Deprecated(\"The function has unclear behavior when searching for NaN or zero values and will be removed soon. Use 'any { it == element }' instead to continue using this behavior, or '.asList().contains(element: T)' to get the same search behavior as in a list.\", ReplaceWith(\"any { it == element }\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\n@Suppress(\"DEPRECATION\")\npublic operator fun FloatArray.contains(element: Float): Boolean {\n return indexOf(element) >= 0\n}\n\n/**\n * Returns `true` if [element] is found in the array.\n */\n@Deprecated(\"The function has unclear behavior when searching for NaN or zero values and will be removed soon. Use 'any { it == element }' instead to continue using this behavior, or '.asList().contains(element: T)' to get the same search behavior as in a list.\", ReplaceWith(\"any { it == element }\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\n@Suppress(\"DEPRECATION\")\npublic operator fun DoubleArray.contains(element: Double): Boolean {\n return indexOf(element) >= 0\n}\n\n/**\n * Returns `true` if [element] is found in the array.\n */\npublic operator fun BooleanArray.contains(element: Boolean): Boolean {\n return indexOf(element) >= 0\n}\n\n/**\n * Returns `true` if [element] is found in the array.\n */\npublic operator fun CharArray.contains(element: Char): Boolean {\n return indexOf(element) >= 0\n}\n\n/**\n * Returns an element at the given [index] or throws an [IndexOutOfBoundsException] if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAt\n */\npublic expect fun Array.elementAt(index: Int): T\n\n/**\n * Returns an element at the given [index] or throws an [IndexOutOfBoundsException] if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAt\n */\npublic expect fun ByteArray.elementAt(index: Int): Byte\n\n/**\n * Returns an element at the given [index] or throws an [IndexOutOfBoundsException] if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAt\n */\npublic expect fun ShortArray.elementAt(index: Int): Short\n\n/**\n * Returns an element at the given [index] or throws an [IndexOutOfBoundsException] if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAt\n */\npublic expect fun IntArray.elementAt(index: Int): Int\n\n/**\n * Returns an element at the given [index] or throws an [IndexOutOfBoundsException] if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAt\n */\npublic expect fun LongArray.elementAt(index: Int): Long\n\n/**\n * Returns an element at the given [index] or throws an [IndexOutOfBoundsException] if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAt\n */\npublic expect fun FloatArray.elementAt(index: Int): Float\n\n/**\n * Returns an element at the given [index] or throws an [IndexOutOfBoundsException] if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAt\n */\npublic expect fun DoubleArray.elementAt(index: Int): Double\n\n/**\n * Returns an element at the given [index] or throws an [IndexOutOfBoundsException] if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAt\n */\npublic expect fun BooleanArray.elementAt(index: Int): Boolean\n\n/**\n * Returns an element at the given [index] or throws an [IndexOutOfBoundsException] if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAt\n */\npublic expect fun CharArray.elementAt(index: Int): Char\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrElse\n */\n@kotlin.internal.InlineOnly\npublic inline fun Array.elementAtOrElse(index: Int, defaultValue: (Int) -> T): T {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrElse\n */\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.elementAtOrElse(index: Int, defaultValue: (Int) -> Byte): Byte {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrElse\n */\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.elementAtOrElse(index: Int, defaultValue: (Int) -> Short): Short {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrElse\n */\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.elementAtOrElse(index: Int, defaultValue: (Int) -> Int): Int {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrElse\n */\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.elementAtOrElse(index: Int, defaultValue: (Int) -> Long): Long {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrElse\n */\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.elementAtOrElse(index: Int, defaultValue: (Int) -> Float): Float {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrElse\n */\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.elementAtOrElse(index: Int, defaultValue: (Int) -> Double): Double {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrElse\n */\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.elementAtOrElse(index: Int, defaultValue: (Int) -> Boolean): Boolean {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrElse\n */\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.elementAtOrElse(index: Int, defaultValue: (Int) -> Char): Char {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrNull\n */\n@kotlin.internal.InlineOnly\npublic inline fun Array.elementAtOrNull(index: Int): T? {\n return this.getOrNull(index)\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrNull\n */\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.elementAtOrNull(index: Int): Byte? {\n return this.getOrNull(index)\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrNull\n */\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.elementAtOrNull(index: Int): Short? {\n return this.getOrNull(index)\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrNull\n */\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.elementAtOrNull(index: Int): Int? {\n return this.getOrNull(index)\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrNull\n */\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.elementAtOrNull(index: Int): Long? {\n return this.getOrNull(index)\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrNull\n */\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.elementAtOrNull(index: Int): Float? {\n return this.getOrNull(index)\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrNull\n */\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.elementAtOrNull(index: Int): Double? {\n return this.getOrNull(index)\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrNull\n */\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.elementAtOrNull(index: Int): Boolean? {\n return this.getOrNull(index)\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrNull\n */\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.elementAtOrNull(index: Int): Char? {\n return this.getOrNull(index)\n}\n\n/**\n * Returns the first element matching the given [predicate], or `null` if no such element was found.\n * \n * @sample samples.collections.Collections.Elements.find\n */\n@kotlin.internal.InlineOnly\npublic inline fun Array.find(predicate: (T) -> Boolean): T? {\n return firstOrNull(predicate)\n}\n\n/**\n * Returns the first element matching the given [predicate], or `null` if no such element was found.\n * \n * @sample samples.collections.Collections.Elements.find\n */\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.find(predicate: (Byte) -> Boolean): Byte? {\n return firstOrNull(predicate)\n}\n\n/**\n * Returns the first element matching the given [predicate], or `null` if no such element was found.\n * \n * @sample samples.collections.Collections.Elements.find\n */\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.find(predicate: (Short) -> Boolean): Short? {\n return firstOrNull(predicate)\n}\n\n/**\n * Returns the first element matching the given [predicate], or `null` if no such element was found.\n * \n * @sample samples.collections.Collections.Elements.find\n */\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.find(predicate: (Int) -> Boolean): Int? {\n return firstOrNull(predicate)\n}\n\n/**\n * Returns the first element matching the given [predicate], or `null` if no such element was found.\n * \n * @sample samples.collections.Collections.Elements.find\n */\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.find(predicate: (Long) -> Boolean): Long? {\n return firstOrNull(predicate)\n}\n\n/**\n * Returns the first element matching the given [predicate], or `null` if no such element was found.\n * \n * @sample samples.collections.Collections.Elements.find\n */\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.find(predicate: (Float) -> Boolean): Float? {\n return firstOrNull(predicate)\n}\n\n/**\n * Returns the first element matching the given [predicate], or `null` if no such element was found.\n * \n * @sample samples.collections.Collections.Elements.find\n */\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.find(predicate: (Double) -> Boolean): Double? {\n return firstOrNull(predicate)\n}\n\n/**\n * Returns the first element matching the given [predicate], or `null` if no such element was found.\n * \n * @sample samples.collections.Collections.Elements.find\n */\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.find(predicate: (Boolean) -> Boolean): Boolean? {\n return firstOrNull(predicate)\n}\n\n/**\n * Returns the first element matching the given [predicate], or `null` if no such element was found.\n * \n * @sample samples.collections.Collections.Elements.find\n */\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.find(predicate: (Char) -> Boolean): Char? {\n return firstOrNull(predicate)\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n * \n * @sample samples.collections.Collections.Elements.find\n */\n@kotlin.internal.InlineOnly\npublic inline fun Array.findLast(predicate: (T) -> Boolean): T? {\n return lastOrNull(predicate)\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n * \n * @sample samples.collections.Collections.Elements.find\n */\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.findLast(predicate: (Byte) -> Boolean): Byte? {\n return lastOrNull(predicate)\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n * \n * @sample samples.collections.Collections.Elements.find\n */\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.findLast(predicate: (Short) -> Boolean): Short? {\n return lastOrNull(predicate)\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n * \n * @sample samples.collections.Collections.Elements.find\n */\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.findLast(predicate: (Int) -> Boolean): Int? {\n return lastOrNull(predicate)\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n * \n * @sample samples.collections.Collections.Elements.find\n */\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.findLast(predicate: (Long) -> Boolean): Long? {\n return lastOrNull(predicate)\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n * \n * @sample samples.collections.Collections.Elements.find\n */\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.findLast(predicate: (Float) -> Boolean): Float? {\n return lastOrNull(predicate)\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n * \n * @sample samples.collections.Collections.Elements.find\n */\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.findLast(predicate: (Double) -> Boolean): Double? {\n return lastOrNull(predicate)\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n * \n * @sample samples.collections.Collections.Elements.find\n */\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.findLast(predicate: (Boolean) -> Boolean): Boolean? {\n return lastOrNull(predicate)\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n * \n * @sample samples.collections.Collections.Elements.find\n */\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.findLast(predicate: (Char) -> Boolean): Char? {\n return lastOrNull(predicate)\n}\n\n/**\n * Returns first element.\n * @throws [NoSuchElementException] if the array is empty.\n */\npublic fun Array.first(): T {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return this[0]\n}\n\n/**\n * Returns first element.\n * @throws [NoSuchElementException] if the array is empty.\n */\npublic fun ByteArray.first(): Byte {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return this[0]\n}\n\n/**\n * Returns first element.\n * @throws [NoSuchElementException] if the array is empty.\n */\npublic fun ShortArray.first(): Short {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return this[0]\n}\n\n/**\n * Returns first element.\n * @throws [NoSuchElementException] if the array is empty.\n */\npublic fun IntArray.first(): Int {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return this[0]\n}\n\n/**\n * Returns first element.\n * @throws [NoSuchElementException] if the array is empty.\n */\npublic fun LongArray.first(): Long {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return this[0]\n}\n\n/**\n * Returns first element.\n * @throws [NoSuchElementException] if the array is empty.\n */\npublic fun FloatArray.first(): Float {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return this[0]\n}\n\n/**\n * Returns first element.\n * @throws [NoSuchElementException] if the array is empty.\n */\npublic fun DoubleArray.first(): Double {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return this[0]\n}\n\n/**\n * Returns first element.\n * @throws [NoSuchElementException] if the array is empty.\n */\npublic fun BooleanArray.first(): Boolean {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return this[0]\n}\n\n/**\n * Returns first element.\n * @throws [NoSuchElementException] if the array is empty.\n */\npublic fun CharArray.first(): Char {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return this[0]\n}\n\n/**\n * Returns the first element matching the given [predicate].\n * @throws [NoSuchElementException] if no such element is found.\n */\npublic inline fun Array.first(predicate: (T) -> Boolean): T {\n for (element in this) if (predicate(element)) return element\n throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n}\n\n/**\n * Returns the first element matching the given [predicate].\n * @throws [NoSuchElementException] if no such element is found.\n */\npublic inline fun ByteArray.first(predicate: (Byte) -> Boolean): Byte {\n for (element in this) if (predicate(element)) return element\n throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n}\n\n/**\n * Returns the first element matching the given [predicate].\n * @throws [NoSuchElementException] if no such element is found.\n */\npublic inline fun ShortArray.first(predicate: (Short) -> Boolean): Short {\n for (element in this) if (predicate(element)) return element\n throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n}\n\n/**\n * Returns the first element matching the given [predicate].\n * @throws [NoSuchElementException] if no such element is found.\n */\npublic inline fun IntArray.first(predicate: (Int) -> Boolean): Int {\n for (element in this) if (predicate(element)) return element\n throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n}\n\n/**\n * Returns the first element matching the given [predicate].\n * @throws [NoSuchElementException] if no such element is found.\n */\npublic inline fun LongArray.first(predicate: (Long) -> Boolean): Long {\n for (element in this) if (predicate(element)) return element\n throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n}\n\n/**\n * Returns the first element matching the given [predicate].\n * @throws [NoSuchElementException] if no such element is found.\n */\npublic inline fun FloatArray.first(predicate: (Float) -> Boolean): Float {\n for (element in this) if (predicate(element)) return element\n throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n}\n\n/**\n * Returns the first element matching the given [predicate].\n * @throws [NoSuchElementException] if no such element is found.\n */\npublic inline fun DoubleArray.first(predicate: (Double) -> Boolean): Double {\n for (element in this) if (predicate(element)) return element\n throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n}\n\n/**\n * Returns the first element matching the given [predicate].\n * @throws [NoSuchElementException] if no such element is found.\n */\npublic inline fun BooleanArray.first(predicate: (Boolean) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return element\n throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n}\n\n/**\n * Returns the first element matching the given [predicate].\n * @throws [NoSuchElementException] if no such element is found.\n */\npublic inline fun CharArray.first(predicate: (Char) -> Boolean): Char {\n for (element in this) if (predicate(element)) return element\n throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n}\n\n/**\n * Returns the first element, or `null` if the array is empty.\n */\npublic fun Array.firstOrNull(): T? {\n return if (isEmpty()) null else this[0]\n}\n\n/**\n * Returns the first element, or `null` if the array is empty.\n */\npublic fun ByteArray.firstOrNull(): Byte? {\n return if (isEmpty()) null else this[0]\n}\n\n/**\n * Returns the first element, or `null` if the array is empty.\n */\npublic fun ShortArray.firstOrNull(): Short? {\n return if (isEmpty()) null else this[0]\n}\n\n/**\n * Returns the first element, or `null` if the array is empty.\n */\npublic fun IntArray.firstOrNull(): Int? {\n return if (isEmpty()) null else this[0]\n}\n\n/**\n * Returns the first element, or `null` if the array is empty.\n */\npublic fun LongArray.firstOrNull(): Long? {\n return if (isEmpty()) null else this[0]\n}\n\n/**\n * Returns the first element, or `null` if the array is empty.\n */\npublic fun FloatArray.firstOrNull(): Float? {\n return if (isEmpty()) null else this[0]\n}\n\n/**\n * Returns the first element, or `null` if the array is empty.\n */\npublic fun DoubleArray.firstOrNull(): Double? {\n return if (isEmpty()) null else this[0]\n}\n\n/**\n * Returns the first element, or `null` if the array is empty.\n */\npublic fun BooleanArray.firstOrNull(): Boolean? {\n return if (isEmpty()) null else this[0]\n}\n\n/**\n * Returns the first element, or `null` if the array is empty.\n */\npublic fun CharArray.firstOrNull(): Char? {\n return if (isEmpty()) null else this[0]\n}\n\n/**\n * Returns the first element matching the given [predicate], or `null` if element was not found.\n */\npublic inline fun Array.firstOrNull(predicate: (T) -> Boolean): T? {\n for (element in this) if (predicate(element)) return element\n return null\n}\n\n/**\n * Returns the first element matching the given [predicate], or `null` if element was not found.\n */\npublic inline fun ByteArray.firstOrNull(predicate: (Byte) -> Boolean): Byte? {\n for (element in this) if (predicate(element)) return element\n return null\n}\n\n/**\n * Returns the first element matching the given [predicate], or `null` if element was not found.\n */\npublic inline fun ShortArray.firstOrNull(predicate: (Short) -> Boolean): Short? {\n for (element in this) if (predicate(element)) return element\n return null\n}\n\n/**\n * Returns the first element matching the given [predicate], or `null` if element was not found.\n */\npublic inline fun IntArray.firstOrNull(predicate: (Int) -> Boolean): Int? {\n for (element in this) if (predicate(element)) return element\n return null\n}\n\n/**\n * Returns the first element matching the given [predicate], or `null` if element was not found.\n */\npublic inline fun LongArray.firstOrNull(predicate: (Long) -> Boolean): Long? {\n for (element in this) if (predicate(element)) return element\n return null\n}\n\n/**\n * Returns the first element matching the given [predicate], or `null` if element was not found.\n */\npublic inline fun FloatArray.firstOrNull(predicate: (Float) -> Boolean): Float? {\n for (element in this) if (predicate(element)) return element\n return null\n}\n\n/**\n * Returns the first element matching the given [predicate], or `null` if element was not found.\n */\npublic inline fun DoubleArray.firstOrNull(predicate: (Double) -> Boolean): Double? {\n for (element in this) if (predicate(element)) return element\n return null\n}\n\n/**\n * Returns the first element matching the given [predicate], or `null` if element was not found.\n */\npublic inline fun BooleanArray.firstOrNull(predicate: (Boolean) -> Boolean): Boolean? {\n for (element in this) if (predicate(element)) return element\n return null\n}\n\n/**\n * Returns the first element matching the given [predicate], or `null` if element was not found.\n */\npublic inline fun CharArray.firstOrNull(predicate: (Char) -> Boolean): Char? {\n for (element in this) if (predicate(element)) return element\n return null\n}\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this array.\n */\n@kotlin.internal.InlineOnly\npublic inline fun Array.getOrElse(index: Int, defaultValue: (Int) -> T): T {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this array.\n */\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.getOrElse(index: Int, defaultValue: (Int) -> Byte): Byte {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this array.\n */\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.getOrElse(index: Int, defaultValue: (Int) -> Short): Short {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this array.\n */\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.getOrElse(index: Int, defaultValue: (Int) -> Int): Int {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this array.\n */\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.getOrElse(index: Int, defaultValue: (Int) -> Long): Long {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this array.\n */\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.getOrElse(index: Int, defaultValue: (Int) -> Float): Float {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this array.\n */\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.getOrElse(index: Int, defaultValue: (Int) -> Double): Double {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this array.\n */\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.getOrElse(index: Int, defaultValue: (Int) -> Boolean): Boolean {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this array.\n */\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.getOrElse(index: Int, defaultValue: (Int) -> Char): Char {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.getOrNull\n */\npublic fun Array.getOrNull(index: Int): T? {\n return if (index >= 0 && index <= lastIndex) get(index) else null\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.getOrNull\n */\npublic fun ByteArray.getOrNull(index: Int): Byte? {\n return if (index >= 0 && index <= lastIndex) get(index) else null\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.getOrNull\n */\npublic fun ShortArray.getOrNull(index: Int): Short? {\n return if (index >= 0 && index <= lastIndex) get(index) else null\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.getOrNull\n */\npublic fun IntArray.getOrNull(index: Int): Int? {\n return if (index >= 0 && index <= lastIndex) get(index) else null\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.getOrNull\n */\npublic fun LongArray.getOrNull(index: Int): Long? {\n return if (index >= 0 && index <= lastIndex) get(index) else null\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.getOrNull\n */\npublic fun FloatArray.getOrNull(index: Int): Float? {\n return if (index >= 0 && index <= lastIndex) get(index) else null\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.getOrNull\n */\npublic fun DoubleArray.getOrNull(index: Int): Double? {\n return if (index >= 0 && index <= lastIndex) get(index) else null\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.getOrNull\n */\npublic fun BooleanArray.getOrNull(index: Int): Boolean? {\n return if (index >= 0 && index <= lastIndex) get(index) else null\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.getOrNull\n */\npublic fun CharArray.getOrNull(index: Int): Char? {\n return if (index >= 0 && index <= lastIndex) get(index) else null\n}\n\n/**\n * Returns first index of [element], or -1 if the array does not contain element.\n */\npublic fun <@kotlin.internal.OnlyInputTypes T> Array.indexOf(element: T): Int {\n if (element == null) {\n for (index in indices) {\n if (this[index] == null) {\n return index\n }\n }\n } else {\n for (index in indices) {\n if (element == this[index]) {\n return index\n }\n }\n }\n return -1\n}\n\n/**\n * Returns first index of [element], or -1 if the array does not contain element.\n */\npublic fun ByteArray.indexOf(element: Byte): Int {\n for (index in indices) {\n if (element == this[index]) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns first index of [element], or -1 if the array does not contain element.\n */\npublic fun ShortArray.indexOf(element: Short): Int {\n for (index in indices) {\n if (element == this[index]) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns first index of [element], or -1 if the array does not contain element.\n */\npublic fun IntArray.indexOf(element: Int): Int {\n for (index in indices) {\n if (element == this[index]) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns first index of [element], or -1 if the array does not contain element.\n */\npublic fun LongArray.indexOf(element: Long): Int {\n for (index in indices) {\n if (element == this[index]) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns first index of [element], or -1 if the array does not contain element.\n */\n@Deprecated(\"The function has unclear behavior when searching for NaN or zero values and will be removed soon. Use 'indexOfFirst { it == element }' instead to continue using this behavior, or '.asList().indexOf(element: T)' to get the same search behavior as in a list.\", ReplaceWith(\"indexOfFirst { it == element }\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\npublic fun FloatArray.indexOf(element: Float): Int {\n for (index in indices) {\n if (element == this[index]) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns first index of [element], or -1 if the array does not contain element.\n */\n@Deprecated(\"The function has unclear behavior when searching for NaN or zero values and will be removed soon. Use 'indexOfFirst { it == element }' instead to continue using this behavior, or '.asList().indexOf(element: T)' to get the same search behavior as in a list.\", ReplaceWith(\"indexOfFirst { it == element }\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\npublic fun DoubleArray.indexOf(element: Double): Int {\n for (index in indices) {\n if (element == this[index]) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns first index of [element], or -1 if the array does not contain element.\n */\npublic fun BooleanArray.indexOf(element: Boolean): Int {\n for (index in indices) {\n if (element == this[index]) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns first index of [element], or -1 if the array does not contain element.\n */\npublic fun CharArray.indexOf(element: Char): Int {\n for (index in indices) {\n if (element == this[index]) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns index of the first element matching the given [predicate], or -1 if the array does not contain such element.\n */\npublic inline fun Array.indexOfFirst(predicate: (T) -> Boolean): Int {\n for (index in indices) {\n if (predicate(this[index])) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns index of the first element matching the given [predicate], or -1 if the array does not contain such element.\n */\npublic inline fun ByteArray.indexOfFirst(predicate: (Byte) -> Boolean): Int {\n for (index in indices) {\n if (predicate(this[index])) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns index of the first element matching the given [predicate], or -1 if the array does not contain such element.\n */\npublic inline fun ShortArray.indexOfFirst(predicate: (Short) -> Boolean): Int {\n for (index in indices) {\n if (predicate(this[index])) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns index of the first element matching the given [predicate], or -1 if the array does not contain such element.\n */\npublic inline fun IntArray.indexOfFirst(predicate: (Int) -> Boolean): Int {\n for (index in indices) {\n if (predicate(this[index])) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns index of the first element matching the given [predicate], or -1 if the array does not contain such element.\n */\npublic inline fun LongArray.indexOfFirst(predicate: (Long) -> Boolean): Int {\n for (index in indices) {\n if (predicate(this[index])) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns index of the first element matching the given [predicate], or -1 if the array does not contain such element.\n */\npublic inline fun FloatArray.indexOfFirst(predicate: (Float) -> Boolean): Int {\n for (index in indices) {\n if (predicate(this[index])) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns index of the first element matching the given [predicate], or -1 if the array does not contain such element.\n */\npublic inline fun DoubleArray.indexOfFirst(predicate: (Double) -> Boolean): Int {\n for (index in indices) {\n if (predicate(this[index])) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns index of the first element matching the given [predicate], or -1 if the array does not contain such element.\n */\npublic inline fun BooleanArray.indexOfFirst(predicate: (Boolean) -> Boolean): Int {\n for (index in indices) {\n if (predicate(this[index])) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns index of the first element matching the given [predicate], or -1 if the array does not contain such element.\n */\npublic inline fun CharArray.indexOfFirst(predicate: (Char) -> Boolean): Int {\n for (index in indices) {\n if (predicate(this[index])) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns index of the last element matching the given [predicate], or -1 if the array does not contain such element.\n */\npublic inline fun Array.indexOfLast(predicate: (T) -> Boolean): Int {\n for (index in indices.reversed()) {\n if (predicate(this[index])) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns index of the last element matching the given [predicate], or -1 if the array does not contain such element.\n */\npublic inline fun ByteArray.indexOfLast(predicate: (Byte) -> Boolean): Int {\n for (index in indices.reversed()) {\n if (predicate(this[index])) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns index of the last element matching the given [predicate], or -1 if the array does not contain such element.\n */\npublic inline fun ShortArray.indexOfLast(predicate: (Short) -> Boolean): Int {\n for (index in indices.reversed()) {\n if (predicate(this[index])) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns index of the last element matching the given [predicate], or -1 if the array does not contain such element.\n */\npublic inline fun IntArray.indexOfLast(predicate: (Int) -> Boolean): Int {\n for (index in indices.reversed()) {\n if (predicate(this[index])) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns index of the last element matching the given [predicate], or -1 if the array does not contain such element.\n */\npublic inline fun LongArray.indexOfLast(predicate: (Long) -> Boolean): Int {\n for (index in indices.reversed()) {\n if (predicate(this[index])) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns index of the last element matching the given [predicate], or -1 if the array does not contain such element.\n */\npublic inline fun FloatArray.indexOfLast(predicate: (Float) -> Boolean): Int {\n for (index in indices.reversed()) {\n if (predicate(this[index])) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns index of the last element matching the given [predicate], or -1 if the array does not contain such element.\n */\npublic inline fun DoubleArray.indexOfLast(predicate: (Double) -> Boolean): Int {\n for (index in indices.reversed()) {\n if (predicate(this[index])) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns index of the last element matching the given [predicate], or -1 if the array does not contain such element.\n */\npublic inline fun BooleanArray.indexOfLast(predicate: (Boolean) -> Boolean): Int {\n for (index in indices.reversed()) {\n if (predicate(this[index])) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns index of the last element matching the given [predicate], or -1 if the array does not contain such element.\n */\npublic inline fun CharArray.indexOfLast(predicate: (Char) -> Boolean): Int {\n for (index in indices.reversed()) {\n if (predicate(this[index])) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns the last element.\n * \n * @throws NoSuchElementException if the array is empty.\n * \n * @sample samples.collections.Collections.Elements.last\n */\npublic fun Array.last(): T {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return this[lastIndex]\n}\n\n/**\n * Returns the last element.\n * \n * @throws NoSuchElementException if the array is empty.\n * \n * @sample samples.collections.Collections.Elements.last\n */\npublic fun ByteArray.last(): Byte {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return this[lastIndex]\n}\n\n/**\n * Returns the last element.\n * \n * @throws NoSuchElementException if the array is empty.\n * \n * @sample samples.collections.Collections.Elements.last\n */\npublic fun ShortArray.last(): Short {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return this[lastIndex]\n}\n\n/**\n * Returns the last element.\n * \n * @throws NoSuchElementException if the array is empty.\n * \n * @sample samples.collections.Collections.Elements.last\n */\npublic fun IntArray.last(): Int {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return this[lastIndex]\n}\n\n/**\n * Returns the last element.\n * \n * @throws NoSuchElementException if the array is empty.\n * \n * @sample samples.collections.Collections.Elements.last\n */\npublic fun LongArray.last(): Long {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return this[lastIndex]\n}\n\n/**\n * Returns the last element.\n * \n * @throws NoSuchElementException if the array is empty.\n * \n * @sample samples.collections.Collections.Elements.last\n */\npublic fun FloatArray.last(): Float {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return this[lastIndex]\n}\n\n/**\n * Returns the last element.\n * \n * @throws NoSuchElementException if the array is empty.\n * \n * @sample samples.collections.Collections.Elements.last\n */\npublic fun DoubleArray.last(): Double {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return this[lastIndex]\n}\n\n/**\n * Returns the last element.\n * \n * @throws NoSuchElementException if the array is empty.\n * \n * @sample samples.collections.Collections.Elements.last\n */\npublic fun BooleanArray.last(): Boolean {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return this[lastIndex]\n}\n\n/**\n * Returns the last element.\n * \n * @throws NoSuchElementException if the array is empty.\n * \n * @sample samples.collections.Collections.Elements.last\n */\npublic fun CharArray.last(): Char {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return this[lastIndex]\n}\n\n/**\n * Returns the last element matching the given [predicate].\n * \n * @throws NoSuchElementException if no such element is found.\n * \n * @sample samples.collections.Collections.Elements.last\n */\npublic inline fun Array.last(predicate: (T) -> Boolean): T {\n for (index in this.indices.reversed()) {\n val element = this[index]\n if (predicate(element)) return element\n }\n throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n}\n\n/**\n * Returns the last element matching the given [predicate].\n * \n * @throws NoSuchElementException if no such element is found.\n * \n * @sample samples.collections.Collections.Elements.last\n */\npublic inline fun ByteArray.last(predicate: (Byte) -> Boolean): Byte {\n for (index in this.indices.reversed()) {\n val element = this[index]\n if (predicate(element)) return element\n }\n throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n}\n\n/**\n * Returns the last element matching the given [predicate].\n * \n * @throws NoSuchElementException if no such element is found.\n * \n * @sample samples.collections.Collections.Elements.last\n */\npublic inline fun ShortArray.last(predicate: (Short) -> Boolean): Short {\n for (index in this.indices.reversed()) {\n val element = this[index]\n if (predicate(element)) return element\n }\n throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n}\n\n/**\n * Returns the last element matching the given [predicate].\n * \n * @throws NoSuchElementException if no such element is found.\n * \n * @sample samples.collections.Collections.Elements.last\n */\npublic inline fun IntArray.last(predicate: (Int) -> Boolean): Int {\n for (index in this.indices.reversed()) {\n val element = this[index]\n if (predicate(element)) return element\n }\n throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n}\n\n/**\n * Returns the last element matching the given [predicate].\n * \n * @throws NoSuchElementException if no such element is found.\n * \n * @sample samples.collections.Collections.Elements.last\n */\npublic inline fun LongArray.last(predicate: (Long) -> Boolean): Long {\n for (index in this.indices.reversed()) {\n val element = this[index]\n if (predicate(element)) return element\n }\n throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n}\n\n/**\n * Returns the last element matching the given [predicate].\n * \n * @throws NoSuchElementException if no such element is found.\n * \n * @sample samples.collections.Collections.Elements.last\n */\npublic inline fun FloatArray.last(predicate: (Float) -> Boolean): Float {\n for (index in this.indices.reversed()) {\n val element = this[index]\n if (predicate(element)) return element\n }\n throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n}\n\n/**\n * Returns the last element matching the given [predicate].\n * \n * @throws NoSuchElementException if no such element is found.\n * \n * @sample samples.collections.Collections.Elements.last\n */\npublic inline fun DoubleArray.last(predicate: (Double) -> Boolean): Double {\n for (index in this.indices.reversed()) {\n val element = this[index]\n if (predicate(element)) return element\n }\n throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n}\n\n/**\n * Returns the last element matching the given [predicate].\n * \n * @throws NoSuchElementException if no such element is found.\n * \n * @sample samples.collections.Collections.Elements.last\n */\npublic inline fun BooleanArray.last(predicate: (Boolean) -> Boolean): Boolean {\n for (index in this.indices.reversed()) {\n val element = this[index]\n if (predicate(element)) return element\n }\n throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n}\n\n/**\n * Returns the last element matching the given [predicate].\n * \n * @throws NoSuchElementException if no such element is found.\n * \n * @sample samples.collections.Collections.Elements.last\n */\npublic inline fun CharArray.last(predicate: (Char) -> Boolean): Char {\n for (index in this.indices.reversed()) {\n val element = this[index]\n if (predicate(element)) return element\n }\n throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n}\n\n/**\n * Returns last index of [element], or -1 if the array does not contain element.\n */\npublic fun <@kotlin.internal.OnlyInputTypes T> Array.lastIndexOf(element: T): Int {\n if (element == null) {\n for (index in indices.reversed()) {\n if (this[index] == null) {\n return index\n }\n }\n } else {\n for (index in indices.reversed()) {\n if (element == this[index]) {\n return index\n }\n }\n }\n return -1\n}\n\n/**\n * Returns last index of [element], or -1 if the array does not contain element.\n */\npublic fun ByteArray.lastIndexOf(element: Byte): Int {\n for (index in indices.reversed()) {\n if (element == this[index]) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns last index of [element], or -1 if the array does not contain element.\n */\npublic fun ShortArray.lastIndexOf(element: Short): Int {\n for (index in indices.reversed()) {\n if (element == this[index]) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns last index of [element], or -1 if the array does not contain element.\n */\npublic fun IntArray.lastIndexOf(element: Int): Int {\n for (index in indices.reversed()) {\n if (element == this[index]) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns last index of [element], or -1 if the array does not contain element.\n */\npublic fun LongArray.lastIndexOf(element: Long): Int {\n for (index in indices.reversed()) {\n if (element == this[index]) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns last index of [element], or -1 if the array does not contain element.\n */\n@Deprecated(\"The function has unclear behavior when searching for NaN or zero values and will be removed soon. Use 'indexOfLast { it == element }' instead to continue using this behavior, or '.asList().lastIndexOf(element: T)' to get the same search behavior as in a list.\", ReplaceWith(\"indexOfLast { it == element }\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\npublic fun FloatArray.lastIndexOf(element: Float): Int {\n for (index in indices.reversed()) {\n if (element == this[index]) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns last index of [element], or -1 if the array does not contain element.\n */\n@Deprecated(\"The function has unclear behavior when searching for NaN or zero values and will be removed soon. Use 'indexOfLast { it == element }' instead to continue using this behavior, or '.asList().lastIndexOf(element: T)' to get the same search behavior as in a list.\", ReplaceWith(\"indexOfLast { it == element }\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\npublic fun DoubleArray.lastIndexOf(element: Double): Int {\n for (index in indices.reversed()) {\n if (element == this[index]) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns last index of [element], or -1 if the array does not contain element.\n */\npublic fun BooleanArray.lastIndexOf(element: Boolean): Int {\n for (index in indices.reversed()) {\n if (element == this[index]) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns last index of [element], or -1 if the array does not contain element.\n */\npublic fun CharArray.lastIndexOf(element: Char): Int {\n for (index in indices.reversed()) {\n if (element == this[index]) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns the last element, or `null` if the array is empty.\n * \n * @sample samples.collections.Collections.Elements.last\n */\npublic fun Array.lastOrNull(): T? {\n return if (isEmpty()) null else this[size - 1]\n}\n\n/**\n * Returns the last element, or `null` if the array is empty.\n * \n * @sample samples.collections.Collections.Elements.last\n */\npublic fun ByteArray.lastOrNull(): Byte? {\n return if (isEmpty()) null else this[size - 1]\n}\n\n/**\n * Returns the last element, or `null` if the array is empty.\n * \n * @sample samples.collections.Collections.Elements.last\n */\npublic fun ShortArray.lastOrNull(): Short? {\n return if (isEmpty()) null else this[size - 1]\n}\n\n/**\n * Returns the last element, or `null` if the array is empty.\n * \n * @sample samples.collections.Collections.Elements.last\n */\npublic fun IntArray.lastOrNull(): Int? {\n return if (isEmpty()) null else this[size - 1]\n}\n\n/**\n * Returns the last element, or `null` if the array is empty.\n * \n * @sample samples.collections.Collections.Elements.last\n */\npublic fun LongArray.lastOrNull(): Long? {\n return if (isEmpty()) null else this[size - 1]\n}\n\n/**\n * Returns the last element, or `null` if the array is empty.\n * \n * @sample samples.collections.Collections.Elements.last\n */\npublic fun FloatArray.lastOrNull(): Float? {\n return if (isEmpty()) null else this[size - 1]\n}\n\n/**\n * Returns the last element, or `null` if the array is empty.\n * \n * @sample samples.collections.Collections.Elements.last\n */\npublic fun DoubleArray.lastOrNull(): Double? {\n return if (isEmpty()) null else this[size - 1]\n}\n\n/**\n * Returns the last element, or `null` if the array is empty.\n * \n * @sample samples.collections.Collections.Elements.last\n */\npublic fun BooleanArray.lastOrNull(): Boolean? {\n return if (isEmpty()) null else this[size - 1]\n}\n\n/**\n * Returns the last element, or `null` if the array is empty.\n * \n * @sample samples.collections.Collections.Elements.last\n */\npublic fun CharArray.lastOrNull(): Char? {\n return if (isEmpty()) null else this[size - 1]\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n * \n * @sample samples.collections.Collections.Elements.last\n */\npublic inline fun Array.lastOrNull(predicate: (T) -> Boolean): T? {\n for (index in this.indices.reversed()) {\n val element = this[index]\n if (predicate(element)) return element\n }\n return null\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n * \n * @sample samples.collections.Collections.Elements.last\n */\npublic inline fun ByteArray.lastOrNull(predicate: (Byte) -> Boolean): Byte? {\n for (index in this.indices.reversed()) {\n val element = this[index]\n if (predicate(element)) return element\n }\n return null\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n * \n * @sample samples.collections.Collections.Elements.last\n */\npublic inline fun ShortArray.lastOrNull(predicate: (Short) -> Boolean): Short? {\n for (index in this.indices.reversed()) {\n val element = this[index]\n if (predicate(element)) return element\n }\n return null\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n * \n * @sample samples.collections.Collections.Elements.last\n */\npublic inline fun IntArray.lastOrNull(predicate: (Int) -> Boolean): Int? {\n for (index in this.indices.reversed()) {\n val element = this[index]\n if (predicate(element)) return element\n }\n return null\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n * \n * @sample samples.collections.Collections.Elements.last\n */\npublic inline fun LongArray.lastOrNull(predicate: (Long) -> Boolean): Long? {\n for (index in this.indices.reversed()) {\n val element = this[index]\n if (predicate(element)) return element\n }\n return null\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n * \n * @sample samples.collections.Collections.Elements.last\n */\npublic inline fun FloatArray.lastOrNull(predicate: (Float) -> Boolean): Float? {\n for (index in this.indices.reversed()) {\n val element = this[index]\n if (predicate(element)) return element\n }\n return null\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n * \n * @sample samples.collections.Collections.Elements.last\n */\npublic inline fun DoubleArray.lastOrNull(predicate: (Double) -> Boolean): Double? {\n for (index in this.indices.reversed()) {\n val element = this[index]\n if (predicate(element)) return element\n }\n return null\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n * \n * @sample samples.collections.Collections.Elements.last\n */\npublic inline fun BooleanArray.lastOrNull(predicate: (Boolean) -> Boolean): Boolean? {\n for (index in this.indices.reversed()) {\n val element = this[index]\n if (predicate(element)) return element\n }\n return null\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n * \n * @sample samples.collections.Collections.Elements.last\n */\npublic inline fun CharArray.lastOrNull(predicate: (Char) -> Boolean): Char? {\n for (index in this.indices.reversed()) {\n val element = this[index]\n if (predicate(element)) return element\n }\n return null\n}\n\n/**\n * Returns a random element from this array.\n * \n * @throws NoSuchElementException if this array is empty.\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\npublic inline fun Array.random(): T {\n return random(Random)\n}\n\n/**\n * Returns a random element from this array.\n * \n * @throws NoSuchElementException if this array is empty.\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.random(): Byte {\n return random(Random)\n}\n\n/**\n * Returns a random element from this array.\n * \n * @throws NoSuchElementException if this array is empty.\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.random(): Short {\n return random(Random)\n}\n\n/**\n * Returns a random element from this array.\n * \n * @throws NoSuchElementException if this array is empty.\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.random(): Int {\n return random(Random)\n}\n\n/**\n * Returns a random element from this array.\n * \n * @throws NoSuchElementException if this array is empty.\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.random(): Long {\n return random(Random)\n}\n\n/**\n * Returns a random element from this array.\n * \n * @throws NoSuchElementException if this array is empty.\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.random(): Float {\n return random(Random)\n}\n\n/**\n * Returns a random element from this array.\n * \n * @throws NoSuchElementException if this array is empty.\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.random(): Double {\n return random(Random)\n}\n\n/**\n * Returns a random element from this array.\n * \n * @throws NoSuchElementException if this array is empty.\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.random(): Boolean {\n return random(Random)\n}\n\n/**\n * Returns a random element from this array.\n * \n * @throws NoSuchElementException if this array is empty.\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.random(): Char {\n return random(Random)\n}\n\n/**\n * Returns a random element from this array using the specified source of randomness.\n * \n * @throws NoSuchElementException if this array is empty.\n */\n@SinceKotlin(\"1.3\")\npublic fun Array.random(random: Random): T {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return get(random.nextInt(size))\n}\n\n/**\n * Returns a random element from this array using the specified source of randomness.\n * \n * @throws NoSuchElementException if this array is empty.\n */\n@SinceKotlin(\"1.3\")\npublic fun ByteArray.random(random: Random): Byte {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return get(random.nextInt(size))\n}\n\n/**\n * Returns a random element from this array using the specified source of randomness.\n * \n * @throws NoSuchElementException if this array is empty.\n */\n@SinceKotlin(\"1.3\")\npublic fun ShortArray.random(random: Random): Short {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return get(random.nextInt(size))\n}\n\n/**\n * Returns a random element from this array using the specified source of randomness.\n * \n * @throws NoSuchElementException if this array is empty.\n */\n@SinceKotlin(\"1.3\")\npublic fun IntArray.random(random: Random): Int {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return get(random.nextInt(size))\n}\n\n/**\n * Returns a random element from this array using the specified source of randomness.\n * \n * @throws NoSuchElementException if this array is empty.\n */\n@SinceKotlin(\"1.3\")\npublic fun LongArray.random(random: Random): Long {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return get(random.nextInt(size))\n}\n\n/**\n * Returns a random element from this array using the specified source of randomness.\n * \n * @throws NoSuchElementException if this array is empty.\n */\n@SinceKotlin(\"1.3\")\npublic fun FloatArray.random(random: Random): Float {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return get(random.nextInt(size))\n}\n\n/**\n * Returns a random element from this array using the specified source of randomness.\n * \n * @throws NoSuchElementException if this array is empty.\n */\n@SinceKotlin(\"1.3\")\npublic fun DoubleArray.random(random: Random): Double {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return get(random.nextInt(size))\n}\n\n/**\n * Returns a random element from this array using the specified source of randomness.\n * \n * @throws NoSuchElementException if this array is empty.\n */\n@SinceKotlin(\"1.3\")\npublic fun BooleanArray.random(random: Random): Boolean {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return get(random.nextInt(size))\n}\n\n/**\n * Returns a random element from this array using the specified source of randomness.\n * \n * @throws NoSuchElementException if this array is empty.\n */\n@SinceKotlin(\"1.3\")\npublic fun CharArray.random(random: Random): Char {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return get(random.nextInt(size))\n}\n\n/**\n * Returns a random element from this array, or `null` if this array is empty.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun Array.randomOrNull(): T? {\n return randomOrNull(Random)\n}\n\n/**\n * Returns a random element from this array, or `null` if this array is empty.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.randomOrNull(): Byte? {\n return randomOrNull(Random)\n}\n\n/**\n * Returns a random element from this array, or `null` if this array is empty.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.randomOrNull(): Short? {\n return randomOrNull(Random)\n}\n\n/**\n * Returns a random element from this array, or `null` if this array is empty.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.randomOrNull(): Int? {\n return randomOrNull(Random)\n}\n\n/**\n * Returns a random element from this array, or `null` if this array is empty.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.randomOrNull(): Long? {\n return randomOrNull(Random)\n}\n\n/**\n * Returns a random element from this array, or `null` if this array is empty.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.randomOrNull(): Float? {\n return randomOrNull(Random)\n}\n\n/**\n * Returns a random element from this array, or `null` if this array is empty.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.randomOrNull(): Double? {\n return randomOrNull(Random)\n}\n\n/**\n * Returns a random element from this array, or `null` if this array is empty.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.randomOrNull(): Boolean? {\n return randomOrNull(Random)\n}\n\n/**\n * Returns a random element from this array, or `null` if this array is empty.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.randomOrNull(): Char? {\n return randomOrNull(Random)\n}\n\n/**\n * Returns a random element from this array using the specified source of randomness, or `null` if this array is empty.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic fun Array.randomOrNull(random: Random): T? {\n if (isEmpty())\n return null\n return get(random.nextInt(size))\n}\n\n/**\n * Returns a random element from this array using the specified source of randomness, or `null` if this array is empty.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic fun ByteArray.randomOrNull(random: Random): Byte? {\n if (isEmpty())\n return null\n return get(random.nextInt(size))\n}\n\n/**\n * Returns a random element from this array using the specified source of randomness, or `null` if this array is empty.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic fun ShortArray.randomOrNull(random: Random): Short? {\n if (isEmpty())\n return null\n return get(random.nextInt(size))\n}\n\n/**\n * Returns a random element from this array using the specified source of randomness, or `null` if this array is empty.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic fun IntArray.randomOrNull(random: Random): Int? {\n if (isEmpty())\n return null\n return get(random.nextInt(size))\n}\n\n/**\n * Returns a random element from this array using the specified source of randomness, or `null` if this array is empty.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic fun LongArray.randomOrNull(random: Random): Long? {\n if (isEmpty())\n return null\n return get(random.nextInt(size))\n}\n\n/**\n * Returns a random element from this array using the specified source of randomness, or `null` if this array is empty.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic fun FloatArray.randomOrNull(random: Random): Float? {\n if (isEmpty())\n return null\n return get(random.nextInt(size))\n}\n\n/**\n * Returns a random element from this array using the specified source of randomness, or `null` if this array is empty.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic fun DoubleArray.randomOrNull(random: Random): Double? {\n if (isEmpty())\n return null\n return get(random.nextInt(size))\n}\n\n/**\n * Returns a random element from this array using the specified source of randomness, or `null` if this array is empty.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic fun BooleanArray.randomOrNull(random: Random): Boolean? {\n if (isEmpty())\n return null\n return get(random.nextInt(size))\n}\n\n/**\n * Returns a random element from this array using the specified source of randomness, or `null` if this array is empty.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic fun CharArray.randomOrNull(random: Random): Char? {\n if (isEmpty())\n return null\n return get(random.nextInt(size))\n}\n\n/**\n * Returns the single element, or throws an exception if the array is empty or has more than one element.\n */\npublic fun Array.single(): T {\n return when (size) {\n 0 -> throw NoSuchElementException(\"Array is empty.\")\n 1 -> this[0]\n else -> throw IllegalArgumentException(\"Array has more than one element.\")\n }\n}\n\n/**\n * Returns the single element, or throws an exception if the array is empty or has more than one element.\n */\npublic fun ByteArray.single(): Byte {\n return when (size) {\n 0 -> throw NoSuchElementException(\"Array is empty.\")\n 1 -> this[0]\n else -> throw IllegalArgumentException(\"Array has more than one element.\")\n }\n}\n\n/**\n * Returns the single element, or throws an exception if the array is empty or has more than one element.\n */\npublic fun ShortArray.single(): Short {\n return when (size) {\n 0 -> throw NoSuchElementException(\"Array is empty.\")\n 1 -> this[0]\n else -> throw IllegalArgumentException(\"Array has more than one element.\")\n }\n}\n\n/**\n * Returns the single element, or throws an exception if the array is empty or has more than one element.\n */\npublic fun IntArray.single(): Int {\n return when (size) {\n 0 -> throw NoSuchElementException(\"Array is empty.\")\n 1 -> this[0]\n else -> throw IllegalArgumentException(\"Array has more than one element.\")\n }\n}\n\n/**\n * Returns the single element, or throws an exception if the array is empty or has more than one element.\n */\npublic fun LongArray.single(): Long {\n return when (size) {\n 0 -> throw NoSuchElementException(\"Array is empty.\")\n 1 -> this[0]\n else -> throw IllegalArgumentException(\"Array has more than one element.\")\n }\n}\n\n/**\n * Returns the single element, or throws an exception if the array is empty or has more than one element.\n */\npublic fun FloatArray.single(): Float {\n return when (size) {\n 0 -> throw NoSuchElementException(\"Array is empty.\")\n 1 -> this[0]\n else -> throw IllegalArgumentException(\"Array has more than one element.\")\n }\n}\n\n/**\n * Returns the single element, or throws an exception if the array is empty or has more than one element.\n */\npublic fun DoubleArray.single(): Double {\n return when (size) {\n 0 -> throw NoSuchElementException(\"Array is empty.\")\n 1 -> this[0]\n else -> throw IllegalArgumentException(\"Array has more than one element.\")\n }\n}\n\n/**\n * Returns the single element, or throws an exception if the array is empty or has more than one element.\n */\npublic fun BooleanArray.single(): Boolean {\n return when (size) {\n 0 -> throw NoSuchElementException(\"Array is empty.\")\n 1 -> this[0]\n else -> throw IllegalArgumentException(\"Array has more than one element.\")\n }\n}\n\n/**\n * Returns the single element, or throws an exception if the array is empty or has more than one element.\n */\npublic fun CharArray.single(): Char {\n return when (size) {\n 0 -> throw NoSuchElementException(\"Array is empty.\")\n 1 -> this[0]\n else -> throw IllegalArgumentException(\"Array has more than one element.\")\n }\n}\n\n/**\n * Returns the single element matching the given [predicate], or throws exception if there is no or more than one matching element.\n */\npublic inline fun Array.single(predicate: (T) -> Boolean): T {\n var single: T? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) throw IllegalArgumentException(\"Array contains more than one matching element.\")\n single = element\n found = true\n }\n }\n if (!found) throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n @Suppress(\"UNCHECKED_CAST\")\n return single as T\n}\n\n/**\n * Returns the single element matching the given [predicate], or throws exception if there is no or more than one matching element.\n */\npublic inline fun ByteArray.single(predicate: (Byte) -> Boolean): Byte {\n var single: Byte? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) throw IllegalArgumentException(\"Array contains more than one matching element.\")\n single = element\n found = true\n }\n }\n if (!found) throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n @Suppress(\"UNCHECKED_CAST\")\n return single as Byte\n}\n\n/**\n * Returns the single element matching the given [predicate], or throws exception if there is no or more than one matching element.\n */\npublic inline fun ShortArray.single(predicate: (Short) -> Boolean): Short {\n var single: Short? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) throw IllegalArgumentException(\"Array contains more than one matching element.\")\n single = element\n found = true\n }\n }\n if (!found) throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n @Suppress(\"UNCHECKED_CAST\")\n return single as Short\n}\n\n/**\n * Returns the single element matching the given [predicate], or throws exception if there is no or more than one matching element.\n */\npublic inline fun IntArray.single(predicate: (Int) -> Boolean): Int {\n var single: Int? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) throw IllegalArgumentException(\"Array contains more than one matching element.\")\n single = element\n found = true\n }\n }\n if (!found) throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n @Suppress(\"UNCHECKED_CAST\")\n return single as Int\n}\n\n/**\n * Returns the single element matching the given [predicate], or throws exception if there is no or more than one matching element.\n */\npublic inline fun LongArray.single(predicate: (Long) -> Boolean): Long {\n var single: Long? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) throw IllegalArgumentException(\"Array contains more than one matching element.\")\n single = element\n found = true\n }\n }\n if (!found) throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n @Suppress(\"UNCHECKED_CAST\")\n return single as Long\n}\n\n/**\n * Returns the single element matching the given [predicate], or throws exception if there is no or more than one matching element.\n */\npublic inline fun FloatArray.single(predicate: (Float) -> Boolean): Float {\n var single: Float? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) throw IllegalArgumentException(\"Array contains more than one matching element.\")\n single = element\n found = true\n }\n }\n if (!found) throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n @Suppress(\"UNCHECKED_CAST\")\n return single as Float\n}\n\n/**\n * Returns the single element matching the given [predicate], or throws exception if there is no or more than one matching element.\n */\npublic inline fun DoubleArray.single(predicate: (Double) -> Boolean): Double {\n var single: Double? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) throw IllegalArgumentException(\"Array contains more than one matching element.\")\n single = element\n found = true\n }\n }\n if (!found) throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n @Suppress(\"UNCHECKED_CAST\")\n return single as Double\n}\n\n/**\n * Returns the single element matching the given [predicate], or throws exception if there is no or more than one matching element.\n */\npublic inline fun BooleanArray.single(predicate: (Boolean) -> Boolean): Boolean {\n var single: Boolean? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) throw IllegalArgumentException(\"Array contains more than one matching element.\")\n single = element\n found = true\n }\n }\n if (!found) throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n @Suppress(\"UNCHECKED_CAST\")\n return single as Boolean\n}\n\n/**\n * Returns the single element matching the given [predicate], or throws exception if there is no or more than one matching element.\n */\npublic inline fun CharArray.single(predicate: (Char) -> Boolean): Char {\n var single: Char? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) throw IllegalArgumentException(\"Array contains more than one matching element.\")\n single = element\n found = true\n }\n }\n if (!found) throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n @Suppress(\"UNCHECKED_CAST\")\n return single as Char\n}\n\n/**\n * Returns single element, or `null` if the array is empty or has more than one element.\n */\npublic fun Array.singleOrNull(): T? {\n return if (size == 1) this[0] else null\n}\n\n/**\n * Returns single element, or `null` if the array is empty or has more than one element.\n */\npublic fun ByteArray.singleOrNull(): Byte? {\n return if (size == 1) this[0] else null\n}\n\n/**\n * Returns single element, or `null` if the array is empty or has more than one element.\n */\npublic fun ShortArray.singleOrNull(): Short? {\n return if (size == 1) this[0] else null\n}\n\n/**\n * Returns single element, or `null` if the array is empty or has more than one element.\n */\npublic fun IntArray.singleOrNull(): Int? {\n return if (size == 1) this[0] else null\n}\n\n/**\n * Returns single element, or `null` if the array is empty or has more than one element.\n */\npublic fun LongArray.singleOrNull(): Long? {\n return if (size == 1) this[0] else null\n}\n\n/**\n * Returns single element, or `null` if the array is empty or has more than one element.\n */\npublic fun FloatArray.singleOrNull(): Float? {\n return if (size == 1) this[0] else null\n}\n\n/**\n * Returns single element, or `null` if the array is empty or has more than one element.\n */\npublic fun DoubleArray.singleOrNull(): Double? {\n return if (size == 1) this[0] else null\n}\n\n/**\n * Returns single element, or `null` if the array is empty or has more than one element.\n */\npublic fun BooleanArray.singleOrNull(): Boolean? {\n return if (size == 1) this[0] else null\n}\n\n/**\n * Returns single element, or `null` if the array is empty or has more than one element.\n */\npublic fun CharArray.singleOrNull(): Char? {\n return if (size == 1) this[0] else null\n}\n\n/**\n * Returns the single element matching the given [predicate], or `null` if element was not found or more than one element was found.\n */\npublic inline fun Array.singleOrNull(predicate: (T) -> Boolean): T? {\n var single: T? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) return null\n single = element\n found = true\n }\n }\n if (!found) return null\n return single\n}\n\n/**\n * Returns the single element matching the given [predicate], or `null` if element was not found or more than one element was found.\n */\npublic inline fun ByteArray.singleOrNull(predicate: (Byte) -> Boolean): Byte? {\n var single: Byte? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) return null\n single = element\n found = true\n }\n }\n if (!found) return null\n return single\n}\n\n/**\n * Returns the single element matching the given [predicate], or `null` if element was not found or more than one element was found.\n */\npublic inline fun ShortArray.singleOrNull(predicate: (Short) -> Boolean): Short? {\n var single: Short? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) return null\n single = element\n found = true\n }\n }\n if (!found) return null\n return single\n}\n\n/**\n * Returns the single element matching the given [predicate], or `null` if element was not found or more than one element was found.\n */\npublic inline fun IntArray.singleOrNull(predicate: (Int) -> Boolean): Int? {\n var single: Int? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) return null\n single = element\n found = true\n }\n }\n if (!found) return null\n return single\n}\n\n/**\n * Returns the single element matching the given [predicate], or `null` if element was not found or more than one element was found.\n */\npublic inline fun LongArray.singleOrNull(predicate: (Long) -> Boolean): Long? {\n var single: Long? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) return null\n single = element\n found = true\n }\n }\n if (!found) return null\n return single\n}\n\n/**\n * Returns the single element matching the given [predicate], or `null` if element was not found or more than one element was found.\n */\npublic inline fun FloatArray.singleOrNull(predicate: (Float) -> Boolean): Float? {\n var single: Float? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) return null\n single = element\n found = true\n }\n }\n if (!found) return null\n return single\n}\n\n/**\n * Returns the single element matching the given [predicate], or `null` if element was not found or more than one element was found.\n */\npublic inline fun DoubleArray.singleOrNull(predicate: (Double) -> Boolean): Double? {\n var single: Double? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) return null\n single = element\n found = true\n }\n }\n if (!found) return null\n return single\n}\n\n/**\n * Returns the single element matching the given [predicate], or `null` if element was not found or more than one element was found.\n */\npublic inline fun BooleanArray.singleOrNull(predicate: (Boolean) -> Boolean): Boolean? {\n var single: Boolean? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) return null\n single = element\n found = true\n }\n }\n if (!found) return null\n return single\n}\n\n/**\n * Returns the single element matching the given [predicate], or `null` if element was not found or more than one element was found.\n */\npublic inline fun CharArray.singleOrNull(predicate: (Char) -> Boolean): Char? {\n var single: Char? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) return null\n single = element\n found = true\n }\n }\n if (!found) return null\n return single\n}\n\n/**\n * Returns a list containing all elements except first [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic fun Array.drop(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n return takeLast((size - n).coerceAtLeast(0))\n}\n\n/**\n * Returns a list containing all elements except first [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic fun ByteArray.drop(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n return takeLast((size - n).coerceAtLeast(0))\n}\n\n/**\n * Returns a list containing all elements except first [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic fun ShortArray.drop(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n return takeLast((size - n).coerceAtLeast(0))\n}\n\n/**\n * Returns a list containing all elements except first [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic fun IntArray.drop(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n return takeLast((size - n).coerceAtLeast(0))\n}\n\n/**\n * Returns a list containing all elements except first [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic fun LongArray.drop(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n return takeLast((size - n).coerceAtLeast(0))\n}\n\n/**\n * Returns a list containing all elements except first [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic fun FloatArray.drop(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n return takeLast((size - n).coerceAtLeast(0))\n}\n\n/**\n * Returns a list containing all elements except first [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic fun DoubleArray.drop(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n return takeLast((size - n).coerceAtLeast(0))\n}\n\n/**\n * Returns a list containing all elements except first [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic fun BooleanArray.drop(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n return takeLast((size - n).coerceAtLeast(0))\n}\n\n/**\n * Returns a list containing all elements except first [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic fun CharArray.drop(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n return takeLast((size - n).coerceAtLeast(0))\n}\n\n/**\n * Returns a list containing all elements except last [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic fun Array.dropLast(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n return take((size - n).coerceAtLeast(0))\n}\n\n/**\n * Returns a list containing all elements except last [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic fun ByteArray.dropLast(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n return take((size - n).coerceAtLeast(0))\n}\n\n/**\n * Returns a list containing all elements except last [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic fun ShortArray.dropLast(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n return take((size - n).coerceAtLeast(0))\n}\n\n/**\n * Returns a list containing all elements except last [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic fun IntArray.dropLast(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n return take((size - n).coerceAtLeast(0))\n}\n\n/**\n * Returns a list containing all elements except last [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic fun LongArray.dropLast(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n return take((size - n).coerceAtLeast(0))\n}\n\n/**\n * Returns a list containing all elements except last [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic fun FloatArray.dropLast(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n return take((size - n).coerceAtLeast(0))\n}\n\n/**\n * Returns a list containing all elements except last [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic fun DoubleArray.dropLast(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n return take((size - n).coerceAtLeast(0))\n}\n\n/**\n * Returns a list containing all elements except last [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic fun BooleanArray.dropLast(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n return take((size - n).coerceAtLeast(0))\n}\n\n/**\n * Returns a list containing all elements except last [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic fun CharArray.dropLast(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n return take((size - n).coerceAtLeast(0))\n}\n\n/**\n * Returns a list containing all elements except last elements that satisfy the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic inline fun Array.dropLastWhile(predicate: (T) -> Boolean): List {\n for (index in lastIndex downTo 0) {\n if (!predicate(this[index])) {\n return take(index + 1)\n }\n }\n return emptyList()\n}\n\n/**\n * Returns a list containing all elements except last elements that satisfy the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic inline fun ByteArray.dropLastWhile(predicate: (Byte) -> Boolean): List {\n for (index in lastIndex downTo 0) {\n if (!predicate(this[index])) {\n return take(index + 1)\n }\n }\n return emptyList()\n}\n\n/**\n * Returns a list containing all elements except last elements that satisfy the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic inline fun ShortArray.dropLastWhile(predicate: (Short) -> Boolean): List {\n for (index in lastIndex downTo 0) {\n if (!predicate(this[index])) {\n return take(index + 1)\n }\n }\n return emptyList()\n}\n\n/**\n * Returns a list containing all elements except last elements that satisfy the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic inline fun IntArray.dropLastWhile(predicate: (Int) -> Boolean): List {\n for (index in lastIndex downTo 0) {\n if (!predicate(this[index])) {\n return take(index + 1)\n }\n }\n return emptyList()\n}\n\n/**\n * Returns a list containing all elements except last elements that satisfy the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic inline fun LongArray.dropLastWhile(predicate: (Long) -> Boolean): List {\n for (index in lastIndex downTo 0) {\n if (!predicate(this[index])) {\n return take(index + 1)\n }\n }\n return emptyList()\n}\n\n/**\n * Returns a list containing all elements except last elements that satisfy the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic inline fun FloatArray.dropLastWhile(predicate: (Float) -> Boolean): List {\n for (index in lastIndex downTo 0) {\n if (!predicate(this[index])) {\n return take(index + 1)\n }\n }\n return emptyList()\n}\n\n/**\n * Returns a list containing all elements except last elements that satisfy the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic inline fun DoubleArray.dropLastWhile(predicate: (Double) -> Boolean): List {\n for (index in lastIndex downTo 0) {\n if (!predicate(this[index])) {\n return take(index + 1)\n }\n }\n return emptyList()\n}\n\n/**\n * Returns a list containing all elements except last elements that satisfy the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic inline fun BooleanArray.dropLastWhile(predicate: (Boolean) -> Boolean): List {\n for (index in lastIndex downTo 0) {\n if (!predicate(this[index])) {\n return take(index + 1)\n }\n }\n return emptyList()\n}\n\n/**\n * Returns a list containing all elements except last elements that satisfy the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic inline fun CharArray.dropLastWhile(predicate: (Char) -> Boolean): List {\n for (index in lastIndex downTo 0) {\n if (!predicate(this[index])) {\n return take(index + 1)\n }\n }\n return emptyList()\n}\n\n/**\n * Returns a list containing all elements except first elements that satisfy the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic inline fun Array.dropWhile(predicate: (T) -> Boolean): List {\n var yielding = false\n val list = ArrayList()\n for (item in this)\n if (yielding)\n list.add(item)\n else if (!predicate(item)) {\n list.add(item)\n yielding = true\n }\n return list\n}\n\n/**\n * Returns a list containing all elements except first elements that satisfy the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic inline fun ByteArray.dropWhile(predicate: (Byte) -> Boolean): List {\n var yielding = false\n val list = ArrayList()\n for (item in this)\n if (yielding)\n list.add(item)\n else if (!predicate(item)) {\n list.add(item)\n yielding = true\n }\n return list\n}\n\n/**\n * Returns a list containing all elements except first elements that satisfy the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic inline fun ShortArray.dropWhile(predicate: (Short) -> Boolean): List {\n var yielding = false\n val list = ArrayList()\n for (item in this)\n if (yielding)\n list.add(item)\n else if (!predicate(item)) {\n list.add(item)\n yielding = true\n }\n return list\n}\n\n/**\n * Returns a list containing all elements except first elements that satisfy the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic inline fun IntArray.dropWhile(predicate: (Int) -> Boolean): List {\n var yielding = false\n val list = ArrayList()\n for (item in this)\n if (yielding)\n list.add(item)\n else if (!predicate(item)) {\n list.add(item)\n yielding = true\n }\n return list\n}\n\n/**\n * Returns a list containing all elements except first elements that satisfy the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic inline fun LongArray.dropWhile(predicate: (Long) -> Boolean): List {\n var yielding = false\n val list = ArrayList()\n for (item in this)\n if (yielding)\n list.add(item)\n else if (!predicate(item)) {\n list.add(item)\n yielding = true\n }\n return list\n}\n\n/**\n * Returns a list containing all elements except first elements that satisfy the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic inline fun FloatArray.dropWhile(predicate: (Float) -> Boolean): List {\n var yielding = false\n val list = ArrayList()\n for (item in this)\n if (yielding)\n list.add(item)\n else if (!predicate(item)) {\n list.add(item)\n yielding = true\n }\n return list\n}\n\n/**\n * Returns a list containing all elements except first elements that satisfy the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic inline fun DoubleArray.dropWhile(predicate: (Double) -> Boolean): List {\n var yielding = false\n val list = ArrayList()\n for (item in this)\n if (yielding)\n list.add(item)\n else if (!predicate(item)) {\n list.add(item)\n yielding = true\n }\n return list\n}\n\n/**\n * Returns a list containing all elements except first elements that satisfy the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic inline fun BooleanArray.dropWhile(predicate: (Boolean) -> Boolean): List {\n var yielding = false\n val list = ArrayList()\n for (item in this)\n if (yielding)\n list.add(item)\n else if (!predicate(item)) {\n list.add(item)\n yielding = true\n }\n return list\n}\n\n/**\n * Returns a list containing all elements except first elements that satisfy the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic inline fun CharArray.dropWhile(predicate: (Char) -> Boolean): List {\n var yielding = false\n val list = ArrayList()\n for (item in this)\n if (yielding)\n list.add(item)\n else if (!predicate(item)) {\n list.add(item)\n yielding = true\n }\n return list\n}\n\n/**\n * Returns a list containing only elements matching the given [predicate].\n * \n * @sample samples.collections.Collections.Filtering.filter\n */\npublic inline fun Array.filter(predicate: (T) -> Boolean): List {\n return filterTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing only elements matching the given [predicate].\n * \n * @sample samples.collections.Collections.Filtering.filter\n */\npublic inline fun ByteArray.filter(predicate: (Byte) -> Boolean): List {\n return filterTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing only elements matching the given [predicate].\n * \n * @sample samples.collections.Collections.Filtering.filter\n */\npublic inline fun ShortArray.filter(predicate: (Short) -> Boolean): List {\n return filterTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing only elements matching the given [predicate].\n * \n * @sample samples.collections.Collections.Filtering.filter\n */\npublic inline fun IntArray.filter(predicate: (Int) -> Boolean): List {\n return filterTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing only elements matching the given [predicate].\n * \n * @sample samples.collections.Collections.Filtering.filter\n */\npublic inline fun LongArray.filter(predicate: (Long) -> Boolean): List {\n return filterTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing only elements matching the given [predicate].\n * \n * @sample samples.collections.Collections.Filtering.filter\n */\npublic inline fun FloatArray.filter(predicate: (Float) -> Boolean): List {\n return filterTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing only elements matching the given [predicate].\n * \n * @sample samples.collections.Collections.Filtering.filter\n */\npublic inline fun DoubleArray.filter(predicate: (Double) -> Boolean): List {\n return filterTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing only elements matching the given [predicate].\n * \n * @sample samples.collections.Collections.Filtering.filter\n */\npublic inline fun BooleanArray.filter(predicate: (Boolean) -> Boolean): List {\n return filterTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing only elements matching the given [predicate].\n * \n * @sample samples.collections.Collections.Filtering.filter\n */\npublic inline fun CharArray.filter(predicate: (Char) -> Boolean): List {\n return filterTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing only elements matching the given [predicate].\n * @param [predicate] function that takes the index of an element and the element itself\n * and returns the result of predicate evaluation on the element.\n * \n * @sample samples.collections.Collections.Filtering.filterIndexed\n */\npublic inline fun Array.filterIndexed(predicate: (index: Int, T) -> Boolean): List {\n return filterIndexedTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing only elements matching the given [predicate].\n * @param [predicate] function that takes the index of an element and the element itself\n * and returns the result of predicate evaluation on the element.\n * \n * @sample samples.collections.Collections.Filtering.filterIndexed\n */\npublic inline fun ByteArray.filterIndexed(predicate: (index: Int, Byte) -> Boolean): List {\n return filterIndexedTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing only elements matching the given [predicate].\n * @param [predicate] function that takes the index of an element and the element itself\n * and returns the result of predicate evaluation on the element.\n * \n * @sample samples.collections.Collections.Filtering.filterIndexed\n */\npublic inline fun ShortArray.filterIndexed(predicate: (index: Int, Short) -> Boolean): List {\n return filterIndexedTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing only elements matching the given [predicate].\n * @param [predicate] function that takes the index of an element and the element itself\n * and returns the result of predicate evaluation on the element.\n * \n * @sample samples.collections.Collections.Filtering.filterIndexed\n */\npublic inline fun IntArray.filterIndexed(predicate: (index: Int, Int) -> Boolean): List {\n return filterIndexedTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing only elements matching the given [predicate].\n * @param [predicate] function that takes the index of an element and the element itself\n * and returns the result of predicate evaluation on the element.\n * \n * @sample samples.collections.Collections.Filtering.filterIndexed\n */\npublic inline fun LongArray.filterIndexed(predicate: (index: Int, Long) -> Boolean): List {\n return filterIndexedTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing only elements matching the given [predicate].\n * @param [predicate] function that takes the index of an element and the element itself\n * and returns the result of predicate evaluation on the element.\n * \n * @sample samples.collections.Collections.Filtering.filterIndexed\n */\npublic inline fun FloatArray.filterIndexed(predicate: (index: Int, Float) -> Boolean): List {\n return filterIndexedTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing only elements matching the given [predicate].\n * @param [predicate] function that takes the index of an element and the element itself\n * and returns the result of predicate evaluation on the element.\n * \n * @sample samples.collections.Collections.Filtering.filterIndexed\n */\npublic inline fun DoubleArray.filterIndexed(predicate: (index: Int, Double) -> Boolean): List {\n return filterIndexedTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing only elements matching the given [predicate].\n * @param [predicate] function that takes the index of an element and the element itself\n * and returns the result of predicate evaluation on the element.\n * \n * @sample samples.collections.Collections.Filtering.filterIndexed\n */\npublic inline fun BooleanArray.filterIndexed(predicate: (index: Int, Boolean) -> Boolean): List {\n return filterIndexedTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing only elements matching the given [predicate].\n * @param [predicate] function that takes the index of an element and the element itself\n * and returns the result of predicate evaluation on the element.\n * \n * @sample samples.collections.Collections.Filtering.filterIndexed\n */\npublic inline fun CharArray.filterIndexed(predicate: (index: Int, Char) -> Boolean): List {\n return filterIndexedTo(ArrayList(), predicate)\n}\n\n/**\n * Appends all elements matching the given [predicate] to the given [destination].\n * @param [predicate] function that takes the index of an element and the element itself\n * and returns the result of predicate evaluation on the element.\n * \n * @sample samples.collections.Collections.Filtering.filterIndexedTo\n */\npublic inline fun > Array.filterIndexedTo(destination: C, predicate: (index: Int, T) -> Boolean): C {\n forEachIndexed { index, element ->\n if (predicate(index, element)) destination.add(element)\n }\n return destination\n}\n\n/**\n * Appends all elements matching the given [predicate] to the given [destination].\n * @param [predicate] function that takes the index of an element and the element itself\n * and returns the result of predicate evaluation on the element.\n * \n * @sample samples.collections.Collections.Filtering.filterIndexedTo\n */\npublic inline fun > ByteArray.filterIndexedTo(destination: C, predicate: (index: Int, Byte) -> Boolean): C {\n forEachIndexed { index, element ->\n if (predicate(index, element)) destination.add(element)\n }\n return destination\n}\n\n/**\n * Appends all elements matching the given [predicate] to the given [destination].\n * @param [predicate] function that takes the index of an element and the element itself\n * and returns the result of predicate evaluation on the element.\n * \n * @sample samples.collections.Collections.Filtering.filterIndexedTo\n */\npublic inline fun > ShortArray.filterIndexedTo(destination: C, predicate: (index: Int, Short) -> Boolean): C {\n forEachIndexed { index, element ->\n if (predicate(index, element)) destination.add(element)\n }\n return destination\n}\n\n/**\n * Appends all elements matching the given [predicate] to the given [destination].\n * @param [predicate] function that takes the index of an element and the element itself\n * and returns the result of predicate evaluation on the element.\n * \n * @sample samples.collections.Collections.Filtering.filterIndexedTo\n */\npublic inline fun > IntArray.filterIndexedTo(destination: C, predicate: (index: Int, Int) -> Boolean): C {\n forEachIndexed { index, element ->\n if (predicate(index, element)) destination.add(element)\n }\n return destination\n}\n\n/**\n * Appends all elements matching the given [predicate] to the given [destination].\n * @param [predicate] function that takes the index of an element and the element itself\n * and returns the result of predicate evaluation on the element.\n * \n * @sample samples.collections.Collections.Filtering.filterIndexedTo\n */\npublic inline fun > LongArray.filterIndexedTo(destination: C, predicate: (index: Int, Long) -> Boolean): C {\n forEachIndexed { index, element ->\n if (predicate(index, element)) destination.add(element)\n }\n return destination\n}\n\n/**\n * Appends all elements matching the given [predicate] to the given [destination].\n * @param [predicate] function that takes the index of an element and the element itself\n * and returns the result of predicate evaluation on the element.\n * \n * @sample samples.collections.Collections.Filtering.filterIndexedTo\n */\npublic inline fun > FloatArray.filterIndexedTo(destination: C, predicate: (index: Int, Float) -> Boolean): C {\n forEachIndexed { index, element ->\n if (predicate(index, element)) destination.add(element)\n }\n return destination\n}\n\n/**\n * Appends all elements matching the given [predicate] to the given [destination].\n * @param [predicate] function that takes the index of an element and the element itself\n * and returns the result of predicate evaluation on the element.\n * \n * @sample samples.collections.Collections.Filtering.filterIndexedTo\n */\npublic inline fun > DoubleArray.filterIndexedTo(destination: C, predicate: (index: Int, Double) -> Boolean): C {\n forEachIndexed { index, element ->\n if (predicate(index, element)) destination.add(element)\n }\n return destination\n}\n\n/**\n * Appends all elements matching the given [predicate] to the given [destination].\n * @param [predicate] function that takes the index of an element and the element itself\n * and returns the result of predicate evaluation on the element.\n * \n * @sample samples.collections.Collections.Filtering.filterIndexedTo\n */\npublic inline fun > BooleanArray.filterIndexedTo(destination: C, predicate: (index: Int, Boolean) -> Boolean): C {\n forEachIndexed { index, element ->\n if (predicate(index, element)) destination.add(element)\n }\n return destination\n}\n\n/**\n * Appends all elements matching the given [predicate] to the given [destination].\n * @param [predicate] function that takes the index of an element and the element itself\n * and returns the result of predicate evaluation on the element.\n * \n * @sample samples.collections.Collections.Filtering.filterIndexedTo\n */\npublic inline fun > CharArray.filterIndexedTo(destination: C, predicate: (index: Int, Char) -> Boolean): C {\n forEachIndexed { index, element ->\n if (predicate(index, element)) destination.add(element)\n }\n return destination\n}\n\n/**\n * Returns a list containing all elements that are instances of specified type parameter R.\n * \n * @sample samples.collections.Collections.Filtering.filterIsInstance\n */\npublic inline fun Array<*>.filterIsInstance(): List<@kotlin.internal.NoInfer R> {\n return filterIsInstanceTo(ArrayList())\n}\n\n/**\n * Appends all elements that are instances of specified type parameter R to the given [destination].\n * \n * @sample samples.collections.Collections.Filtering.filterIsInstanceTo\n */\npublic inline fun > Array<*>.filterIsInstanceTo(destination: C): C {\n for (element in this) if (element is R) destination.add(element)\n return destination\n}\n\n/**\n * Returns a list containing all elements not matching the given [predicate].\n * \n * @sample samples.collections.Collections.Filtering.filter\n */\npublic inline fun Array.filterNot(predicate: (T) -> Boolean): List {\n return filterNotTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing all elements not matching the given [predicate].\n * \n * @sample samples.collections.Collections.Filtering.filter\n */\npublic inline fun ByteArray.filterNot(predicate: (Byte) -> Boolean): List {\n return filterNotTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing all elements not matching the given [predicate].\n * \n * @sample samples.collections.Collections.Filtering.filter\n */\npublic inline fun ShortArray.filterNot(predicate: (Short) -> Boolean): List {\n return filterNotTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing all elements not matching the given [predicate].\n * \n * @sample samples.collections.Collections.Filtering.filter\n */\npublic inline fun IntArray.filterNot(predicate: (Int) -> Boolean): List {\n return filterNotTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing all elements not matching the given [predicate].\n * \n * @sample samples.collections.Collections.Filtering.filter\n */\npublic inline fun LongArray.filterNot(predicate: (Long) -> Boolean): List {\n return filterNotTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing all elements not matching the given [predicate].\n * \n * @sample samples.collections.Collections.Filtering.filter\n */\npublic inline fun FloatArray.filterNot(predicate: (Float) -> Boolean): List {\n return filterNotTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing all elements not matching the given [predicate].\n * \n * @sample samples.collections.Collections.Filtering.filter\n */\npublic inline fun DoubleArray.filterNot(predicate: (Double) -> Boolean): List {\n return filterNotTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing all elements not matching the given [predicate].\n * \n * @sample samples.collections.Collections.Filtering.filter\n */\npublic inline fun BooleanArray.filterNot(predicate: (Boolean) -> Boolean): List {\n return filterNotTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing all elements not matching the given [predicate].\n * \n * @sample samples.collections.Collections.Filtering.filter\n */\npublic inline fun CharArray.filterNot(predicate: (Char) -> Boolean): List {\n return filterNotTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing all elements that are not `null`.\n * \n * @sample samples.collections.Collections.Filtering.filterNotNull\n */\npublic fun Array.filterNotNull(): List {\n return filterNotNullTo(ArrayList())\n}\n\n/**\n * Appends all elements that are not `null` to the given [destination].\n * \n * @sample samples.collections.Collections.Filtering.filterNotNullTo\n */\npublic fun , T : Any> Array.filterNotNullTo(destination: C): C {\n for (element in this) if (element != null) destination.add(element)\n return destination\n}\n\n/**\n * Appends all elements not matching the given [predicate] to the given [destination].\n * \n * @sample samples.collections.Collections.Filtering.filterTo\n */\npublic inline fun > Array.filterNotTo(destination: C, predicate: (T) -> Boolean): C {\n for (element in this) if (!predicate(element)) destination.add(element)\n return destination\n}\n\n/**\n * Appends all elements not matching the given [predicate] to the given [destination].\n * \n * @sample samples.collections.Collections.Filtering.filterTo\n */\npublic inline fun > ByteArray.filterNotTo(destination: C, predicate: (Byte) -> Boolean): C {\n for (element in this) if (!predicate(element)) destination.add(element)\n return destination\n}\n\n/**\n * Appends all elements not matching the given [predicate] to the given [destination].\n * \n * @sample samples.collections.Collections.Filtering.filterTo\n */\npublic inline fun > ShortArray.filterNotTo(destination: C, predicate: (Short) -> Boolean): C {\n for (element in this) if (!predicate(element)) destination.add(element)\n return destination\n}\n\n/**\n * Appends all elements not matching the given [predicate] to the given [destination].\n * \n * @sample samples.collections.Collections.Filtering.filterTo\n */\npublic inline fun > IntArray.filterNotTo(destination: C, predicate: (Int) -> Boolean): C {\n for (element in this) if (!predicate(element)) destination.add(element)\n return destination\n}\n\n/**\n * Appends all elements not matching the given [predicate] to the given [destination].\n * \n * @sample samples.collections.Collections.Filtering.filterTo\n */\npublic inline fun > LongArray.filterNotTo(destination: C, predicate: (Long) -> Boolean): C {\n for (element in this) if (!predicate(element)) destination.add(element)\n return destination\n}\n\n/**\n * Appends all elements not matching the given [predicate] to the given [destination].\n * \n * @sample samples.collections.Collections.Filtering.filterTo\n */\npublic inline fun > FloatArray.filterNotTo(destination: C, predicate: (Float) -> Boolean): C {\n for (element in this) if (!predicate(element)) destination.add(element)\n return destination\n}\n\n/**\n * Appends all elements not matching the given [predicate] to the given [destination].\n * \n * @sample samples.collections.Collections.Filtering.filterTo\n */\npublic inline fun > DoubleArray.filterNotTo(destination: C, predicate: (Double) -> Boolean): C {\n for (element in this) if (!predicate(element)) destination.add(element)\n return destination\n}\n\n/**\n * Appends all elements not matching the given [predicate] to the given [destination].\n * \n * @sample samples.collections.Collections.Filtering.filterTo\n */\npublic inline fun > BooleanArray.filterNotTo(destination: C, predicate: (Boolean) -> Boolean): C {\n for (element in this) if (!predicate(element)) destination.add(element)\n return destination\n}\n\n/**\n * Appends all elements not matching the given [predicate] to the given [destination].\n * \n * @sample samples.collections.Collections.Filtering.filterTo\n */\npublic inline fun > CharArray.filterNotTo(destination: C, predicate: (Char) -> Boolean): C {\n for (element in this) if (!predicate(element)) destination.add(element)\n return destination\n}\n\n/**\n * Appends all elements matching the given [predicate] to the given [destination].\n * \n * @sample samples.collections.Collections.Filtering.filterTo\n */\npublic inline fun > Array.filterTo(destination: C, predicate: (T) -> Boolean): C {\n for (element in this) if (predicate(element)) destination.add(element)\n return destination\n}\n\n/**\n * Appends all elements matching the given [predicate] to the given [destination].\n * \n * @sample samples.collections.Collections.Filtering.filterTo\n */\npublic inline fun > ByteArray.filterTo(destination: C, predicate: (Byte) -> Boolean): C {\n for (element in this) if (predicate(element)) destination.add(element)\n return destination\n}\n\n/**\n * Appends all elements matching the given [predicate] to the given [destination].\n * \n * @sample samples.collections.Collections.Filtering.filterTo\n */\npublic inline fun > ShortArray.filterTo(destination: C, predicate: (Short) -> Boolean): C {\n for (element in this) if (predicate(element)) destination.add(element)\n return destination\n}\n\n/**\n * Appends all elements matching the given [predicate] to the given [destination].\n * \n * @sample samples.collections.Collections.Filtering.filterTo\n */\npublic inline fun > IntArray.filterTo(destination: C, predicate: (Int) -> Boolean): C {\n for (element in this) if (predicate(element)) destination.add(element)\n return destination\n}\n\n/**\n * Appends all elements matching the given [predicate] to the given [destination].\n * \n * @sample samples.collections.Collections.Filtering.filterTo\n */\npublic inline fun > LongArray.filterTo(destination: C, predicate: (Long) -> Boolean): C {\n for (element in this) if (predicate(element)) destination.add(element)\n return destination\n}\n\n/**\n * Appends all elements matching the given [predicate] to the given [destination].\n * \n * @sample samples.collections.Collections.Filtering.filterTo\n */\npublic inline fun > FloatArray.filterTo(destination: C, predicate: (Float) -> Boolean): C {\n for (element in this) if (predicate(element)) destination.add(element)\n return destination\n}\n\n/**\n * Appends all elements matching the given [predicate] to the given [destination].\n * \n * @sample samples.collections.Collections.Filtering.filterTo\n */\npublic inline fun > DoubleArray.filterTo(destination: C, predicate: (Double) -> Boolean): C {\n for (element in this) if (predicate(element)) destination.add(element)\n return destination\n}\n\n/**\n * Appends all elements matching the given [predicate] to the given [destination].\n * \n * @sample samples.collections.Collections.Filtering.filterTo\n */\npublic inline fun > BooleanArray.filterTo(destination: C, predicate: (Boolean) -> Boolean): C {\n for (element in this) if (predicate(element)) destination.add(element)\n return destination\n}\n\n/**\n * Appends all elements matching the given [predicate] to the given [destination].\n * \n * @sample samples.collections.Collections.Filtering.filterTo\n */\npublic inline fun > CharArray.filterTo(destination: C, predicate: (Char) -> Boolean): C {\n for (element in this) if (predicate(element)) destination.add(element)\n return destination\n}\n\n/**\n * Returns a list containing elements at indices in the specified [indices] range.\n */\npublic fun Array.slice(indices: IntRange): List {\n if (indices.isEmpty()) return listOf()\n return copyOfRange(indices.start, indices.endInclusive + 1).asList()\n}\n\n/**\n * Returns a list containing elements at indices in the specified [indices] range.\n */\npublic fun ByteArray.slice(indices: IntRange): List {\n if (indices.isEmpty()) return listOf()\n return copyOfRange(indices.start, indices.endInclusive + 1).asList()\n}\n\n/**\n * Returns a list containing elements at indices in the specified [indices] range.\n */\npublic fun ShortArray.slice(indices: IntRange): List {\n if (indices.isEmpty()) return listOf()\n return copyOfRange(indices.start, indices.endInclusive + 1).asList()\n}\n\n/**\n * Returns a list containing elements at indices in the specified [indices] range.\n */\npublic fun IntArray.slice(indices: IntRange): List {\n if (indices.isEmpty()) return listOf()\n return copyOfRange(indices.start, indices.endInclusive + 1).asList()\n}\n\n/**\n * Returns a list containing elements at indices in the specified [indices] range.\n */\npublic fun LongArray.slice(indices: IntRange): List {\n if (indices.isEmpty()) return listOf()\n return copyOfRange(indices.start, indices.endInclusive + 1).asList()\n}\n\n/**\n * Returns a list containing elements at indices in the specified [indices] range.\n */\npublic fun FloatArray.slice(indices: IntRange): List {\n if (indices.isEmpty()) return listOf()\n return copyOfRange(indices.start, indices.endInclusive + 1).asList()\n}\n\n/**\n * Returns a list containing elements at indices in the specified [indices] range.\n */\npublic fun DoubleArray.slice(indices: IntRange): List {\n if (indices.isEmpty()) return listOf()\n return copyOfRange(indices.start, indices.endInclusive + 1).asList()\n}\n\n/**\n * Returns a list containing elements at indices in the specified [indices] range.\n */\npublic fun BooleanArray.slice(indices: IntRange): List {\n if (indices.isEmpty()) return listOf()\n return copyOfRange(indices.start, indices.endInclusive + 1).asList()\n}\n\n/**\n * Returns a list containing elements at indices in the specified [indices] range.\n */\npublic fun CharArray.slice(indices: IntRange): List {\n if (indices.isEmpty()) return listOf()\n return copyOfRange(indices.start, indices.endInclusive + 1).asList()\n}\n\n/**\n * Returns a list containing elements at specified [indices].\n */\npublic fun Array.slice(indices: Iterable): List {\n val size = indices.collectionSizeOrDefault(10)\n if (size == 0) return emptyList()\n val list = ArrayList(size)\n for (index in indices) {\n list.add(get(index))\n }\n return list\n}\n\n/**\n * Returns a list containing elements at specified [indices].\n */\npublic fun ByteArray.slice(indices: Iterable): List {\n val size = indices.collectionSizeOrDefault(10)\n if (size == 0) return emptyList()\n val list = ArrayList(size)\n for (index in indices) {\n list.add(get(index))\n }\n return list\n}\n\n/**\n * Returns a list containing elements at specified [indices].\n */\npublic fun ShortArray.slice(indices: Iterable): List {\n val size = indices.collectionSizeOrDefault(10)\n if (size == 0) return emptyList()\n val list = ArrayList(size)\n for (index in indices) {\n list.add(get(index))\n }\n return list\n}\n\n/**\n * Returns a list containing elements at specified [indices].\n */\npublic fun IntArray.slice(indices: Iterable): List {\n val size = indices.collectionSizeOrDefault(10)\n if (size == 0) return emptyList()\n val list = ArrayList(size)\n for (index in indices) {\n list.add(get(index))\n }\n return list\n}\n\n/**\n * Returns a list containing elements at specified [indices].\n */\npublic fun LongArray.slice(indices: Iterable): List {\n val size = indices.collectionSizeOrDefault(10)\n if (size == 0) return emptyList()\n val list = ArrayList(size)\n for (index in indices) {\n list.add(get(index))\n }\n return list\n}\n\n/**\n * Returns a list containing elements at specified [indices].\n */\npublic fun FloatArray.slice(indices: Iterable): List {\n val size = indices.collectionSizeOrDefault(10)\n if (size == 0) return emptyList()\n val list = ArrayList(size)\n for (index in indices) {\n list.add(get(index))\n }\n return list\n}\n\n/**\n * Returns a list containing elements at specified [indices].\n */\npublic fun DoubleArray.slice(indices: Iterable): List {\n val size = indices.collectionSizeOrDefault(10)\n if (size == 0) return emptyList()\n val list = ArrayList(size)\n for (index in indices) {\n list.add(get(index))\n }\n return list\n}\n\n/**\n * Returns a list containing elements at specified [indices].\n */\npublic fun BooleanArray.slice(indices: Iterable): List {\n val size = indices.collectionSizeOrDefault(10)\n if (size == 0) return emptyList()\n val list = ArrayList(size)\n for (index in indices) {\n list.add(get(index))\n }\n return list\n}\n\n/**\n * Returns a list containing elements at specified [indices].\n */\npublic fun CharArray.slice(indices: Iterable): List {\n val size = indices.collectionSizeOrDefault(10)\n if (size == 0) return emptyList()\n val list = ArrayList(size)\n for (index in indices) {\n list.add(get(index))\n }\n return list\n}\n\n/**\n * Returns an array containing elements of this array at specified [indices].\n */\npublic fun Array.sliceArray(indices: Collection): Array {\n val result = arrayOfNulls(this, indices.size)\n var targetIndex = 0\n for (sourceIndex in indices) {\n result[targetIndex++] = this[sourceIndex]\n }\n return result\n}\n\n/**\n * Returns an array containing elements of this array at specified [indices].\n */\npublic fun ByteArray.sliceArray(indices: Collection): ByteArray {\n val result = ByteArray(indices.size)\n var targetIndex = 0\n for (sourceIndex in indices) {\n result[targetIndex++] = this[sourceIndex]\n }\n return result\n}\n\n/**\n * Returns an array containing elements of this array at specified [indices].\n */\npublic fun ShortArray.sliceArray(indices: Collection): ShortArray {\n val result = ShortArray(indices.size)\n var targetIndex = 0\n for (sourceIndex in indices) {\n result[targetIndex++] = this[sourceIndex]\n }\n return result\n}\n\n/**\n * Returns an array containing elements of this array at specified [indices].\n */\npublic fun IntArray.sliceArray(indices: Collection): IntArray {\n val result = IntArray(indices.size)\n var targetIndex = 0\n for (sourceIndex in indices) {\n result[targetIndex++] = this[sourceIndex]\n }\n return result\n}\n\n/**\n * Returns an array containing elements of this array at specified [indices].\n */\npublic fun LongArray.sliceArray(indices: Collection): LongArray {\n val result = LongArray(indices.size)\n var targetIndex = 0\n for (sourceIndex in indices) {\n result[targetIndex++] = this[sourceIndex]\n }\n return result\n}\n\n/**\n * Returns an array containing elements of this array at specified [indices].\n */\npublic fun FloatArray.sliceArray(indices: Collection): FloatArray {\n val result = FloatArray(indices.size)\n var targetIndex = 0\n for (sourceIndex in indices) {\n result[targetIndex++] = this[sourceIndex]\n }\n return result\n}\n\n/**\n * Returns an array containing elements of this array at specified [indices].\n */\npublic fun DoubleArray.sliceArray(indices: Collection): DoubleArray {\n val result = DoubleArray(indices.size)\n var targetIndex = 0\n for (sourceIndex in indices) {\n result[targetIndex++] = this[sourceIndex]\n }\n return result\n}\n\n/**\n * Returns an array containing elements of this array at specified [indices].\n */\npublic fun BooleanArray.sliceArray(indices: Collection): BooleanArray {\n val result = BooleanArray(indices.size)\n var targetIndex = 0\n for (sourceIndex in indices) {\n result[targetIndex++] = this[sourceIndex]\n }\n return result\n}\n\n/**\n * Returns an array containing elements of this array at specified [indices].\n */\npublic fun CharArray.sliceArray(indices: Collection): CharArray {\n val result = CharArray(indices.size)\n var targetIndex = 0\n for (sourceIndex in indices) {\n result[targetIndex++] = this[sourceIndex]\n }\n return result\n}\n\n/**\n * Returns an array containing elements at indices in the specified [indices] range.\n */\npublic fun Array.sliceArray(indices: IntRange): Array {\n if (indices.isEmpty()) return copyOfRange(0, 0)\n return copyOfRange(indices.start, indices.endInclusive + 1)\n}\n\n/**\n * Returns an array containing elements at indices in the specified [indices] range.\n */\npublic fun ByteArray.sliceArray(indices: IntRange): ByteArray {\n if (indices.isEmpty()) return ByteArray(0)\n return copyOfRange(indices.start, indices.endInclusive + 1)\n}\n\n/**\n * Returns an array containing elements at indices in the specified [indices] range.\n */\npublic fun ShortArray.sliceArray(indices: IntRange): ShortArray {\n if (indices.isEmpty()) return ShortArray(0)\n return copyOfRange(indices.start, indices.endInclusive + 1)\n}\n\n/**\n * Returns an array containing elements at indices in the specified [indices] range.\n */\npublic fun IntArray.sliceArray(indices: IntRange): IntArray {\n if (indices.isEmpty()) return IntArray(0)\n return copyOfRange(indices.start, indices.endInclusive + 1)\n}\n\n/**\n * Returns an array containing elements at indices in the specified [indices] range.\n */\npublic fun LongArray.sliceArray(indices: IntRange): LongArray {\n if (indices.isEmpty()) return LongArray(0)\n return copyOfRange(indices.start, indices.endInclusive + 1)\n}\n\n/**\n * Returns an array containing elements at indices in the specified [indices] range.\n */\npublic fun FloatArray.sliceArray(indices: IntRange): FloatArray {\n if (indices.isEmpty()) return FloatArray(0)\n return copyOfRange(indices.start, indices.endInclusive + 1)\n}\n\n/**\n * Returns an array containing elements at indices in the specified [indices] range.\n */\npublic fun DoubleArray.sliceArray(indices: IntRange): DoubleArray {\n if (indices.isEmpty()) return DoubleArray(0)\n return copyOfRange(indices.start, indices.endInclusive + 1)\n}\n\n/**\n * Returns an array containing elements at indices in the specified [indices] range.\n */\npublic fun BooleanArray.sliceArray(indices: IntRange): BooleanArray {\n if (indices.isEmpty()) return BooleanArray(0)\n return copyOfRange(indices.start, indices.endInclusive + 1)\n}\n\n/**\n * Returns an array containing elements at indices in the specified [indices] range.\n */\npublic fun CharArray.sliceArray(indices: IntRange): CharArray {\n if (indices.isEmpty()) return CharArray(0)\n return copyOfRange(indices.start, indices.endInclusive + 1)\n}\n\n/**\n * Returns a list containing first [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic fun Array.take(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return emptyList()\n if (n >= size) return toList()\n if (n == 1) return listOf(this[0])\n var count = 0\n val list = ArrayList(n)\n for (item in this) {\n list.add(item)\n if (++count == n)\n break\n }\n return list\n}\n\n/**\n * Returns a list containing first [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic fun ByteArray.take(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return emptyList()\n if (n >= size) return toList()\n if (n == 1) return listOf(this[0])\n var count = 0\n val list = ArrayList(n)\n for (item in this) {\n list.add(item)\n if (++count == n)\n break\n }\n return list\n}\n\n/**\n * Returns a list containing first [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic fun ShortArray.take(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return emptyList()\n if (n >= size) return toList()\n if (n == 1) return listOf(this[0])\n var count = 0\n val list = ArrayList(n)\n for (item in this) {\n list.add(item)\n if (++count == n)\n break\n }\n return list\n}\n\n/**\n * Returns a list containing first [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic fun IntArray.take(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return emptyList()\n if (n >= size) return toList()\n if (n == 1) return listOf(this[0])\n var count = 0\n val list = ArrayList(n)\n for (item in this) {\n list.add(item)\n if (++count == n)\n break\n }\n return list\n}\n\n/**\n * Returns a list containing first [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic fun LongArray.take(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return emptyList()\n if (n >= size) return toList()\n if (n == 1) return listOf(this[0])\n var count = 0\n val list = ArrayList(n)\n for (item in this) {\n list.add(item)\n if (++count == n)\n break\n }\n return list\n}\n\n/**\n * Returns a list containing first [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic fun FloatArray.take(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return emptyList()\n if (n >= size) return toList()\n if (n == 1) return listOf(this[0])\n var count = 0\n val list = ArrayList(n)\n for (item in this) {\n list.add(item)\n if (++count == n)\n break\n }\n return list\n}\n\n/**\n * Returns a list containing first [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic fun DoubleArray.take(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return emptyList()\n if (n >= size) return toList()\n if (n == 1) return listOf(this[0])\n var count = 0\n val list = ArrayList(n)\n for (item in this) {\n list.add(item)\n if (++count == n)\n break\n }\n return list\n}\n\n/**\n * Returns a list containing first [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic fun BooleanArray.take(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return emptyList()\n if (n >= size) return toList()\n if (n == 1) return listOf(this[0])\n var count = 0\n val list = ArrayList(n)\n for (item in this) {\n list.add(item)\n if (++count == n)\n break\n }\n return list\n}\n\n/**\n * Returns a list containing first [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic fun CharArray.take(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return emptyList()\n if (n >= size) return toList()\n if (n == 1) return listOf(this[0])\n var count = 0\n val list = ArrayList(n)\n for (item in this) {\n list.add(item)\n if (++count == n)\n break\n }\n return list\n}\n\n/**\n * Returns a list containing last [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic fun Array.takeLast(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return emptyList()\n val size = size\n if (n >= size) return toList()\n if (n == 1) return listOf(this[size - 1])\n val list = ArrayList(n)\n for (index in size - n until size)\n list.add(this[index])\n return list\n}\n\n/**\n * Returns a list containing last [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic fun ByteArray.takeLast(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return emptyList()\n val size = size\n if (n >= size) return toList()\n if (n == 1) return listOf(this[size - 1])\n val list = ArrayList(n)\n for (index in size - n until size)\n list.add(this[index])\n return list\n}\n\n/**\n * Returns a list containing last [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic fun ShortArray.takeLast(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return emptyList()\n val size = size\n if (n >= size) return toList()\n if (n == 1) return listOf(this[size - 1])\n val list = ArrayList(n)\n for (index in size - n until size)\n list.add(this[index])\n return list\n}\n\n/**\n * Returns a list containing last [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic fun IntArray.takeLast(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return emptyList()\n val size = size\n if (n >= size) return toList()\n if (n == 1) return listOf(this[size - 1])\n val list = ArrayList(n)\n for (index in size - n until size)\n list.add(this[index])\n return list\n}\n\n/**\n * Returns a list containing last [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic fun LongArray.takeLast(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return emptyList()\n val size = size\n if (n >= size) return toList()\n if (n == 1) return listOf(this[size - 1])\n val list = ArrayList(n)\n for (index in size - n until size)\n list.add(this[index])\n return list\n}\n\n/**\n * Returns a list containing last [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic fun FloatArray.takeLast(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return emptyList()\n val size = size\n if (n >= size) return toList()\n if (n == 1) return listOf(this[size - 1])\n val list = ArrayList(n)\n for (index in size - n until size)\n list.add(this[index])\n return list\n}\n\n/**\n * Returns a list containing last [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic fun DoubleArray.takeLast(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return emptyList()\n val size = size\n if (n >= size) return toList()\n if (n == 1) return listOf(this[size - 1])\n val list = ArrayList(n)\n for (index in size - n until size)\n list.add(this[index])\n return list\n}\n\n/**\n * Returns a list containing last [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic fun BooleanArray.takeLast(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return emptyList()\n val size = size\n if (n >= size) return toList()\n if (n == 1) return listOf(this[size - 1])\n val list = ArrayList(n)\n for (index in size - n until size)\n list.add(this[index])\n return list\n}\n\n/**\n * Returns a list containing last [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic fun CharArray.takeLast(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return emptyList()\n val size = size\n if (n >= size) return toList()\n if (n == 1) return listOf(this[size - 1])\n val list = ArrayList(n)\n for (index in size - n until size)\n list.add(this[index])\n return list\n}\n\n/**\n * Returns a list containing last elements satisfying the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic inline fun Array.takeLastWhile(predicate: (T) -> Boolean): List {\n for (index in lastIndex downTo 0) {\n if (!predicate(this[index])) {\n return drop(index + 1)\n }\n }\n return toList()\n}\n\n/**\n * Returns a list containing last elements satisfying the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic inline fun ByteArray.takeLastWhile(predicate: (Byte) -> Boolean): List {\n for (index in lastIndex downTo 0) {\n if (!predicate(this[index])) {\n return drop(index + 1)\n }\n }\n return toList()\n}\n\n/**\n * Returns a list containing last elements satisfying the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic inline fun ShortArray.takeLastWhile(predicate: (Short) -> Boolean): List {\n for (index in lastIndex downTo 0) {\n if (!predicate(this[index])) {\n return drop(index + 1)\n }\n }\n return toList()\n}\n\n/**\n * Returns a list containing last elements satisfying the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic inline fun IntArray.takeLastWhile(predicate: (Int) -> Boolean): List {\n for (index in lastIndex downTo 0) {\n if (!predicate(this[index])) {\n return drop(index + 1)\n }\n }\n return toList()\n}\n\n/**\n * Returns a list containing last elements satisfying the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic inline fun LongArray.takeLastWhile(predicate: (Long) -> Boolean): List {\n for (index in lastIndex downTo 0) {\n if (!predicate(this[index])) {\n return drop(index + 1)\n }\n }\n return toList()\n}\n\n/**\n * Returns a list containing last elements satisfying the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic inline fun FloatArray.takeLastWhile(predicate: (Float) -> Boolean): List {\n for (index in lastIndex downTo 0) {\n if (!predicate(this[index])) {\n return drop(index + 1)\n }\n }\n return toList()\n}\n\n/**\n * Returns a list containing last elements satisfying the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic inline fun DoubleArray.takeLastWhile(predicate: (Double) -> Boolean): List {\n for (index in lastIndex downTo 0) {\n if (!predicate(this[index])) {\n return drop(index + 1)\n }\n }\n return toList()\n}\n\n/**\n * Returns a list containing last elements satisfying the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic inline fun BooleanArray.takeLastWhile(predicate: (Boolean) -> Boolean): List {\n for (index in lastIndex downTo 0) {\n if (!predicate(this[index])) {\n return drop(index + 1)\n }\n }\n return toList()\n}\n\n/**\n * Returns a list containing last elements satisfying the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic inline fun CharArray.takeLastWhile(predicate: (Char) -> Boolean): List {\n for (index in lastIndex downTo 0) {\n if (!predicate(this[index])) {\n return drop(index + 1)\n }\n }\n return toList()\n}\n\n/**\n * Returns a list containing first elements satisfying the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic inline fun Array.takeWhile(predicate: (T) -> Boolean): List {\n val list = ArrayList()\n for (item in this) {\n if (!predicate(item))\n break\n list.add(item)\n }\n return list\n}\n\n/**\n * Returns a list containing first elements satisfying the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic inline fun ByteArray.takeWhile(predicate: (Byte) -> Boolean): List {\n val list = ArrayList()\n for (item in this) {\n if (!predicate(item))\n break\n list.add(item)\n }\n return list\n}\n\n/**\n * Returns a list containing first elements satisfying the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic inline fun ShortArray.takeWhile(predicate: (Short) -> Boolean): List {\n val list = ArrayList()\n for (item in this) {\n if (!predicate(item))\n break\n list.add(item)\n }\n return list\n}\n\n/**\n * Returns a list containing first elements satisfying the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic inline fun IntArray.takeWhile(predicate: (Int) -> Boolean): List {\n val list = ArrayList()\n for (item in this) {\n if (!predicate(item))\n break\n list.add(item)\n }\n return list\n}\n\n/**\n * Returns a list containing first elements satisfying the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic inline fun LongArray.takeWhile(predicate: (Long) -> Boolean): List {\n val list = ArrayList()\n for (item in this) {\n if (!predicate(item))\n break\n list.add(item)\n }\n return list\n}\n\n/**\n * Returns a list containing first elements satisfying the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic inline fun FloatArray.takeWhile(predicate: (Float) -> Boolean): List {\n val list = ArrayList()\n for (item in this) {\n if (!predicate(item))\n break\n list.add(item)\n }\n return list\n}\n\n/**\n * Returns a list containing first elements satisfying the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic inline fun DoubleArray.takeWhile(predicate: (Double) -> Boolean): List {\n val list = ArrayList()\n for (item in this) {\n if (!predicate(item))\n break\n list.add(item)\n }\n return list\n}\n\n/**\n * Returns a list containing first elements satisfying the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic inline fun BooleanArray.takeWhile(predicate: (Boolean) -> Boolean): List {\n val list = ArrayList()\n for (item in this) {\n if (!predicate(item))\n break\n list.add(item)\n }\n return list\n}\n\n/**\n * Returns a list containing first elements satisfying the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic inline fun CharArray.takeWhile(predicate: (Char) -> Boolean): List {\n val list = ArrayList()\n for (item in this) {\n if (!predicate(item))\n break\n list.add(item)\n }\n return list\n}\n\n/**\n * Reverses elements in the array in-place.\n */\npublic fun Array.reverse(): Unit {\n val midPoint = (size / 2) - 1\n if (midPoint < 0) return\n var reverseIndex = lastIndex\n for (index in 0..midPoint) {\n val tmp = this[index]\n this[index] = this[reverseIndex]\n this[reverseIndex] = tmp\n reverseIndex--\n }\n}\n\n/**\n * Reverses elements in the array in-place.\n */\npublic fun ByteArray.reverse(): Unit {\n val midPoint = (size / 2) - 1\n if (midPoint < 0) return\n var reverseIndex = lastIndex\n for (index in 0..midPoint) {\n val tmp = this[index]\n this[index] = this[reverseIndex]\n this[reverseIndex] = tmp\n reverseIndex--\n }\n}\n\n/**\n * Reverses elements in the array in-place.\n */\npublic fun ShortArray.reverse(): Unit {\n val midPoint = (size / 2) - 1\n if (midPoint < 0) return\n var reverseIndex = lastIndex\n for (index in 0..midPoint) {\n val tmp = this[index]\n this[index] = this[reverseIndex]\n this[reverseIndex] = tmp\n reverseIndex--\n }\n}\n\n/**\n * Reverses elements in the array in-place.\n */\npublic fun IntArray.reverse(): Unit {\n val midPoint = (size / 2) - 1\n if (midPoint < 0) return\n var reverseIndex = lastIndex\n for (index in 0..midPoint) {\n val tmp = this[index]\n this[index] = this[reverseIndex]\n this[reverseIndex] = tmp\n reverseIndex--\n }\n}\n\n/**\n * Reverses elements in the array in-place.\n */\npublic fun LongArray.reverse(): Unit {\n val midPoint = (size / 2) - 1\n if (midPoint < 0) return\n var reverseIndex = lastIndex\n for (index in 0..midPoint) {\n val tmp = this[index]\n this[index] = this[reverseIndex]\n this[reverseIndex] = tmp\n reverseIndex--\n }\n}\n\n/**\n * Reverses elements in the array in-place.\n */\npublic fun FloatArray.reverse(): Unit {\n val midPoint = (size / 2) - 1\n if (midPoint < 0) return\n var reverseIndex = lastIndex\n for (index in 0..midPoint) {\n val tmp = this[index]\n this[index] = this[reverseIndex]\n this[reverseIndex] = tmp\n reverseIndex--\n }\n}\n\n/**\n * Reverses elements in the array in-place.\n */\npublic fun DoubleArray.reverse(): Unit {\n val midPoint = (size / 2) - 1\n if (midPoint < 0) return\n var reverseIndex = lastIndex\n for (index in 0..midPoint) {\n val tmp = this[index]\n this[index] = this[reverseIndex]\n this[reverseIndex] = tmp\n reverseIndex--\n }\n}\n\n/**\n * Reverses elements in the array in-place.\n */\npublic fun BooleanArray.reverse(): Unit {\n val midPoint = (size / 2) - 1\n if (midPoint < 0) return\n var reverseIndex = lastIndex\n for (index in 0..midPoint) {\n val tmp = this[index]\n this[index] = this[reverseIndex]\n this[reverseIndex] = tmp\n reverseIndex--\n }\n}\n\n/**\n * Reverses elements in the array in-place.\n */\npublic fun CharArray.reverse(): Unit {\n val midPoint = (size / 2) - 1\n if (midPoint < 0) return\n var reverseIndex = lastIndex\n for (index in 0..midPoint) {\n val tmp = this[index]\n this[index] = this[reverseIndex]\n this[reverseIndex] = tmp\n reverseIndex--\n }\n}\n\n/**\n * Reverses elements of the array in the specified range in-place.\n * \n * @param fromIndex the start of the range (inclusive) to reverse.\n * @param toIndex the end of the range (exclusive) to reverse.\n * \n * @throws IndexOutOfBoundsException if [fromIndex] is less than zero or [toIndex] is greater than the size of this array.\n * @throws IllegalArgumentException if [fromIndex] is greater than [toIndex].\n */\n@SinceKotlin(\"1.4\")\npublic fun Array.reverse(fromIndex: Int, toIndex: Int): Unit {\n AbstractList.checkRangeIndexes(fromIndex, toIndex, size)\n val midPoint = (fromIndex + toIndex) / 2\n if (fromIndex == midPoint) return\n var reverseIndex = toIndex - 1\n for (index in fromIndex until midPoint) {\n val tmp = this[index]\n this[index] = this[reverseIndex]\n this[reverseIndex] = tmp\n reverseIndex--\n }\n}\n\n/**\n * Reverses elements of the array in the specified range in-place.\n * \n * @param fromIndex the start of the range (inclusive) to reverse.\n * @param toIndex the end of the range (exclusive) to reverse.\n * \n * @throws IndexOutOfBoundsException if [fromIndex] is less than zero or [toIndex] is greater than the size of this array.\n * @throws IllegalArgumentException if [fromIndex] is greater than [toIndex].\n */\n@SinceKotlin(\"1.4\")\npublic fun ByteArray.reverse(fromIndex: Int, toIndex: Int): Unit {\n AbstractList.checkRangeIndexes(fromIndex, toIndex, size)\n val midPoint = (fromIndex + toIndex) / 2\n if (fromIndex == midPoint) return\n var reverseIndex = toIndex - 1\n for (index in fromIndex until midPoint) {\n val tmp = this[index]\n this[index] = this[reverseIndex]\n this[reverseIndex] = tmp\n reverseIndex--\n }\n}\n\n/**\n * Reverses elements of the array in the specified range in-place.\n * \n * @param fromIndex the start of the range (inclusive) to reverse.\n * @param toIndex the end of the range (exclusive) to reverse.\n * \n * @throws IndexOutOfBoundsException if [fromIndex] is less than zero or [toIndex] is greater than the size of this array.\n * @throws IllegalArgumentException if [fromIndex] is greater than [toIndex].\n */\n@SinceKotlin(\"1.4\")\npublic fun ShortArray.reverse(fromIndex: Int, toIndex: Int): Unit {\n AbstractList.checkRangeIndexes(fromIndex, toIndex, size)\n val midPoint = (fromIndex + toIndex) / 2\n if (fromIndex == midPoint) return\n var reverseIndex = toIndex - 1\n for (index in fromIndex until midPoint) {\n val tmp = this[index]\n this[index] = this[reverseIndex]\n this[reverseIndex] = tmp\n reverseIndex--\n }\n}\n\n/**\n * Reverses elements of the array in the specified range in-place.\n * \n * @param fromIndex the start of the range (inclusive) to reverse.\n * @param toIndex the end of the range (exclusive) to reverse.\n * \n * @throws IndexOutOfBoundsException if [fromIndex] is less than zero or [toIndex] is greater than the size of this array.\n * @throws IllegalArgumentException if [fromIndex] is greater than [toIndex].\n */\n@SinceKotlin(\"1.4\")\npublic fun IntArray.reverse(fromIndex: Int, toIndex: Int): Unit {\n AbstractList.checkRangeIndexes(fromIndex, toIndex, size)\n val midPoint = (fromIndex + toIndex) / 2\n if (fromIndex == midPoint) return\n var reverseIndex = toIndex - 1\n for (index in fromIndex until midPoint) {\n val tmp = this[index]\n this[index] = this[reverseIndex]\n this[reverseIndex] = tmp\n reverseIndex--\n }\n}\n\n/**\n * Reverses elements of the array in the specified range in-place.\n * \n * @param fromIndex the start of the range (inclusive) to reverse.\n * @param toIndex the end of the range (exclusive) to reverse.\n * \n * @throws IndexOutOfBoundsException if [fromIndex] is less than zero or [toIndex] is greater than the size of this array.\n * @throws IllegalArgumentException if [fromIndex] is greater than [toIndex].\n */\n@SinceKotlin(\"1.4\")\npublic fun LongArray.reverse(fromIndex: Int, toIndex: Int): Unit {\n AbstractList.checkRangeIndexes(fromIndex, toIndex, size)\n val midPoint = (fromIndex + toIndex) / 2\n if (fromIndex == midPoint) return\n var reverseIndex = toIndex - 1\n for (index in fromIndex until midPoint) {\n val tmp = this[index]\n this[index] = this[reverseIndex]\n this[reverseIndex] = tmp\n reverseIndex--\n }\n}\n\n/**\n * Reverses elements of the array in the specified range in-place.\n * \n * @param fromIndex the start of the range (inclusive) to reverse.\n * @param toIndex the end of the range (exclusive) to reverse.\n * \n * @throws IndexOutOfBoundsException if [fromIndex] is less than zero or [toIndex] is greater than the size of this array.\n * @throws IllegalArgumentException if [fromIndex] is greater than [toIndex].\n */\n@SinceKotlin(\"1.4\")\npublic fun FloatArray.reverse(fromIndex: Int, toIndex: Int): Unit {\n AbstractList.checkRangeIndexes(fromIndex, toIndex, size)\n val midPoint = (fromIndex + toIndex) / 2\n if (fromIndex == midPoint) return\n var reverseIndex = toIndex - 1\n for (index in fromIndex until midPoint) {\n val tmp = this[index]\n this[index] = this[reverseIndex]\n this[reverseIndex] = tmp\n reverseIndex--\n }\n}\n\n/**\n * Reverses elements of the array in the specified range in-place.\n * \n * @param fromIndex the start of the range (inclusive) to reverse.\n * @param toIndex the end of the range (exclusive) to reverse.\n * \n * @throws IndexOutOfBoundsException if [fromIndex] is less than zero or [toIndex] is greater than the size of this array.\n * @throws IllegalArgumentException if [fromIndex] is greater than [toIndex].\n */\n@SinceKotlin(\"1.4\")\npublic fun DoubleArray.reverse(fromIndex: Int, toIndex: Int): Unit {\n AbstractList.checkRangeIndexes(fromIndex, toIndex, size)\n val midPoint = (fromIndex + toIndex) / 2\n if (fromIndex == midPoint) return\n var reverseIndex = toIndex - 1\n for (index in fromIndex until midPoint) {\n val tmp = this[index]\n this[index] = this[reverseIndex]\n this[reverseIndex] = tmp\n reverseIndex--\n }\n}\n\n/**\n * Reverses elements of the array in the specified range in-place.\n * \n * @param fromIndex the start of the range (inclusive) to reverse.\n * @param toIndex the end of the range (exclusive) to reverse.\n * \n * @throws IndexOutOfBoundsException if [fromIndex] is less than zero or [toIndex] is greater than the size of this array.\n * @throws IllegalArgumentException if [fromIndex] is greater than [toIndex].\n */\n@SinceKotlin(\"1.4\")\npublic fun BooleanArray.reverse(fromIndex: Int, toIndex: Int): Unit {\n AbstractList.checkRangeIndexes(fromIndex, toIndex, size)\n val midPoint = (fromIndex + toIndex) / 2\n if (fromIndex == midPoint) return\n var reverseIndex = toIndex - 1\n for (index in fromIndex until midPoint) {\n val tmp = this[index]\n this[index] = this[reverseIndex]\n this[reverseIndex] = tmp\n reverseIndex--\n }\n}\n\n/**\n * Reverses elements of the array in the specified range in-place.\n * \n * @param fromIndex the start of the range (inclusive) to reverse.\n * @param toIndex the end of the range (exclusive) to reverse.\n * \n * @throws IndexOutOfBoundsException if [fromIndex] is less than zero or [toIndex] is greater than the size of this array.\n * @throws IllegalArgumentException if [fromIndex] is greater than [toIndex].\n */\n@SinceKotlin(\"1.4\")\npublic fun CharArray.reverse(fromIndex: Int, toIndex: Int): Unit {\n AbstractList.checkRangeIndexes(fromIndex, toIndex, size)\n val midPoint = (fromIndex + toIndex) / 2\n if (fromIndex == midPoint) return\n var reverseIndex = toIndex - 1\n for (index in fromIndex until midPoint) {\n val tmp = this[index]\n this[index] = this[reverseIndex]\n this[reverseIndex] = tmp\n reverseIndex--\n }\n}\n\n/**\n * Returns a list with elements in reversed order.\n */\npublic fun Array.reversed(): List {\n if (isEmpty()) return emptyList()\n val list = toMutableList()\n list.reverse()\n return list\n}\n\n/**\n * Returns a list with elements in reversed order.\n */\npublic fun ByteArray.reversed(): List {\n if (isEmpty()) return emptyList()\n val list = toMutableList()\n list.reverse()\n return list\n}\n\n/**\n * Returns a list with elements in reversed order.\n */\npublic fun ShortArray.reversed(): List {\n if (isEmpty()) return emptyList()\n val list = toMutableList()\n list.reverse()\n return list\n}\n\n/**\n * Returns a list with elements in reversed order.\n */\npublic fun IntArray.reversed(): List {\n if (isEmpty()) return emptyList()\n val list = toMutableList()\n list.reverse()\n return list\n}\n\n/**\n * Returns a list with elements in reversed order.\n */\npublic fun LongArray.reversed(): List {\n if (isEmpty()) return emptyList()\n val list = toMutableList()\n list.reverse()\n return list\n}\n\n/**\n * Returns a list with elements in reversed order.\n */\npublic fun FloatArray.reversed(): List {\n if (isEmpty()) return emptyList()\n val list = toMutableList()\n list.reverse()\n return list\n}\n\n/**\n * Returns a list with elements in reversed order.\n */\npublic fun DoubleArray.reversed(): List {\n if (isEmpty()) return emptyList()\n val list = toMutableList()\n list.reverse()\n return list\n}\n\n/**\n * Returns a list with elements in reversed order.\n */\npublic fun BooleanArray.reversed(): List {\n if (isEmpty()) return emptyList()\n val list = toMutableList()\n list.reverse()\n return list\n}\n\n/**\n * Returns a list with elements in reversed order.\n */\npublic fun CharArray.reversed(): List {\n if (isEmpty()) return emptyList()\n val list = toMutableList()\n list.reverse()\n return list\n}\n\n/**\n * Returns an array with elements of this array in reversed order.\n */\npublic fun Array.reversedArray(): Array {\n if (isEmpty()) return this\n val result = arrayOfNulls(this, size)\n val lastIndex = lastIndex\n for (i in 0..lastIndex)\n result[lastIndex - i] = this[i]\n return result\n}\n\n/**\n * Returns an array with elements of this array in reversed order.\n */\npublic fun ByteArray.reversedArray(): ByteArray {\n if (isEmpty()) return this\n val result = ByteArray(size)\n val lastIndex = lastIndex\n for (i in 0..lastIndex)\n result[lastIndex - i] = this[i]\n return result\n}\n\n/**\n * Returns an array with elements of this array in reversed order.\n */\npublic fun ShortArray.reversedArray(): ShortArray {\n if (isEmpty()) return this\n val result = ShortArray(size)\n val lastIndex = lastIndex\n for (i in 0..lastIndex)\n result[lastIndex - i] = this[i]\n return result\n}\n\n/**\n * Returns an array with elements of this array in reversed order.\n */\npublic fun IntArray.reversedArray(): IntArray {\n if (isEmpty()) return this\n val result = IntArray(size)\n val lastIndex = lastIndex\n for (i in 0..lastIndex)\n result[lastIndex - i] = this[i]\n return result\n}\n\n/**\n * Returns an array with elements of this array in reversed order.\n */\npublic fun LongArray.reversedArray(): LongArray {\n if (isEmpty()) return this\n val result = LongArray(size)\n val lastIndex = lastIndex\n for (i in 0..lastIndex)\n result[lastIndex - i] = this[i]\n return result\n}\n\n/**\n * Returns an array with elements of this array in reversed order.\n */\npublic fun FloatArray.reversedArray(): FloatArray {\n if (isEmpty()) return this\n val result = FloatArray(size)\n val lastIndex = lastIndex\n for (i in 0..lastIndex)\n result[lastIndex - i] = this[i]\n return result\n}\n\n/**\n * Returns an array with elements of this array in reversed order.\n */\npublic fun DoubleArray.reversedArray(): DoubleArray {\n if (isEmpty()) return this\n val result = DoubleArray(size)\n val lastIndex = lastIndex\n for (i in 0..lastIndex)\n result[lastIndex - i] = this[i]\n return result\n}\n\n/**\n * Returns an array with elements of this array in reversed order.\n */\npublic fun BooleanArray.reversedArray(): BooleanArray {\n if (isEmpty()) return this\n val result = BooleanArray(size)\n val lastIndex = lastIndex\n for (i in 0..lastIndex)\n result[lastIndex - i] = this[i]\n return result\n}\n\n/**\n * Returns an array with elements of this array in reversed order.\n */\npublic fun CharArray.reversedArray(): CharArray {\n if (isEmpty()) return this\n val result = CharArray(size)\n val lastIndex = lastIndex\n for (i in 0..lastIndex)\n result[lastIndex - i] = this[i]\n return result\n}\n\n/**\n * Randomly shuffles elements in this array in-place.\n */\n@SinceKotlin(\"1.4\")\npublic fun Array.shuffle(): Unit {\n shuffle(Random)\n}\n\n/**\n * Randomly shuffles elements in this array in-place.\n */\n@SinceKotlin(\"1.4\")\npublic fun ByteArray.shuffle(): Unit {\n shuffle(Random)\n}\n\n/**\n * Randomly shuffles elements in this array in-place.\n */\n@SinceKotlin(\"1.4\")\npublic fun ShortArray.shuffle(): Unit {\n shuffle(Random)\n}\n\n/**\n * Randomly shuffles elements in this array in-place.\n */\n@SinceKotlin(\"1.4\")\npublic fun IntArray.shuffle(): Unit {\n shuffle(Random)\n}\n\n/**\n * Randomly shuffles elements in this array in-place.\n */\n@SinceKotlin(\"1.4\")\npublic fun LongArray.shuffle(): Unit {\n shuffle(Random)\n}\n\n/**\n * Randomly shuffles elements in this array in-place.\n */\n@SinceKotlin(\"1.4\")\npublic fun FloatArray.shuffle(): Unit {\n shuffle(Random)\n}\n\n/**\n * Randomly shuffles elements in this array in-place.\n */\n@SinceKotlin(\"1.4\")\npublic fun DoubleArray.shuffle(): Unit {\n shuffle(Random)\n}\n\n/**\n * Randomly shuffles elements in this array in-place.\n */\n@SinceKotlin(\"1.4\")\npublic fun BooleanArray.shuffle(): Unit {\n shuffle(Random)\n}\n\n/**\n * Randomly shuffles elements in this array in-place.\n */\n@SinceKotlin(\"1.4\")\npublic fun CharArray.shuffle(): Unit {\n shuffle(Random)\n}\n\n/**\n * Randomly shuffles elements in this array in-place using the specified [random] instance as the source of randomness.\n * \n * See: https://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle#The_modern_algorithm\n */\n@SinceKotlin(\"1.4\")\npublic fun Array.shuffle(random: Random): Unit {\n for (i in lastIndex downTo 1) {\n val j = random.nextInt(i + 1)\n val copy = this[i]\n this[i] = this[j]\n this[j] = copy\n }\n}\n\n/**\n * Randomly shuffles elements in this array in-place using the specified [random] instance as the source of randomness.\n * \n * See: https://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle#The_modern_algorithm\n */\n@SinceKotlin(\"1.4\")\npublic fun ByteArray.shuffle(random: Random): Unit {\n for (i in lastIndex downTo 1) {\n val j = random.nextInt(i + 1)\n val copy = this[i]\n this[i] = this[j]\n this[j] = copy\n }\n}\n\n/**\n * Randomly shuffles elements in this array in-place using the specified [random] instance as the source of randomness.\n * \n * See: https://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle#The_modern_algorithm\n */\n@SinceKotlin(\"1.4\")\npublic fun ShortArray.shuffle(random: Random): Unit {\n for (i in lastIndex downTo 1) {\n val j = random.nextInt(i + 1)\n val copy = this[i]\n this[i] = this[j]\n this[j] = copy\n }\n}\n\n/**\n * Randomly shuffles elements in this array in-place using the specified [random] instance as the source of randomness.\n * \n * See: https://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle#The_modern_algorithm\n */\n@SinceKotlin(\"1.4\")\npublic fun IntArray.shuffle(random: Random): Unit {\n for (i in lastIndex downTo 1) {\n val j = random.nextInt(i + 1)\n val copy = this[i]\n this[i] = this[j]\n this[j] = copy\n }\n}\n\n/**\n * Randomly shuffles elements in this array in-place using the specified [random] instance as the source of randomness.\n * \n * See: https://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle#The_modern_algorithm\n */\n@SinceKotlin(\"1.4\")\npublic fun LongArray.shuffle(random: Random): Unit {\n for (i in lastIndex downTo 1) {\n val j = random.nextInt(i + 1)\n val copy = this[i]\n this[i] = this[j]\n this[j] = copy\n }\n}\n\n/**\n * Randomly shuffles elements in this array in-place using the specified [random] instance as the source of randomness.\n * \n * See: https://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle#The_modern_algorithm\n */\n@SinceKotlin(\"1.4\")\npublic fun FloatArray.shuffle(random: Random): Unit {\n for (i in lastIndex downTo 1) {\n val j = random.nextInt(i + 1)\n val copy = this[i]\n this[i] = this[j]\n this[j] = copy\n }\n}\n\n/**\n * Randomly shuffles elements in this array in-place using the specified [random] instance as the source of randomness.\n * \n * See: https://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle#The_modern_algorithm\n */\n@SinceKotlin(\"1.4\")\npublic fun DoubleArray.shuffle(random: Random): Unit {\n for (i in lastIndex downTo 1) {\n val j = random.nextInt(i + 1)\n val copy = this[i]\n this[i] = this[j]\n this[j] = copy\n }\n}\n\n/**\n * Randomly shuffles elements in this array in-place using the specified [random] instance as the source of randomness.\n * \n * See: https://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle#The_modern_algorithm\n */\n@SinceKotlin(\"1.4\")\npublic fun BooleanArray.shuffle(random: Random): Unit {\n for (i in lastIndex downTo 1) {\n val j = random.nextInt(i + 1)\n val copy = this[i]\n this[i] = this[j]\n this[j] = copy\n }\n}\n\n/**\n * Randomly shuffles elements in this array in-place using the specified [random] instance as the source of randomness.\n * \n * See: https://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle#The_modern_algorithm\n */\n@SinceKotlin(\"1.4\")\npublic fun CharArray.shuffle(random: Random): Unit {\n for (i in lastIndex downTo 1) {\n val j = random.nextInt(i + 1)\n val copy = this[i]\n this[i] = this[j]\n this[j] = copy\n }\n}\n\n/**\n * Sorts elements in the array in-place according to natural sort order of the value returned by specified [selector] function.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic inline fun > Array.sortBy(crossinline selector: (T) -> R?): Unit {\n if (size > 1) sortWith(compareBy(selector))\n}\n\n/**\n * Sorts elements in the array in-place descending according to natural sort order of the value returned by specified [selector] function.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic inline fun > Array.sortByDescending(crossinline selector: (T) -> R?): Unit {\n if (size > 1) sortWith(compareByDescending(selector))\n}\n\n/**\n * Sorts elements in the array in-place descending according to their natural sort order.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic fun > Array.sortDescending(): Unit {\n sortWith(reverseOrder())\n}\n\n/**\n * Sorts elements in the array in-place descending according to their natural sort order.\n */\npublic fun ByteArray.sortDescending(): Unit {\n if (size > 1) {\n sort()\n reverse()\n }\n}\n\n/**\n * Sorts elements in the array in-place descending according to their natural sort order.\n */\npublic fun ShortArray.sortDescending(): Unit {\n if (size > 1) {\n sort()\n reverse()\n }\n}\n\n/**\n * Sorts elements in the array in-place descending according to their natural sort order.\n */\npublic fun IntArray.sortDescending(): Unit {\n if (size > 1) {\n sort()\n reverse()\n }\n}\n\n/**\n * Sorts elements in the array in-place descending according to their natural sort order.\n */\npublic fun LongArray.sortDescending(): Unit {\n if (size > 1) {\n sort()\n reverse()\n }\n}\n\n/**\n * Sorts elements in the array in-place descending according to their natural sort order.\n */\npublic fun FloatArray.sortDescending(): Unit {\n if (size > 1) {\n sort()\n reverse()\n }\n}\n\n/**\n * Sorts elements in the array in-place descending according to their natural sort order.\n */\npublic fun DoubleArray.sortDescending(): Unit {\n if (size > 1) {\n sort()\n reverse()\n }\n}\n\n/**\n * Sorts elements in the array in-place descending according to their natural sort order.\n */\npublic fun CharArray.sortDescending(): Unit {\n if (size > 1) {\n sort()\n reverse()\n }\n}\n\n/**\n * Returns a list of all elements sorted according to their natural sort order.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic fun > Array.sorted(): List {\n return sortedArray().asList()\n}\n\n/**\n * Returns a list of all elements sorted according to their natural sort order.\n */\npublic fun ByteArray.sorted(): List {\n return toTypedArray().apply { sort() }.asList()\n}\n\n/**\n * Returns a list of all elements sorted according to their natural sort order.\n */\npublic fun ShortArray.sorted(): List {\n return toTypedArray().apply { sort() }.asList()\n}\n\n/**\n * Returns a list of all elements sorted according to their natural sort order.\n */\npublic fun IntArray.sorted(): List {\n return toTypedArray().apply { sort() }.asList()\n}\n\n/**\n * Returns a list of all elements sorted according to their natural sort order.\n */\npublic fun LongArray.sorted(): List {\n return toTypedArray().apply { sort() }.asList()\n}\n\n/**\n * Returns a list of all elements sorted according to their natural sort order.\n */\npublic fun FloatArray.sorted(): List {\n return toTypedArray().apply { sort() }.asList()\n}\n\n/**\n * Returns a list of all elements sorted according to their natural sort order.\n */\npublic fun DoubleArray.sorted(): List {\n return toTypedArray().apply { sort() }.asList()\n}\n\n/**\n * Returns a list of all elements sorted according to their natural sort order.\n */\npublic fun CharArray.sorted(): List {\n return toTypedArray().apply { sort() }.asList()\n}\n\n/**\n * Returns an array with all elements of this array sorted according to their natural sort order.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic fun > Array.sortedArray(): Array {\n if (isEmpty()) return this\n return this.copyOf().apply { sort() }\n}\n\n/**\n * Returns an array with all elements of this array sorted according to their natural sort order.\n */\npublic fun ByteArray.sortedArray(): ByteArray {\n if (isEmpty()) return this\n return this.copyOf().apply { sort() }\n}\n\n/**\n * Returns an array with all elements of this array sorted according to their natural sort order.\n */\npublic fun ShortArray.sortedArray(): ShortArray {\n if (isEmpty()) return this\n return this.copyOf().apply { sort() }\n}\n\n/**\n * Returns an array with all elements of this array sorted according to their natural sort order.\n */\npublic fun IntArray.sortedArray(): IntArray {\n if (isEmpty()) return this\n return this.copyOf().apply { sort() }\n}\n\n/**\n * Returns an array with all elements of this array sorted according to their natural sort order.\n */\npublic fun LongArray.sortedArray(): LongArray {\n if (isEmpty()) return this\n return this.copyOf().apply { sort() }\n}\n\n/**\n * Returns an array with all elements of this array sorted according to their natural sort order.\n */\npublic fun FloatArray.sortedArray(): FloatArray {\n if (isEmpty()) return this\n return this.copyOf().apply { sort() }\n}\n\n/**\n * Returns an array with all elements of this array sorted according to their natural sort order.\n */\npublic fun DoubleArray.sortedArray(): DoubleArray {\n if (isEmpty()) return this\n return this.copyOf().apply { sort() }\n}\n\n/**\n * Returns an array with all elements of this array sorted according to their natural sort order.\n */\npublic fun CharArray.sortedArray(): CharArray {\n if (isEmpty()) return this\n return this.copyOf().apply { sort() }\n}\n\n/**\n * Returns an array with all elements of this array sorted descending according to their natural sort order.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic fun > Array.sortedArrayDescending(): Array {\n if (isEmpty()) return this\n return this.copyOf().apply { sortWith(reverseOrder()) }\n}\n\n/**\n * Returns an array with all elements of this array sorted descending according to their natural sort order.\n */\npublic fun ByteArray.sortedArrayDescending(): ByteArray {\n if (isEmpty()) return this\n return this.copyOf().apply { sortDescending() }\n}\n\n/**\n * Returns an array with all elements of this array sorted descending according to their natural sort order.\n */\npublic fun ShortArray.sortedArrayDescending(): ShortArray {\n if (isEmpty()) return this\n return this.copyOf().apply { sortDescending() }\n}\n\n/**\n * Returns an array with all elements of this array sorted descending according to their natural sort order.\n */\npublic fun IntArray.sortedArrayDescending(): IntArray {\n if (isEmpty()) return this\n return this.copyOf().apply { sortDescending() }\n}\n\n/**\n * Returns an array with all elements of this array sorted descending according to their natural sort order.\n */\npublic fun LongArray.sortedArrayDescending(): LongArray {\n if (isEmpty()) return this\n return this.copyOf().apply { sortDescending() }\n}\n\n/**\n * Returns an array with all elements of this array sorted descending according to their natural sort order.\n */\npublic fun FloatArray.sortedArrayDescending(): FloatArray {\n if (isEmpty()) return this\n return this.copyOf().apply { sortDescending() }\n}\n\n/**\n * Returns an array with all elements of this array sorted descending according to their natural sort order.\n */\npublic fun DoubleArray.sortedArrayDescending(): DoubleArray {\n if (isEmpty()) return this\n return this.copyOf().apply { sortDescending() }\n}\n\n/**\n * Returns an array with all elements of this array sorted descending according to their natural sort order.\n */\npublic fun CharArray.sortedArrayDescending(): CharArray {\n if (isEmpty()) return this\n return this.copyOf().apply { sortDescending() }\n}\n\n/**\n * Returns an array with all elements of this array sorted according the specified [comparator].\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic fun Array.sortedArrayWith(comparator: Comparator): Array {\n if (isEmpty()) return this\n return this.copyOf().apply { sortWith(comparator) }\n}\n\n/**\n * Returns a list of all elements sorted according to natural sort order of the value returned by specified [selector] function.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n * \n * @sample samples.collections.Collections.Sorting.sortedBy\n */\npublic inline fun > Array.sortedBy(crossinline selector: (T) -> R?): List {\n return sortedWith(compareBy(selector))\n}\n\n/**\n * Returns a list of all elements sorted according to natural sort order of the value returned by specified [selector] function.\n * \n * @sample samples.collections.Collections.Sorting.sortedBy\n */\npublic inline fun > ByteArray.sortedBy(crossinline selector: (Byte) -> R?): List {\n return sortedWith(compareBy(selector))\n}\n\n/**\n * Returns a list of all elements sorted according to natural sort order of the value returned by specified [selector] function.\n * \n * @sample samples.collections.Collections.Sorting.sortedBy\n */\npublic inline fun > ShortArray.sortedBy(crossinline selector: (Short) -> R?): List {\n return sortedWith(compareBy(selector))\n}\n\n/**\n * Returns a list of all elements sorted according to natural sort order of the value returned by specified [selector] function.\n * \n * @sample samples.collections.Collections.Sorting.sortedBy\n */\npublic inline fun > IntArray.sortedBy(crossinline selector: (Int) -> R?): List {\n return sortedWith(compareBy(selector))\n}\n\n/**\n * Returns a list of all elements sorted according to natural sort order of the value returned by specified [selector] function.\n * \n * @sample samples.collections.Collections.Sorting.sortedBy\n */\npublic inline fun > LongArray.sortedBy(crossinline selector: (Long) -> R?): List {\n return sortedWith(compareBy(selector))\n}\n\n/**\n * Returns a list of all elements sorted according to natural sort order of the value returned by specified [selector] function.\n * \n * @sample samples.collections.Collections.Sorting.sortedBy\n */\npublic inline fun > FloatArray.sortedBy(crossinline selector: (Float) -> R?): List {\n return sortedWith(compareBy(selector))\n}\n\n/**\n * Returns a list of all elements sorted according to natural sort order of the value returned by specified [selector] function.\n * \n * @sample samples.collections.Collections.Sorting.sortedBy\n */\npublic inline fun > DoubleArray.sortedBy(crossinline selector: (Double) -> R?): List {\n return sortedWith(compareBy(selector))\n}\n\n/**\n * Returns a list of all elements sorted according to natural sort order of the value returned by specified [selector] function.\n * \n * @sample samples.collections.Collections.Sorting.sortedBy\n */\npublic inline fun > BooleanArray.sortedBy(crossinline selector: (Boolean) -> R?): List {\n return sortedWith(compareBy(selector))\n}\n\n/**\n * Returns a list of all elements sorted according to natural sort order of the value returned by specified [selector] function.\n * \n * @sample samples.collections.Collections.Sorting.sortedBy\n */\npublic inline fun > CharArray.sortedBy(crossinline selector: (Char) -> R?): List {\n return sortedWith(compareBy(selector))\n}\n\n/**\n * Returns a list of all elements sorted descending according to natural sort order of the value returned by specified [selector] function.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic inline fun > Array.sortedByDescending(crossinline selector: (T) -> R?): List {\n return sortedWith(compareByDescending(selector))\n}\n\n/**\n * Returns a list of all elements sorted descending according to natural sort order of the value returned by specified [selector] function.\n */\npublic inline fun > ByteArray.sortedByDescending(crossinline selector: (Byte) -> R?): List {\n return sortedWith(compareByDescending(selector))\n}\n\n/**\n * Returns a list of all elements sorted descending according to natural sort order of the value returned by specified [selector] function.\n */\npublic inline fun > ShortArray.sortedByDescending(crossinline selector: (Short) -> R?): List {\n return sortedWith(compareByDescending(selector))\n}\n\n/**\n * Returns a list of all elements sorted descending according to natural sort order of the value returned by specified [selector] function.\n */\npublic inline fun > IntArray.sortedByDescending(crossinline selector: (Int) -> R?): List {\n return sortedWith(compareByDescending(selector))\n}\n\n/**\n * Returns a list of all elements sorted descending according to natural sort order of the value returned by specified [selector] function.\n */\npublic inline fun > LongArray.sortedByDescending(crossinline selector: (Long) -> R?): List {\n return sortedWith(compareByDescending(selector))\n}\n\n/**\n * Returns a list of all elements sorted descending according to natural sort order of the value returned by specified [selector] function.\n */\npublic inline fun > FloatArray.sortedByDescending(crossinline selector: (Float) -> R?): List {\n return sortedWith(compareByDescending(selector))\n}\n\n/**\n * Returns a list of all elements sorted descending according to natural sort order of the value returned by specified [selector] function.\n */\npublic inline fun > DoubleArray.sortedByDescending(crossinline selector: (Double) -> R?): List {\n return sortedWith(compareByDescending(selector))\n}\n\n/**\n * Returns a list of all elements sorted descending according to natural sort order of the value returned by specified [selector] function.\n */\npublic inline fun > BooleanArray.sortedByDescending(crossinline selector: (Boolean) -> R?): List {\n return sortedWith(compareByDescending(selector))\n}\n\n/**\n * Returns a list of all elements sorted descending according to natural sort order of the value returned by specified [selector] function.\n */\npublic inline fun > CharArray.sortedByDescending(crossinline selector: (Char) -> R?): List {\n return sortedWith(compareByDescending(selector))\n}\n\n/**\n * Returns a list of all elements sorted descending according to their natural sort order.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic fun > Array.sortedDescending(): List {\n return sortedWith(reverseOrder())\n}\n\n/**\n * Returns a list of all elements sorted descending according to their natural sort order.\n */\npublic fun ByteArray.sortedDescending(): List {\n return copyOf().apply { sort() }.reversed()\n}\n\n/**\n * Returns a list of all elements sorted descending according to their natural sort order.\n */\npublic fun ShortArray.sortedDescending(): List {\n return copyOf().apply { sort() }.reversed()\n}\n\n/**\n * Returns a list of all elements sorted descending according to their natural sort order.\n */\npublic fun IntArray.sortedDescending(): List {\n return copyOf().apply { sort() }.reversed()\n}\n\n/**\n * Returns a list of all elements sorted descending according to their natural sort order.\n */\npublic fun LongArray.sortedDescending(): List {\n return copyOf().apply { sort() }.reversed()\n}\n\n/**\n * Returns a list of all elements sorted descending according to their natural sort order.\n */\npublic fun FloatArray.sortedDescending(): List {\n return copyOf().apply { sort() }.reversed()\n}\n\n/**\n * Returns a list of all elements sorted descending according to their natural sort order.\n */\npublic fun DoubleArray.sortedDescending(): List {\n return copyOf().apply { sort() }.reversed()\n}\n\n/**\n * Returns a list of all elements sorted descending according to their natural sort order.\n */\npublic fun CharArray.sortedDescending(): List {\n return copyOf().apply { sort() }.reversed()\n}\n\n/**\n * Returns a list of all elements sorted according to the specified [comparator].\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic fun Array.sortedWith(comparator: Comparator): List {\n return sortedArrayWith(comparator).asList()\n}\n\n/**\n * Returns a list of all elements sorted according to the specified [comparator].\n */\npublic fun ByteArray.sortedWith(comparator: Comparator): List {\n return toTypedArray().apply { sortWith(comparator) }.asList()\n}\n\n/**\n * Returns a list of all elements sorted according to the specified [comparator].\n */\npublic fun ShortArray.sortedWith(comparator: Comparator): List {\n return toTypedArray().apply { sortWith(comparator) }.asList()\n}\n\n/**\n * Returns a list of all elements sorted according to the specified [comparator].\n */\npublic fun IntArray.sortedWith(comparator: Comparator): List {\n return toTypedArray().apply { sortWith(comparator) }.asList()\n}\n\n/**\n * Returns a list of all elements sorted according to the specified [comparator].\n */\npublic fun LongArray.sortedWith(comparator: Comparator): List {\n return toTypedArray().apply { sortWith(comparator) }.asList()\n}\n\n/**\n * Returns a list of all elements sorted according to the specified [comparator].\n */\npublic fun FloatArray.sortedWith(comparator: Comparator): List {\n return toTypedArray().apply { sortWith(comparator) }.asList()\n}\n\n/**\n * Returns a list of all elements sorted according to the specified [comparator].\n */\npublic fun DoubleArray.sortedWith(comparator: Comparator): List {\n return toTypedArray().apply { sortWith(comparator) }.asList()\n}\n\n/**\n * Returns a list of all elements sorted according to the specified [comparator].\n */\npublic fun BooleanArray.sortedWith(comparator: Comparator): List {\n return toTypedArray().apply { sortWith(comparator) }.asList()\n}\n\n/**\n * Returns a list of all elements sorted according to the specified [comparator].\n */\npublic fun CharArray.sortedWith(comparator: Comparator): List {\n return toTypedArray().apply { sortWith(comparator) }.asList()\n}\n\n/**\n * Returns a [List] that wraps the original array.\n */\npublic expect fun Array.asList(): List\n\n/**\n * Returns a [List] that wraps the original array.\n */\npublic expect fun ByteArray.asList(): List\n\n/**\n * Returns a [List] that wraps the original array.\n */\npublic expect fun ShortArray.asList(): List\n\n/**\n * Returns a [List] that wraps the original array.\n */\npublic expect fun IntArray.asList(): List\n\n/**\n * Returns a [List] that wraps the original array.\n */\npublic expect fun LongArray.asList(): List\n\n/**\n * Returns a [List] that wraps the original array.\n */\npublic expect fun FloatArray.asList(): List\n\n/**\n * Returns a [List] that wraps the original array.\n */\npublic expect fun DoubleArray.asList(): List\n\n/**\n * Returns a [List] that wraps the original array.\n */\npublic expect fun BooleanArray.asList(): List\n\n/**\n * Returns a [List] that wraps the original array.\n */\npublic expect fun CharArray.asList(): List\n\n/**\n * Returns `true` if the two specified arrays are *deeply* equal to one another,\n * i.e. contain the same number of the same elements in the same order.\n * \n * If two corresponding elements are nested arrays, they are also compared deeply.\n * If any of arrays contains itself on any nesting level the behavior is undefined.\n * \n * The elements of other types are compared for equality with the [equals][Any.equals] function.\n * For floating point numbers it means that `NaN` is equal to itself and `-0.0` is not equal to `0.0`.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.LowPriorityInOverloadResolution\npublic expect infix fun Array.contentDeepEquals(other: Array): Boolean\n\n/**\n * Returns `true` if the two specified arrays are *deeply* equal to one another,\n * i.e. contain the same number of the same elements in the same order.\n * \n * The specified arrays are also considered deeply equal if both are `null`.\n * \n * If two corresponding elements are nested arrays, they are also compared deeply.\n * If any of arrays contains itself on any nesting level the behavior is undefined.\n * \n * The elements of other types are compared for equality with the [equals][Any.equals] function.\n * For floating point numbers it means that `NaN` is equal to itself and `-0.0` is not equal to `0.0`.\n */\n@SinceKotlin(\"1.4\")\npublic expect infix fun Array?.contentDeepEquals(other: Array?): Boolean\n\n/**\n * Returns a hash code based on the contents of this array as if it is [List].\n * Nested arrays are treated as lists too.\n * \n * If any of arrays contains itself on any nesting level the behavior is undefined.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.LowPriorityInOverloadResolution\npublic expect fun Array.contentDeepHashCode(): Int\n\n/**\n * Returns a hash code based on the contents of this array as if it is [List].\n * Nested arrays are treated as lists too.\n * \n * If any of arrays contains itself on any nesting level the behavior is undefined.\n */\n@SinceKotlin(\"1.4\")\npublic expect fun Array?.contentDeepHashCode(): Int\n\n/**\n * Returns a string representation of the contents of this array as if it is a [List].\n * Nested arrays are treated as lists too.\n * \n * If any of arrays contains itself on any nesting level that reference\n * is rendered as `\"[...]\"` to prevent recursion.\n * \n * @sample samples.collections.Arrays.ContentOperations.contentDeepToString\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.LowPriorityInOverloadResolution\npublic expect fun Array.contentDeepToString(): String\n\n/**\n * Returns a string representation of the contents of this array as if it is a [List].\n * Nested arrays are treated as lists too.\n * \n * If any of arrays contains itself on any nesting level that reference\n * is rendered as `\"[...]\"` to prevent recursion.\n * \n * @sample samples.collections.Arrays.ContentOperations.contentDeepToString\n */\n@SinceKotlin(\"1.4\")\npublic expect fun Array?.contentDeepToString(): String\n\n/**\n * Returns `true` if the two specified arrays are *structurally* equal to one another,\n * i.e. contain the same number of the same elements in the same order.\n * \n * The elements are compared for equality with the [equals][Any.equals] function.\n * For floating point numbers it means that `NaN` is equal to itself and `-0.0` is not equal to `0.0`.\n */\n@Deprecated(\"Use Kotlin compiler 1.4 to avoid deprecation warning.\")\n@SinceKotlin(\"1.1\")\n@DeprecatedSinceKotlin(hiddenSince = \"1.4\")\npublic expect infix fun Array.contentEquals(other: Array): Boolean\n\n/**\n * Returns `true` if the two specified arrays are *structurally* equal to one another,\n * i.e. contain the same number of the same elements in the same order.\n * \n * The elements are compared for equality with the [equals][Any.equals] function.\n * For floating point numbers it means that `NaN` is equal to itself and `-0.0` is not equal to `0.0`.\n */\n@Deprecated(\"Use Kotlin compiler 1.4 to avoid deprecation warning.\")\n@SinceKotlin(\"1.1\")\n@DeprecatedSinceKotlin(hiddenSince = \"1.4\")\npublic expect infix fun ByteArray.contentEquals(other: ByteArray): Boolean\n\n/**\n * Returns `true` if the two specified arrays are *structurally* equal to one another,\n * i.e. contain the same number of the same elements in the same order.\n * \n * The elements are compared for equality with the [equals][Any.equals] function.\n * For floating point numbers it means that `NaN` is equal to itself and `-0.0` is not equal to `0.0`.\n */\n@Deprecated(\"Use Kotlin compiler 1.4 to avoid deprecation warning.\")\n@SinceKotlin(\"1.1\")\n@DeprecatedSinceKotlin(hiddenSince = \"1.4\")\npublic expect infix fun ShortArray.contentEquals(other: ShortArray): Boolean\n\n/**\n * Returns `true` if the two specified arrays are *structurally* equal to one another,\n * i.e. contain the same number of the same elements in the same order.\n * \n * The elements are compared for equality with the [equals][Any.equals] function.\n * For floating point numbers it means that `NaN` is equal to itself and `-0.0` is not equal to `0.0`.\n */\n@Deprecated(\"Use Kotlin compiler 1.4 to avoid deprecation warning.\")\n@SinceKotlin(\"1.1\")\n@DeprecatedSinceKotlin(hiddenSince = \"1.4\")\npublic expect infix fun IntArray.contentEquals(other: IntArray): Boolean\n\n/**\n * Returns `true` if the two specified arrays are *structurally* equal to one another,\n * i.e. contain the same number of the same elements in the same order.\n * \n * The elements are compared for equality with the [equals][Any.equals] function.\n * For floating point numbers it means that `NaN` is equal to itself and `-0.0` is not equal to `0.0`.\n */\n@Deprecated(\"Use Kotlin compiler 1.4 to avoid deprecation warning.\")\n@SinceKotlin(\"1.1\")\n@DeprecatedSinceKotlin(hiddenSince = \"1.4\")\npublic expect infix fun LongArray.contentEquals(other: LongArray): Boolean\n\n/**\n * Returns `true` if the two specified arrays are *structurally* equal to one another,\n * i.e. contain the same number of the same elements in the same order.\n * \n * The elements are compared for equality with the [equals][Any.equals] function.\n * For floating point numbers it means that `NaN` is equal to itself and `-0.0` is not equal to `0.0`.\n */\n@Deprecated(\"Use Kotlin compiler 1.4 to avoid deprecation warning.\")\n@SinceKotlin(\"1.1\")\n@DeprecatedSinceKotlin(hiddenSince = \"1.4\")\npublic expect infix fun FloatArray.contentEquals(other: FloatArray): Boolean\n\n/**\n * Returns `true` if the two specified arrays are *structurally* equal to one another,\n * i.e. contain the same number of the same elements in the same order.\n * \n * The elements are compared for equality with the [equals][Any.equals] function.\n * For floating point numbers it means that `NaN` is equal to itself and `-0.0` is not equal to `0.0`.\n */\n@Deprecated(\"Use Kotlin compiler 1.4 to avoid deprecation warning.\")\n@SinceKotlin(\"1.1\")\n@DeprecatedSinceKotlin(hiddenSince = \"1.4\")\npublic expect infix fun DoubleArray.contentEquals(other: DoubleArray): Boolean\n\n/**\n * Returns `true` if the two specified arrays are *structurally* equal to one another,\n * i.e. contain the same number of the same elements in the same order.\n * \n * The elements are compared for equality with the [equals][Any.equals] function.\n * For floating point numbers it means that `NaN` is equal to itself and `-0.0` is not equal to `0.0`.\n */\n@Deprecated(\"Use Kotlin compiler 1.4 to avoid deprecation warning.\")\n@SinceKotlin(\"1.1\")\n@DeprecatedSinceKotlin(hiddenSince = \"1.4\")\npublic expect infix fun BooleanArray.contentEquals(other: BooleanArray): Boolean\n\n/**\n * Returns `true` if the two specified arrays are *structurally* equal to one another,\n * i.e. contain the same number of the same elements in the same order.\n * \n * The elements are compared for equality with the [equals][Any.equals] function.\n * For floating point numbers it means that `NaN` is equal to itself and `-0.0` is not equal to `0.0`.\n */\n@Deprecated(\"Use Kotlin compiler 1.4 to avoid deprecation warning.\")\n@SinceKotlin(\"1.1\")\n@DeprecatedSinceKotlin(hiddenSince = \"1.4\")\npublic expect infix fun CharArray.contentEquals(other: CharArray): Boolean\n\n/**\n * Returns `true` if the two specified arrays are *structurally* equal to one another,\n * i.e. contain the same number of the same elements in the same order.\n * \n * The elements are compared for equality with the [equals][Any.equals] function.\n * For floating point numbers it means that `NaN` is equal to itself and `-0.0` is not equal to `0.0`.\n */\n@SinceKotlin(\"1.4\")\npublic expect infix fun Array?.contentEquals(other: Array?): Boolean\n\n/**\n * Returns `true` if the two specified arrays are *structurally* equal to one another,\n * i.e. contain the same number of the same elements in the same order.\n * \n * The elements are compared for equality with the [equals][Any.equals] function.\n * For floating point numbers it means that `NaN` is equal to itself and `-0.0` is not equal to `0.0`.\n */\n@SinceKotlin(\"1.4\")\npublic expect infix fun ByteArray?.contentEquals(other: ByteArray?): Boolean\n\n/**\n * Returns `true` if the two specified arrays are *structurally* equal to one another,\n * i.e. contain the same number of the same elements in the same order.\n * \n * The elements are compared for equality with the [equals][Any.equals] function.\n * For floating point numbers it means that `NaN` is equal to itself and `-0.0` is not equal to `0.0`.\n */\n@SinceKotlin(\"1.4\")\npublic expect infix fun ShortArray?.contentEquals(other: ShortArray?): Boolean\n\n/**\n * Returns `true` if the two specified arrays are *structurally* equal to one another,\n * i.e. contain the same number of the same elements in the same order.\n * \n * The elements are compared for equality with the [equals][Any.equals] function.\n * For floating point numbers it means that `NaN` is equal to itself and `-0.0` is not equal to `0.0`.\n */\n@SinceKotlin(\"1.4\")\npublic expect infix fun IntArray?.contentEquals(other: IntArray?): Boolean\n\n/**\n * Returns `true` if the two specified arrays are *structurally* equal to one another,\n * i.e. contain the same number of the same elements in the same order.\n * \n * The elements are compared for equality with the [equals][Any.equals] function.\n * For floating point numbers it means that `NaN` is equal to itself and `-0.0` is not equal to `0.0`.\n */\n@SinceKotlin(\"1.4\")\npublic expect infix fun LongArray?.contentEquals(other: LongArray?): Boolean\n\n/**\n * Returns `true` if the two specified arrays are *structurally* equal to one another,\n * i.e. contain the same number of the same elements in the same order.\n * \n * The elements are compared for equality with the [equals][Any.equals] function.\n * For floating point numbers it means that `NaN` is equal to itself and `-0.0` is not equal to `0.0`.\n */\n@SinceKotlin(\"1.4\")\npublic expect infix fun FloatArray?.contentEquals(other: FloatArray?): Boolean\n\n/**\n * Returns `true` if the two specified arrays are *structurally* equal to one another,\n * i.e. contain the same number of the same elements in the same order.\n * \n * The elements are compared for equality with the [equals][Any.equals] function.\n * For floating point numbers it means that `NaN` is equal to itself and `-0.0` is not equal to `0.0`.\n */\n@SinceKotlin(\"1.4\")\npublic expect infix fun DoubleArray?.contentEquals(other: DoubleArray?): Boolean\n\n/**\n * Returns `true` if the two specified arrays are *structurally* equal to one another,\n * i.e. contain the same number of the same elements in the same order.\n * \n * The elements are compared for equality with the [equals][Any.equals] function.\n * For floating point numbers it means that `NaN` is equal to itself and `-0.0` is not equal to `0.0`.\n */\n@SinceKotlin(\"1.4\")\npublic expect infix fun BooleanArray?.contentEquals(other: BooleanArray?): Boolean\n\n/**\n * Returns `true` if the two specified arrays are *structurally* equal to one another,\n * i.e. contain the same number of the same elements in the same order.\n * \n * The elements are compared for equality with the [equals][Any.equals] function.\n * For floating point numbers it means that `NaN` is equal to itself and `-0.0` is not equal to `0.0`.\n */\n@SinceKotlin(\"1.4\")\npublic expect infix fun CharArray?.contentEquals(other: CharArray?): Boolean\n\n/**\n * Returns a hash code based on the contents of this array as if it is [List].\n */\n@Deprecated(\"Use Kotlin compiler 1.4 to avoid deprecation warning.\")\n@SinceKotlin(\"1.1\")\n@DeprecatedSinceKotlin(hiddenSince = \"1.4\")\npublic expect fun Array.contentHashCode(): Int\n\n/**\n * Returns a hash code based on the contents of this array as if it is [List].\n */\n@Deprecated(\"Use Kotlin compiler 1.4 to avoid deprecation warning.\")\n@SinceKotlin(\"1.1\")\n@DeprecatedSinceKotlin(hiddenSince = \"1.4\")\npublic expect fun ByteArray.contentHashCode(): Int\n\n/**\n * Returns a hash code based on the contents of this array as if it is [List].\n */\n@Deprecated(\"Use Kotlin compiler 1.4 to avoid deprecation warning.\")\n@SinceKotlin(\"1.1\")\n@DeprecatedSinceKotlin(hiddenSince = \"1.4\")\npublic expect fun ShortArray.contentHashCode(): Int\n\n/**\n * Returns a hash code based on the contents of this array as if it is [List].\n */\n@Deprecated(\"Use Kotlin compiler 1.4 to avoid deprecation warning.\")\n@SinceKotlin(\"1.1\")\n@DeprecatedSinceKotlin(hiddenSince = \"1.4\")\npublic expect fun IntArray.contentHashCode(): Int\n\n/**\n * Returns a hash code based on the contents of this array as if it is [List].\n */\n@Deprecated(\"Use Kotlin compiler 1.4 to avoid deprecation warning.\")\n@SinceKotlin(\"1.1\")\n@DeprecatedSinceKotlin(hiddenSince = \"1.4\")\npublic expect fun LongArray.contentHashCode(): Int\n\n/**\n * Returns a hash code based on the contents of this array as if it is [List].\n */\n@Deprecated(\"Use Kotlin compiler 1.4 to avoid deprecation warning.\")\n@SinceKotlin(\"1.1\")\n@DeprecatedSinceKotlin(hiddenSince = \"1.4\")\npublic expect fun FloatArray.contentHashCode(): Int\n\n/**\n * Returns a hash code based on the contents of this array as if it is [List].\n */\n@Deprecated(\"Use Kotlin compiler 1.4 to avoid deprecation warning.\")\n@SinceKotlin(\"1.1\")\n@DeprecatedSinceKotlin(hiddenSince = \"1.4\")\npublic expect fun DoubleArray.contentHashCode(): Int\n\n/**\n * Returns a hash code based on the contents of this array as if it is [List].\n */\n@Deprecated(\"Use Kotlin compiler 1.4 to avoid deprecation warning.\")\n@SinceKotlin(\"1.1\")\n@DeprecatedSinceKotlin(hiddenSince = \"1.4\")\npublic expect fun BooleanArray.contentHashCode(): Int\n\n/**\n * Returns a hash code based on the contents of this array as if it is [List].\n */\n@Deprecated(\"Use Kotlin compiler 1.4 to avoid deprecation warning.\")\n@SinceKotlin(\"1.1\")\n@DeprecatedSinceKotlin(hiddenSince = \"1.4\")\npublic expect fun CharArray.contentHashCode(): Int\n\n/**\n * Returns a hash code based on the contents of this array as if it is [List].\n */\n@SinceKotlin(\"1.4\")\npublic expect fun Array?.contentHashCode(): Int\n\n/**\n * Returns a hash code based on the contents of this array as if it is [List].\n */\n@SinceKotlin(\"1.4\")\npublic expect fun ByteArray?.contentHashCode(): Int\n\n/**\n * Returns a hash code based on the contents of this array as if it is [List].\n */\n@SinceKotlin(\"1.4\")\npublic expect fun ShortArray?.contentHashCode(): Int\n\n/**\n * Returns a hash code based on the contents of this array as if it is [List].\n */\n@SinceKotlin(\"1.4\")\npublic expect fun IntArray?.contentHashCode(): Int\n\n/**\n * Returns a hash code based on the contents of this array as if it is [List].\n */\n@SinceKotlin(\"1.4\")\npublic expect fun LongArray?.contentHashCode(): Int\n\n/**\n * Returns a hash code based on the contents of this array as if it is [List].\n */\n@SinceKotlin(\"1.4\")\npublic expect fun FloatArray?.contentHashCode(): Int\n\n/**\n * Returns a hash code based on the contents of this array as if it is [List].\n */\n@SinceKotlin(\"1.4\")\npublic expect fun DoubleArray?.contentHashCode(): Int\n\n/**\n * Returns a hash code based on the contents of this array as if it is [List].\n */\n@SinceKotlin(\"1.4\")\npublic expect fun BooleanArray?.contentHashCode(): Int\n\n/**\n * Returns a hash code based on the contents of this array as if it is [List].\n */\n@SinceKotlin(\"1.4\")\npublic expect fun CharArray?.contentHashCode(): Int\n\n/**\n * Returns a string representation of the contents of the specified array as if it is [List].\n * \n * @sample samples.collections.Arrays.ContentOperations.contentToString\n */\n@Deprecated(\"Use Kotlin compiler 1.4 to avoid deprecation warning.\")\n@SinceKotlin(\"1.1\")\n@DeprecatedSinceKotlin(hiddenSince = \"1.4\")\npublic expect fun Array.contentToString(): String\n\n/**\n * Returns a string representation of the contents of the specified array as if it is [List].\n * \n * @sample samples.collections.Arrays.ContentOperations.contentToString\n */\n@Deprecated(\"Use Kotlin compiler 1.4 to avoid deprecation warning.\")\n@SinceKotlin(\"1.1\")\n@DeprecatedSinceKotlin(hiddenSince = \"1.4\")\npublic expect fun ByteArray.contentToString(): String\n\n/**\n * Returns a string representation of the contents of the specified array as if it is [List].\n * \n * @sample samples.collections.Arrays.ContentOperations.contentToString\n */\n@Deprecated(\"Use Kotlin compiler 1.4 to avoid deprecation warning.\")\n@SinceKotlin(\"1.1\")\n@DeprecatedSinceKotlin(hiddenSince = \"1.4\")\npublic expect fun ShortArray.contentToString(): String\n\n/**\n * Returns a string representation of the contents of the specified array as if it is [List].\n * \n * @sample samples.collections.Arrays.ContentOperations.contentToString\n */\n@Deprecated(\"Use Kotlin compiler 1.4 to avoid deprecation warning.\")\n@SinceKotlin(\"1.1\")\n@DeprecatedSinceKotlin(hiddenSince = \"1.4\")\npublic expect fun IntArray.contentToString(): String\n\n/**\n * Returns a string representation of the contents of the specified array as if it is [List].\n * \n * @sample samples.collections.Arrays.ContentOperations.contentToString\n */\n@Deprecated(\"Use Kotlin compiler 1.4 to avoid deprecation warning.\")\n@SinceKotlin(\"1.1\")\n@DeprecatedSinceKotlin(hiddenSince = \"1.4\")\npublic expect fun LongArray.contentToString(): String\n\n/**\n * Returns a string representation of the contents of the specified array as if it is [List].\n * \n * @sample samples.collections.Arrays.ContentOperations.contentToString\n */\n@Deprecated(\"Use Kotlin compiler 1.4 to avoid deprecation warning.\")\n@SinceKotlin(\"1.1\")\n@DeprecatedSinceKotlin(hiddenSince = \"1.4\")\npublic expect fun FloatArray.contentToString(): String\n\n/**\n * Returns a string representation of the contents of the specified array as if it is [List].\n * \n * @sample samples.collections.Arrays.ContentOperations.contentToString\n */\n@Deprecated(\"Use Kotlin compiler 1.4 to avoid deprecation warning.\")\n@SinceKotlin(\"1.1\")\n@DeprecatedSinceKotlin(hiddenSince = \"1.4\")\npublic expect fun DoubleArray.contentToString(): String\n\n/**\n * Returns a string representation of the contents of the specified array as if it is [List].\n * \n * @sample samples.collections.Arrays.ContentOperations.contentToString\n */\n@Deprecated(\"Use Kotlin compiler 1.4 to avoid deprecation warning.\")\n@SinceKotlin(\"1.1\")\n@DeprecatedSinceKotlin(hiddenSince = \"1.4\")\npublic expect fun BooleanArray.contentToString(): String\n\n/**\n * Returns a string representation of the contents of the specified array as if it is [List].\n * \n * @sample samples.collections.Arrays.ContentOperations.contentToString\n */\n@Deprecated(\"Use Kotlin compiler 1.4 to avoid deprecation warning.\")\n@SinceKotlin(\"1.1\")\n@DeprecatedSinceKotlin(hiddenSince = \"1.4\")\npublic expect fun CharArray.contentToString(): String\n\n/**\n * Returns a string representation of the contents of the specified array as if it is [List].\n * \n * @sample samples.collections.Arrays.ContentOperations.contentToString\n */\n@SinceKotlin(\"1.4\")\npublic expect fun Array?.contentToString(): String\n\n/**\n * Returns a string representation of the contents of the specified array as if it is [List].\n * \n * @sample samples.collections.Arrays.ContentOperations.contentToString\n */\n@SinceKotlin(\"1.4\")\npublic expect fun ByteArray?.contentToString(): String\n\n/**\n * Returns a string representation of the contents of the specified array as if it is [List].\n * \n * @sample samples.collections.Arrays.ContentOperations.contentToString\n */\n@SinceKotlin(\"1.4\")\npublic expect fun ShortArray?.contentToString(): String\n\n/**\n * Returns a string representation of the contents of the specified array as if it is [List].\n * \n * @sample samples.collections.Arrays.ContentOperations.contentToString\n */\n@SinceKotlin(\"1.4\")\npublic expect fun IntArray?.contentToString(): String\n\n/**\n * Returns a string representation of the contents of the specified array as if it is [List].\n * \n * @sample samples.collections.Arrays.ContentOperations.contentToString\n */\n@SinceKotlin(\"1.4\")\npublic expect fun LongArray?.contentToString(): String\n\n/**\n * Returns a string representation of the contents of the specified array as if it is [List].\n * \n * @sample samples.collections.Arrays.ContentOperations.contentToString\n */\n@SinceKotlin(\"1.4\")\npublic expect fun FloatArray?.contentToString(): String\n\n/**\n * Returns a string representation of the contents of the specified array as if it is [List].\n * \n * @sample samples.collections.Arrays.ContentOperations.contentToString\n */\n@SinceKotlin(\"1.4\")\npublic expect fun DoubleArray?.contentToString(): String\n\n/**\n * Returns a string representation of the contents of the specified array as if it is [List].\n * \n * @sample samples.collections.Arrays.ContentOperations.contentToString\n */\n@SinceKotlin(\"1.4\")\npublic expect fun BooleanArray?.contentToString(): String\n\n/**\n * Returns a string representation of the contents of the specified array as if it is [List].\n * \n * @sample samples.collections.Arrays.ContentOperations.contentToString\n */\n@SinceKotlin(\"1.4\")\npublic expect fun CharArray?.contentToString(): String\n\n/**\n * Copies this array or its subrange into the [destination] array and returns that array.\n * \n * It's allowed to pass the same array in the [destination] and even specify the subrange so that it overlaps with the destination range.\n * \n * @param destination the array to copy to.\n * @param destinationOffset the position in the [destination] array to copy to, 0 by default.\n * @param startIndex the beginning (inclusive) of the subrange to copy, 0 by default.\n * @param endIndex the end (exclusive) of the subrange to copy, size of this array by default.\n * \n * @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of this array indices or when `startIndex > endIndex`.\n * @throws IndexOutOfBoundsException when the subrange doesn't fit into the [destination] array starting at the specified [destinationOffset],\n * or when that index is out of the [destination] array indices range.\n * \n * @return the [destination] array.\n */\n@SinceKotlin(\"1.3\")\npublic expect fun Array.copyInto(destination: Array, destinationOffset: Int = 0, startIndex: Int = 0, endIndex: Int = size): Array\n\n/**\n * Copies this array or its subrange into the [destination] array and returns that array.\n * \n * It's allowed to pass the same array in the [destination] and even specify the subrange so that it overlaps with the destination range.\n * \n * @param destination the array to copy to.\n * @param destinationOffset the position in the [destination] array to copy to, 0 by default.\n * @param startIndex the beginning (inclusive) of the subrange to copy, 0 by default.\n * @param endIndex the end (exclusive) of the subrange to copy, size of this array by default.\n * \n * @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of this array indices or when `startIndex > endIndex`.\n * @throws IndexOutOfBoundsException when the subrange doesn't fit into the [destination] array starting at the specified [destinationOffset],\n * or when that index is out of the [destination] array indices range.\n * \n * @return the [destination] array.\n */\n@SinceKotlin(\"1.3\")\npublic expect fun ByteArray.copyInto(destination: ByteArray, destinationOffset: Int = 0, startIndex: Int = 0, endIndex: Int = size): ByteArray\n\n/**\n * Copies this array or its subrange into the [destination] array and returns that array.\n * \n * It's allowed to pass the same array in the [destination] and even specify the subrange so that it overlaps with the destination range.\n * \n * @param destination the array to copy to.\n * @param destinationOffset the position in the [destination] array to copy to, 0 by default.\n * @param startIndex the beginning (inclusive) of the subrange to copy, 0 by default.\n * @param endIndex the end (exclusive) of the subrange to copy, size of this array by default.\n * \n * @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of this array indices or when `startIndex > endIndex`.\n * @throws IndexOutOfBoundsException when the subrange doesn't fit into the [destination] array starting at the specified [destinationOffset],\n * or when that index is out of the [destination] array indices range.\n * \n * @return the [destination] array.\n */\n@SinceKotlin(\"1.3\")\npublic expect fun ShortArray.copyInto(destination: ShortArray, destinationOffset: Int = 0, startIndex: Int = 0, endIndex: Int = size): ShortArray\n\n/**\n * Copies this array or its subrange into the [destination] array and returns that array.\n * \n * It's allowed to pass the same array in the [destination] and even specify the subrange so that it overlaps with the destination range.\n * \n * @param destination the array to copy to.\n * @param destinationOffset the position in the [destination] array to copy to, 0 by default.\n * @param startIndex the beginning (inclusive) of the subrange to copy, 0 by default.\n * @param endIndex the end (exclusive) of the subrange to copy, size of this array by default.\n * \n * @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of this array indices or when `startIndex > endIndex`.\n * @throws IndexOutOfBoundsException when the subrange doesn't fit into the [destination] array starting at the specified [destinationOffset],\n * or when that index is out of the [destination] array indices range.\n * \n * @return the [destination] array.\n */\n@SinceKotlin(\"1.3\")\npublic expect fun IntArray.copyInto(destination: IntArray, destinationOffset: Int = 0, startIndex: Int = 0, endIndex: Int = size): IntArray\n\n/**\n * Copies this array or its subrange into the [destination] array and returns that array.\n * \n * It's allowed to pass the same array in the [destination] and even specify the subrange so that it overlaps with the destination range.\n * \n * @param destination the array to copy to.\n * @param destinationOffset the position in the [destination] array to copy to, 0 by default.\n * @param startIndex the beginning (inclusive) of the subrange to copy, 0 by default.\n * @param endIndex the end (exclusive) of the subrange to copy, size of this array by default.\n * \n * @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of this array indices or when `startIndex > endIndex`.\n * @throws IndexOutOfBoundsException when the subrange doesn't fit into the [destination] array starting at the specified [destinationOffset],\n * or when that index is out of the [destination] array indices range.\n * \n * @return the [destination] array.\n */\n@SinceKotlin(\"1.3\")\npublic expect fun LongArray.copyInto(destination: LongArray, destinationOffset: Int = 0, startIndex: Int = 0, endIndex: Int = size): LongArray\n\n/**\n * Copies this array or its subrange into the [destination] array and returns that array.\n * \n * It's allowed to pass the same array in the [destination] and even specify the subrange so that it overlaps with the destination range.\n * \n * @param destination the array to copy to.\n * @param destinationOffset the position in the [destination] array to copy to, 0 by default.\n * @param startIndex the beginning (inclusive) of the subrange to copy, 0 by default.\n * @param endIndex the end (exclusive) of the subrange to copy, size of this array by default.\n * \n * @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of this array indices or when `startIndex > endIndex`.\n * @throws IndexOutOfBoundsException when the subrange doesn't fit into the [destination] array starting at the specified [destinationOffset],\n * or when that index is out of the [destination] array indices range.\n * \n * @return the [destination] array.\n */\n@SinceKotlin(\"1.3\")\npublic expect fun FloatArray.copyInto(destination: FloatArray, destinationOffset: Int = 0, startIndex: Int = 0, endIndex: Int = size): FloatArray\n\n/**\n * Copies this array or its subrange into the [destination] array and returns that array.\n * \n * It's allowed to pass the same array in the [destination] and even specify the subrange so that it overlaps with the destination range.\n * \n * @param destination the array to copy to.\n * @param destinationOffset the position in the [destination] array to copy to, 0 by default.\n * @param startIndex the beginning (inclusive) of the subrange to copy, 0 by default.\n * @param endIndex the end (exclusive) of the subrange to copy, size of this array by default.\n * \n * @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of this array indices or when `startIndex > endIndex`.\n * @throws IndexOutOfBoundsException when the subrange doesn't fit into the [destination] array starting at the specified [destinationOffset],\n * or when that index is out of the [destination] array indices range.\n * \n * @return the [destination] array.\n */\n@SinceKotlin(\"1.3\")\npublic expect fun DoubleArray.copyInto(destination: DoubleArray, destinationOffset: Int = 0, startIndex: Int = 0, endIndex: Int = size): DoubleArray\n\n/**\n * Copies this array or its subrange into the [destination] array and returns that array.\n * \n * It's allowed to pass the same array in the [destination] and even specify the subrange so that it overlaps with the destination range.\n * \n * @param destination the array to copy to.\n * @param destinationOffset the position in the [destination] array to copy to, 0 by default.\n * @param startIndex the beginning (inclusive) of the subrange to copy, 0 by default.\n * @param endIndex the end (exclusive) of the subrange to copy, size of this array by default.\n * \n * @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of this array indices or when `startIndex > endIndex`.\n * @throws IndexOutOfBoundsException when the subrange doesn't fit into the [destination] array starting at the specified [destinationOffset],\n * or when that index is out of the [destination] array indices range.\n * \n * @return the [destination] array.\n */\n@SinceKotlin(\"1.3\")\npublic expect fun BooleanArray.copyInto(destination: BooleanArray, destinationOffset: Int = 0, startIndex: Int = 0, endIndex: Int = size): BooleanArray\n\n/**\n * Copies this array or its subrange into the [destination] array and returns that array.\n * \n * It's allowed to pass the same array in the [destination] and even specify the subrange so that it overlaps with the destination range.\n * \n * @param destination the array to copy to.\n * @param destinationOffset the position in the [destination] array to copy to, 0 by default.\n * @param startIndex the beginning (inclusive) of the subrange to copy, 0 by default.\n * @param endIndex the end (exclusive) of the subrange to copy, size of this array by default.\n * \n * @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of this array indices or when `startIndex > endIndex`.\n * @throws IndexOutOfBoundsException when the subrange doesn't fit into the [destination] array starting at the specified [destinationOffset],\n * or when that index is out of the [destination] array indices range.\n * \n * @return the [destination] array.\n */\n@SinceKotlin(\"1.3\")\npublic expect fun CharArray.copyInto(destination: CharArray, destinationOffset: Int = 0, startIndex: Int = 0, endIndex: Int = size): CharArray\n\n/**\n * Returns new array which is a copy of the original array.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.copyOf\n */\n@Suppress(\"NO_ACTUAL_FOR_EXPECT\")\npublic expect fun Array.copyOf(): Array\n\n/**\n * Returns new array which is a copy of the original array.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.copyOf\n */\npublic expect fun ByteArray.copyOf(): ByteArray\n\n/**\n * Returns new array which is a copy of the original array.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.copyOf\n */\npublic expect fun ShortArray.copyOf(): ShortArray\n\n/**\n * Returns new array which is a copy of the original array.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.copyOf\n */\npublic expect fun IntArray.copyOf(): IntArray\n\n/**\n * Returns new array which is a copy of the original array.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.copyOf\n */\npublic expect fun LongArray.copyOf(): LongArray\n\n/**\n * Returns new array which is a copy of the original array.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.copyOf\n */\npublic expect fun FloatArray.copyOf(): FloatArray\n\n/**\n * Returns new array which is a copy of the original array.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.copyOf\n */\npublic expect fun DoubleArray.copyOf(): DoubleArray\n\n/**\n * Returns new array which is a copy of the original array.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.copyOf\n */\npublic expect fun BooleanArray.copyOf(): BooleanArray\n\n/**\n * Returns new array which is a copy of the original array.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.copyOf\n */\npublic expect fun CharArray.copyOf(): CharArray\n\n/**\n * Returns new array which is a copy of the original array, resized to the given [newSize].\n * The copy is either truncated or padded at the end with zero values if necessary.\n * \n * - If [newSize] is less than the size of the original array, the copy array is truncated to the [newSize].\n * - If [newSize] is greater than the size of the original array, the extra elements in the copy array are filled with zero values.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.resizedPrimitiveCopyOf\n */\npublic expect fun ByteArray.copyOf(newSize: Int): ByteArray\n\n/**\n * Returns new array which is a copy of the original array, resized to the given [newSize].\n * The copy is either truncated or padded at the end with zero values if necessary.\n * \n * - If [newSize] is less than the size of the original array, the copy array is truncated to the [newSize].\n * - If [newSize] is greater than the size of the original array, the extra elements in the copy array are filled with zero values.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.resizedPrimitiveCopyOf\n */\npublic expect fun ShortArray.copyOf(newSize: Int): ShortArray\n\n/**\n * Returns new array which is a copy of the original array, resized to the given [newSize].\n * The copy is either truncated or padded at the end with zero values if necessary.\n * \n * - If [newSize] is less than the size of the original array, the copy array is truncated to the [newSize].\n * - If [newSize] is greater than the size of the original array, the extra elements in the copy array are filled with zero values.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.resizedPrimitiveCopyOf\n */\npublic expect fun IntArray.copyOf(newSize: Int): IntArray\n\n/**\n * Returns new array which is a copy of the original array, resized to the given [newSize].\n * The copy is either truncated or padded at the end with zero values if necessary.\n * \n * - If [newSize] is less than the size of the original array, the copy array is truncated to the [newSize].\n * - If [newSize] is greater than the size of the original array, the extra elements in the copy array are filled with zero values.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.resizedPrimitiveCopyOf\n */\npublic expect fun LongArray.copyOf(newSize: Int): LongArray\n\n/**\n * Returns new array which is a copy of the original array, resized to the given [newSize].\n * The copy is either truncated or padded at the end with zero values if necessary.\n * \n * - If [newSize] is less than the size of the original array, the copy array is truncated to the [newSize].\n * - If [newSize] is greater than the size of the original array, the extra elements in the copy array are filled with zero values.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.resizedPrimitiveCopyOf\n */\npublic expect fun FloatArray.copyOf(newSize: Int): FloatArray\n\n/**\n * Returns new array which is a copy of the original array, resized to the given [newSize].\n * The copy is either truncated or padded at the end with zero values if necessary.\n * \n * - If [newSize] is less than the size of the original array, the copy array is truncated to the [newSize].\n * - If [newSize] is greater than the size of the original array, the extra elements in the copy array are filled with zero values.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.resizedPrimitiveCopyOf\n */\npublic expect fun DoubleArray.copyOf(newSize: Int): DoubleArray\n\n/**\n * Returns new array which is a copy of the original array, resized to the given [newSize].\n * The copy is either truncated or padded at the end with `false` values if necessary.\n * \n * - If [newSize] is less than the size of the original array, the copy array is truncated to the [newSize].\n * - If [newSize] is greater than the size of the original array, the extra elements in the copy array are filled with `false` values.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.resizedPrimitiveCopyOf\n */\npublic expect fun BooleanArray.copyOf(newSize: Int): BooleanArray\n\n/**\n * Returns new array which is a copy of the original array, resized to the given [newSize].\n * The copy is either truncated or padded at the end with null char (`\\u0000`) values if necessary.\n * \n * - If [newSize] is less than the size of the original array, the copy array is truncated to the [newSize].\n * - If [newSize] is greater than the size of the original array, the extra elements in the copy array are filled with null char (`\\u0000`) values.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.resizedPrimitiveCopyOf\n */\npublic expect fun CharArray.copyOf(newSize: Int): CharArray\n\n/**\n * Returns new array which is a copy of the original array, resized to the given [newSize].\n * The copy is either truncated or padded at the end with `null` values if necessary.\n * \n * - If [newSize] is less than the size of the original array, the copy array is truncated to the [newSize].\n * - If [newSize] is greater than the size of the original array, the extra elements in the copy array are filled with `null` values.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.resizingCopyOf\n */\n@Suppress(\"NO_ACTUAL_FOR_EXPECT\")\npublic expect fun Array.copyOf(newSize: Int): Array\n\n/**\n * Returns a new array which is a copy of the specified range of the original array.\n * \n * @param fromIndex the start of the range (inclusive) to copy.\n * @param toIndex the end of the range (exclusive) to copy.\n * \n * @throws IndexOutOfBoundsException if [fromIndex] is less than zero or [toIndex] is greater than the size of this array.\n * @throws IllegalArgumentException if [fromIndex] is greater than [toIndex].\n */\n@Suppress(\"NO_ACTUAL_FOR_EXPECT\")\npublic expect fun Array.copyOfRange(fromIndex: Int, toIndex: Int): Array\n\n/**\n * Returns a new array which is a copy of the specified range of the original array.\n * \n * @param fromIndex the start of the range (inclusive) to copy.\n * @param toIndex the end of the range (exclusive) to copy.\n * \n * @throws IndexOutOfBoundsException if [fromIndex] is less than zero or [toIndex] is greater than the size of this array.\n * @throws IllegalArgumentException if [fromIndex] is greater than [toIndex].\n */\npublic expect fun ByteArray.copyOfRange(fromIndex: Int, toIndex: Int): ByteArray\n\n/**\n * Returns a new array which is a copy of the specified range of the original array.\n * \n * @param fromIndex the start of the range (inclusive) to copy.\n * @param toIndex the end of the range (exclusive) to copy.\n * \n * @throws IndexOutOfBoundsException if [fromIndex] is less than zero or [toIndex] is greater than the size of this array.\n * @throws IllegalArgumentException if [fromIndex] is greater than [toIndex].\n */\npublic expect fun ShortArray.copyOfRange(fromIndex: Int, toIndex: Int): ShortArray\n\n/**\n * Returns a new array which is a copy of the specified range of the original array.\n * \n * @param fromIndex the start of the range (inclusive) to copy.\n * @param toIndex the end of the range (exclusive) to copy.\n * \n * @throws IndexOutOfBoundsException if [fromIndex] is less than zero or [toIndex] is greater than the size of this array.\n * @throws IllegalArgumentException if [fromIndex] is greater than [toIndex].\n */\npublic expect fun IntArray.copyOfRange(fromIndex: Int, toIndex: Int): IntArray\n\n/**\n * Returns a new array which is a copy of the specified range of the original array.\n * \n * @param fromIndex the start of the range (inclusive) to copy.\n * @param toIndex the end of the range (exclusive) to copy.\n * \n * @throws IndexOutOfBoundsException if [fromIndex] is less than zero or [toIndex] is greater than the size of this array.\n * @throws IllegalArgumentException if [fromIndex] is greater than [toIndex].\n */\npublic expect fun LongArray.copyOfRange(fromIndex: Int, toIndex: Int): LongArray\n\n/**\n * Returns a new array which is a copy of the specified range of the original array.\n * \n * @param fromIndex the start of the range (inclusive) to copy.\n * @param toIndex the end of the range (exclusive) to copy.\n * \n * @throws IndexOutOfBoundsException if [fromIndex] is less than zero or [toIndex] is greater than the size of this array.\n * @throws IllegalArgumentException if [fromIndex] is greater than [toIndex].\n */\npublic expect fun FloatArray.copyOfRange(fromIndex: Int, toIndex: Int): FloatArray\n\n/**\n * Returns a new array which is a copy of the specified range of the original array.\n * \n * @param fromIndex the start of the range (inclusive) to copy.\n * @param toIndex the end of the range (exclusive) to copy.\n * \n * @throws IndexOutOfBoundsException if [fromIndex] is less than zero or [toIndex] is greater than the size of this array.\n * @throws IllegalArgumentException if [fromIndex] is greater than [toIndex].\n */\npublic expect fun DoubleArray.copyOfRange(fromIndex: Int, toIndex: Int): DoubleArray\n\n/**\n * Returns a new array which is a copy of the specified range of the original array.\n * \n * @param fromIndex the start of the range (inclusive) to copy.\n * @param toIndex the end of the range (exclusive) to copy.\n * \n * @throws IndexOutOfBoundsException if [fromIndex] is less than zero or [toIndex] is greater than the size of this array.\n * @throws IllegalArgumentException if [fromIndex] is greater than [toIndex].\n */\npublic expect fun BooleanArray.copyOfRange(fromIndex: Int, toIndex: Int): BooleanArray\n\n/**\n * Returns a new array which is a copy of the specified range of the original array.\n * \n * @param fromIndex the start of the range (inclusive) to copy.\n * @param toIndex the end of the range (exclusive) to copy.\n * \n * @throws IndexOutOfBoundsException if [fromIndex] is less than zero or [toIndex] is greater than the size of this array.\n * @throws IllegalArgumentException if [fromIndex] is greater than [toIndex].\n */\npublic expect fun CharArray.copyOfRange(fromIndex: Int, toIndex: Int): CharArray\n\n/**\n * Fills this array or its subrange with the specified [element] value.\n * \n * @param fromIndex the start of the range (inclusive) to fill, 0 by default.\n * @param toIndex the end of the range (exclusive) to fill, size of this array by default.\n * \n * @throws IndexOutOfBoundsException if [fromIndex] is less than zero or [toIndex] is greater than the size of this array.\n * @throws IllegalArgumentException if [fromIndex] is greater than [toIndex].\n */\n@SinceKotlin(\"1.3\")\npublic expect fun Array.fill(element: T, fromIndex: Int = 0, toIndex: Int = size): Unit\n\n/**\n * Fills this array or its subrange with the specified [element] value.\n * \n * @param fromIndex the start of the range (inclusive) to fill, 0 by default.\n * @param toIndex the end of the range (exclusive) to fill, size of this array by default.\n * \n * @throws IndexOutOfBoundsException if [fromIndex] is less than zero or [toIndex] is greater than the size of this array.\n * @throws IllegalArgumentException if [fromIndex] is greater than [toIndex].\n */\n@SinceKotlin(\"1.3\")\npublic expect fun ByteArray.fill(element: Byte, fromIndex: Int = 0, toIndex: Int = size): Unit\n\n/**\n * Fills this array or its subrange with the specified [element] value.\n * \n * @param fromIndex the start of the range (inclusive) to fill, 0 by default.\n * @param toIndex the end of the range (exclusive) to fill, size of this array by default.\n * \n * @throws IndexOutOfBoundsException if [fromIndex] is less than zero or [toIndex] is greater than the size of this array.\n * @throws IllegalArgumentException if [fromIndex] is greater than [toIndex].\n */\n@SinceKotlin(\"1.3\")\npublic expect fun ShortArray.fill(element: Short, fromIndex: Int = 0, toIndex: Int = size): Unit\n\n/**\n * Fills this array or its subrange with the specified [element] value.\n * \n * @param fromIndex the start of the range (inclusive) to fill, 0 by default.\n * @param toIndex the end of the range (exclusive) to fill, size of this array by default.\n * \n * @throws IndexOutOfBoundsException if [fromIndex] is less than zero or [toIndex] is greater than the size of this array.\n * @throws IllegalArgumentException if [fromIndex] is greater than [toIndex].\n */\n@SinceKotlin(\"1.3\")\npublic expect fun IntArray.fill(element: Int, fromIndex: Int = 0, toIndex: Int = size): Unit\n\n/**\n * Fills this array or its subrange with the specified [element] value.\n * \n * @param fromIndex the start of the range (inclusive) to fill, 0 by default.\n * @param toIndex the end of the range (exclusive) to fill, size of this array by default.\n * \n * @throws IndexOutOfBoundsException if [fromIndex] is less than zero or [toIndex] is greater than the size of this array.\n * @throws IllegalArgumentException if [fromIndex] is greater than [toIndex].\n */\n@SinceKotlin(\"1.3\")\npublic expect fun LongArray.fill(element: Long, fromIndex: Int = 0, toIndex: Int = size): Unit\n\n/**\n * Fills this array or its subrange with the specified [element] value.\n * \n * @param fromIndex the start of the range (inclusive) to fill, 0 by default.\n * @param toIndex the end of the range (exclusive) to fill, size of this array by default.\n * \n * @throws IndexOutOfBoundsException if [fromIndex] is less than zero or [toIndex] is greater than the size of this array.\n * @throws IllegalArgumentException if [fromIndex] is greater than [toIndex].\n */\n@SinceKotlin(\"1.3\")\npublic expect fun FloatArray.fill(element: Float, fromIndex: Int = 0, toIndex: Int = size): Unit\n\n/**\n * Fills this array or its subrange with the specified [element] value.\n * \n * @param fromIndex the start of the range (inclusive) to fill, 0 by default.\n * @param toIndex the end of the range (exclusive) to fill, size of this array by default.\n * \n * @throws IndexOutOfBoundsException if [fromIndex] is less than zero or [toIndex] is greater than the size of this array.\n * @throws IllegalArgumentException if [fromIndex] is greater than [toIndex].\n */\n@SinceKotlin(\"1.3\")\npublic expect fun DoubleArray.fill(element: Double, fromIndex: Int = 0, toIndex: Int = size): Unit\n\n/**\n * Fills this array or its subrange with the specified [element] value.\n * \n * @param fromIndex the start of the range (inclusive) to fill, 0 by default.\n * @param toIndex the end of the range (exclusive) to fill, size of this array by default.\n * \n * @throws IndexOutOfBoundsException if [fromIndex] is less than zero or [toIndex] is greater than the size of this array.\n * @throws IllegalArgumentException if [fromIndex] is greater than [toIndex].\n */\n@SinceKotlin(\"1.3\")\npublic expect fun BooleanArray.fill(element: Boolean, fromIndex: Int = 0, toIndex: Int = size): Unit\n\n/**\n * Fills this array or its subrange with the specified [element] value.\n * \n * @param fromIndex the start of the range (inclusive) to fill, 0 by default.\n * @param toIndex the end of the range (exclusive) to fill, size of this array by default.\n * \n * @throws IndexOutOfBoundsException if [fromIndex] is less than zero or [toIndex] is greater than the size of this array.\n * @throws IllegalArgumentException if [fromIndex] is greater than [toIndex].\n */\n@SinceKotlin(\"1.3\")\npublic expect fun CharArray.fill(element: Char, fromIndex: Int = 0, toIndex: Int = size): Unit\n\n/**\n * Returns the range of valid indices for the array.\n */\npublic val Array.indices: IntRange\n get() = IntRange(0, lastIndex)\n\n/**\n * Returns the range of valid indices for the array.\n */\npublic val ByteArray.indices: IntRange\n get() = IntRange(0, lastIndex)\n\n/**\n * Returns the range of valid indices for the array.\n */\npublic val ShortArray.indices: IntRange\n get() = IntRange(0, lastIndex)\n\n/**\n * Returns the range of valid indices for the array.\n */\npublic val IntArray.indices: IntRange\n get() = IntRange(0, lastIndex)\n\n/**\n * Returns the range of valid indices for the array.\n */\npublic val LongArray.indices: IntRange\n get() = IntRange(0, lastIndex)\n\n/**\n * Returns the range of valid indices for the array.\n */\npublic val FloatArray.indices: IntRange\n get() = IntRange(0, lastIndex)\n\n/**\n * Returns the range of valid indices for the array.\n */\npublic val DoubleArray.indices: IntRange\n get() = IntRange(0, lastIndex)\n\n/**\n * Returns the range of valid indices for the array.\n */\npublic val BooleanArray.indices: IntRange\n get() = IntRange(0, lastIndex)\n\n/**\n * Returns the range of valid indices for the array.\n */\npublic val CharArray.indices: IntRange\n get() = IntRange(0, lastIndex)\n\n/**\n * Returns `true` if the array is empty.\n */\n@kotlin.internal.InlineOnly\npublic inline fun Array.isEmpty(): Boolean {\n return size == 0\n}\n\n/**\n * Returns `true` if the array is empty.\n */\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.isEmpty(): Boolean {\n return size == 0\n}\n\n/**\n * Returns `true` if the array is empty.\n */\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.isEmpty(): Boolean {\n return size == 0\n}\n\n/**\n * Returns `true` if the array is empty.\n */\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.isEmpty(): Boolean {\n return size == 0\n}\n\n/**\n * Returns `true` if the array is empty.\n */\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.isEmpty(): Boolean {\n return size == 0\n}\n\n/**\n * Returns `true` if the array is empty.\n */\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.isEmpty(): Boolean {\n return size == 0\n}\n\n/**\n * Returns `true` if the array is empty.\n */\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.isEmpty(): Boolean {\n return size == 0\n}\n\n/**\n * Returns `true` if the array is empty.\n */\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.isEmpty(): Boolean {\n return size == 0\n}\n\n/**\n * Returns `true` if the array is empty.\n */\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.isEmpty(): Boolean {\n return size == 0\n}\n\n/**\n * Returns `true` if the array is not empty.\n */\n@kotlin.internal.InlineOnly\npublic inline fun Array.isNotEmpty(): Boolean {\n return !isEmpty()\n}\n\n/**\n * Returns `true` if the array is not empty.\n */\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.isNotEmpty(): Boolean {\n return !isEmpty()\n}\n\n/**\n * Returns `true` if the array is not empty.\n */\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.isNotEmpty(): Boolean {\n return !isEmpty()\n}\n\n/**\n * Returns `true` if the array is not empty.\n */\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.isNotEmpty(): Boolean {\n return !isEmpty()\n}\n\n/**\n * Returns `true` if the array is not empty.\n */\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.isNotEmpty(): Boolean {\n return !isEmpty()\n}\n\n/**\n * Returns `true` if the array is not empty.\n */\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.isNotEmpty(): Boolean {\n return !isEmpty()\n}\n\n/**\n * Returns `true` if the array is not empty.\n */\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.isNotEmpty(): Boolean {\n return !isEmpty()\n}\n\n/**\n * Returns `true` if the array is not empty.\n */\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.isNotEmpty(): Boolean {\n return !isEmpty()\n}\n\n/**\n * Returns `true` if the array is not empty.\n */\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.isNotEmpty(): Boolean {\n return !isEmpty()\n}\n\n/**\n * Returns the last valid index for the array.\n */\npublic val Array.lastIndex: Int\n get() = size - 1\n\n/**\n * Returns the last valid index for the array.\n */\npublic val ByteArray.lastIndex: Int\n get() = size - 1\n\n/**\n * Returns the last valid index for the array.\n */\npublic val ShortArray.lastIndex: Int\n get() = size - 1\n\n/**\n * Returns the last valid index for the array.\n */\npublic val IntArray.lastIndex: Int\n get() = size - 1\n\n/**\n * Returns the last valid index for the array.\n */\npublic val LongArray.lastIndex: Int\n get() = size - 1\n\n/**\n * Returns the last valid index for the array.\n */\npublic val FloatArray.lastIndex: Int\n get() = size - 1\n\n/**\n * Returns the last valid index for the array.\n */\npublic val DoubleArray.lastIndex: Int\n get() = size - 1\n\n/**\n * Returns the last valid index for the array.\n */\npublic val BooleanArray.lastIndex: Int\n get() = size - 1\n\n/**\n * Returns the last valid index for the array.\n */\npublic val CharArray.lastIndex: Int\n get() = size - 1\n\n/**\n * Returns an array containing all elements of the original array and then the given [element].\n */\n@Suppress(\"NO_ACTUAL_FOR_EXPECT\")\npublic expect operator fun Array.plus(element: T): Array\n\n/**\n * Returns an array containing all elements of the original array and then the given [element].\n */\npublic expect operator fun ByteArray.plus(element: Byte): ByteArray\n\n/**\n * Returns an array containing all elements of the original array and then the given [element].\n */\npublic expect operator fun ShortArray.plus(element: Short): ShortArray\n\n/**\n * Returns an array containing all elements of the original array and then the given [element].\n */\npublic expect operator fun IntArray.plus(element: Int): IntArray\n\n/**\n * Returns an array containing all elements of the original array and then the given [element].\n */\npublic expect operator fun LongArray.plus(element: Long): LongArray\n\n/**\n * Returns an array containing all elements of the original array and then the given [element].\n */\npublic expect operator fun FloatArray.plus(element: Float): FloatArray\n\n/**\n * Returns an array containing all elements of the original array and then the given [element].\n */\npublic expect operator fun DoubleArray.plus(element: Double): DoubleArray\n\n/**\n * Returns an array containing all elements of the original array and then the given [element].\n */\npublic expect operator fun BooleanArray.plus(element: Boolean): BooleanArray\n\n/**\n * Returns an array containing all elements of the original array and then the given [element].\n */\npublic expect operator fun CharArray.plus(element: Char): CharArray\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] collection.\n */\n@Suppress(\"NO_ACTUAL_FOR_EXPECT\")\npublic expect operator fun Array.plus(elements: Collection): Array\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] collection.\n */\npublic expect operator fun ByteArray.plus(elements: Collection): ByteArray\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] collection.\n */\npublic expect operator fun ShortArray.plus(elements: Collection): ShortArray\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] collection.\n */\npublic expect operator fun IntArray.plus(elements: Collection): IntArray\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] collection.\n */\npublic expect operator fun LongArray.plus(elements: Collection): LongArray\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] collection.\n */\npublic expect operator fun FloatArray.plus(elements: Collection): FloatArray\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] collection.\n */\npublic expect operator fun DoubleArray.plus(elements: Collection): DoubleArray\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] collection.\n */\npublic expect operator fun BooleanArray.plus(elements: Collection): BooleanArray\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] collection.\n */\npublic expect operator fun CharArray.plus(elements: Collection): CharArray\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] array.\n */\n@Suppress(\"NO_ACTUAL_FOR_EXPECT\")\npublic expect operator fun Array.plus(elements: Array): Array\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] array.\n */\npublic expect operator fun ByteArray.plus(elements: ByteArray): ByteArray\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] array.\n */\npublic expect operator fun ShortArray.plus(elements: ShortArray): ShortArray\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] array.\n */\npublic expect operator fun IntArray.plus(elements: IntArray): IntArray\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] array.\n */\npublic expect operator fun LongArray.plus(elements: LongArray): LongArray\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] array.\n */\npublic expect operator fun FloatArray.plus(elements: FloatArray): FloatArray\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] array.\n */\npublic expect operator fun DoubleArray.plus(elements: DoubleArray): DoubleArray\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] array.\n */\npublic expect operator fun BooleanArray.plus(elements: BooleanArray): BooleanArray\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] array.\n */\npublic expect operator fun CharArray.plus(elements: CharArray): CharArray\n\n/**\n * Returns an array containing all elements of the original array and then the given [element].\n */\n@Suppress(\"NO_ACTUAL_FOR_EXPECT\")\npublic expect fun Array.plusElement(element: T): Array\n\n/**\n * Sorts the array in-place.\n * \n * @sample samples.collections.Arrays.Sorting.sortArray\n */\npublic expect fun IntArray.sort(): Unit\n\n/**\n * Sorts the array in-place.\n * \n * @sample samples.collections.Arrays.Sorting.sortArray\n */\npublic expect fun LongArray.sort(): Unit\n\n/**\n * Sorts the array in-place.\n * \n * @sample samples.collections.Arrays.Sorting.sortArray\n */\npublic expect fun ByteArray.sort(): Unit\n\n/**\n * Sorts the array in-place.\n * \n * @sample samples.collections.Arrays.Sorting.sortArray\n */\npublic expect fun ShortArray.sort(): Unit\n\n/**\n * Sorts the array in-place.\n * \n * @sample samples.collections.Arrays.Sorting.sortArray\n */\npublic expect fun DoubleArray.sort(): Unit\n\n/**\n * Sorts the array in-place.\n * \n * @sample samples.collections.Arrays.Sorting.sortArray\n */\npublic expect fun FloatArray.sort(): Unit\n\n/**\n * Sorts the array in-place.\n * \n * @sample samples.collections.Arrays.Sorting.sortArray\n */\npublic expect fun CharArray.sort(): Unit\n\n/**\n * Sorts the array in-place according to the natural order of its elements.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n * \n * @sample samples.collections.Arrays.Sorting.sortArrayOfComparable\n */\npublic expect fun > Array.sort(): Unit\n\n/**\n * Sorts a range in the array in-place.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n * \n * @param fromIndex the start of the range (inclusive) to sort, 0 by default.\n * @param toIndex the end of the range (exclusive) to sort, size of this array by default.\n * \n * @throws IndexOutOfBoundsException if [fromIndex] is less than zero or [toIndex] is greater than the size of this array.\n * @throws IllegalArgumentException if [fromIndex] is greater than [toIndex].\n * \n * @sample samples.collections.Arrays.Sorting.sortRangeOfArrayOfComparable\n */\n@SinceKotlin(\"1.4\")\npublic expect fun > Array.sort(fromIndex: Int = 0, toIndex: Int = size): Unit\n\n/**\n * Sorts a range in the array in-place.\n * \n * @param fromIndex the start of the range (inclusive) to sort, 0 by default.\n * @param toIndex the end of the range (exclusive) to sort, size of this array by default.\n * \n * @throws IndexOutOfBoundsException if [fromIndex] is less than zero or [toIndex] is greater than the size of this array.\n * @throws IllegalArgumentException if [fromIndex] is greater than [toIndex].\n * \n * @sample samples.collections.Arrays.Sorting.sortRangeOfArray\n */\n@SinceKotlin(\"1.4\")\npublic expect fun ByteArray.sort(fromIndex: Int = 0, toIndex: Int = size): Unit\n\n/**\n * Sorts a range in the array in-place.\n * \n * @param fromIndex the start of the range (inclusive) to sort, 0 by default.\n * @param toIndex the end of the range (exclusive) to sort, size of this array by default.\n * \n * @throws IndexOutOfBoundsException if [fromIndex] is less than zero or [toIndex] is greater than the size of this array.\n * @throws IllegalArgumentException if [fromIndex] is greater than [toIndex].\n * \n * @sample samples.collections.Arrays.Sorting.sortRangeOfArray\n */\n@SinceKotlin(\"1.4\")\npublic expect fun ShortArray.sort(fromIndex: Int = 0, toIndex: Int = size): Unit\n\n/**\n * Sorts a range in the array in-place.\n * \n * @param fromIndex the start of the range (inclusive) to sort, 0 by default.\n * @param toIndex the end of the range (exclusive) to sort, size of this array by default.\n * \n * @throws IndexOutOfBoundsException if [fromIndex] is less than zero or [toIndex] is greater than the size of this array.\n * @throws IllegalArgumentException if [fromIndex] is greater than [toIndex].\n * \n * @sample samples.collections.Arrays.Sorting.sortRangeOfArray\n */\n@SinceKotlin(\"1.4\")\npublic expect fun IntArray.sort(fromIndex: Int = 0, toIndex: Int = size): Unit\n\n/**\n * Sorts a range in the array in-place.\n * \n * @param fromIndex the start of the range (inclusive) to sort, 0 by default.\n * @param toIndex the end of the range (exclusive) to sort, size of this array by default.\n * \n * @throws IndexOutOfBoundsException if [fromIndex] is less than zero or [toIndex] is greater than the size of this array.\n * @throws IllegalArgumentException if [fromIndex] is greater than [toIndex].\n * \n * @sample samples.collections.Arrays.Sorting.sortRangeOfArray\n */\n@SinceKotlin(\"1.4\")\npublic expect fun LongArray.sort(fromIndex: Int = 0, toIndex: Int = size): Unit\n\n/**\n * Sorts a range in the array in-place.\n * \n * @param fromIndex the start of the range (inclusive) to sort, 0 by default.\n * @param toIndex the end of the range (exclusive) to sort, size of this array by default.\n * \n * @throws IndexOutOfBoundsException if [fromIndex] is less than zero or [toIndex] is greater than the size of this array.\n * @throws IllegalArgumentException if [fromIndex] is greater than [toIndex].\n * \n * @sample samples.collections.Arrays.Sorting.sortRangeOfArray\n */\n@SinceKotlin(\"1.4\")\npublic expect fun FloatArray.sort(fromIndex: Int = 0, toIndex: Int = size): Unit\n\n/**\n * Sorts a range in the array in-place.\n * \n * @param fromIndex the start of the range (inclusive) to sort, 0 by default.\n * @param toIndex the end of the range (exclusive) to sort, size of this array by default.\n * \n * @throws IndexOutOfBoundsException if [fromIndex] is less than zero or [toIndex] is greater than the size of this array.\n * @throws IllegalArgumentException if [fromIndex] is greater than [toIndex].\n * \n * @sample samples.collections.Arrays.Sorting.sortRangeOfArray\n */\n@SinceKotlin(\"1.4\")\npublic expect fun DoubleArray.sort(fromIndex: Int = 0, toIndex: Int = size): Unit\n\n/**\n * Sorts a range in the array in-place.\n * \n * @param fromIndex the start of the range (inclusive) to sort, 0 by default.\n * @param toIndex the end of the range (exclusive) to sort, size of this array by default.\n * \n * @throws IndexOutOfBoundsException if [fromIndex] is less than zero or [toIndex] is greater than the size of this array.\n * @throws IllegalArgumentException if [fromIndex] is greater than [toIndex].\n * \n * @sample samples.collections.Arrays.Sorting.sortRangeOfArray\n */\n@SinceKotlin(\"1.4\")\npublic expect fun CharArray.sort(fromIndex: Int = 0, toIndex: Int = size): Unit\n\n/**\n * Sorts elements of the array in the specified range in-place.\n * The elements are sorted descending according to their natural sort order.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n * \n * @param fromIndex the start of the range (inclusive) to sort.\n * @param toIndex the end of the range (exclusive) to sort.\n * \n * @throws IndexOutOfBoundsException if [fromIndex] is less than zero or [toIndex] is greater than the size of this array.\n * @throws IllegalArgumentException if [fromIndex] is greater than [toIndex].\n */\n@SinceKotlin(\"1.4\")\npublic fun > Array.sortDescending(fromIndex: Int, toIndex: Int): Unit {\n sortWith(reverseOrder(), fromIndex, toIndex)\n}\n\n/**\n * Sorts elements of the array in the specified range in-place.\n * The elements are sorted descending according to their natural sort order.\n * \n * @param fromIndex the start of the range (inclusive) to sort.\n * @param toIndex the end of the range (exclusive) to sort.\n * \n * @throws IndexOutOfBoundsException if [fromIndex] is less than zero or [toIndex] is greater than the size of this array.\n * @throws IllegalArgumentException if [fromIndex] is greater than [toIndex].\n */\n@SinceKotlin(\"1.4\")\npublic fun ByteArray.sortDescending(fromIndex: Int, toIndex: Int): Unit {\n sort(fromIndex, toIndex)\n reverse(fromIndex, toIndex)\n}\n\n/**\n * Sorts elements of the array in the specified range in-place.\n * The elements are sorted descending according to their natural sort order.\n * \n * @param fromIndex the start of the range (inclusive) to sort.\n * @param toIndex the end of the range (exclusive) to sort.\n * \n * @throws IndexOutOfBoundsException if [fromIndex] is less than zero or [toIndex] is greater than the size of this array.\n * @throws IllegalArgumentException if [fromIndex] is greater than [toIndex].\n */\n@SinceKotlin(\"1.4\")\npublic fun ShortArray.sortDescending(fromIndex: Int, toIndex: Int): Unit {\n sort(fromIndex, toIndex)\n reverse(fromIndex, toIndex)\n}\n\n/**\n * Sorts elements of the array in the specified range in-place.\n * The elements are sorted descending according to their natural sort order.\n * \n * @param fromIndex the start of the range (inclusive) to sort.\n * @param toIndex the end of the range (exclusive) to sort.\n * \n * @throws IndexOutOfBoundsException if [fromIndex] is less than zero or [toIndex] is greater than the size of this array.\n * @throws IllegalArgumentException if [fromIndex] is greater than [toIndex].\n */\n@SinceKotlin(\"1.4\")\npublic fun IntArray.sortDescending(fromIndex: Int, toIndex: Int): Unit {\n sort(fromIndex, toIndex)\n reverse(fromIndex, toIndex)\n}\n\n/**\n * Sorts elements of the array in the specified range in-place.\n * The elements are sorted descending according to their natural sort order.\n * \n * @param fromIndex the start of the range (inclusive) to sort.\n * @param toIndex the end of the range (exclusive) to sort.\n * \n * @throws IndexOutOfBoundsException if [fromIndex] is less than zero or [toIndex] is greater than the size of this array.\n * @throws IllegalArgumentException if [fromIndex] is greater than [toIndex].\n */\n@SinceKotlin(\"1.4\")\npublic fun LongArray.sortDescending(fromIndex: Int, toIndex: Int): Unit {\n sort(fromIndex, toIndex)\n reverse(fromIndex, toIndex)\n}\n\n/**\n * Sorts elements of the array in the specified range in-place.\n * The elements are sorted descending according to their natural sort order.\n * \n * @param fromIndex the start of the range (inclusive) to sort.\n * @param toIndex the end of the range (exclusive) to sort.\n * \n * @throws IndexOutOfBoundsException if [fromIndex] is less than zero or [toIndex] is greater than the size of this array.\n * @throws IllegalArgumentException if [fromIndex] is greater than [toIndex].\n */\n@SinceKotlin(\"1.4\")\npublic fun FloatArray.sortDescending(fromIndex: Int, toIndex: Int): Unit {\n sort(fromIndex, toIndex)\n reverse(fromIndex, toIndex)\n}\n\n/**\n * Sorts elements of the array in the specified range in-place.\n * The elements are sorted descending according to their natural sort order.\n * \n * @param fromIndex the start of the range (inclusive) to sort.\n * @param toIndex the end of the range (exclusive) to sort.\n * \n * @throws IndexOutOfBoundsException if [fromIndex] is less than zero or [toIndex] is greater than the size of this array.\n * @throws IllegalArgumentException if [fromIndex] is greater than [toIndex].\n */\n@SinceKotlin(\"1.4\")\npublic fun DoubleArray.sortDescending(fromIndex: Int, toIndex: Int): Unit {\n sort(fromIndex, toIndex)\n reverse(fromIndex, toIndex)\n}\n\n/**\n * Sorts elements of the array in the specified range in-place.\n * The elements are sorted descending according to their natural sort order.\n * \n * @param fromIndex the start of the range (inclusive) to sort.\n * @param toIndex the end of the range (exclusive) to sort.\n * \n * @throws IndexOutOfBoundsException if [fromIndex] is less than zero or [toIndex] is greater than the size of this array.\n * @throws IllegalArgumentException if [fromIndex] is greater than [toIndex].\n */\n@SinceKotlin(\"1.4\")\npublic fun CharArray.sortDescending(fromIndex: Int, toIndex: Int): Unit {\n sort(fromIndex, toIndex)\n reverse(fromIndex, toIndex)\n}\n\n/**\n * Sorts the array in-place according to the order specified by the given [comparator].\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic expect fun Array.sortWith(comparator: Comparator): Unit\n\n/**\n * Sorts a range in the array in-place with the given [comparator].\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n * \n * @param fromIndex the start of the range (inclusive) to sort, 0 by default.\n * @param toIndex the end of the range (exclusive) to sort, size of this array by default.\n * \n * @throws IndexOutOfBoundsException if [fromIndex] is less than zero or [toIndex] is greater than the size of this array.\n * @throws IllegalArgumentException if [fromIndex] is greater than [toIndex].\n */\npublic expect fun Array.sortWith(comparator: Comparator, fromIndex: Int = 0, toIndex: Int = size): Unit\n\n/**\n * Returns an array of Boolean containing all of the elements of this generic array.\n */\npublic fun Array.toBooleanArray(): BooleanArray {\n return BooleanArray(size) { index -> this[index] }\n}\n\n/**\n * Returns an array of Byte containing all of the elements of this generic array.\n */\npublic fun Array.toByteArray(): ByteArray {\n return ByteArray(size) { index -> this[index] }\n}\n\n/**\n * Returns an array of Char containing all of the elements of this generic array.\n */\npublic fun Array.toCharArray(): CharArray {\n return CharArray(size) { index -> this[index] }\n}\n\n/**\n * Returns an array of Double containing all of the elements of this generic array.\n */\npublic fun Array.toDoubleArray(): DoubleArray {\n return DoubleArray(size) { index -> this[index] }\n}\n\n/**\n * Returns an array of Float containing all of the elements of this generic array.\n */\npublic fun Array.toFloatArray(): FloatArray {\n return FloatArray(size) { index -> this[index] }\n}\n\n/**\n * Returns an array of Int containing all of the elements of this generic array.\n */\npublic fun Array.toIntArray(): IntArray {\n return IntArray(size) { index -> this[index] }\n}\n\n/**\n * Returns an array of Long containing all of the elements of this generic array.\n */\npublic fun Array.toLongArray(): LongArray {\n return LongArray(size) { index -> this[index] }\n}\n\n/**\n * Returns an array of Short containing all of the elements of this generic array.\n */\npublic fun Array.toShortArray(): ShortArray {\n return ShortArray(size) { index -> this[index] }\n}\n\n/**\n * Returns a *typed* object array containing all of the elements of this primitive array.\n */\npublic expect fun ByteArray.toTypedArray(): Array\n\n/**\n * Returns a *typed* object array containing all of the elements of this primitive array.\n */\npublic expect fun ShortArray.toTypedArray(): Array\n\n/**\n * Returns a *typed* object array containing all of the elements of this primitive array.\n */\npublic expect fun IntArray.toTypedArray(): Array\n\n/**\n * Returns a *typed* object array containing all of the elements of this primitive array.\n */\npublic expect fun LongArray.toTypedArray(): Array\n\n/**\n * Returns a *typed* object array containing all of the elements of this primitive array.\n */\npublic expect fun FloatArray.toTypedArray(): Array\n\n/**\n * Returns a *typed* object array containing all of the elements of this primitive array.\n */\npublic expect fun DoubleArray.toTypedArray(): Array\n\n/**\n * Returns a *typed* object array containing all of the elements of this primitive array.\n */\npublic expect fun BooleanArray.toTypedArray(): Array\n\n/**\n * Returns a *typed* object array containing all of the elements of this primitive array.\n */\npublic expect fun CharArray.toTypedArray(): Array\n\n/**\n * Returns a [Map] containing key-value pairs provided by [transform] function\n * applied to elements of the given array.\n * \n * If any of two pairs would have the same key the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitives\n */\npublic inline fun Array.associate(transform: (T) -> Pair): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateTo(LinkedHashMap(capacity), transform)\n}\n\n/**\n * Returns a [Map] containing key-value pairs provided by [transform] function\n * applied to elements of the given array.\n * \n * If any of two pairs would have the same key the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitives\n */\npublic inline fun ByteArray.associate(transform: (Byte) -> Pair): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateTo(LinkedHashMap(capacity), transform)\n}\n\n/**\n * Returns a [Map] containing key-value pairs provided by [transform] function\n * applied to elements of the given array.\n * \n * If any of two pairs would have the same key the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitives\n */\npublic inline fun ShortArray.associate(transform: (Short) -> Pair): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateTo(LinkedHashMap(capacity), transform)\n}\n\n/**\n * Returns a [Map] containing key-value pairs provided by [transform] function\n * applied to elements of the given array.\n * \n * If any of two pairs would have the same key the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitives\n */\npublic inline fun IntArray.associate(transform: (Int) -> Pair): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateTo(LinkedHashMap(capacity), transform)\n}\n\n/**\n * Returns a [Map] containing key-value pairs provided by [transform] function\n * applied to elements of the given array.\n * \n * If any of two pairs would have the same key the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitives\n */\npublic inline fun LongArray.associate(transform: (Long) -> Pair): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateTo(LinkedHashMap(capacity), transform)\n}\n\n/**\n * Returns a [Map] containing key-value pairs provided by [transform] function\n * applied to elements of the given array.\n * \n * If any of two pairs would have the same key the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitives\n */\npublic inline fun FloatArray.associate(transform: (Float) -> Pair): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateTo(LinkedHashMap(capacity), transform)\n}\n\n/**\n * Returns a [Map] containing key-value pairs provided by [transform] function\n * applied to elements of the given array.\n * \n * If any of two pairs would have the same key the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitives\n */\npublic inline fun DoubleArray.associate(transform: (Double) -> Pair): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateTo(LinkedHashMap(capacity), transform)\n}\n\n/**\n * Returns a [Map] containing key-value pairs provided by [transform] function\n * applied to elements of the given array.\n * \n * If any of two pairs would have the same key the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitives\n */\npublic inline fun BooleanArray.associate(transform: (Boolean) -> Pair): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateTo(LinkedHashMap(capacity), transform)\n}\n\n/**\n * Returns a [Map] containing key-value pairs provided by [transform] function\n * applied to elements of the given array.\n * \n * If any of two pairs would have the same key the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitives\n */\npublic inline fun CharArray.associate(transform: (Char) -> Pair): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateTo(LinkedHashMap(capacity), transform)\n}\n\n/**\n * Returns a [Map] containing the elements from the given array indexed by the key\n * returned from [keySelector] function applied to each element.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesBy\n */\npublic inline fun Array.associateBy(keySelector: (T) -> K): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateByTo(LinkedHashMap(capacity), keySelector)\n}\n\n/**\n * Returns a [Map] containing the elements from the given array indexed by the key\n * returned from [keySelector] function applied to each element.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesBy\n */\npublic inline fun ByteArray.associateBy(keySelector: (Byte) -> K): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateByTo(LinkedHashMap(capacity), keySelector)\n}\n\n/**\n * Returns a [Map] containing the elements from the given array indexed by the key\n * returned from [keySelector] function applied to each element.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesBy\n */\npublic inline fun ShortArray.associateBy(keySelector: (Short) -> K): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateByTo(LinkedHashMap(capacity), keySelector)\n}\n\n/**\n * Returns a [Map] containing the elements from the given array indexed by the key\n * returned from [keySelector] function applied to each element.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesBy\n */\npublic inline fun IntArray.associateBy(keySelector: (Int) -> K): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateByTo(LinkedHashMap(capacity), keySelector)\n}\n\n/**\n * Returns a [Map] containing the elements from the given array indexed by the key\n * returned from [keySelector] function applied to each element.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesBy\n */\npublic inline fun LongArray.associateBy(keySelector: (Long) -> K): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateByTo(LinkedHashMap(capacity), keySelector)\n}\n\n/**\n * Returns a [Map] containing the elements from the given array indexed by the key\n * returned from [keySelector] function applied to each element.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesBy\n */\npublic inline fun FloatArray.associateBy(keySelector: (Float) -> K): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateByTo(LinkedHashMap(capacity), keySelector)\n}\n\n/**\n * Returns a [Map] containing the elements from the given array indexed by the key\n * returned from [keySelector] function applied to each element.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesBy\n */\npublic inline fun DoubleArray.associateBy(keySelector: (Double) -> K): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateByTo(LinkedHashMap(capacity), keySelector)\n}\n\n/**\n * Returns a [Map] containing the elements from the given array indexed by the key\n * returned from [keySelector] function applied to each element.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesBy\n */\npublic inline fun BooleanArray.associateBy(keySelector: (Boolean) -> K): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateByTo(LinkedHashMap(capacity), keySelector)\n}\n\n/**\n * Returns a [Map] containing the elements from the given array indexed by the key\n * returned from [keySelector] function applied to each element.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesBy\n */\npublic inline fun CharArray.associateBy(keySelector: (Char) -> K): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateByTo(LinkedHashMap(capacity), keySelector)\n}\n\n/**\n * Returns a [Map] containing the values provided by [valueTransform] and indexed by [keySelector] functions applied to elements of the given array.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesByWithValueTransform\n */\npublic inline fun Array.associateBy(keySelector: (T) -> K, valueTransform: (T) -> V): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateByTo(LinkedHashMap(capacity), keySelector, valueTransform)\n}\n\n/**\n * Returns a [Map] containing the values provided by [valueTransform] and indexed by [keySelector] functions applied to elements of the given array.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesByWithValueTransform\n */\npublic inline fun ByteArray.associateBy(keySelector: (Byte) -> K, valueTransform: (Byte) -> V): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateByTo(LinkedHashMap(capacity), keySelector, valueTransform)\n}\n\n/**\n * Returns a [Map] containing the values provided by [valueTransform] and indexed by [keySelector] functions applied to elements of the given array.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesByWithValueTransform\n */\npublic inline fun ShortArray.associateBy(keySelector: (Short) -> K, valueTransform: (Short) -> V): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateByTo(LinkedHashMap(capacity), keySelector, valueTransform)\n}\n\n/**\n * Returns a [Map] containing the values provided by [valueTransform] and indexed by [keySelector] functions applied to elements of the given array.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesByWithValueTransform\n */\npublic inline fun IntArray.associateBy(keySelector: (Int) -> K, valueTransform: (Int) -> V): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateByTo(LinkedHashMap(capacity), keySelector, valueTransform)\n}\n\n/**\n * Returns a [Map] containing the values provided by [valueTransform] and indexed by [keySelector] functions applied to elements of the given array.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesByWithValueTransform\n */\npublic inline fun LongArray.associateBy(keySelector: (Long) -> K, valueTransform: (Long) -> V): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateByTo(LinkedHashMap(capacity), keySelector, valueTransform)\n}\n\n/**\n * Returns a [Map] containing the values provided by [valueTransform] and indexed by [keySelector] functions applied to elements of the given array.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesByWithValueTransform\n */\npublic inline fun FloatArray.associateBy(keySelector: (Float) -> K, valueTransform: (Float) -> V): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateByTo(LinkedHashMap(capacity), keySelector, valueTransform)\n}\n\n/**\n * Returns a [Map] containing the values provided by [valueTransform] and indexed by [keySelector] functions applied to elements of the given array.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesByWithValueTransform\n */\npublic inline fun DoubleArray.associateBy(keySelector: (Double) -> K, valueTransform: (Double) -> V): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateByTo(LinkedHashMap(capacity), keySelector, valueTransform)\n}\n\n/**\n * Returns a [Map] containing the values provided by [valueTransform] and indexed by [keySelector] functions applied to elements of the given array.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesByWithValueTransform\n */\npublic inline fun BooleanArray.associateBy(keySelector: (Boolean) -> K, valueTransform: (Boolean) -> V): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateByTo(LinkedHashMap(capacity), keySelector, valueTransform)\n}\n\n/**\n * Returns a [Map] containing the values provided by [valueTransform] and indexed by [keySelector] functions applied to elements of the given array.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesByWithValueTransform\n */\npublic inline fun CharArray.associateBy(keySelector: (Char) -> K, valueTransform: (Char) -> V): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateByTo(LinkedHashMap(capacity), keySelector, valueTransform)\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs,\n * where key is provided by the [keySelector] function applied to each element of the given array\n * and value is the element itself.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesByTo\n */\npublic inline fun > Array.associateByTo(destination: M, keySelector: (T) -> K): M {\n for (element in this) {\n destination.put(keySelector(element), element)\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs,\n * where key is provided by the [keySelector] function applied to each element of the given array\n * and value is the element itself.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesByTo\n */\npublic inline fun > ByteArray.associateByTo(destination: M, keySelector: (Byte) -> K): M {\n for (element in this) {\n destination.put(keySelector(element), element)\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs,\n * where key is provided by the [keySelector] function applied to each element of the given array\n * and value is the element itself.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesByTo\n */\npublic inline fun > ShortArray.associateByTo(destination: M, keySelector: (Short) -> K): M {\n for (element in this) {\n destination.put(keySelector(element), element)\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs,\n * where key is provided by the [keySelector] function applied to each element of the given array\n * and value is the element itself.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesByTo\n */\npublic inline fun > IntArray.associateByTo(destination: M, keySelector: (Int) -> K): M {\n for (element in this) {\n destination.put(keySelector(element), element)\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs,\n * where key is provided by the [keySelector] function applied to each element of the given array\n * and value is the element itself.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesByTo\n */\npublic inline fun > LongArray.associateByTo(destination: M, keySelector: (Long) -> K): M {\n for (element in this) {\n destination.put(keySelector(element), element)\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs,\n * where key is provided by the [keySelector] function applied to each element of the given array\n * and value is the element itself.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesByTo\n */\npublic inline fun > FloatArray.associateByTo(destination: M, keySelector: (Float) -> K): M {\n for (element in this) {\n destination.put(keySelector(element), element)\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs,\n * where key is provided by the [keySelector] function applied to each element of the given array\n * and value is the element itself.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesByTo\n */\npublic inline fun > DoubleArray.associateByTo(destination: M, keySelector: (Double) -> K): M {\n for (element in this) {\n destination.put(keySelector(element), element)\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs,\n * where key is provided by the [keySelector] function applied to each element of the given array\n * and value is the element itself.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesByTo\n */\npublic inline fun > BooleanArray.associateByTo(destination: M, keySelector: (Boolean) -> K): M {\n for (element in this) {\n destination.put(keySelector(element), element)\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs,\n * where key is provided by the [keySelector] function applied to each element of the given array\n * and value is the element itself.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesByTo\n */\npublic inline fun > CharArray.associateByTo(destination: M, keySelector: (Char) -> K): M {\n for (element in this) {\n destination.put(keySelector(element), element)\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs,\n * where key is provided by the [keySelector] function and\n * and value is provided by the [valueTransform] function applied to elements of the given array.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesByToWithValueTransform\n */\npublic inline fun > Array.associateByTo(destination: M, keySelector: (T) -> K, valueTransform: (T) -> V): M {\n for (element in this) {\n destination.put(keySelector(element), valueTransform(element))\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs,\n * where key is provided by the [keySelector] function and\n * and value is provided by the [valueTransform] function applied to elements of the given array.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesByToWithValueTransform\n */\npublic inline fun > ByteArray.associateByTo(destination: M, keySelector: (Byte) -> K, valueTransform: (Byte) -> V): M {\n for (element in this) {\n destination.put(keySelector(element), valueTransform(element))\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs,\n * where key is provided by the [keySelector] function and\n * and value is provided by the [valueTransform] function applied to elements of the given array.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesByToWithValueTransform\n */\npublic inline fun > ShortArray.associateByTo(destination: M, keySelector: (Short) -> K, valueTransform: (Short) -> V): M {\n for (element in this) {\n destination.put(keySelector(element), valueTransform(element))\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs,\n * where key is provided by the [keySelector] function and\n * and value is provided by the [valueTransform] function applied to elements of the given array.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesByToWithValueTransform\n */\npublic inline fun > IntArray.associateByTo(destination: M, keySelector: (Int) -> K, valueTransform: (Int) -> V): M {\n for (element in this) {\n destination.put(keySelector(element), valueTransform(element))\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs,\n * where key is provided by the [keySelector] function and\n * and value is provided by the [valueTransform] function applied to elements of the given array.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesByToWithValueTransform\n */\npublic inline fun > LongArray.associateByTo(destination: M, keySelector: (Long) -> K, valueTransform: (Long) -> V): M {\n for (element in this) {\n destination.put(keySelector(element), valueTransform(element))\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs,\n * where key is provided by the [keySelector] function and\n * and value is provided by the [valueTransform] function applied to elements of the given array.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesByToWithValueTransform\n */\npublic inline fun > FloatArray.associateByTo(destination: M, keySelector: (Float) -> K, valueTransform: (Float) -> V): M {\n for (element in this) {\n destination.put(keySelector(element), valueTransform(element))\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs,\n * where key is provided by the [keySelector] function and\n * and value is provided by the [valueTransform] function applied to elements of the given array.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesByToWithValueTransform\n */\npublic inline fun > DoubleArray.associateByTo(destination: M, keySelector: (Double) -> K, valueTransform: (Double) -> V): M {\n for (element in this) {\n destination.put(keySelector(element), valueTransform(element))\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs,\n * where key is provided by the [keySelector] function and\n * and value is provided by the [valueTransform] function applied to elements of the given array.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesByToWithValueTransform\n */\npublic inline fun > BooleanArray.associateByTo(destination: M, keySelector: (Boolean) -> K, valueTransform: (Boolean) -> V): M {\n for (element in this) {\n destination.put(keySelector(element), valueTransform(element))\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs,\n * where key is provided by the [keySelector] function and\n * and value is provided by the [valueTransform] function applied to elements of the given array.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesByToWithValueTransform\n */\npublic inline fun > CharArray.associateByTo(destination: M, keySelector: (Char) -> K, valueTransform: (Char) -> V): M {\n for (element in this) {\n destination.put(keySelector(element), valueTransform(element))\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs\n * provided by [transform] function applied to each element of the given array.\n * \n * If any of two pairs would have the same key the last one gets added to the map.\n * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesTo\n */\npublic inline fun > Array.associateTo(destination: M, transform: (T) -> Pair): M {\n for (element in this) {\n destination += transform(element)\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs\n * provided by [transform] function applied to each element of the given array.\n * \n * If any of two pairs would have the same key the last one gets added to the map.\n * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesTo\n */\npublic inline fun > ByteArray.associateTo(destination: M, transform: (Byte) -> Pair): M {\n for (element in this) {\n destination += transform(element)\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs\n * provided by [transform] function applied to each element of the given array.\n * \n * If any of two pairs would have the same key the last one gets added to the map.\n * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesTo\n */\npublic inline fun > ShortArray.associateTo(destination: M, transform: (Short) -> Pair): M {\n for (element in this) {\n destination += transform(element)\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs\n * provided by [transform] function applied to each element of the given array.\n * \n * If any of two pairs would have the same key the last one gets added to the map.\n * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesTo\n */\npublic inline fun > IntArray.associateTo(destination: M, transform: (Int) -> Pair): M {\n for (element in this) {\n destination += transform(element)\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs\n * provided by [transform] function applied to each element of the given array.\n * \n * If any of two pairs would have the same key the last one gets added to the map.\n * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesTo\n */\npublic inline fun > LongArray.associateTo(destination: M, transform: (Long) -> Pair): M {\n for (element in this) {\n destination += transform(element)\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs\n * provided by [transform] function applied to each element of the given array.\n * \n * If any of two pairs would have the same key the last one gets added to the map.\n * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesTo\n */\npublic inline fun > FloatArray.associateTo(destination: M, transform: (Float) -> Pair): M {\n for (element in this) {\n destination += transform(element)\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs\n * provided by [transform] function applied to each element of the given array.\n * \n * If any of two pairs would have the same key the last one gets added to the map.\n * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesTo\n */\npublic inline fun > DoubleArray.associateTo(destination: M, transform: (Double) -> Pair): M {\n for (element in this) {\n destination += transform(element)\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs\n * provided by [transform] function applied to each element of the given array.\n * \n * If any of two pairs would have the same key the last one gets added to the map.\n * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesTo\n */\npublic inline fun > BooleanArray.associateTo(destination: M, transform: (Boolean) -> Pair): M {\n for (element in this) {\n destination += transform(element)\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs\n * provided by [transform] function applied to each element of the given array.\n * \n * If any of two pairs would have the same key the last one gets added to the map.\n * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesTo\n */\npublic inline fun > CharArray.associateTo(destination: M, transform: (Char) -> Pair): M {\n for (element in this) {\n destination += transform(element)\n }\n return destination\n}\n\n/**\n * Returns a [Map] where keys are elements from the given array and values are\n * produced by the [valueSelector] function applied to each element.\n * \n * If any two elements are equal, the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n * \n * @sample samples.collections.Collections.Transformations.associateWith\n */\n@SinceKotlin(\"1.4\")\npublic inline fun Array.associateWith(valueSelector: (K) -> V): Map {\n val result = LinkedHashMap(mapCapacity(size).coerceAtLeast(16))\n return associateWithTo(result, valueSelector)\n}\n\n/**\n * Returns a [Map] where keys are elements from the given array and values are\n * produced by the [valueSelector] function applied to each element.\n * \n * If any two elements are equal, the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n * \n * @sample samples.collections.Collections.Transformations.associateWith\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.associateWith(valueSelector: (Byte) -> V): Map {\n val result = LinkedHashMap(mapCapacity(size).coerceAtLeast(16))\n return associateWithTo(result, valueSelector)\n}\n\n/**\n * Returns a [Map] where keys are elements from the given array and values are\n * produced by the [valueSelector] function applied to each element.\n * \n * If any two elements are equal, the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n * \n * @sample samples.collections.Collections.Transformations.associateWith\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.associateWith(valueSelector: (Short) -> V): Map {\n val result = LinkedHashMap(mapCapacity(size).coerceAtLeast(16))\n return associateWithTo(result, valueSelector)\n}\n\n/**\n * Returns a [Map] where keys are elements from the given array and values are\n * produced by the [valueSelector] function applied to each element.\n * \n * If any two elements are equal, the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n * \n * @sample samples.collections.Collections.Transformations.associateWith\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.associateWith(valueSelector: (Int) -> V): Map {\n val result = LinkedHashMap(mapCapacity(size).coerceAtLeast(16))\n return associateWithTo(result, valueSelector)\n}\n\n/**\n * Returns a [Map] where keys are elements from the given array and values are\n * produced by the [valueSelector] function applied to each element.\n * \n * If any two elements are equal, the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n * \n * @sample samples.collections.Collections.Transformations.associateWith\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.associateWith(valueSelector: (Long) -> V): Map {\n val result = LinkedHashMap(mapCapacity(size).coerceAtLeast(16))\n return associateWithTo(result, valueSelector)\n}\n\n/**\n * Returns a [Map] where keys are elements from the given array and values are\n * produced by the [valueSelector] function applied to each element.\n * \n * If any two elements are equal, the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n * \n * @sample samples.collections.Collections.Transformations.associateWith\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.associateWith(valueSelector: (Float) -> V): Map {\n val result = LinkedHashMap(mapCapacity(size).coerceAtLeast(16))\n return associateWithTo(result, valueSelector)\n}\n\n/**\n * Returns a [Map] where keys are elements from the given array and values are\n * produced by the [valueSelector] function applied to each element.\n * \n * If any two elements are equal, the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n * \n * @sample samples.collections.Collections.Transformations.associateWith\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.associateWith(valueSelector: (Double) -> V): Map {\n val result = LinkedHashMap(mapCapacity(size).coerceAtLeast(16))\n return associateWithTo(result, valueSelector)\n}\n\n/**\n * Returns a [Map] where keys are elements from the given array and values are\n * produced by the [valueSelector] function applied to each element.\n * \n * If any two elements are equal, the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n * \n * @sample samples.collections.Collections.Transformations.associateWith\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.associateWith(valueSelector: (Boolean) -> V): Map {\n val result = LinkedHashMap(mapCapacity(size).coerceAtLeast(16))\n return associateWithTo(result, valueSelector)\n}\n\n/**\n * Returns a [Map] where keys are elements from the given array and values are\n * produced by the [valueSelector] function applied to each element.\n * \n * If any two elements are equal, the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n * \n * @sample samples.collections.Collections.Transformations.associateWith\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.associateWith(valueSelector: (Char) -> V): Map {\n val result = LinkedHashMap(mapCapacity(size.coerceAtMost(128)).coerceAtLeast(16))\n return associateWithTo(result, valueSelector)\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs for each element of the given array,\n * where key is the element itself and value is provided by the [valueSelector] function applied to that key.\n * \n * If any two elements are equal, the last one overwrites the former value in the map.\n * \n * @sample samples.collections.Collections.Transformations.associateWithTo\n */\n@SinceKotlin(\"1.4\")\npublic inline fun > Array.associateWithTo(destination: M, valueSelector: (K) -> V): M {\n for (element in this) {\n destination.put(element, valueSelector(element))\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs for each element of the given array,\n * where key is the element itself and value is provided by the [valueSelector] function applied to that key.\n * \n * If any two elements are equal, the last one overwrites the former value in the map.\n * \n * @sample samples.collections.Collections.Transformations.associateWithTo\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun > ByteArray.associateWithTo(destination: M, valueSelector: (Byte) -> V): M {\n for (element in this) {\n destination.put(element, valueSelector(element))\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs for each element of the given array,\n * where key is the element itself and value is provided by the [valueSelector] function applied to that key.\n * \n * If any two elements are equal, the last one overwrites the former value in the map.\n * \n * @sample samples.collections.Collections.Transformations.associateWithTo\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun > ShortArray.associateWithTo(destination: M, valueSelector: (Short) -> V): M {\n for (element in this) {\n destination.put(element, valueSelector(element))\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs for each element of the given array,\n * where key is the element itself and value is provided by the [valueSelector] function applied to that key.\n * \n * If any two elements are equal, the last one overwrites the former value in the map.\n * \n * @sample samples.collections.Collections.Transformations.associateWithTo\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun > IntArray.associateWithTo(destination: M, valueSelector: (Int) -> V): M {\n for (element in this) {\n destination.put(element, valueSelector(element))\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs for each element of the given array,\n * where key is the element itself and value is provided by the [valueSelector] function applied to that key.\n * \n * If any two elements are equal, the last one overwrites the former value in the map.\n * \n * @sample samples.collections.Collections.Transformations.associateWithTo\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun > LongArray.associateWithTo(destination: M, valueSelector: (Long) -> V): M {\n for (element in this) {\n destination.put(element, valueSelector(element))\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs for each element of the given array,\n * where key is the element itself and value is provided by the [valueSelector] function applied to that key.\n * \n * If any two elements are equal, the last one overwrites the former value in the map.\n * \n * @sample samples.collections.Collections.Transformations.associateWithTo\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun > FloatArray.associateWithTo(destination: M, valueSelector: (Float) -> V): M {\n for (element in this) {\n destination.put(element, valueSelector(element))\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs for each element of the given array,\n * where key is the element itself and value is provided by the [valueSelector] function applied to that key.\n * \n * If any two elements are equal, the last one overwrites the former value in the map.\n * \n * @sample samples.collections.Collections.Transformations.associateWithTo\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun > DoubleArray.associateWithTo(destination: M, valueSelector: (Double) -> V): M {\n for (element in this) {\n destination.put(element, valueSelector(element))\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs for each element of the given array,\n * where key is the element itself and value is provided by the [valueSelector] function applied to that key.\n * \n * If any two elements are equal, the last one overwrites the former value in the map.\n * \n * @sample samples.collections.Collections.Transformations.associateWithTo\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun > BooleanArray.associateWithTo(destination: M, valueSelector: (Boolean) -> V): M {\n for (element in this) {\n destination.put(element, valueSelector(element))\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs for each element of the given array,\n * where key is the element itself and value is provided by the [valueSelector] function applied to that key.\n * \n * If any two elements are equal, the last one overwrites the former value in the map.\n * \n * @sample samples.collections.Collections.Transformations.associateWithTo\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun > CharArray.associateWithTo(destination: M, valueSelector: (Char) -> V): M {\n for (element in this) {\n destination.put(element, valueSelector(element))\n }\n return destination\n}\n\n/**\n * Appends all elements to the given [destination] collection.\n */\npublic fun > Array.toCollection(destination: C): C {\n for (item in this) {\n destination.add(item)\n }\n return destination\n}\n\n/**\n * Appends all elements to the given [destination] collection.\n */\npublic fun > ByteArray.toCollection(destination: C): C {\n for (item in this) {\n destination.add(item)\n }\n return destination\n}\n\n/**\n * Appends all elements to the given [destination] collection.\n */\npublic fun > ShortArray.toCollection(destination: C): C {\n for (item in this) {\n destination.add(item)\n }\n return destination\n}\n\n/**\n * Appends all elements to the given [destination] collection.\n */\npublic fun > IntArray.toCollection(destination: C): C {\n for (item in this) {\n destination.add(item)\n }\n return destination\n}\n\n/**\n * Appends all elements to the given [destination] collection.\n */\npublic fun > LongArray.toCollection(destination: C): C {\n for (item in this) {\n destination.add(item)\n }\n return destination\n}\n\n/**\n * Appends all elements to the given [destination] collection.\n */\npublic fun > FloatArray.toCollection(destination: C): C {\n for (item in this) {\n destination.add(item)\n }\n return destination\n}\n\n/**\n * Appends all elements to the given [destination] collection.\n */\npublic fun > DoubleArray.toCollection(destination: C): C {\n for (item in this) {\n destination.add(item)\n }\n return destination\n}\n\n/**\n * Appends all elements to the given [destination] collection.\n */\npublic fun > BooleanArray.toCollection(destination: C): C {\n for (item in this) {\n destination.add(item)\n }\n return destination\n}\n\n/**\n * Appends all elements to the given [destination] collection.\n */\npublic fun > CharArray.toCollection(destination: C): C {\n for (item in this) {\n destination.add(item)\n }\n return destination\n}\n\n/**\n * Returns a new [HashSet] of all elements.\n */\npublic fun Array.toHashSet(): HashSet {\n return toCollection(HashSet(mapCapacity(size)))\n}\n\n/**\n * Returns a new [HashSet] of all elements.\n */\npublic fun ByteArray.toHashSet(): HashSet {\n return toCollection(HashSet(mapCapacity(size)))\n}\n\n/**\n * Returns a new [HashSet] of all elements.\n */\npublic fun ShortArray.toHashSet(): HashSet {\n return toCollection(HashSet(mapCapacity(size)))\n}\n\n/**\n * Returns a new [HashSet] of all elements.\n */\npublic fun IntArray.toHashSet(): HashSet {\n return toCollection(HashSet(mapCapacity(size)))\n}\n\n/**\n * Returns a new [HashSet] of all elements.\n */\npublic fun LongArray.toHashSet(): HashSet {\n return toCollection(HashSet(mapCapacity(size)))\n}\n\n/**\n * Returns a new [HashSet] of all elements.\n */\npublic fun FloatArray.toHashSet(): HashSet {\n return toCollection(HashSet(mapCapacity(size)))\n}\n\n/**\n * Returns a new [HashSet] of all elements.\n */\npublic fun DoubleArray.toHashSet(): HashSet {\n return toCollection(HashSet(mapCapacity(size)))\n}\n\n/**\n * Returns a new [HashSet] of all elements.\n */\npublic fun BooleanArray.toHashSet(): HashSet {\n return toCollection(HashSet(mapCapacity(size)))\n}\n\n/**\n * Returns a new [HashSet] of all elements.\n */\npublic fun CharArray.toHashSet(): HashSet {\n return toCollection(HashSet(mapCapacity(size.coerceAtMost(128))))\n}\n\n/**\n * Returns a [List] containing all elements.\n */\npublic fun Array.toList(): List {\n return when (size) {\n 0 -> emptyList()\n 1 -> listOf(this[0])\n else -> this.toMutableList()\n }\n}\n\n/**\n * Returns a [List] containing all elements.\n */\npublic fun ByteArray.toList(): List {\n return when (size) {\n 0 -> emptyList()\n 1 -> listOf(this[0])\n else -> this.toMutableList()\n }\n}\n\n/**\n * Returns a [List] containing all elements.\n */\npublic fun ShortArray.toList(): List {\n return when (size) {\n 0 -> emptyList()\n 1 -> listOf(this[0])\n else -> this.toMutableList()\n }\n}\n\n/**\n * Returns a [List] containing all elements.\n */\npublic fun IntArray.toList(): List {\n return when (size) {\n 0 -> emptyList()\n 1 -> listOf(this[0])\n else -> this.toMutableList()\n }\n}\n\n/**\n * Returns a [List] containing all elements.\n */\npublic fun LongArray.toList(): List {\n return when (size) {\n 0 -> emptyList()\n 1 -> listOf(this[0])\n else -> this.toMutableList()\n }\n}\n\n/**\n * Returns a [List] containing all elements.\n */\npublic fun FloatArray.toList(): List {\n return when (size) {\n 0 -> emptyList()\n 1 -> listOf(this[0])\n else -> this.toMutableList()\n }\n}\n\n/**\n * Returns a [List] containing all elements.\n */\npublic fun DoubleArray.toList(): List {\n return when (size) {\n 0 -> emptyList()\n 1 -> listOf(this[0])\n else -> this.toMutableList()\n }\n}\n\n/**\n * Returns a [List] containing all elements.\n */\npublic fun BooleanArray.toList(): List {\n return when (size) {\n 0 -> emptyList()\n 1 -> listOf(this[0])\n else -> this.toMutableList()\n }\n}\n\n/**\n * Returns a [List] containing all elements.\n */\npublic fun CharArray.toList(): List {\n return when (size) {\n 0 -> emptyList()\n 1 -> listOf(this[0])\n else -> this.toMutableList()\n }\n}\n\n/**\n * Returns a new [MutableList] filled with all elements of this array.\n */\npublic fun Array.toMutableList(): MutableList {\n return ArrayList(this.asCollection())\n}\n\n/**\n * Returns a new [MutableList] filled with all elements of this array.\n */\npublic fun ByteArray.toMutableList(): MutableList {\n val list = ArrayList(size)\n for (item in this) list.add(item)\n return list\n}\n\n/**\n * Returns a new [MutableList] filled with all elements of this array.\n */\npublic fun ShortArray.toMutableList(): MutableList {\n val list = ArrayList(size)\n for (item in this) list.add(item)\n return list\n}\n\n/**\n * Returns a new [MutableList] filled with all elements of this array.\n */\npublic fun IntArray.toMutableList(): MutableList {\n val list = ArrayList(size)\n for (item in this) list.add(item)\n return list\n}\n\n/**\n * Returns a new [MutableList] filled with all elements of this array.\n */\npublic fun LongArray.toMutableList(): MutableList {\n val list = ArrayList(size)\n for (item in this) list.add(item)\n return list\n}\n\n/**\n * Returns a new [MutableList] filled with all elements of this array.\n */\npublic fun FloatArray.toMutableList(): MutableList {\n val list = ArrayList(size)\n for (item in this) list.add(item)\n return list\n}\n\n/**\n * Returns a new [MutableList] filled with all elements of this array.\n */\npublic fun DoubleArray.toMutableList(): MutableList {\n val list = ArrayList(size)\n for (item in this) list.add(item)\n return list\n}\n\n/**\n * Returns a new [MutableList] filled with all elements of this array.\n */\npublic fun BooleanArray.toMutableList(): MutableList {\n val list = ArrayList(size)\n for (item in this) list.add(item)\n return list\n}\n\n/**\n * Returns a new [MutableList] filled with all elements of this array.\n */\npublic fun CharArray.toMutableList(): MutableList {\n val list = ArrayList(size)\n for (item in this) list.add(item)\n return list\n}\n\n/**\n * Returns a [Set] of all elements.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic fun Array.toSet(): Set {\n return when (size) {\n 0 -> emptySet()\n 1 -> setOf(this[0])\n else -> toCollection(LinkedHashSet(mapCapacity(size)))\n }\n}\n\n/**\n * Returns a [Set] of all elements.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic fun ByteArray.toSet(): Set {\n return when (size) {\n 0 -> emptySet()\n 1 -> setOf(this[0])\n else -> toCollection(LinkedHashSet(mapCapacity(size)))\n }\n}\n\n/**\n * Returns a [Set] of all elements.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic fun ShortArray.toSet(): Set {\n return when (size) {\n 0 -> emptySet()\n 1 -> setOf(this[0])\n else -> toCollection(LinkedHashSet(mapCapacity(size)))\n }\n}\n\n/**\n * Returns a [Set] of all elements.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic fun IntArray.toSet(): Set {\n return when (size) {\n 0 -> emptySet()\n 1 -> setOf(this[0])\n else -> toCollection(LinkedHashSet(mapCapacity(size)))\n }\n}\n\n/**\n * Returns a [Set] of all elements.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic fun LongArray.toSet(): Set {\n return when (size) {\n 0 -> emptySet()\n 1 -> setOf(this[0])\n else -> toCollection(LinkedHashSet(mapCapacity(size)))\n }\n}\n\n/**\n * Returns a [Set] of all elements.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic fun FloatArray.toSet(): Set {\n return when (size) {\n 0 -> emptySet()\n 1 -> setOf(this[0])\n else -> toCollection(LinkedHashSet(mapCapacity(size)))\n }\n}\n\n/**\n * Returns a [Set] of all elements.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic fun DoubleArray.toSet(): Set {\n return when (size) {\n 0 -> emptySet()\n 1 -> setOf(this[0])\n else -> toCollection(LinkedHashSet(mapCapacity(size)))\n }\n}\n\n/**\n * Returns a [Set] of all elements.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic fun BooleanArray.toSet(): Set {\n return when (size) {\n 0 -> emptySet()\n 1 -> setOf(this[0])\n else -> toCollection(LinkedHashSet(mapCapacity(size)))\n }\n}\n\n/**\n * Returns a [Set] of all elements.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic fun CharArray.toSet(): Set {\n return when (size) {\n 0 -> emptySet()\n 1 -> setOf(this[0])\n else -> toCollection(LinkedHashSet(mapCapacity(size.coerceAtMost(128))))\n }\n}\n\n/**\n * Returns a single list of all elements yielded from results of [transform] function being invoked on each element of original array.\n * \n * @sample samples.collections.Collections.Transformations.flatMap\n */\npublic inline fun Array.flatMap(transform: (T) -> Iterable): List {\n return flatMapTo(ArrayList(), transform)\n}\n\n/**\n * Returns a single list of all elements yielded from results of [transform] function being invoked on each element of original array.\n * \n * @sample samples.collections.Collections.Transformations.flatMap\n */\npublic inline fun ByteArray.flatMap(transform: (Byte) -> Iterable): List {\n return flatMapTo(ArrayList(), transform)\n}\n\n/**\n * Returns a single list of all elements yielded from results of [transform] function being invoked on each element of original array.\n * \n * @sample samples.collections.Collections.Transformations.flatMap\n */\npublic inline fun ShortArray.flatMap(transform: (Short) -> Iterable): List {\n return flatMapTo(ArrayList(), transform)\n}\n\n/**\n * Returns a single list of all elements yielded from results of [transform] function being invoked on each element of original array.\n * \n * @sample samples.collections.Collections.Transformations.flatMap\n */\npublic inline fun IntArray.flatMap(transform: (Int) -> Iterable): List {\n return flatMapTo(ArrayList(), transform)\n}\n\n/**\n * Returns a single list of all elements yielded from results of [transform] function being invoked on each element of original array.\n * \n * @sample samples.collections.Collections.Transformations.flatMap\n */\npublic inline fun LongArray.flatMap(transform: (Long) -> Iterable): List {\n return flatMapTo(ArrayList(), transform)\n}\n\n/**\n * Returns a single list of all elements yielded from results of [transform] function being invoked on each element of original array.\n * \n * @sample samples.collections.Collections.Transformations.flatMap\n */\npublic inline fun FloatArray.flatMap(transform: (Float) -> Iterable): List {\n return flatMapTo(ArrayList(), transform)\n}\n\n/**\n * Returns a single list of all elements yielded from results of [transform] function being invoked on each element of original array.\n * \n * @sample samples.collections.Collections.Transformations.flatMap\n */\npublic inline fun DoubleArray.flatMap(transform: (Double) -> Iterable): List {\n return flatMapTo(ArrayList(), transform)\n}\n\n/**\n * Returns a single list of all elements yielded from results of [transform] function being invoked on each element of original array.\n * \n * @sample samples.collections.Collections.Transformations.flatMap\n */\npublic inline fun BooleanArray.flatMap(transform: (Boolean) -> Iterable): List {\n return flatMapTo(ArrayList(), transform)\n}\n\n/**\n * Returns a single list of all elements yielded from results of [transform] function being invoked on each element of original array.\n * \n * @sample samples.collections.Collections.Transformations.flatMap\n */\npublic inline fun CharArray.flatMap(transform: (Char) -> Iterable): List {\n return flatMapTo(ArrayList(), transform)\n}\n\n/**\n * Returns a single list of all elements yielded from results of [transform] function being invoked on each element of original array.\n * \n * @sample samples.collections.Collections.Transformations.flatMap\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapSequence\")\npublic inline fun Array.flatMap(transform: (T) -> Sequence): List {\n return flatMapTo(ArrayList(), transform)\n}\n\n/**\n * Returns a single list of all elements yielded from results of [transform] function being invoked on each element\n * and its index in the original array.\n * \n * @sample samples.collections.Collections.Transformations.flatMapIndexed\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapIndexedIterable\")\n@kotlin.internal.InlineOnly\npublic inline fun Array.flatMapIndexed(transform: (index: Int, T) -> Iterable): List {\n return flatMapIndexedTo(ArrayList(), transform)\n}\n\n/**\n * Returns a single list of all elements yielded from results of [transform] function being invoked on each element\n * and its index in the original array.\n * \n * @sample samples.collections.Collections.Transformations.flatMapIndexed\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapIndexedIterable\")\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.flatMapIndexed(transform: (index: Int, Byte) -> Iterable): List {\n return flatMapIndexedTo(ArrayList(), transform)\n}\n\n/**\n * Returns a single list of all elements yielded from results of [transform] function being invoked on each element\n * and its index in the original array.\n * \n * @sample samples.collections.Collections.Transformations.flatMapIndexed\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapIndexedIterable\")\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.flatMapIndexed(transform: (index: Int, Short) -> Iterable): List {\n return flatMapIndexedTo(ArrayList(), transform)\n}\n\n/**\n * Returns a single list of all elements yielded from results of [transform] function being invoked on each element\n * and its index in the original array.\n * \n * @sample samples.collections.Collections.Transformations.flatMapIndexed\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapIndexedIterable\")\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.flatMapIndexed(transform: (index: Int, Int) -> Iterable): List {\n return flatMapIndexedTo(ArrayList(), transform)\n}\n\n/**\n * Returns a single list of all elements yielded from results of [transform] function being invoked on each element\n * and its index in the original array.\n * \n * @sample samples.collections.Collections.Transformations.flatMapIndexed\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapIndexedIterable\")\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.flatMapIndexed(transform: (index: Int, Long) -> Iterable): List {\n return flatMapIndexedTo(ArrayList(), transform)\n}\n\n/**\n * Returns a single list of all elements yielded from results of [transform] function being invoked on each element\n * and its index in the original array.\n * \n * @sample samples.collections.Collections.Transformations.flatMapIndexed\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapIndexedIterable\")\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.flatMapIndexed(transform: (index: Int, Float) -> Iterable): List {\n return flatMapIndexedTo(ArrayList(), transform)\n}\n\n/**\n * Returns a single list of all elements yielded from results of [transform] function being invoked on each element\n * and its index in the original array.\n * \n * @sample samples.collections.Collections.Transformations.flatMapIndexed\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapIndexedIterable\")\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.flatMapIndexed(transform: (index: Int, Double) -> Iterable): List {\n return flatMapIndexedTo(ArrayList(), transform)\n}\n\n/**\n * Returns a single list of all elements yielded from results of [transform] function being invoked on each element\n * and its index in the original array.\n * \n * @sample samples.collections.Collections.Transformations.flatMapIndexed\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapIndexedIterable\")\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.flatMapIndexed(transform: (index: Int, Boolean) -> Iterable): List {\n return flatMapIndexedTo(ArrayList(), transform)\n}\n\n/**\n * Returns a single list of all elements yielded from results of [transform] function being invoked on each element\n * and its index in the original array.\n * \n * @sample samples.collections.Collections.Transformations.flatMapIndexed\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapIndexedIterable\")\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.flatMapIndexed(transform: (index: Int, Char) -> Iterable): List {\n return flatMapIndexedTo(ArrayList(), transform)\n}\n\n/**\n * Returns a single list of all elements yielded from results of [transform] function being invoked on each element\n * and its index in the original array.\n * \n * @sample samples.collections.Collections.Transformations.flatMapIndexed\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapIndexedSequence\")\n@kotlin.internal.InlineOnly\npublic inline fun Array.flatMapIndexed(transform: (index: Int, T) -> Sequence): List {\n return flatMapIndexedTo(ArrayList(), transform)\n}\n\n/**\n * Appends all elements yielded from results of [transform] function being invoked on each element\n * and its index in the original array, to the given [destination].\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapIndexedIterableTo\")\n@kotlin.internal.InlineOnly\npublic inline fun > Array.flatMapIndexedTo(destination: C, transform: (index: Int, T) -> Iterable): C {\n var index = 0\n for (element in this) {\n val list = transform(index++, element)\n destination.addAll(list)\n }\n return destination\n}\n\n/**\n * Appends all elements yielded from results of [transform] function being invoked on each element\n * and its index in the original array, to the given [destination].\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapIndexedIterableTo\")\n@kotlin.internal.InlineOnly\npublic inline fun > ByteArray.flatMapIndexedTo(destination: C, transform: (index: Int, Byte) -> Iterable): C {\n var index = 0\n for (element in this) {\n val list = transform(index++, element)\n destination.addAll(list)\n }\n return destination\n}\n\n/**\n * Appends all elements yielded from results of [transform] function being invoked on each element\n * and its index in the original array, to the given [destination].\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapIndexedIterableTo\")\n@kotlin.internal.InlineOnly\npublic inline fun > ShortArray.flatMapIndexedTo(destination: C, transform: (index: Int, Short) -> Iterable): C {\n var index = 0\n for (element in this) {\n val list = transform(index++, element)\n destination.addAll(list)\n }\n return destination\n}\n\n/**\n * Appends all elements yielded from results of [transform] function being invoked on each element\n * and its index in the original array, to the given [destination].\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapIndexedIterableTo\")\n@kotlin.internal.InlineOnly\npublic inline fun > IntArray.flatMapIndexedTo(destination: C, transform: (index: Int, Int) -> Iterable): C {\n var index = 0\n for (element in this) {\n val list = transform(index++, element)\n destination.addAll(list)\n }\n return destination\n}\n\n/**\n * Appends all elements yielded from results of [transform] function being invoked on each element\n * and its index in the original array, to the given [destination].\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapIndexedIterableTo\")\n@kotlin.internal.InlineOnly\npublic inline fun > LongArray.flatMapIndexedTo(destination: C, transform: (index: Int, Long) -> Iterable): C {\n var index = 0\n for (element in this) {\n val list = transform(index++, element)\n destination.addAll(list)\n }\n return destination\n}\n\n/**\n * Appends all elements yielded from results of [transform] function being invoked on each element\n * and its index in the original array, to the given [destination].\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapIndexedIterableTo\")\n@kotlin.internal.InlineOnly\npublic inline fun > FloatArray.flatMapIndexedTo(destination: C, transform: (index: Int, Float) -> Iterable): C {\n var index = 0\n for (element in this) {\n val list = transform(index++, element)\n destination.addAll(list)\n }\n return destination\n}\n\n/**\n * Appends all elements yielded from results of [transform] function being invoked on each element\n * and its index in the original array, to the given [destination].\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapIndexedIterableTo\")\n@kotlin.internal.InlineOnly\npublic inline fun > DoubleArray.flatMapIndexedTo(destination: C, transform: (index: Int, Double) -> Iterable): C {\n var index = 0\n for (element in this) {\n val list = transform(index++, element)\n destination.addAll(list)\n }\n return destination\n}\n\n/**\n * Appends all elements yielded from results of [transform] function being invoked on each element\n * and its index in the original array, to the given [destination].\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapIndexedIterableTo\")\n@kotlin.internal.InlineOnly\npublic inline fun > BooleanArray.flatMapIndexedTo(destination: C, transform: (index: Int, Boolean) -> Iterable): C {\n var index = 0\n for (element in this) {\n val list = transform(index++, element)\n destination.addAll(list)\n }\n return destination\n}\n\n/**\n * Appends all elements yielded from results of [transform] function being invoked on each element\n * and its index in the original array, to the given [destination].\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapIndexedIterableTo\")\n@kotlin.internal.InlineOnly\npublic inline fun > CharArray.flatMapIndexedTo(destination: C, transform: (index: Int, Char) -> Iterable): C {\n var index = 0\n for (element in this) {\n val list = transform(index++, element)\n destination.addAll(list)\n }\n return destination\n}\n\n/**\n * Appends all elements yielded from results of [transform] function being invoked on each element\n * and its index in the original array, to the given [destination].\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapIndexedSequenceTo\")\n@kotlin.internal.InlineOnly\npublic inline fun > Array.flatMapIndexedTo(destination: C, transform: (index: Int, T) -> Sequence): C {\n var index = 0\n for (element in this) {\n val list = transform(index++, element)\n destination.addAll(list)\n }\n return destination\n}\n\n/**\n * Appends all elements yielded from results of [transform] function being invoked on each element of original array, to the given [destination].\n */\npublic inline fun > Array.flatMapTo(destination: C, transform: (T) -> Iterable): C {\n for (element in this) {\n val list = transform(element)\n destination.addAll(list)\n }\n return destination\n}\n\n/**\n * Appends all elements yielded from results of [transform] function being invoked on each element of original array, to the given [destination].\n */\npublic inline fun > ByteArray.flatMapTo(destination: C, transform: (Byte) -> Iterable): C {\n for (element in this) {\n val list = transform(element)\n destination.addAll(list)\n }\n return destination\n}\n\n/**\n * Appends all elements yielded from results of [transform] function being invoked on each element of original array, to the given [destination].\n */\npublic inline fun > ShortArray.flatMapTo(destination: C, transform: (Short) -> Iterable): C {\n for (element in this) {\n val list = transform(element)\n destination.addAll(list)\n }\n return destination\n}\n\n/**\n * Appends all elements yielded from results of [transform] function being invoked on each element of original array, to the given [destination].\n */\npublic inline fun > IntArray.flatMapTo(destination: C, transform: (Int) -> Iterable): C {\n for (element in this) {\n val list = transform(element)\n destination.addAll(list)\n }\n return destination\n}\n\n/**\n * Appends all elements yielded from results of [transform] function being invoked on each element of original array, to the given [destination].\n */\npublic inline fun > LongArray.flatMapTo(destination: C, transform: (Long) -> Iterable): C {\n for (element in this) {\n val list = transform(element)\n destination.addAll(list)\n }\n return destination\n}\n\n/**\n * Appends all elements yielded from results of [transform] function being invoked on each element of original array, to the given [destination].\n */\npublic inline fun > FloatArray.flatMapTo(destination: C, transform: (Float) -> Iterable): C {\n for (element in this) {\n val list = transform(element)\n destination.addAll(list)\n }\n return destination\n}\n\n/**\n * Appends all elements yielded from results of [transform] function being invoked on each element of original array, to the given [destination].\n */\npublic inline fun > DoubleArray.flatMapTo(destination: C, transform: (Double) -> Iterable): C {\n for (element in this) {\n val list = transform(element)\n destination.addAll(list)\n }\n return destination\n}\n\n/**\n * Appends all elements yielded from results of [transform] function being invoked on each element of original array, to the given [destination].\n */\npublic inline fun > BooleanArray.flatMapTo(destination: C, transform: (Boolean) -> Iterable): C {\n for (element in this) {\n val list = transform(element)\n destination.addAll(list)\n }\n return destination\n}\n\n/**\n * Appends all elements yielded from results of [transform] function being invoked on each element of original array, to the given [destination].\n */\npublic inline fun > CharArray.flatMapTo(destination: C, transform: (Char) -> Iterable): C {\n for (element in this) {\n val list = transform(element)\n destination.addAll(list)\n }\n return destination\n}\n\n/**\n * Appends all elements yielded from results of [transform] function being invoked on each element of original array, to the given [destination].\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapSequenceTo\")\npublic inline fun > Array.flatMapTo(destination: C, transform: (T) -> Sequence): C {\n for (element in this) {\n val list = transform(element)\n destination.addAll(list)\n }\n return destination\n}\n\n/**\n * Groups elements of the original array by the key returned by the given [keySelector] function\n * applied to each element and returns a map where each group key is associated with a list of corresponding elements.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original array.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\npublic inline fun Array.groupBy(keySelector: (T) -> K): Map> {\n return groupByTo(LinkedHashMap>(), keySelector)\n}\n\n/**\n * Groups elements of the original array by the key returned by the given [keySelector] function\n * applied to each element and returns a map where each group key is associated with a list of corresponding elements.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original array.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\npublic inline fun ByteArray.groupBy(keySelector: (Byte) -> K): Map> {\n return groupByTo(LinkedHashMap>(), keySelector)\n}\n\n/**\n * Groups elements of the original array by the key returned by the given [keySelector] function\n * applied to each element and returns a map where each group key is associated with a list of corresponding elements.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original array.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\npublic inline fun ShortArray.groupBy(keySelector: (Short) -> K): Map> {\n return groupByTo(LinkedHashMap>(), keySelector)\n}\n\n/**\n * Groups elements of the original array by the key returned by the given [keySelector] function\n * applied to each element and returns a map where each group key is associated with a list of corresponding elements.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original array.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\npublic inline fun IntArray.groupBy(keySelector: (Int) -> K): Map> {\n return groupByTo(LinkedHashMap>(), keySelector)\n}\n\n/**\n * Groups elements of the original array by the key returned by the given [keySelector] function\n * applied to each element and returns a map where each group key is associated with a list of corresponding elements.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original array.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\npublic inline fun LongArray.groupBy(keySelector: (Long) -> K): Map> {\n return groupByTo(LinkedHashMap>(), keySelector)\n}\n\n/**\n * Groups elements of the original array by the key returned by the given [keySelector] function\n * applied to each element and returns a map where each group key is associated with a list of corresponding elements.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original array.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\npublic inline fun FloatArray.groupBy(keySelector: (Float) -> K): Map> {\n return groupByTo(LinkedHashMap>(), keySelector)\n}\n\n/**\n * Groups elements of the original array by the key returned by the given [keySelector] function\n * applied to each element and returns a map where each group key is associated with a list of corresponding elements.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original array.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\npublic inline fun DoubleArray.groupBy(keySelector: (Double) -> K): Map> {\n return groupByTo(LinkedHashMap>(), keySelector)\n}\n\n/**\n * Groups elements of the original array by the key returned by the given [keySelector] function\n * applied to each element and returns a map where each group key is associated with a list of corresponding elements.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original array.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\npublic inline fun BooleanArray.groupBy(keySelector: (Boolean) -> K): Map> {\n return groupByTo(LinkedHashMap>(), keySelector)\n}\n\n/**\n * Groups elements of the original array by the key returned by the given [keySelector] function\n * applied to each element and returns a map where each group key is associated with a list of corresponding elements.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original array.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\npublic inline fun CharArray.groupBy(keySelector: (Char) -> K): Map> {\n return groupByTo(LinkedHashMap>(), keySelector)\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each element of the original array\n * by the key returned by the given [keySelector] function applied to the element\n * and returns a map where each group key is associated with a list of corresponding values.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original array.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\npublic inline fun Array.groupBy(keySelector: (T) -> K, valueTransform: (T) -> V): Map> {\n return groupByTo(LinkedHashMap>(), keySelector, valueTransform)\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each element of the original array\n * by the key returned by the given [keySelector] function applied to the element\n * and returns a map where each group key is associated with a list of corresponding values.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original array.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\npublic inline fun ByteArray.groupBy(keySelector: (Byte) -> K, valueTransform: (Byte) -> V): Map> {\n return groupByTo(LinkedHashMap>(), keySelector, valueTransform)\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each element of the original array\n * by the key returned by the given [keySelector] function applied to the element\n * and returns a map where each group key is associated with a list of corresponding values.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original array.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\npublic inline fun ShortArray.groupBy(keySelector: (Short) -> K, valueTransform: (Short) -> V): Map> {\n return groupByTo(LinkedHashMap>(), keySelector, valueTransform)\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each element of the original array\n * by the key returned by the given [keySelector] function applied to the element\n * and returns a map where each group key is associated with a list of corresponding values.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original array.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\npublic inline fun IntArray.groupBy(keySelector: (Int) -> K, valueTransform: (Int) -> V): Map> {\n return groupByTo(LinkedHashMap>(), keySelector, valueTransform)\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each element of the original array\n * by the key returned by the given [keySelector] function applied to the element\n * and returns a map where each group key is associated with a list of corresponding values.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original array.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\npublic inline fun LongArray.groupBy(keySelector: (Long) -> K, valueTransform: (Long) -> V): Map> {\n return groupByTo(LinkedHashMap>(), keySelector, valueTransform)\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each element of the original array\n * by the key returned by the given [keySelector] function applied to the element\n * and returns a map where each group key is associated with a list of corresponding values.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original array.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\npublic inline fun FloatArray.groupBy(keySelector: (Float) -> K, valueTransform: (Float) -> V): Map> {\n return groupByTo(LinkedHashMap>(), keySelector, valueTransform)\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each element of the original array\n * by the key returned by the given [keySelector] function applied to the element\n * and returns a map where each group key is associated with a list of corresponding values.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original array.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\npublic inline fun DoubleArray.groupBy(keySelector: (Double) -> K, valueTransform: (Double) -> V): Map> {\n return groupByTo(LinkedHashMap>(), keySelector, valueTransform)\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each element of the original array\n * by the key returned by the given [keySelector] function applied to the element\n * and returns a map where each group key is associated with a list of corresponding values.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original array.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\npublic inline fun BooleanArray.groupBy(keySelector: (Boolean) -> K, valueTransform: (Boolean) -> V): Map> {\n return groupByTo(LinkedHashMap>(), keySelector, valueTransform)\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each element of the original array\n * by the key returned by the given [keySelector] function applied to the element\n * and returns a map where each group key is associated with a list of corresponding values.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original array.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\npublic inline fun CharArray.groupBy(keySelector: (Char) -> K, valueTransform: (Char) -> V): Map> {\n return groupByTo(LinkedHashMap>(), keySelector, valueTransform)\n}\n\n/**\n * Groups elements of the original array by the key returned by the given [keySelector] function\n * applied to each element and puts to the [destination] map each group key associated with a list of corresponding elements.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\npublic inline fun >> Array.groupByTo(destination: M, keySelector: (T) -> K): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(element)\n }\n return destination\n}\n\n/**\n * Groups elements of the original array by the key returned by the given [keySelector] function\n * applied to each element and puts to the [destination] map each group key associated with a list of corresponding elements.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\npublic inline fun >> ByteArray.groupByTo(destination: M, keySelector: (Byte) -> K): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(element)\n }\n return destination\n}\n\n/**\n * Groups elements of the original array by the key returned by the given [keySelector] function\n * applied to each element and puts to the [destination] map each group key associated with a list of corresponding elements.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\npublic inline fun >> ShortArray.groupByTo(destination: M, keySelector: (Short) -> K): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(element)\n }\n return destination\n}\n\n/**\n * Groups elements of the original array by the key returned by the given [keySelector] function\n * applied to each element and puts to the [destination] map each group key associated with a list of corresponding elements.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\npublic inline fun >> IntArray.groupByTo(destination: M, keySelector: (Int) -> K): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(element)\n }\n return destination\n}\n\n/**\n * Groups elements of the original array by the key returned by the given [keySelector] function\n * applied to each element and puts to the [destination] map each group key associated with a list of corresponding elements.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\npublic inline fun >> LongArray.groupByTo(destination: M, keySelector: (Long) -> K): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(element)\n }\n return destination\n}\n\n/**\n * Groups elements of the original array by the key returned by the given [keySelector] function\n * applied to each element and puts to the [destination] map each group key associated with a list of corresponding elements.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\npublic inline fun >> FloatArray.groupByTo(destination: M, keySelector: (Float) -> K): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(element)\n }\n return destination\n}\n\n/**\n * Groups elements of the original array by the key returned by the given [keySelector] function\n * applied to each element and puts to the [destination] map each group key associated with a list of corresponding elements.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\npublic inline fun >> DoubleArray.groupByTo(destination: M, keySelector: (Double) -> K): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(element)\n }\n return destination\n}\n\n/**\n * Groups elements of the original array by the key returned by the given [keySelector] function\n * applied to each element and puts to the [destination] map each group key associated with a list of corresponding elements.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\npublic inline fun >> BooleanArray.groupByTo(destination: M, keySelector: (Boolean) -> K): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(element)\n }\n return destination\n}\n\n/**\n * Groups elements of the original array by the key returned by the given [keySelector] function\n * applied to each element and puts to the [destination] map each group key associated with a list of corresponding elements.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\npublic inline fun >> CharArray.groupByTo(destination: M, keySelector: (Char) -> K): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(element)\n }\n return destination\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each element of the original array\n * by the key returned by the given [keySelector] function applied to the element\n * and puts to the [destination] map each group key associated with a list of corresponding values.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\npublic inline fun >> Array.groupByTo(destination: M, keySelector: (T) -> K, valueTransform: (T) -> V): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(valueTransform(element))\n }\n return destination\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each element of the original array\n * by the key returned by the given [keySelector] function applied to the element\n * and puts to the [destination] map each group key associated with a list of corresponding values.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\npublic inline fun >> ByteArray.groupByTo(destination: M, keySelector: (Byte) -> K, valueTransform: (Byte) -> V): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(valueTransform(element))\n }\n return destination\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each element of the original array\n * by the key returned by the given [keySelector] function applied to the element\n * and puts to the [destination] map each group key associated with a list of corresponding values.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\npublic inline fun >> ShortArray.groupByTo(destination: M, keySelector: (Short) -> K, valueTransform: (Short) -> V): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(valueTransform(element))\n }\n return destination\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each element of the original array\n * by the key returned by the given [keySelector] function applied to the element\n * and puts to the [destination] map each group key associated with a list of corresponding values.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\npublic inline fun >> IntArray.groupByTo(destination: M, keySelector: (Int) -> K, valueTransform: (Int) -> V): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(valueTransform(element))\n }\n return destination\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each element of the original array\n * by the key returned by the given [keySelector] function applied to the element\n * and puts to the [destination] map each group key associated with a list of corresponding values.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\npublic inline fun >> LongArray.groupByTo(destination: M, keySelector: (Long) -> K, valueTransform: (Long) -> V): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(valueTransform(element))\n }\n return destination\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each element of the original array\n * by the key returned by the given [keySelector] function applied to the element\n * and puts to the [destination] map each group key associated with a list of corresponding values.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\npublic inline fun >> FloatArray.groupByTo(destination: M, keySelector: (Float) -> K, valueTransform: (Float) -> V): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(valueTransform(element))\n }\n return destination\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each element of the original array\n * by the key returned by the given [keySelector] function applied to the element\n * and puts to the [destination] map each group key associated with a list of corresponding values.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\npublic inline fun >> DoubleArray.groupByTo(destination: M, keySelector: (Double) -> K, valueTransform: (Double) -> V): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(valueTransform(element))\n }\n return destination\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each element of the original array\n * by the key returned by the given [keySelector] function applied to the element\n * and puts to the [destination] map each group key associated with a list of corresponding values.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\npublic inline fun >> BooleanArray.groupByTo(destination: M, keySelector: (Boolean) -> K, valueTransform: (Boolean) -> V): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(valueTransform(element))\n }\n return destination\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each element of the original array\n * by the key returned by the given [keySelector] function applied to the element\n * and puts to the [destination] map each group key associated with a list of corresponding values.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\npublic inline fun >> CharArray.groupByTo(destination: M, keySelector: (Char) -> K, valueTransform: (Char) -> V): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(valueTransform(element))\n }\n return destination\n}\n\n/**\n * Creates a [Grouping] source from an array to be used later with one of group-and-fold operations\n * using the specified [keySelector] function to extract a key from each element.\n * \n * @sample samples.collections.Grouping.groupingByEachCount\n */\n@SinceKotlin(\"1.1\")\npublic inline fun Array.groupingBy(crossinline keySelector: (T) -> K): Grouping {\n return object : Grouping {\n override fun sourceIterator(): Iterator = this@groupingBy.iterator()\n override fun keyOf(element: T): K = keySelector(element)\n }\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each element in the original array.\n * \n * @sample samples.collections.Collections.Transformations.map\n */\npublic inline fun Array.map(transform: (T) -> R): List {\n return mapTo(ArrayList(size), transform)\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each element in the original array.\n * \n * @sample samples.collections.Collections.Transformations.map\n */\npublic inline fun ByteArray.map(transform: (Byte) -> R): List {\n return mapTo(ArrayList(size), transform)\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each element in the original array.\n * \n * @sample samples.collections.Collections.Transformations.map\n */\npublic inline fun ShortArray.map(transform: (Short) -> R): List {\n return mapTo(ArrayList(size), transform)\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each element in the original array.\n * \n * @sample samples.collections.Collections.Transformations.map\n */\npublic inline fun IntArray.map(transform: (Int) -> R): List {\n return mapTo(ArrayList(size), transform)\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each element in the original array.\n * \n * @sample samples.collections.Collections.Transformations.map\n */\npublic inline fun LongArray.map(transform: (Long) -> R): List {\n return mapTo(ArrayList(size), transform)\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each element in the original array.\n * \n * @sample samples.collections.Collections.Transformations.map\n */\npublic inline fun FloatArray.map(transform: (Float) -> R): List {\n return mapTo(ArrayList(size), transform)\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each element in the original array.\n * \n * @sample samples.collections.Collections.Transformations.map\n */\npublic inline fun DoubleArray.map(transform: (Double) -> R): List {\n return mapTo(ArrayList(size), transform)\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each element in the original array.\n * \n * @sample samples.collections.Collections.Transformations.map\n */\npublic inline fun BooleanArray.map(transform: (Boolean) -> R): List {\n return mapTo(ArrayList(size), transform)\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each element in the original array.\n * \n * @sample samples.collections.Collections.Transformations.map\n */\npublic inline fun CharArray.map(transform: (Char) -> R): List {\n return mapTo(ArrayList(size), transform)\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each element and its index in the original array.\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun Array.mapIndexed(transform: (index: Int, T) -> R): List {\n return mapIndexedTo(ArrayList(size), transform)\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each element and its index in the original array.\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun ByteArray.mapIndexed(transform: (index: Int, Byte) -> R): List {\n return mapIndexedTo(ArrayList(size), transform)\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each element and its index in the original array.\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun ShortArray.mapIndexed(transform: (index: Int, Short) -> R): List {\n return mapIndexedTo(ArrayList(size), transform)\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each element and its index in the original array.\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun IntArray.mapIndexed(transform: (index: Int, Int) -> R): List {\n return mapIndexedTo(ArrayList(size), transform)\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each element and its index in the original array.\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun LongArray.mapIndexed(transform: (index: Int, Long) -> R): List {\n return mapIndexedTo(ArrayList(size), transform)\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each element and its index in the original array.\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun FloatArray.mapIndexed(transform: (index: Int, Float) -> R): List {\n return mapIndexedTo(ArrayList(size), transform)\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each element and its index in the original array.\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun DoubleArray.mapIndexed(transform: (index: Int, Double) -> R): List {\n return mapIndexedTo(ArrayList(size), transform)\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each element and its index in the original array.\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun BooleanArray.mapIndexed(transform: (index: Int, Boolean) -> R): List {\n return mapIndexedTo(ArrayList(size), transform)\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each element and its index in the original array.\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun CharArray.mapIndexed(transform: (index: Int, Char) -> R): List {\n return mapIndexedTo(ArrayList(size), transform)\n}\n\n/**\n * Returns a list containing only the non-null results of applying the given [transform] function\n * to each element and its index in the original array.\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun Array.mapIndexedNotNull(transform: (index: Int, T) -> R?): List {\n return mapIndexedNotNullTo(ArrayList(), transform)\n}\n\n/**\n * Applies the given [transform] function to each element and its index in the original array\n * and appends only the non-null results to the given [destination].\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun > Array.mapIndexedNotNullTo(destination: C, transform: (index: Int, T) -> R?): C {\n forEachIndexed { index, element -> transform(index, element)?.let { destination.add(it) } }\n return destination\n}\n\n/**\n * Applies the given [transform] function to each element and its index in the original array\n * and appends the results to the given [destination].\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun > Array.mapIndexedTo(destination: C, transform: (index: Int, T) -> R): C {\n var index = 0\n for (item in this)\n destination.add(transform(index++, item))\n return destination\n}\n\n/**\n * Applies the given [transform] function to each element and its index in the original array\n * and appends the results to the given [destination].\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun > ByteArray.mapIndexedTo(destination: C, transform: (index: Int, Byte) -> R): C {\n var index = 0\n for (item in this)\n destination.add(transform(index++, item))\n return destination\n}\n\n/**\n * Applies the given [transform] function to each element and its index in the original array\n * and appends the results to the given [destination].\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun > ShortArray.mapIndexedTo(destination: C, transform: (index: Int, Short) -> R): C {\n var index = 0\n for (item in this)\n destination.add(transform(index++, item))\n return destination\n}\n\n/**\n * Applies the given [transform] function to each element and its index in the original array\n * and appends the results to the given [destination].\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun > IntArray.mapIndexedTo(destination: C, transform: (index: Int, Int) -> R): C {\n var index = 0\n for (item in this)\n destination.add(transform(index++, item))\n return destination\n}\n\n/**\n * Applies the given [transform] function to each element and its index in the original array\n * and appends the results to the given [destination].\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun > LongArray.mapIndexedTo(destination: C, transform: (index: Int, Long) -> R): C {\n var index = 0\n for (item in this)\n destination.add(transform(index++, item))\n return destination\n}\n\n/**\n * Applies the given [transform] function to each element and its index in the original array\n * and appends the results to the given [destination].\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun > FloatArray.mapIndexedTo(destination: C, transform: (index: Int, Float) -> R): C {\n var index = 0\n for (item in this)\n destination.add(transform(index++, item))\n return destination\n}\n\n/**\n * Applies the given [transform] function to each element and its index in the original array\n * and appends the results to the given [destination].\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun > DoubleArray.mapIndexedTo(destination: C, transform: (index: Int, Double) -> R): C {\n var index = 0\n for (item in this)\n destination.add(transform(index++, item))\n return destination\n}\n\n/**\n * Applies the given [transform] function to each element and its index in the original array\n * and appends the results to the given [destination].\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun > BooleanArray.mapIndexedTo(destination: C, transform: (index: Int, Boolean) -> R): C {\n var index = 0\n for (item in this)\n destination.add(transform(index++, item))\n return destination\n}\n\n/**\n * Applies the given [transform] function to each element and its index in the original array\n * and appends the results to the given [destination].\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun > CharArray.mapIndexedTo(destination: C, transform: (index: Int, Char) -> R): C {\n var index = 0\n for (item in this)\n destination.add(transform(index++, item))\n return destination\n}\n\n/**\n * Returns a list containing only the non-null results of applying the given [transform] function\n * to each element in the original array.\n * \n * @sample samples.collections.Collections.Transformations.mapNotNull\n */\npublic inline fun Array.mapNotNull(transform: (T) -> R?): List {\n return mapNotNullTo(ArrayList(), transform)\n}\n\n/**\n * Applies the given [transform] function to each element in the original array\n * and appends only the non-null results to the given [destination].\n */\npublic inline fun > Array.mapNotNullTo(destination: C, transform: (T) -> R?): C {\n forEach { element -> transform(element)?.let { destination.add(it) } }\n return destination\n}\n\n/**\n * Applies the given [transform] function to each element of the original array\n * and appends the results to the given [destination].\n */\npublic inline fun > Array.mapTo(destination: C, transform: (T) -> R): C {\n for (item in this)\n destination.add(transform(item))\n return destination\n}\n\n/**\n * Applies the given [transform] function to each element of the original array\n * and appends the results to the given [destination].\n */\npublic inline fun > ByteArray.mapTo(destination: C, transform: (Byte) -> R): C {\n for (item in this)\n destination.add(transform(item))\n return destination\n}\n\n/**\n * Applies the given [transform] function to each element of the original array\n * and appends the results to the given [destination].\n */\npublic inline fun > ShortArray.mapTo(destination: C, transform: (Short) -> R): C {\n for (item in this)\n destination.add(transform(item))\n return destination\n}\n\n/**\n * Applies the given [transform] function to each element of the original array\n * and appends the results to the given [destination].\n */\npublic inline fun > IntArray.mapTo(destination: C, transform: (Int) -> R): C {\n for (item in this)\n destination.add(transform(item))\n return destination\n}\n\n/**\n * Applies the given [transform] function to each element of the original array\n * and appends the results to the given [destination].\n */\npublic inline fun > LongArray.mapTo(destination: C, transform: (Long) -> R): C {\n for (item in this)\n destination.add(transform(item))\n return destination\n}\n\n/**\n * Applies the given [transform] function to each element of the original array\n * and appends the results to the given [destination].\n */\npublic inline fun > FloatArray.mapTo(destination: C, transform: (Float) -> R): C {\n for (item in this)\n destination.add(transform(item))\n return destination\n}\n\n/**\n * Applies the given [transform] function to each element of the original array\n * and appends the results to the given [destination].\n */\npublic inline fun > DoubleArray.mapTo(destination: C, transform: (Double) -> R): C {\n for (item in this)\n destination.add(transform(item))\n return destination\n}\n\n/**\n * Applies the given [transform] function to each element of the original array\n * and appends the results to the given [destination].\n */\npublic inline fun > BooleanArray.mapTo(destination: C, transform: (Boolean) -> R): C {\n for (item in this)\n destination.add(transform(item))\n return destination\n}\n\n/**\n * Applies the given [transform] function to each element of the original array\n * and appends the results to the given [destination].\n */\npublic inline fun > CharArray.mapTo(destination: C, transform: (Char) -> R): C {\n for (item in this)\n destination.add(transform(item))\n return destination\n}\n\n/**\n * Returns a lazy [Iterable] that wraps each element of the original array\n * into an [IndexedValue] containing the index of that element and the element itself.\n */\npublic fun Array.withIndex(): Iterable> {\n return IndexingIterable { iterator() }\n}\n\n/**\n * Returns a lazy [Iterable] that wraps each element of the original array\n * into an [IndexedValue] containing the index of that element and the element itself.\n */\npublic fun ByteArray.withIndex(): Iterable> {\n return IndexingIterable { iterator() }\n}\n\n/**\n * Returns a lazy [Iterable] that wraps each element of the original array\n * into an [IndexedValue] containing the index of that element and the element itself.\n */\npublic fun ShortArray.withIndex(): Iterable> {\n return IndexingIterable { iterator() }\n}\n\n/**\n * Returns a lazy [Iterable] that wraps each element of the original array\n * into an [IndexedValue] containing the index of that element and the element itself.\n */\npublic fun IntArray.withIndex(): Iterable> {\n return IndexingIterable { iterator() }\n}\n\n/**\n * Returns a lazy [Iterable] that wraps each element of the original array\n * into an [IndexedValue] containing the index of that element and the element itself.\n */\npublic fun LongArray.withIndex(): Iterable> {\n return IndexingIterable { iterator() }\n}\n\n/**\n * Returns a lazy [Iterable] that wraps each element of the original array\n * into an [IndexedValue] containing the index of that element and the element itself.\n */\npublic fun FloatArray.withIndex(): Iterable> {\n return IndexingIterable { iterator() }\n}\n\n/**\n * Returns a lazy [Iterable] that wraps each element of the original array\n * into an [IndexedValue] containing the index of that element and the element itself.\n */\npublic fun DoubleArray.withIndex(): Iterable> {\n return IndexingIterable { iterator() }\n}\n\n/**\n * Returns a lazy [Iterable] that wraps each element of the original array\n * into an [IndexedValue] containing the index of that element and the element itself.\n */\npublic fun BooleanArray.withIndex(): Iterable> {\n return IndexingIterable { iterator() }\n}\n\n/**\n * Returns a lazy [Iterable] that wraps each element of the original array\n * into an [IndexedValue] containing the index of that element and the element itself.\n */\npublic fun CharArray.withIndex(): Iterable> {\n return IndexingIterable { iterator() }\n}\n\n/**\n * Returns a list containing only distinct elements from the given array.\n * \n * Among equal elements of the given array, only the first one will be present in the resulting list.\n * The elements in the resulting list are in the same order as they were in the source array.\n * \n * @sample samples.collections.Collections.Transformations.distinctAndDistinctBy\n */\npublic fun Array.distinct(): List {\n return this.toMutableSet().toList()\n}\n\n/**\n * Returns a list containing only distinct elements from the given array.\n * \n * The elements in the resulting list are in the same order as they were in the source array.\n * \n * @sample samples.collections.Collections.Transformations.distinctAndDistinctBy\n */\npublic fun ByteArray.distinct(): List {\n return this.toMutableSet().toList()\n}\n\n/**\n * Returns a list containing only distinct elements from the given array.\n * \n * The elements in the resulting list are in the same order as they were in the source array.\n * \n * @sample samples.collections.Collections.Transformations.distinctAndDistinctBy\n */\npublic fun ShortArray.distinct(): List {\n return this.toMutableSet().toList()\n}\n\n/**\n * Returns a list containing only distinct elements from the given array.\n * \n * The elements in the resulting list are in the same order as they were in the source array.\n * \n * @sample samples.collections.Collections.Transformations.distinctAndDistinctBy\n */\npublic fun IntArray.distinct(): List {\n return this.toMutableSet().toList()\n}\n\n/**\n * Returns a list containing only distinct elements from the given array.\n * \n * The elements in the resulting list are in the same order as they were in the source array.\n * \n * @sample samples.collections.Collections.Transformations.distinctAndDistinctBy\n */\npublic fun LongArray.distinct(): List {\n return this.toMutableSet().toList()\n}\n\n/**\n * Returns a list containing only distinct elements from the given array.\n * \n * The elements in the resulting list are in the same order as they were in the source array.\n * \n * @sample samples.collections.Collections.Transformations.distinctAndDistinctBy\n */\npublic fun FloatArray.distinct(): List {\n return this.toMutableSet().toList()\n}\n\n/**\n * Returns a list containing only distinct elements from the given array.\n * \n * The elements in the resulting list are in the same order as they were in the source array.\n * \n * @sample samples.collections.Collections.Transformations.distinctAndDistinctBy\n */\npublic fun DoubleArray.distinct(): List {\n return this.toMutableSet().toList()\n}\n\n/**\n * Returns a list containing only distinct elements from the given array.\n * \n * The elements in the resulting list are in the same order as they were in the source array.\n * \n * @sample samples.collections.Collections.Transformations.distinctAndDistinctBy\n */\npublic fun BooleanArray.distinct(): List {\n return this.toMutableSet().toList()\n}\n\n/**\n * Returns a list containing only distinct elements from the given array.\n * \n * The elements in the resulting list are in the same order as they were in the source array.\n * \n * @sample samples.collections.Collections.Transformations.distinctAndDistinctBy\n */\npublic fun CharArray.distinct(): List {\n return this.toMutableSet().toList()\n}\n\n/**\n * Returns a list containing only elements from the given array\n * having distinct keys returned by the given [selector] function.\n * \n * Among elements of the given array with equal keys, only the first one will be present in the resulting list.\n * The elements in the resulting list are in the same order as they were in the source array.\n * \n * @sample samples.collections.Collections.Transformations.distinctAndDistinctBy\n */\npublic inline fun Array.distinctBy(selector: (T) -> K): List {\n val set = HashSet()\n val list = ArrayList()\n for (e in this) {\n val key = selector(e)\n if (set.add(key))\n list.add(e)\n }\n return list\n}\n\n/**\n * Returns a list containing only elements from the given array\n * having distinct keys returned by the given [selector] function.\n * \n * The elements in the resulting list are in the same order as they were in the source array.\n * \n * @sample samples.collections.Collections.Transformations.distinctAndDistinctBy\n */\npublic inline fun ByteArray.distinctBy(selector: (Byte) -> K): List {\n val set = HashSet()\n val list = ArrayList()\n for (e in this) {\n val key = selector(e)\n if (set.add(key))\n list.add(e)\n }\n return list\n}\n\n/**\n * Returns a list containing only elements from the given array\n * having distinct keys returned by the given [selector] function.\n * \n * The elements in the resulting list are in the same order as they were in the source array.\n * \n * @sample samples.collections.Collections.Transformations.distinctAndDistinctBy\n */\npublic inline fun ShortArray.distinctBy(selector: (Short) -> K): List {\n val set = HashSet()\n val list = ArrayList()\n for (e in this) {\n val key = selector(e)\n if (set.add(key))\n list.add(e)\n }\n return list\n}\n\n/**\n * Returns a list containing only elements from the given array\n * having distinct keys returned by the given [selector] function.\n * \n * The elements in the resulting list are in the same order as they were in the source array.\n * \n * @sample samples.collections.Collections.Transformations.distinctAndDistinctBy\n */\npublic inline fun IntArray.distinctBy(selector: (Int) -> K): List {\n val set = HashSet()\n val list = ArrayList()\n for (e in this) {\n val key = selector(e)\n if (set.add(key))\n list.add(e)\n }\n return list\n}\n\n/**\n * Returns a list containing only elements from the given array\n * having distinct keys returned by the given [selector] function.\n * \n * The elements in the resulting list are in the same order as they were in the source array.\n * \n * @sample samples.collections.Collections.Transformations.distinctAndDistinctBy\n */\npublic inline fun LongArray.distinctBy(selector: (Long) -> K): List {\n val set = HashSet()\n val list = ArrayList()\n for (e in this) {\n val key = selector(e)\n if (set.add(key))\n list.add(e)\n }\n return list\n}\n\n/**\n * Returns a list containing only elements from the given array\n * having distinct keys returned by the given [selector] function.\n * \n * The elements in the resulting list are in the same order as they were in the source array.\n * \n * @sample samples.collections.Collections.Transformations.distinctAndDistinctBy\n */\npublic inline fun FloatArray.distinctBy(selector: (Float) -> K): List {\n val set = HashSet()\n val list = ArrayList()\n for (e in this) {\n val key = selector(e)\n if (set.add(key))\n list.add(e)\n }\n return list\n}\n\n/**\n * Returns a list containing only elements from the given array\n * having distinct keys returned by the given [selector] function.\n * \n * The elements in the resulting list are in the same order as they were in the source array.\n * \n * @sample samples.collections.Collections.Transformations.distinctAndDistinctBy\n */\npublic inline fun DoubleArray.distinctBy(selector: (Double) -> K): List {\n val set = HashSet()\n val list = ArrayList()\n for (e in this) {\n val key = selector(e)\n if (set.add(key))\n list.add(e)\n }\n return list\n}\n\n/**\n * Returns a list containing only elements from the given array\n * having distinct keys returned by the given [selector] function.\n * \n * The elements in the resulting list are in the same order as they were in the source array.\n * \n * @sample samples.collections.Collections.Transformations.distinctAndDistinctBy\n */\npublic inline fun BooleanArray.distinctBy(selector: (Boolean) -> K): List {\n val set = HashSet()\n val list = ArrayList()\n for (e in this) {\n val key = selector(e)\n if (set.add(key))\n list.add(e)\n }\n return list\n}\n\n/**\n * Returns a list containing only elements from the given array\n * having distinct keys returned by the given [selector] function.\n * \n * The elements in the resulting list are in the same order as they were in the source array.\n * \n * @sample samples.collections.Collections.Transformations.distinctAndDistinctBy\n */\npublic inline fun CharArray.distinctBy(selector: (Char) -> K): List {\n val set = HashSet()\n val list = ArrayList()\n for (e in this) {\n val key = selector(e)\n if (set.add(key))\n list.add(e)\n }\n return list\n}\n\n/**\n * Returns a set containing all elements that are contained by both this array and the specified collection.\n * \n * The returned set preserves the element iteration order of the original array.\n * \n * To get a set containing all elements that are contained at least in one of these collections use [union].\n */\npublic infix fun Array.intersect(other: Iterable): Set {\n val set = this.toMutableSet()\n set.retainAll(other)\n return set\n}\n\n/**\n * Returns a set containing all elements that are contained by both this array and the specified collection.\n * \n * The returned set preserves the element iteration order of the original array.\n * \n * To get a set containing all elements that are contained at least in one of these collections use [union].\n */\npublic infix fun ByteArray.intersect(other: Iterable): Set {\n val set = this.toMutableSet()\n set.retainAll(other)\n return set\n}\n\n/**\n * Returns a set containing all elements that are contained by both this array and the specified collection.\n * \n * The returned set preserves the element iteration order of the original array.\n * \n * To get a set containing all elements that are contained at least in one of these collections use [union].\n */\npublic infix fun ShortArray.intersect(other: Iterable): Set {\n val set = this.toMutableSet()\n set.retainAll(other)\n return set\n}\n\n/**\n * Returns a set containing all elements that are contained by both this array and the specified collection.\n * \n * The returned set preserves the element iteration order of the original array.\n * \n * To get a set containing all elements that are contained at least in one of these collections use [union].\n */\npublic infix fun IntArray.intersect(other: Iterable): Set {\n val set = this.toMutableSet()\n set.retainAll(other)\n return set\n}\n\n/**\n * Returns a set containing all elements that are contained by both this array and the specified collection.\n * \n * The returned set preserves the element iteration order of the original array.\n * \n * To get a set containing all elements that are contained at least in one of these collections use [union].\n */\npublic infix fun LongArray.intersect(other: Iterable): Set {\n val set = this.toMutableSet()\n set.retainAll(other)\n return set\n}\n\n/**\n * Returns a set containing all elements that are contained by both this array and the specified collection.\n * \n * The returned set preserves the element iteration order of the original array.\n * \n * To get a set containing all elements that are contained at least in one of these collections use [union].\n */\npublic infix fun FloatArray.intersect(other: Iterable): Set {\n val set = this.toMutableSet()\n set.retainAll(other)\n return set\n}\n\n/**\n * Returns a set containing all elements that are contained by both this array and the specified collection.\n * \n * The returned set preserves the element iteration order of the original array.\n * \n * To get a set containing all elements that are contained at least in one of these collections use [union].\n */\npublic infix fun DoubleArray.intersect(other: Iterable): Set {\n val set = this.toMutableSet()\n set.retainAll(other)\n return set\n}\n\n/**\n * Returns a set containing all elements that are contained by both this array and the specified collection.\n * \n * The returned set preserves the element iteration order of the original array.\n * \n * To get a set containing all elements that are contained at least in one of these collections use [union].\n */\npublic infix fun BooleanArray.intersect(other: Iterable): Set {\n val set = this.toMutableSet()\n set.retainAll(other)\n return set\n}\n\n/**\n * Returns a set containing all elements that are contained by both this array and the specified collection.\n * \n * The returned set preserves the element iteration order of the original array.\n * \n * To get a set containing all elements that are contained at least in one of these collections use [union].\n */\npublic infix fun CharArray.intersect(other: Iterable): Set {\n val set = this.toMutableSet()\n set.retainAll(other)\n return set\n}\n\n/**\n * Returns a set containing all elements that are contained by this array and not contained by the specified collection.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic infix fun Array.subtract(other: Iterable): Set {\n val set = this.toMutableSet()\n set.removeAll(other)\n return set\n}\n\n/**\n * Returns a set containing all elements that are contained by this array and not contained by the specified collection.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic infix fun ByteArray.subtract(other: Iterable): Set {\n val set = this.toMutableSet()\n set.removeAll(other)\n return set\n}\n\n/**\n * Returns a set containing all elements that are contained by this array and not contained by the specified collection.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic infix fun ShortArray.subtract(other: Iterable): Set {\n val set = this.toMutableSet()\n set.removeAll(other)\n return set\n}\n\n/**\n * Returns a set containing all elements that are contained by this array and not contained by the specified collection.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic infix fun IntArray.subtract(other: Iterable): Set {\n val set = this.toMutableSet()\n set.removeAll(other)\n return set\n}\n\n/**\n * Returns a set containing all elements that are contained by this array and not contained by the specified collection.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic infix fun LongArray.subtract(other: Iterable): Set {\n val set = this.toMutableSet()\n set.removeAll(other)\n return set\n}\n\n/**\n * Returns a set containing all elements that are contained by this array and not contained by the specified collection.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic infix fun FloatArray.subtract(other: Iterable): Set {\n val set = this.toMutableSet()\n set.removeAll(other)\n return set\n}\n\n/**\n * Returns a set containing all elements that are contained by this array and not contained by the specified collection.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic infix fun DoubleArray.subtract(other: Iterable): Set {\n val set = this.toMutableSet()\n set.removeAll(other)\n return set\n}\n\n/**\n * Returns a set containing all elements that are contained by this array and not contained by the specified collection.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic infix fun BooleanArray.subtract(other: Iterable): Set {\n val set = this.toMutableSet()\n set.removeAll(other)\n return set\n}\n\n/**\n * Returns a set containing all elements that are contained by this array and not contained by the specified collection.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic infix fun CharArray.subtract(other: Iterable): Set {\n val set = this.toMutableSet()\n set.removeAll(other)\n return set\n}\n\n/**\n * Returns a new [MutableSet] containing all distinct elements from the given array.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic fun Array.toMutableSet(): MutableSet {\n return toCollection(LinkedHashSet(mapCapacity(size)))\n}\n\n/**\n * Returns a new [MutableSet] containing all distinct elements from the given array.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic fun ByteArray.toMutableSet(): MutableSet {\n return toCollection(LinkedHashSet(mapCapacity(size)))\n}\n\n/**\n * Returns a new [MutableSet] containing all distinct elements from the given array.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic fun ShortArray.toMutableSet(): MutableSet {\n return toCollection(LinkedHashSet(mapCapacity(size)))\n}\n\n/**\n * Returns a new [MutableSet] containing all distinct elements from the given array.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic fun IntArray.toMutableSet(): MutableSet {\n return toCollection(LinkedHashSet(mapCapacity(size)))\n}\n\n/**\n * Returns a new [MutableSet] containing all distinct elements from the given array.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic fun LongArray.toMutableSet(): MutableSet {\n return toCollection(LinkedHashSet(mapCapacity(size)))\n}\n\n/**\n * Returns a new [MutableSet] containing all distinct elements from the given array.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic fun FloatArray.toMutableSet(): MutableSet {\n return toCollection(LinkedHashSet(mapCapacity(size)))\n}\n\n/**\n * Returns a new [MutableSet] containing all distinct elements from the given array.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic fun DoubleArray.toMutableSet(): MutableSet {\n return toCollection(LinkedHashSet(mapCapacity(size)))\n}\n\n/**\n * Returns a new [MutableSet] containing all distinct elements from the given array.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic fun BooleanArray.toMutableSet(): MutableSet {\n return toCollection(LinkedHashSet(mapCapacity(size)))\n}\n\n/**\n * Returns a new [MutableSet] containing all distinct elements from the given array.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic fun CharArray.toMutableSet(): MutableSet {\n return toCollection(LinkedHashSet(mapCapacity(size.coerceAtMost(128))))\n}\n\n/**\n * Returns a set containing all distinct elements from both collections.\n * \n * The returned set preserves the element iteration order of the original array.\n * Those elements of the [other] collection that are unique are iterated in the end\n * in the order of the [other] collection.\n * \n * To get a set containing all elements that are contained in both collections use [intersect].\n */\npublic infix fun Array.union(other: Iterable): Set {\n val set = this.toMutableSet()\n set.addAll(other)\n return set\n}\n\n/**\n * Returns a set containing all distinct elements from both collections.\n * \n * The returned set preserves the element iteration order of the original array.\n * Those elements of the [other] collection that are unique are iterated in the end\n * in the order of the [other] collection.\n * \n * To get a set containing all elements that are contained in both collections use [intersect].\n */\npublic infix fun ByteArray.union(other: Iterable): Set {\n val set = this.toMutableSet()\n set.addAll(other)\n return set\n}\n\n/**\n * Returns a set containing all distinct elements from both collections.\n * \n * The returned set preserves the element iteration order of the original array.\n * Those elements of the [other] collection that are unique are iterated in the end\n * in the order of the [other] collection.\n * \n * To get a set containing all elements that are contained in both collections use [intersect].\n */\npublic infix fun ShortArray.union(other: Iterable): Set {\n val set = this.toMutableSet()\n set.addAll(other)\n return set\n}\n\n/**\n * Returns a set containing all distinct elements from both collections.\n * \n * The returned set preserves the element iteration order of the original array.\n * Those elements of the [other] collection that are unique are iterated in the end\n * in the order of the [other] collection.\n * \n * To get a set containing all elements that are contained in both collections use [intersect].\n */\npublic infix fun IntArray.union(other: Iterable): Set {\n val set = this.toMutableSet()\n set.addAll(other)\n return set\n}\n\n/**\n * Returns a set containing all distinct elements from both collections.\n * \n * The returned set preserves the element iteration order of the original array.\n * Those elements of the [other] collection that are unique are iterated in the end\n * in the order of the [other] collection.\n * \n * To get a set containing all elements that are contained in both collections use [intersect].\n */\npublic infix fun LongArray.union(other: Iterable): Set {\n val set = this.toMutableSet()\n set.addAll(other)\n return set\n}\n\n/**\n * Returns a set containing all distinct elements from both collections.\n * \n * The returned set preserves the element iteration order of the original array.\n * Those elements of the [other] collection that are unique are iterated in the end\n * in the order of the [other] collection.\n * \n * To get a set containing all elements that are contained in both collections use [intersect].\n */\npublic infix fun FloatArray.union(other: Iterable): Set {\n val set = this.toMutableSet()\n set.addAll(other)\n return set\n}\n\n/**\n * Returns a set containing all distinct elements from both collections.\n * \n * The returned set preserves the element iteration order of the original array.\n * Those elements of the [other] collection that are unique are iterated in the end\n * in the order of the [other] collection.\n * \n * To get a set containing all elements that are contained in both collections use [intersect].\n */\npublic infix fun DoubleArray.union(other: Iterable): Set {\n val set = this.toMutableSet()\n set.addAll(other)\n return set\n}\n\n/**\n * Returns a set containing all distinct elements from both collections.\n * \n * The returned set preserves the element iteration order of the original array.\n * Those elements of the [other] collection that are unique are iterated in the end\n * in the order of the [other] collection.\n * \n * To get a set containing all elements that are contained in both collections use [intersect].\n */\npublic infix fun BooleanArray.union(other: Iterable): Set {\n val set = this.toMutableSet()\n set.addAll(other)\n return set\n}\n\n/**\n * Returns a set containing all distinct elements from both collections.\n * \n * The returned set preserves the element iteration order of the original array.\n * Those elements of the [other] collection that are unique are iterated in the end\n * in the order of the [other] collection.\n * \n * To get a set containing all elements that are contained in both collections use [intersect].\n */\npublic infix fun CharArray.union(other: Iterable): Set {\n val set = this.toMutableSet()\n set.addAll(other)\n return set\n}\n\n/**\n * Returns `true` if all elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.all\n */\npublic inline fun Array.all(predicate: (T) -> Boolean): Boolean {\n for (element in this) if (!predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if all elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.all\n */\npublic inline fun ByteArray.all(predicate: (Byte) -> Boolean): Boolean {\n for (element in this) if (!predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if all elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.all\n */\npublic inline fun ShortArray.all(predicate: (Short) -> Boolean): Boolean {\n for (element in this) if (!predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if all elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.all\n */\npublic inline fun IntArray.all(predicate: (Int) -> Boolean): Boolean {\n for (element in this) if (!predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if all elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.all\n */\npublic inline fun LongArray.all(predicate: (Long) -> Boolean): Boolean {\n for (element in this) if (!predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if all elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.all\n */\npublic inline fun FloatArray.all(predicate: (Float) -> Boolean): Boolean {\n for (element in this) if (!predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if all elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.all\n */\npublic inline fun DoubleArray.all(predicate: (Double) -> Boolean): Boolean {\n for (element in this) if (!predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if all elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.all\n */\npublic inline fun BooleanArray.all(predicate: (Boolean) -> Boolean): Boolean {\n for (element in this) if (!predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if all elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.all\n */\npublic inline fun CharArray.all(predicate: (Char) -> Boolean): Boolean {\n for (element in this) if (!predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if array has at least one element.\n * \n * @sample samples.collections.Collections.Aggregates.any\n */\npublic fun Array.any(): Boolean {\n return !isEmpty()\n}\n\n/**\n * Returns `true` if array has at least one element.\n * \n * @sample samples.collections.Collections.Aggregates.any\n */\npublic fun ByteArray.any(): Boolean {\n return !isEmpty()\n}\n\n/**\n * Returns `true` if array has at least one element.\n * \n * @sample samples.collections.Collections.Aggregates.any\n */\npublic fun ShortArray.any(): Boolean {\n return !isEmpty()\n}\n\n/**\n * Returns `true` if array has at least one element.\n * \n * @sample samples.collections.Collections.Aggregates.any\n */\npublic fun IntArray.any(): Boolean {\n return !isEmpty()\n}\n\n/**\n * Returns `true` if array has at least one element.\n * \n * @sample samples.collections.Collections.Aggregates.any\n */\npublic fun LongArray.any(): Boolean {\n return !isEmpty()\n}\n\n/**\n * Returns `true` if array has at least one element.\n * \n * @sample samples.collections.Collections.Aggregates.any\n */\npublic fun FloatArray.any(): Boolean {\n return !isEmpty()\n}\n\n/**\n * Returns `true` if array has at least one element.\n * \n * @sample samples.collections.Collections.Aggregates.any\n */\npublic fun DoubleArray.any(): Boolean {\n return !isEmpty()\n}\n\n/**\n * Returns `true` if array has at least one element.\n * \n * @sample samples.collections.Collections.Aggregates.any\n */\npublic fun BooleanArray.any(): Boolean {\n return !isEmpty()\n}\n\n/**\n * Returns `true` if array has at least one element.\n * \n * @sample samples.collections.Collections.Aggregates.any\n */\npublic fun CharArray.any(): Boolean {\n return !isEmpty()\n}\n\n/**\n * Returns `true` if at least one element matches the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.anyWithPredicate\n */\npublic inline fun Array.any(predicate: (T) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return true\n return false\n}\n\n/**\n * Returns `true` if at least one element matches the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.anyWithPredicate\n */\npublic inline fun ByteArray.any(predicate: (Byte) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return true\n return false\n}\n\n/**\n * Returns `true` if at least one element matches the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.anyWithPredicate\n */\npublic inline fun ShortArray.any(predicate: (Short) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return true\n return false\n}\n\n/**\n * Returns `true` if at least one element matches the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.anyWithPredicate\n */\npublic inline fun IntArray.any(predicate: (Int) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return true\n return false\n}\n\n/**\n * Returns `true` if at least one element matches the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.anyWithPredicate\n */\npublic inline fun LongArray.any(predicate: (Long) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return true\n return false\n}\n\n/**\n * Returns `true` if at least one element matches the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.anyWithPredicate\n */\npublic inline fun FloatArray.any(predicate: (Float) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return true\n return false\n}\n\n/**\n * Returns `true` if at least one element matches the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.anyWithPredicate\n */\npublic inline fun DoubleArray.any(predicate: (Double) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return true\n return false\n}\n\n/**\n * Returns `true` if at least one element matches the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.anyWithPredicate\n */\npublic inline fun BooleanArray.any(predicate: (Boolean) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return true\n return false\n}\n\n/**\n * Returns `true` if at least one element matches the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.anyWithPredicate\n */\npublic inline fun CharArray.any(predicate: (Char) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return true\n return false\n}\n\n/**\n * Returns the number of elements in this array.\n */\n@kotlin.internal.InlineOnly\npublic inline fun Array.count(): Int {\n return size\n}\n\n/**\n * Returns the number of elements in this array.\n */\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.count(): Int {\n return size\n}\n\n/**\n * Returns the number of elements in this array.\n */\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.count(): Int {\n return size\n}\n\n/**\n * Returns the number of elements in this array.\n */\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.count(): Int {\n return size\n}\n\n/**\n * Returns the number of elements in this array.\n */\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.count(): Int {\n return size\n}\n\n/**\n * Returns the number of elements in this array.\n */\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.count(): Int {\n return size\n}\n\n/**\n * Returns the number of elements in this array.\n */\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.count(): Int {\n return size\n}\n\n/**\n * Returns the number of elements in this array.\n */\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.count(): Int {\n return size\n}\n\n/**\n * Returns the number of elements in this array.\n */\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.count(): Int {\n return size\n}\n\n/**\n * Returns the number of elements matching the given [predicate].\n */\npublic inline fun Array.count(predicate: (T) -> Boolean): Int {\n var count = 0\n for (element in this) if (predicate(element)) ++count\n return count\n}\n\n/**\n * Returns the number of elements matching the given [predicate].\n */\npublic inline fun ByteArray.count(predicate: (Byte) -> Boolean): Int {\n var count = 0\n for (element in this) if (predicate(element)) ++count\n return count\n}\n\n/**\n * Returns the number of elements matching the given [predicate].\n */\npublic inline fun ShortArray.count(predicate: (Short) -> Boolean): Int {\n var count = 0\n for (element in this) if (predicate(element)) ++count\n return count\n}\n\n/**\n * Returns the number of elements matching the given [predicate].\n */\npublic inline fun IntArray.count(predicate: (Int) -> Boolean): Int {\n var count = 0\n for (element in this) if (predicate(element)) ++count\n return count\n}\n\n/**\n * Returns the number of elements matching the given [predicate].\n */\npublic inline fun LongArray.count(predicate: (Long) -> Boolean): Int {\n var count = 0\n for (element in this) if (predicate(element)) ++count\n return count\n}\n\n/**\n * Returns the number of elements matching the given [predicate].\n */\npublic inline fun FloatArray.count(predicate: (Float) -> Boolean): Int {\n var count = 0\n for (element in this) if (predicate(element)) ++count\n return count\n}\n\n/**\n * Returns the number of elements matching the given [predicate].\n */\npublic inline fun DoubleArray.count(predicate: (Double) -> Boolean): Int {\n var count = 0\n for (element in this) if (predicate(element)) ++count\n return count\n}\n\n/**\n * Returns the number of elements matching the given [predicate].\n */\npublic inline fun BooleanArray.count(predicate: (Boolean) -> Boolean): Int {\n var count = 0\n for (element in this) if (predicate(element)) ++count\n return count\n}\n\n/**\n * Returns the number of elements matching the given [predicate].\n */\npublic inline fun CharArray.count(predicate: (Char) -> Boolean): Int {\n var count = 0\n for (element in this) if (predicate(element)) ++count\n return count\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right\n * to current accumulator value and each element.\n * \n * Returns the specified [initial] value if the array is empty.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n */\npublic inline fun Array.fold(initial: R, operation: (acc: R, T) -> R): R {\n var accumulator = initial\n for (element in this) accumulator = operation(accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right\n * to current accumulator value and each element.\n * \n * Returns the specified [initial] value if the array is empty.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n */\npublic inline fun ByteArray.fold(initial: R, operation: (acc: R, Byte) -> R): R {\n var accumulator = initial\n for (element in this) accumulator = operation(accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right\n * to current accumulator value and each element.\n * \n * Returns the specified [initial] value if the array is empty.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n */\npublic inline fun ShortArray.fold(initial: R, operation: (acc: R, Short) -> R): R {\n var accumulator = initial\n for (element in this) accumulator = operation(accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right\n * to current accumulator value and each element.\n * \n * Returns the specified [initial] value if the array is empty.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n */\npublic inline fun IntArray.fold(initial: R, operation: (acc: R, Int) -> R): R {\n var accumulator = initial\n for (element in this) accumulator = operation(accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right\n * to current accumulator value and each element.\n * \n * Returns the specified [initial] value if the array is empty.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n */\npublic inline fun LongArray.fold(initial: R, operation: (acc: R, Long) -> R): R {\n var accumulator = initial\n for (element in this) accumulator = operation(accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right\n * to current accumulator value and each element.\n * \n * Returns the specified [initial] value if the array is empty.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n */\npublic inline fun FloatArray.fold(initial: R, operation: (acc: R, Float) -> R): R {\n var accumulator = initial\n for (element in this) accumulator = operation(accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right\n * to current accumulator value and each element.\n * \n * Returns the specified [initial] value if the array is empty.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n */\npublic inline fun DoubleArray.fold(initial: R, operation: (acc: R, Double) -> R): R {\n var accumulator = initial\n for (element in this) accumulator = operation(accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right\n * to current accumulator value and each element.\n * \n * Returns the specified [initial] value if the array is empty.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n */\npublic inline fun BooleanArray.fold(initial: R, operation: (acc: R, Boolean) -> R): R {\n var accumulator = initial\n for (element in this) accumulator = operation(accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right\n * to current accumulator value and each element.\n * \n * Returns the specified [initial] value if the array is empty.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n */\npublic inline fun CharArray.fold(initial: R, operation: (acc: R, Char) -> R): R {\n var accumulator = initial\n for (element in this) accumulator = operation(accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original array.\n * \n * Returns the specified [initial] value if the array is empty.\n * \n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself, and calculates the next accumulator value.\n */\npublic inline fun Array.foldIndexed(initial: R, operation: (index: Int, acc: R, T) -> R): R {\n var index = 0\n var accumulator = initial\n for (element in this) accumulator = operation(index++, accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original array.\n * \n * Returns the specified [initial] value if the array is empty.\n * \n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself, and calculates the next accumulator value.\n */\npublic inline fun ByteArray.foldIndexed(initial: R, operation: (index: Int, acc: R, Byte) -> R): R {\n var index = 0\n var accumulator = initial\n for (element in this) accumulator = operation(index++, accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original array.\n * \n * Returns the specified [initial] value if the array is empty.\n * \n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself, and calculates the next accumulator value.\n */\npublic inline fun ShortArray.foldIndexed(initial: R, operation: (index: Int, acc: R, Short) -> R): R {\n var index = 0\n var accumulator = initial\n for (element in this) accumulator = operation(index++, accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original array.\n * \n * Returns the specified [initial] value if the array is empty.\n * \n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself, and calculates the next accumulator value.\n */\npublic inline fun IntArray.foldIndexed(initial: R, operation: (index: Int, acc: R, Int) -> R): R {\n var index = 0\n var accumulator = initial\n for (element in this) accumulator = operation(index++, accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original array.\n * \n * Returns the specified [initial] value if the array is empty.\n * \n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself, and calculates the next accumulator value.\n */\npublic inline fun LongArray.foldIndexed(initial: R, operation: (index: Int, acc: R, Long) -> R): R {\n var index = 0\n var accumulator = initial\n for (element in this) accumulator = operation(index++, accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original array.\n * \n * Returns the specified [initial] value if the array is empty.\n * \n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself, and calculates the next accumulator value.\n */\npublic inline fun FloatArray.foldIndexed(initial: R, operation: (index: Int, acc: R, Float) -> R): R {\n var index = 0\n var accumulator = initial\n for (element in this) accumulator = operation(index++, accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original array.\n * \n * Returns the specified [initial] value if the array is empty.\n * \n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself, and calculates the next accumulator value.\n */\npublic inline fun DoubleArray.foldIndexed(initial: R, operation: (index: Int, acc: R, Double) -> R): R {\n var index = 0\n var accumulator = initial\n for (element in this) accumulator = operation(index++, accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original array.\n * \n * Returns the specified [initial] value if the array is empty.\n * \n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself, and calculates the next accumulator value.\n */\npublic inline fun BooleanArray.foldIndexed(initial: R, operation: (index: Int, acc: R, Boolean) -> R): R {\n var index = 0\n var accumulator = initial\n for (element in this) accumulator = operation(index++, accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original array.\n * \n * Returns the specified [initial] value if the array is empty.\n * \n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself, and calculates the next accumulator value.\n */\npublic inline fun CharArray.foldIndexed(initial: R, operation: (index: Int, acc: R, Char) -> R): R {\n var index = 0\n var accumulator = initial\n for (element in this) accumulator = operation(index++, accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left\n * to each element and current accumulator value.\n * \n * Returns the specified [initial] value if the array is empty.\n * \n * @param [operation] function that takes an element and current accumulator value, and calculates the next accumulator value.\n */\npublic inline fun Array.foldRight(initial: R, operation: (T, acc: R) -> R): R {\n var index = lastIndex\n var accumulator = initial\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left\n * to each element and current accumulator value.\n * \n * Returns the specified [initial] value if the array is empty.\n * \n * @param [operation] function that takes an element and current accumulator value, and calculates the next accumulator value.\n */\npublic inline fun ByteArray.foldRight(initial: R, operation: (Byte, acc: R) -> R): R {\n var index = lastIndex\n var accumulator = initial\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left\n * to each element and current accumulator value.\n * \n * Returns the specified [initial] value if the array is empty.\n * \n * @param [operation] function that takes an element and current accumulator value, and calculates the next accumulator value.\n */\npublic inline fun ShortArray.foldRight(initial: R, operation: (Short, acc: R) -> R): R {\n var index = lastIndex\n var accumulator = initial\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left\n * to each element and current accumulator value.\n * \n * Returns the specified [initial] value if the array is empty.\n * \n * @param [operation] function that takes an element and current accumulator value, and calculates the next accumulator value.\n */\npublic inline fun IntArray.foldRight(initial: R, operation: (Int, acc: R) -> R): R {\n var index = lastIndex\n var accumulator = initial\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left\n * to each element and current accumulator value.\n * \n * Returns the specified [initial] value if the array is empty.\n * \n * @param [operation] function that takes an element and current accumulator value, and calculates the next accumulator value.\n */\npublic inline fun LongArray.foldRight(initial: R, operation: (Long, acc: R) -> R): R {\n var index = lastIndex\n var accumulator = initial\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left\n * to each element and current accumulator value.\n * \n * Returns the specified [initial] value if the array is empty.\n * \n * @param [operation] function that takes an element and current accumulator value, and calculates the next accumulator value.\n */\npublic inline fun FloatArray.foldRight(initial: R, operation: (Float, acc: R) -> R): R {\n var index = lastIndex\n var accumulator = initial\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left\n * to each element and current accumulator value.\n * \n * Returns the specified [initial] value if the array is empty.\n * \n * @param [operation] function that takes an element and current accumulator value, and calculates the next accumulator value.\n */\npublic inline fun DoubleArray.foldRight(initial: R, operation: (Double, acc: R) -> R): R {\n var index = lastIndex\n var accumulator = initial\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left\n * to each element and current accumulator value.\n * \n * Returns the specified [initial] value if the array is empty.\n * \n * @param [operation] function that takes an element and current accumulator value, and calculates the next accumulator value.\n */\npublic inline fun BooleanArray.foldRight(initial: R, operation: (Boolean, acc: R) -> R): R {\n var index = lastIndex\n var accumulator = initial\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left\n * to each element and current accumulator value.\n * \n * Returns the specified [initial] value if the array is empty.\n * \n * @param [operation] function that takes an element and current accumulator value, and calculates the next accumulator value.\n */\npublic inline fun CharArray.foldRight(initial: R, operation: (Char, acc: R) -> R): R {\n var index = lastIndex\n var accumulator = initial\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left\n * to each element with its index in the original array and current accumulator value.\n * \n * Returns the specified [initial] value if the array is empty.\n * \n * @param [operation] function that takes the index of an element, the element itself\n * and current accumulator value, and calculates the next accumulator value.\n */\npublic inline fun Array.foldRightIndexed(initial: R, operation: (index: Int, T, acc: R) -> R): R {\n var index = lastIndex\n var accumulator = initial\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left\n * to each element with its index in the original array and current accumulator value.\n * \n * Returns the specified [initial] value if the array is empty.\n * \n * @param [operation] function that takes the index of an element, the element itself\n * and current accumulator value, and calculates the next accumulator value.\n */\npublic inline fun ByteArray.foldRightIndexed(initial: R, operation: (index: Int, Byte, acc: R) -> R): R {\n var index = lastIndex\n var accumulator = initial\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left\n * to each element with its index in the original array and current accumulator value.\n * \n * Returns the specified [initial] value if the array is empty.\n * \n * @param [operation] function that takes the index of an element, the element itself\n * and current accumulator value, and calculates the next accumulator value.\n */\npublic inline fun ShortArray.foldRightIndexed(initial: R, operation: (index: Int, Short, acc: R) -> R): R {\n var index = lastIndex\n var accumulator = initial\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left\n * to each element with its index in the original array and current accumulator value.\n * \n * Returns the specified [initial] value if the array is empty.\n * \n * @param [operation] function that takes the index of an element, the element itself\n * and current accumulator value, and calculates the next accumulator value.\n */\npublic inline fun IntArray.foldRightIndexed(initial: R, operation: (index: Int, Int, acc: R) -> R): R {\n var index = lastIndex\n var accumulator = initial\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left\n * to each element with its index in the original array and current accumulator value.\n * \n * Returns the specified [initial] value if the array is empty.\n * \n * @param [operation] function that takes the index of an element, the element itself\n * and current accumulator value, and calculates the next accumulator value.\n */\npublic inline fun LongArray.foldRightIndexed(initial: R, operation: (index: Int, Long, acc: R) -> R): R {\n var index = lastIndex\n var accumulator = initial\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left\n * to each element with its index in the original array and current accumulator value.\n * \n * Returns the specified [initial] value if the array is empty.\n * \n * @param [operation] function that takes the index of an element, the element itself\n * and current accumulator value, and calculates the next accumulator value.\n */\npublic inline fun FloatArray.foldRightIndexed(initial: R, operation: (index: Int, Float, acc: R) -> R): R {\n var index = lastIndex\n var accumulator = initial\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left\n * to each element with its index in the original array and current accumulator value.\n * \n * Returns the specified [initial] value if the array is empty.\n * \n * @param [operation] function that takes the index of an element, the element itself\n * and current accumulator value, and calculates the next accumulator value.\n */\npublic inline fun DoubleArray.foldRightIndexed(initial: R, operation: (index: Int, Double, acc: R) -> R): R {\n var index = lastIndex\n var accumulator = initial\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left\n * to each element with its index in the original array and current accumulator value.\n * \n * Returns the specified [initial] value if the array is empty.\n * \n * @param [operation] function that takes the index of an element, the element itself\n * and current accumulator value, and calculates the next accumulator value.\n */\npublic inline fun BooleanArray.foldRightIndexed(initial: R, operation: (index: Int, Boolean, acc: R) -> R): R {\n var index = lastIndex\n var accumulator = initial\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left\n * to each element with its index in the original array and current accumulator value.\n * \n * Returns the specified [initial] value if the array is empty.\n * \n * @param [operation] function that takes the index of an element, the element itself\n * and current accumulator value, and calculates the next accumulator value.\n */\npublic inline fun CharArray.foldRightIndexed(initial: R, operation: (index: Int, Char, acc: R) -> R): R {\n var index = lastIndex\n var accumulator = initial\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Performs the given [action] on each element.\n */\npublic inline fun Array.forEach(action: (T) -> Unit): Unit {\n for (element in this) action(element)\n}\n\n/**\n * Performs the given [action] on each element.\n */\npublic inline fun ByteArray.forEach(action: (Byte) -> Unit): Unit {\n for (element in this) action(element)\n}\n\n/**\n * Performs the given [action] on each element.\n */\npublic inline fun ShortArray.forEach(action: (Short) -> Unit): Unit {\n for (element in this) action(element)\n}\n\n/**\n * Performs the given [action] on each element.\n */\npublic inline fun IntArray.forEach(action: (Int) -> Unit): Unit {\n for (element in this) action(element)\n}\n\n/**\n * Performs the given [action] on each element.\n */\npublic inline fun LongArray.forEach(action: (Long) -> Unit): Unit {\n for (element in this) action(element)\n}\n\n/**\n * Performs the given [action] on each element.\n */\npublic inline fun FloatArray.forEach(action: (Float) -> Unit): Unit {\n for (element in this) action(element)\n}\n\n/**\n * Performs the given [action] on each element.\n */\npublic inline fun DoubleArray.forEach(action: (Double) -> Unit): Unit {\n for (element in this) action(element)\n}\n\n/**\n * Performs the given [action] on each element.\n */\npublic inline fun BooleanArray.forEach(action: (Boolean) -> Unit): Unit {\n for (element in this) action(element)\n}\n\n/**\n * Performs the given [action] on each element.\n */\npublic inline fun CharArray.forEach(action: (Char) -> Unit): Unit {\n for (element in this) action(element)\n}\n\n/**\n * Performs the given [action] on each element, providing sequential index with the element.\n * @param [action] function that takes the index of an element and the element itself\n * and performs the action on the element.\n */\npublic inline fun Array.forEachIndexed(action: (index: Int, T) -> Unit): Unit {\n var index = 0\n for (item in this) action(index++, item)\n}\n\n/**\n * Performs the given [action] on each element, providing sequential index with the element.\n * @param [action] function that takes the index of an element and the element itself\n * and performs the action on the element.\n */\npublic inline fun ByteArray.forEachIndexed(action: (index: Int, Byte) -> Unit): Unit {\n var index = 0\n for (item in this) action(index++, item)\n}\n\n/**\n * Performs the given [action] on each element, providing sequential index with the element.\n * @param [action] function that takes the index of an element and the element itself\n * and performs the action on the element.\n */\npublic inline fun ShortArray.forEachIndexed(action: (index: Int, Short) -> Unit): Unit {\n var index = 0\n for (item in this) action(index++, item)\n}\n\n/**\n * Performs the given [action] on each element, providing sequential index with the element.\n * @param [action] function that takes the index of an element and the element itself\n * and performs the action on the element.\n */\npublic inline fun IntArray.forEachIndexed(action: (index: Int, Int) -> Unit): Unit {\n var index = 0\n for (item in this) action(index++, item)\n}\n\n/**\n * Performs the given [action] on each element, providing sequential index with the element.\n * @param [action] function that takes the index of an element and the element itself\n * and performs the action on the element.\n */\npublic inline fun LongArray.forEachIndexed(action: (index: Int, Long) -> Unit): Unit {\n var index = 0\n for (item in this) action(index++, item)\n}\n\n/**\n * Performs the given [action] on each element, providing sequential index with the element.\n * @param [action] function that takes the index of an element and the element itself\n * and performs the action on the element.\n */\npublic inline fun FloatArray.forEachIndexed(action: (index: Int, Float) -> Unit): Unit {\n var index = 0\n for (item in this) action(index++, item)\n}\n\n/**\n * Performs the given [action] on each element, providing sequential index with the element.\n * @param [action] function that takes the index of an element and the element itself\n * and performs the action on the element.\n */\npublic inline fun DoubleArray.forEachIndexed(action: (index: Int, Double) -> Unit): Unit {\n var index = 0\n for (item in this) action(index++, item)\n}\n\n/**\n * Performs the given [action] on each element, providing sequential index with the element.\n * @param [action] function that takes the index of an element and the element itself\n * and performs the action on the element.\n */\npublic inline fun BooleanArray.forEachIndexed(action: (index: Int, Boolean) -> Unit): Unit {\n var index = 0\n for (item in this) action(index++, item)\n}\n\n/**\n * Performs the given [action] on each element, providing sequential index with the element.\n * @param [action] function that takes the index of an element and the element itself\n * and performs the action on the element.\n */\npublic inline fun CharArray.forEachIndexed(action: (index: Int, Char) -> Unit): Unit {\n var index = 0\n for (item in this) action(index++, item)\n}\n\n@Deprecated(\"Use maxOrNull instead.\", ReplaceWith(\"this.maxOrNull()\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\n@SinceKotlin(\"1.1\")\npublic fun Array.max(): Double? {\n return maxOrNull()\n}\n\n@Deprecated(\"Use maxOrNull instead.\", ReplaceWith(\"this.maxOrNull()\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\n@SinceKotlin(\"1.1\")\npublic fun Array.max(): Float? {\n return maxOrNull()\n}\n\n@Deprecated(\"Use maxOrNull instead.\", ReplaceWith(\"this.maxOrNull()\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\npublic fun > Array.max(): T? {\n return maxOrNull()\n}\n\n@Deprecated(\"Use maxOrNull instead.\", ReplaceWith(\"this.maxOrNull()\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\npublic fun ByteArray.max(): Byte? {\n return maxOrNull()\n}\n\n@Deprecated(\"Use maxOrNull instead.\", ReplaceWith(\"this.maxOrNull()\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\npublic fun ShortArray.max(): Short? {\n return maxOrNull()\n}\n\n@Deprecated(\"Use maxOrNull instead.\", ReplaceWith(\"this.maxOrNull()\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\npublic fun IntArray.max(): Int? {\n return maxOrNull()\n}\n\n@Deprecated(\"Use maxOrNull instead.\", ReplaceWith(\"this.maxOrNull()\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\npublic fun LongArray.max(): Long? {\n return maxOrNull()\n}\n\n@Deprecated(\"Use maxOrNull instead.\", ReplaceWith(\"this.maxOrNull()\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\npublic fun FloatArray.max(): Float? {\n return maxOrNull()\n}\n\n@Deprecated(\"Use maxOrNull instead.\", ReplaceWith(\"this.maxOrNull()\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\npublic fun DoubleArray.max(): Double? {\n return maxOrNull()\n}\n\n@Deprecated(\"Use maxOrNull instead.\", ReplaceWith(\"this.maxOrNull()\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\npublic fun CharArray.max(): Char? {\n return maxOrNull()\n}\n\n@Deprecated(\"Use maxByOrNull instead.\", ReplaceWith(\"this.maxByOrNull(selector)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\npublic inline fun > Array.maxBy(selector: (T) -> R): T? {\n return maxByOrNull(selector)\n}\n\n@Deprecated(\"Use maxByOrNull instead.\", ReplaceWith(\"this.maxByOrNull(selector)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\npublic inline fun > ByteArray.maxBy(selector: (Byte) -> R): Byte? {\n return maxByOrNull(selector)\n}\n\n@Deprecated(\"Use maxByOrNull instead.\", ReplaceWith(\"this.maxByOrNull(selector)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\npublic inline fun > ShortArray.maxBy(selector: (Short) -> R): Short? {\n return maxByOrNull(selector)\n}\n\n@Deprecated(\"Use maxByOrNull instead.\", ReplaceWith(\"this.maxByOrNull(selector)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\npublic inline fun > IntArray.maxBy(selector: (Int) -> R): Int? {\n return maxByOrNull(selector)\n}\n\n@Deprecated(\"Use maxByOrNull instead.\", ReplaceWith(\"this.maxByOrNull(selector)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\npublic inline fun > LongArray.maxBy(selector: (Long) -> R): Long? {\n return maxByOrNull(selector)\n}\n\n@Deprecated(\"Use maxByOrNull instead.\", ReplaceWith(\"this.maxByOrNull(selector)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\npublic inline fun > FloatArray.maxBy(selector: (Float) -> R): Float? {\n return maxByOrNull(selector)\n}\n\n@Deprecated(\"Use maxByOrNull instead.\", ReplaceWith(\"this.maxByOrNull(selector)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\npublic inline fun > DoubleArray.maxBy(selector: (Double) -> R): Double? {\n return maxByOrNull(selector)\n}\n\n@Deprecated(\"Use maxByOrNull instead.\", ReplaceWith(\"this.maxByOrNull(selector)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\npublic inline fun > BooleanArray.maxBy(selector: (Boolean) -> R): Boolean? {\n return maxByOrNull(selector)\n}\n\n@Deprecated(\"Use maxByOrNull instead.\", ReplaceWith(\"this.maxByOrNull(selector)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\npublic inline fun > CharArray.maxBy(selector: (Char) -> R): Char? {\n return maxByOrNull(selector)\n}\n\n/**\n * Returns the first element yielding the largest value of the given function or `null` if there are no elements.\n * \n * @sample samples.collections.Collections.Aggregates.maxByOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun > Array.maxByOrNull(selector: (T) -> R): T? {\n if (isEmpty()) return null\n var maxElem = this[0]\n val lastIndex = this.lastIndex\n if (lastIndex == 0) return maxElem\n var maxValue = selector(maxElem)\n for (i in 1..lastIndex) {\n val e = this[i]\n val v = selector(e)\n if (maxValue < v) {\n maxElem = e\n maxValue = v\n }\n }\n return maxElem\n}\n\n/**\n * Returns the first element yielding the largest value of the given function or `null` if there are no elements.\n * \n * @sample samples.collections.Collections.Aggregates.maxByOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun > ByteArray.maxByOrNull(selector: (Byte) -> R): Byte? {\n if (isEmpty()) return null\n var maxElem = this[0]\n val lastIndex = this.lastIndex\n if (lastIndex == 0) return maxElem\n var maxValue = selector(maxElem)\n for (i in 1..lastIndex) {\n val e = this[i]\n val v = selector(e)\n if (maxValue < v) {\n maxElem = e\n maxValue = v\n }\n }\n return maxElem\n}\n\n/**\n * Returns the first element yielding the largest value of the given function or `null` if there are no elements.\n * \n * @sample samples.collections.Collections.Aggregates.maxByOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun > ShortArray.maxByOrNull(selector: (Short) -> R): Short? {\n if (isEmpty()) return null\n var maxElem = this[0]\n val lastIndex = this.lastIndex\n if (lastIndex == 0) return maxElem\n var maxValue = selector(maxElem)\n for (i in 1..lastIndex) {\n val e = this[i]\n val v = selector(e)\n if (maxValue < v) {\n maxElem = e\n maxValue = v\n }\n }\n return maxElem\n}\n\n/**\n * Returns the first element yielding the largest value of the given function or `null` if there are no elements.\n * \n * @sample samples.collections.Collections.Aggregates.maxByOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun > IntArray.maxByOrNull(selector: (Int) -> R): Int? {\n if (isEmpty()) return null\n var maxElem = this[0]\n val lastIndex = this.lastIndex\n if (lastIndex == 0) return maxElem\n var maxValue = selector(maxElem)\n for (i in 1..lastIndex) {\n val e = this[i]\n val v = selector(e)\n if (maxValue < v) {\n maxElem = e\n maxValue = v\n }\n }\n return maxElem\n}\n\n/**\n * Returns the first element yielding the largest value of the given function or `null` if there are no elements.\n * \n * @sample samples.collections.Collections.Aggregates.maxByOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun > LongArray.maxByOrNull(selector: (Long) -> R): Long? {\n if (isEmpty()) return null\n var maxElem = this[0]\n val lastIndex = this.lastIndex\n if (lastIndex == 0) return maxElem\n var maxValue = selector(maxElem)\n for (i in 1..lastIndex) {\n val e = this[i]\n val v = selector(e)\n if (maxValue < v) {\n maxElem = e\n maxValue = v\n }\n }\n return maxElem\n}\n\n/**\n * Returns the first element yielding the largest value of the given function or `null` if there are no elements.\n * \n * @sample samples.collections.Collections.Aggregates.maxByOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun > FloatArray.maxByOrNull(selector: (Float) -> R): Float? {\n if (isEmpty()) return null\n var maxElem = this[0]\n val lastIndex = this.lastIndex\n if (lastIndex == 0) return maxElem\n var maxValue = selector(maxElem)\n for (i in 1..lastIndex) {\n val e = this[i]\n val v = selector(e)\n if (maxValue < v) {\n maxElem = e\n maxValue = v\n }\n }\n return maxElem\n}\n\n/**\n * Returns the first element yielding the largest value of the given function or `null` if there are no elements.\n * \n * @sample samples.collections.Collections.Aggregates.maxByOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun > DoubleArray.maxByOrNull(selector: (Double) -> R): Double? {\n if (isEmpty()) return null\n var maxElem = this[0]\n val lastIndex = this.lastIndex\n if (lastIndex == 0) return maxElem\n var maxValue = selector(maxElem)\n for (i in 1..lastIndex) {\n val e = this[i]\n val v = selector(e)\n if (maxValue < v) {\n maxElem = e\n maxValue = v\n }\n }\n return maxElem\n}\n\n/**\n * Returns the first element yielding the largest value of the given function or `null` if there are no elements.\n * \n * @sample samples.collections.Collections.Aggregates.maxByOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun > BooleanArray.maxByOrNull(selector: (Boolean) -> R): Boolean? {\n if (isEmpty()) return null\n var maxElem = this[0]\n val lastIndex = this.lastIndex\n if (lastIndex == 0) return maxElem\n var maxValue = selector(maxElem)\n for (i in 1..lastIndex) {\n val e = this[i]\n val v = selector(e)\n if (maxValue < v) {\n maxElem = e\n maxValue = v\n }\n }\n return maxElem\n}\n\n/**\n * Returns the first element yielding the largest value of the given function or `null` if there are no elements.\n * \n * @sample samples.collections.Collections.Aggregates.maxByOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun > CharArray.maxByOrNull(selector: (Char) -> R): Char? {\n if (isEmpty()) return null\n var maxElem = this[0]\n val lastIndex = this.lastIndex\n if (lastIndex == 0) return maxElem\n var maxValue = selector(maxElem)\n for (i in 1..lastIndex) {\n val e = this[i]\n val v = selector(e)\n if (maxValue < v) {\n maxElem = e\n maxValue = v\n }\n }\n return maxElem\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Array.maxOf(selector: (T) -> Double): Double {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.maxOf(selector: (Byte) -> Double): Double {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.maxOf(selector: (Short) -> Double): Double {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.maxOf(selector: (Int) -> Double): Double {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.maxOf(selector: (Long) -> Double): Double {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.maxOf(selector: (Float) -> Double): Double {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.maxOf(selector: (Double) -> Double): Double {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.maxOf(selector: (Boolean) -> Double): Double {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.maxOf(selector: (Char) -> Double): Double {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Array.maxOf(selector: (T) -> Float): Float {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.maxOf(selector: (Byte) -> Float): Float {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.maxOf(selector: (Short) -> Float): Float {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.maxOf(selector: (Int) -> Float): Float {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.maxOf(selector: (Long) -> Float): Float {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.maxOf(selector: (Float) -> Float): Float {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.maxOf(selector: (Double) -> Float): Float {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.maxOf(selector: (Boolean) -> Float): Float {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.maxOf(selector: (Char) -> Float): Float {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > Array.maxOf(selector: (T) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (maxValue < v) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > ByteArray.maxOf(selector: (Byte) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (maxValue < v) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > ShortArray.maxOf(selector: (Short) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (maxValue < v) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > IntArray.maxOf(selector: (Int) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (maxValue < v) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > LongArray.maxOf(selector: (Long) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (maxValue < v) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > FloatArray.maxOf(selector: (Float) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (maxValue < v) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > DoubleArray.maxOf(selector: (Double) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (maxValue < v) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > BooleanArray.maxOf(selector: (Boolean) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (maxValue < v) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > CharArray.maxOf(selector: (Char) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (maxValue < v) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Array.maxOfOrNull(selector: (T) -> Double): Double? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.maxOfOrNull(selector: (Byte) -> Double): Double? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.maxOfOrNull(selector: (Short) -> Double): Double? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.maxOfOrNull(selector: (Int) -> Double): Double? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.maxOfOrNull(selector: (Long) -> Double): Double? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.maxOfOrNull(selector: (Float) -> Double): Double? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.maxOfOrNull(selector: (Double) -> Double): Double? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.maxOfOrNull(selector: (Boolean) -> Double): Double? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.maxOfOrNull(selector: (Char) -> Double): Double? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Array.maxOfOrNull(selector: (T) -> Float): Float? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.maxOfOrNull(selector: (Byte) -> Float): Float? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.maxOfOrNull(selector: (Short) -> Float): Float? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.maxOfOrNull(selector: (Int) -> Float): Float? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.maxOfOrNull(selector: (Long) -> Float): Float? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.maxOfOrNull(selector: (Float) -> Float): Float? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.maxOfOrNull(selector: (Double) -> Float): Float? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.maxOfOrNull(selector: (Boolean) -> Float): Float? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.maxOfOrNull(selector: (Char) -> Float): Float? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > Array.maxOfOrNull(selector: (T) -> R): R? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (maxValue < v) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > ByteArray.maxOfOrNull(selector: (Byte) -> R): R? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (maxValue < v) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > ShortArray.maxOfOrNull(selector: (Short) -> R): R? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (maxValue < v) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > IntArray.maxOfOrNull(selector: (Int) -> R): R? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (maxValue < v) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > LongArray.maxOfOrNull(selector: (Long) -> R): R? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (maxValue < v) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > FloatArray.maxOfOrNull(selector: (Float) -> R): R? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (maxValue < v) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > DoubleArray.maxOfOrNull(selector: (Double) -> R): R? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (maxValue < v) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > BooleanArray.maxOfOrNull(selector: (Boolean) -> R): R? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (maxValue < v) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > CharArray.maxOfOrNull(selector: (Char) -> R): R? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (maxValue < v) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Array.maxOfWith(comparator: Comparator, selector: (T) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(maxValue, v) < 0) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.maxOfWith(comparator: Comparator, selector: (Byte) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(maxValue, v) < 0) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.maxOfWith(comparator: Comparator, selector: (Short) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(maxValue, v) < 0) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.maxOfWith(comparator: Comparator, selector: (Int) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(maxValue, v) < 0) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.maxOfWith(comparator: Comparator, selector: (Long) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(maxValue, v) < 0) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.maxOfWith(comparator: Comparator, selector: (Float) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(maxValue, v) < 0) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.maxOfWith(comparator: Comparator, selector: (Double) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(maxValue, v) < 0) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.maxOfWith(comparator: Comparator, selector: (Boolean) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(maxValue, v) < 0) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.maxOfWith(comparator: Comparator, selector: (Char) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(maxValue, v) < 0) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Array.maxOfWithOrNull(comparator: Comparator, selector: (T) -> R): R? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(maxValue, v) < 0) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.maxOfWithOrNull(comparator: Comparator, selector: (Byte) -> R): R? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(maxValue, v) < 0) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.maxOfWithOrNull(comparator: Comparator, selector: (Short) -> R): R? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(maxValue, v) < 0) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.maxOfWithOrNull(comparator: Comparator, selector: (Int) -> R): R? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(maxValue, v) < 0) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.maxOfWithOrNull(comparator: Comparator, selector: (Long) -> R): R? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(maxValue, v) < 0) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.maxOfWithOrNull(comparator: Comparator, selector: (Float) -> R): R? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(maxValue, v) < 0) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.maxOfWithOrNull(comparator: Comparator, selector: (Double) -> R): R? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(maxValue, v) < 0) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.maxOfWithOrNull(comparator: Comparator, selector: (Boolean) -> R): R? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(maxValue, v) < 0) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.maxOfWithOrNull(comparator: Comparator, selector: (Char) -> R): R? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(maxValue, v) < 0) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest element or `null` if there are no elements.\n * \n * If any of elements is `NaN` returns `NaN`.\n */\n@SinceKotlin(\"1.4\")\npublic fun Array.maxOrNull(): Double? {\n if (isEmpty()) return null\n var max = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n max = maxOf(max, e)\n }\n return max\n}\n\n/**\n * Returns the largest element or `null` if there are no elements.\n * \n * If any of elements is `NaN` returns `NaN`.\n */\n@SinceKotlin(\"1.4\")\npublic fun Array.maxOrNull(): Float? {\n if (isEmpty()) return null\n var max = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n max = maxOf(max, e)\n }\n return max\n}\n\n/**\n * Returns the largest element or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\npublic fun > Array.maxOrNull(): T? {\n if (isEmpty()) return null\n var max = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (max < e) max = e\n }\n return max\n}\n\n/**\n * Returns the largest element or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\npublic fun ByteArray.maxOrNull(): Byte? {\n if (isEmpty()) return null\n var max = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (max < e) max = e\n }\n return max\n}\n\n/**\n * Returns the largest element or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\npublic fun ShortArray.maxOrNull(): Short? {\n if (isEmpty()) return null\n var max = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (max < e) max = e\n }\n return max\n}\n\n/**\n * Returns the largest element or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\npublic fun IntArray.maxOrNull(): Int? {\n if (isEmpty()) return null\n var max = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (max < e) max = e\n }\n return max\n}\n\n/**\n * Returns the largest element or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\npublic fun LongArray.maxOrNull(): Long? {\n if (isEmpty()) return null\n var max = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (max < e) max = e\n }\n return max\n}\n\n/**\n * Returns the largest element or `null` if there are no elements.\n * \n * If any of elements is `NaN` returns `NaN`.\n */\n@SinceKotlin(\"1.4\")\npublic fun FloatArray.maxOrNull(): Float? {\n if (isEmpty()) return null\n var max = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n max = maxOf(max, e)\n }\n return max\n}\n\n/**\n * Returns the largest element or `null` if there are no elements.\n * \n * If any of elements is `NaN` returns `NaN`.\n */\n@SinceKotlin(\"1.4\")\npublic fun DoubleArray.maxOrNull(): Double? {\n if (isEmpty()) return null\n var max = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n max = maxOf(max, e)\n }\n return max\n}\n\n/**\n * Returns the largest element or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\npublic fun CharArray.maxOrNull(): Char? {\n if (isEmpty()) return null\n var max = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (max < e) max = e\n }\n return max\n}\n\n@Deprecated(\"Use maxWithOrNull instead.\", ReplaceWith(\"this.maxWithOrNull(comparator)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\npublic fun Array.maxWith(comparator: Comparator): T? {\n return maxWithOrNull(comparator)\n}\n\n@Deprecated(\"Use maxWithOrNull instead.\", ReplaceWith(\"this.maxWithOrNull(comparator)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\npublic fun ByteArray.maxWith(comparator: Comparator): Byte? {\n return maxWithOrNull(comparator)\n}\n\n@Deprecated(\"Use maxWithOrNull instead.\", ReplaceWith(\"this.maxWithOrNull(comparator)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\npublic fun ShortArray.maxWith(comparator: Comparator): Short? {\n return maxWithOrNull(comparator)\n}\n\n@Deprecated(\"Use maxWithOrNull instead.\", ReplaceWith(\"this.maxWithOrNull(comparator)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\npublic fun IntArray.maxWith(comparator: Comparator): Int? {\n return maxWithOrNull(comparator)\n}\n\n@Deprecated(\"Use maxWithOrNull instead.\", ReplaceWith(\"this.maxWithOrNull(comparator)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\npublic fun LongArray.maxWith(comparator: Comparator): Long? {\n return maxWithOrNull(comparator)\n}\n\n@Deprecated(\"Use maxWithOrNull instead.\", ReplaceWith(\"this.maxWithOrNull(comparator)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\npublic fun FloatArray.maxWith(comparator: Comparator): Float? {\n return maxWithOrNull(comparator)\n}\n\n@Deprecated(\"Use maxWithOrNull instead.\", ReplaceWith(\"this.maxWithOrNull(comparator)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\npublic fun DoubleArray.maxWith(comparator: Comparator): Double? {\n return maxWithOrNull(comparator)\n}\n\n@Deprecated(\"Use maxWithOrNull instead.\", ReplaceWith(\"this.maxWithOrNull(comparator)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\npublic fun BooleanArray.maxWith(comparator: Comparator): Boolean? {\n return maxWithOrNull(comparator)\n}\n\n@Deprecated(\"Use maxWithOrNull instead.\", ReplaceWith(\"this.maxWithOrNull(comparator)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\npublic fun CharArray.maxWith(comparator: Comparator): Char? {\n return maxWithOrNull(comparator)\n}\n\n/**\n * Returns the first element having the largest value according to the provided [comparator] or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\npublic fun Array.maxWithOrNull(comparator: Comparator): T? {\n if (isEmpty()) return null\n var max = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (comparator.compare(max, e) < 0) max = e\n }\n return max\n}\n\n/**\n * Returns the first element having the largest value according to the provided [comparator] or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\npublic fun ByteArray.maxWithOrNull(comparator: Comparator): Byte? {\n if (isEmpty()) return null\n var max = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (comparator.compare(max, e) < 0) max = e\n }\n return max\n}\n\n/**\n * Returns the first element having the largest value according to the provided [comparator] or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\npublic fun ShortArray.maxWithOrNull(comparator: Comparator): Short? {\n if (isEmpty()) return null\n var max = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (comparator.compare(max, e) < 0) max = e\n }\n return max\n}\n\n/**\n * Returns the first element having the largest value according to the provided [comparator] or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\npublic fun IntArray.maxWithOrNull(comparator: Comparator): Int? {\n if (isEmpty()) return null\n var max = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (comparator.compare(max, e) < 0) max = e\n }\n return max\n}\n\n/**\n * Returns the first element having the largest value according to the provided [comparator] or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\npublic fun LongArray.maxWithOrNull(comparator: Comparator): Long? {\n if (isEmpty()) return null\n var max = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (comparator.compare(max, e) < 0) max = e\n }\n return max\n}\n\n/**\n * Returns the first element having the largest value according to the provided [comparator] or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\npublic fun FloatArray.maxWithOrNull(comparator: Comparator): Float? {\n if (isEmpty()) return null\n var max = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (comparator.compare(max, e) < 0) max = e\n }\n return max\n}\n\n/**\n * Returns the first element having the largest value according to the provided [comparator] or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\npublic fun DoubleArray.maxWithOrNull(comparator: Comparator): Double? {\n if (isEmpty()) return null\n var max = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (comparator.compare(max, e) < 0) max = e\n }\n return max\n}\n\n/**\n * Returns the first element having the largest value according to the provided [comparator] or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\npublic fun BooleanArray.maxWithOrNull(comparator: Comparator): Boolean? {\n if (isEmpty()) return null\n var max = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (comparator.compare(max, e) < 0) max = e\n }\n return max\n}\n\n/**\n * Returns the first element having the largest value according to the provided [comparator] or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\npublic fun CharArray.maxWithOrNull(comparator: Comparator): Char? {\n if (isEmpty()) return null\n var max = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (comparator.compare(max, e) < 0) max = e\n }\n return max\n}\n\n@Deprecated(\"Use minOrNull instead.\", ReplaceWith(\"this.minOrNull()\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\n@SinceKotlin(\"1.1\")\npublic fun Array.min(): Double? {\n return minOrNull()\n}\n\n@Deprecated(\"Use minOrNull instead.\", ReplaceWith(\"this.minOrNull()\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\n@SinceKotlin(\"1.1\")\npublic fun Array.min(): Float? {\n return minOrNull()\n}\n\n@Deprecated(\"Use minOrNull instead.\", ReplaceWith(\"this.minOrNull()\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\npublic fun > Array.min(): T? {\n return minOrNull()\n}\n\n@Deprecated(\"Use minOrNull instead.\", ReplaceWith(\"this.minOrNull()\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\npublic fun ByteArray.min(): Byte? {\n return minOrNull()\n}\n\n@Deprecated(\"Use minOrNull instead.\", ReplaceWith(\"this.minOrNull()\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\npublic fun ShortArray.min(): Short? {\n return minOrNull()\n}\n\n@Deprecated(\"Use minOrNull instead.\", ReplaceWith(\"this.minOrNull()\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\npublic fun IntArray.min(): Int? {\n return minOrNull()\n}\n\n@Deprecated(\"Use minOrNull instead.\", ReplaceWith(\"this.minOrNull()\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\npublic fun LongArray.min(): Long? {\n return minOrNull()\n}\n\n@Deprecated(\"Use minOrNull instead.\", ReplaceWith(\"this.minOrNull()\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\npublic fun FloatArray.min(): Float? {\n return minOrNull()\n}\n\n@Deprecated(\"Use minOrNull instead.\", ReplaceWith(\"this.minOrNull()\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\npublic fun DoubleArray.min(): Double? {\n return minOrNull()\n}\n\n@Deprecated(\"Use minOrNull instead.\", ReplaceWith(\"this.minOrNull()\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\npublic fun CharArray.min(): Char? {\n return minOrNull()\n}\n\n@Deprecated(\"Use minByOrNull instead.\", ReplaceWith(\"this.minByOrNull(selector)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\npublic inline fun > Array.minBy(selector: (T) -> R): T? {\n return minByOrNull(selector)\n}\n\n@Deprecated(\"Use minByOrNull instead.\", ReplaceWith(\"this.minByOrNull(selector)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\npublic inline fun > ByteArray.minBy(selector: (Byte) -> R): Byte? {\n return minByOrNull(selector)\n}\n\n@Deprecated(\"Use minByOrNull instead.\", ReplaceWith(\"this.minByOrNull(selector)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\npublic inline fun > ShortArray.minBy(selector: (Short) -> R): Short? {\n return minByOrNull(selector)\n}\n\n@Deprecated(\"Use minByOrNull instead.\", ReplaceWith(\"this.minByOrNull(selector)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\npublic inline fun > IntArray.minBy(selector: (Int) -> R): Int? {\n return minByOrNull(selector)\n}\n\n@Deprecated(\"Use minByOrNull instead.\", ReplaceWith(\"this.minByOrNull(selector)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\npublic inline fun > LongArray.minBy(selector: (Long) -> R): Long? {\n return minByOrNull(selector)\n}\n\n@Deprecated(\"Use minByOrNull instead.\", ReplaceWith(\"this.minByOrNull(selector)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\npublic inline fun > FloatArray.minBy(selector: (Float) -> R): Float? {\n return minByOrNull(selector)\n}\n\n@Deprecated(\"Use minByOrNull instead.\", ReplaceWith(\"this.minByOrNull(selector)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\npublic inline fun > DoubleArray.minBy(selector: (Double) -> R): Double? {\n return minByOrNull(selector)\n}\n\n@Deprecated(\"Use minByOrNull instead.\", ReplaceWith(\"this.minByOrNull(selector)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\npublic inline fun > BooleanArray.minBy(selector: (Boolean) -> R): Boolean? {\n return minByOrNull(selector)\n}\n\n@Deprecated(\"Use minByOrNull instead.\", ReplaceWith(\"this.minByOrNull(selector)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\npublic inline fun > CharArray.minBy(selector: (Char) -> R): Char? {\n return minByOrNull(selector)\n}\n\n/**\n * Returns the first element yielding the smallest value of the given function or `null` if there are no elements.\n * \n * @sample samples.collections.Collections.Aggregates.minByOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun > Array.minByOrNull(selector: (T) -> R): T? {\n if (isEmpty()) return null\n var minElem = this[0]\n val lastIndex = this.lastIndex\n if (lastIndex == 0) return minElem\n var minValue = selector(minElem)\n for (i in 1..lastIndex) {\n val e = this[i]\n val v = selector(e)\n if (minValue > v) {\n minElem = e\n minValue = v\n }\n }\n return minElem\n}\n\n/**\n * Returns the first element yielding the smallest value of the given function or `null` if there are no elements.\n * \n * @sample samples.collections.Collections.Aggregates.minByOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun > ByteArray.minByOrNull(selector: (Byte) -> R): Byte? {\n if (isEmpty()) return null\n var minElem = this[0]\n val lastIndex = this.lastIndex\n if (lastIndex == 0) return minElem\n var minValue = selector(minElem)\n for (i in 1..lastIndex) {\n val e = this[i]\n val v = selector(e)\n if (minValue > v) {\n minElem = e\n minValue = v\n }\n }\n return minElem\n}\n\n/**\n * Returns the first element yielding the smallest value of the given function or `null` if there are no elements.\n * \n * @sample samples.collections.Collections.Aggregates.minByOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun > ShortArray.minByOrNull(selector: (Short) -> R): Short? {\n if (isEmpty()) return null\n var minElem = this[0]\n val lastIndex = this.lastIndex\n if (lastIndex == 0) return minElem\n var minValue = selector(minElem)\n for (i in 1..lastIndex) {\n val e = this[i]\n val v = selector(e)\n if (minValue > v) {\n minElem = e\n minValue = v\n }\n }\n return minElem\n}\n\n/**\n * Returns the first element yielding the smallest value of the given function or `null` if there are no elements.\n * \n * @sample samples.collections.Collections.Aggregates.minByOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun > IntArray.minByOrNull(selector: (Int) -> R): Int? {\n if (isEmpty()) return null\n var minElem = this[0]\n val lastIndex = this.lastIndex\n if (lastIndex == 0) return minElem\n var minValue = selector(minElem)\n for (i in 1..lastIndex) {\n val e = this[i]\n val v = selector(e)\n if (minValue > v) {\n minElem = e\n minValue = v\n }\n }\n return minElem\n}\n\n/**\n * Returns the first element yielding the smallest value of the given function or `null` if there are no elements.\n * \n * @sample samples.collections.Collections.Aggregates.minByOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun > LongArray.minByOrNull(selector: (Long) -> R): Long? {\n if (isEmpty()) return null\n var minElem = this[0]\n val lastIndex = this.lastIndex\n if (lastIndex == 0) return minElem\n var minValue = selector(minElem)\n for (i in 1..lastIndex) {\n val e = this[i]\n val v = selector(e)\n if (minValue > v) {\n minElem = e\n minValue = v\n }\n }\n return minElem\n}\n\n/**\n * Returns the first element yielding the smallest value of the given function or `null` if there are no elements.\n * \n * @sample samples.collections.Collections.Aggregates.minByOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun > FloatArray.minByOrNull(selector: (Float) -> R): Float? {\n if (isEmpty()) return null\n var minElem = this[0]\n val lastIndex = this.lastIndex\n if (lastIndex == 0) return minElem\n var minValue = selector(minElem)\n for (i in 1..lastIndex) {\n val e = this[i]\n val v = selector(e)\n if (minValue > v) {\n minElem = e\n minValue = v\n }\n }\n return minElem\n}\n\n/**\n * Returns the first element yielding the smallest value of the given function or `null` if there are no elements.\n * \n * @sample samples.collections.Collections.Aggregates.minByOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun > DoubleArray.minByOrNull(selector: (Double) -> R): Double? {\n if (isEmpty()) return null\n var minElem = this[0]\n val lastIndex = this.lastIndex\n if (lastIndex == 0) return minElem\n var minValue = selector(minElem)\n for (i in 1..lastIndex) {\n val e = this[i]\n val v = selector(e)\n if (minValue > v) {\n minElem = e\n minValue = v\n }\n }\n return minElem\n}\n\n/**\n * Returns the first element yielding the smallest value of the given function or `null` if there are no elements.\n * \n * @sample samples.collections.Collections.Aggregates.minByOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun > BooleanArray.minByOrNull(selector: (Boolean) -> R): Boolean? {\n if (isEmpty()) return null\n var minElem = this[0]\n val lastIndex = this.lastIndex\n if (lastIndex == 0) return minElem\n var minValue = selector(minElem)\n for (i in 1..lastIndex) {\n val e = this[i]\n val v = selector(e)\n if (minValue > v) {\n minElem = e\n minValue = v\n }\n }\n return minElem\n}\n\n/**\n * Returns the first element yielding the smallest value of the given function or `null` if there are no elements.\n * \n * @sample samples.collections.Collections.Aggregates.minByOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun > CharArray.minByOrNull(selector: (Char) -> R): Char? {\n if (isEmpty()) return null\n var minElem = this[0]\n val lastIndex = this.lastIndex\n if (lastIndex == 0) return minElem\n var minValue = selector(minElem)\n for (i in 1..lastIndex) {\n val e = this[i]\n val v = selector(e)\n if (minValue > v) {\n minElem = e\n minValue = v\n }\n }\n return minElem\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Array.minOf(selector: (T) -> Double): Double {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.minOf(selector: (Byte) -> Double): Double {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.minOf(selector: (Short) -> Double): Double {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.minOf(selector: (Int) -> Double): Double {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.minOf(selector: (Long) -> Double): Double {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.minOf(selector: (Float) -> Double): Double {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.minOf(selector: (Double) -> Double): Double {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.minOf(selector: (Boolean) -> Double): Double {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.minOf(selector: (Char) -> Double): Double {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Array.minOf(selector: (T) -> Float): Float {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.minOf(selector: (Byte) -> Float): Float {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.minOf(selector: (Short) -> Float): Float {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.minOf(selector: (Int) -> Float): Float {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.minOf(selector: (Long) -> Float): Float {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.minOf(selector: (Float) -> Float): Float {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.minOf(selector: (Double) -> Float): Float {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.minOf(selector: (Boolean) -> Float): Float {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.minOf(selector: (Char) -> Float): Float {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > Array.minOf(selector: (T) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (minValue > v) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > ByteArray.minOf(selector: (Byte) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (minValue > v) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > ShortArray.minOf(selector: (Short) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (minValue > v) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > IntArray.minOf(selector: (Int) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (minValue > v) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > LongArray.minOf(selector: (Long) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (minValue > v) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > FloatArray.minOf(selector: (Float) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (minValue > v) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > DoubleArray.minOf(selector: (Double) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (minValue > v) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > BooleanArray.minOf(selector: (Boolean) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (minValue > v) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > CharArray.minOf(selector: (Char) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (minValue > v) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Array.minOfOrNull(selector: (T) -> Double): Double? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.minOfOrNull(selector: (Byte) -> Double): Double? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.minOfOrNull(selector: (Short) -> Double): Double? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.minOfOrNull(selector: (Int) -> Double): Double? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.minOfOrNull(selector: (Long) -> Double): Double? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.minOfOrNull(selector: (Float) -> Double): Double? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.minOfOrNull(selector: (Double) -> Double): Double? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.minOfOrNull(selector: (Boolean) -> Double): Double? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.minOfOrNull(selector: (Char) -> Double): Double? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Array.minOfOrNull(selector: (T) -> Float): Float? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.minOfOrNull(selector: (Byte) -> Float): Float? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.minOfOrNull(selector: (Short) -> Float): Float? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.minOfOrNull(selector: (Int) -> Float): Float? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.minOfOrNull(selector: (Long) -> Float): Float? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.minOfOrNull(selector: (Float) -> Float): Float? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.minOfOrNull(selector: (Double) -> Float): Float? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.minOfOrNull(selector: (Boolean) -> Float): Float? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.minOfOrNull(selector: (Char) -> Float): Float? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > Array.minOfOrNull(selector: (T) -> R): R? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (minValue > v) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > ByteArray.minOfOrNull(selector: (Byte) -> R): R? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (minValue > v) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > ShortArray.minOfOrNull(selector: (Short) -> R): R? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (minValue > v) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > IntArray.minOfOrNull(selector: (Int) -> R): R? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (minValue > v) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > LongArray.minOfOrNull(selector: (Long) -> R): R? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (minValue > v) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > FloatArray.minOfOrNull(selector: (Float) -> R): R? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (minValue > v) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > DoubleArray.minOfOrNull(selector: (Double) -> R): R? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (minValue > v) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > BooleanArray.minOfOrNull(selector: (Boolean) -> R): R? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (minValue > v) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > CharArray.minOfOrNull(selector: (Char) -> R): R? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (minValue > v) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Array.minOfWith(comparator: Comparator, selector: (T) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(minValue, v) > 0) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.minOfWith(comparator: Comparator, selector: (Byte) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(minValue, v) > 0) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.minOfWith(comparator: Comparator, selector: (Short) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(minValue, v) > 0) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.minOfWith(comparator: Comparator, selector: (Int) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(minValue, v) > 0) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.minOfWith(comparator: Comparator, selector: (Long) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(minValue, v) > 0) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.minOfWith(comparator: Comparator, selector: (Float) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(minValue, v) > 0) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.minOfWith(comparator: Comparator, selector: (Double) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(minValue, v) > 0) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.minOfWith(comparator: Comparator, selector: (Boolean) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(minValue, v) > 0) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.minOfWith(comparator: Comparator, selector: (Char) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(minValue, v) > 0) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Array.minOfWithOrNull(comparator: Comparator, selector: (T) -> R): R? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(minValue, v) > 0) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.minOfWithOrNull(comparator: Comparator, selector: (Byte) -> R): R? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(minValue, v) > 0) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.minOfWithOrNull(comparator: Comparator, selector: (Short) -> R): R? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(minValue, v) > 0) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.minOfWithOrNull(comparator: Comparator, selector: (Int) -> R): R? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(minValue, v) > 0) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.minOfWithOrNull(comparator: Comparator, selector: (Long) -> R): R? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(minValue, v) > 0) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.minOfWithOrNull(comparator: Comparator, selector: (Float) -> R): R? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(minValue, v) > 0) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.minOfWithOrNull(comparator: Comparator, selector: (Double) -> R): R? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(minValue, v) > 0) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.minOfWithOrNull(comparator: Comparator, selector: (Boolean) -> R): R? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(minValue, v) > 0) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.minOfWithOrNull(comparator: Comparator, selector: (Char) -> R): R? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(minValue, v) > 0) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest element or `null` if there are no elements.\n * \n * If any of elements is `NaN` returns `NaN`.\n */\n@SinceKotlin(\"1.4\")\npublic fun Array.minOrNull(): Double? {\n if (isEmpty()) return null\n var min = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n min = minOf(min, e)\n }\n return min\n}\n\n/**\n * Returns the smallest element or `null` if there are no elements.\n * \n * If any of elements is `NaN` returns `NaN`.\n */\n@SinceKotlin(\"1.4\")\npublic fun Array.minOrNull(): Float? {\n if (isEmpty()) return null\n var min = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n min = minOf(min, e)\n }\n return min\n}\n\n/**\n * Returns the smallest element or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\npublic fun > Array.minOrNull(): T? {\n if (isEmpty()) return null\n var min = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (min > e) min = e\n }\n return min\n}\n\n/**\n * Returns the smallest element or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\npublic fun ByteArray.minOrNull(): Byte? {\n if (isEmpty()) return null\n var min = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (min > e) min = e\n }\n return min\n}\n\n/**\n * Returns the smallest element or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\npublic fun ShortArray.minOrNull(): Short? {\n if (isEmpty()) return null\n var min = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (min > e) min = e\n }\n return min\n}\n\n/**\n * Returns the smallest element or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\npublic fun IntArray.minOrNull(): Int? {\n if (isEmpty()) return null\n var min = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (min > e) min = e\n }\n return min\n}\n\n/**\n * Returns the smallest element or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\npublic fun LongArray.minOrNull(): Long? {\n if (isEmpty()) return null\n var min = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (min > e) min = e\n }\n return min\n}\n\n/**\n * Returns the smallest element or `null` if there are no elements.\n * \n * If any of elements is `NaN` returns `NaN`.\n */\n@SinceKotlin(\"1.4\")\npublic fun FloatArray.minOrNull(): Float? {\n if (isEmpty()) return null\n var min = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n min = minOf(min, e)\n }\n return min\n}\n\n/**\n * Returns the smallest element or `null` if there are no elements.\n * \n * If any of elements is `NaN` returns `NaN`.\n */\n@SinceKotlin(\"1.4\")\npublic fun DoubleArray.minOrNull(): Double? {\n if (isEmpty()) return null\n var min = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n min = minOf(min, e)\n }\n return min\n}\n\n/**\n * Returns the smallest element or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\npublic fun CharArray.minOrNull(): Char? {\n if (isEmpty()) return null\n var min = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (min > e) min = e\n }\n return min\n}\n\n@Deprecated(\"Use minWithOrNull instead.\", ReplaceWith(\"this.minWithOrNull(comparator)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\npublic fun Array.minWith(comparator: Comparator): T? {\n return minWithOrNull(comparator)\n}\n\n@Deprecated(\"Use minWithOrNull instead.\", ReplaceWith(\"this.minWithOrNull(comparator)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\npublic fun ByteArray.minWith(comparator: Comparator): Byte? {\n return minWithOrNull(comparator)\n}\n\n@Deprecated(\"Use minWithOrNull instead.\", ReplaceWith(\"this.minWithOrNull(comparator)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\npublic fun ShortArray.minWith(comparator: Comparator): Short? {\n return minWithOrNull(comparator)\n}\n\n@Deprecated(\"Use minWithOrNull instead.\", ReplaceWith(\"this.minWithOrNull(comparator)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\npublic fun IntArray.minWith(comparator: Comparator): Int? {\n return minWithOrNull(comparator)\n}\n\n@Deprecated(\"Use minWithOrNull instead.\", ReplaceWith(\"this.minWithOrNull(comparator)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\npublic fun LongArray.minWith(comparator: Comparator): Long? {\n return minWithOrNull(comparator)\n}\n\n@Deprecated(\"Use minWithOrNull instead.\", ReplaceWith(\"this.minWithOrNull(comparator)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\npublic fun FloatArray.minWith(comparator: Comparator): Float? {\n return minWithOrNull(comparator)\n}\n\n@Deprecated(\"Use minWithOrNull instead.\", ReplaceWith(\"this.minWithOrNull(comparator)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\npublic fun DoubleArray.minWith(comparator: Comparator): Double? {\n return minWithOrNull(comparator)\n}\n\n@Deprecated(\"Use minWithOrNull instead.\", ReplaceWith(\"this.minWithOrNull(comparator)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\npublic fun BooleanArray.minWith(comparator: Comparator): Boolean? {\n return minWithOrNull(comparator)\n}\n\n@Deprecated(\"Use minWithOrNull instead.\", ReplaceWith(\"this.minWithOrNull(comparator)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\npublic fun CharArray.minWith(comparator: Comparator): Char? {\n return minWithOrNull(comparator)\n}\n\n/**\n * Returns the first element having the smallest value according to the provided [comparator] or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\npublic fun Array.minWithOrNull(comparator: Comparator): T? {\n if (isEmpty()) return null\n var min = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (comparator.compare(min, e) > 0) min = e\n }\n return min\n}\n\n/**\n * Returns the first element having the smallest value according to the provided [comparator] or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\npublic fun ByteArray.minWithOrNull(comparator: Comparator): Byte? {\n if (isEmpty()) return null\n var min = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (comparator.compare(min, e) > 0) min = e\n }\n return min\n}\n\n/**\n * Returns the first element having the smallest value according to the provided [comparator] or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\npublic fun ShortArray.minWithOrNull(comparator: Comparator): Short? {\n if (isEmpty()) return null\n var min = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (comparator.compare(min, e) > 0) min = e\n }\n return min\n}\n\n/**\n * Returns the first element having the smallest value according to the provided [comparator] or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\npublic fun IntArray.minWithOrNull(comparator: Comparator): Int? {\n if (isEmpty()) return null\n var min = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (comparator.compare(min, e) > 0) min = e\n }\n return min\n}\n\n/**\n * Returns the first element having the smallest value according to the provided [comparator] or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\npublic fun LongArray.minWithOrNull(comparator: Comparator): Long? {\n if (isEmpty()) return null\n var min = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (comparator.compare(min, e) > 0) min = e\n }\n return min\n}\n\n/**\n * Returns the first element having the smallest value according to the provided [comparator] or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\npublic fun FloatArray.minWithOrNull(comparator: Comparator): Float? {\n if (isEmpty()) return null\n var min = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (comparator.compare(min, e) > 0) min = e\n }\n return min\n}\n\n/**\n * Returns the first element having the smallest value according to the provided [comparator] or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\npublic fun DoubleArray.minWithOrNull(comparator: Comparator): Double? {\n if (isEmpty()) return null\n var min = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (comparator.compare(min, e) > 0) min = e\n }\n return min\n}\n\n/**\n * Returns the first element having the smallest value according to the provided [comparator] or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\npublic fun BooleanArray.minWithOrNull(comparator: Comparator): Boolean? {\n if (isEmpty()) return null\n var min = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (comparator.compare(min, e) > 0) min = e\n }\n return min\n}\n\n/**\n * Returns the first element having the smallest value according to the provided [comparator] or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\npublic fun CharArray.minWithOrNull(comparator: Comparator): Char? {\n if (isEmpty()) return null\n var min = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (comparator.compare(min, e) > 0) min = e\n }\n return min\n}\n\n/**\n * Returns `true` if the array has no elements.\n * \n * @sample samples.collections.Collections.Aggregates.none\n */\npublic fun Array.none(): Boolean {\n return isEmpty()\n}\n\n/**\n * Returns `true` if the array has no elements.\n * \n * @sample samples.collections.Collections.Aggregates.none\n */\npublic fun ByteArray.none(): Boolean {\n return isEmpty()\n}\n\n/**\n * Returns `true` if the array has no elements.\n * \n * @sample samples.collections.Collections.Aggregates.none\n */\npublic fun ShortArray.none(): Boolean {\n return isEmpty()\n}\n\n/**\n * Returns `true` if the array has no elements.\n * \n * @sample samples.collections.Collections.Aggregates.none\n */\npublic fun IntArray.none(): Boolean {\n return isEmpty()\n}\n\n/**\n * Returns `true` if the array has no elements.\n * \n * @sample samples.collections.Collections.Aggregates.none\n */\npublic fun LongArray.none(): Boolean {\n return isEmpty()\n}\n\n/**\n * Returns `true` if the array has no elements.\n * \n * @sample samples.collections.Collections.Aggregates.none\n */\npublic fun FloatArray.none(): Boolean {\n return isEmpty()\n}\n\n/**\n * Returns `true` if the array has no elements.\n * \n * @sample samples.collections.Collections.Aggregates.none\n */\npublic fun DoubleArray.none(): Boolean {\n return isEmpty()\n}\n\n/**\n * Returns `true` if the array has no elements.\n * \n * @sample samples.collections.Collections.Aggregates.none\n */\npublic fun BooleanArray.none(): Boolean {\n return isEmpty()\n}\n\n/**\n * Returns `true` if the array has no elements.\n * \n * @sample samples.collections.Collections.Aggregates.none\n */\npublic fun CharArray.none(): Boolean {\n return isEmpty()\n}\n\n/**\n * Returns `true` if no elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.noneWithPredicate\n */\npublic inline fun Array.none(predicate: (T) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if no elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.noneWithPredicate\n */\npublic inline fun ByteArray.none(predicate: (Byte) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if no elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.noneWithPredicate\n */\npublic inline fun ShortArray.none(predicate: (Short) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if no elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.noneWithPredicate\n */\npublic inline fun IntArray.none(predicate: (Int) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if no elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.noneWithPredicate\n */\npublic inline fun LongArray.none(predicate: (Long) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if no elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.noneWithPredicate\n */\npublic inline fun FloatArray.none(predicate: (Float) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if no elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.noneWithPredicate\n */\npublic inline fun DoubleArray.none(predicate: (Double) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if no elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.noneWithPredicate\n */\npublic inline fun BooleanArray.none(predicate: (Boolean) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if no elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.noneWithPredicate\n */\npublic inline fun CharArray.none(predicate: (Char) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return false\n return true\n}\n\n/**\n * Performs the given [action] on each element and returns the array itself afterwards.\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun Array.onEach(action: (T) -> Unit): Array {\n return apply { for (element in this) action(element) }\n}\n\n/**\n * Performs the given [action] on each element and returns the array itself afterwards.\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.onEach(action: (Byte) -> Unit): ByteArray {\n return apply { for (element in this) action(element) }\n}\n\n/**\n * Performs the given [action] on each element and returns the array itself afterwards.\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.onEach(action: (Short) -> Unit): ShortArray {\n return apply { for (element in this) action(element) }\n}\n\n/**\n * Performs the given [action] on each element and returns the array itself afterwards.\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.onEach(action: (Int) -> Unit): IntArray {\n return apply { for (element in this) action(element) }\n}\n\n/**\n * Performs the given [action] on each element and returns the array itself afterwards.\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.onEach(action: (Long) -> Unit): LongArray {\n return apply { for (element in this) action(element) }\n}\n\n/**\n * Performs the given [action] on each element and returns the array itself afterwards.\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.onEach(action: (Float) -> Unit): FloatArray {\n return apply { for (element in this) action(element) }\n}\n\n/**\n * Performs the given [action] on each element and returns the array itself afterwards.\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.onEach(action: (Double) -> Unit): DoubleArray {\n return apply { for (element in this) action(element) }\n}\n\n/**\n * Performs the given [action] on each element and returns the array itself afterwards.\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.onEach(action: (Boolean) -> Unit): BooleanArray {\n return apply { for (element in this) action(element) }\n}\n\n/**\n * Performs the given [action] on each element and returns the array itself afterwards.\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.onEach(action: (Char) -> Unit): CharArray {\n return apply { for (element in this) action(element) }\n}\n\n/**\n * Performs the given [action] on each element, providing sequential index with the element,\n * and returns the array itself afterwards.\n * @param [action] function that takes the index of an element and the element itself\n * and performs the action on the element.\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun Array.onEachIndexed(action: (index: Int, T) -> Unit): Array {\n return apply { forEachIndexed(action) }\n}\n\n/**\n * Performs the given [action] on each element, providing sequential index with the element,\n * and returns the array itself afterwards.\n * @param [action] function that takes the index of an element and the element itself\n * and performs the action on the element.\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.onEachIndexed(action: (index: Int, Byte) -> Unit): ByteArray {\n return apply { forEachIndexed(action) }\n}\n\n/**\n * Performs the given [action] on each element, providing sequential index with the element,\n * and returns the array itself afterwards.\n * @param [action] function that takes the index of an element and the element itself\n * and performs the action on the element.\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.onEachIndexed(action: (index: Int, Short) -> Unit): ShortArray {\n return apply { forEachIndexed(action) }\n}\n\n/**\n * Performs the given [action] on each element, providing sequential index with the element,\n * and returns the array itself afterwards.\n * @param [action] function that takes the index of an element and the element itself\n * and performs the action on the element.\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.onEachIndexed(action: (index: Int, Int) -> Unit): IntArray {\n return apply { forEachIndexed(action) }\n}\n\n/**\n * Performs the given [action] on each element, providing sequential index with the element,\n * and returns the array itself afterwards.\n * @param [action] function that takes the index of an element and the element itself\n * and performs the action on the element.\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.onEachIndexed(action: (index: Int, Long) -> Unit): LongArray {\n return apply { forEachIndexed(action) }\n}\n\n/**\n * Performs the given [action] on each element, providing sequential index with the element,\n * and returns the array itself afterwards.\n * @param [action] function that takes the index of an element and the element itself\n * and performs the action on the element.\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.onEachIndexed(action: (index: Int, Float) -> Unit): FloatArray {\n return apply { forEachIndexed(action) }\n}\n\n/**\n * Performs the given [action] on each element, providing sequential index with the element,\n * and returns the array itself afterwards.\n * @param [action] function that takes the index of an element and the element itself\n * and performs the action on the element.\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.onEachIndexed(action: (index: Int, Double) -> Unit): DoubleArray {\n return apply { forEachIndexed(action) }\n}\n\n/**\n * Performs the given [action] on each element, providing sequential index with the element,\n * and returns the array itself afterwards.\n * @param [action] function that takes the index of an element and the element itself\n * and performs the action on the element.\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.onEachIndexed(action: (index: Int, Boolean) -> Unit): BooleanArray {\n return apply { forEachIndexed(action) }\n}\n\n/**\n * Performs the given [action] on each element, providing sequential index with the element,\n * and returns the array itself afterwards.\n * @param [action] function that takes the index of an element and the element itself\n * and performs the action on the element.\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.onEachIndexed(action: (index: Int, Char) -> Unit): CharArray {\n return apply { forEachIndexed(action) }\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right\n * to current accumulator value and each element.\n * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes current accumulator value and an element,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduce\n */\npublic inline fun Array.reduce(operation: (acc: S, T) -> S): S {\n if (isEmpty())\n throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator: S = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right\n * to current accumulator value and each element.\n * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes current accumulator value and an element,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduce\n */\npublic inline fun ByteArray.reduce(operation: (acc: Byte, Byte) -> Byte): Byte {\n if (isEmpty())\n throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right\n * to current accumulator value and each element.\n * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes current accumulator value and an element,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduce\n */\npublic inline fun ShortArray.reduce(operation: (acc: Short, Short) -> Short): Short {\n if (isEmpty())\n throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right\n * to current accumulator value and each element.\n * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes current accumulator value and an element,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduce\n */\npublic inline fun IntArray.reduce(operation: (acc: Int, Int) -> Int): Int {\n if (isEmpty())\n throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right\n * to current accumulator value and each element.\n * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes current accumulator value and an element,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduce\n */\npublic inline fun LongArray.reduce(operation: (acc: Long, Long) -> Long): Long {\n if (isEmpty())\n throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right\n * to current accumulator value and each element.\n * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes current accumulator value and an element,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduce\n */\npublic inline fun FloatArray.reduce(operation: (acc: Float, Float) -> Float): Float {\n if (isEmpty())\n throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right\n * to current accumulator value and each element.\n * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes current accumulator value and an element,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduce\n */\npublic inline fun DoubleArray.reduce(operation: (acc: Double, Double) -> Double): Double {\n if (isEmpty())\n throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right\n * to current accumulator value and each element.\n * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes current accumulator value and an element,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduce\n */\npublic inline fun BooleanArray.reduce(operation: (acc: Boolean, Boolean) -> Boolean): Boolean {\n if (isEmpty())\n throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right\n * to current accumulator value and each element.\n * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes current accumulator value and an element,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduce\n */\npublic inline fun CharArray.reduce(operation: (acc: Char, Char) -> Char): Char {\n if (isEmpty())\n throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original array.\n * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceIndexedOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes the index of an element, current accumulator value and the element itself,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduce\n */\npublic inline fun Array.reduceIndexed(operation: (index: Int, acc: S, T) -> S): S {\n if (isEmpty())\n throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator: S = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(index, accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original array.\n * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceIndexedOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes the index of an element, current accumulator value and the element itself,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduce\n */\npublic inline fun ByteArray.reduceIndexed(operation: (index: Int, acc: Byte, Byte) -> Byte): Byte {\n if (isEmpty())\n throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(index, accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original array.\n * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceIndexedOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes the index of an element, current accumulator value and the element itself,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduce\n */\npublic inline fun ShortArray.reduceIndexed(operation: (index: Int, acc: Short, Short) -> Short): Short {\n if (isEmpty())\n throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(index, accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original array.\n * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceIndexedOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes the index of an element, current accumulator value and the element itself,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduce\n */\npublic inline fun IntArray.reduceIndexed(operation: (index: Int, acc: Int, Int) -> Int): Int {\n if (isEmpty())\n throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(index, accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original array.\n * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceIndexedOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes the index of an element, current accumulator value and the element itself,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduce\n */\npublic inline fun LongArray.reduceIndexed(operation: (index: Int, acc: Long, Long) -> Long): Long {\n if (isEmpty())\n throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(index, accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original array.\n * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceIndexedOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes the index of an element, current accumulator value and the element itself,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduce\n */\npublic inline fun FloatArray.reduceIndexed(operation: (index: Int, acc: Float, Float) -> Float): Float {\n if (isEmpty())\n throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(index, accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original array.\n * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceIndexedOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes the index of an element, current accumulator value and the element itself,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduce\n */\npublic inline fun DoubleArray.reduceIndexed(operation: (index: Int, acc: Double, Double) -> Double): Double {\n if (isEmpty())\n throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(index, accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original array.\n * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceIndexedOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes the index of an element, current accumulator value and the element itself,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduce\n */\npublic inline fun BooleanArray.reduceIndexed(operation: (index: Int, acc: Boolean, Boolean) -> Boolean): Boolean {\n if (isEmpty())\n throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(index, accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original array.\n * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceIndexedOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes the index of an element, current accumulator value and the element itself,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduce\n */\npublic inline fun CharArray.reduceIndexed(operation: (index: Int, acc: Char, Char) -> Char): Char {\n if (isEmpty())\n throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(index, accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original array.\n * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes the index of an element, current accumulator value and the element itself,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun Array.reduceIndexedOrNull(operation: (index: Int, acc: S, T) -> S): S? {\n if (isEmpty())\n return null\n var accumulator: S = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(index, accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original array.\n * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes the index of an element, current accumulator value and the element itself,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun ByteArray.reduceIndexedOrNull(operation: (index: Int, acc: Byte, Byte) -> Byte): Byte? {\n if (isEmpty())\n return null\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(index, accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original array.\n * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes the index of an element, current accumulator value and the element itself,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun ShortArray.reduceIndexedOrNull(operation: (index: Int, acc: Short, Short) -> Short): Short? {\n if (isEmpty())\n return null\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(index, accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original array.\n * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes the index of an element, current accumulator value and the element itself,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun IntArray.reduceIndexedOrNull(operation: (index: Int, acc: Int, Int) -> Int): Int? {\n if (isEmpty())\n return null\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(index, accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original array.\n * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes the index of an element, current accumulator value and the element itself,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun LongArray.reduceIndexedOrNull(operation: (index: Int, acc: Long, Long) -> Long): Long? {\n if (isEmpty())\n return null\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(index, accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original array.\n * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes the index of an element, current accumulator value and the element itself,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun FloatArray.reduceIndexedOrNull(operation: (index: Int, acc: Float, Float) -> Float): Float? {\n if (isEmpty())\n return null\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(index, accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original array.\n * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes the index of an element, current accumulator value and the element itself,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun DoubleArray.reduceIndexedOrNull(operation: (index: Int, acc: Double, Double) -> Double): Double? {\n if (isEmpty())\n return null\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(index, accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original array.\n * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes the index of an element, current accumulator value and the element itself,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun BooleanArray.reduceIndexedOrNull(operation: (index: Int, acc: Boolean, Boolean) -> Boolean): Boolean? {\n if (isEmpty())\n return null\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(index, accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original array.\n * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes the index of an element, current accumulator value and the element itself,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun CharArray.reduceIndexedOrNull(operation: (index: Int, acc: Char, Char) -> Char): Char? {\n if (isEmpty())\n return null\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(index, accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right\n * to current accumulator value and each element.\n * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes current accumulator value and an element,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceOrNull\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic inline fun Array.reduceOrNull(operation: (acc: S, T) -> S): S? {\n if (isEmpty())\n return null\n var accumulator: S = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right\n * to current accumulator value and each element.\n * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes current accumulator value and an element,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceOrNull\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic inline fun ByteArray.reduceOrNull(operation: (acc: Byte, Byte) -> Byte): Byte? {\n if (isEmpty())\n return null\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right\n * to current accumulator value and each element.\n * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes current accumulator value and an element,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceOrNull\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic inline fun ShortArray.reduceOrNull(operation: (acc: Short, Short) -> Short): Short? {\n if (isEmpty())\n return null\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right\n * to current accumulator value and each element.\n * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes current accumulator value and an element,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceOrNull\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic inline fun IntArray.reduceOrNull(operation: (acc: Int, Int) -> Int): Int? {\n if (isEmpty())\n return null\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right\n * to current accumulator value and each element.\n * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes current accumulator value and an element,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceOrNull\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic inline fun LongArray.reduceOrNull(operation: (acc: Long, Long) -> Long): Long? {\n if (isEmpty())\n return null\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right\n * to current accumulator value and each element.\n * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes current accumulator value and an element,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceOrNull\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic inline fun FloatArray.reduceOrNull(operation: (acc: Float, Float) -> Float): Float? {\n if (isEmpty())\n return null\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right\n * to current accumulator value and each element.\n * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes current accumulator value and an element,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceOrNull\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic inline fun DoubleArray.reduceOrNull(operation: (acc: Double, Double) -> Double): Double? {\n if (isEmpty())\n return null\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right\n * to current accumulator value and each element.\n * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes current accumulator value and an element,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceOrNull\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic inline fun BooleanArray.reduceOrNull(operation: (acc: Boolean, Boolean) -> Boolean): Boolean? {\n if (isEmpty())\n return null\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right\n * to current accumulator value and each element.\n * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes current accumulator value and an element,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceOrNull\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic inline fun CharArray.reduceOrNull(operation: (acc: Char, Char) -> Char): Char? {\n if (isEmpty())\n return null\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the last element and applying [operation] from right to left\n * to each element and current accumulator value.\n * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceRightOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes an element and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRight\n */\npublic inline fun Array.reduceRight(operation: (T, acc: S) -> S): S {\n var index = lastIndex\n if (index < 0) throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator: S = get(index--)\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the last element and applying [operation] from right to left\n * to each element and current accumulator value.\n * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceRightOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes an element and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRight\n */\npublic inline fun ByteArray.reduceRight(operation: (Byte, acc: Byte) -> Byte): Byte {\n var index = lastIndex\n if (index < 0) throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the last element and applying [operation] from right to left\n * to each element and current accumulator value.\n * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceRightOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes an element and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRight\n */\npublic inline fun ShortArray.reduceRight(operation: (Short, acc: Short) -> Short): Short {\n var index = lastIndex\n if (index < 0) throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the last element and applying [operation] from right to left\n * to each element and current accumulator value.\n * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceRightOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes an element and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRight\n */\npublic inline fun IntArray.reduceRight(operation: (Int, acc: Int) -> Int): Int {\n var index = lastIndex\n if (index < 0) throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the last element and applying [operation] from right to left\n * to each element and current accumulator value.\n * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceRightOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes an element and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRight\n */\npublic inline fun LongArray.reduceRight(operation: (Long, acc: Long) -> Long): Long {\n var index = lastIndex\n if (index < 0) throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the last element and applying [operation] from right to left\n * to each element and current accumulator value.\n * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceRightOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes an element and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRight\n */\npublic inline fun FloatArray.reduceRight(operation: (Float, acc: Float) -> Float): Float {\n var index = lastIndex\n if (index < 0) throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the last element and applying [operation] from right to left\n * to each element and current accumulator value.\n * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceRightOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes an element and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRight\n */\npublic inline fun DoubleArray.reduceRight(operation: (Double, acc: Double) -> Double): Double {\n var index = lastIndex\n if (index < 0) throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the last element and applying [operation] from right to left\n * to each element and current accumulator value.\n * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceRightOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes an element and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRight\n */\npublic inline fun BooleanArray.reduceRight(operation: (Boolean, acc: Boolean) -> Boolean): Boolean {\n var index = lastIndex\n if (index < 0) throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the last element and applying [operation] from right to left\n * to each element and current accumulator value.\n * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceRightOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes an element and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRight\n */\npublic inline fun CharArray.reduceRight(operation: (Char, acc: Char) -> Char): Char {\n var index = lastIndex\n if (index < 0) throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the last element and applying [operation] from right to left\n * to each element with its index in the original array and current accumulator value.\n * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceRightIndexedOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes the index of an element, the element itself and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRight\n */\npublic inline fun Array.reduceRightIndexed(operation: (index: Int, T, acc: S) -> S): S {\n var index = lastIndex\n if (index < 0) throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator: S = get(index--)\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the last element and applying [operation] from right to left\n * to each element with its index in the original array and current accumulator value.\n * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceRightIndexedOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes the index of an element, the element itself and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRight\n */\npublic inline fun ByteArray.reduceRightIndexed(operation: (index: Int, Byte, acc: Byte) -> Byte): Byte {\n var index = lastIndex\n if (index < 0) throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the last element and applying [operation] from right to left\n * to each element with its index in the original array and current accumulator value.\n * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceRightIndexedOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes the index of an element, the element itself and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRight\n */\npublic inline fun ShortArray.reduceRightIndexed(operation: (index: Int, Short, acc: Short) -> Short): Short {\n var index = lastIndex\n if (index < 0) throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the last element and applying [operation] from right to left\n * to each element with its index in the original array and current accumulator value.\n * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceRightIndexedOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes the index of an element, the element itself and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRight\n */\npublic inline fun IntArray.reduceRightIndexed(operation: (index: Int, Int, acc: Int) -> Int): Int {\n var index = lastIndex\n if (index < 0) throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the last element and applying [operation] from right to left\n * to each element with its index in the original array and current accumulator value.\n * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceRightIndexedOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes the index of an element, the element itself and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRight\n */\npublic inline fun LongArray.reduceRightIndexed(operation: (index: Int, Long, acc: Long) -> Long): Long {\n var index = lastIndex\n if (index < 0) throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the last element and applying [operation] from right to left\n * to each element with its index in the original array and current accumulator value.\n * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceRightIndexedOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes the index of an element, the element itself and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRight\n */\npublic inline fun FloatArray.reduceRightIndexed(operation: (index: Int, Float, acc: Float) -> Float): Float {\n var index = lastIndex\n if (index < 0) throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the last element and applying [operation] from right to left\n * to each element with its index in the original array and current accumulator value.\n * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceRightIndexedOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes the index of an element, the element itself and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRight\n */\npublic inline fun DoubleArray.reduceRightIndexed(operation: (index: Int, Double, acc: Double) -> Double): Double {\n var index = lastIndex\n if (index < 0) throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the last element and applying [operation] from right to left\n * to each element with its index in the original array and current accumulator value.\n * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceRightIndexedOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes the index of an element, the element itself and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRight\n */\npublic inline fun BooleanArray.reduceRightIndexed(operation: (index: Int, Boolean, acc: Boolean) -> Boolean): Boolean {\n var index = lastIndex\n if (index < 0) throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the last element and applying [operation] from right to left\n * to each element with its index in the original array and current accumulator value.\n * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceRightIndexedOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes the index of an element, the element itself and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRight\n */\npublic inline fun CharArray.reduceRightIndexed(operation: (index: Int, Char, acc: Char) -> Char): Char {\n var index = lastIndex\n if (index < 0) throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the last element and applying [operation] from right to left\n * to each element with its index in the original array and current accumulator value.\n * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes the index of an element, the element itself and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRightOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun Array.reduceRightIndexedOrNull(operation: (index: Int, T, acc: S) -> S): S? {\n var index = lastIndex\n if (index < 0) return null\n var accumulator: S = get(index--)\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the last element and applying [operation] from right to left\n * to each element with its index in the original array and current accumulator value.\n * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes the index of an element, the element itself and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRightOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun ByteArray.reduceRightIndexedOrNull(operation: (index: Int, Byte, acc: Byte) -> Byte): Byte? {\n var index = lastIndex\n if (index < 0) return null\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the last element and applying [operation] from right to left\n * to each element with its index in the original array and current accumulator value.\n * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes the index of an element, the element itself and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRightOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun ShortArray.reduceRightIndexedOrNull(operation: (index: Int, Short, acc: Short) -> Short): Short? {\n var index = lastIndex\n if (index < 0) return null\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the last element and applying [operation] from right to left\n * to each element with its index in the original array and current accumulator value.\n * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes the index of an element, the element itself and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRightOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun IntArray.reduceRightIndexedOrNull(operation: (index: Int, Int, acc: Int) -> Int): Int? {\n var index = lastIndex\n if (index < 0) return null\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the last element and applying [operation] from right to left\n * to each element with its index in the original array and current accumulator value.\n * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes the index of an element, the element itself and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRightOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun LongArray.reduceRightIndexedOrNull(operation: (index: Int, Long, acc: Long) -> Long): Long? {\n var index = lastIndex\n if (index < 0) return null\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the last element and applying [operation] from right to left\n * to each element with its index in the original array and current accumulator value.\n * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes the index of an element, the element itself and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRightOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun FloatArray.reduceRightIndexedOrNull(operation: (index: Int, Float, acc: Float) -> Float): Float? {\n var index = lastIndex\n if (index < 0) return null\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the last element and applying [operation] from right to left\n * to each element with its index in the original array and current accumulator value.\n * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes the index of an element, the element itself and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRightOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun DoubleArray.reduceRightIndexedOrNull(operation: (index: Int, Double, acc: Double) -> Double): Double? {\n var index = lastIndex\n if (index < 0) return null\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the last element and applying [operation] from right to left\n * to each element with its index in the original array and current accumulator value.\n * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes the index of an element, the element itself and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRightOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun BooleanArray.reduceRightIndexedOrNull(operation: (index: Int, Boolean, acc: Boolean) -> Boolean): Boolean? {\n var index = lastIndex\n if (index < 0) return null\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the last element and applying [operation] from right to left\n * to each element with its index in the original array and current accumulator value.\n * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes the index of an element, the element itself and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRightOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun CharArray.reduceRightIndexedOrNull(operation: (index: Int, Char, acc: Char) -> Char): Char? {\n var index = lastIndex\n if (index < 0) return null\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the last element and applying [operation] from right to left\n * to each element and current accumulator value.\n * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes an element and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRightOrNull\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic inline fun Array.reduceRightOrNull(operation: (T, acc: S) -> S): S? {\n var index = lastIndex\n if (index < 0) return null\n var accumulator: S = get(index--)\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the last element and applying [operation] from right to left\n * to each element and current accumulator value.\n * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes an element and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRightOrNull\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic inline fun ByteArray.reduceRightOrNull(operation: (Byte, acc: Byte) -> Byte): Byte? {\n var index = lastIndex\n if (index < 0) return null\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the last element and applying [operation] from right to left\n * to each element and current accumulator value.\n * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes an element and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRightOrNull\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic inline fun ShortArray.reduceRightOrNull(operation: (Short, acc: Short) -> Short): Short? {\n var index = lastIndex\n if (index < 0) return null\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the last element and applying [operation] from right to left\n * to each element and current accumulator value.\n * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes an element and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRightOrNull\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic inline fun IntArray.reduceRightOrNull(operation: (Int, acc: Int) -> Int): Int? {\n var index = lastIndex\n if (index < 0) return null\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the last element and applying [operation] from right to left\n * to each element and current accumulator value.\n * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes an element and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRightOrNull\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic inline fun LongArray.reduceRightOrNull(operation: (Long, acc: Long) -> Long): Long? {\n var index = lastIndex\n if (index < 0) return null\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the last element and applying [operation] from right to left\n * to each element and current accumulator value.\n * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes an element and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRightOrNull\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic inline fun FloatArray.reduceRightOrNull(operation: (Float, acc: Float) -> Float): Float? {\n var index = lastIndex\n if (index < 0) return null\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the last element and applying [operation] from right to left\n * to each element and current accumulator value.\n * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes an element and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRightOrNull\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic inline fun DoubleArray.reduceRightOrNull(operation: (Double, acc: Double) -> Double): Double? {\n var index = lastIndex\n if (index < 0) return null\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the last element and applying [operation] from right to left\n * to each element and current accumulator value.\n * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes an element and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRightOrNull\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic inline fun BooleanArray.reduceRightOrNull(operation: (Boolean, acc: Boolean) -> Boolean): Boolean? {\n var index = lastIndex\n if (index < 0) return null\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the last element and applying [operation] from right to left\n * to each element and current accumulator value.\n * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes an element and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRightOrNull\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic inline fun CharArray.reduceRightOrNull(operation: (Char, acc: Char) -> Char): Char? {\n var index = lastIndex\n if (index < 0) return null\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningFold\n */\n@SinceKotlin(\"1.4\")\npublic inline fun Array.runningFold(initial: R, operation: (acc: R, T) -> R): List {\n if (isEmpty()) return listOf(initial)\n val result = ArrayList(size + 1).apply { add(initial) }\n var accumulator = initial\n for (element in this) {\n accumulator = operation(accumulator, element)\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningFold\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.runningFold(initial: R, operation: (acc: R, Byte) -> R): List {\n if (isEmpty()) return listOf(initial)\n val result = ArrayList(size + 1).apply { add(initial) }\n var accumulator = initial\n for (element in this) {\n accumulator = operation(accumulator, element)\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningFold\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.runningFold(initial: R, operation: (acc: R, Short) -> R): List {\n if (isEmpty()) return listOf(initial)\n val result = ArrayList(size + 1).apply { add(initial) }\n var accumulator = initial\n for (element in this) {\n accumulator = operation(accumulator, element)\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningFold\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.runningFold(initial: R, operation: (acc: R, Int) -> R): List {\n if (isEmpty()) return listOf(initial)\n val result = ArrayList(size + 1).apply { add(initial) }\n var accumulator = initial\n for (element in this) {\n accumulator = operation(accumulator, element)\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningFold\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.runningFold(initial: R, operation: (acc: R, Long) -> R): List {\n if (isEmpty()) return listOf(initial)\n val result = ArrayList(size + 1).apply { add(initial) }\n var accumulator = initial\n for (element in this) {\n accumulator = operation(accumulator, element)\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningFold\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.runningFold(initial: R, operation: (acc: R, Float) -> R): List {\n if (isEmpty()) return listOf(initial)\n val result = ArrayList(size + 1).apply { add(initial) }\n var accumulator = initial\n for (element in this) {\n accumulator = operation(accumulator, element)\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningFold\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.runningFold(initial: R, operation: (acc: R, Double) -> R): List {\n if (isEmpty()) return listOf(initial)\n val result = ArrayList(size + 1).apply { add(initial) }\n var accumulator = initial\n for (element in this) {\n accumulator = operation(accumulator, element)\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningFold\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.runningFold(initial: R, operation: (acc: R, Boolean) -> R): List {\n if (isEmpty()) return listOf(initial)\n val result = ArrayList(size + 1).apply { add(initial) }\n var accumulator = initial\n for (element in this) {\n accumulator = operation(accumulator, element)\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningFold\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.runningFold(initial: R, operation: (acc: R, Char) -> R): List {\n if (isEmpty()) return listOf(initial)\n val result = ArrayList(size + 1).apply { add(initial) }\n var accumulator = initial\n for (element in this) {\n accumulator = operation(accumulator, element)\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original array and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningFold\n */\n@SinceKotlin(\"1.4\")\npublic inline fun Array.runningFoldIndexed(initial: R, operation: (index: Int, acc: R, T) -> R): List {\n if (isEmpty()) return listOf(initial)\n val result = ArrayList(size + 1).apply { add(initial) }\n var accumulator = initial\n for (index in indices) {\n accumulator = operation(index, accumulator, this[index])\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original array and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningFold\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.runningFoldIndexed(initial: R, operation: (index: Int, acc: R, Byte) -> R): List {\n if (isEmpty()) return listOf(initial)\n val result = ArrayList(size + 1).apply { add(initial) }\n var accumulator = initial\n for (index in indices) {\n accumulator = operation(index, accumulator, this[index])\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original array and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningFold\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.runningFoldIndexed(initial: R, operation: (index: Int, acc: R, Short) -> R): List {\n if (isEmpty()) return listOf(initial)\n val result = ArrayList(size + 1).apply { add(initial) }\n var accumulator = initial\n for (index in indices) {\n accumulator = operation(index, accumulator, this[index])\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original array and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningFold\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.runningFoldIndexed(initial: R, operation: (index: Int, acc: R, Int) -> R): List {\n if (isEmpty()) return listOf(initial)\n val result = ArrayList(size + 1).apply { add(initial) }\n var accumulator = initial\n for (index in indices) {\n accumulator = operation(index, accumulator, this[index])\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original array and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningFold\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.runningFoldIndexed(initial: R, operation: (index: Int, acc: R, Long) -> R): List {\n if (isEmpty()) return listOf(initial)\n val result = ArrayList(size + 1).apply { add(initial) }\n var accumulator = initial\n for (index in indices) {\n accumulator = operation(index, accumulator, this[index])\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original array and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningFold\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.runningFoldIndexed(initial: R, operation: (index: Int, acc: R, Float) -> R): List {\n if (isEmpty()) return listOf(initial)\n val result = ArrayList(size + 1).apply { add(initial) }\n var accumulator = initial\n for (index in indices) {\n accumulator = operation(index, accumulator, this[index])\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original array and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningFold\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.runningFoldIndexed(initial: R, operation: (index: Int, acc: R, Double) -> R): List {\n if (isEmpty()) return listOf(initial)\n val result = ArrayList(size + 1).apply { add(initial) }\n var accumulator = initial\n for (index in indices) {\n accumulator = operation(index, accumulator, this[index])\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original array and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningFold\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.runningFoldIndexed(initial: R, operation: (index: Int, acc: R, Boolean) -> R): List {\n if (isEmpty()) return listOf(initial)\n val result = ArrayList(size + 1).apply { add(initial) }\n var accumulator = initial\n for (index in indices) {\n accumulator = operation(index, accumulator, this[index])\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original array and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningFold\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.runningFoldIndexed(initial: R, operation: (index: Int, acc: R, Char) -> R): List {\n if (isEmpty()) return listOf(initial)\n val result = ArrayList(size + 1).apply { add(initial) }\n var accumulator = initial\n for (index in indices) {\n accumulator = operation(index, accumulator, this[index])\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with the first element of this array.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes current accumulator value and the element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningReduce\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic inline fun Array.runningReduce(operation: (acc: S, T) -> S): List {\n if (isEmpty()) return emptyList()\n var accumulator: S = this[0]\n val result = ArrayList(size).apply { add(accumulator) }\n for (index in 1 until size) {\n accumulator = operation(accumulator, this[index])\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with the first element of this array.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningReduce\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.runningReduce(operation: (acc: Byte, Byte) -> Byte): List {\n if (isEmpty()) return emptyList()\n var accumulator = this[0]\n val result = ArrayList(size).apply { add(accumulator) }\n for (index in 1 until size) {\n accumulator = operation(accumulator, this[index])\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with the first element of this array.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningReduce\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.runningReduce(operation: (acc: Short, Short) -> Short): List {\n if (isEmpty()) return emptyList()\n var accumulator = this[0]\n val result = ArrayList(size).apply { add(accumulator) }\n for (index in 1 until size) {\n accumulator = operation(accumulator, this[index])\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with the first element of this array.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningReduce\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.runningReduce(operation: (acc: Int, Int) -> Int): List {\n if (isEmpty()) return emptyList()\n var accumulator = this[0]\n val result = ArrayList(size).apply { add(accumulator) }\n for (index in 1 until size) {\n accumulator = operation(accumulator, this[index])\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with the first element of this array.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningReduce\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.runningReduce(operation: (acc: Long, Long) -> Long): List {\n if (isEmpty()) return emptyList()\n var accumulator = this[0]\n val result = ArrayList(size).apply { add(accumulator) }\n for (index in 1 until size) {\n accumulator = operation(accumulator, this[index])\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with the first element of this array.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningReduce\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.runningReduce(operation: (acc: Float, Float) -> Float): List {\n if (isEmpty()) return emptyList()\n var accumulator = this[0]\n val result = ArrayList(size).apply { add(accumulator) }\n for (index in 1 until size) {\n accumulator = operation(accumulator, this[index])\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with the first element of this array.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningReduce\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.runningReduce(operation: (acc: Double, Double) -> Double): List {\n if (isEmpty()) return emptyList()\n var accumulator = this[0]\n val result = ArrayList(size).apply { add(accumulator) }\n for (index in 1 until size) {\n accumulator = operation(accumulator, this[index])\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with the first element of this array.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningReduce\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.runningReduce(operation: (acc: Boolean, Boolean) -> Boolean): List {\n if (isEmpty()) return emptyList()\n var accumulator = this[0]\n val result = ArrayList(size).apply { add(accumulator) }\n for (index in 1 until size) {\n accumulator = operation(accumulator, this[index])\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with the first element of this array.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningReduce\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.runningReduce(operation: (acc: Char, Char) -> Char): List {\n if (isEmpty()) return emptyList()\n var accumulator = this[0]\n val result = ArrayList(size).apply { add(accumulator) }\n for (index in 1 until size) {\n accumulator = operation(accumulator, this[index])\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original array and current accumulator value that starts with the first element of this array.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningReduce\n */\n@SinceKotlin(\"1.4\")\npublic inline fun Array.runningReduceIndexed(operation: (index: Int, acc: S, T) -> S): List {\n if (isEmpty()) return emptyList()\n var accumulator: S = this[0]\n val result = ArrayList(size).apply { add(accumulator) }\n for (index in 1 until size) {\n accumulator = operation(index, accumulator, this[index])\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original array and current accumulator value that starts with the first element of this array.\n * \n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningReduce\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.runningReduceIndexed(operation: (index: Int, acc: Byte, Byte) -> Byte): List {\n if (isEmpty()) return emptyList()\n var accumulator = this[0]\n val result = ArrayList(size).apply { add(accumulator) }\n for (index in 1 until size) {\n accumulator = operation(index, accumulator, this[index])\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original array and current accumulator value that starts with the first element of this array.\n * \n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningReduce\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.runningReduceIndexed(operation: (index: Int, acc: Short, Short) -> Short): List {\n if (isEmpty()) return emptyList()\n var accumulator = this[0]\n val result = ArrayList(size).apply { add(accumulator) }\n for (index in 1 until size) {\n accumulator = operation(index, accumulator, this[index])\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original array and current accumulator value that starts with the first element of this array.\n * \n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningReduce\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.runningReduceIndexed(operation: (index: Int, acc: Int, Int) -> Int): List {\n if (isEmpty()) return emptyList()\n var accumulator = this[0]\n val result = ArrayList(size).apply { add(accumulator) }\n for (index in 1 until size) {\n accumulator = operation(index, accumulator, this[index])\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original array and current accumulator value that starts with the first element of this array.\n * \n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningReduce\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.runningReduceIndexed(operation: (index: Int, acc: Long, Long) -> Long): List {\n if (isEmpty()) return emptyList()\n var accumulator = this[0]\n val result = ArrayList(size).apply { add(accumulator) }\n for (index in 1 until size) {\n accumulator = operation(index, accumulator, this[index])\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original array and current accumulator value that starts with the first element of this array.\n * \n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningReduce\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.runningReduceIndexed(operation: (index: Int, acc: Float, Float) -> Float): List {\n if (isEmpty()) return emptyList()\n var accumulator = this[0]\n val result = ArrayList(size).apply { add(accumulator) }\n for (index in 1 until size) {\n accumulator = operation(index, accumulator, this[index])\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original array and current accumulator value that starts with the first element of this array.\n * \n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningReduce\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.runningReduceIndexed(operation: (index: Int, acc: Double, Double) -> Double): List {\n if (isEmpty()) return emptyList()\n var accumulator = this[0]\n val result = ArrayList(size).apply { add(accumulator) }\n for (index in 1 until size) {\n accumulator = operation(index, accumulator, this[index])\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original array and current accumulator value that starts with the first element of this array.\n * \n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningReduce\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.runningReduceIndexed(operation: (index: Int, acc: Boolean, Boolean) -> Boolean): List {\n if (isEmpty()) return emptyList()\n var accumulator = this[0]\n val result = ArrayList(size).apply { add(accumulator) }\n for (index in 1 until size) {\n accumulator = operation(index, accumulator, this[index])\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original array and current accumulator value that starts with the first element of this array.\n * \n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningReduce\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.runningReduceIndexed(operation: (index: Int, acc: Char, Char) -> Char): List {\n if (isEmpty()) return emptyList()\n var accumulator = this[0]\n val result = ArrayList(size).apply { add(accumulator) }\n for (index in 1 until size) {\n accumulator = operation(index, accumulator, this[index])\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.scan\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic inline fun Array.scan(initial: R, operation: (acc: R, T) -> R): List {\n return runningFold(initial, operation)\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.scan\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.scan(initial: R, operation: (acc: R, Byte) -> R): List {\n return runningFold(initial, operation)\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.scan\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.scan(initial: R, operation: (acc: R, Short) -> R): List {\n return runningFold(initial, operation)\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.scan\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.scan(initial: R, operation: (acc: R, Int) -> R): List {\n return runningFold(initial, operation)\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.scan\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.scan(initial: R, operation: (acc: R, Long) -> R): List {\n return runningFold(initial, operation)\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.scan\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.scan(initial: R, operation: (acc: R, Float) -> R): List {\n return runningFold(initial, operation)\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.scan\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.scan(initial: R, operation: (acc: R, Double) -> R): List {\n return runningFold(initial, operation)\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.scan\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.scan(initial: R, operation: (acc: R, Boolean) -> R): List {\n return runningFold(initial, operation)\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.scan\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.scan(initial: R, operation: (acc: R, Char) -> R): List {\n return runningFold(initial, operation)\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original array and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.scan\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic inline fun Array.scanIndexed(initial: R, operation: (index: Int, acc: R, T) -> R): List {\n return runningFoldIndexed(initial, operation)\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original array and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.scan\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.scanIndexed(initial: R, operation: (index: Int, acc: R, Byte) -> R): List {\n return runningFoldIndexed(initial, operation)\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original array and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.scan\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.scanIndexed(initial: R, operation: (index: Int, acc: R, Short) -> R): List {\n return runningFoldIndexed(initial, operation)\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original array and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.scan\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.scanIndexed(initial: R, operation: (index: Int, acc: R, Int) -> R): List {\n return runningFoldIndexed(initial, operation)\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original array and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.scan\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.scanIndexed(initial: R, operation: (index: Int, acc: R, Long) -> R): List {\n return runningFoldIndexed(initial, operation)\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original array and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.scan\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.scanIndexed(initial: R, operation: (index: Int, acc: R, Float) -> R): List {\n return runningFoldIndexed(initial, operation)\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original array and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.scan\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.scanIndexed(initial: R, operation: (index: Int, acc: R, Double) -> R): List {\n return runningFoldIndexed(initial, operation)\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original array and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.scan\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.scanIndexed(initial: R, operation: (index: Int, acc: R, Boolean) -> R): List {\n return runningFoldIndexed(initial, operation)\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original array and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.scan\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.scanIndexed(initial: R, operation: (index: Int, acc: R, Char) -> R): List {\n return runningFoldIndexed(initial, operation)\n}\n\n@Deprecated(\"Use runningReduce instead.\", ReplaceWith(\"runningReduce(operation)\"), level = DeprecationLevel.ERROR)\n@SinceKotlin(\"1.3\")\n@ExperimentalStdlibApi\npublic inline fun Array.scanReduce(operation: (acc: S, T) -> S): List {\n return runningReduce(operation)\n}\n\n@Deprecated(\"Use runningReduce instead.\", ReplaceWith(\"runningReduce(operation)\"), level = DeprecationLevel.ERROR)\n@SinceKotlin(\"1.3\")\n@ExperimentalStdlibApi\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.scanReduce(operation: (acc: Byte, Byte) -> Byte): List {\n return runningReduce(operation)\n}\n\n@Deprecated(\"Use runningReduce instead.\", ReplaceWith(\"runningReduce(operation)\"), level = DeprecationLevel.ERROR)\n@SinceKotlin(\"1.3\")\n@ExperimentalStdlibApi\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.scanReduce(operation: (acc: Short, Short) -> Short): List {\n return runningReduce(operation)\n}\n\n@Deprecated(\"Use runningReduce instead.\", ReplaceWith(\"runningReduce(operation)\"), level = DeprecationLevel.ERROR)\n@SinceKotlin(\"1.3\")\n@ExperimentalStdlibApi\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.scanReduce(operation: (acc: Int, Int) -> Int): List {\n return runningReduce(operation)\n}\n\n@Deprecated(\"Use runningReduce instead.\", ReplaceWith(\"runningReduce(operation)\"), level = DeprecationLevel.ERROR)\n@SinceKotlin(\"1.3\")\n@ExperimentalStdlibApi\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.scanReduce(operation: (acc: Long, Long) -> Long): List {\n return runningReduce(operation)\n}\n\n@Deprecated(\"Use runningReduce instead.\", ReplaceWith(\"runningReduce(operation)\"), level = DeprecationLevel.ERROR)\n@SinceKotlin(\"1.3\")\n@ExperimentalStdlibApi\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.scanReduce(operation: (acc: Float, Float) -> Float): List {\n return runningReduce(operation)\n}\n\n@Deprecated(\"Use runningReduce instead.\", ReplaceWith(\"runningReduce(operation)\"), level = DeprecationLevel.ERROR)\n@SinceKotlin(\"1.3\")\n@ExperimentalStdlibApi\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.scanReduce(operation: (acc: Double, Double) -> Double): List {\n return runningReduce(operation)\n}\n\n@Deprecated(\"Use runningReduce instead.\", ReplaceWith(\"runningReduce(operation)\"), level = DeprecationLevel.ERROR)\n@SinceKotlin(\"1.3\")\n@ExperimentalStdlibApi\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.scanReduce(operation: (acc: Boolean, Boolean) -> Boolean): List {\n return runningReduce(operation)\n}\n\n@Deprecated(\"Use runningReduce instead.\", ReplaceWith(\"runningReduce(operation)\"), level = DeprecationLevel.ERROR)\n@SinceKotlin(\"1.3\")\n@ExperimentalStdlibApi\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.scanReduce(operation: (acc: Char, Char) -> Char): List {\n return runningReduce(operation)\n}\n\n@Deprecated(\"Use runningReduceIndexed instead.\", ReplaceWith(\"runningReduceIndexed(operation)\"), level = DeprecationLevel.ERROR)\n@SinceKotlin(\"1.3\")\n@ExperimentalStdlibApi\npublic inline fun Array.scanReduceIndexed(operation: (index: Int, acc: S, T) -> S): List {\n return runningReduceIndexed(operation)\n}\n\n@Deprecated(\"Use runningReduceIndexed instead.\", ReplaceWith(\"runningReduceIndexed(operation)\"), level = DeprecationLevel.ERROR)\n@SinceKotlin(\"1.3\")\n@ExperimentalStdlibApi\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.scanReduceIndexed(operation: (index: Int, acc: Byte, Byte) -> Byte): List {\n return runningReduceIndexed(operation)\n}\n\n@Deprecated(\"Use runningReduceIndexed instead.\", ReplaceWith(\"runningReduceIndexed(operation)\"), level = DeprecationLevel.ERROR)\n@SinceKotlin(\"1.3\")\n@ExperimentalStdlibApi\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.scanReduceIndexed(operation: (index: Int, acc: Short, Short) -> Short): List {\n return runningReduceIndexed(operation)\n}\n\n@Deprecated(\"Use runningReduceIndexed instead.\", ReplaceWith(\"runningReduceIndexed(operation)\"), level = DeprecationLevel.ERROR)\n@SinceKotlin(\"1.3\")\n@ExperimentalStdlibApi\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.scanReduceIndexed(operation: (index: Int, acc: Int, Int) -> Int): List {\n return runningReduceIndexed(operation)\n}\n\n@Deprecated(\"Use runningReduceIndexed instead.\", ReplaceWith(\"runningReduceIndexed(operation)\"), level = DeprecationLevel.ERROR)\n@SinceKotlin(\"1.3\")\n@ExperimentalStdlibApi\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.scanReduceIndexed(operation: (index: Int, acc: Long, Long) -> Long): List {\n return runningReduceIndexed(operation)\n}\n\n@Deprecated(\"Use runningReduceIndexed instead.\", ReplaceWith(\"runningReduceIndexed(operation)\"), level = DeprecationLevel.ERROR)\n@SinceKotlin(\"1.3\")\n@ExperimentalStdlibApi\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.scanReduceIndexed(operation: (index: Int, acc: Float, Float) -> Float): List {\n return runningReduceIndexed(operation)\n}\n\n@Deprecated(\"Use runningReduceIndexed instead.\", ReplaceWith(\"runningReduceIndexed(operation)\"), level = DeprecationLevel.ERROR)\n@SinceKotlin(\"1.3\")\n@ExperimentalStdlibApi\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.scanReduceIndexed(operation: (index: Int, acc: Double, Double) -> Double): List {\n return runningReduceIndexed(operation)\n}\n\n@Deprecated(\"Use runningReduceIndexed instead.\", ReplaceWith(\"runningReduceIndexed(operation)\"), level = DeprecationLevel.ERROR)\n@SinceKotlin(\"1.3\")\n@ExperimentalStdlibApi\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.scanReduceIndexed(operation: (index: Int, acc: Boolean, Boolean) -> Boolean): List {\n return runningReduceIndexed(operation)\n}\n\n@Deprecated(\"Use runningReduceIndexed instead.\", ReplaceWith(\"runningReduceIndexed(operation)\"), level = DeprecationLevel.ERROR)\n@SinceKotlin(\"1.3\")\n@ExperimentalStdlibApi\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.scanReduceIndexed(operation: (index: Int, acc: Char, Char) -> Char): List {\n return runningReduceIndexed(operation)\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\npublic inline fun Array.sumBy(selector: (T) -> Int): Int {\n var sum: Int = 0\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\npublic inline fun ByteArray.sumBy(selector: (Byte) -> Int): Int {\n var sum: Int = 0\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\npublic inline fun ShortArray.sumBy(selector: (Short) -> Int): Int {\n var sum: Int = 0\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\npublic inline fun IntArray.sumBy(selector: (Int) -> Int): Int {\n var sum: Int = 0\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\npublic inline fun LongArray.sumBy(selector: (Long) -> Int): Int {\n var sum: Int = 0\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\npublic inline fun FloatArray.sumBy(selector: (Float) -> Int): Int {\n var sum: Int = 0\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\npublic inline fun DoubleArray.sumBy(selector: (Double) -> Int): Int {\n var sum: Int = 0\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\npublic inline fun BooleanArray.sumBy(selector: (Boolean) -> Int): Int {\n var sum: Int = 0\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\npublic inline fun CharArray.sumBy(selector: (Char) -> Int): Int {\n var sum: Int = 0\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\npublic inline fun Array.sumByDouble(selector: (T) -> Double): Double {\n var sum: Double = 0.0\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\npublic inline fun ByteArray.sumByDouble(selector: (Byte) -> Double): Double {\n var sum: Double = 0.0\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\npublic inline fun ShortArray.sumByDouble(selector: (Short) -> Double): Double {\n var sum: Double = 0.0\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\npublic inline fun IntArray.sumByDouble(selector: (Int) -> Double): Double {\n var sum: Double = 0.0\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\npublic inline fun LongArray.sumByDouble(selector: (Long) -> Double): Double {\n var sum: Double = 0.0\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\npublic inline fun FloatArray.sumByDouble(selector: (Float) -> Double): Double {\n var sum: Double = 0.0\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\npublic inline fun DoubleArray.sumByDouble(selector: (Double) -> Double): Double {\n var sum: Double = 0.0\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\npublic inline fun BooleanArray.sumByDouble(selector: (Boolean) -> Double): Double {\n var sum: Double = 0.0\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\npublic inline fun CharArray.sumByDouble(selector: (Char) -> Double): Double {\n var sum: Double = 0.0\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfDouble\")\n@kotlin.internal.InlineOnly\npublic inline fun Array.sumOf(selector: (T) -> Double): Double {\n var sum: Double = 0.toDouble()\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfDouble\")\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.sumOf(selector: (Byte) -> Double): Double {\n var sum: Double = 0.toDouble()\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfDouble\")\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.sumOf(selector: (Short) -> Double): Double {\n var sum: Double = 0.toDouble()\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfDouble\")\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.sumOf(selector: (Int) -> Double): Double {\n var sum: Double = 0.toDouble()\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfDouble\")\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.sumOf(selector: (Long) -> Double): Double {\n var sum: Double = 0.toDouble()\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfDouble\")\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.sumOf(selector: (Float) -> Double): Double {\n var sum: Double = 0.toDouble()\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfDouble\")\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.sumOf(selector: (Double) -> Double): Double {\n var sum: Double = 0.toDouble()\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfDouble\")\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.sumOf(selector: (Boolean) -> Double): Double {\n var sum: Double = 0.toDouble()\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfDouble\")\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.sumOf(selector: (Char) -> Double): Double {\n var sum: Double = 0.toDouble()\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfInt\")\n@kotlin.internal.InlineOnly\npublic inline fun Array.sumOf(selector: (T) -> Int): Int {\n var sum: Int = 0.toInt()\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfInt\")\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.sumOf(selector: (Byte) -> Int): Int {\n var sum: Int = 0.toInt()\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfInt\")\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.sumOf(selector: (Short) -> Int): Int {\n var sum: Int = 0.toInt()\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfInt\")\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.sumOf(selector: (Int) -> Int): Int {\n var sum: Int = 0.toInt()\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfInt\")\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.sumOf(selector: (Long) -> Int): Int {\n var sum: Int = 0.toInt()\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfInt\")\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.sumOf(selector: (Float) -> Int): Int {\n var sum: Int = 0.toInt()\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfInt\")\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.sumOf(selector: (Double) -> Int): Int {\n var sum: Int = 0.toInt()\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfInt\")\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.sumOf(selector: (Boolean) -> Int): Int {\n var sum: Int = 0.toInt()\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfInt\")\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.sumOf(selector: (Char) -> Int): Int {\n var sum: Int = 0.toInt()\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfLong\")\n@kotlin.internal.InlineOnly\npublic inline fun Array.sumOf(selector: (T) -> Long): Long {\n var sum: Long = 0.toLong()\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfLong\")\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.sumOf(selector: (Byte) -> Long): Long {\n var sum: Long = 0.toLong()\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfLong\")\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.sumOf(selector: (Short) -> Long): Long {\n var sum: Long = 0.toLong()\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfLong\")\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.sumOf(selector: (Int) -> Long): Long {\n var sum: Long = 0.toLong()\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfLong\")\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.sumOf(selector: (Long) -> Long): Long {\n var sum: Long = 0.toLong()\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfLong\")\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.sumOf(selector: (Float) -> Long): Long {\n var sum: Long = 0.toLong()\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfLong\")\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.sumOf(selector: (Double) -> Long): Long {\n var sum: Long = 0.toLong()\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfLong\")\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.sumOf(selector: (Boolean) -> Long): Long {\n var sum: Long = 0.toLong()\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfLong\")\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.sumOf(selector: (Char) -> Long): Long {\n var sum: Long = 0.toLong()\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfUInt\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun Array.sumOf(selector: (T) -> UInt): UInt {\n var sum: UInt = 0.toUInt()\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfUInt\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.sumOf(selector: (Byte) -> UInt): UInt {\n var sum: UInt = 0.toUInt()\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfUInt\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.sumOf(selector: (Short) -> UInt): UInt {\n var sum: UInt = 0.toUInt()\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfUInt\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.sumOf(selector: (Int) -> UInt): UInt {\n var sum: UInt = 0.toUInt()\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfUInt\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.sumOf(selector: (Long) -> UInt): UInt {\n var sum: UInt = 0.toUInt()\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfUInt\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.sumOf(selector: (Float) -> UInt): UInt {\n var sum: UInt = 0.toUInt()\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfUInt\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.sumOf(selector: (Double) -> UInt): UInt {\n var sum: UInt = 0.toUInt()\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfUInt\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.sumOf(selector: (Boolean) -> UInt): UInt {\n var sum: UInt = 0.toUInt()\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfUInt\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.sumOf(selector: (Char) -> UInt): UInt {\n var sum: UInt = 0.toUInt()\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfULong\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun Array.sumOf(selector: (T) -> ULong): ULong {\n var sum: ULong = 0.toULong()\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfULong\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.sumOf(selector: (Byte) -> ULong): ULong {\n var sum: ULong = 0.toULong()\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfULong\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.sumOf(selector: (Short) -> ULong): ULong {\n var sum: ULong = 0.toULong()\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfULong\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.sumOf(selector: (Int) -> ULong): ULong {\n var sum: ULong = 0.toULong()\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfULong\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.sumOf(selector: (Long) -> ULong): ULong {\n var sum: ULong = 0.toULong()\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfULong\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.sumOf(selector: (Float) -> ULong): ULong {\n var sum: ULong = 0.toULong()\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfULong\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.sumOf(selector: (Double) -> ULong): ULong {\n var sum: ULong = 0.toULong()\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfULong\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.sumOf(selector: (Boolean) -> ULong): ULong {\n var sum: ULong = 0.toULong()\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfULong\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.sumOf(selector: (Char) -> ULong): ULong {\n var sum: ULong = 0.toULong()\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns an original collection containing all the non-`null` elements, throwing an [IllegalArgumentException] if there are any `null` elements.\n */\npublic fun Array.requireNoNulls(): Array {\n for (element in this) {\n if (element == null) {\n throw IllegalArgumentException(\"null element found in $this.\")\n }\n }\n @Suppress(\"UNCHECKED_CAST\")\n return this as Array\n}\n\n/**\n * Splits the original array into pair of lists,\n * where *first* list contains elements for which [predicate] yielded `true`,\n * while *second* list contains elements for which [predicate] yielded `false`.\n * \n * @sample samples.collections.Arrays.Transformations.partitionArrayOfPrimitives\n */\npublic inline fun Array.partition(predicate: (T) -> Boolean): Pair, List> {\n val first = ArrayList()\n val second = ArrayList()\n for (element in this) {\n if (predicate(element)) {\n first.add(element)\n } else {\n second.add(element)\n }\n }\n return Pair(first, second)\n}\n\n/**\n * Splits the original array into pair of lists,\n * where *first* list contains elements for which [predicate] yielded `true`,\n * while *second* list contains elements for which [predicate] yielded `false`.\n * \n * @sample samples.collections.Arrays.Transformations.partitionArrayOfPrimitives\n */\npublic inline fun ByteArray.partition(predicate: (Byte) -> Boolean): Pair, List> {\n val first = ArrayList()\n val second = ArrayList()\n for (element in this) {\n if (predicate(element)) {\n first.add(element)\n } else {\n second.add(element)\n }\n }\n return Pair(first, second)\n}\n\n/**\n * Splits the original array into pair of lists,\n * where *first* list contains elements for which [predicate] yielded `true`,\n * while *second* list contains elements for which [predicate] yielded `false`.\n * \n * @sample samples.collections.Arrays.Transformations.partitionArrayOfPrimitives\n */\npublic inline fun ShortArray.partition(predicate: (Short) -> Boolean): Pair, List> {\n val first = ArrayList()\n val second = ArrayList()\n for (element in this) {\n if (predicate(element)) {\n first.add(element)\n } else {\n second.add(element)\n }\n }\n return Pair(first, second)\n}\n\n/**\n * Splits the original array into pair of lists,\n * where *first* list contains elements for which [predicate] yielded `true`,\n * while *second* list contains elements for which [predicate] yielded `false`.\n * \n * @sample samples.collections.Arrays.Transformations.partitionArrayOfPrimitives\n */\npublic inline fun IntArray.partition(predicate: (Int) -> Boolean): Pair, List> {\n val first = ArrayList()\n val second = ArrayList()\n for (element in this) {\n if (predicate(element)) {\n first.add(element)\n } else {\n second.add(element)\n }\n }\n return Pair(first, second)\n}\n\n/**\n * Splits the original array into pair of lists,\n * where *first* list contains elements for which [predicate] yielded `true`,\n * while *second* list contains elements for which [predicate] yielded `false`.\n * \n * @sample samples.collections.Arrays.Transformations.partitionArrayOfPrimitives\n */\npublic inline fun LongArray.partition(predicate: (Long) -> Boolean): Pair, List> {\n val first = ArrayList()\n val second = ArrayList()\n for (element in this) {\n if (predicate(element)) {\n first.add(element)\n } else {\n second.add(element)\n }\n }\n return Pair(first, second)\n}\n\n/**\n * Splits the original array into pair of lists,\n * where *first* list contains elements for which [predicate] yielded `true`,\n * while *second* list contains elements for which [predicate] yielded `false`.\n * \n * @sample samples.collections.Arrays.Transformations.partitionArrayOfPrimitives\n */\npublic inline fun FloatArray.partition(predicate: (Float) -> Boolean): Pair, List> {\n val first = ArrayList()\n val second = ArrayList()\n for (element in this) {\n if (predicate(element)) {\n first.add(element)\n } else {\n second.add(element)\n }\n }\n return Pair(first, second)\n}\n\n/**\n * Splits the original array into pair of lists,\n * where *first* list contains elements for which [predicate] yielded `true`,\n * while *second* list contains elements for which [predicate] yielded `false`.\n * \n * @sample samples.collections.Arrays.Transformations.partitionArrayOfPrimitives\n */\npublic inline fun DoubleArray.partition(predicate: (Double) -> Boolean): Pair, List> {\n val first = ArrayList()\n val second = ArrayList()\n for (element in this) {\n if (predicate(element)) {\n first.add(element)\n } else {\n second.add(element)\n }\n }\n return Pair(first, second)\n}\n\n/**\n * Splits the original array into pair of lists,\n * where *first* list contains elements for which [predicate] yielded `true`,\n * while *second* list contains elements for which [predicate] yielded `false`.\n * \n * @sample samples.collections.Arrays.Transformations.partitionArrayOfPrimitives\n */\npublic inline fun BooleanArray.partition(predicate: (Boolean) -> Boolean): Pair, List> {\n val first = ArrayList()\n val second = ArrayList()\n for (element in this) {\n if (predicate(element)) {\n first.add(element)\n } else {\n second.add(element)\n }\n }\n return Pair(first, second)\n}\n\n/**\n * Splits the original array into pair of lists,\n * where *first* list contains elements for which [predicate] yielded `true`,\n * while *second* list contains elements for which [predicate] yielded `false`.\n * \n * @sample samples.collections.Arrays.Transformations.partitionArrayOfPrimitives\n */\npublic inline fun CharArray.partition(predicate: (Char) -> Boolean): Pair, List> {\n val first = ArrayList()\n val second = ArrayList()\n for (element in this) {\n if (predicate(element)) {\n first.add(element)\n } else {\n second.add(element)\n }\n }\n return Pair(first, second)\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` array and the [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun Array.zip(other: Array): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` array and the [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun ByteArray.zip(other: Array): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` array and the [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun ShortArray.zip(other: Array): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` array and the [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun IntArray.zip(other: Array): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` array and the [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun LongArray.zip(other: Array): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` array and the [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun FloatArray.zip(other: Array): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` array and the [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun DoubleArray.zip(other: Array): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` array and the [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun BooleanArray.zip(other: Array): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` array and the [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun CharArray.zip(other: Array): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] array with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun Array.zip(other: Array, transform: (a: T, b: R) -> V): List {\n val size = minOf(size, other.size)\n val list = ArrayList(size)\n for (i in 0 until size) {\n list.add(transform(this[i], other[i]))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] array with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun ByteArray.zip(other: Array, transform: (a: Byte, b: R) -> V): List {\n val size = minOf(size, other.size)\n val list = ArrayList(size)\n for (i in 0 until size) {\n list.add(transform(this[i], other[i]))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] array with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun ShortArray.zip(other: Array, transform: (a: Short, b: R) -> V): List {\n val size = minOf(size, other.size)\n val list = ArrayList(size)\n for (i in 0 until size) {\n list.add(transform(this[i], other[i]))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] array with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun IntArray.zip(other: Array, transform: (a: Int, b: R) -> V): List {\n val size = minOf(size, other.size)\n val list = ArrayList(size)\n for (i in 0 until size) {\n list.add(transform(this[i], other[i]))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] array with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun LongArray.zip(other: Array, transform: (a: Long, b: R) -> V): List {\n val size = minOf(size, other.size)\n val list = ArrayList(size)\n for (i in 0 until size) {\n list.add(transform(this[i], other[i]))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] array with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun FloatArray.zip(other: Array, transform: (a: Float, b: R) -> V): List {\n val size = minOf(size, other.size)\n val list = ArrayList(size)\n for (i in 0 until size) {\n list.add(transform(this[i], other[i]))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] array with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun DoubleArray.zip(other: Array, transform: (a: Double, b: R) -> V): List {\n val size = minOf(size, other.size)\n val list = ArrayList(size)\n for (i in 0 until size) {\n list.add(transform(this[i], other[i]))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] array with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun BooleanArray.zip(other: Array, transform: (a: Boolean, b: R) -> V): List {\n val size = minOf(size, other.size)\n val list = ArrayList(size)\n for (i in 0 until size) {\n list.add(transform(this[i], other[i]))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] array with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun CharArray.zip(other: Array, transform: (a: Char, b: R) -> V): List {\n val size = minOf(size, other.size)\n val list = ArrayList(size)\n for (i in 0 until size) {\n list.add(transform(this[i], other[i]))\n }\n return list\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` collection and [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun Array.zip(other: Iterable): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` collection and [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun ByteArray.zip(other: Iterable): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` collection and [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun ShortArray.zip(other: Iterable): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` collection and [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun IntArray.zip(other: Iterable): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` collection and [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun LongArray.zip(other: Iterable): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` collection and [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun FloatArray.zip(other: Iterable): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` collection and [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun DoubleArray.zip(other: Iterable): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` collection and [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun BooleanArray.zip(other: Iterable): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` collection and [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun CharArray.zip(other: Iterable): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] collection with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun Array.zip(other: Iterable, transform: (a: T, b: R) -> V): List {\n val arraySize = size\n val list = ArrayList(minOf(other.collectionSizeOrDefault(10), arraySize))\n var i = 0\n for (element in other) {\n if (i >= arraySize) break\n list.add(transform(this[i++], element))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] collection with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun ByteArray.zip(other: Iterable, transform: (a: Byte, b: R) -> V): List {\n val arraySize = size\n val list = ArrayList(minOf(other.collectionSizeOrDefault(10), arraySize))\n var i = 0\n for (element in other) {\n if (i >= arraySize) break\n list.add(transform(this[i++], element))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] collection with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun ShortArray.zip(other: Iterable, transform: (a: Short, b: R) -> V): List {\n val arraySize = size\n val list = ArrayList(minOf(other.collectionSizeOrDefault(10), arraySize))\n var i = 0\n for (element in other) {\n if (i >= arraySize) break\n list.add(transform(this[i++], element))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] collection with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun IntArray.zip(other: Iterable, transform: (a: Int, b: R) -> V): List {\n val arraySize = size\n val list = ArrayList(minOf(other.collectionSizeOrDefault(10), arraySize))\n var i = 0\n for (element in other) {\n if (i >= arraySize) break\n list.add(transform(this[i++], element))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] collection with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun LongArray.zip(other: Iterable, transform: (a: Long, b: R) -> V): List {\n val arraySize = size\n val list = ArrayList(minOf(other.collectionSizeOrDefault(10), arraySize))\n var i = 0\n for (element in other) {\n if (i >= arraySize) break\n list.add(transform(this[i++], element))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] collection with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun FloatArray.zip(other: Iterable, transform: (a: Float, b: R) -> V): List {\n val arraySize = size\n val list = ArrayList(minOf(other.collectionSizeOrDefault(10), arraySize))\n var i = 0\n for (element in other) {\n if (i >= arraySize) break\n list.add(transform(this[i++], element))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] collection with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun DoubleArray.zip(other: Iterable, transform: (a: Double, b: R) -> V): List {\n val arraySize = size\n val list = ArrayList(minOf(other.collectionSizeOrDefault(10), arraySize))\n var i = 0\n for (element in other) {\n if (i >= arraySize) break\n list.add(transform(this[i++], element))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] collection with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun BooleanArray.zip(other: Iterable, transform: (a: Boolean, b: R) -> V): List {\n val arraySize = size\n val list = ArrayList(minOf(other.collectionSizeOrDefault(10), arraySize))\n var i = 0\n for (element in other) {\n if (i >= arraySize) break\n list.add(transform(this[i++], element))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] collection with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun CharArray.zip(other: Iterable, transform: (a: Char, b: R) -> V): List {\n val arraySize = size\n val list = ArrayList(minOf(other.collectionSizeOrDefault(10), arraySize))\n var i = 0\n for (element in other) {\n if (i >= arraySize) break\n list.add(transform(this[i++], element))\n }\n return list\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` array and the [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun ByteArray.zip(other: ByteArray): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` array and the [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun ShortArray.zip(other: ShortArray): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` array and the [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun IntArray.zip(other: IntArray): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` array and the [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun LongArray.zip(other: LongArray): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` array and the [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun FloatArray.zip(other: FloatArray): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` array and the [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun DoubleArray.zip(other: DoubleArray): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` array and the [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun BooleanArray.zip(other: BooleanArray): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` array and the [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun CharArray.zip(other: CharArray): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] array with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest array.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun ByteArray.zip(other: ByteArray, transform: (a: Byte, b: Byte) -> V): List {\n val size = minOf(size, other.size)\n val list = ArrayList(size)\n for (i in 0 until size) {\n list.add(transform(this[i], other[i]))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] array with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest array.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun ShortArray.zip(other: ShortArray, transform: (a: Short, b: Short) -> V): List {\n val size = minOf(size, other.size)\n val list = ArrayList(size)\n for (i in 0 until size) {\n list.add(transform(this[i], other[i]))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] array with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest array.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun IntArray.zip(other: IntArray, transform: (a: Int, b: Int) -> V): List {\n val size = minOf(size, other.size)\n val list = ArrayList(size)\n for (i in 0 until size) {\n list.add(transform(this[i], other[i]))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] array with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest array.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun LongArray.zip(other: LongArray, transform: (a: Long, b: Long) -> V): List {\n val size = minOf(size, other.size)\n val list = ArrayList(size)\n for (i in 0 until size) {\n list.add(transform(this[i], other[i]))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] array with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest array.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun FloatArray.zip(other: FloatArray, transform: (a: Float, b: Float) -> V): List {\n val size = minOf(size, other.size)\n val list = ArrayList(size)\n for (i in 0 until size) {\n list.add(transform(this[i], other[i]))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] array with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest array.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun DoubleArray.zip(other: DoubleArray, transform: (a: Double, b: Double) -> V): List {\n val size = minOf(size, other.size)\n val list = ArrayList(size)\n for (i in 0 until size) {\n list.add(transform(this[i], other[i]))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] array with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest array.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun BooleanArray.zip(other: BooleanArray, transform: (a: Boolean, b: Boolean) -> V): List {\n val size = minOf(size, other.size)\n val list = ArrayList(size)\n for (i in 0 until size) {\n list.add(transform(this[i], other[i]))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] array with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest array.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun CharArray.zip(other: CharArray, transform: (a: Char, b: Char) -> V): List {\n val size = minOf(size, other.size)\n val list = ArrayList(size)\n for (i in 0 until size) {\n list.add(transform(this[i], other[i]))\n }\n return list\n}\n\n/**\n * Appends the string from all the elements separated using [separator] and using the given [prefix] and [postfix] if supplied.\n * \n * If the collection could be huge, you can specify a non-negative value of [limit], in which case only the first [limit]\n * elements will be appended, followed by the [truncated] string (which defaults to \"...\").\n * \n * @sample samples.collections.Collections.Transformations.joinTo\n */\npublic fun Array.joinTo(buffer: A, separator: CharSequence = \", \", prefix: CharSequence = \"\", postfix: CharSequence = \"\", limit: Int = -1, truncated: CharSequence = \"...\", transform: ((T) -> CharSequence)? = null): A {\n buffer.append(prefix)\n var count = 0\n for (element in this) {\n if (++count > 1) buffer.append(separator)\n if (limit < 0 || count <= limit) {\n buffer.appendElement(element, transform)\n } else break\n }\n if (limit >= 0 && count > limit) buffer.append(truncated)\n buffer.append(postfix)\n return buffer\n}\n\n/**\n * Appends the string from all the elements separated using [separator] and using the given [prefix] and [postfix] if supplied.\n * \n * If the collection could be huge, you can specify a non-negative value of [limit], in which case only the first [limit]\n * elements will be appended, followed by the [truncated] string (which defaults to \"...\").\n * \n * @sample samples.collections.Collections.Transformations.joinTo\n */\npublic fun ByteArray.joinTo(buffer: A, separator: CharSequence = \", \", prefix: CharSequence = \"\", postfix: CharSequence = \"\", limit: Int = -1, truncated: CharSequence = \"...\", transform: ((Byte) -> CharSequence)? = null): A {\n buffer.append(prefix)\n var count = 0\n for (element in this) {\n if (++count > 1) buffer.append(separator)\n if (limit < 0 || count <= limit) {\n if (transform != null)\n buffer.append(transform(element))\n else\n buffer.append(element.toString())\n } else break\n }\n if (limit >= 0 && count > limit) buffer.append(truncated)\n buffer.append(postfix)\n return buffer\n}\n\n/**\n * Appends the string from all the elements separated using [separator] and using the given [prefix] and [postfix] if supplied.\n * \n * If the collection could be huge, you can specify a non-negative value of [limit], in which case only the first [limit]\n * elements will be appended, followed by the [truncated] string (which defaults to \"...\").\n * \n * @sample samples.collections.Collections.Transformations.joinTo\n */\npublic fun ShortArray.joinTo(buffer: A, separator: CharSequence = \", \", prefix: CharSequence = \"\", postfix: CharSequence = \"\", limit: Int = -1, truncated: CharSequence = \"...\", transform: ((Short) -> CharSequence)? = null): A {\n buffer.append(prefix)\n var count = 0\n for (element in this) {\n if (++count > 1) buffer.append(separator)\n if (limit < 0 || count <= limit) {\n if (transform != null)\n buffer.append(transform(element))\n else\n buffer.append(element.toString())\n } else break\n }\n if (limit >= 0 && count > limit) buffer.append(truncated)\n buffer.append(postfix)\n return buffer\n}\n\n/**\n * Appends the string from all the elements separated using [separator] and using the given [prefix] and [postfix] if supplied.\n * \n * If the collection could be huge, you can specify a non-negative value of [limit], in which case only the first [limit]\n * elements will be appended, followed by the [truncated] string (which defaults to \"...\").\n * \n * @sample samples.collections.Collections.Transformations.joinTo\n */\npublic fun IntArray.joinTo(buffer: A, separator: CharSequence = \", \", prefix: CharSequence = \"\", postfix: CharSequence = \"\", limit: Int = -1, truncated: CharSequence = \"...\", transform: ((Int) -> CharSequence)? = null): A {\n buffer.append(prefix)\n var count = 0\n for (element in this) {\n if (++count > 1) buffer.append(separator)\n if (limit < 0 || count <= limit) {\n if (transform != null)\n buffer.append(transform(element))\n else\n buffer.append(element.toString())\n } else break\n }\n if (limit >= 0 && count > limit) buffer.append(truncated)\n buffer.append(postfix)\n return buffer\n}\n\n/**\n * Appends the string from all the elements separated using [separator] and using the given [prefix] and [postfix] if supplied.\n * \n * If the collection could be huge, you can specify a non-negative value of [limit], in which case only the first [limit]\n * elements will be appended, followed by the [truncated] string (which defaults to \"...\").\n * \n * @sample samples.collections.Collections.Transformations.joinTo\n */\npublic fun LongArray.joinTo(buffer: A, separator: CharSequence = \", \", prefix: CharSequence = \"\", postfix: CharSequence = \"\", limit: Int = -1, truncated: CharSequence = \"...\", transform: ((Long) -> CharSequence)? = null): A {\n buffer.append(prefix)\n var count = 0\n for (element in this) {\n if (++count > 1) buffer.append(separator)\n if (limit < 0 || count <= limit) {\n if (transform != null)\n buffer.append(transform(element))\n else\n buffer.append(element.toString())\n } else break\n }\n if (limit >= 0 && count > limit) buffer.append(truncated)\n buffer.append(postfix)\n return buffer\n}\n\n/**\n * Appends the string from all the elements separated using [separator] and using the given [prefix] and [postfix] if supplied.\n * \n * If the collection could be huge, you can specify a non-negative value of [limit], in which case only the first [limit]\n * elements will be appended, followed by the [truncated] string (which defaults to \"...\").\n * \n * @sample samples.collections.Collections.Transformations.joinTo\n */\npublic fun FloatArray.joinTo(buffer: A, separator: CharSequence = \", \", prefix: CharSequence = \"\", postfix: CharSequence = \"\", limit: Int = -1, truncated: CharSequence = \"...\", transform: ((Float) -> CharSequence)? = null): A {\n buffer.append(prefix)\n var count = 0\n for (element in this) {\n if (++count > 1) buffer.append(separator)\n if (limit < 0 || count <= limit) {\n if (transform != null)\n buffer.append(transform(element))\n else\n buffer.append(element.toString())\n } else break\n }\n if (limit >= 0 && count > limit) buffer.append(truncated)\n buffer.append(postfix)\n return buffer\n}\n\n/**\n * Appends the string from all the elements separated using [separator] and using the given [prefix] and [postfix] if supplied.\n * \n * If the collection could be huge, you can specify a non-negative value of [limit], in which case only the first [limit]\n * elements will be appended, followed by the [truncated] string (which defaults to \"...\").\n * \n * @sample samples.collections.Collections.Transformations.joinTo\n */\npublic fun DoubleArray.joinTo(buffer: A, separator: CharSequence = \", \", prefix: CharSequence = \"\", postfix: CharSequence = \"\", limit: Int = -1, truncated: CharSequence = \"...\", transform: ((Double) -> CharSequence)? = null): A {\n buffer.append(prefix)\n var count = 0\n for (element in this) {\n if (++count > 1) buffer.append(separator)\n if (limit < 0 || count <= limit) {\n if (transform != null)\n buffer.append(transform(element))\n else\n buffer.append(element.toString())\n } else break\n }\n if (limit >= 0 && count > limit) buffer.append(truncated)\n buffer.append(postfix)\n return buffer\n}\n\n/**\n * Appends the string from all the elements separated using [separator] and using the given [prefix] and [postfix] if supplied.\n * \n * If the collection could be huge, you can specify a non-negative value of [limit], in which case only the first [limit]\n * elements will be appended, followed by the [truncated] string (which defaults to \"...\").\n * \n * @sample samples.collections.Collections.Transformations.joinTo\n */\npublic fun BooleanArray.joinTo(buffer: A, separator: CharSequence = \", \", prefix: CharSequence = \"\", postfix: CharSequence = \"\", limit: Int = -1, truncated: CharSequence = \"...\", transform: ((Boolean) -> CharSequence)? = null): A {\n buffer.append(prefix)\n var count = 0\n for (element in this) {\n if (++count > 1) buffer.append(separator)\n if (limit < 0 || count <= limit) {\n if (transform != null)\n buffer.append(transform(element))\n else\n buffer.append(element.toString())\n } else break\n }\n if (limit >= 0 && count > limit) buffer.append(truncated)\n buffer.append(postfix)\n return buffer\n}\n\n/**\n * Appends the string from all the elements separated using [separator] and using the given [prefix] and [postfix] if supplied.\n * \n * If the collection could be huge, you can specify a non-negative value of [limit], in which case only the first [limit]\n * elements will be appended, followed by the [truncated] string (which defaults to \"...\").\n * \n * @sample samples.collections.Collections.Transformations.joinTo\n */\npublic fun CharArray.joinTo(buffer: A, separator: CharSequence = \", \", prefix: CharSequence = \"\", postfix: CharSequence = \"\", limit: Int = -1, truncated: CharSequence = \"...\", transform: ((Char) -> CharSequence)? = null): A {\n buffer.append(prefix)\n var count = 0\n for (element in this) {\n if (++count > 1) buffer.append(separator)\n if (limit < 0 || count <= limit) {\n if (transform != null)\n buffer.append(transform(element))\n else\n buffer.append(element)\n } else break\n }\n if (limit >= 0 && count > limit) buffer.append(truncated)\n buffer.append(postfix)\n return buffer\n}\n\n/**\n * Creates a string from all the elements separated using [separator] and using the given [prefix] and [postfix] if supplied.\n * \n * If the collection could be huge, you can specify a non-negative value of [limit], in which case only the first [limit]\n * elements will be appended, followed by the [truncated] string (which defaults to \"...\").\n * \n * @sample samples.collections.Collections.Transformations.joinToString\n */\npublic fun Array.joinToString(separator: CharSequence = \", \", prefix: CharSequence = \"\", postfix: CharSequence = \"\", limit: Int = -1, truncated: CharSequence = \"...\", transform: ((T) -> CharSequence)? = null): String {\n return joinTo(StringBuilder(), separator, prefix, postfix, limit, truncated, transform).toString()\n}\n\n/**\n * Creates a string from all the elements separated using [separator] and using the given [prefix] and [postfix] if supplied.\n * \n * If the collection could be huge, you can specify a non-negative value of [limit], in which case only the first [limit]\n * elements will be appended, followed by the [truncated] string (which defaults to \"...\").\n * \n * @sample samples.collections.Collections.Transformations.joinToString\n */\npublic fun ByteArray.joinToString(separator: CharSequence = \", \", prefix: CharSequence = \"\", postfix: CharSequence = \"\", limit: Int = -1, truncated: CharSequence = \"...\", transform: ((Byte) -> CharSequence)? = null): String {\n return joinTo(StringBuilder(), separator, prefix, postfix, limit, truncated, transform).toString()\n}\n\n/**\n * Creates a string from all the elements separated using [separator] and using the given [prefix] and [postfix] if supplied.\n * \n * If the collection could be huge, you can specify a non-negative value of [limit], in which case only the first [limit]\n * elements will be appended, followed by the [truncated] string (which defaults to \"...\").\n * \n * @sample samples.collections.Collections.Transformations.joinToString\n */\npublic fun ShortArray.joinToString(separator: CharSequence = \", \", prefix: CharSequence = \"\", postfix: CharSequence = \"\", limit: Int = -1, truncated: CharSequence = \"...\", transform: ((Short) -> CharSequence)? = null): String {\n return joinTo(StringBuilder(), separator, prefix, postfix, limit, truncated, transform).toString()\n}\n\n/**\n * Creates a string from all the elements separated using [separator] and using the given [prefix] and [postfix] if supplied.\n * \n * If the collection could be huge, you can specify a non-negative value of [limit], in which case only the first [limit]\n * elements will be appended, followed by the [truncated] string (which defaults to \"...\").\n * \n * @sample samples.collections.Collections.Transformations.joinToString\n */\npublic fun IntArray.joinToString(separator: CharSequence = \", \", prefix: CharSequence = \"\", postfix: CharSequence = \"\", limit: Int = -1, truncated: CharSequence = \"...\", transform: ((Int) -> CharSequence)? = null): String {\n return joinTo(StringBuilder(), separator, prefix, postfix, limit, truncated, transform).toString()\n}\n\n/**\n * Creates a string from all the elements separated using [separator] and using the given [prefix] and [postfix] if supplied.\n * \n * If the collection could be huge, you can specify a non-negative value of [limit], in which case only the first [limit]\n * elements will be appended, followed by the [truncated] string (which defaults to \"...\").\n * \n * @sample samples.collections.Collections.Transformations.joinToString\n */\npublic fun LongArray.joinToString(separator: CharSequence = \", \", prefix: CharSequence = \"\", postfix: CharSequence = \"\", limit: Int = -1, truncated: CharSequence = \"...\", transform: ((Long) -> CharSequence)? = null): String {\n return joinTo(StringBuilder(), separator, prefix, postfix, limit, truncated, transform).toString()\n}\n\n/**\n * Creates a string from all the elements separated using [separator] and using the given [prefix] and [postfix] if supplied.\n * \n * If the collection could be huge, you can specify a non-negative value of [limit], in which case only the first [limit]\n * elements will be appended, followed by the [truncated] string (which defaults to \"...\").\n * \n * @sample samples.collections.Collections.Transformations.joinToString\n */\npublic fun FloatArray.joinToString(separator: CharSequence = \", \", prefix: CharSequence = \"\", postfix: CharSequence = \"\", limit: Int = -1, truncated: CharSequence = \"...\", transform: ((Float) -> CharSequence)? = null): String {\n return joinTo(StringBuilder(), separator, prefix, postfix, limit, truncated, transform).toString()\n}\n\n/**\n * Creates a string from all the elements separated using [separator] and using the given [prefix] and [postfix] if supplied.\n * \n * If the collection could be huge, you can specify a non-negative value of [limit], in which case only the first [limit]\n * elements will be appended, followed by the [truncated] string (which defaults to \"...\").\n * \n * @sample samples.collections.Collections.Transformations.joinToString\n */\npublic fun DoubleArray.joinToString(separator: CharSequence = \", \", prefix: CharSequence = \"\", postfix: CharSequence = \"\", limit: Int = -1, truncated: CharSequence = \"...\", transform: ((Double) -> CharSequence)? = null): String {\n return joinTo(StringBuilder(), separator, prefix, postfix, limit, truncated, transform).toString()\n}\n\n/**\n * Creates a string from all the elements separated using [separator] and using the given [prefix] and [postfix] if supplied.\n * \n * If the collection could be huge, you can specify a non-negative value of [limit], in which case only the first [limit]\n * elements will be appended, followed by the [truncated] string (which defaults to \"...\").\n * \n * @sample samples.collections.Collections.Transformations.joinToString\n */\npublic fun BooleanArray.joinToString(separator: CharSequence = \", \", prefix: CharSequence = \"\", postfix: CharSequence = \"\", limit: Int = -1, truncated: CharSequence = \"...\", transform: ((Boolean) -> CharSequence)? = null): String {\n return joinTo(StringBuilder(), separator, prefix, postfix, limit, truncated, transform).toString()\n}\n\n/**\n * Creates a string from all the elements separated using [separator] and using the given [prefix] and [postfix] if supplied.\n * \n * If the collection could be huge, you can specify a non-negative value of [limit], in which case only the first [limit]\n * elements will be appended, followed by the [truncated] string (which defaults to \"...\").\n * \n * @sample samples.collections.Collections.Transformations.joinToString\n */\npublic fun CharArray.joinToString(separator: CharSequence = \", \", prefix: CharSequence = \"\", postfix: CharSequence = \"\", limit: Int = -1, truncated: CharSequence = \"...\", transform: ((Char) -> CharSequence)? = null): String {\n return joinTo(StringBuilder(), separator, prefix, postfix, limit, truncated, transform).toString()\n}\n\n/**\n * Creates an [Iterable] instance that wraps the original array returning its elements when being iterated.\n */\npublic fun Array.asIterable(): Iterable {\n if (isEmpty()) return emptyList()\n return Iterable { this.iterator() }\n}\n\n/**\n * Creates an [Iterable] instance that wraps the original array returning its elements when being iterated.\n */\npublic fun ByteArray.asIterable(): Iterable {\n if (isEmpty()) return emptyList()\n return Iterable { this.iterator() }\n}\n\n/**\n * Creates an [Iterable] instance that wraps the original array returning its elements when being iterated.\n */\npublic fun ShortArray.asIterable(): Iterable {\n if (isEmpty()) return emptyList()\n return Iterable { this.iterator() }\n}\n\n/**\n * Creates an [Iterable] instance that wraps the original array returning its elements when being iterated.\n */\npublic fun IntArray.asIterable(): Iterable {\n if (isEmpty()) return emptyList()\n return Iterable { this.iterator() }\n}\n\n/**\n * Creates an [Iterable] instance that wraps the original array returning its elements when being iterated.\n */\npublic fun LongArray.asIterable(): Iterable {\n if (isEmpty()) return emptyList()\n return Iterable { this.iterator() }\n}\n\n/**\n * Creates an [Iterable] instance that wraps the original array returning its elements when being iterated.\n */\npublic fun FloatArray.asIterable(): Iterable {\n if (isEmpty()) return emptyList()\n return Iterable { this.iterator() }\n}\n\n/**\n * Creates an [Iterable] instance that wraps the original array returning its elements when being iterated.\n */\npublic fun DoubleArray.asIterable(): Iterable {\n if (isEmpty()) return emptyList()\n return Iterable { this.iterator() }\n}\n\n/**\n * Creates an [Iterable] instance that wraps the original array returning its elements when being iterated.\n */\npublic fun BooleanArray.asIterable(): Iterable {\n if (isEmpty()) return emptyList()\n return Iterable { this.iterator() }\n}\n\n/**\n * Creates an [Iterable] instance that wraps the original array returning its elements when being iterated.\n */\npublic fun CharArray.asIterable(): Iterable {\n if (isEmpty()) return emptyList()\n return Iterable { this.iterator() }\n}\n\n/**\n * Creates a [Sequence] instance that wraps the original array returning its elements when being iterated.\n * \n * @sample samples.collections.Sequences.Building.sequenceFromArray\n */\npublic fun Array.asSequence(): Sequence {\n if (isEmpty()) return emptySequence()\n return Sequence { this.iterator() }\n}\n\n/**\n * Creates a [Sequence] instance that wraps the original array returning its elements when being iterated.\n * \n * @sample samples.collections.Sequences.Building.sequenceFromArray\n */\npublic fun ByteArray.asSequence(): Sequence {\n if (isEmpty()) return emptySequence()\n return Sequence { this.iterator() }\n}\n\n/**\n * Creates a [Sequence] instance that wraps the original array returning its elements when being iterated.\n * \n * @sample samples.collections.Sequences.Building.sequenceFromArray\n */\npublic fun ShortArray.asSequence(): Sequence {\n if (isEmpty()) return emptySequence()\n return Sequence { this.iterator() }\n}\n\n/**\n * Creates a [Sequence] instance that wraps the original array returning its elements when being iterated.\n * \n * @sample samples.collections.Sequences.Building.sequenceFromArray\n */\npublic fun IntArray.asSequence(): Sequence {\n if (isEmpty()) return emptySequence()\n return Sequence { this.iterator() }\n}\n\n/**\n * Creates a [Sequence] instance that wraps the original array returning its elements when being iterated.\n * \n * @sample samples.collections.Sequences.Building.sequenceFromArray\n */\npublic fun LongArray.asSequence(): Sequence {\n if (isEmpty()) return emptySequence()\n return Sequence { this.iterator() }\n}\n\n/**\n * Creates a [Sequence] instance that wraps the original array returning its elements when being iterated.\n * \n * @sample samples.collections.Sequences.Building.sequenceFromArray\n */\npublic fun FloatArray.asSequence(): Sequence {\n if (isEmpty()) return emptySequence()\n return Sequence { this.iterator() }\n}\n\n/**\n * Creates a [Sequence] instance that wraps the original array returning its elements when being iterated.\n * \n * @sample samples.collections.Sequences.Building.sequenceFromArray\n */\npublic fun DoubleArray.asSequence(): Sequence {\n if (isEmpty()) return emptySequence()\n return Sequence { this.iterator() }\n}\n\n/**\n * Creates a [Sequence] instance that wraps the original array returning its elements when being iterated.\n * \n * @sample samples.collections.Sequences.Building.sequenceFromArray\n */\npublic fun BooleanArray.asSequence(): Sequence {\n if (isEmpty()) return emptySequence()\n return Sequence { this.iterator() }\n}\n\n/**\n * Creates a [Sequence] instance that wraps the original array returning its elements when being iterated.\n * \n * @sample samples.collections.Sequences.Building.sequenceFromArray\n */\npublic fun CharArray.asSequence(): Sequence {\n if (isEmpty()) return emptySequence()\n return Sequence { this.iterator() }\n}\n\n/**\n * Returns an average value of elements in the array.\n */\n@kotlin.jvm.JvmName(\"averageOfByte\")\npublic fun Array.average(): Double {\n var sum: Double = 0.0\n var count: Int = 0\n for (element in this) {\n sum += element\n ++count\n }\n return if (count == 0) Double.NaN else sum / count\n}\n\n/**\n * Returns an average value of elements in the array.\n */\n@kotlin.jvm.JvmName(\"averageOfShort\")\npublic fun Array.average(): Double {\n var sum: Double = 0.0\n var count: Int = 0\n for (element in this) {\n sum += element\n ++count\n }\n return if (count == 0) Double.NaN else sum / count\n}\n\n/**\n * Returns an average value of elements in the array.\n */\n@kotlin.jvm.JvmName(\"averageOfInt\")\npublic fun Array.average(): Double {\n var sum: Double = 0.0\n var count: Int = 0\n for (element in this) {\n sum += element\n ++count\n }\n return if (count == 0) Double.NaN else sum / count\n}\n\n/**\n * Returns an average value of elements in the array.\n */\n@kotlin.jvm.JvmName(\"averageOfLong\")\npublic fun Array.average(): Double {\n var sum: Double = 0.0\n var count: Int = 0\n for (element in this) {\n sum += element\n ++count\n }\n return if (count == 0) Double.NaN else sum / count\n}\n\n/**\n * Returns an average value of elements in the array.\n */\n@kotlin.jvm.JvmName(\"averageOfFloat\")\npublic fun Array.average(): Double {\n var sum: Double = 0.0\n var count: Int = 0\n for (element in this) {\n sum += element\n ++count\n }\n return if (count == 0) Double.NaN else sum / count\n}\n\n/**\n * Returns an average value of elements in the array.\n */\n@kotlin.jvm.JvmName(\"averageOfDouble\")\npublic fun Array.average(): Double {\n var sum: Double = 0.0\n var count: Int = 0\n for (element in this) {\n sum += element\n ++count\n }\n return if (count == 0) Double.NaN else sum / count\n}\n\n/**\n * Returns an average value of elements in the array.\n */\npublic fun ByteArray.average(): Double {\n var sum: Double = 0.0\n var count: Int = 0\n for (element in this) {\n sum += element\n ++count\n }\n return if (count == 0) Double.NaN else sum / count\n}\n\n/**\n * Returns an average value of elements in the array.\n */\npublic fun ShortArray.average(): Double {\n var sum: Double = 0.0\n var count: Int = 0\n for (element in this) {\n sum += element\n ++count\n }\n return if (count == 0) Double.NaN else sum / count\n}\n\n/**\n * Returns an average value of elements in the array.\n */\npublic fun IntArray.average(): Double {\n var sum: Double = 0.0\n var count: Int = 0\n for (element in this) {\n sum += element\n ++count\n }\n return if (count == 0) Double.NaN else sum / count\n}\n\n/**\n * Returns an average value of elements in the array.\n */\npublic fun LongArray.average(): Double {\n var sum: Double = 0.0\n var count: Int = 0\n for (element in this) {\n sum += element\n ++count\n }\n return if (count == 0) Double.NaN else sum / count\n}\n\n/**\n * Returns an average value of elements in the array.\n */\npublic fun FloatArray.average(): Double {\n var sum: Double = 0.0\n var count: Int = 0\n for (element in this) {\n sum += element\n ++count\n }\n return if (count == 0) Double.NaN else sum / count\n}\n\n/**\n * Returns an average value of elements in the array.\n */\npublic fun DoubleArray.average(): Double {\n var sum: Double = 0.0\n var count: Int = 0\n for (element in this) {\n sum += element\n ++count\n }\n return if (count == 0) Double.NaN else sum / count\n}\n\n/**\n * Returns the sum of all elements in the array.\n */\n@kotlin.jvm.JvmName(\"sumOfByte\")\npublic fun Array.sum(): Int {\n var sum: Int = 0\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n/**\n * Returns the sum of all elements in the array.\n */\n@kotlin.jvm.JvmName(\"sumOfShort\")\npublic fun Array.sum(): Int {\n var sum: Int = 0\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n/**\n * Returns the sum of all elements in the array.\n */\n@kotlin.jvm.JvmName(\"sumOfInt\")\npublic fun Array.sum(): Int {\n var sum: Int = 0\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n/**\n * Returns the sum of all elements in the array.\n */\n@kotlin.jvm.JvmName(\"sumOfLong\")\npublic fun Array.sum(): Long {\n var sum: Long = 0L\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n/**\n * Returns the sum of all elements in the array.\n */\n@kotlin.jvm.JvmName(\"sumOfFloat\")\npublic fun Array.sum(): Float {\n var sum: Float = 0.0f\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n/**\n * Returns the sum of all elements in the array.\n */\n@kotlin.jvm.JvmName(\"sumOfDouble\")\npublic fun Array.sum(): Double {\n var sum: Double = 0.0\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n/**\n * Returns the sum of all elements in the array.\n */\npublic fun ByteArray.sum(): Int {\n var sum: Int = 0\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n/**\n * Returns the sum of all elements in the array.\n */\npublic fun ShortArray.sum(): Int {\n var sum: Int = 0\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n/**\n * Returns the sum of all elements in the array.\n */\npublic fun IntArray.sum(): Int {\n var sum: Int = 0\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n/**\n * Returns the sum of all elements in the array.\n */\npublic fun LongArray.sum(): Long {\n var sum: Long = 0L\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n/**\n * Returns the sum of all elements in the array.\n */\npublic fun FloatArray.sum(): Float {\n var sum: Float = 0.0f\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n/**\n * Returns the sum of all elements in the array.\n */\npublic fun DoubleArray.sum(): Double {\n var sum: Double = 0.0\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n","/*\n * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n// a package is omitted to get declarations directly under the module\n\n@PublishedApi\nexternal internal fun Array(size: Int): Array\n\n@JsName(\"newArray\")\nfun newArray(size: Int, initValue: T) = fillArrayVal(Array(size), initValue)\n\n@JsName(\"newArrayF\")\ninline fun arrayWithFun(size: Int, init: (Int) -> T) = fillArrayFun(Array(size), init)\n\n@JsName(\"fillArray\")\ninline fun fillArrayFun(array: Array, init: (Int) -> T): Array {\n for (i in 0..array.size - 1) {\n array[i] = init(i)\n }\n return array\n}\n\n@JsName(\"booleanArray\")\nfun booleanArray(size: Int, init: dynamic): Array {\n val result: dynamic = Array(size)\n result.`$type$` = \"BooleanArray\"\n return when (init) {\n null, true -> fillArrayVal(result, false)\n false -> result\n else -> fillArrayFun(result, init)\n }\n}\n\n@JsName(\"booleanArrayF\")\ninline fun booleanArrayWithFun(size: Int, init: (Int) -> Boolean): Array = fillArrayFun(booleanArray(size, false), init)\n\n@JsName(\"charArray\")\n@Suppress(\"UNUSED_PARAMETER\")\nfun charArray(size: Int, init: dynamic): Array {\n val result = js(\"new Uint16Array(size)\")\n result.`$type$` = \"CharArray\"\n return when (init) {\n null, true, false -> result // For consistency\n else -> fillArrayFun(result, init)\n }\n}\n\n@JsName(\"charArrayF\")\ninline fun charArrayWithFun(size: Int, init: (Int) -> Char): Array {\n val array = charArray(size, null)\n for (i in 0..array.size - 1) {\n @Suppress(\"UNUSED_VARIABLE\") // used in js block\n val value = init(i)\n js(\"array[i] = value;\")\n }\n return array\n}\n\n@JsName(\"untypedCharArrayF\")\ninline fun untypedCharArrayWithFun(size: Int, init: (Int) -> Char): Array {\n val array = Array(size)\n for (i in 0..array.size - 1) {\n @Suppress(\"UNUSED_VARIABLE\") // used in js block\n val value = init(i)\n js(\"array[i] = value;\")\n }\n return array\n}\n\n@JsName(\"longArray\")\nfun longArray(size: Int, init: dynamic): Array {\n val result: dynamic = Array(size)\n result.`$type$` = \"LongArray\"\n return when (init) {\n null, true -> fillArrayVal(result, 0L)\n false -> result\n else -> fillArrayFun(result, init)\n }\n}\n\n@JsName(\"longArrayF\")\ninline fun longArrayWithFun(size: Int, init: (Int) -> Long): Array = fillArrayFun(longArray(size, false), init)\n\nprivate fun fillArrayVal(array: Array, initValue: T): Array {\n for (i in 0..array.size - 1) {\n array[i] = initValue\n }\n return array\n}","/*\n * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n@file:kotlin.jvm.JvmMultifileClass\n@file:kotlin.jvm.JvmName(\"StringsKt\")\n\npackage kotlin.text\n\n//\n// NOTE: THIS FILE IS AUTO-GENERATED by the GenerateStandardLib.kt\n// See: https://github.com/JetBrains/kotlin/tree/master/libraries/stdlib\n//\n\nimport kotlin.random.*\n\n/**\n * Returns a character at the given [index] or throws an [IndexOutOfBoundsException] if the [index] is out of bounds of this char sequence.\n * \n * @sample samples.collections.Collections.Elements.elementAt\n */\npublic expect fun CharSequence.elementAt(index: Int): Char\n\n/**\n * Returns a character at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this char sequence.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrElse\n */\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence.elementAtOrElse(index: Int, defaultValue: (Int) -> Char): Char {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns a character at the given [index] or `null` if the [index] is out of bounds of this char sequence.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrNull\n */\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence.elementAtOrNull(index: Int): Char? {\n return this.getOrNull(index)\n}\n\n/**\n * Returns the first character matching the given [predicate], or `null` if no such character was found.\n * \n * @sample samples.collections.Collections.Elements.find\n */\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence.find(predicate: (Char) -> Boolean): Char? {\n return firstOrNull(predicate)\n}\n\n/**\n * Returns the last character matching the given [predicate], or `null` if no such character was found.\n * \n * @sample samples.collections.Collections.Elements.find\n */\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence.findLast(predicate: (Char) -> Boolean): Char? {\n return lastOrNull(predicate)\n}\n\n/**\n * Returns first character.\n * @throws [NoSuchElementException] if the char sequence is empty.\n */\npublic fun CharSequence.first(): Char {\n if (isEmpty())\n throw NoSuchElementException(\"Char sequence is empty.\")\n return this[0]\n}\n\n/**\n * Returns the first character matching the given [predicate].\n * @throws [NoSuchElementException] if no such character is found.\n */\npublic inline fun CharSequence.first(predicate: (Char) -> Boolean): Char {\n for (element in this) if (predicate(element)) return element\n throw NoSuchElementException(\"Char sequence contains no character matching the predicate.\")\n}\n\n/**\n * Returns the first character, or `null` if the char sequence is empty.\n */\npublic fun CharSequence.firstOrNull(): Char? {\n return if (isEmpty()) null else this[0]\n}\n\n/**\n * Returns the first character matching the given [predicate], or `null` if character was not found.\n */\npublic inline fun CharSequence.firstOrNull(predicate: (Char) -> Boolean): Char? {\n for (element in this) if (predicate(element)) return element\n return null\n}\n\n/**\n * Returns a character at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this char sequence.\n */\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence.getOrElse(index: Int, defaultValue: (Int) -> Char): Char {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns a character at the given [index] or `null` if the [index] is out of bounds of this char sequence.\n * \n * @sample samples.collections.Collections.Elements.getOrNull\n */\npublic fun CharSequence.getOrNull(index: Int): Char? {\n return if (index >= 0 && index <= lastIndex) get(index) else null\n}\n\n/**\n * Returns index of the first character matching the given [predicate], or -1 if the char sequence does not contain such character.\n */\npublic inline fun CharSequence.indexOfFirst(predicate: (Char) -> Boolean): Int {\n for (index in indices) {\n if (predicate(this[index])) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns index of the last character matching the given [predicate], or -1 if the char sequence does not contain such character.\n */\npublic inline fun CharSequence.indexOfLast(predicate: (Char) -> Boolean): Int {\n for (index in indices.reversed()) {\n if (predicate(this[index])) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns the last character.\n * \n * @throws NoSuchElementException if the char sequence is empty.\n * \n * @sample samples.text.Strings.last\n */\npublic fun CharSequence.last(): Char {\n if (isEmpty())\n throw NoSuchElementException(\"Char sequence is empty.\")\n return this[lastIndex]\n}\n\n/**\n * Returns the last character matching the given [predicate].\n * \n * @throws NoSuchElementException if no such character is found.\n * \n * @sample samples.text.Strings.last\n */\npublic inline fun CharSequence.last(predicate: (Char) -> Boolean): Char {\n for (index in this.indices.reversed()) {\n val element = this[index]\n if (predicate(element)) return element\n }\n throw NoSuchElementException(\"Char sequence contains no character matching the predicate.\")\n}\n\n/**\n * Returns the last character, or `null` if the char sequence is empty.\n * \n * @sample samples.text.Strings.last\n */\npublic fun CharSequence.lastOrNull(): Char? {\n return if (isEmpty()) null else this[length - 1]\n}\n\n/**\n * Returns the last character matching the given [predicate], or `null` if no such character was found.\n * \n * @sample samples.text.Strings.last\n */\npublic inline fun CharSequence.lastOrNull(predicate: (Char) -> Boolean): Char? {\n for (index in this.indices.reversed()) {\n val element = this[index]\n if (predicate(element)) return element\n }\n return null\n}\n\n/**\n * Returns a random character from this char sequence.\n * \n * @throws NoSuchElementException if this char sequence is empty.\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence.random(): Char {\n return random(Random)\n}\n\n/**\n * Returns a random character from this char sequence using the specified source of randomness.\n * \n * @throws NoSuchElementException if this char sequence is empty.\n */\n@SinceKotlin(\"1.3\")\npublic fun CharSequence.random(random: Random): Char {\n if (isEmpty())\n throw NoSuchElementException(\"Char sequence is empty.\")\n return get(random.nextInt(length))\n}\n\n/**\n * Returns a random character from this char sequence, or `null` if this char sequence is empty.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence.randomOrNull(): Char? {\n return randomOrNull(Random)\n}\n\n/**\n * Returns a random character from this char sequence using the specified source of randomness, or `null` if this char sequence is empty.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic fun CharSequence.randomOrNull(random: Random): Char? {\n if (isEmpty())\n return null\n return get(random.nextInt(length))\n}\n\n/**\n * Returns the single character, or throws an exception if the char sequence is empty or has more than one character.\n */\npublic fun CharSequence.single(): Char {\n return when (length) {\n 0 -> throw NoSuchElementException(\"Char sequence is empty.\")\n 1 -> this[0]\n else -> throw IllegalArgumentException(\"Char sequence has more than one element.\")\n }\n}\n\n/**\n * Returns the single character matching the given [predicate], or throws exception if there is no or more than one matching character.\n */\npublic inline fun CharSequence.single(predicate: (Char) -> Boolean): Char {\n var single: Char? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) throw IllegalArgumentException(\"Char sequence contains more than one matching element.\")\n single = element\n found = true\n }\n }\n if (!found) throw NoSuchElementException(\"Char sequence contains no character matching the predicate.\")\n @Suppress(\"UNCHECKED_CAST\")\n return single as Char\n}\n\n/**\n * Returns single character, or `null` if the char sequence is empty or has more than one character.\n */\npublic fun CharSequence.singleOrNull(): Char? {\n return if (length == 1) this[0] else null\n}\n\n/**\n * Returns the single character matching the given [predicate], or `null` if character was not found or more than one character was found.\n */\npublic inline fun CharSequence.singleOrNull(predicate: (Char) -> Boolean): Char? {\n var single: Char? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) return null\n single = element\n found = true\n }\n }\n if (!found) return null\n return single\n}\n\n/**\n * Returns a subsequence of this char sequence with the first [n] characters removed.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.text.Strings.drop\n */\npublic fun CharSequence.drop(n: Int): CharSequence {\n require(n >= 0) { \"Requested character count $n is less than zero.\" }\n return subSequence(n.coerceAtMost(length), length)\n}\n\n/**\n * Returns a string with the first [n] characters removed.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.text.Strings.drop\n */\npublic fun String.drop(n: Int): String {\n require(n >= 0) { \"Requested character count $n is less than zero.\" }\n return substring(n.coerceAtMost(length))\n}\n\n/**\n * Returns a subsequence of this char sequence with the last [n] characters removed.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.text.Strings.drop\n */\npublic fun CharSequence.dropLast(n: Int): CharSequence {\n require(n >= 0) { \"Requested character count $n is less than zero.\" }\n return take((length - n).coerceAtLeast(0))\n}\n\n/**\n * Returns a string with the last [n] characters removed.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.text.Strings.drop\n */\npublic fun String.dropLast(n: Int): String {\n require(n >= 0) { \"Requested character count $n is less than zero.\" }\n return take((length - n).coerceAtLeast(0))\n}\n\n/**\n * Returns a subsequence of this char sequence containing all characters except last characters that satisfy the given [predicate].\n * \n * @sample samples.text.Strings.drop\n */\npublic inline fun CharSequence.dropLastWhile(predicate: (Char) -> Boolean): CharSequence {\n for (index in lastIndex downTo 0)\n if (!predicate(this[index]))\n return subSequence(0, index + 1)\n return \"\"\n}\n\n/**\n * Returns a string containing all characters except last characters that satisfy the given [predicate].\n * \n * @sample samples.text.Strings.drop\n */\npublic inline fun String.dropLastWhile(predicate: (Char) -> Boolean): String {\n for (index in lastIndex downTo 0)\n if (!predicate(this[index]))\n return substring(0, index + 1)\n return \"\"\n}\n\n/**\n * Returns a subsequence of this char sequence containing all characters except first characters that satisfy the given [predicate].\n * \n * @sample samples.text.Strings.drop\n */\npublic inline fun CharSequence.dropWhile(predicate: (Char) -> Boolean): CharSequence {\n for (index in this.indices)\n if (!predicate(this[index]))\n return subSequence(index, length)\n return \"\"\n}\n\n/**\n * Returns a string containing all characters except first characters that satisfy the given [predicate].\n * \n * @sample samples.text.Strings.drop\n */\npublic inline fun String.dropWhile(predicate: (Char) -> Boolean): String {\n for (index in this.indices)\n if (!predicate(this[index]))\n return substring(index)\n return \"\"\n}\n\n/**\n * Returns a char sequence containing only those characters from the original char sequence that match the given [predicate].\n * \n * @sample samples.text.Strings.filter\n */\npublic inline fun CharSequence.filter(predicate: (Char) -> Boolean): CharSequence {\n return filterTo(StringBuilder(), predicate)\n}\n\n/**\n * Returns a string containing only those characters from the original string that match the given [predicate].\n * \n * @sample samples.text.Strings.filter\n */\npublic inline fun String.filter(predicate: (Char) -> Boolean): String {\n return filterTo(StringBuilder(), predicate).toString()\n}\n\n/**\n * Returns a char sequence containing only those characters from the original char sequence that match the given [predicate].\n * @param [predicate] function that takes the index of a character and the character itself\n * and returns the result of predicate evaluation on the character.\n * \n * @sample samples.collections.Collections.Filtering.filterIndexed\n */\npublic inline fun CharSequence.filterIndexed(predicate: (index: Int, Char) -> Boolean): CharSequence {\n return filterIndexedTo(StringBuilder(), predicate)\n}\n\n/**\n * Returns a string containing only those characters from the original string that match the given [predicate].\n * @param [predicate] function that takes the index of a character and the character itself\n * and returns the result of predicate evaluation on the character.\n * \n * @sample samples.collections.Collections.Filtering.filterIndexed\n */\npublic inline fun String.filterIndexed(predicate: (index: Int, Char) -> Boolean): String {\n return filterIndexedTo(StringBuilder(), predicate).toString()\n}\n\n/**\n * Appends all characters matching the given [predicate] to the given [destination].\n * @param [predicate] function that takes the index of a character and the character itself\n * and returns the result of predicate evaluation on the character.\n * \n * @sample samples.collections.Collections.Filtering.filterIndexedTo\n */\npublic inline fun CharSequence.filterIndexedTo(destination: C, predicate: (index: Int, Char) -> Boolean): C {\n forEachIndexed { index, element ->\n if (predicate(index, element)) destination.append(element)\n }\n return destination\n}\n\n/**\n * Returns a char sequence containing only those characters from the original char sequence that do not match the given [predicate].\n * \n * @sample samples.text.Strings.filterNot\n */\npublic inline fun CharSequence.filterNot(predicate: (Char) -> Boolean): CharSequence {\n return filterNotTo(StringBuilder(), predicate)\n}\n\n/**\n * Returns a string containing only those characters from the original string that do not match the given [predicate].\n * \n * @sample samples.text.Strings.filterNot\n */\npublic inline fun String.filterNot(predicate: (Char) -> Boolean): String {\n return filterNotTo(StringBuilder(), predicate).toString()\n}\n\n/**\n * Appends all characters not matching the given [predicate] to the given [destination].\n * \n * @sample samples.collections.Collections.Filtering.filterTo\n */\npublic inline fun CharSequence.filterNotTo(destination: C, predicate: (Char) -> Boolean): C {\n for (element in this) if (!predicate(element)) destination.append(element)\n return destination\n}\n\n/**\n * Appends all characters matching the given [predicate] to the given [destination].\n * \n * @sample samples.collections.Collections.Filtering.filterTo\n */\npublic inline fun CharSequence.filterTo(destination: C, predicate: (Char) -> Boolean): C {\n for (index in 0 until length) {\n val element = get(index)\n if (predicate(element)) destination.append(element)\n }\n return destination\n}\n\n/**\n * Returns a char sequence containing characters of the original char sequence at the specified range of [indices].\n */\npublic fun CharSequence.slice(indices: IntRange): CharSequence {\n if (indices.isEmpty()) return \"\"\n return subSequence(indices)\n}\n\n/**\n * Returns a string containing characters of the original string at the specified range of [indices].\n */\npublic fun String.slice(indices: IntRange): String {\n if (indices.isEmpty()) return \"\"\n return substring(indices)\n}\n\n/**\n * Returns a char sequence containing characters of the original char sequence at specified [indices].\n */\npublic fun CharSequence.slice(indices: Iterable): CharSequence {\n val size = indices.collectionSizeOrDefault(10)\n if (size == 0) return \"\"\n val result = StringBuilder(size)\n for (i in indices) {\n result.append(get(i))\n }\n return result\n}\n\n/**\n * Returns a string containing characters of the original string at specified [indices].\n */\n@kotlin.internal.InlineOnly\npublic inline fun String.slice(indices: Iterable): String {\n return (this as CharSequence).slice(indices).toString()\n}\n\n/**\n * Returns a subsequence of this char sequence containing the first [n] characters from this char sequence, or the entire char sequence if this char sequence is shorter.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.text.Strings.take\n */\npublic fun CharSequence.take(n: Int): CharSequence {\n require(n >= 0) { \"Requested character count $n is less than zero.\" }\n return subSequence(0, n.coerceAtMost(length))\n}\n\n/**\n * Returns a string containing the first [n] characters from this string, or the entire string if this string is shorter.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.text.Strings.take\n */\npublic fun String.take(n: Int): String {\n require(n >= 0) { \"Requested character count $n is less than zero.\" }\n return substring(0, n.coerceAtMost(length))\n}\n\n/**\n * Returns a subsequence of this char sequence containing the last [n] characters from this char sequence, or the entire char sequence if this char sequence is shorter.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.text.Strings.take\n */\npublic fun CharSequence.takeLast(n: Int): CharSequence {\n require(n >= 0) { \"Requested character count $n is less than zero.\" }\n val length = length\n return subSequence(length - n.coerceAtMost(length), length)\n}\n\n/**\n * Returns a string containing the last [n] characters from this string, or the entire string if this string is shorter.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.text.Strings.take\n */\npublic fun String.takeLast(n: Int): String {\n require(n >= 0) { \"Requested character count $n is less than zero.\" }\n val length = length\n return substring(length - n.coerceAtMost(length))\n}\n\n/**\n * Returns a subsequence of this char sequence containing last characters that satisfy the given [predicate].\n * \n * @sample samples.text.Strings.take\n */\npublic inline fun CharSequence.takeLastWhile(predicate: (Char) -> Boolean): CharSequence {\n for (index in lastIndex downTo 0) {\n if (!predicate(this[index])) {\n return subSequence(index + 1, length)\n }\n }\n return subSequence(0, length)\n}\n\n/**\n * Returns a string containing last characters that satisfy the given [predicate].\n * \n * @sample samples.text.Strings.take\n */\npublic inline fun String.takeLastWhile(predicate: (Char) -> Boolean): String {\n for (index in lastIndex downTo 0) {\n if (!predicate(this[index])) {\n return substring(index + 1)\n }\n }\n return this\n}\n\n/**\n * Returns a subsequence of this char sequence containing the first characters that satisfy the given [predicate].\n * \n * @sample samples.text.Strings.take\n */\npublic inline fun CharSequence.takeWhile(predicate: (Char) -> Boolean): CharSequence {\n for (index in 0 until length)\n if (!predicate(get(index))) {\n return subSequence(0, index)\n }\n return subSequence(0, length)\n}\n\n/**\n * Returns a string containing the first characters that satisfy the given [predicate].\n * \n * @sample samples.text.Strings.take\n */\npublic inline fun String.takeWhile(predicate: (Char) -> Boolean): String {\n for (index in 0 until length)\n if (!predicate(get(index))) {\n return substring(0, index)\n }\n return this\n}\n\n/**\n * Returns a char sequence with characters in reversed order.\n */\npublic fun CharSequence.reversed(): CharSequence {\n return StringBuilder(this).reverse()\n}\n\n/**\n * Returns a string with characters in reversed order.\n */\n@kotlin.internal.InlineOnly\npublic inline fun String.reversed(): String {\n return (this as CharSequence).reversed().toString()\n}\n\n/**\n * Returns a [Map] containing key-value pairs provided by [transform] function\n * applied to characters of the given char sequence.\n * \n * If any of two pairs would have the same key the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original char sequence.\n * \n * @sample samples.text.Strings.associate\n */\npublic inline fun CharSequence.associate(transform: (Char) -> Pair): Map {\n val capacity = mapCapacity(length).coerceAtLeast(16)\n return associateTo(LinkedHashMap(capacity), transform)\n}\n\n/**\n * Returns a [Map] containing the characters from the given char sequence indexed by the key\n * returned from [keySelector] function applied to each character.\n * \n * If any two characters would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original char sequence.\n * \n * @sample samples.text.Strings.associateBy\n */\npublic inline fun CharSequence.associateBy(keySelector: (Char) -> K): Map {\n val capacity = mapCapacity(length).coerceAtLeast(16)\n return associateByTo(LinkedHashMap(capacity), keySelector)\n}\n\n/**\n * Returns a [Map] containing the values provided by [valueTransform] and indexed by [keySelector] functions applied to characters of the given char sequence.\n * \n * If any two characters would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original char sequence.\n * \n * @sample samples.text.Strings.associateByWithValueTransform\n */\npublic inline fun CharSequence.associateBy(keySelector: (Char) -> K, valueTransform: (Char) -> V): Map {\n val capacity = mapCapacity(length).coerceAtLeast(16)\n return associateByTo(LinkedHashMap(capacity), keySelector, valueTransform)\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs,\n * where key is provided by the [keySelector] function applied to each character of the given char sequence\n * and value is the character itself.\n * \n * If any two characters would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * @sample samples.text.Strings.associateByTo\n */\npublic inline fun > CharSequence.associateByTo(destination: M, keySelector: (Char) -> K): M {\n for (element in this) {\n destination.put(keySelector(element), element)\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs,\n * where key is provided by the [keySelector] function and\n * and value is provided by the [valueTransform] function applied to characters of the given char sequence.\n * \n * If any two characters would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * @sample samples.text.Strings.associateByToWithValueTransform\n */\npublic inline fun > CharSequence.associateByTo(destination: M, keySelector: (Char) -> K, valueTransform: (Char) -> V): M {\n for (element in this) {\n destination.put(keySelector(element), valueTransform(element))\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs\n * provided by [transform] function applied to each character of the given char sequence.\n * \n * If any of two pairs would have the same key the last one gets added to the map.\n * \n * @sample samples.text.Strings.associateTo\n */\npublic inline fun > CharSequence.associateTo(destination: M, transform: (Char) -> Pair): M {\n for (element in this) {\n destination += transform(element)\n }\n return destination\n}\n\n/**\n * Returns a [Map] where keys are characters from the given char sequence and values are\n * produced by the [valueSelector] function applied to each character.\n * \n * If any two characters are equal, the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original char sequence.\n * \n * @sample samples.text.Strings.associateWith\n */\n@SinceKotlin(\"1.3\")\npublic inline fun CharSequence.associateWith(valueSelector: (Char) -> V): Map {\n val result = LinkedHashMap(mapCapacity(length.coerceAtMost(128)).coerceAtLeast(16))\n return associateWithTo(result, valueSelector)\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs for each character of the given char sequence,\n * where key is the character itself and value is provided by the [valueSelector] function applied to that key.\n * \n * If any two characters are equal, the last one overwrites the former value in the map.\n * \n * @sample samples.text.Strings.associateWithTo\n */\n@SinceKotlin(\"1.3\")\npublic inline fun > CharSequence.associateWithTo(destination: M, valueSelector: (Char) -> V): M {\n for (element in this) {\n destination.put(element, valueSelector(element))\n }\n return destination\n}\n\n/**\n * Appends all characters to the given [destination] collection.\n */\npublic fun > CharSequence.toCollection(destination: C): C {\n for (item in this) {\n destination.add(item)\n }\n return destination\n}\n\n/**\n * Returns a new [HashSet] of all characters.\n */\npublic fun CharSequence.toHashSet(): HashSet {\n return toCollection(HashSet(mapCapacity(length.coerceAtMost(128))))\n}\n\n/**\n * Returns a [List] containing all characters.\n */\npublic fun CharSequence.toList(): List {\n return when (length) {\n 0 -> emptyList()\n 1 -> listOf(this[0])\n else -> this.toMutableList()\n }\n}\n\n/**\n * Returns a new [MutableList] filled with all characters of this char sequence.\n */\npublic fun CharSequence.toMutableList(): MutableList {\n return toCollection(ArrayList(length))\n}\n\n/**\n * Returns a [Set] of all characters.\n * \n * The returned set preserves the element iteration order of the original char sequence.\n */\npublic fun CharSequence.toSet(): Set {\n return when (length) {\n 0 -> emptySet()\n 1 -> setOf(this[0])\n else -> toCollection(LinkedHashSet(mapCapacity(length.coerceAtMost(128))))\n }\n}\n\n/**\n * Returns a single list of all elements yielded from results of [transform] function being invoked on each character of original char sequence.\n * \n * @sample samples.collections.Collections.Transformations.flatMap\n */\npublic inline fun CharSequence.flatMap(transform: (Char) -> Iterable): List {\n return flatMapTo(ArrayList(), transform)\n}\n\n/**\n * Returns a single list of all elements yielded from results of [transform] function being invoked on each character\n * and its index in the original char sequence.\n * \n * @sample samples.collections.Collections.Transformations.flatMapIndexed\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapIndexedIterable\")\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence.flatMapIndexed(transform: (index: Int, Char) -> Iterable): List {\n return flatMapIndexedTo(ArrayList(), transform)\n}\n\n/**\n * Appends all elements yielded from results of [transform] function being invoked on each character\n * and its index in the original char sequence, to the given [destination].\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapIndexedIterableTo\")\n@kotlin.internal.InlineOnly\npublic inline fun > CharSequence.flatMapIndexedTo(destination: C, transform: (index: Int, Char) -> Iterable): C {\n var index = 0\n for (element in this) {\n val list = transform(index++, element)\n destination.addAll(list)\n }\n return destination\n}\n\n/**\n * Appends all elements yielded from results of [transform] function being invoked on each character of original char sequence, to the given [destination].\n */\npublic inline fun > CharSequence.flatMapTo(destination: C, transform: (Char) -> Iterable): C {\n for (element in this) {\n val list = transform(element)\n destination.addAll(list)\n }\n return destination\n}\n\n/**\n * Groups characters of the original char sequence by the key returned by the given [keySelector] function\n * applied to each character and returns a map where each group key is associated with a list of corresponding characters.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original char sequence.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\npublic inline fun CharSequence.groupBy(keySelector: (Char) -> K): Map> {\n return groupByTo(LinkedHashMap>(), keySelector)\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each character of the original char sequence\n * by the key returned by the given [keySelector] function applied to the character\n * and returns a map where each group key is associated with a list of corresponding values.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original char sequence.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\npublic inline fun CharSequence.groupBy(keySelector: (Char) -> K, valueTransform: (Char) -> V): Map> {\n return groupByTo(LinkedHashMap>(), keySelector, valueTransform)\n}\n\n/**\n * Groups characters of the original char sequence by the key returned by the given [keySelector] function\n * applied to each character and puts to the [destination] map each group key associated with a list of corresponding characters.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\npublic inline fun >> CharSequence.groupByTo(destination: M, keySelector: (Char) -> K): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(element)\n }\n return destination\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each character of the original char sequence\n * by the key returned by the given [keySelector] function applied to the character\n * and puts to the [destination] map each group key associated with a list of corresponding values.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\npublic inline fun >> CharSequence.groupByTo(destination: M, keySelector: (Char) -> K, valueTransform: (Char) -> V): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(valueTransform(element))\n }\n return destination\n}\n\n/**\n * Creates a [Grouping] source from a char sequence to be used later with one of group-and-fold operations\n * using the specified [keySelector] function to extract a key from each character.\n * \n * @sample samples.collections.Grouping.groupingByEachCount\n */\n@SinceKotlin(\"1.1\")\npublic inline fun CharSequence.groupingBy(crossinline keySelector: (Char) -> K): Grouping {\n return object : Grouping {\n override fun sourceIterator(): Iterator = this@groupingBy.iterator()\n override fun keyOf(element: Char): K = keySelector(element)\n }\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each character in the original char sequence.\n * \n * @sample samples.text.Strings.map\n */\npublic inline fun CharSequence.map(transform: (Char) -> R): List {\n return mapTo(ArrayList(length), transform)\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each character and its index in the original char sequence.\n * @param [transform] function that takes the index of a character and the character itself\n * and returns the result of the transform applied to the character.\n */\npublic inline fun CharSequence.mapIndexed(transform: (index: Int, Char) -> R): List {\n return mapIndexedTo(ArrayList(length), transform)\n}\n\n/**\n * Returns a list containing only the non-null results of applying the given [transform] function\n * to each character and its index in the original char sequence.\n * @param [transform] function that takes the index of a character and the character itself\n * and returns the result of the transform applied to the character.\n */\npublic inline fun CharSequence.mapIndexedNotNull(transform: (index: Int, Char) -> R?): List {\n return mapIndexedNotNullTo(ArrayList(), transform)\n}\n\n/**\n * Applies the given [transform] function to each character and its index in the original char sequence\n * and appends only the non-null results to the given [destination].\n * @param [transform] function that takes the index of a character and the character itself\n * and returns the result of the transform applied to the character.\n */\npublic inline fun > CharSequence.mapIndexedNotNullTo(destination: C, transform: (index: Int, Char) -> R?): C {\n forEachIndexed { index, element -> transform(index, element)?.let { destination.add(it) } }\n return destination\n}\n\n/**\n * Applies the given [transform] function to each character and its index in the original char sequence\n * and appends the results to the given [destination].\n * @param [transform] function that takes the index of a character and the character itself\n * and returns the result of the transform applied to the character.\n */\npublic inline fun > CharSequence.mapIndexedTo(destination: C, transform: (index: Int, Char) -> R): C {\n var index = 0\n for (item in this)\n destination.add(transform(index++, item))\n return destination\n}\n\n/**\n * Returns a list containing only the non-null results of applying the given [transform] function\n * to each character in the original char sequence.\n * \n * @sample samples.collections.Collections.Transformations.mapNotNull\n */\npublic inline fun CharSequence.mapNotNull(transform: (Char) -> R?): List {\n return mapNotNullTo(ArrayList(), transform)\n}\n\n/**\n * Applies the given [transform] function to each character in the original char sequence\n * and appends only the non-null results to the given [destination].\n */\npublic inline fun > CharSequence.mapNotNullTo(destination: C, transform: (Char) -> R?): C {\n forEach { element -> transform(element)?.let { destination.add(it) } }\n return destination\n}\n\n/**\n * Applies the given [transform] function to each character of the original char sequence\n * and appends the results to the given [destination].\n */\npublic inline fun > CharSequence.mapTo(destination: C, transform: (Char) -> R): C {\n for (item in this)\n destination.add(transform(item))\n return destination\n}\n\n/**\n * Returns a lazy [Iterable] that wraps each character of the original char sequence\n * into an [IndexedValue] containing the index of that character and the character itself.\n */\npublic fun CharSequence.withIndex(): Iterable> {\n return IndexingIterable { iterator() }\n}\n\n/**\n * Returns `true` if all characters match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.all\n */\npublic inline fun CharSequence.all(predicate: (Char) -> Boolean): Boolean {\n for (element in this) if (!predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if char sequence has at least one character.\n * \n * @sample samples.collections.Collections.Aggregates.any\n */\npublic fun CharSequence.any(): Boolean {\n return !isEmpty()\n}\n\n/**\n * Returns `true` if at least one character matches the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.anyWithPredicate\n */\npublic inline fun CharSequence.any(predicate: (Char) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return true\n return false\n}\n\n/**\n * Returns the length of this char sequence.\n */\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence.count(): Int {\n return length\n}\n\n/**\n * Returns the number of characters matching the given [predicate].\n */\npublic inline fun CharSequence.count(predicate: (Char) -> Boolean): Int {\n var count = 0\n for (element in this) if (predicate(element)) ++count\n return count\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right\n * to current accumulator value and each character.\n * \n * Returns the specified [initial] value if the char sequence is empty.\n * \n * @param [operation] function that takes current accumulator value and a character, and calculates the next accumulator value.\n */\npublic inline fun CharSequence.fold(initial: R, operation: (acc: R, Char) -> R): R {\n var accumulator = initial\n for (element in this) accumulator = operation(accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right\n * to current accumulator value and each character with its index in the original char sequence.\n * \n * Returns the specified [initial] value if the char sequence is empty.\n * \n * @param [operation] function that takes the index of a character, current accumulator value\n * and the character itself, and calculates the next accumulator value.\n */\npublic inline fun CharSequence.foldIndexed(initial: R, operation: (index: Int, acc: R, Char) -> R): R {\n var index = 0\n var accumulator = initial\n for (element in this) accumulator = operation(index++, accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left\n * to each character and current accumulator value.\n * \n * Returns the specified [initial] value if the char sequence is empty.\n * \n * @param [operation] function that takes a character and current accumulator value, and calculates the next accumulator value.\n */\npublic inline fun CharSequence.foldRight(initial: R, operation: (Char, acc: R) -> R): R {\n var index = lastIndex\n var accumulator = initial\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left\n * to each character with its index in the original char sequence and current accumulator value.\n * \n * Returns the specified [initial] value if the char sequence is empty.\n * \n * @param [operation] function that takes the index of a character, the character itself\n * and current accumulator value, and calculates the next accumulator value.\n */\npublic inline fun CharSequence.foldRightIndexed(initial: R, operation: (index: Int, Char, acc: R) -> R): R {\n var index = lastIndex\n var accumulator = initial\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Performs the given [action] on each character.\n */\npublic inline fun CharSequence.forEach(action: (Char) -> Unit): Unit {\n for (element in this) action(element)\n}\n\n/**\n * Performs the given [action] on each character, providing sequential index with the character.\n * @param [action] function that takes the index of a character and the character itself\n * and performs the action on the character.\n */\npublic inline fun CharSequence.forEachIndexed(action: (index: Int, Char) -> Unit): Unit {\n var index = 0\n for (item in this) action(index++, item)\n}\n\n@Deprecated(\"Use maxOrNull instead.\", ReplaceWith(\"this.maxOrNull()\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\npublic fun CharSequence.max(): Char? {\n return maxOrNull()\n}\n\n@Deprecated(\"Use maxByOrNull instead.\", ReplaceWith(\"this.maxByOrNull(selector)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\npublic inline fun > CharSequence.maxBy(selector: (Char) -> R): Char? {\n return maxByOrNull(selector)\n}\n\n/**\n * Returns the first character yielding the largest value of the given function or `null` if there are no characters.\n * \n * @sample samples.collections.Collections.Aggregates.maxByOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun > CharSequence.maxByOrNull(selector: (Char) -> R): Char? {\n if (isEmpty()) return null\n var maxElem = this[0]\n val lastIndex = this.lastIndex\n if (lastIndex == 0) return maxElem\n var maxValue = selector(maxElem)\n for (i in 1..lastIndex) {\n val e = this[i]\n val v = selector(e)\n if (maxValue < v) {\n maxElem = e\n maxValue = v\n }\n }\n return maxElem\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each character in the char sequence.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the char sequence is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence.maxOf(selector: (Char) -> Double): Double {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each character in the char sequence.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the char sequence is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence.maxOf(selector: (Char) -> Float): Float {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each character in the char sequence.\n * \n * @throws NoSuchElementException if the char sequence is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > CharSequence.maxOf(selector: (Char) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (maxValue < v) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each character in the char sequence or `null` if there are no characters.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence.maxOfOrNull(selector: (Char) -> Double): Double? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each character in the char sequence or `null` if there are no characters.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence.maxOfOrNull(selector: (Char) -> Float): Float? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each character in the char sequence or `null` if there are no characters.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > CharSequence.maxOfOrNull(selector: (Char) -> R): R? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (maxValue < v) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each character in the char sequence.\n * \n * @throws NoSuchElementException if the char sequence is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence.maxOfWith(comparator: Comparator, selector: (Char) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(maxValue, v) < 0) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each character in the char sequence or `null` if there are no characters.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence.maxOfWithOrNull(comparator: Comparator, selector: (Char) -> R): R? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(maxValue, v) < 0) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest character or `null` if there are no characters.\n */\n@SinceKotlin(\"1.4\")\npublic fun CharSequence.maxOrNull(): Char? {\n if (isEmpty()) return null\n var max = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (max < e) max = e\n }\n return max\n}\n\n@Deprecated(\"Use maxWithOrNull instead.\", ReplaceWith(\"this.maxWithOrNull(comparator)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\npublic fun CharSequence.maxWith(comparator: Comparator): Char? {\n return maxWithOrNull(comparator)\n}\n\n/**\n * Returns the first character having the largest value according to the provided [comparator] or `null` if there are no characters.\n */\n@SinceKotlin(\"1.4\")\npublic fun CharSequence.maxWithOrNull(comparator: Comparator): Char? {\n if (isEmpty()) return null\n var max = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (comparator.compare(max, e) < 0) max = e\n }\n return max\n}\n\n@Deprecated(\"Use minOrNull instead.\", ReplaceWith(\"this.minOrNull()\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\npublic fun CharSequence.min(): Char? {\n return minOrNull()\n}\n\n@Deprecated(\"Use minByOrNull instead.\", ReplaceWith(\"this.minByOrNull(selector)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\npublic inline fun > CharSequence.minBy(selector: (Char) -> R): Char? {\n return minByOrNull(selector)\n}\n\n/**\n * Returns the first character yielding the smallest value of the given function or `null` if there are no characters.\n * \n * @sample samples.collections.Collections.Aggregates.minByOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun > CharSequence.minByOrNull(selector: (Char) -> R): Char? {\n if (isEmpty()) return null\n var minElem = this[0]\n val lastIndex = this.lastIndex\n if (lastIndex == 0) return minElem\n var minValue = selector(minElem)\n for (i in 1..lastIndex) {\n val e = this[i]\n val v = selector(e)\n if (minValue > v) {\n minElem = e\n minValue = v\n }\n }\n return minElem\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each character in the char sequence.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the char sequence is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence.minOf(selector: (Char) -> Double): Double {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each character in the char sequence.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the char sequence is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence.minOf(selector: (Char) -> Float): Float {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each character in the char sequence.\n * \n * @throws NoSuchElementException if the char sequence is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > CharSequence.minOf(selector: (Char) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (minValue > v) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each character in the char sequence or `null` if there are no characters.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence.minOfOrNull(selector: (Char) -> Double): Double? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each character in the char sequence or `null` if there are no characters.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence.minOfOrNull(selector: (Char) -> Float): Float? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each character in the char sequence or `null` if there are no characters.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > CharSequence.minOfOrNull(selector: (Char) -> R): R? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (minValue > v) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each character in the char sequence.\n * \n * @throws NoSuchElementException if the char sequence is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence.minOfWith(comparator: Comparator, selector: (Char) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(minValue, v) > 0) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each character in the char sequence or `null` if there are no characters.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence.minOfWithOrNull(comparator: Comparator, selector: (Char) -> R): R? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(minValue, v) > 0) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest character or `null` if there are no characters.\n */\n@SinceKotlin(\"1.4\")\npublic fun CharSequence.minOrNull(): Char? {\n if (isEmpty()) return null\n var min = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (min > e) min = e\n }\n return min\n}\n\n@Deprecated(\"Use minWithOrNull instead.\", ReplaceWith(\"this.minWithOrNull(comparator)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\npublic fun CharSequence.minWith(comparator: Comparator): Char? {\n return minWithOrNull(comparator)\n}\n\n/**\n * Returns the first character having the smallest value according to the provided [comparator] or `null` if there are no characters.\n */\n@SinceKotlin(\"1.4\")\npublic fun CharSequence.minWithOrNull(comparator: Comparator): Char? {\n if (isEmpty()) return null\n var min = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (comparator.compare(min, e) > 0) min = e\n }\n return min\n}\n\n/**\n * Returns `true` if the char sequence has no characters.\n * \n * @sample samples.collections.Collections.Aggregates.none\n */\npublic fun CharSequence.none(): Boolean {\n return isEmpty()\n}\n\n/**\n * Returns `true` if no characters match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.noneWithPredicate\n */\npublic inline fun CharSequence.none(predicate: (Char) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return false\n return true\n}\n\n/**\n * Performs the given [action] on each character and returns the char sequence itself afterwards.\n */\n@SinceKotlin(\"1.1\")\npublic inline fun S.onEach(action: (Char) -> Unit): S {\n return apply { for (element in this) action(element) }\n}\n\n/**\n * Performs the given [action] on each character, providing sequential index with the character,\n * and returns the char sequence itself afterwards.\n * @param [action] function that takes the index of a character and the character itself\n * and performs the action on the character.\n */\n@SinceKotlin(\"1.4\")\npublic inline fun S.onEachIndexed(action: (index: Int, Char) -> Unit): S {\n return apply { forEachIndexed(action) }\n}\n\n/**\n * Accumulates value starting with the first character and applying [operation] from left to right\n * to current accumulator value and each character.\n * \n * Throws an exception if this char sequence is empty. If the char sequence can be empty in an expected way,\n * please use [reduceOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes current accumulator value and a character,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduce\n */\npublic inline fun CharSequence.reduce(operation: (acc: Char, Char) -> Char): Char {\n if (isEmpty())\n throw UnsupportedOperationException(\"Empty char sequence can't be reduced.\")\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first character and applying [operation] from left to right\n * to current accumulator value and each character with its index in the original char sequence.\n * \n * Throws an exception if this char sequence is empty. If the char sequence can be empty in an expected way,\n * please use [reduceIndexedOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes the index of a character, current accumulator value and the character itself,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduce\n */\npublic inline fun CharSequence.reduceIndexed(operation: (index: Int, acc: Char, Char) -> Char): Char {\n if (isEmpty())\n throw UnsupportedOperationException(\"Empty char sequence can't be reduced.\")\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(index, accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first character and applying [operation] from left to right\n * to current accumulator value and each character with its index in the original char sequence.\n * \n * Returns `null` if the char sequence is empty.\n * \n * @param [operation] function that takes the index of a character, current accumulator value and the character itself,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun CharSequence.reduceIndexedOrNull(operation: (index: Int, acc: Char, Char) -> Char): Char? {\n if (isEmpty())\n return null\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(index, accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first character and applying [operation] from left to right\n * to current accumulator value and each character.\n * \n * Returns `null` if the char sequence is empty.\n * \n * @param [operation] function that takes current accumulator value and a character,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceOrNull\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic inline fun CharSequence.reduceOrNull(operation: (acc: Char, Char) -> Char): Char? {\n if (isEmpty())\n return null\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the last character and applying [operation] from right to left\n * to each character and current accumulator value.\n * \n * Throws an exception if this char sequence is empty. If the char sequence can be empty in an expected way,\n * please use [reduceRightOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes a character and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRight\n */\npublic inline fun CharSequence.reduceRight(operation: (Char, acc: Char) -> Char): Char {\n var index = lastIndex\n if (index < 0) throw UnsupportedOperationException(\"Empty char sequence can't be reduced.\")\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the last character and applying [operation] from right to left\n * to each character with its index in the original char sequence and current accumulator value.\n * \n * Throws an exception if this char sequence is empty. If the char sequence can be empty in an expected way,\n * please use [reduceRightIndexedOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes the index of a character, the character itself and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRight\n */\npublic inline fun CharSequence.reduceRightIndexed(operation: (index: Int, Char, acc: Char) -> Char): Char {\n var index = lastIndex\n if (index < 0) throw UnsupportedOperationException(\"Empty char sequence can't be reduced.\")\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the last character and applying [operation] from right to left\n * to each character with its index in the original char sequence and current accumulator value.\n * \n * Returns `null` if the char sequence is empty.\n * \n * @param [operation] function that takes the index of a character, the character itself and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRightOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun CharSequence.reduceRightIndexedOrNull(operation: (index: Int, Char, acc: Char) -> Char): Char? {\n var index = lastIndex\n if (index < 0) return null\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the last character and applying [operation] from right to left\n * to each character and current accumulator value.\n * \n * Returns `null` if the char sequence is empty.\n * \n * @param [operation] function that takes a character and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRightOrNull\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic inline fun CharSequence.reduceRightOrNull(operation: (Char, acc: Char) -> Char): Char? {\n var index = lastIndex\n if (index < 0) return null\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each character and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes current accumulator value and a character, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningFold\n */\n@SinceKotlin(\"1.4\")\npublic inline fun CharSequence.runningFold(initial: R, operation: (acc: R, Char) -> R): List {\n if (isEmpty()) return listOf(initial)\n val result = ArrayList(length + 1).apply { add(initial) }\n var accumulator = initial\n for (element in this) {\n accumulator = operation(accumulator, element)\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each character, its index in the original char sequence and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes the index of a character, current accumulator value\n * and the character itself, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningFold\n */\n@SinceKotlin(\"1.4\")\npublic inline fun CharSequence.runningFoldIndexed(initial: R, operation: (index: Int, acc: R, Char) -> R): List {\n if (isEmpty()) return listOf(initial)\n val result = ArrayList(length + 1).apply { add(initial) }\n var accumulator = initial\n for (index in indices) {\n accumulator = operation(index, accumulator, this[index])\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each character and current accumulator value that starts with the first character of this char sequence.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes current accumulator value and a character, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningReduce\n */\n@SinceKotlin(\"1.4\")\npublic inline fun CharSequence.runningReduce(operation: (acc: Char, Char) -> Char): List {\n if (isEmpty()) return emptyList()\n var accumulator = this[0]\n val result = ArrayList(length).apply { add(accumulator) }\n for (index in 1 until length) {\n accumulator = operation(accumulator, this[index])\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each character, its index in the original char sequence and current accumulator value that starts with the first character of this char sequence.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes the index of a character, current accumulator value\n * and the character itself, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningReduce\n */\n@SinceKotlin(\"1.4\")\npublic inline fun CharSequence.runningReduceIndexed(operation: (index: Int, acc: Char, Char) -> Char): List {\n if (isEmpty()) return emptyList()\n var accumulator = this[0]\n val result = ArrayList(length).apply { add(accumulator) }\n for (index in 1 until length) {\n accumulator = operation(index, accumulator, this[index])\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each character and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes current accumulator value and a character, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.scan\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic inline fun CharSequence.scan(initial: R, operation: (acc: R, Char) -> R): List {\n return runningFold(initial, operation)\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each character, its index in the original char sequence and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes the index of a character, current accumulator value\n * and the character itself, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.scan\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic inline fun CharSequence.scanIndexed(initial: R, operation: (index: Int, acc: R, Char) -> R): List {\n return runningFoldIndexed(initial, operation)\n}\n\n@Deprecated(\"Use runningReduce instead.\", ReplaceWith(\"runningReduce(operation)\"), level = DeprecationLevel.ERROR)\n@SinceKotlin(\"1.3\")\n@ExperimentalStdlibApi\npublic inline fun CharSequence.scanReduce(operation: (acc: Char, Char) -> Char): List {\n return runningReduce(operation)\n}\n\n@Deprecated(\"Use runningReduceIndexed instead.\", ReplaceWith(\"runningReduceIndexed(operation)\"), level = DeprecationLevel.ERROR)\n@SinceKotlin(\"1.3\")\n@ExperimentalStdlibApi\npublic inline fun CharSequence.scanReduceIndexed(operation: (index: Int, acc: Char, Char) -> Char): List {\n return runningReduceIndexed(operation)\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each character in the char sequence.\n */\npublic inline fun CharSequence.sumBy(selector: (Char) -> Int): Int {\n var sum: Int = 0\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each character in the char sequence.\n */\npublic inline fun CharSequence.sumByDouble(selector: (Char) -> Double): Double {\n var sum: Double = 0.0\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each character in the char sequence.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfDouble\")\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence.sumOf(selector: (Char) -> Double): Double {\n var sum: Double = 0.toDouble()\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each character in the char sequence.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfInt\")\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence.sumOf(selector: (Char) -> Int): Int {\n var sum: Int = 0.toInt()\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each character in the char sequence.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfLong\")\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence.sumOf(selector: (Char) -> Long): Long {\n var sum: Long = 0.toLong()\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each character in the char sequence.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfUInt\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence.sumOf(selector: (Char) -> UInt): UInt {\n var sum: UInt = 0.toUInt()\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each character in the char sequence.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfULong\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence.sumOf(selector: (Char) -> ULong): ULong {\n var sum: ULong = 0.toULong()\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Splits this char sequence into a list of strings each not exceeding the given [size].\n * \n * The last string in the resulting list may have fewer characters than the given [size].\n * \n * @param size the number of elements to take in each string, must be positive and can be greater than the number of elements in this char sequence.\n * \n * @sample samples.text.Strings.chunked\n */\n@SinceKotlin(\"1.2\")\npublic fun CharSequence.chunked(size: Int): List {\n return windowed(size, size, partialWindows = true)\n}\n\n/**\n * Splits this char sequence into several char sequences each not exceeding the given [size]\n * and applies the given [transform] function to an each.\n * \n * @return list of results of the [transform] applied to an each char sequence.\n * \n * Note that the char sequence passed to the [transform] function is ephemeral and is valid only inside that function.\n * You should not store it or allow it to escape in some way, unless you made a snapshot of it.\n * The last char sequence may have fewer characters than the given [size].\n * \n * @param size the number of elements to take in each char sequence, must be positive and can be greater than the number of elements in this char sequence.\n * \n * @sample samples.text.Strings.chunkedTransform\n */\n@SinceKotlin(\"1.2\")\npublic fun CharSequence.chunked(size: Int, transform: (CharSequence) -> R): List {\n return windowed(size, size, partialWindows = true, transform = transform)\n}\n\n/**\n * Splits this char sequence into a sequence of strings each not exceeding the given [size].\n * \n * The last string in the resulting sequence may have fewer characters than the given [size].\n * \n * @param size the number of elements to take in each string, must be positive and can be greater than the number of elements in this char sequence.\n * \n * @sample samples.collections.Collections.Transformations.chunked\n */\n@SinceKotlin(\"1.2\")\npublic fun CharSequence.chunkedSequence(size: Int): Sequence {\n return chunkedSequence(size) { it.toString() }\n}\n\n/**\n * Splits this char sequence into several char sequences each not exceeding the given [size]\n * and applies the given [transform] function to an each.\n * \n * @return sequence of results of the [transform] applied to an each char sequence.\n * \n * Note that the char sequence passed to the [transform] function is ephemeral and is valid only inside that function.\n * You should not store it or allow it to escape in some way, unless you made a snapshot of it.\n * The last char sequence may have fewer characters than the given [size].\n * \n * @param size the number of elements to take in each char sequence, must be positive and can be greater than the number of elements in this char sequence.\n * \n * @sample samples.text.Strings.chunkedTransformToSequence\n */\n@SinceKotlin(\"1.2\")\npublic fun CharSequence.chunkedSequence(size: Int, transform: (CharSequence) -> R): Sequence {\n return windowedSequence(size, size, partialWindows = true, transform = transform)\n}\n\n/**\n * Splits the original char sequence into pair of char sequences,\n * where *first* char sequence contains characters for which [predicate] yielded `true`,\n * while *second* char sequence contains characters for which [predicate] yielded `false`.\n * \n * @sample samples.text.Strings.partition\n */\npublic inline fun CharSequence.partition(predicate: (Char) -> Boolean): Pair {\n val first = StringBuilder()\n val second = StringBuilder()\n for (element in this) {\n if (predicate(element)) {\n first.append(element)\n } else {\n second.append(element)\n }\n }\n return Pair(first, second)\n}\n\n/**\n * Splits the original string into pair of strings,\n * where *first* string contains characters for which [predicate] yielded `true`,\n * while *second* string contains characters for which [predicate] yielded `false`.\n * \n * @sample samples.text.Strings.partition\n */\npublic inline fun String.partition(predicate: (Char) -> Boolean): Pair {\n val first = StringBuilder()\n val second = StringBuilder()\n for (element in this) {\n if (predicate(element)) {\n first.append(element)\n } else {\n second.append(element)\n }\n }\n return Pair(first.toString(), second.toString())\n}\n\n/**\n * Returns a list of snapshots of the window of the given [size]\n * sliding along this char sequence with the given [step], where each\n * snapshot is a string.\n * \n * Several last strings may have fewer characters than the given [size].\n * \n * Both [size] and [step] must be positive and can be greater than the number of elements in this char sequence.\n * @param size the number of elements to take in each window\n * @param step the number of elements to move the window forward by on an each step, by default 1\n * @param partialWindows controls whether or not to keep partial windows in the end if any,\n * by default `false` which means partial windows won't be preserved\n * \n * @sample samples.collections.Sequences.Transformations.takeWindows\n */\n@SinceKotlin(\"1.2\")\npublic fun CharSequence.windowed(size: Int, step: Int = 1, partialWindows: Boolean = false): List {\n return windowed(size, step, partialWindows) { it.toString() }\n}\n\n/**\n * Returns a list of results of applying the given [transform] function to\n * an each char sequence representing a view over the window of the given [size]\n * sliding along this char sequence with the given [step].\n * \n * Note that the char sequence passed to the [transform] function is ephemeral and is valid only inside that function.\n * You should not store it or allow it to escape in some way, unless you made a snapshot of it.\n * Several last char sequences may have fewer characters than the given [size].\n * \n * Both [size] and [step] must be positive and can be greater than the number of elements in this char sequence.\n * @param size the number of elements to take in each window\n * @param step the number of elements to move the window forward by on an each step, by default 1\n * @param partialWindows controls whether or not to keep partial windows in the end if any,\n * by default `false` which means partial windows won't be preserved\n * \n * @sample samples.collections.Sequences.Transformations.averageWindows\n */\n@SinceKotlin(\"1.2\")\npublic fun CharSequence.windowed(size: Int, step: Int = 1, partialWindows: Boolean = false, transform: (CharSequence) -> R): List {\n checkWindowSizeStep(size, step)\n val thisSize = this.length\n val resultCapacity = thisSize / step + if (thisSize % step == 0) 0 else 1\n val result = ArrayList(resultCapacity)\n var index = 0\n while (index in 0 until thisSize) {\n val end = index + size\n val coercedEnd = if (end < 0 || end > thisSize) { if (partialWindows) thisSize else break } else end\n result.add(transform(subSequence(index, coercedEnd)))\n index += step\n }\n return result\n}\n\n/**\n * Returns a sequence of snapshots of the window of the given [size]\n * sliding along this char sequence with the given [step], where each\n * snapshot is a string.\n * \n * Several last strings may have fewer characters than the given [size].\n * \n * Both [size] and [step] must be positive and can be greater than the number of elements in this char sequence.\n * @param size the number of elements to take in each window\n * @param step the number of elements to move the window forward by on an each step, by default 1\n * @param partialWindows controls whether or not to keep partial windows in the end if any,\n * by default `false` which means partial windows won't be preserved\n * \n * @sample samples.collections.Sequences.Transformations.takeWindows\n */\n@SinceKotlin(\"1.2\")\npublic fun CharSequence.windowedSequence(size: Int, step: Int = 1, partialWindows: Boolean = false): Sequence {\n return windowedSequence(size, step, partialWindows) { it.toString() }\n}\n\n/**\n * Returns a sequence of results of applying the given [transform] function to\n * an each char sequence representing a view over the window of the given [size]\n * sliding along this char sequence with the given [step].\n * \n * Note that the char sequence passed to the [transform] function is ephemeral and is valid only inside that function.\n * You should not store it or allow it to escape in some way, unless you made a snapshot of it.\n * Several last char sequences may have fewer characters than the given [size].\n * \n * Both [size] and [step] must be positive and can be greater than the number of elements in this char sequence.\n * @param size the number of elements to take in each window\n * @param step the number of elements to move the window forward by on an each step, by default 1\n * @param partialWindows controls whether or not to keep partial windows in the end if any,\n * by default `false` which means partial windows won't be preserved\n * \n * @sample samples.collections.Sequences.Transformations.averageWindows\n */\n@SinceKotlin(\"1.2\")\npublic fun CharSequence.windowedSequence(size: Int, step: Int = 1, partialWindows: Boolean = false, transform: (CharSequence) -> R): Sequence {\n checkWindowSizeStep(size, step)\n val windows = (if (partialWindows) indices else 0 until length - size + 1) step step\n return windows.asSequence().map { index ->\n val end = index + size\n val coercedEnd = if (end < 0 || end > length) length else end\n transform(subSequence(index, coercedEnd))\n }\n}\n\n/**\n * Returns a list of pairs built from the characters of `this` and the [other] char sequences with the same index\n * The returned list has length of the shortest char sequence.\n * \n * @sample samples.text.Strings.zip\n */\npublic infix fun CharSequence.zip(other: CharSequence): List> {\n return zip(other) { c1, c2 -> c1 to c2 }\n}\n\n/**\n * Returns a list of values built from the characters of `this` and the [other] char sequences with the same index\n * using the provided [transform] function applied to each pair of characters.\n * The returned list has length of the shortest char sequence.\n * \n * @sample samples.text.Strings.zipWithTransform\n */\npublic inline fun CharSequence.zip(other: CharSequence, transform: (a: Char, b: Char) -> V): List {\n val length = minOf(this.length, other.length)\n val list = ArrayList(length)\n for (i in 0 until length) {\n list.add(transform(this[i], other[i]))\n }\n return list\n}\n\n/**\n * Returns a list of pairs of each two adjacent characters in this char sequence.\n * \n * The returned list is empty if this char sequence contains less than two characters.\n * \n * @sample samples.collections.Collections.Transformations.zipWithNext\n */\n@SinceKotlin(\"1.2\")\npublic fun CharSequence.zipWithNext(): List> {\n return zipWithNext { a, b -> a to b }\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to an each pair of two adjacent characters in this char sequence.\n * \n * The returned list is empty if this char sequence contains less than two characters.\n * \n * @sample samples.collections.Collections.Transformations.zipWithNextToFindDeltas\n */\n@SinceKotlin(\"1.2\")\npublic inline fun CharSequence.zipWithNext(transform: (a: Char, b: Char) -> R): List {\n val size = length - 1\n if (size < 1) return emptyList()\n val result = ArrayList(size)\n for (index in 0 until size) {\n result.add(transform(this[index], this[index + 1]))\n }\n return result\n}\n\n/**\n * Creates an [Iterable] instance that wraps the original char sequence returning its characters when being iterated.\n */\npublic fun CharSequence.asIterable(): Iterable {\n if (this is String && isEmpty()) return emptyList()\n return Iterable { this.iterator() }\n}\n\n/**\n * Creates a [Sequence] instance that wraps the original char sequence returning its characters when being iterated.\n */\npublic fun CharSequence.asSequence(): Sequence {\n if (this is String && isEmpty()) return emptySequence()\n return Sequence { this.iterator() }\n}\n\n","package kotlinx.html\n\nimport org.w3c.dom.events.*\n\ninterface TagConsumer {\n fun onTagStart(tag: Tag)\n fun onTagAttributeChange(tag: Tag, attribute: String, value: String?)\n fun onTagEvent(tag: Tag, event: String, value: (Event) -> Unit)\n fun onTagEnd(tag: Tag)\n fun onTagContent(content: CharSequence)\n fun onTagContentEntity(entity: Entities)\n fun onTagContentUnsafe(block: Unsafe.() -> Unit)\n fun onTagComment(content: CharSequence)\n fun onTagError(tag: Tag, exception: Throwable): Unit = throw exception\n fun finalize(): R\n}\n\n@HtmlTagMarker\ninterface Tag {\n val tagName: String\n val consumer: TagConsumer<*>\n val namespace: String?\n\n val attributes: MutableMap\n val attributesEntries: Collection>\n\n val inlineTag: Boolean\n val emptyTag: Boolean\n\n operator fun Entities.unaryPlus(): Unit {\n entity(this)\n }\n\n operator fun String.unaryPlus(): Unit {\n text(this)\n }\n\n fun text(s: String) {\n consumer.onTagContent(s)\n }\n\n fun text(n: Number) {\n text(n.toString())\n }\n\n fun entity(e: Entities) {\n consumer.onTagContentEntity(e)\n }\n\n fun comment(s: String) {\n consumer.onTagComment(s)\n }\n}\n\n@HtmlTagMarker\ninterface Unsafe {\n operator fun String.unaryPlus()\n operator fun Entities.unaryPlus() = +text\n\n fun raw(s: String) {\n +s\n }\n\n fun raw(entity: Entities) {\n +entity\n }\n\n fun raw(n: Number) {\n +n.toString()\n }\n}\n\ninterface AttributeEnum {\n val realValue: String\n}\n\ninline fun T.visit(crossinline block: T.() -> Unit) = visitTag { block() }\n\ninline fun T.visitAndFinalize(consumer: TagConsumer, crossinline block: T.() -> Unit): R\n = visitTagAndFinalize(consumer) { block() }\n\nfun attributesMapOf() = emptyMap\nfun attributesMapOf(key: String, value: String?): Map = when (value) {\n null -> emptyMap\n else -> singletonMapOf(key, value)\n}\n\nfun attributesMapOf(vararg pairs: String?): Map {\n var result: MutableMap? = null\n\n for (i in 0..pairs.size - 1 step 2) {\n val k = pairs[i]\n val v = pairs[i + 1]\n if (k != null && v != null) {\n if (result == null) {\n result = linkedMapOf()\n }\n result.put(k, v)\n }\n }\n\n return result ?: emptyMap\n}\n\nfun singletonMapOf(key: String, value: String): Map = SingletonStringMap(key, value)\n\nfun HTMLTag.unsafe(block: Unsafe.() -> Unit): Unit = consumer.onTagContentUnsafe(block)\n\nval emptyMap: Map = emptyMap()\n\nclass DefaultUnsafe : Unsafe {\n private val sb = StringBuilder()\n\n override fun String.unaryPlus() {\n sb.append(this)\n }\n\n override fun toString(): String = sb.toString()\n}\n\n@DslMarker\nannotation class HtmlTagMarker\n\ntypealias HtmlContent = FlowOrPhrasingContent\n\nprivate data class SingletonStringMap(override val key: String, override val value: String) : Map,\n Map.Entry {\n override val entries: Set>\n get() = setOf(this)\n\n override val keys: Set\n get() = setOf(key)\n\n override val size: Int\n get() = 1\n\n override val values: Collection\n get() = listOf(value)\n\n override fun containsKey(key: String) = key == this.key\n override fun containsValue(value: String) = value == this.value\n override fun get(key: String): String? = if (key == this.key) value else null\n override fun isEmpty() = false\n}\n","package kotlinx.html.attributes\n\nimport kotlinx.html.*\n\ninterface AttributeEncoder {\n fun encode(attributeName: String, value: T): String\n fun decode(attributeName: String, value: String): T\n fun empty(attributeName: String, tag: Tag): T =\n throw IllegalStateException(\"Attribute $attributeName is not yet defined for tag ${tag.tagName}\")\n}\n\nabstract class Attribute(val encoder: AttributeEncoder) {\n open operator fun get(thisRef: Tag, attributeName: String): T =\n thisRef.attributes[attributeName]?.let {\n encoder.decode(attributeName, it)\n } ?: encoder.empty(attributeName, thisRef)\n\n open operator fun set(thisRef: Tag, attributeName: String, value: T) {\n thisRef.attributes.put(attributeName, encoder.encode(attributeName, value))\n }\n}\n\nobject StringEncoder : AttributeEncoder {\n override fun encode(attributeName: String, value: String): String = value\n override fun decode(attributeName: String, value: String): String = value\n}\n\nclass StringAttribute : Attribute(StringEncoder)\n\n//public class IntAttribute : Attribute() {\n// override fun encode(desc: PropertyMetadata, value: Int): String = value.toString()\n// override fun decode(desc: PropertyMetadata, value: String): Int = value.toInt()\n//}\n\nfun Boolean.booleanEncode() = toString()\nclass BooleanEncoder(val trueValue: String = \"true\", val falseValue: String = \"false\") : AttributeEncoder {\n override fun encode(attributeName: String, value: Boolean): String = if (value) trueValue else falseValue\n override fun decode(attributeName: String, value: String): Boolean = when (value) {\n trueValue -> true\n falseValue -> false\n else -> throw IllegalArgumentException(\"Unknown value $value for $attributeName\")\n }\n}\n\nclass BooleanAttribute(trueValue: String = \"true\", falseValue: String = \"false\") :\n Attribute(BooleanEncoder(trueValue, falseValue))\n\nfun Boolean.tickerEncode(attributeName: String): String = if (this) attributeName else \"\"\n\nobject TickerEncoder : AttributeEncoder {\n override fun encode(attributeName: String, value: Boolean): String = value.tickerEncode(attributeName)\n override fun decode(attributeName: String, value: String): Boolean = value == attributeName\n}\n\nclass TickerAttribute : Attribute(TickerEncoder) {\n override fun set(thisRef: Tag, attributeName: String, value: Boolean) {\n if (value) {\n thisRef.attributes.put(attributeName, attributeName)\n } else {\n thisRef.attributes.remove(attributeName)\n }\n }\n}\n\nclass EnumEncoder(val valuesMap: Map) : AttributeEncoder {\n override fun encode(attributeName: String, value: T): String = value.realValue\n override fun decode(attributeName: String, value: String): T =\n valuesMap[value] ?: throw IllegalArgumentException(\"Unknown value $value for $attributeName\")\n}\n\nfun AttributeEnum.enumEncode(): String = realValue\nclass EnumAttribute(val values: Map) : Attribute(EnumEncoder(values))\n\nfun stringSetDecode(value: String?): Set? = value?.split(\"\\\\s+\".toRegex())?.filterNot { it.isEmpty() }?.toSet()\nfun Set.stringSetEncode() = joinToString(\" \")\n\nobject StringSetEncoder : AttributeEncoder> {\n override fun encode(attributeName: String, value: Set): String = value.joinToString(\" \")\n override fun decode(attributeName: String, value: String): Set = stringSetDecode(value)!!\n override fun empty(attributeName: String, tag: Tag) = emptySet()\n}\n\nclass StringSetAttribute : Attribute>(StringSetEncoder)","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n@file:kotlin.jvm.JvmMultifileClass\n@file:kotlin.jvm.JvmName(\"StringsKt\")\n\npackage kotlin.text\n\nimport kotlin.contracts.contract\nimport kotlin.jvm.JvmName\n\n/**\n * Returns a copy of this string converted to upper case using the rules of the default locale.\n */\npublic expect fun String.toUpperCase(): String\n\n/**\n * Returns a copy of this string converted to upper case using Unicode mapping rules of the invariant locale.\n *\n * This function supports one-to-many and many-to-one character mapping,\n * thus the length of the returned string can be different from the length of the original string.\n *\n * @sample samples.text.Strings.uppercase\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalStdlibApi\npublic expect fun String.uppercase(): String\n\n/**\n * Returns a copy of this string converted to lower case using the rules of the default locale.\n */\npublic expect fun String.toLowerCase(): String\n\n/**\n * Returns a copy of this string converted to lower case using Unicode mapping rules of the invariant locale.\n *\n * This function supports one-to-many and many-to-one character mapping,\n * thus the length of the returned string can be different from the length of the original string.\n *\n * @sample samples.text.Strings.lowercase\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalStdlibApi\npublic expect fun String.lowercase(): String\n\n/**\n * Returns a copy of this string having its first letter titlecased using the rules of the default locale,\n * or the original string if it's empty or already starts with a title case letter.\n *\n * The title case of a character is usually the same as its upper case with several exceptions.\n * The particular list of characters with the special title case form depends on the underlying platform.\n *\n * @sample samples.text.Strings.capitalize\n */\npublic expect fun String.capitalize(): String\n\n/**\n * Returns a copy of this string having its first letter lowercased using the rules of the default locale,\n * or the original string if it's empty or already starts with a lower case letter.\n *\n * @sample samples.text.Strings.decapitalize\n */\npublic expect fun String.decapitalize(): String\n\n/**\n * Returns a sub sequence of this char sequence having leading and trailing characters matching the [predicate] removed.\n */\npublic inline fun CharSequence.trim(predicate: (Char) -> Boolean): CharSequence {\n var startIndex = 0\n var endIndex = length - 1\n var startFound = false\n\n while (startIndex <= endIndex) {\n val index = if (!startFound) startIndex else endIndex\n val match = predicate(this[index])\n\n if (!startFound) {\n if (!match)\n startFound = true\n else\n startIndex += 1\n } else {\n if (!match)\n break\n else\n endIndex -= 1\n }\n }\n\n return subSequence(startIndex, endIndex + 1)\n}\n\n/**\n * Returns a string having leading and trailing characters matching the [predicate] removed.\n */\npublic inline fun String.trim(predicate: (Char) -> Boolean): String =\n (this as CharSequence).trim(predicate).toString()\n\n/**\n * Returns a sub sequence of this char sequence having leading characters matching the [predicate] removed.\n */\npublic inline fun CharSequence.trimStart(predicate: (Char) -> Boolean): CharSequence {\n for (index in this.indices)\n if (!predicate(this[index]))\n return subSequence(index, length)\n\n return \"\"\n}\n\n/**\n * Returns a string having leading characters matching the [predicate] removed.\n */\npublic inline fun String.trimStart(predicate: (Char) -> Boolean): String =\n (this as CharSequence).trimStart(predicate).toString()\n\n/**\n * Returns a sub sequence of this char sequence having trailing characters matching the [predicate] removed.\n */\npublic inline fun CharSequence.trimEnd(predicate: (Char) -> Boolean): CharSequence {\n for (index in this.indices.reversed())\n if (!predicate(this[index]))\n return subSequence(0, index + 1)\n\n return \"\"\n}\n\n/**\n * Returns a string having trailing characters matching the [predicate] removed.\n */\npublic inline fun String.trimEnd(predicate: (Char) -> Boolean): String =\n (this as CharSequence).trimEnd(predicate).toString()\n\n/**\n * Returns a sub sequence of this char sequence having leading and trailing characters from the [chars] array removed.\n */\npublic fun CharSequence.trim(vararg chars: Char): CharSequence = trim { it in chars }\n\n/**\n * Returns a string having leading and trailing characters from the [chars] array removed.\n */\npublic fun String.trim(vararg chars: Char): String = trim { it in chars }\n\n/**\n * Returns a sub sequence of this char sequence having leading characters from the [chars] array removed.\n */\npublic fun CharSequence.trimStart(vararg chars: Char): CharSequence = trimStart { it in chars }\n\n/**\n * Returns a string having leading characters from the [chars] array removed.\n */\npublic fun String.trimStart(vararg chars: Char): String = trimStart { it in chars }\n\n/**\n * Returns a sub sequence of this char sequence having trailing characters from the [chars] array removed.\n */\npublic fun CharSequence.trimEnd(vararg chars: Char): CharSequence = trimEnd { it in chars }\n\n/**\n * Returns a string having trailing characters from the [chars] array removed.\n */\npublic fun String.trimEnd(vararg chars: Char): String = trimEnd { it in chars }\n\n/**\n * Returns a sub sequence of this char sequence having leading and trailing whitespace removed.\n */\npublic fun CharSequence.trim(): CharSequence = trim(Char::isWhitespace)\n\n/**\n * Returns a string having leading and trailing whitespace removed.\n */\n@kotlin.internal.InlineOnly\npublic inline fun String.trim(): String = (this as CharSequence).trim().toString()\n\n/**\n * Returns a sub sequence of this char sequence having leading whitespace removed.\n */\npublic fun CharSequence.trimStart(): CharSequence = trimStart(Char::isWhitespace)\n\n/**\n * Returns a string having leading whitespace removed.\n */\n@kotlin.internal.InlineOnly\npublic inline fun String.trimStart(): String = (this as CharSequence).trimStart().toString()\n\n/**\n * Returns a sub sequence of this char sequence having trailing whitespace removed.\n */\npublic fun CharSequence.trimEnd(): CharSequence = trimEnd(Char::isWhitespace)\n\n/**\n * Returns a string having trailing whitespace removed.\n */\n@kotlin.internal.InlineOnly\npublic inline fun String.trimEnd(): String = (this as CharSequence).trimEnd().toString()\n\n/**\n * Returns a char sequence with content of this char sequence padded at the beginning\n * to the specified [length] with the specified character or space.\n *\n * @param length the desired string length.\n * @param padChar the character to pad string with, if it has length less than the [length] specified. Space is used by default.\n * @return Returns a char sequence of length at least [length] consisting of `this` char sequence prepended with [padChar] as many times\n * as are necessary to reach that length.\n * @sample samples.text.Strings.padStart\n */\npublic fun CharSequence.padStart(length: Int, padChar: Char = ' '): CharSequence {\n if (length < 0)\n throw IllegalArgumentException(\"Desired length $length is less than zero.\")\n if (length <= this.length)\n return this.subSequence(0, this.length)\n\n val sb = StringBuilder(length)\n for (i in 1..(length - this.length))\n sb.append(padChar)\n sb.append(this)\n return sb\n}\n\n/**\n * Pads the string to the specified [length] at the beginning with the specified character or space.\n *\n * @param length the desired string length.\n * @param padChar the character to pad string with, if it has length less than the [length] specified. Space is used by default.\n * @return Returns a string of length at least [length] consisting of `this` string prepended with [padChar] as many times\n * as are necessary to reach that length.\n * @sample samples.text.Strings.padStart\n */\npublic fun String.padStart(length: Int, padChar: Char = ' '): String =\n (this as CharSequence).padStart(length, padChar).toString()\n\n/**\n * Returns a char sequence with content of this char sequence padded at the end\n * to the specified [length] with the specified character or space.\n *\n * @param length the desired string length.\n * @param padChar the character to pad string with, if it has length less than the [length] specified. Space is used by default.\n * @return Returns a char sequence of length at least [length] consisting of `this` char sequence appended with [padChar] as many times\n * as are necessary to reach that length.\n * @sample samples.text.Strings.padEnd\n */\npublic fun CharSequence.padEnd(length: Int, padChar: Char = ' '): CharSequence {\n if (length < 0)\n throw IllegalArgumentException(\"Desired length $length is less than zero.\")\n if (length <= this.length)\n return this.subSequence(0, this.length)\n\n val sb = StringBuilder(length)\n sb.append(this)\n for (i in 1..(length - this.length))\n sb.append(padChar)\n return sb\n}\n\n/**\n * Pads the string to the specified [length] at the end with the specified character or space.\n *\n * @param length the desired string length.\n * @param padChar the character to pad string with, if it has length less than the [length] specified. Space is used by default.\n * @return Returns a string of length at least [length] consisting of `this` string appended with [padChar] as many times\n * as are necessary to reach that length.\n * @sample samples.text.Strings.padEnd\n */\npublic fun String.padEnd(length: Int, padChar: Char = ' '): String =\n (this as CharSequence).padEnd(length, padChar).toString()\n\n/**\n * Returns `true` if this nullable char sequence is either `null` or empty.\n *\n * @sample samples.text.Strings.stringIsNullOrEmpty\n */\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence?.isNullOrEmpty(): Boolean {\n contract {\n returns(false) implies (this@isNullOrEmpty != null)\n }\n\n return this == null || this.length == 0\n}\n\n/**\n * Returns `true` if this char sequence is empty (contains no characters).\n *\n * @sample samples.text.Strings.stringIsEmpty\n */\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence.isEmpty(): Boolean = length == 0\n\n/**\n * Returns `true` if this char sequence is not empty.\n *\n * @sample samples.text.Strings.stringIsNotEmpty\n */\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence.isNotEmpty(): Boolean = length > 0\n\n// implemented differently in JVM and JS\n//public fun String.isBlank(): Boolean = length() == 0 || all { it.isWhitespace() }\n\n\n/**\n * Returns `true` if this char sequence is not empty and contains some characters except of whitespace characters.\n *\n * @sample samples.text.Strings.stringIsNotBlank\n */\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence.isNotBlank(): Boolean = !isBlank()\n\n/**\n * Returns `true` if this nullable char sequence is either `null` or empty or consists solely of whitespace characters.\n *\n * @sample samples.text.Strings.stringIsNullOrBlank\n */\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence?.isNullOrBlank(): Boolean {\n contract {\n returns(false) implies (this@isNullOrBlank != null)\n }\n\n return this == null || this.isBlank()\n}\n\n/**\n * Iterator for characters of the given char sequence.\n */\npublic operator fun CharSequence.iterator(): CharIterator = object : CharIterator() {\n private var index = 0\n\n public override fun nextChar(): Char = get(index++)\n\n public override fun hasNext(): Boolean = index < length\n}\n\n/** Returns the string if it is not `null`, or the empty string otherwise. */\n@kotlin.internal.InlineOnly\npublic inline fun String?.orEmpty(): String = this ?: \"\"\n\n/**\n * Returns this char sequence if it's not empty\n * or the result of calling [defaultValue] function if the char sequence is empty.\n *\n * @sample samples.text.Strings.stringIfEmpty\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\npublic inline fun C.ifEmpty(defaultValue: () -> R): R where C : CharSequence, C : R =\n if (isEmpty()) defaultValue() else this\n\n/**\n * Returns this char sequence if it is not empty and doesn't consist solely of whitespace characters,\n * or the result of calling [defaultValue] function otherwise.\n *\n * @sample samples.text.Strings.stringIfBlank\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\npublic inline fun C.ifBlank(defaultValue: () -> R): R where C : CharSequence, C : R =\n if (isBlank()) defaultValue() else this\n\n/**\n * Returns the range of valid character indices for this char sequence.\n */\npublic val CharSequence.indices: IntRange\n get() = 0..length - 1\n\n/**\n * Returns the index of the last character in the char sequence or -1 if it is empty.\n */\npublic val CharSequence.lastIndex: Int\n get() = this.length - 1\n\n/**\n * Returns `true` if this CharSequence has Unicode surrogate pair at the specified [index].\n */\npublic fun CharSequence.hasSurrogatePairAt(index: Int): Boolean {\n return index in 0..length - 2\n && this[index].isHighSurrogate()\n && this[index + 1].isLowSurrogate()\n}\n\n/**\n * Returns a substring specified by the given [range] of indices.\n */\npublic fun String.substring(range: IntRange): String = substring(range.start, range.endInclusive + 1)\n\n/**\n * Returns a subsequence of this char sequence specified by the given [range] of indices.\n */\npublic fun CharSequence.subSequence(range: IntRange): CharSequence = subSequence(range.start, range.endInclusive + 1)\n\n/**\n * Returns a subsequence of this char sequence.\n *\n * This extension is chosen only for invocation with old-named parameters.\n * Replace parameter names with the same as those of [CharSequence.subSequence].\n */\n@kotlin.internal.InlineOnly\n@Suppress(\"EXTENSION_SHADOWED_BY_MEMBER\") // false warning\n@Deprecated(\"Use parameters named startIndex and endIndex.\", ReplaceWith(\"subSequence(startIndex = start, endIndex = end)\"))\npublic inline fun String.subSequence(start: Int, end: Int): CharSequence = subSequence(start, end)\n\n/**\n * Returns a substring of chars from a range of this char sequence starting at the [startIndex] and ending right before the [endIndex].\n *\n * @param startIndex the start index (inclusive).\n * @param endIndex the end index (exclusive). If not specified, the length of the char sequence is used.\n */\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence.substring(startIndex: Int, endIndex: Int = length): String = subSequence(startIndex, endIndex).toString()\n\n/**\n * Returns a substring of chars at indices from the specified [range] of this char sequence.\n */\npublic fun CharSequence.substring(range: IntRange): String = subSequence(range.start, range.endInclusive + 1).toString()\n\n/**\n * Returns a substring before the first occurrence of [delimiter].\n * If the string does not contain the delimiter, returns [missingDelimiterValue] which defaults to the original string.\n */\npublic fun String.substringBefore(delimiter: Char, missingDelimiterValue: String = this): String {\n val index = indexOf(delimiter)\n return if (index == -1) missingDelimiterValue else substring(0, index)\n}\n\n/**\n * Returns a substring before the first occurrence of [delimiter].\n * If the string does not contain the delimiter, returns [missingDelimiterValue] which defaults to the original string.\n */\npublic fun String.substringBefore(delimiter: String, missingDelimiterValue: String = this): String {\n val index = indexOf(delimiter)\n return if (index == -1) missingDelimiterValue else substring(0, index)\n}\n\n/**\n * Returns a substring after the first occurrence of [delimiter].\n * If the string does not contain the delimiter, returns [missingDelimiterValue] which defaults to the original string.\n */\npublic fun String.substringAfter(delimiter: Char, missingDelimiterValue: String = this): String {\n val index = indexOf(delimiter)\n return if (index == -1) missingDelimiterValue else substring(index + 1, length)\n}\n\n/**\n * Returns a substring after the first occurrence of [delimiter].\n * If the string does not contain the delimiter, returns [missingDelimiterValue] which defaults to the original string.\n */\npublic fun String.substringAfter(delimiter: String, missingDelimiterValue: String = this): String {\n val index = indexOf(delimiter)\n return if (index == -1) missingDelimiterValue else substring(index + delimiter.length, length)\n}\n\n/**\n * Returns a substring before the last occurrence of [delimiter].\n * If the string does not contain the delimiter, returns [missingDelimiterValue] which defaults to the original string.\n */\npublic fun String.substringBeforeLast(delimiter: Char, missingDelimiterValue: String = this): String {\n val index = lastIndexOf(delimiter)\n return if (index == -1) missingDelimiterValue else substring(0, index)\n}\n\n/**\n * Returns a substring before the last occurrence of [delimiter].\n * If the string does not contain the delimiter, returns [missingDelimiterValue] which defaults to the original string.\n */\npublic fun String.substringBeforeLast(delimiter: String, missingDelimiterValue: String = this): String {\n val index = lastIndexOf(delimiter)\n return if (index == -1) missingDelimiterValue else substring(0, index)\n}\n\n/**\n * Returns a substring after the last occurrence of [delimiter].\n * If the string does not contain the delimiter, returns [missingDelimiterValue] which defaults to the original string.\n */\npublic fun String.substringAfterLast(delimiter: Char, missingDelimiterValue: String = this): String {\n val index = lastIndexOf(delimiter)\n return if (index == -1) missingDelimiterValue else substring(index + 1, length)\n}\n\n/**\n * Returns a substring after the last occurrence of [delimiter].\n * If the string does not contain the delimiter, returns [missingDelimiterValue] which defaults to the original string.\n */\npublic fun String.substringAfterLast(delimiter: String, missingDelimiterValue: String = this): String {\n val index = lastIndexOf(delimiter)\n return if (index == -1) missingDelimiterValue else substring(index + delimiter.length, length)\n}\n\n/**\n * Returns a char sequence with content of this char sequence where its part at the given range\n * is replaced with the [replacement] char sequence.\n * @param startIndex the index of the first character to be replaced.\n * @param endIndex the index of the first character after the replacement to keep in the string.\n */\n@OptIn(ExperimentalStdlibApi::class)\npublic fun CharSequence.replaceRange(startIndex: Int, endIndex: Int, replacement: CharSequence): CharSequence {\n if (endIndex < startIndex)\n throw IndexOutOfBoundsException(\"End index ($endIndex) is less than start index ($startIndex).\")\n val sb = StringBuilder()\n sb.appendRange(this, 0, startIndex)\n sb.append(replacement)\n sb.appendRange(this, endIndex, length)\n return sb\n}\n\n/**\n * Replaces the part of the string at the given range with the [replacement] char sequence.\n * @param startIndex the index of the first character to be replaced.\n * @param endIndex the index of the first character after the replacement to keep in the string.\n */\n@kotlin.internal.InlineOnly\npublic inline fun String.replaceRange(startIndex: Int, endIndex: Int, replacement: CharSequence): String =\n (this as CharSequence).replaceRange(startIndex, endIndex, replacement).toString()\n\n/**\n * Returns a char sequence with content of this char sequence where its part at the given [range]\n * is replaced with the [replacement] char sequence.\n *\n * The end index of the [range] is included in the part to be replaced.\n */\npublic fun CharSequence.replaceRange(range: IntRange, replacement: CharSequence): CharSequence =\n replaceRange(range.start, range.endInclusive + 1, replacement)\n\n/**\n * Replace the part of string at the given [range] with the [replacement] string.\n *\n * The end index of the [range] is included in the part to be replaced.\n */\n@kotlin.internal.InlineOnly\npublic inline fun String.replaceRange(range: IntRange, replacement: CharSequence): String =\n (this as CharSequence).replaceRange(range, replacement).toString()\n\n/**\n * Returns a char sequence with content of this char sequence where its part at the given range is removed.\n *\n * @param startIndex the index of the first character to be removed.\n * @param endIndex the index of the first character after the removed part to keep in the string.\n *\n * [endIndex] is not included in the removed part.\n */\n@OptIn(ExperimentalStdlibApi::class)\npublic fun CharSequence.removeRange(startIndex: Int, endIndex: Int): CharSequence {\n if (endIndex < startIndex)\n throw IndexOutOfBoundsException(\"End index ($endIndex) is less than start index ($startIndex).\")\n\n if (endIndex == startIndex)\n return this.subSequence(0, length)\n\n val sb = StringBuilder(length - (endIndex - startIndex))\n sb.appendRange(this, 0, startIndex)\n sb.appendRange(this, endIndex, length)\n return sb\n}\n\n/**\n * Removes the part of a string at a given range.\n * @param startIndex the index of the first character to be removed.\n * @param endIndex the index of the first character after the removed part to keep in the string.\n *\n * [endIndex] is not included in the removed part.\n */\n@kotlin.internal.InlineOnly\npublic inline fun String.removeRange(startIndex: Int, endIndex: Int): String =\n (this as CharSequence).removeRange(startIndex, endIndex).toString()\n\n/**\n * Returns a char sequence with content of this char sequence where its part at the given [range] is removed.\n *\n * The end index of the [range] is included in the removed part.\n */\npublic fun CharSequence.removeRange(range: IntRange): CharSequence = removeRange(range.start, range.endInclusive + 1)\n\n/**\n * Removes the part of a string at the given [range].\n *\n * The end index of the [range] is included in the removed part.\n */\n@kotlin.internal.InlineOnly\npublic inline fun String.removeRange(range: IntRange): String =\n (this as CharSequence).removeRange(range).toString()\n\n/**\n * If this char sequence starts with the given [prefix], returns a new char sequence\n * with the prefix removed. Otherwise, returns a new char sequence with the same characters.\n */\npublic fun CharSequence.removePrefix(prefix: CharSequence): CharSequence {\n if (startsWith(prefix)) {\n return subSequence(prefix.length, length)\n }\n return subSequence(0, length)\n}\n\n/**\n * If this string starts with the given [prefix], returns a copy of this string\n * with the prefix removed. Otherwise, returns this string.\n */\npublic fun String.removePrefix(prefix: CharSequence): String {\n if (startsWith(prefix)) {\n return substring(prefix.length)\n }\n return this\n}\n\n/**\n * If this char sequence ends with the given [suffix], returns a new char sequence\n * with the suffix removed. Otherwise, returns a new char sequence with the same characters.\n */\npublic fun CharSequence.removeSuffix(suffix: CharSequence): CharSequence {\n if (endsWith(suffix)) {\n return subSequence(0, length - suffix.length)\n }\n return subSequence(0, length)\n}\n\n/**\n * If this string ends with the given [suffix], returns a copy of this string\n * with the suffix removed. Otherwise, returns this string.\n */\npublic fun String.removeSuffix(suffix: CharSequence): String {\n if (endsWith(suffix)) {\n return substring(0, length - suffix.length)\n }\n return this\n}\n\n/**\n * When this char sequence starts with the given [prefix] and ends with the given [suffix],\n * returns a new char sequence having both the given [prefix] and [suffix] removed.\n * Otherwise returns a new char sequence with the same characters.\n */\npublic fun CharSequence.removeSurrounding(prefix: CharSequence, suffix: CharSequence): CharSequence {\n if ((length >= prefix.length + suffix.length) && startsWith(prefix) && endsWith(suffix)) {\n return subSequence(prefix.length, length - suffix.length)\n }\n return subSequence(0, length)\n}\n\n/**\n * Removes from a string both the given [prefix] and [suffix] if and only if\n * it starts with the [prefix] and ends with the [suffix].\n * Otherwise returns this string unchanged.\n */\npublic fun String.removeSurrounding(prefix: CharSequence, suffix: CharSequence): String {\n if ((length >= prefix.length + suffix.length) && startsWith(prefix) && endsWith(suffix)) {\n return substring(prefix.length, length - suffix.length)\n }\n return this\n}\n\n/**\n * When this char sequence starts with and ends with the given [delimiter],\n * returns a new char sequence having this [delimiter] removed both from the start and end.\n * Otherwise returns a new char sequence with the same characters.\n */\npublic fun CharSequence.removeSurrounding(delimiter: CharSequence): CharSequence = removeSurrounding(delimiter, delimiter)\n\n/**\n * Removes the given [delimiter] string from both the start and the end of this string\n * if and only if it starts with and ends with the [delimiter].\n * Otherwise returns this string unchanged.\n */\npublic fun String.removeSurrounding(delimiter: CharSequence): String = removeSurrounding(delimiter, delimiter)\n\n/**\n * Replace part of string before the first occurrence of given delimiter with the [replacement] string.\n * If the string does not contain the delimiter, returns [missingDelimiterValue] which defaults to the original string.\n */\npublic fun String.replaceBefore(delimiter: Char, replacement: String, missingDelimiterValue: String = this): String {\n val index = indexOf(delimiter)\n return if (index == -1) missingDelimiterValue else replaceRange(0, index, replacement)\n}\n\n/**\n * Replace part of string before the first occurrence of given delimiter with the [replacement] string.\n * If the string does not contain the delimiter, returns [missingDelimiterValue] which defaults to the original string.\n */\npublic fun String.replaceBefore(delimiter: String, replacement: String, missingDelimiterValue: String = this): String {\n val index = indexOf(delimiter)\n return if (index == -1) missingDelimiterValue else replaceRange(0, index, replacement)\n}\n\n/**\n * Replace part of string after the first occurrence of given delimiter with the [replacement] string.\n * If the string does not contain the delimiter, returns [missingDelimiterValue] which defaults to the original string.\n */\npublic fun String.replaceAfter(delimiter: Char, replacement: String, missingDelimiterValue: String = this): String {\n val index = indexOf(delimiter)\n return if (index == -1) missingDelimiterValue else replaceRange(index + 1, length, replacement)\n}\n\n/**\n * Replace part of string after the first occurrence of given delimiter with the [replacement] string.\n * If the string does not contain the delimiter, returns [missingDelimiterValue] which defaults to the original string.\n */\npublic fun String.replaceAfter(delimiter: String, replacement: String, missingDelimiterValue: String = this): String {\n val index = indexOf(delimiter)\n return if (index == -1) missingDelimiterValue else replaceRange(index + delimiter.length, length, replacement)\n}\n\n/**\n * Replace part of string after the last occurrence of given delimiter with the [replacement] string.\n * If the string does not contain the delimiter, returns [missingDelimiterValue] which defaults to the original string.\n */\npublic fun String.replaceAfterLast(delimiter: String, replacement: String, missingDelimiterValue: String = this): String {\n val index = lastIndexOf(delimiter)\n return if (index == -1) missingDelimiterValue else replaceRange(index + delimiter.length, length, replacement)\n}\n\n/**\n * Replace part of string after the last occurrence of given delimiter with the [replacement] string.\n * If the string does not contain the delimiter, returns [missingDelimiterValue] which defaults to the original string.\n */\npublic fun String.replaceAfterLast(delimiter: Char, replacement: String, missingDelimiterValue: String = this): String {\n val index = lastIndexOf(delimiter)\n return if (index == -1) missingDelimiterValue else replaceRange(index + 1, length, replacement)\n}\n\n/**\n * Replace part of string before the last occurrence of given delimiter with the [replacement] string.\n * If the string does not contain the delimiter, returns [missingDelimiterValue] which defaults to the original string.\n */\npublic fun String.replaceBeforeLast(delimiter: Char, replacement: String, missingDelimiterValue: String = this): String {\n val index = lastIndexOf(delimiter)\n return if (index == -1) missingDelimiterValue else replaceRange(0, index, replacement)\n}\n\n/**\n * Replace part of string before the last occurrence of given delimiter with the [replacement] string.\n * If the string does not contain the delimiter, returns [missingDelimiterValue] which defaults to the original string.\n */\npublic fun String.replaceBeforeLast(delimiter: String, replacement: String, missingDelimiterValue: String = this): String {\n val index = lastIndexOf(delimiter)\n return if (index == -1) missingDelimiterValue else replaceRange(0, index, replacement)\n}\n\n\n// public fun String.replace(oldChar: Char, newChar: Char, ignoreCase: Boolean): String // JVM- and JS-specific\n// public fun String.replace(oldValue: String, newValue: String, ignoreCase: Boolean): String // JVM- and JS-specific\n\n/**\n * Returns a new string obtained by replacing each substring of this char sequence that matches the given regular expression\n * with the given [replacement].\n *\n * The [replacement] can consist of any combination of literal text and $-substitutions. To treat the replacement string\n * literally escape it with the [kotlin.text.Regex.Companion.escapeReplacement] method.\n */\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence.replace(regex: Regex, replacement: String): String = regex.replace(this, replacement)\n\n/**\n * Returns a new string obtained by replacing each substring of this char sequence that matches the given regular expression\n * with the result of the given function [transform] that takes [MatchResult] and returns a string to be used as a\n * replacement for that match.\n */\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence.replace(regex: Regex, noinline transform: (MatchResult) -> CharSequence): String =\n regex.replace(this, transform)\n\n/**\n * Replaces the first occurrence of the given regular expression [regex] in this char sequence with specified [replacement] expression.\n *\n * @param replacement A replacement expression that can include substitutions. See [Regex.replaceFirst] for details.\n */\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence.replaceFirst(regex: Regex, replacement: String): String = regex.replaceFirst(this, replacement)\n\n/**\n * Returns a copy of this string having its first character replaced with the result of the specified [transform],\n * or the original string if it's empty.\n *\n * @param transform function that takes the first character and returns the result of the transform applied to the character.\n *\n * @sample samples.text.Strings.replaceFirstChar\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalStdlibApi\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@JvmName(\"replaceFirstCharWithChar\")\n@kotlin.internal.InlineOnly\npublic inline fun String.replaceFirstChar(transform: (Char) -> Char): String {\n return if (isNotEmpty()) transform(this[0]) + substring(1) else this\n}\n\n/**\n * Returns a copy of this string having its first character replaced with the result of the specified [transform],\n * or the original string if it's empty.\n *\n * @param transform function that takes the first character and returns the result of the transform applied to the character.\n *\n * @sample samples.text.Strings.replaceFirstChar\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalStdlibApi\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@JvmName(\"replaceFirstCharWithCharSequence\")\n@kotlin.internal.InlineOnly\npublic inline fun String.replaceFirstChar(transform: (Char) -> CharSequence): String {\n return if (isNotEmpty()) transform(this[0]).toString() + substring(1) else this\n}\n\n\n/**\n * Returns `true` if this char sequence matches the given regular expression.\n */\n@kotlin.internal.InlineOnly\npublic inline infix fun CharSequence.matches(regex: Regex): Boolean = regex.matches(this)\n\n/**\n * Implementation of [regionMatches] for CharSequences.\n * Invoked when it's already known that arguments are not Strings, so that no additional type checks are performed.\n */\ninternal fun CharSequence.regionMatchesImpl(thisOffset: Int, other: CharSequence, otherOffset: Int, length: Int, ignoreCase: Boolean): Boolean {\n if ((otherOffset < 0) || (thisOffset < 0) || (thisOffset > this.length - length) || (otherOffset > other.length - length)) {\n return false\n }\n\n for (index in 0 until length) {\n if (!this[thisOffset + index].equals(other[otherOffset + index], ignoreCase))\n return false\n }\n return true\n}\n\n/**\n * Returns `true` if this char sequence starts with the specified character.\n */\npublic fun CharSequence.startsWith(char: Char, ignoreCase: Boolean = false): Boolean =\n this.length > 0 && this[0].equals(char, ignoreCase)\n\n/**\n * Returns `true` if this char sequence ends with the specified character.\n */\npublic fun CharSequence.endsWith(char: Char, ignoreCase: Boolean = false): Boolean =\n this.length > 0 && this[lastIndex].equals(char, ignoreCase)\n\n/**\n * Returns `true` if this char sequence starts with the specified prefix.\n */\npublic fun CharSequence.startsWith(prefix: CharSequence, ignoreCase: Boolean = false): Boolean {\n if (!ignoreCase && this is String && prefix is String)\n return this.startsWith(prefix)\n else\n return regionMatchesImpl(0, prefix, 0, prefix.length, ignoreCase)\n}\n\n/**\n * Returns `true` if a substring of this char sequence starting at the specified offset [startIndex] starts with the specified prefix.\n */\npublic fun CharSequence.startsWith(prefix: CharSequence, startIndex: Int, ignoreCase: Boolean = false): Boolean {\n if (!ignoreCase && this is String && prefix is String)\n return this.startsWith(prefix, startIndex)\n else\n return regionMatchesImpl(startIndex, prefix, 0, prefix.length, ignoreCase)\n}\n\n/**\n * Returns `true` if this char sequence ends with the specified suffix.\n */\npublic fun CharSequence.endsWith(suffix: CharSequence, ignoreCase: Boolean = false): Boolean {\n if (!ignoreCase && this is String && suffix is String)\n return this.endsWith(suffix)\n else\n return regionMatchesImpl(length - suffix.length, suffix, 0, suffix.length, ignoreCase)\n}\n\n\n// common prefix and suffix\n\n/**\n * Returns the longest string `prefix` such that this char sequence and [other] char sequence both start with this prefix,\n * taking care not to split surrogate pairs.\n * If this and [other] have no common prefix, returns the empty string.\n\n * @param ignoreCase `true` to ignore character case when matching a character. By default `false`.\n * @sample samples.text.Strings.commonPrefixWith\n */\npublic fun CharSequence.commonPrefixWith(other: CharSequence, ignoreCase: Boolean = false): String {\n val shortestLength = minOf(this.length, other.length)\n\n var i = 0\n while (i < shortestLength && this[i].equals(other[i], ignoreCase = ignoreCase)) {\n i++\n }\n if (this.hasSurrogatePairAt(i - 1) || other.hasSurrogatePairAt(i - 1)) {\n i--\n }\n return subSequence(0, i).toString()\n}\n\n/**\n * Returns the longest string `suffix` such that this char sequence and [other] char sequence both end with this suffix,\n * taking care not to split surrogate pairs.\n * If this and [other] have no common suffix, returns the empty string.\n\n * @param ignoreCase `true` to ignore character case when matching a character. By default `false`.\n * @sample samples.text.Strings.commonSuffixWith\n */\npublic fun CharSequence.commonSuffixWith(other: CharSequence, ignoreCase: Boolean = false): String {\n val thisLength = this.length\n val otherLength = other.length\n val shortestLength = minOf(thisLength, otherLength)\n\n var i = 0\n while (i < shortestLength && this[thisLength - i - 1].equals(other[otherLength - i - 1], ignoreCase = ignoreCase)) {\n i++\n }\n if (this.hasSurrogatePairAt(thisLength - i - 1) || other.hasSurrogatePairAt(otherLength - i - 1)) {\n i--\n }\n return subSequence(thisLength - i, thisLength).toString()\n}\n\n\n// indexOfAny()\n\n/**\n * Finds the index of the first occurrence of any of the specified [chars] in this char sequence,\n * starting from the specified [startIndex] and optionally ignoring the case.\n *\n * @param ignoreCase `true` to ignore character case when matching a character. By default `false`.\n * @return An index of the first occurrence of matched character from [chars] or -1 if none of [chars] are found.\n *\n */\npublic fun CharSequence.indexOfAny(chars: CharArray, startIndex: Int = 0, ignoreCase: Boolean = false): Int {\n if (!ignoreCase && chars.size == 1 && this is String) {\n val char = chars.single()\n return nativeIndexOf(char, startIndex)\n }\n\n for (index in startIndex.coerceAtLeast(0)..lastIndex) {\n val charAtIndex = get(index)\n if (chars.any { it.equals(charAtIndex, ignoreCase) })\n return index\n }\n return -1\n}\n\n/**\n * Finds the index of the last occurrence of any of the specified [chars] in this char sequence,\n * starting from the specified [startIndex] and optionally ignoring the case.\n *\n * @param startIndex The index of character to start searching at. The search proceeds backward toward the beginning of the string.\n * @param ignoreCase `true` to ignore character case when matching a character. By default `false`.\n * @return An index of the last occurrence of matched character from [chars] or -1 if none of [chars] are found.\n *\n */\npublic fun CharSequence.lastIndexOfAny(chars: CharArray, startIndex: Int = lastIndex, ignoreCase: Boolean = false): Int {\n if (!ignoreCase && chars.size == 1 && this is String) {\n val char = chars.single()\n return nativeLastIndexOf(char, startIndex)\n }\n\n\n for (index in startIndex.coerceAtMost(lastIndex) downTo 0) {\n val charAtIndex = get(index)\n if (chars.any { it.equals(charAtIndex, ignoreCase) })\n return index\n }\n\n return -1\n}\n\n\nprivate fun CharSequence.indexOf(other: CharSequence, startIndex: Int, endIndex: Int, ignoreCase: Boolean, last: Boolean = false): Int {\n val indices = if (!last)\n startIndex.coerceAtLeast(0)..endIndex.coerceAtMost(length)\n else\n startIndex.coerceAtMost(lastIndex) downTo endIndex.coerceAtLeast(0)\n\n if (this is String && other is String) { // smart cast\n for (index in indices) {\n if (other.regionMatches(0, this, index, other.length, ignoreCase))\n return index\n }\n } else {\n for (index in indices) {\n if (other.regionMatchesImpl(0, this, index, other.length, ignoreCase))\n return index\n }\n }\n return -1\n}\n\nprivate fun CharSequence.findAnyOf(strings: Collection, startIndex: Int, ignoreCase: Boolean, last: Boolean): Pair? {\n if (!ignoreCase && strings.size == 1) {\n val string = strings.single()\n val index = if (!last) indexOf(string, startIndex) else lastIndexOf(string, startIndex)\n return if (index < 0) null else index to string\n }\n\n val indices = if (!last) startIndex.coerceAtLeast(0)..length else startIndex.coerceAtMost(lastIndex) downTo 0\n\n if (this is String) {\n for (index in indices) {\n val matchingString = strings.firstOrNull { it.regionMatches(0, this, index, it.length, ignoreCase) }\n if (matchingString != null)\n return index to matchingString\n }\n } else {\n for (index in indices) {\n val matchingString = strings.firstOrNull { it.regionMatchesImpl(0, this, index, it.length, ignoreCase) }\n if (matchingString != null)\n return index to matchingString\n }\n }\n\n return null\n}\n\n/**\n * Finds the first occurrence of any of the specified [strings] in this char sequence,\n * starting from the specified [startIndex] and optionally ignoring the case.\n *\n * @param ignoreCase `true` to ignore character case when matching a string. By default `false`.\n * @return A pair of an index of the first occurrence of matched string from [strings] and the string matched\n * or `null` if none of [strings] are found.\n *\n * To avoid ambiguous results when strings in [strings] have characters in common, this method proceeds from\n * the beginning to the end of this string, and finds at each position the first element in [strings]\n * that matches this string at that position.\n */\npublic fun CharSequence.findAnyOf(strings: Collection, startIndex: Int = 0, ignoreCase: Boolean = false): Pair? =\n findAnyOf(strings, startIndex, ignoreCase, last = false)\n\n/**\n * Finds the last occurrence of any of the specified [strings] in this char sequence,\n * starting from the specified [startIndex] and optionally ignoring the case.\n *\n * @param startIndex The index of character to start searching at. The search proceeds backward toward the beginning of the string.\n * @param ignoreCase `true` to ignore character case when matching a string. By default `false`.\n * @return A pair of an index of the last occurrence of matched string from [strings] and the string matched or `null` if none of [strings] are found.\n *\n * To avoid ambiguous results when strings in [strings] have characters in common, this method proceeds from\n * the end toward the beginning of this string, and finds at each position the first element in [strings]\n * that matches this string at that position.\n */\npublic fun CharSequence.findLastAnyOf(strings: Collection, startIndex: Int = lastIndex, ignoreCase: Boolean = false): Pair? =\n findAnyOf(strings, startIndex, ignoreCase, last = true)\n\n/**\n * Finds the index of the first occurrence of any of the specified [strings] in this char sequence,\n * starting from the specified [startIndex] and optionally ignoring the case.\n *\n * @param ignoreCase `true` to ignore character case when matching a string. By default `false`.\n * @return An index of the first occurrence of matched string from [strings] or -1 if none of [strings] are found.\n *\n * To avoid ambiguous results when strings in [strings] have characters in common, this method proceeds from\n * the beginning to the end of this string, and finds at each position the first element in [strings]\n * that matches this string at that position.\n */\npublic fun CharSequence.indexOfAny(strings: Collection, startIndex: Int = 0, ignoreCase: Boolean = false): Int =\n findAnyOf(strings, startIndex, ignoreCase, last = false)?.first ?: -1\n\n/**\n * Finds the index of the last occurrence of any of the specified [strings] in this char sequence,\n * starting from the specified [startIndex] and optionally ignoring the case.\n *\n * @param startIndex The index of character to start searching at. The search proceeds backward toward the beginning of the string.\n * @param ignoreCase `true` to ignore character case when matching a string. By default `false`.\n * @return An index of the last occurrence of matched string from [strings] or -1 if none of [strings] are found.\n *\n * To avoid ambiguous results when strings in [strings] have characters in common, this method proceeds from\n * the end toward the beginning of this string, and finds at each position the first element in [strings]\n * that matches this string at that position.\n */\npublic fun CharSequence.lastIndexOfAny(strings: Collection, startIndex: Int = lastIndex, ignoreCase: Boolean = false): Int =\n findAnyOf(strings, startIndex, ignoreCase, last = true)?.first ?: -1\n\n\n// indexOf\n\n/**\n * Returns the index within this string of the first occurrence of the specified character, starting from the specified [startIndex].\n *\n * @param ignoreCase `true` to ignore character case when matching a character. By default `false`.\n * @return An index of the first occurrence of [char] or -1 if none is found.\n */\npublic fun CharSequence.indexOf(char: Char, startIndex: Int = 0, ignoreCase: Boolean = false): Int {\n return if (ignoreCase || this !is String)\n indexOfAny(charArrayOf(char), startIndex, ignoreCase)\n else\n nativeIndexOf(char, startIndex)\n}\n\n/**\n * Returns the index within this char sequence of the first occurrence of the specified [string],\n * starting from the specified [startIndex].\n *\n * @param ignoreCase `true` to ignore character case when matching a string. By default `false`.\n * @return An index of the first occurrence of [string] or `-1` if none is found.\n * @sample samples.text.Strings.indexOf\n */\npublic fun CharSequence.indexOf(string: String, startIndex: Int = 0, ignoreCase: Boolean = false): Int {\n return if (ignoreCase || this !is String)\n indexOf(string, startIndex, length, ignoreCase)\n else\n nativeIndexOf(string, startIndex)\n}\n\n/**\n * Returns the index within this char sequence of the last occurrence of the specified character,\n * starting from the specified [startIndex].\n *\n * @param startIndex The index of character to start searching at. The search proceeds backward toward the beginning of the string.\n * @param ignoreCase `true` to ignore character case when matching a character. By default `false`.\n * @return An index of the last occurrence of [char] or -1 if none is found.\n */\npublic fun CharSequence.lastIndexOf(char: Char, startIndex: Int = lastIndex, ignoreCase: Boolean = false): Int {\n return if (ignoreCase || this !is String)\n lastIndexOfAny(charArrayOf(char), startIndex, ignoreCase)\n else\n nativeLastIndexOf(char, startIndex)\n}\n\n/**\n * Returns the index within this char sequence of the last occurrence of the specified [string],\n * starting from the specified [startIndex].\n *\n * @param startIndex The index of character to start searching at. The search proceeds backward toward the beginning of the string.\n * @param ignoreCase `true` to ignore character case when matching a string. By default `false`.\n * @return An index of the last occurrence of [string] or -1 if none is found.\n */\npublic fun CharSequence.lastIndexOf(string: String, startIndex: Int = lastIndex, ignoreCase: Boolean = false): Int {\n return if (ignoreCase || this !is String)\n indexOf(string, startIndex, 0, ignoreCase, last = true)\n else\n nativeLastIndexOf(string, startIndex)\n}\n\n/**\n * Returns `true` if this char sequence contains the specified [other] sequence of characters as a substring.\n *\n * @param ignoreCase `true` to ignore character case when comparing strings. By default `false`.\n */\n@Suppress(\"INAPPLICABLE_OPERATOR_MODIFIER\")\npublic operator fun CharSequence.contains(other: CharSequence, ignoreCase: Boolean = false): Boolean =\n if (other is String)\n indexOf(other, ignoreCase = ignoreCase) >= 0\n else\n indexOf(other, 0, length, ignoreCase) >= 0\n\n\n\n/**\n * Returns `true` if this char sequence contains the specified character [char].\n *\n * @param ignoreCase `true` to ignore character case when comparing characters. By default `false`.\n */\n@Suppress(\"INAPPLICABLE_OPERATOR_MODIFIER\")\npublic operator fun CharSequence.contains(char: Char, ignoreCase: Boolean = false): Boolean =\n indexOf(char, ignoreCase = ignoreCase) >= 0\n\n/**\n * Returns `true` if this char sequence contains at least one match of the specified regular expression [regex].\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun CharSequence.contains(regex: Regex): Boolean = regex.containsMatchIn(this)\n\n\n// rangesDelimitedBy\n\n\nprivate class DelimitedRangesSequence(\n private val input: CharSequence,\n private val startIndex: Int,\n private val limit: Int,\n private val getNextMatch: CharSequence.(currentIndex: Int) -> Pair?\n) : Sequence {\n\n override fun iterator(): Iterator = object : Iterator {\n var nextState: Int = -1 // -1 for unknown, 0 for done, 1 for continue\n var currentStartIndex: Int = startIndex.coerceIn(0, input.length)\n var nextSearchIndex: Int = currentStartIndex\n var nextItem: IntRange? = null\n var counter: Int = 0\n\n private fun calcNext() {\n if (nextSearchIndex < 0) {\n nextState = 0\n nextItem = null\n } else {\n if (limit > 0 && ++counter >= limit || nextSearchIndex > input.length) {\n nextItem = currentStartIndex..input.lastIndex\n nextSearchIndex = -1\n } else {\n val match = input.getNextMatch(nextSearchIndex)\n if (match == null) {\n nextItem = currentStartIndex..input.lastIndex\n nextSearchIndex = -1\n } else {\n val (index, length) = match\n nextItem = currentStartIndex until index\n currentStartIndex = index + length\n nextSearchIndex = currentStartIndex + if (length == 0) 1 else 0\n }\n }\n nextState = 1\n }\n }\n\n override fun next(): IntRange {\n if (nextState == -1)\n calcNext()\n if (nextState == 0)\n throw NoSuchElementException()\n val result = nextItem as IntRange\n // Clean next to avoid keeping reference on yielded instance\n nextItem = null\n nextState = -1\n return result\n }\n\n override fun hasNext(): Boolean {\n if (nextState == -1)\n calcNext()\n return nextState == 1\n }\n }\n}\n\n/**\n * Returns a sequence of index ranges of substrings in this char sequence around occurrences of the specified [delimiters].\n *\n * @param delimiters One or more characters to be used as delimiters.\n * @param startIndex The index to start searching delimiters from.\n * No range having its start value less than [startIndex] is returned.\n * [startIndex] is coerced to be non-negative and not greater than length of this string.\n * @param ignoreCase `true` to ignore character case when matching a delimiter. By default `false`.\n * @param limit The maximum number of substrings to return. Zero by default means no limit is set.\n */\nprivate fun CharSequence.rangesDelimitedBy(delimiters: CharArray, startIndex: Int = 0, ignoreCase: Boolean = false, limit: Int = 0): Sequence {\n require(limit >= 0, { \"Limit must be non-negative, but was $limit.\" })\n\n return DelimitedRangesSequence(this, startIndex, limit, { currentIndex ->\n indexOfAny(delimiters, currentIndex, ignoreCase = ignoreCase).let { if (it < 0) null else it to 1 }\n })\n}\n\n\n/**\n * Returns a sequence of index ranges of substrings in this char sequence around occurrences of the specified [delimiters].\n *\n * @param delimiters One or more strings to be used as delimiters.\n * @param startIndex The index to start searching delimiters from.\n * No range having its start value less than [startIndex] is returned.\n * [startIndex] is coerced to be non-negative and not greater than length of this string.\n * @param ignoreCase `true` to ignore character case when matching a delimiter. By default `false`.\n * @param limit The maximum number of substrings to return. Zero by default means no limit is set.\n *\n * To avoid ambiguous results when strings in [delimiters] have characters in common, this method proceeds from\n * the beginning to the end of this string, and finds at each position the first element in [delimiters]\n * that matches this string at that position.\n */\nprivate fun CharSequence.rangesDelimitedBy(delimiters: Array, startIndex: Int = 0, ignoreCase: Boolean = false, limit: Int = 0): Sequence {\n require(limit >= 0, { \"Limit must be non-negative, but was $limit.\" } )\n val delimitersList = delimiters.asList()\n\n return DelimitedRangesSequence(this, startIndex, limit, { currentIndex -> findAnyOf(delimitersList, currentIndex, ignoreCase = ignoreCase, last = false)?.let { it.first to it.second.length } })\n\n}\n\n\n// split\n\n/**\n * Splits this char sequence to a sequence of strings around occurrences of the specified [delimiters].\n *\n * @param delimiters One or more strings to be used as delimiters.\n * @param ignoreCase `true` to ignore character case when matching a delimiter. By default `false`.\n * @param limit The maximum number of substrings to return. Zero by default means no limit is set.\n *\n * To avoid ambiguous results when strings in [delimiters] have characters in common, this method proceeds from\n * the beginning to the end of this string, and finds at each position the first element in [delimiters]\n * that matches this string at that position.\n */\npublic fun CharSequence.splitToSequence(vararg delimiters: String, ignoreCase: Boolean = false, limit: Int = 0): Sequence =\n rangesDelimitedBy(delimiters, ignoreCase = ignoreCase, limit = limit).map { substring(it) }\n\n/**\n * Splits this char sequence to a list of strings around occurrences of the specified [delimiters].\n *\n * @param delimiters One or more strings to be used as delimiters.\n * @param ignoreCase `true` to ignore character case when matching a delimiter. By default `false`.\n * @param limit The maximum number of substrings to return. Zero by default means no limit is set.\n *\n * To avoid ambiguous results when strings in [delimiters] have characters in common, this method proceeds from\n * the beginning to the end of this string, and matches at each position the first element in [delimiters]\n * that is equal to a delimiter in this instance at that position.\n */\npublic fun CharSequence.split(vararg delimiters: String, ignoreCase: Boolean = false, limit: Int = 0): List {\n if (delimiters.size == 1) {\n val delimiter = delimiters[0]\n if (!delimiter.isEmpty()) {\n return split(delimiter, ignoreCase, limit)\n }\n }\n\n return rangesDelimitedBy(delimiters, ignoreCase = ignoreCase, limit = limit).asIterable().map { substring(it) }\n}\n\n/**\n * Splits this char sequence to a sequence of strings around occurrences of the specified [delimiters].\n *\n * @param delimiters One or more characters to be used as delimiters.\n * @param ignoreCase `true` to ignore character case when matching a delimiter. By default `false`.\n * @param limit The maximum number of substrings to return.\n */\npublic fun CharSequence.splitToSequence(vararg delimiters: Char, ignoreCase: Boolean = false, limit: Int = 0): Sequence =\n rangesDelimitedBy(delimiters, ignoreCase = ignoreCase, limit = limit).map { substring(it) }\n\n/**\n * Splits this char sequence to a list of strings around occurrences of the specified [delimiters].\n *\n * @param delimiters One or more characters to be used as delimiters.\n * @param ignoreCase `true` to ignore character case when matching a delimiter. By default `false`.\n * @param limit The maximum number of substrings to return.\n */\npublic fun CharSequence.split(vararg delimiters: Char, ignoreCase: Boolean = false, limit: Int = 0): List {\n if (delimiters.size == 1) {\n return split(delimiters[0].toString(), ignoreCase, limit)\n }\n\n return rangesDelimitedBy(delimiters, ignoreCase = ignoreCase, limit = limit).asIterable().map { substring(it) }\n}\n\n/**\n * Splits this char sequence to a list of strings around occurrences of the specified [delimiter].\n * This is specialized version of split which receives single non-empty delimiter and offers better performance\n *\n * @param delimiter String used as delimiter\n * @param ignoreCase `true` to ignore character case when matching a delimiter. By default `false`.\n * @param limit The maximum number of substrings to return.\n */\nprivate fun CharSequence.split(delimiter: String, ignoreCase: Boolean, limit: Int): List {\n require(limit >= 0, { \"Limit must be non-negative, but was $limit.\" })\n\n var currentOffset = 0\n var nextIndex = indexOf(delimiter, currentOffset, ignoreCase)\n if (nextIndex == -1 || limit == 1) {\n return listOf(this.toString())\n }\n\n val isLimited = limit > 0\n val result = ArrayList(if (isLimited) limit.coerceAtMost(10) else 10)\n do {\n result.add(substring(currentOffset, nextIndex))\n currentOffset = nextIndex + delimiter.length\n // Do not search for next occurrence if we're reaching limit\n if (isLimited && result.size == limit - 1) break\n nextIndex = indexOf(delimiter, currentOffset, ignoreCase)\n } while (nextIndex != -1)\n\n result.add(substring(currentOffset, length))\n return result\n}\n\n/**\n * Splits this char sequence around matches of the given regular expression.\n *\n * @param limit Non-negative value specifying the maximum number of substrings to return.\n * Zero by default means no limit is set.\n */\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence.split(regex: Regex, limit: Int = 0): List = regex.split(this, limit)\n\n/**\n * Splits this char sequence to a sequence of lines delimited by any of the following character sequences: CRLF, LF or CR.\n *\n * The lines returned do not include terminating line separators.\n */\npublic fun CharSequence.lineSequence(): Sequence = splitToSequence(\"\\r\\n\", \"\\n\", \"\\r\")\n\n/**\n * Splits this char sequence to a list of lines delimited by any of the following character sequences: CRLF, LF or CR.\n *\n * The lines returned do not include terminating line separators.\n */\npublic fun CharSequence.lines(): List = lineSequence().toList()\n","package kotlinx.html\n\n\n@Deprecated(\"use legend instead\", ReplaceWith(\"legend(classes, block)\"))\nfun > C.legEnd(classes: String? = null, block: LEGEND.() -> Unit = {}): T = legend(classes, block)\n\n@Deprecated(\"use legend instead\", ReplaceWith(\"legend(classes, block)\"))\nfun DETAILS.legEnd(classes: String? = null, block: LEGEND.() -> Unit = {}): Unit = legend(classes, block)\n\n@Deprecated(\"use legend instead\", ReplaceWith(\"legend(classes, block)\"))\nfun FIELDSET.legEnd(classes: String? = null, block: LEGEND.() -> Unit = {}): Unit = legend(classes, block)\n\n@Deprecated(\"use legend instead\", ReplaceWith(\"legend(classes, block)\"))\nfun FIGURE.legEnd(classes: String? = null, block: LEGEND.() -> Unit = {}): Unit = legend(classes, block)\n\n@Deprecated(\"\", ReplaceWith(\"Draggable.htmlTrue\"))\ninline val Draggable.true_: Draggable\n get() = Draggable.htmlTrue\n\n@Deprecated(\"\", ReplaceWith(\"Draggable.htmlFalse\"))\ninline val Draggable.false_: Draggable\n get() = Draggable.htmlFalse\n\n@Deprecated(\"Use OBJECT instead\", ReplaceWith(\"OBJECT\", \"kotlinx.html.OBJECT\"))\ntypealias OBJECT_ = OBJECT\n\n@Deprecated(\"Use VAR type instead\", ReplaceWith(\"VAR\", \"kotlinx.html.VAR\"))\ntypealias VAR_ = VAR\n\n@Deprecated(\"\", ReplaceWith(\"htmlObject(classes, block)\", \"kotlinx.html.htmlObject\"))\nfun > C.object_(classes: String? = null, block: OBJECT.() -> Unit = {}): T =\n htmlObject(classes, block)\n\n@Deprecated(\"\", ReplaceWith(\"htmlVar(classes, block)\", \"kotlinx.html.htmlVar\"))\nfun > C.var_(classes: String? = null, block: VAR.() -> Unit = {}): T =\n htmlVar(classes, block)\n\n@Deprecated(\"Use htmlVar instead\", ReplaceWith(\"htmlVar(classes, block)\", \"kotlinx.html.htmlVar\"))\nfun FlowOrPhrasingContent.var_(classes: String? = null, block: VAR.() -> Unit) {\n htmlVar(classes, block)\n}\n\n@Deprecated(\"Use htmlObject instead\", ReplaceWith(\"htmlObject(classes, block)\", \"kotlinx.html.htmlObject\"))\nfun FlowOrInteractiveOrPhrasingContent.object_(classes: String? = null, block: OBJECT.() -> Unit = {}) =\n htmlObject(classes, block)\n\n@Deprecated(\"use htmlFor instead\", ReplaceWith(\"htmlFor\"))\nvar LABEL.for_: String\n get() = htmlFor\n set(value) {\n htmlFor = value\n }\n\n@Deprecated(\"use htmlFor instead\", ReplaceWith(\"htmlFor\"))\nvar OUTPUT.for_: String\n get() = htmlFor\n set(value) {\n htmlFor = value\n }\n\n@Deprecated(\"Use onTouchCancel instead\", ReplaceWith(\"onTouchCancel\"))\nvar CommonAttributeGroupFacade.onTouchcancel: String\n get() = onTouchCancel\n set(newValue) {\n onTouchCancel = newValue\n }\n\n@Deprecated(\"Use onTouchMove instead\", ReplaceWith(\"onTouchMove\"))\nvar CommonAttributeGroupFacade.onTouchmove: String\n get() = onTouchMove\n set(newValue) {\n onTouchMove = newValue\n }\n\n","package kotlinx.html\n\nimport kotlinx.html.*\nimport kotlinx.html.impl.*\nimport kotlinx.html.attributes.*\n\n/*******************************************************************************\n DO NOT EDIT\n This file was generated by module generate\n*******************************************************************************/\n\n/**\n * Anchor\n */\n@HtmlTagMarker\ninline fun > C.a(href : String? = null, target : String? = null, classes : String? = null, crossinline block : A.() -> Unit = {}) : T = A(attributesMapOf(\"href\", href,\"target\", target,\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Abbreviated form (e.g., WWW, HTTP,etc.)\n */\n@HtmlTagMarker\ninline fun > C.abbr(classes : String? = null, crossinline block : ABBR.() -> Unit = {}) : T = ABBR(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Information on author\n */\n@HtmlTagMarker\ninline fun > C.address(classes : String? = null, crossinline block : ADDRESS.() -> Unit = {}) : T = ADDRESS(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Client-side image map area\n */\n@HtmlTagMarker\ninline fun > C.area(shape : AreaShape? = null, alt : String? = null, classes : String? = null, crossinline block : AREA.() -> Unit = {}) : T = AREA(attributesMapOf(\"Shape\", shape?.enumEncode(),\"alt\", alt,\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Self-contained syndicatable or reusable composition\n */\n@HtmlTagMarker\ninline fun > C.article(classes : String? = null, crossinline block : ARTICLE.() -> Unit = {}) : T = ARTICLE(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Sidebar for tangentially related content\n */\n@HtmlTagMarker\ninline fun > C.aside(classes : String? = null, crossinline block : ASIDE.() -> Unit = {}) : T = ASIDE(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Audio player\n */\n@HtmlTagMarker\ninline fun > C.audio(classes : String? = null, crossinline block : AUDIO.() -> Unit = {}) : T = AUDIO(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Bold text style\n */\n@HtmlTagMarker\ninline fun > C.b(classes : String? = null, crossinline block : B.() -> Unit = {}) : T = B(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Document base URI\n */\n@HtmlTagMarker\ninline fun > C.base(classes : String? = null, crossinline block : BASE.() -> Unit = {}) : T = BASE(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Text directionality isolation\n */\n@HtmlTagMarker\ninline fun > C.bdi(classes : String? = null, crossinline block : BDI.() -> Unit = {}) : T = BDI(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * I18N BiDi over-ride\n */\n@HtmlTagMarker\ninline fun > C.bdo(classes : String? = null, crossinline block : BDO.() -> Unit = {}) : T = BDO(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Long quotation\n */\n@HtmlTagMarker\ninline fun > C.blockQuote(classes : String? = null, crossinline block : BLOCKQUOTE.() -> Unit = {}) : T = BLOCKQUOTE(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Document body\n */\n@HtmlTagMarker\ninline fun > C.body(classes : String? = null, crossinline block : BODY.() -> Unit = {}) : T = BODY(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Forced line break\n */\n@HtmlTagMarker\ninline fun > C.br(classes : String? = null, crossinline block : BR.() -> Unit = {}) : T = BR(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Push button\n */\n@HtmlTagMarker\ninline fun > C.button(formEncType : ButtonFormEncType? = null, formMethod : ButtonFormMethod? = null, name : String? = null, type : ButtonType? = null, classes : String? = null, crossinline block : BUTTON.() -> Unit = {}) : T = BUTTON(attributesMapOf(\"formenctype\", formEncType?.enumEncode(),\"formmethod\", formMethod?.enumEncode(),\"name\", name,\"type\", type?.enumEncode(),\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Scriptable bitmap canvas\n */\n@HtmlTagMarker\nfun > C.canvas(classes : String? = null, content : String = \"\") : T = CANVAS(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, {+content})\n/**\n * Scriptable bitmap canvas\n */\n@HtmlTagMarker\ninline fun > C.canvas(classes : String? = null, crossinline block : CANVAS.() -> Unit = {}) : T = CANVAS(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Table caption\n */\n@HtmlTagMarker\ninline fun > C.caption(classes : String? = null, crossinline block : CAPTION.() -> Unit = {}) : T = CAPTION(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Citation\n */\n@HtmlTagMarker\ninline fun > C.cite(classes : String? = null, crossinline block : CITE.() -> Unit = {}) : T = CITE(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Computer code fragment\n */\n@HtmlTagMarker\ninline fun > C.code(classes : String? = null, crossinline block : CODE.() -> Unit = {}) : T = CODE(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Table column\n */\n@HtmlTagMarker\ninline fun > C.col(classes : String? = null, crossinline block : COL.() -> Unit = {}) : T = COL(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Table column group\n */\n@HtmlTagMarker\ninline fun > C.colGroup(classes : String? = null, crossinline block : COLGROUP.() -> Unit = {}) : T = COLGROUP(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n@HtmlTagMarker\ninline fun > C.command(type : CommandType? = null, classes : String? = null, crossinline block : COMMAND.() -> Unit = {}) : T = COMMAND(attributesMapOf(\"type\", type?.enumEncode(),\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Container for options for \n */\n@HtmlTagMarker\ninline fun > C.dataList(classes : String? = null, crossinline block : DATALIST.() -> Unit = {}) : T = DATALIST(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Definition description\n */\n@HtmlTagMarker\ninline fun > C.dd(classes : String? = null, crossinline block : DD.() -> Unit = {}) : T = DD(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Deleted text\n */\n@HtmlTagMarker\ninline fun > C.del(classes : String? = null, crossinline block : DEL.() -> Unit = {}) : T = DEL(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Disclosure control for hiding details\n */\n@HtmlTagMarker\ninline fun > C.details(classes : String? = null, crossinline block : DETAILS.() -> Unit = {}) : T = DETAILS(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Instance definition\n */\n@HtmlTagMarker\ninline fun > C.dfn(classes : String? = null, crossinline block : DFN.() -> Unit = {}) : T = DFN(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Dialog box or window\n */\n@HtmlTagMarker\ninline fun > C.dialog(classes : String? = null, crossinline block : DIALOG.() -> Unit = {}) : T = DIALOG(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Generic language/style container\n */\n@HtmlTagMarker\ninline fun > C.div(classes : String? = null, crossinline block : DIV.() -> Unit = {}) : T = DIV(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Definition list\n */\n@HtmlTagMarker\ninline fun > C.dl(classes : String? = null, crossinline block : DL.() -> Unit = {}) : T = DL(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Definition term\n */\n@HtmlTagMarker\ninline fun > C.dt(classes : String? = null, crossinline block : DT.() -> Unit = {}) : T = DT(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Emphasis\n */\n@HtmlTagMarker\ninline fun > C.em(classes : String? = null, crossinline block : EM.() -> Unit = {}) : T = EM(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Plugin\n */\n@HtmlTagMarker\ninline fun > C.embed(classes : String? = null, crossinline block : EMBED.() -> Unit = {}) : T = EMBED(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Form control group\n */\n@HtmlTagMarker\ninline fun > C.fieldSet(classes : String? = null, crossinline block : FIELDSET.() -> Unit = {}) : T = FIELDSET(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Caption for \n */\n@HtmlTagMarker\ninline fun > C.figcaption(classes : String? = null, crossinline block : FIGCAPTION.() -> Unit = {}) : T = FIGCAPTION(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Figure with optional caption\n */\n@HtmlTagMarker\ninline fun > C.figure(classes : String? = null, crossinline block : FIGURE.() -> Unit = {}) : T = FIGURE(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Footer for a page or section\n */\n@HtmlTagMarker\ninline fun > C.footer(classes : String? = null, crossinline block : FOOTER.() -> Unit = {}) : T = FOOTER(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Interactive form\n */\n@HtmlTagMarker\ninline fun > C.form(action : String? = null, encType : FormEncType? = null, method : FormMethod? = null, classes : String? = null, crossinline block : FORM.() -> Unit = {}) : T = FORM(attributesMapOf(\"action\", action,\"enctype\", encType?.enumEncode(),\"method\", method?.enumEncode(),\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Heading\n */\n@HtmlTagMarker\ninline fun > C.h1(classes : String? = null, crossinline block : H1.() -> Unit = {}) : T = H1(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Heading\n */\n@HtmlTagMarker\ninline fun > C.h2(classes : String? = null, crossinline block : H2.() -> Unit = {}) : T = H2(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Heading\n */\n@HtmlTagMarker\ninline fun > C.h3(classes : String? = null, crossinline block : H3.() -> Unit = {}) : T = H3(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Heading\n */\n@HtmlTagMarker\ninline fun > C.h4(classes : String? = null, crossinline block : H4.() -> Unit = {}) : T = H4(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Heading\n */\n@HtmlTagMarker\ninline fun > C.h5(classes : String? = null, crossinline block : H5.() -> Unit = {}) : T = H5(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Heading\n */\n@HtmlTagMarker\ninline fun > C.h6(classes : String? = null, crossinline block : H6.() -> Unit = {}) : T = H6(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n@Deprecated(\"This tag doesn't support content or requires unsafe (try unsafe {})\")\n@Suppress(\"DEPRECATION\")\n/**\n * Document head\n */\n@HtmlTagMarker\nfun > C.head(content : String = \"\") : T = HEAD(emptyMap, this).visitAndFinalize(this, {+content})\n/**\n * Document head\n */\n@HtmlTagMarker\ninline fun > C.head(crossinline block : HEAD.() -> Unit = {}) : T = HEAD(emptyMap, this).visitAndFinalize(this, block)\n\n/**\n * Introductory or navigational aids for a page or section\n */\n@HtmlTagMarker\ninline fun > C.header(classes : String? = null, crossinline block : HEADER.() -> Unit = {}) : T = HEADER(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n@HtmlTagMarker\ninline fun > C.hGroup(classes : String? = null, crossinline block : HGROUP.() -> Unit = {}) : T = HGROUP(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Horizontal rule\n */\n@HtmlTagMarker\ninline fun > C.hr(classes : String? = null, crossinline block : HR.() -> Unit = {}) : T = HR(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n@Deprecated(\"This tag doesn't support content or requires unsafe (try unsafe {})\")\n@Suppress(\"DEPRECATION\")\n/**\n * Document root element\n */\n@HtmlTagMarker\nfun > C.html(content : String = \"\", namespace : String? = null) : T = HTML(emptyMap, this, namespace).visitAndFinalize(this, {+content})\n/**\n * Document root element\n */\n@HtmlTagMarker\ninline fun > C.html(namespace : String? = null, crossinline block : HTML.() -> Unit = {}) : T = HTML(emptyMap, this, namespace).visitAndFinalize(this, block)\n\n/**\n * Italic text style\n */\n@HtmlTagMarker\ninline fun > C.i(classes : String? = null, crossinline block : I.() -> Unit = {}) : T = I(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Inline subwindow\n */\n@HtmlTagMarker\nfun > C.iframe(sandbox : IframeSandbox? = null, classes : String? = null, content : String = \"\") : T = IFRAME(attributesMapOf(\"sandbox\", sandbox?.enumEncode(),\"class\", classes), this).visitAndFinalize(this, {+content})\n/**\n * Inline subwindow\n */\n@HtmlTagMarker\ninline fun > C.iframe(sandbox : IframeSandbox? = null, classes : String? = null, crossinline block : IFRAME.() -> Unit = {}) : T = IFRAME(attributesMapOf(\"sandbox\", sandbox?.enumEncode(),\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Embedded image\n */\n@HtmlTagMarker\ninline fun > C.img(alt : String? = null, src : String? = null, classes : String? = null, crossinline block : IMG.() -> Unit = {}) : T = IMG(attributesMapOf(\"alt\", alt,\"src\", src,\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Form control\n */\n@HtmlTagMarker\ninline fun > C.input(type : InputType? = null, formEncType : InputFormEncType? = null, formMethod : InputFormMethod? = null, name : String? = null, classes : String? = null, crossinline block : INPUT.() -> Unit = {}) : T = INPUT(attributesMapOf(\"type\", type?.enumEncode(),\"formenctype\", formEncType?.enumEncode(),\"formmethod\", formMethod?.enumEncode(),\"name\", name,\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Inserted text\n */\n@HtmlTagMarker\ninline fun > C.ins(classes : String? = null, crossinline block : INS.() -> Unit = {}) : T = INS(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Text to be entered by the user\n */\n@HtmlTagMarker\ninline fun > C.kbd(classes : String? = null, crossinline block : KBD.() -> Unit = {}) : T = KBD(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Cryptographic key-pair generator form control\n */\n@HtmlTagMarker\ninline fun > C.keyGen(keyType : KeyGenKeyType? = null, classes : String? = null, crossinline block : KEYGEN.() -> Unit = {}) : T = KEYGEN(attributesMapOf(\"keytype\", keyType?.enumEncode(),\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Form field label text\n */\n@HtmlTagMarker\ninline fun > C.label(classes : String? = null, crossinline block : LABEL.() -> Unit = {}) : T = LABEL(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Fieldset legend\n */\n@HtmlTagMarker\ninline fun > C.legend(classes : String? = null, crossinline block : LEGEND.() -> Unit = {}) : T = LEGEND(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * List item\n */\n@HtmlTagMarker\ninline fun > C.li(classes : String? = null, crossinline block : LI.() -> Unit = {}) : T = LI(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * A media-independent link\n */\n@HtmlTagMarker\ninline fun > C.link(href : String? = null, rel : String? = null, type : String? = null, crossinline block : LINK.() -> Unit = {}) : T = LINK(attributesMapOf(\"href\", href,\"rel\", rel,\"type\", type), this).visitAndFinalize(this, block)\n\n/**\n * Container for the dominant contents of another element\n */\n@HtmlTagMarker\ninline fun > C.main(classes : String? = null, crossinline block : MAIN.() -> Unit = {}) : T = MAIN(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Client-side image map\n */\n@HtmlTagMarker\ninline fun > C.map(name : String? = null, classes : String? = null, crossinline block : MAP.() -> Unit = {}) : T = MAP(attributesMapOf(\"name\", name,\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Highlight\n */\n@HtmlTagMarker\ninline fun > C.mark(classes : String? = null, crossinline block : MARK.() -> Unit = {}) : T = MARK(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n@HtmlTagMarker\ninline fun > C.math(classes : String? = null, crossinline block : MATH.() -> Unit = {}) : T = MATH(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n@HtmlTagMarker\nfun > C.mathml(classes : String? = null, content : String = \"\") : T = MATHML(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, {+content})\n@HtmlTagMarker\ninline fun > C.mathml(classes : String? = null, crossinline block : MATHML.() -> Unit = {}) : T = MATHML(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Generic metainformation\n */\n@HtmlTagMarker\ninline fun > C.meta(name : String? = null, content : String? = null, charset : String? = null, crossinline block : META.() -> Unit = {}) : T = META(attributesMapOf(\"name\", name,\"content\", content,\"charset\", charset), this).visitAndFinalize(this, block)\n\n/**\n * Gauge\n */\n@HtmlTagMarker\ninline fun > C.meter(classes : String? = null, crossinline block : METER.() -> Unit = {}) : T = METER(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Section with navigational links\n */\n@HtmlTagMarker\ninline fun > C.nav(classes : String? = null, crossinline block : NAV.() -> Unit = {}) : T = NAV(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Generic metainformation\n */\n@HtmlTagMarker\ninline fun > C.noScript(classes : String? = null, crossinline block : NOSCRIPT.() -> Unit = {}) : T = NOSCRIPT(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Generic embedded object\n */\n@HtmlTagMarker\ninline fun > C.htmlObject(classes : String? = null, crossinline block : OBJECT.() -> Unit = {}) : T = OBJECT(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Ordered list\n */\n@HtmlTagMarker\ninline fun > C.ol(classes : String? = null, crossinline block : OL.() -> Unit = {}) : T = OL(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Option group\n */\n@HtmlTagMarker\ninline fun > C.optGroup(label : String? = null, classes : String? = null, crossinline block : OPTGROUP.() -> Unit = {}) : T = OPTGROUP(attributesMapOf(\"label\", label,\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Selectable choice\n */\n@HtmlTagMarker\nfun > C.option(classes : String? = null, content : String = \"\") : T = OPTION(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, {+content})\n/**\n * Selectable choice\n */\n@HtmlTagMarker\ninline fun > C.option(classes : String? = null, crossinline block : OPTION.() -> Unit = {}) : T = OPTION(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Calculated output value\n */\n@HtmlTagMarker\ninline fun > C.output(classes : String? = null, crossinline block : OUTPUT.() -> Unit = {}) : T = OUTPUT(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Paragraph\n */\n@HtmlTagMarker\ninline fun > C.p(classes : String? = null, crossinline block : P.() -> Unit = {}) : T = P(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Named property value\n */\n@HtmlTagMarker\ninline fun > C.param(name : String? = null, value : String? = null, crossinline block : PARAM.() -> Unit = {}) : T = PARAM(attributesMapOf(\"name\", name,\"value\", value), this).visitAndFinalize(this, block)\n\n/**\n * Pictures container\n */\n@HtmlTagMarker\ninline fun > C.picture(crossinline block : PICTURE.() -> Unit = {}) : T = PICTURE(emptyMap, this).visitAndFinalize(this, block)\n\n/**\n * Preformatted text\n */\n@HtmlTagMarker\ninline fun > C.pre(classes : String? = null, crossinline block : PRE.() -> Unit = {}) : T = PRE(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Progress bar\n */\n@HtmlTagMarker\ninline fun > C.progress(classes : String? = null, crossinline block : PROGRESS.() -> Unit = {}) : T = PROGRESS(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Short inline quotation\n */\n@HtmlTagMarker\ninline fun > C.q(classes : String? = null, crossinline block : Q.() -> Unit = {}) : T = Q(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Parenthesis for ruby annotation text\n */\n@HtmlTagMarker\ninline fun > C.rp(classes : String? = null, crossinline block : RP.() -> Unit = {}) : T = RP(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Ruby annotation text\n */\n@HtmlTagMarker\ninline fun > C.rt(classes : String? = null, crossinline block : RT.() -> Unit = {}) : T = RT(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Ruby annotation(s)\n */\n@HtmlTagMarker\ninline fun > C.ruby(classes : String? = null, crossinline block : RUBY.() -> Unit = {}) : T = RUBY(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Strike-through text style\n */\n@HtmlTagMarker\ninline fun > C.samp(classes : String? = null, crossinline block : SAMP.() -> Unit = {}) : T = SAMP(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n@Deprecated(\"This tag doesn't support content or requires unsafe (try unsafe {})\")\n@Suppress(\"DEPRECATION\")\n/**\n * Script statements\n */\n@HtmlTagMarker\nfun > C.script(type : String? = null, src : String? = null, content : String = \"\") : T = SCRIPT(attributesMapOf(\"type\", type,\"src\", src), this).visitAndFinalize(this, {+content})\n/**\n * Script statements\n */\n@HtmlTagMarker\ninline fun > C.script(type : String? = null, src : String? = null, crossinline block : SCRIPT.() -> Unit = {}) : T = SCRIPT(attributesMapOf(\"type\", type,\"src\", src), this).visitAndFinalize(this, block)\n\n/**\n * Generic document or application section\n */\n@HtmlTagMarker\ninline fun > C.section(classes : String? = null, crossinline block : SECTION.() -> Unit = {}) : T = SECTION(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Option selector\n */\n@HtmlTagMarker\ninline fun > C.select(classes : String? = null, crossinline block : SELECT.() -> Unit = {}) : T = SELECT(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Small text style\n */\n@HtmlTagMarker\ninline fun > C.small(classes : String? = null, crossinline block : SMALL.() -> Unit = {}) : T = SMALL(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Media source for \n */\n@HtmlTagMarker\ninline fun > C.source(classes : String? = null, crossinline block : SOURCE.() -> Unit = {}) : T = SOURCE(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Generic language/style container\n */\n@HtmlTagMarker\ninline fun > C.span(classes : String? = null, crossinline block : SPAN.() -> Unit = {}) : T = SPAN(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Strong emphasis\n */\n@HtmlTagMarker\ninline fun > C.strong(classes : String? = null, crossinline block : STRONG.() -> Unit = {}) : T = STRONG(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n@Deprecated(\"This tag doesn't support content or requires unsafe (try unsafe {})\")\n@Suppress(\"DEPRECATION\")\n/**\n * Style info\n */\n@HtmlTagMarker\nfun > C.style(type : String? = null, content : String = \"\") : T = STYLE(attributesMapOf(\"type\", type), this).visitAndFinalize(this, {+content})\n/**\n * Style info\n */\n@HtmlTagMarker\ninline fun > C.style(type : String? = null, crossinline block : STYLE.() -> Unit = {}) : T = STYLE(attributesMapOf(\"type\", type), this).visitAndFinalize(this, block)\n\n/**\n * Subscript\n */\n@HtmlTagMarker\ninline fun > C.sub(classes : String? = null, crossinline block : SUB.() -> Unit = {}) : T = SUB(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Caption for \n */\n@HtmlTagMarker\ninline fun > C.summary(classes : String? = null, crossinline block : SUMMARY.() -> Unit = {}) : T = SUMMARY(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Superscript\n */\n@HtmlTagMarker\ninline fun > C.sup(classes : String? = null, crossinline block : SUP.() -> Unit = {}) : T = SUP(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n@HtmlTagMarker\nfun > C.svg(classes : String? = null, content : String = \"\") : T = SVG(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, {+content})\n@HtmlTagMarker\ninline fun > C.svg(classes : String? = null, crossinline block : SVG.() -> Unit = {}) : T = SVG(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * \n */\n@HtmlTagMarker\ninline fun > C.table(classes : String? = null, crossinline block : TABLE.() -> Unit = {}) : T = TABLE(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Table body\n */\n@HtmlTagMarker\ninline fun > C.tbody(classes : String? = null, crossinline block : TBODY.() -> Unit = {}) : T = TBODY(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Table data cell\n */\n@HtmlTagMarker\ninline fun > C.td(classes : String? = null, crossinline block : TD.() -> Unit = {}) : T = TD(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Multi-line text field\n */\n@HtmlTagMarker\nfun > C.textArea(rows : String? = null, cols : String? = null, wrap : TextAreaWrap? = null, classes : String? = null, content : String = \"\") : T = TEXTAREA(attributesMapOf(\"rows\", rows,\"cols\", cols,\"wrap\", wrap?.enumEncode(),\"class\", classes), this).visitAndFinalize(this, {+content})\n/**\n * Multi-line text field\n */\n@HtmlTagMarker\ninline fun > C.textArea(rows : String? = null, cols : String? = null, wrap : TextAreaWrap? = null, classes : String? = null, crossinline block : TEXTAREA.() -> Unit = {}) : T = TEXTAREA(attributesMapOf(\"rows\", rows,\"cols\", cols,\"wrap\", wrap?.enumEncode(),\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Table footer\n */\n@HtmlTagMarker\ninline fun > C.tfoot(classes : String? = null, crossinline block : TFOOT.() -> Unit = {}) : T = TFOOT(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Table header cell\n */\n@HtmlTagMarker\ninline fun > C.th(scope : ThScope? = null, classes : String? = null, crossinline block : TH.() -> Unit = {}) : T = TH(attributesMapOf(\"scope\", scope?.enumEncode(),\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Table header\n */\n@HtmlTagMarker\ninline fun > C.thead(classes : String? = null, crossinline block : THEAD.() -> Unit = {}) : T = THEAD(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Machine-readable equivalent of date- or time-related data\n */\n@HtmlTagMarker\ninline fun > C.time(classes : String? = null, crossinline block : TIME.() -> Unit = {}) : T = TIME(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Document title\n */\n@HtmlTagMarker\nfun > C.title(content : String = \"\") : T = TITLE(emptyMap, this).visitAndFinalize(this, {+content})\n/**\n * Document title\n */\n@HtmlTagMarker\ninline fun > C.title(crossinline block : TITLE.() -> Unit = {}) : T = TITLE(emptyMap, this).visitAndFinalize(this, block)\n\n/**\n * Table row\n */\n@HtmlTagMarker\ninline fun > C.tr(classes : String? = null, crossinline block : TR.() -> Unit = {}) : T = TR(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Unordered list\n */\n@HtmlTagMarker\ninline fun > C.ul(classes : String? = null, crossinline block : UL.() -> Unit = {}) : T = UL(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Unordered list\n */\n@HtmlTagMarker\ninline fun > C.htmlVar(classes : String? = null, crossinline block : VAR.() -> Unit = {}) : T = VAR(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Video player\n */\n@HtmlTagMarker\ninline fun > C.video(classes : String? = null, crossinline block : VIDEO.() -> Unit = {}) : T = VIDEO(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n","package kotlinx.html\n\nimport kotlinx.html.*\nimport kotlinx.html.impl.*\nimport kotlinx.html.attributes.*\n\n/*******************************************************************************\n DO NOT EDIT\n This file was generated by module generate\n*******************************************************************************/\n\n@Suppress(\"unused\")\nopen class DATALIST(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"datalist\", consumer, initialAttributes, null, true, false), HtmlBlockInlineTag {\n\n}\n/**\n * Selectable choice\n */\n@HtmlTagMarker\ninline fun DATALIST.option(classes : String? = null, crossinline block : OPTION.() -> Unit = {}) : Unit = OPTION(attributesMapOf(\"class\", classes), consumer).visit(block)\n/**\n * Selectable choice\n */\n@HtmlTagMarker\nfun DATALIST.option(classes : String? = null, content : String = \"\") : Unit = OPTION(attributesMapOf(\"class\", classes), consumer).visit({+content})\n\nval DATALIST.asFlowContent : FlowContent\n get() = this\n\nval DATALIST.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class DD(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"dd\", consumer, initialAttributes, null, false, false), HtmlBlockTag {\n\n}\n\n@Suppress(\"unused\")\nopen class DEL(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"del\", consumer, initialAttributes, null, false, false), HtmlBlockInlineTag {\n var cite : String\n get() = attributeStringString.get(this, \"cite\")\n set(newValue) {attributeStringString.set(this, \"cite\", newValue)}\n\n var dateTime : String\n get() = attributeStringString.get(this, \"datetime\")\n set(newValue) {attributeStringString.set(this, \"datetime\", newValue)}\n\n\n}\nval DEL.asFlowContent : FlowContent\n get() = this\n\nval DEL.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class DETAILS(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"details\", consumer, initialAttributes, null, false, false), CommonAttributeGroupFacadeFlowInteractiveContent {\n var open : Boolean\n get() = attributeBooleanTicker.get(this, \"open\")\n set(newValue) {attributeBooleanTicker.set(this, \"open\", newValue)}\n\n\n}\n/**\n * Fieldset legend\n */\n@HtmlTagMarker\ninline fun DETAILS.legend(classes : String? = null, crossinline block : LEGEND.() -> Unit = {}) : Unit = LEGEND(attributesMapOf(\"class\", classes), consumer).visit(block)\n\nval DETAILS.asFlowContent : FlowContent\n get() = this\n\nval DETAILS.asInteractiveContent : InteractiveContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class DFN(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"dfn\", consumer, initialAttributes, null, true, false), HtmlBlockInlineTag {\n\n}\nval DFN.asFlowContent : FlowContent\n get() = this\n\nval DFN.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class DIALOG(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"dialog\", consumer, initialAttributes, null, false, false), HtmlBlockTag {\n\n}\n\n@Suppress(\"unused\")\nopen class DIV(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"div\", consumer, initialAttributes, null, false, false), HtmlBlockTag {\n\n}\n\n@Suppress(\"unused\")\nopen class DL(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"dl\", consumer, initialAttributes, null, false, false), HtmlBlockTag {\n\n}\n/**\n * Definition description\n */\n@HtmlTagMarker\ninline fun DL.dd(classes : String? = null, crossinline block : DD.() -> Unit = {}) : Unit = DD(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Definition term\n */\n@HtmlTagMarker\ninline fun DL.dt(classes : String? = null, crossinline block : DT.() -> Unit = {}) : Unit = DT(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n\n@Suppress(\"unused\")\nopen class DT(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"dt\", consumer, initialAttributes, null, false, false), HtmlInlineTag {\n\n}\n\n","package kotlinx.html\n\nimport kotlinx.html.*\nimport kotlinx.html.impl.*\nimport kotlinx.html.attributes.*\n\n/*******************************************************************************\n DO NOT EDIT\n This file was generated by module generate\n*******************************************************************************/\n\n@Suppress(\"unused\")\nopen class FIELDSET(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"fieldset\", consumer, initialAttributes, null, false, false), HtmlBlockTag {\n var disabled : Boolean\n get() = attributeBooleanTicker.get(this, \"disabled\")\n set(newValue) {attributeBooleanTicker.set(this, \"disabled\", newValue)}\n\n var form : String\n get() = attributeStringString.get(this, \"form\")\n set(newValue) {attributeStringString.set(this, \"form\", newValue)}\n\n var name : String\n get() = attributeStringString.get(this, \"name\")\n set(newValue) {attributeStringString.set(this, \"name\", newValue)}\n\n\n}\n/**\n * Fieldset legend\n */\n@HtmlTagMarker\ninline fun FIELDSET.legend(classes : String? = null, crossinline block : LEGEND.() -> Unit = {}) : Unit = LEGEND(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n\n@Suppress(\"unused\")\nopen class FIGCAPTION(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"figcaption\", consumer, initialAttributes, null, false, false), HtmlBlockTag {\n\n}\n\n@Suppress(\"unused\")\nopen class FIGURE(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"figure\", consumer, initialAttributes, null, false, false), HtmlBlockTag {\n\n}\n/**\n * Fieldset legend\n */\n@HtmlTagMarker\ninline fun FIGURE.legend(classes : String? = null, crossinline block : LEGEND.() -> Unit = {}) : Unit = LEGEND(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Caption for \n */\n@HtmlTagMarker\ninline fun FIGURE.figcaption(classes : String? = null, crossinline block : FIGCAPTION.() -> Unit = {}) : Unit = FIGCAPTION(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n\n@Suppress(\"unused\")\nopen class FOOTER(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"footer\", consumer, initialAttributes, null, false, false), HtmlBlockTag {\n\n}\n\n@Suppress(\"unused\")\nopen class FORM(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"form\", consumer, initialAttributes, null, false, false), HtmlBlockTag {\n var acceptCharset : String\n get() = attributeStringString.get(this, \"accept-charset\")\n set(newValue) {attributeStringString.set(this, \"accept-charset\", newValue)}\n\n var action : String\n get() = attributeStringString.get(this, \"action\")\n set(newValue) {attributeStringString.set(this, \"action\", newValue)}\n\n var autoComplete : Boolean\n get() = attributeBooleanBooleanOnOff.get(this, \"autocomplete\")\n set(newValue) {attributeBooleanBooleanOnOff.set(this, \"autocomplete\", newValue)}\n\n var encType : FormEncType\n get() = attributeFormEncTypeEnumFormEncTypeValues.get(this, \"enctype\")\n set(newValue) {attributeFormEncTypeEnumFormEncTypeValues.set(this, \"enctype\", newValue)}\n\n var method : FormMethod\n get() = attributeFormMethodEnumFormMethodValues.get(this, \"method\")\n set(newValue) {attributeFormMethodEnumFormMethodValues.set(this, \"method\", newValue)}\n\n var name : String\n get() = attributeStringString.get(this, \"name\")\n set(newValue) {attributeStringString.set(this, \"name\", newValue)}\n\n var novalidate : Boolean\n get() = attributeBooleanTicker.get(this, \"novalidate\")\n set(newValue) {attributeBooleanTicker.set(this, \"novalidate\", newValue)}\n\n var target : String\n get() = attributeStringString.get(this, \"target\")\n set(newValue) {attributeStringString.set(this, \"target\", newValue)}\n\n\n}\n\n","package kotlinx.html\n\nimport kotlinx.html.*\nimport kotlinx.html.impl.*\nimport kotlinx.html.attributes.*\n\n/*******************************************************************************\n DO NOT EDIT\n This file was generated by module generate\n*******************************************************************************/\n\ninterface FlowOrMetaDataOrPhrasingContent : Tag {\n}\n\ninterface FlowOrHeadingContent : Tag {\n}\n\ninterface FlowOrMetaDataContent : FlowOrMetaDataOrPhrasingContent, Tag {\n}\n\ninterface FlowOrInteractiveContent : FlowOrInteractiveOrPhrasingContent, Tag {\n}\n\ninterface FlowOrPhrasingContent : FlowOrInteractiveOrPhrasingContent, FlowOrMetaDataOrPhrasingContent, Tag {\n}\n\ninterface SectioningOrFlowContent : Tag {\n}\n\ninterface FlowOrInteractiveOrPhrasingContent : Tag {\n}\n\n\n\n@HtmlTagMarker\ninline fun FlowOrMetaDataOrPhrasingContent.command(type : CommandType? = null, classes : String? = null, crossinline block : COMMAND.() -> Unit = {}) : Unit = COMMAND(attributesMapOf(\"type\", type?.enumEncode(),\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowOrMetaDataOrPhrasingContent.commandCommand(classes : String? = null, crossinline block : COMMAND.() -> Unit = {}) : Unit = COMMAND(attributesMapOf(\"type\", CommandType.command.realValue,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowOrMetaDataOrPhrasingContent.checkBoxCommand(classes : String? = null, crossinline block : COMMAND.() -> Unit = {}) : Unit = COMMAND(attributesMapOf(\"type\", CommandType.checkBox.realValue,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowOrMetaDataOrPhrasingContent.radioCommand(classes : String? = null, crossinline block : COMMAND.() -> Unit = {}) : Unit = COMMAND(attributesMapOf(\"type\", CommandType.radio.realValue,\"class\", classes), consumer).visit(block)\n\n/**\n * A media-independent link\n */\n@HtmlTagMarker\ninline fun FlowOrMetaDataOrPhrasingContent.link(href : String? = null, rel : String? = null, type : String? = null, crossinline block : LINK.() -> Unit = {}) : Unit = LINK(attributesMapOf(\"href\", href,\"rel\", rel,\"type\", type), consumer).visit(block)\n\n/**\n * Generic metainformation\n */\n@HtmlTagMarker\ninline fun FlowOrMetaDataOrPhrasingContent.meta(name : String? = null, content : String? = null, charset : String? = null, crossinline block : META.() -> Unit = {}) : Unit = META(attributesMapOf(\"name\", name,\"content\", content,\"charset\", charset), consumer).visit(block)\n\n/**\n * Generic metainformation\n */\n@HtmlTagMarker\ninline fun FlowOrMetaDataOrPhrasingContent.noScript(classes : String? = null, crossinline block : NOSCRIPT.() -> Unit = {}) : Unit = NOSCRIPT(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Script statements\n */\n@HtmlTagMarker\ninline fun FlowOrMetaDataOrPhrasingContent.script(type : String? = null, src : String? = null, crossinline block : SCRIPT.() -> Unit = {}) : Unit = SCRIPT(attributesMapOf(\"type\", type,\"src\", src), consumer).visit(block)\n@Deprecated(\"This tag doesn't support content or requires unsafe (try unsafe {})\")\n@Suppress(\"DEPRECATION\")\n/**\n * Script statements\n */\n@HtmlTagMarker\nfun FlowOrMetaDataOrPhrasingContent.script(type : String? = null, src : String? = null, content : String = \"\") : Unit = SCRIPT(attributesMapOf(\"type\", type,\"src\", src), consumer).visit({+content})\n\n\n/**\n * Heading\n */\n@HtmlTagMarker\ninline fun FlowOrHeadingContent.h1(classes : String? = null, crossinline block : H1.() -> Unit = {}) : Unit = H1(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Heading\n */\n@HtmlTagMarker\ninline fun FlowOrHeadingContent.h2(classes : String? = null, crossinline block : H2.() -> Unit = {}) : Unit = H2(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Heading\n */\n@HtmlTagMarker\ninline fun FlowOrHeadingContent.h3(classes : String? = null, crossinline block : H3.() -> Unit = {}) : Unit = H3(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Heading\n */\n@HtmlTagMarker\ninline fun FlowOrHeadingContent.h4(classes : String? = null, crossinline block : H4.() -> Unit = {}) : Unit = H4(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Heading\n */\n@HtmlTagMarker\ninline fun FlowOrHeadingContent.h5(classes : String? = null, crossinline block : H5.() -> Unit = {}) : Unit = H5(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Heading\n */\n@HtmlTagMarker\ninline fun FlowOrHeadingContent.h6(classes : String? = null, crossinline block : H6.() -> Unit = {}) : Unit = H6(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n@HtmlTagMarker\ninline fun FlowOrHeadingContent.hGroup(classes : String? = null, crossinline block : HGROUP.() -> Unit = {}) : Unit = HGROUP(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n\n/**\n * Style info\n */\n@HtmlTagMarker\ninline fun FlowOrMetaDataContent.style(type : String? = null, crossinline block : STYLE.() -> Unit = {}) : Unit = STYLE(attributesMapOf(\"type\", type), consumer).visit(block)\n@Deprecated(\"This tag doesn't support content or requires unsafe (try unsafe {})\")\n@Suppress(\"DEPRECATION\")\n/**\n * Style info\n */\n@HtmlTagMarker\nfun FlowOrMetaDataContent.style(type : String? = null, content : String = \"\") : Unit = STYLE(attributesMapOf(\"type\", type), consumer).visit({+content})\n\n\n/**\n * Disclosure control for hiding details\n */\n@HtmlTagMarker\ninline fun FlowOrInteractiveContent.details(classes : String? = null, crossinline block : DETAILS.() -> Unit = {}) : Unit = DETAILS(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n\n/**\n * Abbreviated form (e.g., WWW, HTTP,etc.)\n */\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.abbr(classes : String? = null, crossinline block : ABBR.() -> Unit = {}) : Unit = ABBR(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Client-side image map area\n */\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.area(shape : AreaShape? = null, alt : String? = null, classes : String? = null, crossinline block : AREA.() -> Unit = {}) : Unit = AREA(attributesMapOf(\"Shape\", shape?.enumEncode(),\"alt\", alt,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.rectArea(alt : String? = null, classes : String? = null, crossinline block : AREA.() -> Unit = {}) : Unit = AREA(attributesMapOf(\"Shape\", AreaShape.rect.realValue,\"alt\", alt,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.circleArea(alt : String? = null, classes : String? = null, crossinline block : AREA.() -> Unit = {}) : Unit = AREA(attributesMapOf(\"Shape\", AreaShape.circle.realValue,\"alt\", alt,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.polyArea(alt : String? = null, classes : String? = null, crossinline block : AREA.() -> Unit = {}) : Unit = AREA(attributesMapOf(\"Shape\", AreaShape.poly.realValue,\"alt\", alt,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.defaultArea(alt : String? = null, classes : String? = null, crossinline block : AREA.() -> Unit = {}) : Unit = AREA(attributesMapOf(\"Shape\", AreaShape.default.realValue,\"alt\", alt,\"class\", classes), consumer).visit(block)\n\n/**\n * Bold text style\n */\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.b(classes : String? = null, crossinline block : B.() -> Unit = {}) : Unit = B(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Text directionality isolation\n */\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.bdi(classes : String? = null, crossinline block : BDI.() -> Unit = {}) : Unit = BDI(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * I18N BiDi over-ride\n */\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.bdo(classes : String? = null, crossinline block : BDO.() -> Unit = {}) : Unit = BDO(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Forced line break\n */\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.br(classes : String? = null, crossinline block : BR.() -> Unit = {}) : Unit = BR(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Scriptable bitmap canvas\n */\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.canvas(classes : String? = null, crossinline block : CANVAS.() -> Unit = {}) : Unit = CANVAS(attributesMapOf(\"class\", classes), consumer).visit(block)\n/**\n * Scriptable bitmap canvas\n */\n@HtmlTagMarker\nfun FlowOrPhrasingContent.canvas(classes : String? = null, content : String = \"\") : Unit = CANVAS(attributesMapOf(\"class\", classes), consumer).visit({+content})\n\n/**\n * Citation\n */\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.cite(classes : String? = null, crossinline block : CITE.() -> Unit = {}) : Unit = CITE(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Computer code fragment\n */\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.code(classes : String? = null, crossinline block : CODE.() -> Unit = {}) : Unit = CODE(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Container for options for \n */\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.dataList(classes : String? = null, crossinline block : DATALIST.() -> Unit = {}) : Unit = DATALIST(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Deleted text\n */\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.del(classes : String? = null, crossinline block : DEL.() -> Unit = {}) : Unit = DEL(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Instance definition\n */\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.dfn(classes : String? = null, crossinline block : DFN.() -> Unit = {}) : Unit = DFN(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Emphasis\n */\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.em(classes : String? = null, crossinline block : EM.() -> Unit = {}) : Unit = EM(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Italic text style\n */\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.i(classes : String? = null, crossinline block : I.() -> Unit = {}) : Unit = I(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Inserted text\n */\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.ins(classes : String? = null, crossinline block : INS.() -> Unit = {}) : Unit = INS(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Text to be entered by the user\n */\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.kbd(classes : String? = null, crossinline block : KBD.() -> Unit = {}) : Unit = KBD(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Client-side image map\n */\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.map(name : String? = null, classes : String? = null, crossinline block : MAP.() -> Unit = {}) : Unit = MAP(attributesMapOf(\"name\", name,\"class\", classes), consumer).visit(block)\n\n/**\n * Highlight\n */\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.mark(classes : String? = null, crossinline block : MARK.() -> Unit = {}) : Unit = MARK(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.math(classes : String? = null, crossinline block : MATH.() -> Unit = {}) : Unit = MATH(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Gauge\n */\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.meter(classes : String? = null, crossinline block : METER.() -> Unit = {}) : Unit = METER(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Calculated output value\n */\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.output(classes : String? = null, crossinline block : OUTPUT.() -> Unit = {}) : Unit = OUTPUT(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Progress bar\n */\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.progress(classes : String? = null, crossinline block : PROGRESS.() -> Unit = {}) : Unit = PROGRESS(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Short inline quotation\n */\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.q(classes : String? = null, crossinline block : Q.() -> Unit = {}) : Unit = Q(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Ruby annotation(s)\n */\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.ruby(classes : String? = null, crossinline block : RUBY.() -> Unit = {}) : Unit = RUBY(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Strike-through text style\n */\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.samp(classes : String? = null, crossinline block : SAMP.() -> Unit = {}) : Unit = SAMP(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Small text style\n */\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.small(classes : String? = null, crossinline block : SMALL.() -> Unit = {}) : Unit = SMALL(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Generic language/style container\n */\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.span(classes : String? = null, crossinline block : SPAN.() -> Unit = {}) : Unit = SPAN(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Strong emphasis\n */\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.strong(classes : String? = null, crossinline block : STRONG.() -> Unit = {}) : Unit = STRONG(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Subscript\n */\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.sub(classes : String? = null, crossinline block : SUB.() -> Unit = {}) : Unit = SUB(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Superscript\n */\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.sup(classes : String? = null, crossinline block : SUP.() -> Unit = {}) : Unit = SUP(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.svg(classes : String? = null, crossinline block : SVG.() -> Unit = {}) : Unit = SVG(attributesMapOf(\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\nfun FlowOrPhrasingContent.svg(classes : String? = null, content : String = \"\") : Unit = SVG(attributesMapOf(\"class\", classes), consumer).visit({+content})\n\n/**\n * Machine-readable equivalent of date- or time-related data\n */\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.time(classes : String? = null, crossinline block : TIME.() -> Unit = {}) : Unit = TIME(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Unordered list\n */\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.htmlVar(classes : String? = null, crossinline block : VAR.() -> Unit = {}) : Unit = VAR(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n\n/**\n * Self-contained syndicatable or reusable composition\n */\n@HtmlTagMarker\ninline fun SectioningOrFlowContent.article(classes : String? = null, crossinline block : ARTICLE.() -> Unit = {}) : Unit = ARTICLE(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Sidebar for tangentially related content\n */\n@HtmlTagMarker\ninline fun SectioningOrFlowContent.aside(classes : String? = null, crossinline block : ASIDE.() -> Unit = {}) : Unit = ASIDE(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Container for the dominant contents of another element\n */\n@HtmlTagMarker\ninline fun SectioningOrFlowContent.main(classes : String? = null, crossinline block : MAIN.() -> Unit = {}) : Unit = MAIN(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Section with navigational links\n */\n@HtmlTagMarker\ninline fun SectioningOrFlowContent.nav(classes : String? = null, crossinline block : NAV.() -> Unit = {}) : Unit = NAV(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Generic document or application section\n */\n@HtmlTagMarker\ninline fun SectioningOrFlowContent.section(classes : String? = null, crossinline block : SECTION.() -> Unit = {}) : Unit = SECTION(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n\n/**\n * Anchor\n */\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.a(href : String? = null, target : String? = null, classes : String? = null, crossinline block : A.() -> Unit = {}) : Unit = A(attributesMapOf(\"href\", href,\"target\", target,\"class\", classes), consumer).visit(block)\n\n/**\n * Audio player\n */\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.audio(classes : String? = null, crossinline block : AUDIO.() -> Unit = {}) : Unit = AUDIO(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Push button\n */\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.button(formEncType : ButtonFormEncType? = null, formMethod : ButtonFormMethod? = null, name : String? = null, type : ButtonType? = null, classes : String? = null, crossinline block : BUTTON.() -> Unit = {}) : Unit = BUTTON(attributesMapOf(\"formenctype\", formEncType?.enumEncode(),\"formmethod\", formMethod?.enumEncode(),\"name\", name,\"type\", type?.enumEncode(),\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.getButton(formEncType : ButtonFormEncType? = null, name : String? = null, type : ButtonType? = null, classes : String? = null, crossinline block : BUTTON.() -> Unit = {}) : Unit = BUTTON(attributesMapOf(\"formenctype\", formEncType?.enumEncode(),\"formmethod\", ButtonFormMethod.get.realValue,\"name\", name,\"type\", type?.enumEncode(),\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.postButton(formEncType : ButtonFormEncType? = null, name : String? = null, type : ButtonType? = null, classes : String? = null, crossinline block : BUTTON.() -> Unit = {}) : Unit = BUTTON(attributesMapOf(\"formenctype\", formEncType?.enumEncode(),\"formmethod\", ButtonFormMethod.post.realValue,\"name\", name,\"type\", type?.enumEncode(),\"class\", classes), consumer).visit(block)\n@Suppress(\"DEPRECATION\")\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.putButton(formEncType : ButtonFormEncType? = null, name : String? = null, type : ButtonType? = null, classes : String? = null, crossinline block : BUTTON.() -> Unit = {}) : Unit = BUTTON(attributesMapOf(\"formenctype\", formEncType?.enumEncode(),\"formmethod\", ButtonFormMethod.put.realValue,\"name\", name,\"type\", type?.enumEncode(),\"class\", classes), consumer).visit(block)\n@Suppress(\"DEPRECATION\")\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.deleteButton(formEncType : ButtonFormEncType? = null, name : String? = null, type : ButtonType? = null, classes : String? = null, crossinline block : BUTTON.() -> Unit = {}) : Unit = BUTTON(attributesMapOf(\"formenctype\", formEncType?.enumEncode(),\"formmethod\", ButtonFormMethod.delete.realValue,\"name\", name,\"type\", type?.enumEncode(),\"class\", classes), consumer).visit(block)\n@Suppress(\"DEPRECATION\")\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.patchButton(formEncType : ButtonFormEncType? = null, name : String? = null, type : ButtonType? = null, classes : String? = null, crossinline block : BUTTON.() -> Unit = {}) : Unit = BUTTON(attributesMapOf(\"formenctype\", formEncType?.enumEncode(),\"formmethod\", ButtonFormMethod.patch.realValue,\"name\", name,\"type\", type?.enumEncode(),\"class\", classes), consumer).visit(block)\n\n/**\n * Plugin\n */\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.embed(classes : String? = null, crossinline block : EMBED.() -> Unit = {}) : Unit = EMBED(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Inline subwindow\n */\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.iframe(sandbox : IframeSandbox? = null, classes : String? = null, crossinline block : IFRAME.() -> Unit = {}) : Unit = IFRAME(attributesMapOf(\"sandbox\", sandbox?.enumEncode(),\"class\", classes), consumer).visit(block)\n/**\n * Inline subwindow\n */\n@HtmlTagMarker\nfun FlowOrInteractiveOrPhrasingContent.iframe(sandbox : IframeSandbox? = null, classes : String? = null, content : String = \"\") : Unit = IFRAME(attributesMapOf(\"sandbox\", sandbox?.enumEncode(),\"class\", classes), consumer).visit({+content})\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.allowSameOriginIframe(classes : String? = null, crossinline block : IFRAME.() -> Unit = {}) : Unit = IFRAME(attributesMapOf(\"sandbox\", IframeSandbox.allowSameOrigin.realValue,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.allowFormSIframe(classes : String? = null, crossinline block : IFRAME.() -> Unit = {}) : Unit = IFRAME(attributesMapOf(\"sandbox\", IframeSandbox.allowFormS.realValue,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.allowScriptsIframe(classes : String? = null, crossinline block : IFRAME.() -> Unit = {}) : Unit = IFRAME(attributesMapOf(\"sandbox\", IframeSandbox.allowScripts.realValue,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\nfun FlowOrInteractiveOrPhrasingContent.allowSameOriginIframe(classes : String? = null, content : String = \"\") : Unit = IFRAME(attributesMapOf(\"sandbox\", IframeSandbox.allowSameOrigin.realValue,\"class\", classes), consumer).visit({+content})\n@HtmlTagMarker\nfun FlowOrInteractiveOrPhrasingContent.allowFormSIframe(classes : String? = null, content : String = \"\") : Unit = IFRAME(attributesMapOf(\"sandbox\", IframeSandbox.allowFormS.realValue,\"class\", classes), consumer).visit({+content})\n@HtmlTagMarker\nfun FlowOrInteractiveOrPhrasingContent.allowScriptsIframe(classes : String? = null, content : String = \"\") : Unit = IFRAME(attributesMapOf(\"sandbox\", IframeSandbox.allowScripts.realValue,\"class\", classes), consumer).visit({+content})\n\n/**\n * Embedded image\n */\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.img(alt : String? = null, src : String? = null, classes : String? = null, crossinline block : IMG.() -> Unit = {}) : Unit = IMG(attributesMapOf(\"alt\", alt,\"src\", src,\"class\", classes), consumer).visit(block)\n\n/**\n * Pictures container\n */\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.picture(crossinline block : PICTURE.() -> Unit = {}) : Unit = PICTURE(emptyMap, consumer).visit(block)\n\n/**\n * Form control\n */\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.input(type : InputType? = null, formEncType : InputFormEncType? = null, formMethod : InputFormMethod? = null, name : String? = null, classes : String? = null, crossinline block : INPUT.() -> Unit = {}) : Unit = INPUT(attributesMapOf(\"type\", type?.enumEncode(),\"formenctype\", formEncType?.enumEncode(),\"formmethod\", formMethod?.enumEncode(),\"name\", name,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.buttonInput(formEncType : InputFormEncType? = null, formMethod : InputFormMethod? = null, name : String? = null, classes : String? = null, crossinline block : INPUT.() -> Unit = {}) : Unit = INPUT(attributesMapOf(\"type\", InputType.button.realValue,\"formenctype\", formEncType?.enumEncode(),\"formmethod\", formMethod?.enumEncode(),\"name\", name,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.checkBoxInput(formEncType : InputFormEncType? = null, formMethod : InputFormMethod? = null, name : String? = null, classes : String? = null, crossinline block : INPUT.() -> Unit = {}) : Unit = INPUT(attributesMapOf(\"type\", InputType.checkBox.realValue,\"formenctype\", formEncType?.enumEncode(),\"formmethod\", formMethod?.enumEncode(),\"name\", name,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.colorInput(formEncType : InputFormEncType? = null, formMethod : InputFormMethod? = null, name : String? = null, classes : String? = null, crossinline block : INPUT.() -> Unit = {}) : Unit = INPUT(attributesMapOf(\"type\", InputType.color.realValue,\"formenctype\", formEncType?.enumEncode(),\"formmethod\", formMethod?.enumEncode(),\"name\", name,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.dateInput(formEncType : InputFormEncType? = null, formMethod : InputFormMethod? = null, name : String? = null, classes : String? = null, crossinline block : INPUT.() -> Unit = {}) : Unit = INPUT(attributesMapOf(\"type\", InputType.date.realValue,\"formenctype\", formEncType?.enumEncode(),\"formmethod\", formMethod?.enumEncode(),\"name\", name,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.dateTimeInput(formEncType : InputFormEncType? = null, formMethod : InputFormMethod? = null, name : String? = null, classes : String? = null, crossinline block : INPUT.() -> Unit = {}) : Unit = INPUT(attributesMapOf(\"type\", InputType.dateTime.realValue,\"formenctype\", formEncType?.enumEncode(),\"formmethod\", formMethod?.enumEncode(),\"name\", name,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.dateTimeLocalInput(formEncType : InputFormEncType? = null, formMethod : InputFormMethod? = null, name : String? = null, classes : String? = null, crossinline block : INPUT.() -> Unit = {}) : Unit = INPUT(attributesMapOf(\"type\", InputType.dateTimeLocal.realValue,\"formenctype\", formEncType?.enumEncode(),\"formmethod\", formMethod?.enumEncode(),\"name\", name,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.emailInput(formEncType : InputFormEncType? = null, formMethod : InputFormMethod? = null, name : String? = null, classes : String? = null, crossinline block : INPUT.() -> Unit = {}) : Unit = INPUT(attributesMapOf(\"type\", InputType.email.realValue,\"formenctype\", formEncType?.enumEncode(),\"formmethod\", formMethod?.enumEncode(),\"name\", name,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.fileInput(formEncType : InputFormEncType? = null, formMethod : InputFormMethod? = null, name : String? = null, classes : String? = null, crossinline block : INPUT.() -> Unit = {}) : Unit = INPUT(attributesMapOf(\"type\", InputType.file.realValue,\"formenctype\", formEncType?.enumEncode(),\"formmethod\", formMethod?.enumEncode(),\"name\", name,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.hiddenInput(formEncType : InputFormEncType? = null, formMethod : InputFormMethod? = null, name : String? = null, classes : String? = null, crossinline block : INPUT.() -> Unit = {}) : Unit = INPUT(attributesMapOf(\"type\", InputType.hidden.realValue,\"formenctype\", formEncType?.enumEncode(),\"formmethod\", formMethod?.enumEncode(),\"name\", name,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.imageInput(formEncType : InputFormEncType? = null, formMethod : InputFormMethod? = null, name : String? = null, classes : String? = null, crossinline block : INPUT.() -> Unit = {}) : Unit = INPUT(attributesMapOf(\"type\", InputType.image.realValue,\"formenctype\", formEncType?.enumEncode(),\"formmethod\", formMethod?.enumEncode(),\"name\", name,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.monthInput(formEncType : InputFormEncType? = null, formMethod : InputFormMethod? = null, name : String? = null, classes : String? = null, crossinline block : INPUT.() -> Unit = {}) : Unit = INPUT(attributesMapOf(\"type\", InputType.month.realValue,\"formenctype\", formEncType?.enumEncode(),\"formmethod\", formMethod?.enumEncode(),\"name\", name,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.numberInput(formEncType : InputFormEncType? = null, formMethod : InputFormMethod? = null, name : String? = null, classes : String? = null, crossinline block : INPUT.() -> Unit = {}) : Unit = INPUT(attributesMapOf(\"type\", InputType.number.realValue,\"formenctype\", formEncType?.enumEncode(),\"formmethod\", formMethod?.enumEncode(),\"name\", name,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.passwordInput(formEncType : InputFormEncType? = null, formMethod : InputFormMethod? = null, name : String? = null, classes : String? = null, crossinline block : INPUT.() -> Unit = {}) : Unit = INPUT(attributesMapOf(\"type\", InputType.password.realValue,\"formenctype\", formEncType?.enumEncode(),\"formmethod\", formMethod?.enumEncode(),\"name\", name,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.radioInput(formEncType : InputFormEncType? = null, formMethod : InputFormMethod? = null, name : String? = null, classes : String? = null, crossinline block : INPUT.() -> Unit = {}) : Unit = INPUT(attributesMapOf(\"type\", InputType.radio.realValue,\"formenctype\", formEncType?.enumEncode(),\"formmethod\", formMethod?.enumEncode(),\"name\", name,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.rangeInput(formEncType : InputFormEncType? = null, formMethod : InputFormMethod? = null, name : String? = null, classes : String? = null, crossinline block : INPUT.() -> Unit = {}) : Unit = INPUT(attributesMapOf(\"type\", InputType.range.realValue,\"formenctype\", formEncType?.enumEncode(),\"formmethod\", formMethod?.enumEncode(),\"name\", name,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.resetInput(formEncType : InputFormEncType? = null, formMethod : InputFormMethod? = null, name : String? = null, classes : String? = null, crossinline block : INPUT.() -> Unit = {}) : Unit = INPUT(attributesMapOf(\"type\", InputType.reset.realValue,\"formenctype\", formEncType?.enumEncode(),\"formmethod\", formMethod?.enumEncode(),\"name\", name,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.searchInput(formEncType : InputFormEncType? = null, formMethod : InputFormMethod? = null, name : String? = null, classes : String? = null, crossinline block : INPUT.() -> Unit = {}) : Unit = INPUT(attributesMapOf(\"type\", InputType.search.realValue,\"formenctype\", formEncType?.enumEncode(),\"formmethod\", formMethod?.enumEncode(),\"name\", name,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.submitInput(formEncType : InputFormEncType? = null, formMethod : InputFormMethod? = null, name : String? = null, classes : String? = null, crossinline block : INPUT.() -> Unit = {}) : Unit = INPUT(attributesMapOf(\"type\", InputType.submit.realValue,\"formenctype\", formEncType?.enumEncode(),\"formmethod\", formMethod?.enumEncode(),\"name\", name,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.textInput(formEncType : InputFormEncType? = null, formMethod : InputFormMethod? = null, name : String? = null, classes : String? = null, crossinline block : INPUT.() -> Unit = {}) : Unit = INPUT(attributesMapOf(\"type\", InputType.text.realValue,\"formenctype\", formEncType?.enumEncode(),\"formmethod\", formMethod?.enumEncode(),\"name\", name,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.telInput(formEncType : InputFormEncType? = null, formMethod : InputFormMethod? = null, name : String? = null, classes : String? = null, crossinline block : INPUT.() -> Unit = {}) : Unit = INPUT(attributesMapOf(\"type\", InputType.tel.realValue,\"formenctype\", formEncType?.enumEncode(),\"formmethod\", formMethod?.enumEncode(),\"name\", name,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.timeInput(formEncType : InputFormEncType? = null, formMethod : InputFormMethod? = null, name : String? = null, classes : String? = null, crossinline block : INPUT.() -> Unit = {}) : Unit = INPUT(attributesMapOf(\"type\", InputType.time.realValue,\"formenctype\", formEncType?.enumEncode(),\"formmethod\", formMethod?.enumEncode(),\"name\", name,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.urlInput(formEncType : InputFormEncType? = null, formMethod : InputFormMethod? = null, name : String? = null, classes : String? = null, crossinline block : INPUT.() -> Unit = {}) : Unit = INPUT(attributesMapOf(\"type\", InputType.url.realValue,\"formenctype\", formEncType?.enumEncode(),\"formmethod\", formMethod?.enumEncode(),\"name\", name,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.weekInput(formEncType : InputFormEncType? = null, formMethod : InputFormMethod? = null, name : String? = null, classes : String? = null, crossinline block : INPUT.() -> Unit = {}) : Unit = INPUT(attributesMapOf(\"type\", InputType.week.realValue,\"formenctype\", formEncType?.enumEncode(),\"formmethod\", formMethod?.enumEncode(),\"name\", name,\"class\", classes), consumer).visit(block)\n\n/**\n * Cryptographic key-pair generator form control\n */\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.keyGen(keyType : KeyGenKeyType? = null, classes : String? = null, crossinline block : KEYGEN.() -> Unit = {}) : Unit = KEYGEN(attributesMapOf(\"keytype\", keyType?.enumEncode(),\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.rsaKeyGen(classes : String? = null, crossinline block : KEYGEN.() -> Unit = {}) : Unit = KEYGEN(attributesMapOf(\"keytype\", KeyGenKeyType.rsa.realValue,\"class\", classes), consumer).visit(block)\n\n/**\n * Form field label text\n */\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.label(classes : String? = null, crossinline block : LABEL.() -> Unit = {}) : Unit = LABEL(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Generic embedded object\n */\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.htmlObject(classes : String? = null, crossinline block : OBJECT.() -> Unit = {}) : Unit = OBJECT(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Option selector\n */\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.select(classes : String? = null, crossinline block : SELECT.() -> Unit = {}) : Unit = SELECT(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Multi-line text field\n */\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.textArea(rows : String? = null, cols : String? = null, wrap : TextAreaWrap? = null, classes : String? = null, crossinline block : TEXTAREA.() -> Unit = {}) : Unit = TEXTAREA(attributesMapOf(\"rows\", rows,\"cols\", cols,\"wrap\", wrap?.enumEncode(),\"class\", classes), consumer).visit(block)\n/**\n * Multi-line text field\n */\n@HtmlTagMarker\nfun FlowOrInteractiveOrPhrasingContent.textArea(rows : String? = null, cols : String? = null, wrap : TextAreaWrap? = null, classes : String? = null, content : String = \"\") : Unit = TEXTAREA(attributesMapOf(\"rows\", rows,\"cols\", cols,\"wrap\", wrap?.enumEncode(),\"class\", classes), consumer).visit({+content})\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.hardTextArea(rows : String? = null, cols : String? = null, classes : String? = null, crossinline block : TEXTAREA.() -> Unit = {}) : Unit = TEXTAREA(attributesMapOf(\"rows\", rows,\"cols\", cols,\"wrap\", TextAreaWrap.hard.realValue,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.softTextArea(rows : String? = null, cols : String? = null, classes : String? = null, crossinline block : TEXTAREA.() -> Unit = {}) : Unit = TEXTAREA(attributesMapOf(\"rows\", rows,\"cols\", cols,\"wrap\", TextAreaWrap.soft.realValue,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\nfun FlowOrInteractiveOrPhrasingContent.hardTextArea(rows : String? = null, cols : String? = null, classes : String? = null, content : String = \"\") : Unit = TEXTAREA(attributesMapOf(\"rows\", rows,\"cols\", cols,\"wrap\", TextAreaWrap.hard.realValue,\"class\", classes), consumer).visit({+content})\n@HtmlTagMarker\nfun FlowOrInteractiveOrPhrasingContent.softTextArea(rows : String? = null, cols : String? = null, classes : String? = null, content : String = \"\") : Unit = TEXTAREA(attributesMapOf(\"rows\", rows,\"cols\", cols,\"wrap\", TextAreaWrap.soft.realValue,\"class\", classes), consumer).visit({+content})\n\n/**\n * Video player\n */\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.video(classes : String? = null, crossinline block : VIDEO.() -> Unit = {}) : Unit = VIDEO(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n\n","package kotlinx.html.consumers\n\nimport kotlinx.html.*\nimport org.w3c.dom.events.*\n\nclass DelayedConsumer(val downstream: TagConsumer) : TagConsumer {\n private var delayed: Tag? = null\n\n override fun onTagStart(tag: Tag) {\n processDelayedTag()\n delayed = tag\n }\n\n override fun onTagAttributeChange(tag: Tag, attribute: String, value: String?) {\n if (delayed == null || delayed != tag) {\n throw IllegalStateException(\"You can't change tag attribute because it was already passed to the downstream\")\n }\n }\n\n override fun onTagEvent(tag: Tag, event: String, value: (Event) -> Unit) {\n if (delayed == null || delayed != tag) {\n throw IllegalStateException(\"You can't change tag attribute because it was already passed to the downstream\")\n }\n }\n\n override fun onTagEnd(tag: Tag) {\n processDelayedTag()\n downstream.onTagEnd(tag)\n }\n\n override fun onTagContent(content: CharSequence) {\n processDelayedTag()\n downstream.onTagContent(content)\n }\n\n override fun onTagContentEntity(entity: Entities) {\n processDelayedTag()\n downstream.onTagContentEntity(entity)\n }\n\n override fun onTagError(tag: Tag, exception: Throwable) {\n processDelayedTag()\n downstream.onTagError(tag, exception)\n }\n\n override fun onTagComment(content: CharSequence) {\n processDelayedTag()\n downstream.onTagComment(content)\n }\n\n override fun finalize(): T {\n processDelayedTag()\n return downstream.finalize()\n }\n\n override fun onTagContentUnsafe(block: Unsafe.() -> Unit) {\n processDelayedTag()\n return downstream.onTagContentUnsafe(block)\n }\n\n private fun processDelayedTag() {\n delayed?.let { tag ->\n delayed = null\n downstream.onTagStart(tag)\n }\n }\n}\n\nfun TagConsumer.delayed(): TagConsumer = if (this is DelayedConsumer) this else DelayedConsumer(this)","package kotlinx.html.impl\n\nimport kotlinx.html.*\n\nclass DelegatingMap(\n initialValues: Map,\n private val tag: Tag,\n private val consumer: () -> TagConsumer<*>\n) : MutableMap {\n private var backing: Map = initialValues\n private var backingMutable = false\n\n override val size: Int\n get() = backing.size\n\n override fun isEmpty(): Boolean = backing.isEmpty()\n\n override fun containsKey(key: String): Boolean = backing.containsKey(key)\n override fun containsValue(value: String): Boolean = backing.containsValue(value)\n override fun get(key: String): String? = backing[key]\n\n override fun put(key: String, value: String): String? {\n val mutable = switchToMutable()\n\n val old = mutable.put(key, value)\n if (old != value) {\n consumer().onTagAttributeChange(tag, key, value)\n }\n\n return old\n }\n\n override fun remove(key: String): String? {\n val mutable = switchToMutable()\n\n return mutable.remove(key)?.let { removed ->\n consumer().onTagAttributeChange(tag, key, null)\n removed\n }\n }\n\n override fun putAll(from: Map) {\n if (from.isEmpty()) return\n\n val consumer = consumer()\n val mutable = switchToMutable()\n\n from.entries.forEach { e ->\n if (mutable.put(e.key, e.value) != e.value) {\n consumer.onTagAttributeChange(tag, e.key, e.value)\n }\n }\n }\n\n override fun clear() {\n backing.forEach { e -> consumer().onTagAttributeChange(tag, e.key, null) }\n backing = emptyMap()\n backingMutable = false\n }\n\n val immutableEntries: Collection>\n get() = backing.entries\n\n private fun switchToMutable(): MutableMap = if (backingMutable) {\n backing\n } else {\n backingMutable = true\n backing = LinkedHashMap(backing)\n backing\n } as MutableMap\n\n override val keys: MutableSet\n get() = switchToMutable().keys // TODO we need to handle changes too\n\n override val values: MutableCollection\n get() = switchToMutable().values // TODO we need to handle changes too\n\n override val entries: MutableSet>\n get() = switchToMutable().entries // TODO we need to handle changes too\n}\n","/*\n * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n@file:kotlin.jvm.JvmMultifileClass\n@file:kotlin.jvm.JvmName(\"MapsKt\")\n\npackage kotlin.collections\n\n//\n// NOTE: THIS FILE IS AUTO-GENERATED by the GenerateStandardLib.kt\n// See: https://github.com/JetBrains/kotlin/tree/master/libraries/stdlib\n//\n\nimport kotlin.random.*\nimport kotlin.ranges.contains\nimport kotlin.ranges.reversed\n\n/**\n * Returns a [List] containing all key-value pairs.\n */\npublic fun Map.toList(): List> {\n if (size == 0)\n return emptyList()\n val iterator = entries.iterator()\n if (!iterator.hasNext())\n return emptyList()\n val first = iterator.next()\n if (!iterator.hasNext())\n return listOf(first.toPair())\n val result = ArrayList>(size)\n result.add(first.toPair())\n do {\n result.add(iterator.next().toPair())\n } while (iterator.hasNext())\n return result\n}\n\n/**\n * Returns a single list of all elements yielded from results of [transform] function being invoked on each entry of original map.\n * \n * @sample samples.collections.Maps.Transformations.flatMap\n */\npublic inline fun Map.flatMap(transform: (Map.Entry) -> Iterable): List {\n return flatMapTo(ArrayList(), transform)\n}\n\n/**\n * Returns a single list of all elements yielded from results of [transform] function being invoked on each entry of original map.\n * \n * @sample samples.collections.Collections.Transformations.flatMap\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapSequence\")\npublic inline fun Map.flatMap(transform: (Map.Entry) -> Sequence): List {\n return flatMapTo(ArrayList(), transform)\n}\n\n/**\n * Appends all elements yielded from results of [transform] function being invoked on each entry of original map, to the given [destination].\n */\npublic inline fun > Map.flatMapTo(destination: C, transform: (Map.Entry) -> Iterable): C {\n for (element in this) {\n val list = transform(element)\n destination.addAll(list)\n }\n return destination\n}\n\n/**\n * Appends all elements yielded from results of [transform] function being invoked on each entry of original map, to the given [destination].\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapSequenceTo\")\npublic inline fun > Map.flatMapTo(destination: C, transform: (Map.Entry) -> Sequence): C {\n for (element in this) {\n val list = transform(element)\n destination.addAll(list)\n }\n return destination\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each entry in the original map.\n * \n * @sample samples.collections.Maps.Transformations.mapToList\n */\npublic inline fun Map.map(transform: (Map.Entry) -> R): List {\n return mapTo(ArrayList(size), transform)\n}\n\n/**\n * Returns a list containing only the non-null results of applying the given [transform] function\n * to each entry in the original map.\n * \n * @sample samples.collections.Maps.Transformations.mapNotNull\n */\npublic inline fun Map.mapNotNull(transform: (Map.Entry) -> R?): List {\n return mapNotNullTo(ArrayList(), transform)\n}\n\n/**\n * Applies the given [transform] function to each entry in the original map\n * and appends only the non-null results to the given [destination].\n */\npublic inline fun > Map.mapNotNullTo(destination: C, transform: (Map.Entry) -> R?): C {\n forEach { element -> transform(element)?.let { destination.add(it) } }\n return destination\n}\n\n/**\n * Applies the given [transform] function to each entry of the original map\n * and appends the results to the given [destination].\n */\npublic inline fun > Map.mapTo(destination: C, transform: (Map.Entry) -> R): C {\n for (item in this)\n destination.add(transform(item))\n return destination\n}\n\n/**\n * Returns `true` if all entries match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.all\n */\npublic inline fun Map.all(predicate: (Map.Entry) -> Boolean): Boolean {\n if (isEmpty()) return true\n for (element in this) if (!predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if map has at least one entry.\n * \n * @sample samples.collections.Collections.Aggregates.any\n */\npublic fun Map.any(): Boolean {\n return !isEmpty()\n}\n\n/**\n * Returns `true` if at least one entry matches the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.anyWithPredicate\n */\npublic inline fun Map.any(predicate: (Map.Entry) -> Boolean): Boolean {\n if (isEmpty()) return false\n for (element in this) if (predicate(element)) return true\n return false\n}\n\n/**\n * Returns the number of entries in this map.\n */\n@kotlin.internal.InlineOnly\npublic inline fun Map.count(): Int {\n return size\n}\n\n/**\n * Returns the number of entries matching the given [predicate].\n */\npublic inline fun Map.count(predicate: (Map.Entry) -> Boolean): Int {\n if (isEmpty()) return 0\n var count = 0\n for (element in this) if (predicate(element)) ++count\n return count\n}\n\n/**\n * Performs the given [action] on each entry.\n */\n@kotlin.internal.HidesMembers\npublic inline fun Map.forEach(action: (Map.Entry) -> Unit): Unit {\n for (element in this) action(element)\n}\n\n@Deprecated(\"Use maxByOrNull instead.\", ReplaceWith(\"this.maxByOrNull(selector)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun > Map.maxBy(selector: (Map.Entry) -> R): Map.Entry? {\n return maxByOrNull(selector)\n}\n\n/**\n * Returns the first entry yielding the largest value of the given function or `null` if there are no entries.\n * \n * @sample samples.collections.Collections.Aggregates.maxByOrNull\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun > Map.maxByOrNull(selector: (Map.Entry) -> R): Map.Entry? {\n return entries.maxByOrNull(selector)\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each entry in the map.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the map is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Map.maxOf(selector: (Map.Entry) -> Double): Double {\n return entries.maxOf(selector)\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each entry in the map.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the map is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Map.maxOf(selector: (Map.Entry) -> Float): Float {\n return entries.maxOf(selector)\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each entry in the map.\n * \n * @throws NoSuchElementException if the map is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > Map.maxOf(selector: (Map.Entry) -> R): R {\n return entries.maxOf(selector)\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each entry in the map or `null` if there are no entries.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Map.maxOfOrNull(selector: (Map.Entry) -> Double): Double? {\n return entries.maxOfOrNull(selector)\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each entry in the map or `null` if there are no entries.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Map.maxOfOrNull(selector: (Map.Entry) -> Float): Float? {\n return entries.maxOfOrNull(selector)\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each entry in the map or `null` if there are no entries.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > Map.maxOfOrNull(selector: (Map.Entry) -> R): R? {\n return entries.maxOfOrNull(selector)\n}\n\n/**\n * Returns the largest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each entry in the map.\n * \n * @throws NoSuchElementException if the map is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Map.maxOfWith(comparator: Comparator, selector: (Map.Entry) -> R): R {\n return entries.maxOfWith(comparator, selector)\n}\n\n/**\n * Returns the largest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each entry in the map or `null` if there are no entries.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Map.maxOfWithOrNull(comparator: Comparator, selector: (Map.Entry) -> R): R? {\n return entries.maxOfWithOrNull(comparator, selector)\n}\n\n@Deprecated(\"Use maxWithOrNull instead.\", ReplaceWith(\"this.maxWithOrNull(comparator)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun Map.maxWith(comparator: Comparator>): Map.Entry? {\n return maxWithOrNull(comparator)\n}\n\n/**\n * Returns the first entry having the largest value according to the provided [comparator] or `null` if there are no entries.\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun Map.maxWithOrNull(comparator: Comparator>): Map.Entry? {\n return entries.maxWithOrNull(comparator)\n}\n\n@Deprecated(\"Use minByOrNull instead.\", ReplaceWith(\"this.minByOrNull(selector)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\npublic inline fun > Map.minBy(selector: (Map.Entry) -> R): Map.Entry? {\n return minByOrNull(selector)\n}\n\n/**\n * Returns the first entry yielding the smallest value of the given function or `null` if there are no entries.\n * \n * @sample samples.collections.Collections.Aggregates.minByOrNull\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun > Map.minByOrNull(selector: (Map.Entry) -> R): Map.Entry? {\n return entries.minByOrNull(selector)\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each entry in the map.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the map is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Map.minOf(selector: (Map.Entry) -> Double): Double {\n return entries.minOf(selector)\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each entry in the map.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the map is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Map.minOf(selector: (Map.Entry) -> Float): Float {\n return entries.minOf(selector)\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each entry in the map.\n * \n * @throws NoSuchElementException if the map is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > Map.minOf(selector: (Map.Entry) -> R): R {\n return entries.minOf(selector)\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each entry in the map or `null` if there are no entries.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Map.minOfOrNull(selector: (Map.Entry) -> Double): Double? {\n return entries.minOfOrNull(selector)\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each entry in the map or `null` if there are no entries.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Map.minOfOrNull(selector: (Map.Entry) -> Float): Float? {\n return entries.minOfOrNull(selector)\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each entry in the map or `null` if there are no entries.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > Map.minOfOrNull(selector: (Map.Entry) -> R): R? {\n return entries.minOfOrNull(selector)\n}\n\n/**\n * Returns the smallest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each entry in the map.\n * \n * @throws NoSuchElementException if the map is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Map.minOfWith(comparator: Comparator, selector: (Map.Entry) -> R): R {\n return entries.minOfWith(comparator, selector)\n}\n\n/**\n * Returns the smallest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each entry in the map or `null` if there are no entries.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Map.minOfWithOrNull(comparator: Comparator, selector: (Map.Entry) -> R): R? {\n return entries.minOfWithOrNull(comparator, selector)\n}\n\n@Deprecated(\"Use minWithOrNull instead.\", ReplaceWith(\"this.minWithOrNull(comparator)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\")\npublic fun Map.minWith(comparator: Comparator>): Map.Entry? {\n return minWithOrNull(comparator)\n}\n\n/**\n * Returns the first entry having the smallest value according to the provided [comparator] or `null` if there are no entries.\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun Map.minWithOrNull(comparator: Comparator>): Map.Entry? {\n return entries.minWithOrNull(comparator)\n}\n\n/**\n * Returns `true` if the map has no entries.\n * \n * @sample samples.collections.Collections.Aggregates.none\n */\npublic fun Map.none(): Boolean {\n return isEmpty()\n}\n\n/**\n * Returns `true` if no entries match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.noneWithPredicate\n */\npublic inline fun Map.none(predicate: (Map.Entry) -> Boolean): Boolean {\n if (isEmpty()) return true\n for (element in this) if (predicate(element)) return false\n return true\n}\n\n/**\n * Performs the given [action] on each entry and returns the map itself afterwards.\n */\n@SinceKotlin(\"1.1\")\npublic inline fun > M.onEach(action: (Map.Entry) -> Unit): M {\n return apply { for (element in this) action(element) }\n}\n\n/**\n * Performs the given [action] on each entry, providing sequential index with the entry,\n * and returns the map itself afterwards.\n * @param [action] function that takes the index of an entry and the entry itself\n * and performs the action on the entry.\n */\n@SinceKotlin(\"1.4\")\npublic inline fun > M.onEachIndexed(action: (index: Int, Map.Entry) -> Unit): M {\n return apply { entries.forEachIndexed(action) }\n}\n\n/**\n * Creates an [Iterable] instance that wraps the original map returning its entries when being iterated.\n */\n@kotlin.internal.InlineOnly\npublic inline fun Map.asIterable(): Iterable> {\n return entries\n}\n\n/**\n * Creates a [Sequence] instance that wraps the original map returning its entries when being iterated.\n */\npublic fun Map.asSequence(): Sequence> {\n return entries.asSequence()\n}\n\n","package kotlinx.html.consumers\n\nimport kotlinx.html.*\n\nprivate class DelegatingExceptionConsumer(\n val underlying: TagConsumer,\n val handler: TagConsumer.(Throwable) -> Unit\n) : TagConsumer by underlying {\n\n override fun onTagError(tag: Tag, exception: Throwable) = handler(underlying, exception)\n}\n\n/**\n * Allows simple exception handling. Any exceptions will forwarded to `handler` function.\n * For more control of error handling, implement `onTagError` in your subclass of `TagConsumer`\n */\nfun TagConsumer.catch(handler: TagConsumer.(Throwable) -> Unit): TagConsumer\n = DelegatingExceptionConsumer(this, handler)\n","package kotlinx.html.consumers\n\nimport kotlinx.html.*\nimport org.w3c.dom.events.*\n\nobject PredicateResults {\n val PASS = PredicateResult.PASS\n val SKIP = PredicateResult.SKIP\n val DROP = PredicateResult.DROP\n}\n\nenum class PredicateResult {\n PASS,\n SKIP,\n DROP\n}\n\nprivate class FilterTagConsumer(val downstream: TagConsumer, val predicate: (Tag) -> PredicateResult) :\n TagConsumer {\n private var currentLevel = 0\n private var skippedLevels = HashSet()\n private var dropLevel: Int? = null\n\n override fun onTagStart(tag: Tag) {\n currentLevel++\n\n if (dropLevel == null) {\n when (predicate(tag)) {\n PredicateResult.PASS -> downstream.onTagStart(tag)\n PredicateResult.SKIP -> skippedLevels.add(currentLevel)\n PredicateResult.DROP -> dropLevel = currentLevel\n }\n }\n }\n\n override fun onTagAttributeChange(tag: Tag, attribute: String, value: String?) {\n throw UnsupportedOperationException(\"this filter doesn't support attribute change\")\n }\n\n override fun onTagEvent(tag: Tag, event: String, value: (Event) -> Unit) {\n throw UnsupportedOperationException(\"this filter doesn't support attribute change\")\n }\n\n override fun onTagEnd(tag: Tag) {\n if (canPassCurrentLevel()) {\n downstream.onTagEnd(tag)\n }\n\n skippedLevels.remove(currentLevel)\n if (dropLevel == currentLevel) {\n dropLevel = null\n }\n\n currentLevel--\n }\n\n override fun onTagContent(content: CharSequence) {\n if (canPassCurrentLevel()) {\n downstream.onTagContent(content)\n }\n }\n\n override fun onTagContentEntity(entity: Entities) {\n if (canPassCurrentLevel()) {\n downstream.onTagContentEntity(entity)\n }\n }\n\n override fun onTagContentUnsafe(block: Unsafe.() -> Unit) {\n if (canPassCurrentLevel()) {\n downstream.onTagContentUnsafe(block)\n }\n }\n\n private fun canPassCurrentLevel() = dropLevel == null && currentLevel !in skippedLevels\n\n override fun onTagError(tag: Tag, exception: Throwable) {\n if (canPassCurrentLevel()) {\n downstream.onTagError(tag, exception)\n }\n }\n\n override fun onTagComment(content: CharSequence) {\n if (canPassCurrentLevel()) {\n downstream.onTagComment(content)\n }\n }\n\n override fun finalize(): T = downstream.finalize()\n}\n\nfun TagConsumer.filter(predicate: PredicateResults.(Tag) -> PredicateResult): TagConsumer =\n FilterTagConsumer(this) { PredicateResults.predicate(it) }.delayed()","package kotlinx.html.consumers\n\nimport kotlinx.html.*\nimport org.w3c.dom.events.*\n\nclass FinalizeConsumer(val downstream: TagConsumer, val block: (F, Boolean) -> T) : TagConsumer {\n private var level = 0\n\n override fun onTagStart(tag: Tag) {\n downstream.onTagStart(tag)\n level++\n }\n\n override fun onTagEnd(tag: Tag) {\n downstream.onTagEnd(tag)\n level--\n }\n\n override fun onTagAttributeChange(tag: Tag, attribute: String, value: String?) =\n downstream.onTagAttributeChange(tag, attribute, value)\n\n override fun onTagEvent(tag: Tag, event: String, value: (Event) -> Unit) = downstream.onTagEvent(tag, event, value)\n override fun onTagContent(content: CharSequence) = downstream.onTagContent(content)\n override fun onTagContentEntity(entity: Entities) = downstream.onTagContentEntity(entity)\n override fun onTagContentUnsafe(block: Unsafe.() -> Unit) = downstream.onTagContentUnsafe(block)\n override fun onTagError(tag: Tag, exception: Throwable) = downstream.onTagError(tag, exception)\n override fun onTagComment(content: CharSequence) = downstream.onTagComment(content)\n\n override fun finalize() = block(downstream.finalize(), level > 0)\n}\n\npublic fun TagConsumer.onFinalize(block: (from: T, partial: Boolean) -> Unit): TagConsumer =\n FinalizeConsumer(this) { to, partial -> block(to, partial); to }\n\npublic fun TagConsumer.onFinalizeMap(block: (from: F, partial: Boolean) -> T): TagConsumer =\n FinalizeConsumer(this, block)","package kotlinx.html\n\nimport kotlinx.html.*\nimport kotlinx.html.impl.*\n\n/*******************************************************************************\n DO NOT EDIT\n This file was generated by module generate\n*******************************************************************************/\n\ninterface CommonAttributeGroupFacade : Tag {\n}\nvar CommonAttributeGroupFacade.enableTheming : Boolean\n get() = attributeBooleanBoolean.get(this, \"EnableTheming\")\n set(newValue) {attributeBooleanBoolean.set(this, \"EnableTheming\", newValue)}\n\nvar CommonAttributeGroupFacade.enableViewState : Boolean\n get() = attributeBooleanBoolean.get(this, \"EnableViewState\")\n set(newValue) {attributeBooleanBoolean.set(this, \"EnableViewState\", newValue)}\n\nvar CommonAttributeGroupFacade.skinID : String\n get() = attributeStringString.get(this, \"SkinID\")\n set(newValue) {attributeStringString.set(this, \"SkinID\", newValue)}\n\nvar CommonAttributeGroupFacade.visible : Boolean\n get() = attributeBooleanBoolean.get(this, \"Visible\")\n set(newValue) {attributeBooleanBoolean.set(this, \"Visible\", newValue)}\n\nvar CommonAttributeGroupFacade.accessKey : String\n get() = attributeStringString.get(this, \"accesskey\")\n set(newValue) {attributeStringString.set(this, \"accesskey\", newValue)}\n\nvar CommonAttributeGroupFacade.classes : Set\n get() = attributeSetStringStringSet.get(this, \"class\")\n set(newValue) {attributeSetStringStringSet.set(this, \"class\", newValue)}\n\nvar CommonAttributeGroupFacade.contentEditable : Boolean\n get() = attributeBooleanBoolean.get(this, \"contenteditable\")\n set(newValue) {attributeBooleanBoolean.set(this, \"contenteditable\", newValue)}\n\nvar CommonAttributeGroupFacade.contextMenu : String\n get() = attributeStringString.get(this, \"contextmenu\")\n set(newValue) {attributeStringString.set(this, \"contextmenu\", newValue)}\n\nvar CommonAttributeGroupFacade.dataFolderName : String\n get() = attributeStringString.get(this, \"data-FolderName\")\n set(newValue) {attributeStringString.set(this, \"data-FolderName\", newValue)}\n\nvar CommonAttributeGroupFacade.dataMsgId : String\n get() = attributeStringString.get(this, \"data-MsgId\")\n set(newValue) {attributeStringString.set(this, \"data-MsgId\", newValue)}\n\nvar CommonAttributeGroupFacade.dir : Dir\n get() = attributeDirEnumDirValues.get(this, \"dir\")\n set(newValue) {attributeDirEnumDirValues.set(this, \"dir\", newValue)}\n\nvar CommonAttributeGroupFacade.draggable : Draggable\n get() = attributeDraggableEnumDraggableValues.get(this, \"draggable\")\n set(newValue) {attributeDraggableEnumDraggableValues.set(this, \"draggable\", newValue)}\n\nvar CommonAttributeGroupFacade.hidden : Boolean\n get() = attributeBooleanTicker.get(this, \"hidden\")\n set(newValue) {attributeBooleanTicker.set(this, \"hidden\", newValue)}\n\nvar CommonAttributeGroupFacade.id : String\n get() = attributeStringString.get(this, \"id\")\n set(newValue) {attributeStringString.set(this, \"id\", newValue)}\n\nvar CommonAttributeGroupFacade.itemProp : String\n get() = attributeStringString.get(this, \"itemprop\")\n set(newValue) {attributeStringString.set(this, \"itemprop\", newValue)}\n\nvar CommonAttributeGroupFacade.lang : String\n get() = attributeStringString.get(this, \"lang\")\n set(newValue) {attributeStringString.set(this, \"lang\", newValue)}\n\nvar CommonAttributeGroupFacade.onAbort : String\n get() = attributeStringString.get(this, \"onabort\")\n set(newValue) {attributeStringString.set(this, \"onabort\", newValue)}\n\nvar CommonAttributeGroupFacade.onBlur : String\n get() = attributeStringString.get(this, \"onblur\")\n set(newValue) {attributeStringString.set(this, \"onblur\", newValue)}\n\nvar CommonAttributeGroupFacade.onCanPlay : String\n get() = attributeStringString.get(this, \"oncanplay\")\n set(newValue) {attributeStringString.set(this, \"oncanplay\", newValue)}\n\nvar CommonAttributeGroupFacade.onCanPlayThrough : String\n get() = attributeStringString.get(this, \"oncanplaythrough\")\n set(newValue) {attributeStringString.set(this, \"oncanplaythrough\", newValue)}\n\nvar CommonAttributeGroupFacade.onChange : String\n get() = attributeStringString.get(this, \"onchange\")\n set(newValue) {attributeStringString.set(this, \"onchange\", newValue)}\n\nvar CommonAttributeGroupFacade.onClick : String\n get() = attributeStringString.get(this, \"onclick\")\n set(newValue) {attributeStringString.set(this, \"onclick\", newValue)}\n\nvar CommonAttributeGroupFacade.onContextMenu : String\n get() = attributeStringString.get(this, \"oncontextmenu\")\n set(newValue) {attributeStringString.set(this, \"oncontextmenu\", newValue)}\n\nvar CommonAttributeGroupFacade.onDoubleClick : String\n get() = attributeStringString.get(this, \"ondblclick\")\n set(newValue) {attributeStringString.set(this, \"ondblclick\", newValue)}\n\nvar CommonAttributeGroupFacade.onDrag : String\n get() = attributeStringString.get(this, \"ondrag\")\n set(newValue) {attributeStringString.set(this, \"ondrag\", newValue)}\n\nvar CommonAttributeGroupFacade.onDragEnd : String\n get() = attributeStringString.get(this, \"ondragend\")\n set(newValue) {attributeStringString.set(this, \"ondragend\", newValue)}\n\nvar CommonAttributeGroupFacade.onDragEnter : String\n get() = attributeStringString.get(this, \"ondragenter\")\n set(newValue) {attributeStringString.set(this, \"ondragenter\", newValue)}\n\nvar CommonAttributeGroupFacade.onDragLeave : String\n get() = attributeStringString.get(this, \"ondragleave\")\n set(newValue) {attributeStringString.set(this, \"ondragleave\", newValue)}\n\nvar CommonAttributeGroupFacade.onDragOver : String\n get() = attributeStringString.get(this, \"ondragover\")\n set(newValue) {attributeStringString.set(this, \"ondragover\", newValue)}\n\nvar CommonAttributeGroupFacade.onDragStart : String\n get() = attributeStringString.get(this, \"ondragstart\")\n set(newValue) {attributeStringString.set(this, \"ondragstart\", newValue)}\n\nvar CommonAttributeGroupFacade.onDrop : String\n get() = attributeStringString.get(this, \"ondrop\")\n set(newValue) {attributeStringString.set(this, \"ondrop\", newValue)}\n\nvar CommonAttributeGroupFacade.onDurationChange : String\n get() = attributeStringString.get(this, \"ondurationchange\")\n set(newValue) {attributeStringString.set(this, \"ondurationchange\", newValue)}\n\nvar CommonAttributeGroupFacade.onEmptied : String\n get() = attributeStringString.get(this, \"onemptied\")\n set(newValue) {attributeStringString.set(this, \"onemptied\", newValue)}\n\nvar CommonAttributeGroupFacade.onEnded : String\n get() = attributeStringString.get(this, \"onended\")\n set(newValue) {attributeStringString.set(this, \"onended\", newValue)}\n\nvar CommonAttributeGroupFacade.onError : String\n get() = attributeStringString.get(this, \"onerror\")\n set(newValue) {attributeStringString.set(this, \"onerror\", newValue)}\n\nvar CommonAttributeGroupFacade.onFocus : String\n get() = attributeStringString.get(this, \"onfocus\")\n set(newValue) {attributeStringString.set(this, \"onfocus\", newValue)}\n\nvar CommonAttributeGroupFacade.onFocusIn : String\n get() = attributeStringString.get(this, \"onfocusin\")\n set(newValue) {attributeStringString.set(this, \"onfocusin\", newValue)}\n\nvar CommonAttributeGroupFacade.onFocusOut : String\n get() = attributeStringString.get(this, \"onfocusout\")\n set(newValue) {attributeStringString.set(this, \"onfocusout\", newValue)}\n\nvar CommonAttributeGroupFacade.onFormChange : String\n get() = attributeStringString.get(this, \"onformchange\")\n set(newValue) {attributeStringString.set(this, \"onformchange\", newValue)}\n\nvar CommonAttributeGroupFacade.onFormInput : String\n get() = attributeStringString.get(this, \"onforminput\")\n set(newValue) {attributeStringString.set(this, \"onforminput\", newValue)}\n\nvar CommonAttributeGroupFacade.onInput : String\n get() = attributeStringString.get(this, \"oninput\")\n set(newValue) {attributeStringString.set(this, \"oninput\", newValue)}\n\nvar CommonAttributeGroupFacade.onInvalid : String\n get() = attributeStringString.get(this, \"oninvalid\")\n set(newValue) {attributeStringString.set(this, \"oninvalid\", newValue)}\n\nvar CommonAttributeGroupFacade.onKeyDown : String\n get() = attributeStringString.get(this, \"onkeydown\")\n set(newValue) {attributeStringString.set(this, \"onkeydown\", newValue)}\n\nvar CommonAttributeGroupFacade.onKeyPress : String\n get() = attributeStringString.get(this, \"onkeypress\")\n set(newValue) {attributeStringString.set(this, \"onkeypress\", newValue)}\n\nvar CommonAttributeGroupFacade.onKeyUp : String\n get() = attributeStringString.get(this, \"onkeyup\")\n set(newValue) {attributeStringString.set(this, \"onkeyup\", newValue)}\n\nvar CommonAttributeGroupFacade.onLoad : String\n get() = attributeStringString.get(this, \"onload\")\n set(newValue) {attributeStringString.set(this, \"onload\", newValue)}\n\nvar CommonAttributeGroupFacade.onLoadedData : String\n get() = attributeStringString.get(this, \"onloadeddata\")\n set(newValue) {attributeStringString.set(this, \"onloadeddata\", newValue)}\n\nvar CommonAttributeGroupFacade.onLoadedMetaData : String\n get() = attributeStringString.get(this, \"onloadedmetadata\")\n set(newValue) {attributeStringString.set(this, \"onloadedmetadata\", newValue)}\n\nvar CommonAttributeGroupFacade.onLoadStart : String\n get() = attributeStringString.get(this, \"onloadstart\")\n set(newValue) {attributeStringString.set(this, \"onloadstart\", newValue)}\n\nvar CommonAttributeGroupFacade.onMouseDown : String\n get() = attributeStringString.get(this, \"onmousedown\")\n set(newValue) {attributeStringString.set(this, \"onmousedown\", newValue)}\n\nvar CommonAttributeGroupFacade.onMouseMove : String\n get() = attributeStringString.get(this, \"onmousemove\")\n set(newValue) {attributeStringString.set(this, \"onmousemove\", newValue)}\n\nvar CommonAttributeGroupFacade.onMouseOut : String\n get() = attributeStringString.get(this, \"onmouseout\")\n set(newValue) {attributeStringString.set(this, \"onmouseout\", newValue)}\n\nvar CommonAttributeGroupFacade.onMouseOver : String\n get() = attributeStringString.get(this, \"onmouseover\")\n set(newValue) {attributeStringString.set(this, \"onmouseover\", newValue)}\n\nvar CommonAttributeGroupFacade.onMouseUp : String\n get() = attributeStringString.get(this, \"onmouseup\")\n set(newValue) {attributeStringString.set(this, \"onmouseup\", newValue)}\n\nvar CommonAttributeGroupFacade.onMouseWheel : String\n get() = attributeStringString.get(this, \"onmousewheel\")\n set(newValue) {attributeStringString.set(this, \"onmousewheel\", newValue)}\n\nvar CommonAttributeGroupFacade.onPause : String\n get() = attributeStringString.get(this, \"onpause\")\n set(newValue) {attributeStringString.set(this, \"onpause\", newValue)}\n\nvar CommonAttributeGroupFacade.onPlay : String\n get() = attributeStringString.get(this, \"onplay\")\n set(newValue) {attributeStringString.set(this, \"onplay\", newValue)}\n\nvar CommonAttributeGroupFacade.onPlaying : String\n get() = attributeStringString.get(this, \"onplaying\")\n set(newValue) {attributeStringString.set(this, \"onplaying\", newValue)}\n\nvar CommonAttributeGroupFacade.onProgress : String\n get() = attributeStringString.get(this, \"onprogress\")\n set(newValue) {attributeStringString.set(this, \"onprogress\", newValue)}\n\nvar CommonAttributeGroupFacade.onRateChange : String\n get() = attributeStringString.get(this, \"onratechange\")\n set(newValue) {attributeStringString.set(this, \"onratechange\", newValue)}\n\nvar CommonAttributeGroupFacade.onReadyStateChange : String\n get() = attributeStringString.get(this, \"onreadystatechange\")\n set(newValue) {attributeStringString.set(this, \"onreadystatechange\", newValue)}\n\nvar CommonAttributeGroupFacade.onScroll : String\n get() = attributeStringString.get(this, \"onscroll\")\n set(newValue) {attributeStringString.set(this, \"onscroll\", newValue)}\n\nvar CommonAttributeGroupFacade.onSearch : String\n get() = attributeStringString.get(this, \"onsearch\")\n set(newValue) {attributeStringString.set(this, \"onsearch\", newValue)}\n\nvar CommonAttributeGroupFacade.onSeeked : String\n get() = attributeStringString.get(this, \"onseeked\")\n set(newValue) {attributeStringString.set(this, \"onseeked\", newValue)}\n\nvar CommonAttributeGroupFacade.onSeeking : String\n get() = attributeStringString.get(this, \"onseeking\")\n set(newValue) {attributeStringString.set(this, \"onseeking\", newValue)}\n\nvar CommonAttributeGroupFacade.onSelect : String\n get() = attributeStringString.get(this, \"onselect\")\n set(newValue) {attributeStringString.set(this, \"onselect\", newValue)}\n\nvar CommonAttributeGroupFacade.onShow : String\n get() = attributeStringString.get(this, \"onshow\")\n set(newValue) {attributeStringString.set(this, \"onshow\", newValue)}\n\nvar CommonAttributeGroupFacade.onStalled : String\n get() = attributeStringString.get(this, \"onstalled\")\n set(newValue) {attributeStringString.set(this, \"onstalled\", newValue)}\n\nvar CommonAttributeGroupFacade.onSubmit : String\n get() = attributeStringString.get(this, \"onsubmit\")\n set(newValue) {attributeStringString.set(this, \"onsubmit\", newValue)}\n\nvar CommonAttributeGroupFacade.onSuspend : String\n get() = attributeStringString.get(this, \"onsuspend\")\n set(newValue) {attributeStringString.set(this, \"onsuspend\", newValue)}\n\nvar CommonAttributeGroupFacade.onTimeUpdate : String\n get() = attributeStringString.get(this, \"ontimeupdate\")\n set(newValue) {attributeStringString.set(this, \"ontimeupdate\", newValue)}\n\nvar CommonAttributeGroupFacade.onTouchCancel : String\n get() = attributeStringString.get(this, \"ontouchcancel\")\n set(newValue) {attributeStringString.set(this, \"ontouchcancel\", newValue)}\n\nvar CommonAttributeGroupFacade.onTouchEnd : String\n get() = attributeStringString.get(this, \"ontouchend\")\n set(newValue) {attributeStringString.set(this, \"ontouchend\", newValue)}\n\nvar CommonAttributeGroupFacade.onTouchMove : String\n get() = attributeStringString.get(this, \"ontouchmove\")\n set(newValue) {attributeStringString.set(this, \"ontouchmove\", newValue)}\n\nvar CommonAttributeGroupFacade.onTouchStart : String\n get() = attributeStringString.get(this, \"ontouchstart\")\n set(newValue) {attributeStringString.set(this, \"ontouchstart\", newValue)}\n\nvar CommonAttributeGroupFacade.onVolumeChange : String\n get() = attributeStringString.get(this, \"onvolumechange\")\n set(newValue) {attributeStringString.set(this, \"onvolumechange\", newValue)}\n\nvar CommonAttributeGroupFacade.onWaiting : String\n get() = attributeStringString.get(this, \"onwaiting\")\n set(newValue) {attributeStringString.set(this, \"onwaiting\", newValue)}\n\nvar CommonAttributeGroupFacade.onWheel : String\n get() = attributeStringString.get(this, \"onwheel\")\n set(newValue) {attributeStringString.set(this, \"onwheel\", newValue)}\n\nvar CommonAttributeGroupFacade.role : String\n get() = attributeStringString.get(this, \"role\")\n set(newValue) {attributeStringString.set(this, \"role\", newValue)}\n\nvar CommonAttributeGroupFacade.runAt : RunAt\n get() = attributeRunAtEnumRunAtValues.get(this, \"runat\")\n set(newValue) {attributeRunAtEnumRunAtValues.set(this, \"runat\", newValue)}\n\nvar CommonAttributeGroupFacade.spellCheck : Boolean\n get() = attributeBooleanBoolean.get(this, \"spellcheck\")\n set(newValue) {attributeBooleanBoolean.set(this, \"spellcheck\", newValue)}\n\nvar CommonAttributeGroupFacade.style : String\n get() = attributeStringString.get(this, \"style\")\n set(newValue) {attributeStringString.set(this, \"style\", newValue)}\n\nvar CommonAttributeGroupFacade.subject : String\n get() = attributeStringString.get(this, \"subject\")\n set(newValue) {attributeStringString.set(this, \"subject\", newValue)}\n\nvar CommonAttributeGroupFacade.tabIndex : String\n get() = attributeStringString.get(this, \"tabIndex\")\n set(newValue) {attributeStringString.set(this, \"tabIndex\", newValue)}\n\nvar CommonAttributeGroupFacade.title : String\n get() = attributeStringString.get(this, \"title\")\n set(newValue) {attributeStringString.set(this, \"title\", newValue)}\n\n\ninterface FormServerAttributeGroupFacade : Tag {\n}\nvar FormServerAttributeGroupFacade.defaultButton : String\n get() = attributeStringString.get(this, \"DefaultButton\")\n set(newValue) {attributeStringString.set(this, \"DefaultButton\", newValue)}\n\nvar FormServerAttributeGroupFacade.defaultFocus : String\n get() = attributeStringString.get(this, \"DefaultFocus\")\n set(newValue) {attributeStringString.set(this, \"DefaultFocus\", newValue)}\n\nvar FormServerAttributeGroupFacade.submitDisabledControls : Boolean\n get() = attributeBooleanBoolean.get(this, \"SubmitDisabledControls\")\n set(newValue) {attributeBooleanBoolean.set(this, \"SubmitDisabledControls\", newValue)}\n\n\ninterface InputServerAttributeGroupFacade : Tag {\n}\nvar InputServerAttributeGroupFacade.causesValidation : Boolean\n get() = attributeBooleanBoolean.get(this, \"CausesValidation\")\n set(newValue) {attributeBooleanBoolean.set(this, \"CausesValidation\", newValue)}\n\nvar InputServerAttributeGroupFacade.validationGroup : String\n get() = attributeStringString.get(this, \"ValidationGroup\")\n set(newValue) {attributeStringString.set(this, \"ValidationGroup\", newValue)}\n\n\ninterface SelectServerAttributeGroupFacade : Tag {\n}\nvar SelectServerAttributeGroupFacade.dataSourceID : String\n get() = attributeStringString.get(this, \"DataSourceID\")\n set(newValue) {attributeStringString.set(this, \"DataSourceID\", newValue)}\n\nvar SelectServerAttributeGroupFacade.dataTextField : String\n get() = attributeStringString.get(this, \"DataTextField\")\n set(newValue) {attributeStringString.set(this, \"DataTextField\", newValue)}\n\nvar SelectServerAttributeGroupFacade.dataValueField : String\n get() = attributeStringString.get(this, \"DataValueField\")\n set(newValue) {attributeStringString.set(this, \"DataValueField\", newValue)}\n\n\n","package kotlinx.html\n\nimport kotlinx.html.*\n\n/*******************************************************************************\n DO NOT EDIT\n This file was generated by module generate\n*******************************************************************************/\n\nenum class Entities {\n nbsp\n, lt\n, gt\n, quot\n, amp\n, apos\n, iexcl\n, cent\n, pound\n, curren\n, yen\n, brvbar\n, sect\n, uml\n, copy\n, ordf\n, laquo\n, not\n, shy\n, reg\n, macr\n, deg\n, plusmn\n, sup2\n, sup3\n, acute\n, micro\n, para\n, middot\n, cedil\n, sup1\n, ordm\n, raquo\n, frac14\n, frac12\n, frac34\n, iquest\n, Agrave\n, Aacute\n, Acirc\n, Atilde\n, Auml\n, Aring\n, AElig\n, Ccedil\n, Egrave\n, Eacute\n, Ecirc\n, Euml\n, Igrave\n, Iacute\n, Icirc\n, Iuml\n, ETH\n, Ntilde\n, Ograve\n, Oacute\n, Ocirc\n, Otilde\n, Ouml\n, times\n, Oslash\n, Ugrave\n, Uacute\n, Ucirc\n, Uuml\n, Yacute\n, THORN\n, szlig\n, agrave\n, aacute\n, acirc\n, atilde\n, auml\n, aring\n, aelig\n, ccedil\n, egrave\n, eacute\n, ecirc\n, euml\n, igrave\n, iacute\n, icirc\n, iuml\n, eth\n, ntilde\n, ograve\n, oacute\n, ocirc\n, otilde\n, ouml\n, divide\n, oslash\n, ugrave\n, uacute\n, ucirc\n, uuml\n, yacute\n, thorn\n, yuml\n;\nval text : String\n get() = \"&\" + this.toString() + \";\"\n\n}\n","package kotlinx.html\n\nimport kotlinx.html.*\n\n/*******************************************************************************\n DO NOT EDIT\n This file was generated by module generate\n*******************************************************************************/\n\n@Suppress(\"unused\")\nenum class Dir(override val realValue : String) : AttributeEnum {\n ltr(\"ltr\"),\n rtl(\"rtl\")\n}\n\ninternal val dirValues : Map = Dir.values().associateBy { it.realValue }\n@Suppress(\"unused\")\nenum class Draggable(override val realValue : String) : AttributeEnum {\n htmlTrue(\"true\"),\n htmlFalse(\"false\"),\n auto(\"auto\")\n}\n\ninternal val draggableValues : Map = Draggable.values().associateBy { it.realValue }\n@Suppress(\"unused\")\nenum class RunAt(override val realValue : String) : AttributeEnum {\n server(\"server\")\n}\n\ninternal val runAtValues : Map = RunAt.values().associateBy { it.realValue }\n@Suppress(\"unused\")\nobject ATarget {\n val blank : String = \"_blank\"\n val parent : String = \"_parent\"\n val self : String = \"_self\"\n val top : String = \"_top\"\n\n val values : List = listOf(\"blank\", \"parent\", \"self\", \"top\")\n}\n\n@Suppress(\"unused\")\nobject ARel {\n val alternate : String = \"Alternate\"\n val appEndIx : String = \"Appendix\"\n val bookmark : String = \"Bookmark\"\n val chapter : String = \"Chapter\"\n val contentS : String = \"Contents\"\n val copyright : String = \"Copyright\"\n val glossary : String = \"Glossary\"\n val help : String = \"Help\"\n val index : String = \"Index\"\n val next : String = \"Next\"\n val prev : String = \"Prev\"\n val section : String = \"Section\"\n val start : String = \"Start\"\n val stylesheet : String = \"Stylesheet\"\n val subsection : String = \"Subsection\"\n\n val values : List = listOf(\"alternate\", \"appEndIx\", \"bookmark\", \"chapter\", \"contentS\", \"copyright\", \"glossary\", \"help\", \"index\", \"next\", \"prev\", \"section\", \"start\", \"stylesheet\", \"subsection\")\n}\n\n@Suppress(\"unused\")\nobject AType {\n val textAsp : String = \"text/asp\"\n val textAsa : String = \"text/asa\"\n val textCss : String = \"text/css\"\n val textHtml : String = \"text/html\"\n val textJavaScript : String = \"text/javascript\"\n val textPlain : String = \"text/plain\"\n val textScriptLet : String = \"text/scriptlet\"\n val textXComponent : String = \"text/x-component\"\n val textXHtmlInsertion : String = \"text/x-html-insertion\"\n val textXml : String = \"text/xml\"\n\n val values : List = listOf(\"textAsp\", \"textAsa\", \"textCss\", \"textHtml\", \"textJavaScript\", \"textPlain\", \"textScriptLet\", \"textXComponent\", \"textXHtmlInsertion\", \"textXml\")\n}\n\n@Suppress(\"unused\")\nenum class AreaShape(override val realValue : String) : AttributeEnum {\n rect(\"rect\"),\n circle(\"circle\"),\n poly(\"poly\"),\n default(\"default\")\n}\n\ninternal val areaShapeValues : Map = AreaShape.values().associateBy { it.realValue }\n@Suppress(\"unused\")\nobject AreaTarget {\n val blank : String = \"_blank\"\n val parent : String = \"_parent\"\n val self : String = \"_self\"\n val top : String = \"_top\"\n\n val values : List = listOf(\"blank\", \"parent\", \"self\", \"top\")\n}\n\n@Suppress(\"unused\")\nobject AreaRel {\n val alternate : String = \"Alternate\"\n val appEndIx : String = \"Appendix\"\n val bookmark : String = \"Bookmark\"\n val chapter : String = \"Chapter\"\n val contentS : String = \"Contents\"\n val copyright : String = \"Copyright\"\n val glossary : String = \"Glossary\"\n val help : String = \"Help\"\n val index : String = \"Index\"\n val next : String = \"Next\"\n val prev : String = \"Prev\"\n val section : String = \"Section\"\n val start : String = \"Start\"\n val stylesheet : String = \"Stylesheet\"\n val subsection : String = \"Subsection\"\n\n val values : List = listOf(\"alternate\", \"appEndIx\", \"bookmark\", \"chapter\", \"contentS\", \"copyright\", \"glossary\", \"help\", \"index\", \"next\", \"prev\", \"section\", \"start\", \"stylesheet\", \"subsection\")\n}\n\n@Suppress(\"unused\")\nobject BaseTarget {\n val blank : String = \"_blank\"\n val parent : String = \"_parent\"\n val self : String = \"_self\"\n val top : String = \"_top\"\n\n val values : List = listOf(\"blank\", \"parent\", \"self\", \"top\")\n}\n\n@Suppress(\"unused\")\nenum class ButtonFormEncType(override val realValue : String) : AttributeEnum {\n multipartFormData(\"multipart/form-data\"),\n applicationXWwwFormUrlEncoded(\"application/x-www-form-urlencoded\"),\n textPlain(\"text/plain\")\n}\n\ninternal val buttonFormEncTypeValues : Map = ButtonFormEncType.values().associateBy { it.realValue }\n@Suppress(\"unused\")\nenum class ButtonFormMethod(override val realValue : String) : AttributeEnum {\n get(\"get\"),\n post(\"post\"),\n @Deprecated(\"method is not allowed in browsers\") put(\"put\"),\n @Deprecated(\"method is not allowed in browsers\") delete(\"delete\"),\n @Deprecated(\"method is not allowed in browsers\") patch(\"patch\")\n}\n\ninternal val buttonFormMethodValues : Map = ButtonFormMethod.values().associateBy { it.realValue }\n@Suppress(\"unused\")\nobject ButtonFormTarget {\n val blank : String = \"_blank\"\n val parent : String = \"_parent\"\n val self : String = \"_self\"\n val top : String = \"_top\"\n\n val values : List = listOf(\"blank\", \"parent\", \"self\", \"top\")\n}\n\n@Suppress(\"unused\")\nenum class ButtonType(override val realValue : String) : AttributeEnum {\n button(\"button\"),\n reset(\"reset\"),\n submit(\"submit\")\n}\n\ninternal val buttonTypeValues : Map = ButtonType.values().associateBy { it.realValue }\n@Suppress(\"unused\")\nenum class CommandType(override val realValue : String) : AttributeEnum {\n command(\"command\"),\n checkBox(\"checkbox\"),\n radio(\"radio\")\n}\n\ninternal val commandTypeValues : Map = CommandType.values().associateBy { it.realValue }\n@Suppress(\"unused\")\nenum class FormEncType(override val realValue : String) : AttributeEnum {\n multipartFormData(\"multipart/form-data\"),\n applicationXWwwFormUrlEncoded(\"application/x-www-form-urlencoded\"),\n textPlain(\"text/plain\")\n}\n\ninternal val formEncTypeValues : Map = FormEncType.values().associateBy { it.realValue }\n@Suppress(\"unused\")\nenum class FormMethod(override val realValue : String) : AttributeEnum {\n get(\"get\"),\n post(\"post\"),\n @Deprecated(\"method is not allowed in browsers\") put(\"put\"),\n @Deprecated(\"method is not allowed in browsers\") delete(\"delete\"),\n @Deprecated(\"method is not allowed in browsers\") patch(\"patch\")\n}\n\ninternal val formMethodValues : Map = FormMethod.values().associateBy { it.realValue }\n@Suppress(\"unused\")\nobject FormTarget {\n val blank : String = \"_blank\"\n val parent : String = \"_parent\"\n val self : String = \"_self\"\n val top : String = \"_top\"\n\n val values : List = listOf(\"blank\", \"parent\", \"self\", \"top\")\n}\n\n@Suppress(\"unused\")\nobject IframeName {\n val blank : String = \"_blank\"\n val parent : String = \"_parent\"\n val self : String = \"_self\"\n val top : String = \"_top\"\n\n val values : List = listOf(\"blank\", \"parent\", \"self\", \"top\")\n}\n\n@Suppress(\"unused\")\nenum class IframeSandbox(override val realValue : String) : AttributeEnum {\n allowSameOrigin(\"allow-same-origin\"),\n allowFormS(\"allow-forms\"),\n allowScripts(\"allow-scripts\")\n}\n\ninternal val iframeSandboxValues : Map = IframeSandbox.values().associateBy { it.realValue }\n@Suppress(\"unused\")\nenum class InputType(override val realValue : String) : AttributeEnum {\n button(\"button\"),\n checkBox(\"checkbox\"),\n color(\"color\"),\n date(\"date\"),\n dateTime(\"datetime\"),\n dateTimeLocal(\"datetime-local\"),\n email(\"email\"),\n file(\"file\"),\n hidden(\"hidden\"),\n image(\"image\"),\n month(\"month\"),\n number(\"number\"),\n password(\"password\"),\n radio(\"radio\"),\n range(\"range\"),\n reset(\"reset\"),\n search(\"search\"),\n submit(\"submit\"),\n text(\"text\"),\n tel(\"tel\"),\n time(\"time\"),\n url(\"url\"),\n week(\"week\")\n}\n\ninternal val inputTypeValues : Map = InputType.values().associateBy { it.realValue }\n@Suppress(\"unused\")\nenum class InputFormEncType(override val realValue : String) : AttributeEnum {\n multipartFormData(\"multipart/form-data\"),\n applicationXWwwFormUrlEncoded(\"application/x-www-form-urlencoded\"),\n textPlain(\"text/plain\")\n}\n\ninternal val inputFormEncTypeValues : Map = InputFormEncType.values().associateBy { it.realValue }\n@Suppress(\"unused\")\nenum class InputFormMethod(override val realValue : String) : AttributeEnum {\n get(\"get\"),\n post(\"post\"),\n @Deprecated(\"method is not allowed in browsers\") put(\"put\"),\n @Deprecated(\"method is not allowed in browsers\") delete(\"delete\"),\n @Deprecated(\"method is not allowed in browsers\") patch(\"patch\")\n}\n\ninternal val inputFormMethodValues : Map = InputFormMethod.values().associateBy { it.realValue }\n@Suppress(\"unused\")\nobject InputFormTarget {\n val blank : String = \"_blank\"\n val parent : String = \"_parent\"\n val self : String = \"_self\"\n val top : String = \"_top\"\n\n val values : List = listOf(\"blank\", \"parent\", \"self\", \"top\")\n}\n\n@Suppress(\"unused\")\nenum class KeyGenKeyType(override val realValue : String) : AttributeEnum {\n rsa(\"rsa\")\n}\n\ninternal val keyGenKeyTypeValues : Map = KeyGenKeyType.values().associateBy { it.realValue }\n@Suppress(\"unused\")\nobject LinkRel {\n val alternate : String = \"Alternate\"\n val appEndIx : String = \"Appendix\"\n val bookmark : String = \"Bookmark\"\n val chapter : String = \"Chapter\"\n val contentS : String = \"Contents\"\n val copyright : String = \"Copyright\"\n val glossary : String = \"Glossary\"\n val help : String = \"Help\"\n val index : String = \"Index\"\n val next : String = \"Next\"\n val prev : String = \"Prev\"\n val section : String = \"Section\"\n val start : String = \"Start\"\n val stylesheet : String = \"Stylesheet\"\n val subsection : String = \"Subsection\"\n\n val values : List = listOf(\"alternate\", \"appEndIx\", \"bookmark\", \"chapter\", \"contentS\", \"copyright\", \"glossary\", \"help\", \"index\", \"next\", \"prev\", \"section\", \"start\", \"stylesheet\", \"subsection\")\n}\n\n@Suppress(\"unused\")\nobject LinkMedia {\n val screen : String = \"screen\"\n val print : String = \"print\"\n val tty : String = \"tty\"\n val tv : String = \"tv\"\n val projection : String = \"projection\"\n val handheld : String = \"handheld\"\n val braille : String = \"braille\"\n val aural : String = \"aural\"\n val all : String = \"all\"\n\n val values : List = listOf(\"screen\", \"print\", \"tty\", \"tv\", \"projection\", \"handheld\", \"braille\", \"aural\", \"all\")\n}\n\n@Suppress(\"unused\")\nobject LinkType {\n val textAsp : String = \"text/asp\"\n val textAsa : String = \"text/asa\"\n val textCss : String = \"text/css\"\n val textHtml : String = \"text/html\"\n val textJavaScript : String = \"text/javascript\"\n val textPlain : String = \"text/plain\"\n val textScriptLet : String = \"text/scriptlet\"\n val textXComponent : String = \"text/x-component\"\n val textXHtmlInsertion : String = \"text/x-html-insertion\"\n val textXml : String = \"text/xml\"\n\n val values : List = listOf(\"textAsp\", \"textAsa\", \"textCss\", \"textHtml\", \"textJavaScript\", \"textPlain\", \"textScriptLet\", \"textXComponent\", \"textXHtmlInsertion\", \"textXml\")\n}\n\n@Suppress(\"unused\")\nobject MetaHttpEquiv {\n val contentLanguage : String = \"content-language\"\n val contentType : String = \"content-type\"\n val defaultStyle : String = \"default-style\"\n val refresh : String = \"refresh\"\n\n val values : List = listOf(\"contentLanguage\", \"contentType\", \"defaultStyle\", \"refresh\")\n}\n\n@Suppress(\"unused\")\nobject ObjectName {\n val blank : String = \"_blank\"\n val parent : String = \"_parent\"\n val self : String = \"_self\"\n val top : String = \"_top\"\n\n val values : List = listOf(\"blank\", \"parent\", \"self\", \"top\")\n}\n\n@Suppress(\"unused\")\nobject ScriptType {\n val textEcmaScript : String = \"text/ecmascript\"\n val textJavaScript : String = \"text/javascript\"\n val textJavaScript10 : String = \"text/javascript1.0\"\n val textJavaScript11 : String = \"text/javascript1.1\"\n val textJavaScript12 : String = \"text/javascript1.2\"\n val textJavaScript13 : String = \"text/javascript1.3\"\n val textJavaScript14 : String = \"text/javascript1.4\"\n val textJavaScript15 : String = \"text/javascript1.5\"\n val textJScript : String = \"text/jscript\"\n val textXJavaScript : String = \"text/x-javascript\"\n val textXEcmaScript : String = \"text/x-ecmascript\"\n val textVbScript : String = \"text/vbscript\"\n\n val values : List = listOf(\"textEcmaScript\", \"textJavaScript\", \"textJavaScript10\", \"textJavaScript11\", \"textJavaScript12\", \"textJavaScript13\", \"textJavaScript14\", \"textJavaScript15\", \"textJScript\", \"textXJavaScript\", \"textXEcmaScript\", \"textVbScript\")\n}\n\n@Suppress(\"unused\")\nobject StyleType {\n val textCss : String = \"text/css\"\n\n val values : List = listOf(\"textCss\")\n}\n\n@Suppress(\"unused\")\nobject StyleMedia {\n val screen : String = \"screen\"\n val print : String = \"print\"\n val tty : String = \"tty\"\n val tv : String = \"tv\"\n val projection : String = \"projection\"\n val handheld : String = \"handheld\"\n val braille : String = \"braille\"\n val aural : String = \"aural\"\n val all : String = \"all\"\n\n val values : List = listOf(\"screen\", \"print\", \"tty\", \"tv\", \"projection\", \"handheld\", \"braille\", \"aural\", \"all\")\n}\n\n@Suppress(\"unused\")\nenum class TextAreaWrap(override val realValue : String) : AttributeEnum {\n hard(\"hard\"),\n soft(\"soft\")\n}\n\ninternal val textAreaWrapValues : Map = TextAreaWrap.values().associateBy { it.realValue }\n@Suppress(\"unused\")\nenum class ThScope(override val realValue : String) : AttributeEnum {\n col(\"col\"),\n colGroup(\"colgroup\"),\n row(\"row\"),\n rowGroup(\"rowgroup\")\n}\n\ninternal val thScopeValues : Map = ThScope.values().associateBy { it.realValue }\n","package kotlinx.html\n\nimport kotlinx.html.*\nimport kotlinx.html.impl.*\nimport kotlinx.html.attributes.*\n\n/*******************************************************************************\n DO NOT EDIT\n This file was generated by module generate\n*******************************************************************************/\n\ninterface FlowContent : FlowOrMetaDataOrPhrasingContent, FlowOrHeadingContent, FlowOrMetaDataContent, FlowOrInteractiveContent, FlowOrPhrasingContent, SectioningOrFlowContent, FlowOrInteractiveOrPhrasingContent, Tag {\n}\n\ninterface HeadingContent : FlowOrHeadingContent, Tag {\n}\n\ninterface InteractiveContent : FlowOrInteractiveContent, FlowOrInteractiveOrPhrasingContent, Tag {\n}\n\ninterface MetaDataContent : FlowOrMetaDataOrPhrasingContent, FlowOrMetaDataContent, Tag {\n}\n\ninterface PhrasingContent : FlowOrMetaDataOrPhrasingContent, FlowOrPhrasingContent, FlowOrInteractiveOrPhrasingContent, Tag {\n}\n\ninterface SectioningContent : SectioningOrFlowContent, Tag {\n}\n\n/**\n * Information on author\n */\n@HtmlTagMarker\ninline fun FlowContent.address(classes : String? = null, crossinline block : ADDRESS.() -> Unit = {}) : Unit = ADDRESS(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Long quotation\n */\n@HtmlTagMarker\ninline fun FlowContent.blockQuote(classes : String? = null, crossinline block : BLOCKQUOTE.() -> Unit = {}) : Unit = BLOCKQUOTE(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Dialog box or window\n */\n@HtmlTagMarker\ninline fun FlowContent.dialog(classes : String? = null, crossinline block : DIALOG.() -> Unit = {}) : Unit = DIALOG(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Generic language/style container\n */\n@HtmlTagMarker\ninline fun FlowContent.div(classes : String? = null, crossinline block : DIV.() -> Unit = {}) : Unit = DIV(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Definition list\n */\n@HtmlTagMarker\ninline fun FlowContent.dl(classes : String? = null, crossinline block : DL.() -> Unit = {}) : Unit = DL(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Form control group\n */\n@HtmlTagMarker\ninline fun FlowContent.fieldSet(classes : String? = null, crossinline block : FIELDSET.() -> Unit = {}) : Unit = FIELDSET(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Figure with optional caption\n */\n@HtmlTagMarker\ninline fun FlowContent.figure(classes : String? = null, crossinline block : FIGURE.() -> Unit = {}) : Unit = FIGURE(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Caption for \n */\n@HtmlTagMarker\ninline fun FlowContent.figcaption(classes : String? = null, crossinline block : FIGCAPTION.() -> Unit = {}) : Unit = FIGCAPTION(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Footer for a page or section\n */\n@HtmlTagMarker\ninline fun FlowContent.footer(classes : String? = null, crossinline block : FOOTER.() -> Unit = {}) : Unit = FOOTER(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Interactive form\n */\n@HtmlTagMarker\ninline fun FlowContent.form(action : String? = null, encType : FormEncType? = null, method : FormMethod? = null, classes : String? = null, crossinline block : FORM.() -> Unit = {}) : Unit = FORM(attributesMapOf(\"action\", action,\"enctype\", encType?.enumEncode(),\"method\", method?.enumEncode(),\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowContent.getForm(action : String? = null, encType : FormEncType? = null, classes : String? = null, crossinline block : FORM.() -> Unit = {}) : Unit = FORM(attributesMapOf(\"action\", action,\"enctype\", encType?.enumEncode(),\"method\", FormMethod.get.realValue,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowContent.postForm(action : String? = null, encType : FormEncType? = null, classes : String? = null, crossinline block : FORM.() -> Unit = {}) : Unit = FORM(attributesMapOf(\"action\", action,\"enctype\", encType?.enumEncode(),\"method\", FormMethod.post.realValue,\"class\", classes), consumer).visit(block)\n@Suppress(\"DEPRECATION\")\n@HtmlTagMarker\ninline fun FlowContent.putForm(action : String? = null, encType : FormEncType? = null, classes : String? = null, crossinline block : FORM.() -> Unit = {}) : Unit = FORM(attributesMapOf(\"action\", action,\"enctype\", encType?.enumEncode(),\"method\", FormMethod.put.realValue,\"class\", classes), consumer).visit(block)\n@Suppress(\"DEPRECATION\")\n@HtmlTagMarker\ninline fun FlowContent.deleteForm(action : String? = null, encType : FormEncType? = null, classes : String? = null, crossinline block : FORM.() -> Unit = {}) : Unit = FORM(attributesMapOf(\"action\", action,\"enctype\", encType?.enumEncode(),\"method\", FormMethod.delete.realValue,\"class\", classes), consumer).visit(block)\n@Suppress(\"DEPRECATION\")\n@HtmlTagMarker\ninline fun FlowContent.patchForm(action : String? = null, encType : FormEncType? = null, classes : String? = null, crossinline block : FORM.() -> Unit = {}) : Unit = FORM(attributesMapOf(\"action\", action,\"enctype\", encType?.enumEncode(),\"method\", FormMethod.patch.realValue,\"class\", classes), consumer).visit(block)\n\n/**\n * Introductory or navigational aids for a page or section\n */\n@HtmlTagMarker\ninline fun FlowContent.header(classes : String? = null, crossinline block : HEADER.() -> Unit = {}) : Unit = HEADER(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Horizontal rule\n */\n@HtmlTagMarker\ninline fun FlowContent.hr(classes : String? = null, crossinline block : HR.() -> Unit = {}) : Unit = HR(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Ordered list\n */\n@HtmlTagMarker\ninline fun FlowContent.ol(classes : String? = null, crossinline block : OL.() -> Unit = {}) : Unit = OL(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Paragraph\n */\n@HtmlTagMarker\ninline fun FlowContent.p(classes : String? = null, crossinline block : P.() -> Unit = {}) : Unit = P(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Preformatted text\n */\n@HtmlTagMarker\ninline fun FlowContent.pre(classes : String? = null, crossinline block : PRE.() -> Unit = {}) : Unit = PRE(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Caption for \n */\n@HtmlTagMarker\ninline fun FlowContent.summary(classes : String? = null, crossinline block : SUMMARY.() -> Unit = {}) : Unit = SUMMARY(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * \n */\n@HtmlTagMarker\ninline fun FlowContent.table(classes : String? = null, crossinline block : TABLE.() -> Unit = {}) : Unit = TABLE(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Unordered list\n */\n@HtmlTagMarker\ninline fun FlowContent.ul(classes : String? = null, crossinline block : UL.() -> Unit = {}) : Unit = UL(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Document base URI\n */\n@HtmlTagMarker\ninline fun MetaDataContent.base(classes : String? = null, crossinline block : BASE.() -> Unit = {}) : Unit = BASE(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Document title\n */\n@HtmlTagMarker\ninline fun MetaDataContent.title(crossinline block : TITLE.() -> Unit = {}) : Unit = TITLE(emptyMap, consumer).visit(block)\n/**\n * Document title\n */\n@HtmlTagMarker\nfun MetaDataContent.title(content : String = \"\") : Unit = TITLE(emptyMap, consumer).visit({+content})\n\n","package kotlinx.html\n\nimport kotlinx.html.*\nimport kotlinx.html.impl.*\nimport kotlinx.html.attributes.*\n\n/*******************************************************************************\n DO NOT EDIT\n This file was generated by module generate\n*******************************************************************************/\n\n@Suppress(\"unused\")\nopen class A(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"a\", consumer, initialAttributes, null, true, false), CommonAttributeGroupFacadeFlowInteractivePhrasingContent {\n var href : String\n get() = attributeStringString.get(this, \"href\")\n set(newValue) {attributeStringString.set(this, \"href\", newValue)}\n\n var target : String\n get() = attributeStringString.get(this, \"target\")\n set(newValue) {attributeStringString.set(this, \"target\", newValue)}\n\n var ping : String\n get() = attributeStringString.get(this, \"ping\")\n set(newValue) {attributeStringString.set(this, \"ping\", newValue)}\n\n var rel : String\n get() = attributeStringString.get(this, \"rel\")\n set(newValue) {attributeStringString.set(this, \"rel\", newValue)}\n\n var hrefLang : String\n get() = attributeStringString.get(this, \"hreflang\")\n set(newValue) {attributeStringString.set(this, \"hreflang\", newValue)}\n\n var type : String\n get() = attributeStringString.get(this, \"type\")\n set(newValue) {attributeStringString.set(this, \"type\", newValue)}\n\n\n}\nval A.asFlowContent : FlowContent\n get() = this\n\nval A.asInteractiveContent : InteractiveContent\n get() = this\n\nval A.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class ABBR(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"abbr\", consumer, initialAttributes, null, true, false), HtmlBlockInlineTag {\n\n}\nval ABBR.asFlowContent : FlowContent\n get() = this\n\nval ABBR.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class ADDRESS(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"address\", consumer, initialAttributes, null, false, false), HtmlBlockTag {\n\n}\n\n@Suppress(\"unused\")\nopen class AREA(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"area\", consumer, initialAttributes, null, true, true), HtmlBlockInlineTag {\n var coords : String\n get() = attributeStringString.get(this, \"coords\")\n set(newValue) {attributeStringString.set(this, \"coords\", newValue)}\n\n var href : String\n get() = attributeStringString.get(this, \"href\")\n set(newValue) {attributeStringString.set(this, \"href\", newValue)}\n\n var hrefLang : String\n get() = attributeStringString.get(this, \"hreflang\")\n set(newValue) {attributeStringString.set(this, \"hreflang\", newValue)}\n\n var alt : String\n get() = attributeStringString.get(this, \"alt\")\n set(newValue) {attributeStringString.set(this, \"alt\", newValue)}\n\n var target : String\n get() = attributeStringString.get(this, \"target\")\n set(newValue) {attributeStringString.set(this, \"target\", newValue)}\n\n var media : String\n get() = attributeStringString.get(this, \"media\")\n set(newValue) {attributeStringString.set(this, \"media\", newValue)}\n\n var rel : String\n get() = attributeStringString.get(this, \"rel\")\n set(newValue) {attributeStringString.set(this, \"rel\", newValue)}\n\n var ping : String\n get() = attributeStringString.get(this, \"ping\")\n set(newValue) {attributeStringString.set(this, \"ping\", newValue)}\n\n var type : String\n get() = attributeStringString.get(this, \"type\")\n set(newValue) {attributeStringString.set(this, \"type\", newValue)}\n\n\n}\nval AREA.asFlowContent : FlowContent\n get() = this\n\nval AREA.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class ARTICLE(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"article\", consumer, initialAttributes, null, false, false), CommonAttributeGroupFacadeFlowSectioningContent {\n\n}\nval ARTICLE.asFlowContent : FlowContent\n get() = this\n\nval ARTICLE.asSectioningContent : SectioningContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class ASIDE(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"aside\", consumer, initialAttributes, null, false, false), CommonAttributeGroupFacadeFlowSectioningContent {\n\n}\nval ASIDE.asFlowContent : FlowContent\n get() = this\n\nval ASIDE.asSectioningContent : SectioningContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class AUDIO(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"audio\", consumer, initialAttributes, null, false, false), CommonAttributeGroupFacadeFlowInteractivePhrasingContent {\n var src : String\n get() = attributeStringString.get(this, \"src\")\n set(newValue) {attributeStringString.set(this, \"src\", newValue)}\n\n var autoBuffer : Boolean\n get() = attributeBooleanTicker.get(this, \"autobuffer\")\n set(newValue) {attributeBooleanTicker.set(this, \"autobuffer\", newValue)}\n\n var autoPlay : Boolean\n get() = attributeBooleanTicker.get(this, \"autoplay\")\n set(newValue) {attributeBooleanTicker.set(this, \"autoplay\", newValue)}\n\n var loop : Boolean\n get() = attributeBooleanTicker.get(this, \"loop\")\n set(newValue) {attributeBooleanTicker.set(this, \"loop\", newValue)}\n\n var controls : Boolean\n get() = attributeBooleanTicker.get(this, \"controls\")\n set(newValue) {attributeBooleanTicker.set(this, \"controls\", newValue)}\n\n\n}\n/**\n * Media source for \n */\n@HtmlTagMarker\ninline fun AUDIO.source(classes : String? = null, crossinline block : SOURCE.() -> Unit = {}) : Unit = SOURCE(attributesMapOf(\"class\", classes), consumer).visit(block)\n\nval AUDIO.asFlowContent : FlowContent\n get() = this\n\nval AUDIO.asInteractiveContent : InteractiveContent\n get() = this\n\nval AUDIO.asPhrasingContent : PhrasingContent\n get() = this\n\n\n","package kotlinx.html\n\nimport kotlinx.html.*\nimport kotlinx.html.impl.*\nimport kotlinx.html.attributes.*\n\n/*******************************************************************************\n DO NOT EDIT\n This file was generated by module generate\n*******************************************************************************/\n\n@Suppress(\"unused\")\nopen class B(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"b\", consumer, initialAttributes, null, true, false), HtmlBlockInlineTag {\n\n}\nval B.asFlowContent : FlowContent\n get() = this\n\nval B.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class BASE(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"base\", consumer, initialAttributes, null, true, true), HtmlHeadTag {\n var href : String\n get() = attributeStringString.get(this, \"href\")\n set(newValue) {attributeStringString.set(this, \"href\", newValue)}\n\n var target : String\n get() = attributeStringString.get(this, \"target\")\n set(newValue) {attributeStringString.set(this, \"target\", newValue)}\n\n\n}\n\n@Suppress(\"unused\")\nopen class BDI(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"bdi\", consumer, initialAttributes, null, true, false), HtmlBlockInlineTag {\n\n}\nval BDI.asFlowContent : FlowContent\n get() = this\n\nval BDI.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class BDO(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"bdo\", consumer, initialAttributes, null, true, false), HtmlBlockInlineTag {\n\n}\nval BDO.asFlowContent : FlowContent\n get() = this\n\nval BDO.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class BLOCKQUOTE(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"blockquote\", consumer, initialAttributes, null, false, false), HtmlBlockTag {\n var cite : String\n get() = attributeStringString.get(this, \"cite\")\n set(newValue) {attributeStringString.set(this, \"cite\", newValue)}\n\n\n}\n\n@Suppress(\"unused\")\nopen class BODY(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"body\", consumer, initialAttributes, null, false, false), HtmlBlockTag {\n var onAfterprint : String\n get() = attributeStringString.get(this, \"onafterprint\")\n set(newValue) {attributeStringString.set(this, \"onafterprint\", newValue)}\n\n var onBeforeprint : String\n get() = attributeStringString.get(this, \"onbeforeprint\")\n set(newValue) {attributeStringString.set(this, \"onbeforeprint\", newValue)}\n\n var onBeforeunLoad : String\n get() = attributeStringString.get(this, \"onbeforeunload\")\n set(newValue) {attributeStringString.set(this, \"onbeforeunload\", newValue)}\n\n var onHashChange : String\n get() = attributeStringString.get(this, \"onhashchange\")\n set(newValue) {attributeStringString.set(this, \"onhashchange\", newValue)}\n\n var onMessage : String\n get() = attributeStringString.get(this, \"onmessage\")\n set(newValue) {attributeStringString.set(this, \"onmessage\", newValue)}\n\n var onOffline : String\n get() = attributeStringString.get(this, \"onoffline\")\n set(newValue) {attributeStringString.set(this, \"onoffline\", newValue)}\n\n var onOnline : String\n get() = attributeStringString.get(this, \"ononline\")\n set(newValue) {attributeStringString.set(this, \"ononline\", newValue)}\n\n var onPopstate : String\n get() = attributeStringString.get(this, \"onpopstate\")\n set(newValue) {attributeStringString.set(this, \"onpopstate\", newValue)}\n\n var onRedo : String\n get() = attributeStringString.get(this, \"onredo\")\n set(newValue) {attributeStringString.set(this, \"onredo\", newValue)}\n\n var onResize : String\n get() = attributeStringString.get(this, \"onresize\")\n set(newValue) {attributeStringString.set(this, \"onresize\", newValue)}\n\n var onStorage : String\n get() = attributeStringString.get(this, \"onstorage\")\n set(newValue) {attributeStringString.set(this, \"onstorage\", newValue)}\n\n var onUndo : String\n get() = attributeStringString.get(this, \"onundo\")\n set(newValue) {attributeStringString.set(this, \"onundo\", newValue)}\n\n var onUnLoad : String\n get() = attributeStringString.get(this, \"onunload\")\n set(newValue) {attributeStringString.set(this, \"onunload\", newValue)}\n\n\n}\n\n@Suppress(\"unused\")\nopen class BR(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"br\", consumer, initialAttributes, null, true, true), HtmlBlockInlineTag {\n\n}\nval BR.asFlowContent : FlowContent\n get() = this\n\nval BR.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class BUTTON(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"button\", consumer, initialAttributes, null, true, false), CommonAttributeGroupFacadeFlowInteractivePhrasingContent {\n var autoFocus : Boolean\n get() = attributeBooleanTicker.get(this, \"autofocus\")\n set(newValue) {attributeBooleanTicker.set(this, \"autofocus\", newValue)}\n\n var disabled : Boolean\n get() = attributeBooleanTicker.get(this, \"disabled\")\n set(newValue) {attributeBooleanTicker.set(this, \"disabled\", newValue)}\n\n var form : String\n get() = attributeStringString.get(this, \"form\")\n set(newValue) {attributeStringString.set(this, \"form\", newValue)}\n\n var formAction : String\n get() = attributeStringString.get(this, \"formaction\")\n set(newValue) {attributeStringString.set(this, \"formaction\", newValue)}\n\n var formEncType : ButtonFormEncType\n get() = attributeButtonFormEncTypeEnumButtonFormEncTypeValues.get(this, \"formenctype\")\n set(newValue) {attributeButtonFormEncTypeEnumButtonFormEncTypeValues.set(this, \"formenctype\", newValue)}\n\n var formMethod : ButtonFormMethod\n get() = attributeButtonFormMethodEnumButtonFormMethodValues.get(this, \"formmethod\")\n set(newValue) {attributeButtonFormMethodEnumButtonFormMethodValues.set(this, \"formmethod\", newValue)}\n\n var formNovalidate : Boolean\n get() = attributeBooleanTicker.get(this, \"formnovalidate\")\n set(newValue) {attributeBooleanTicker.set(this, \"formnovalidate\", newValue)}\n\n var formTarget : String\n get() = attributeStringString.get(this, \"formtarget\")\n set(newValue) {attributeStringString.set(this, \"formtarget\", newValue)}\n\n var name : String\n get() = attributeStringString.get(this, \"name\")\n set(newValue) {attributeStringString.set(this, \"name\", newValue)}\n\n var value : String\n get() = attributeStringString.get(this, \"value\")\n set(newValue) {attributeStringString.set(this, \"value\", newValue)}\n\n var type : ButtonType\n get() = attributeButtonTypeEnumButtonTypeValues.get(this, \"type\")\n set(newValue) {attributeButtonTypeEnumButtonTypeValues.set(this, \"type\", newValue)}\n\n\n}\nval BUTTON.asFlowContent : FlowContent\n get() = this\n\nval BUTTON.asInteractiveContent : InteractiveContent\n get() = this\n\nval BUTTON.asPhrasingContent : PhrasingContent\n get() = this\n\n\n","package kotlinx.html\n\nimport kotlinx.html.*\nimport kotlinx.html.impl.*\nimport kotlinx.html.attributes.*\n\n/*******************************************************************************\n DO NOT EDIT\n This file was generated by module generate\n*******************************************************************************/\n\n@Suppress(\"unused\")\nopen class CANVAS(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"canvas\", consumer, initialAttributes, null, false, false), HtmlBlockInlineTag {\n var width : String\n get() = attributeStringString.get(this, \"width\")\n set(newValue) {attributeStringString.set(this, \"width\", newValue)}\n\n var height : String\n get() = attributeStringString.get(this, \"height\")\n set(newValue) {attributeStringString.set(this, \"height\", newValue)}\n\n\n}\nval CANVAS.asFlowContent : FlowContent\n get() = this\n\nval CANVAS.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class CAPTION(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"caption\", consumer, initialAttributes, null, false, false), HtmlBlockTag {\n\n}\n\n@Suppress(\"unused\")\nopen class CITE(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"cite\", consumer, initialAttributes, null, true, false), HtmlBlockInlineTag {\n\n}\nval CITE.asFlowContent : FlowContent\n get() = this\n\nval CITE.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class CODE(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"code\", consumer, initialAttributes, null, true, false), HtmlBlockInlineTag {\n\n}\nval CODE.asFlowContent : FlowContent\n get() = this\n\nval CODE.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class COL(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"col\", consumer, initialAttributes, null, false, true), CommonAttributeGroupFacade {\n var span : String\n get() = attributeStringString.get(this, \"span\")\n set(newValue) {attributeStringString.set(this, \"span\", newValue)}\n\n\n}\n\n@Suppress(\"unused\")\nopen class COLGROUP(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"colgroup\", consumer, initialAttributes, null, false, false), CommonAttributeGroupFacade {\n var span : String\n get() = attributeStringString.get(this, \"span\")\n set(newValue) {attributeStringString.set(this, \"span\", newValue)}\n\n\n}\n/**\n * Table column\n */\n@HtmlTagMarker\ninline fun COLGROUP.col(classes : String? = null, crossinline block : COL.() -> Unit = {}) : Unit = COL(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n\n@Suppress(\"unused\")\nopen class COMMAND(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"command\", consumer, initialAttributes, null, true, true), CommonAttributeGroupFacadeFlowMetaDataPhrasingContent {\n var type : CommandType\n get() = attributeCommandTypeEnumCommandTypeValues.get(this, \"type\")\n set(newValue) {attributeCommandTypeEnumCommandTypeValues.set(this, \"type\", newValue)}\n\n var label : String\n get() = attributeStringString.get(this, \"label\")\n set(newValue) {attributeStringString.set(this, \"label\", newValue)}\n\n var icon : String\n get() = attributeStringString.get(this, \"icon\")\n set(newValue) {attributeStringString.set(this, \"icon\", newValue)}\n\n var disabled : Boolean\n get() = attributeBooleanTicker.get(this, \"disabled\")\n set(newValue) {attributeBooleanTicker.set(this, \"disabled\", newValue)}\n\n var checked : Boolean\n get() = attributeBooleanTicker.get(this, \"checked\")\n set(newValue) {attributeBooleanTicker.set(this, \"checked\", newValue)}\n\n var radioGroup : String\n get() = attributeStringString.get(this, \"radiogroup\")\n set(newValue) {attributeStringString.set(this, \"radiogroup\", newValue)}\n\n\n}\nval COMMAND.asFlowContent : FlowContent\n get() = this\n\nval COMMAND.asMetaDataContent : MetaDataContent\n get() = this\n\nval COMMAND.asPhrasingContent : PhrasingContent\n get() = this\n\n\n","package kotlinx.html\n\nimport kotlinx.html.*\nimport kotlinx.html.impl.*\nimport kotlinx.html.attributes.*\n\n/*******************************************************************************\n DO NOT EDIT\n This file was generated by module generate\n*******************************************************************************/\n\n@Suppress(\"unused\")\nopen class EM(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"em\", consumer, initialAttributes, null, true, false), HtmlBlockInlineTag {\n\n}\nval EM.asFlowContent : FlowContent\n get() = this\n\nval EM.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class EMBED(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"embed\", consumer, initialAttributes, null, true, true), CommonAttributeGroupFacadeFlowInteractivePhrasingContent {\n var src : String\n get() = attributeStringString.get(this, \"src\")\n set(newValue) {attributeStringString.set(this, \"src\", newValue)}\n\n var height : String\n get() = attributeStringString.get(this, \"height\")\n set(newValue) {attributeStringString.set(this, \"height\", newValue)}\n\n var width : String\n get() = attributeStringString.get(this, \"width\")\n set(newValue) {attributeStringString.set(this, \"width\", newValue)}\n\n var type : String\n get() = attributeStringString.get(this, \"type\")\n set(newValue) {attributeStringString.set(this, \"type\", newValue)}\n\n\n}\nval EMBED.asFlowContent : FlowContent\n get() = this\n\nval EMBED.asInteractiveContent : InteractiveContent\n get() = this\n\nval EMBED.asPhrasingContent : PhrasingContent\n get() = this\n\n\n","package kotlinx.html\n\nimport kotlinx.html.*\nimport kotlinx.html.impl.*\nimport kotlinx.html.attributes.*\n\n/*******************************************************************************\n DO NOT EDIT\n This file was generated by module generate\n*******************************************************************************/\n\n@Suppress(\"unused\")\nopen class H1(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"h1\", consumer, initialAttributes, null, false, false), CommonAttributeGroupFacadeFlowHeadingPhrasingContent {\n\n}\n\n@Suppress(\"unused\")\nopen class H2(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"h2\", consumer, initialAttributes, null, false, false), CommonAttributeGroupFacadeFlowHeadingPhrasingContent {\n\n}\n\n@Suppress(\"unused\")\nopen class H3(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"h3\", consumer, initialAttributes, null, false, false), CommonAttributeGroupFacadeFlowHeadingPhrasingContent {\n\n}\n\n@Suppress(\"unused\")\nopen class H4(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"h4\", consumer, initialAttributes, null, false, false), CommonAttributeGroupFacadeFlowHeadingPhrasingContent {\n\n}\n\n@Suppress(\"unused\")\nopen class H5(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"h5\", consumer, initialAttributes, null, false, false), CommonAttributeGroupFacadeFlowHeadingPhrasingContent {\n\n}\n\n@Suppress(\"unused\")\nopen class H6(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"h6\", consumer, initialAttributes, null, false, false), CommonAttributeGroupFacadeFlowHeadingPhrasingContent {\n\n}\n\n@Suppress(\"unused\")\nopen class HEAD(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"head\", consumer, initialAttributes, null, false, false), HtmlHeadTag {\n @Deprecated(\"This tag most likely doesn't support text content or requires unsafe content (try unsafe {}\")\n override operator fun Entities.unaryPlus() : Unit {\n @Suppress(\"DEPRECATION\") entity(this)\n }\n\n @Deprecated(\"This tag most likely doesn't support text content or requires unsafe content (try unsafe {}\")\n override operator fun String.unaryPlus() : Unit {\n @Suppress(\"DEPRECATION\") text(this)\n }\n\n @Deprecated(\"This tag most likely doesn't support text content or requires unsafe content (try unsafe {}\")\n override fun text(s : String) : Unit {\n super.text(s)\n }\n\n @Deprecated(\"This tag most likely doesn't support text content or requires unsafe content (try unsafe {}\")\n override fun text(n : Number) : Unit {\n super.text(n)\n }\n\n @Deprecated(\"This tag most likely doesn't support text content or requires unsafe content (try unsafe {}\")\n override fun entity(e : Entities) : Unit {\n super.entity(e)\n }\n\n}\n\n@Suppress(\"unused\")\nopen class HEADER(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"header\", consumer, initialAttributes, null, false, false), HtmlBlockTag {\n\n}\n\n@Suppress(\"unused\")\nopen class HGROUP(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"hgroup\", consumer, initialAttributes, null, false, false), CommonAttributeGroupFacadeFlowHeadingContent {\n\n}\n/**\n * Heading\n */\n@HtmlTagMarker\ninline fun HGROUP.h1(classes : String? = null, crossinline block : H1.() -> Unit = {}) : Unit = H1(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Heading\n */\n@HtmlTagMarker\ninline fun HGROUP.h2(classes : String? = null, crossinline block : H2.() -> Unit = {}) : Unit = H2(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Heading\n */\n@HtmlTagMarker\ninline fun HGROUP.h3(classes : String? = null, crossinline block : H3.() -> Unit = {}) : Unit = H3(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Heading\n */\n@HtmlTagMarker\ninline fun HGROUP.h4(classes : String? = null, crossinline block : H4.() -> Unit = {}) : Unit = H4(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Heading\n */\n@HtmlTagMarker\ninline fun HGROUP.h5(classes : String? = null, crossinline block : H5.() -> Unit = {}) : Unit = H5(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Heading\n */\n@HtmlTagMarker\ninline fun HGROUP.h6(classes : String? = null, crossinline block : H6.() -> Unit = {}) : Unit = H6(attributesMapOf(\"class\", classes), consumer).visit(block)\n\nval HGROUP.asFlowContent : FlowContent\n get() = this\n\nval HGROUP.asHeadingContent : HeadingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class HR(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"hr\", consumer, initialAttributes, null, false, true), HtmlBlockTag {\n\n}\n\n@Suppress(\"unused\")\nopen class HTML(initialAttributes : Map, override val consumer : TagConsumer<*>, namespace : String? = null) : HTMLTag(\"html\", consumer, initialAttributes, namespace, false, false), CommonAttributeGroupFacade {\n var manifest : String\n get() = attributeStringString.get(this, \"manifest\")\n set(newValue) {attributeStringString.set(this, \"manifest\", newValue)}\n\n @Deprecated(\"This tag most likely doesn't support text content or requires unsafe content (try unsafe {}\")\n override operator fun Entities.unaryPlus() : Unit {\n @Suppress(\"DEPRECATION\") entity(this)\n }\n\n @Deprecated(\"This tag most likely doesn't support text content or requires unsafe content (try unsafe {}\")\n override operator fun String.unaryPlus() : Unit {\n @Suppress(\"DEPRECATION\") text(this)\n }\n\n @Deprecated(\"This tag most likely doesn't support text content or requires unsafe content (try unsafe {}\")\n override fun text(s : String) : Unit {\n super.text(s)\n }\n\n @Deprecated(\"This tag most likely doesn't support text content or requires unsafe content (try unsafe {}\")\n override fun text(n : Number) : Unit {\n super.text(n)\n }\n\n @Deprecated(\"This tag most likely doesn't support text content or requires unsafe content (try unsafe {}\")\n override fun entity(e : Entities) : Unit {\n super.entity(e)\n }\n\n}\n/**\n * Document body\n */\n@HtmlTagMarker\ninline fun HTML.body(classes : String? = null, crossinline block : BODY.() -> Unit = {}) : Unit = BODY(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Document head\n */\n@HtmlTagMarker\ninline fun HTML.head(crossinline block : HEAD.() -> Unit = {}) : Unit = HEAD(emptyMap, consumer).visit(block)\n@Deprecated(\"This tag doesn't support content or requires unsafe (try unsafe {})\")\n@Suppress(\"DEPRECATION\")\n/**\n * Document head\n */\n@HtmlTagMarker\nfun HTML.head(content : String = \"\") : Unit = HEAD(emptyMap, consumer).visit({+content})\n\n\n","package kotlinx.html\n\nimport kotlinx.html.*\nimport kotlinx.html.impl.*\nimport kotlinx.html.attributes.*\n\n/*******************************************************************************\n DO NOT EDIT\n This file was generated by module generate\n*******************************************************************************/\n\n@Suppress(\"unused\")\nopen class I(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"i\", consumer, initialAttributes, null, true, false), HtmlBlockInlineTag {\n\n}\nval I.asFlowContent : FlowContent\n get() = this\n\nval I.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class IFRAME(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"iframe\", consumer, initialAttributes, null, true, false), CommonAttributeGroupFacadeFlowInteractivePhrasingContent {\n var name : String\n get() = attributeStringString.get(this, \"name\")\n set(newValue) {attributeStringString.set(this, \"name\", newValue)}\n\n var src : String\n get() = attributeStringString.get(this, \"src\")\n set(newValue) {attributeStringString.set(this, \"src\", newValue)}\n\n var height : String\n get() = attributeStringString.get(this, \"height\")\n set(newValue) {attributeStringString.set(this, \"height\", newValue)}\n\n var width : String\n get() = attributeStringString.get(this, \"width\")\n set(newValue) {attributeStringString.set(this, \"width\", newValue)}\n\n var sandbox : IframeSandbox\n get() = attributeIframeSandboxEnumIframeSandboxValues.get(this, \"sandbox\")\n set(newValue) {attributeIframeSandboxEnumIframeSandboxValues.set(this, \"sandbox\", newValue)}\n\n var seamless : Boolean\n get() = attributeBooleanTicker.get(this, \"seamless\")\n set(newValue) {attributeBooleanTicker.set(this, \"seamless\", newValue)}\n\n\n}\nval IFRAME.asFlowContent : FlowContent\n get() = this\n\nval IFRAME.asInteractiveContent : InteractiveContent\n get() = this\n\nval IFRAME.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class IMG(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"img\", consumer, initialAttributes, null, true, true), CommonAttributeGroupFacadeFlowInteractivePhrasingContent {\n var alt : String\n get() = attributeStringString.get(this, \"alt\")\n set(newValue) {attributeStringString.set(this, \"alt\", newValue)}\n\n var src : String\n get() = attributeStringString.get(this, \"src\")\n set(newValue) {attributeStringString.set(this, \"src\", newValue)}\n\n var height : String\n get() = attributeStringString.get(this, \"height\")\n set(newValue) {attributeStringString.set(this, \"height\", newValue)}\n\n var width : String\n get() = attributeStringString.get(this, \"width\")\n set(newValue) {attributeStringString.set(this, \"width\", newValue)}\n\n var usemap : String\n get() = attributeStringString.get(this, \"usemap\")\n set(newValue) {attributeStringString.set(this, \"usemap\", newValue)}\n\n var ismap : Boolean\n get() = attributeBooleanTicker.get(this, \"ismap\")\n set(newValue) {attributeBooleanTicker.set(this, \"ismap\", newValue)}\n\n\n}\nval IMG.asFlowContent : FlowContent\n get() = this\n\nval IMG.asInteractiveContent : InteractiveContent\n get() = this\n\nval IMG.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class INPUT(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"input\", consumer, initialAttributes, null, true, true), CommonAttributeGroupFacadeFlowInteractivePhrasingContent {\n var type : InputType\n get() = attributeInputTypeEnumInputTypeValues.get(this, \"type\")\n set(newValue) {attributeInputTypeEnumInputTypeValues.set(this, \"type\", newValue)}\n\n var accept : String\n get() = attributeStringString.get(this, \"accept\")\n set(newValue) {attributeStringString.set(this, \"accept\", newValue)}\n\n var alt : String\n get() = attributeStringString.get(this, \"alt\")\n set(newValue) {attributeStringString.set(this, \"alt\", newValue)}\n\n var autoFocus : Boolean\n get() = attributeBooleanTicker.get(this, \"autofocus\")\n set(newValue) {attributeBooleanTicker.set(this, \"autofocus\", newValue)}\n\n var autoComplete : Boolean\n get() = attributeBooleanBooleanOnOff.get(this, \"autocomplete\")\n set(newValue) {attributeBooleanBooleanOnOff.set(this, \"autocomplete\", newValue)}\n\n var checked : Boolean\n get() = attributeBooleanTicker.get(this, \"checked\")\n set(newValue) {attributeBooleanTicker.set(this, \"checked\", newValue)}\n\n var disabled : Boolean\n get() = attributeBooleanTicker.get(this, \"disabled\")\n set(newValue) {attributeBooleanTicker.set(this, \"disabled\", newValue)}\n\n var form : String\n get() = attributeStringString.get(this, \"form\")\n set(newValue) {attributeStringString.set(this, \"form\", newValue)}\n\n var formAction : String\n get() = attributeStringString.get(this, \"formaction\")\n set(newValue) {attributeStringString.set(this, \"formaction\", newValue)}\n\n var formEncType : InputFormEncType\n get() = attributeInputFormEncTypeEnumInputFormEncTypeValues.get(this, \"formenctype\")\n set(newValue) {attributeInputFormEncTypeEnumInputFormEncTypeValues.set(this, \"formenctype\", newValue)}\n\n var formMethod : InputFormMethod\n get() = attributeInputFormMethodEnumInputFormMethodValues.get(this, \"formmethod\")\n set(newValue) {attributeInputFormMethodEnumInputFormMethodValues.set(this, \"formmethod\", newValue)}\n\n var formNovalidate : Boolean\n get() = attributeBooleanTicker.get(this, \"formnovalidate\")\n set(newValue) {attributeBooleanTicker.set(this, \"formnovalidate\", newValue)}\n\n var formTarget : String\n get() = attributeStringString.get(this, \"formtarget\")\n set(newValue) {attributeStringString.set(this, \"formtarget\", newValue)}\n\n var height : String\n get() = attributeStringString.get(this, \"height\")\n set(newValue) {attributeStringString.set(this, \"height\", newValue)}\n\n var list : String\n get() = attributeStringString.get(this, \"list\")\n set(newValue) {attributeStringString.set(this, \"list\", newValue)}\n\n var max : String\n get() = attributeStringString.get(this, \"max\")\n set(newValue) {attributeStringString.set(this, \"max\", newValue)}\n\n var maxLength : String\n get() = attributeStringString.get(this, \"maxlength\")\n set(newValue) {attributeStringString.set(this, \"maxlength\", newValue)}\n\n var minLength : String\n get() = attributeStringString.get(this, \"minlength\")\n set(newValue) {attributeStringString.set(this, \"minlength\", newValue)}\n\n var min : String\n get() = attributeStringString.get(this, \"min\")\n set(newValue) {attributeStringString.set(this, \"min\", newValue)}\n\n var multiple : Boolean\n get() = attributeBooleanTicker.get(this, \"multiple\")\n set(newValue) {attributeBooleanTicker.set(this, \"multiple\", newValue)}\n\n var pattern : String\n get() = attributeStringString.get(this, \"pattern\")\n set(newValue) {attributeStringString.set(this, \"pattern\", newValue)}\n\n var placeholder : String\n get() = attributeStringString.get(this, \"placeholder\")\n set(newValue) {attributeStringString.set(this, \"placeholder\", newValue)}\n\n var readonly : Boolean\n get() = attributeBooleanTicker.get(this, \"readonly\")\n set(newValue) {attributeBooleanTicker.set(this, \"readonly\", newValue)}\n\n var required : Boolean\n get() = attributeBooleanTicker.get(this, \"required\")\n set(newValue) {attributeBooleanTicker.set(this, \"required\", newValue)}\n\n var size : String\n get() = attributeStringString.get(this, \"size\")\n set(newValue) {attributeStringString.set(this, \"size\", newValue)}\n\n var src : String\n get() = attributeStringString.get(this, \"src\")\n set(newValue) {attributeStringString.set(this, \"src\", newValue)}\n\n var step : String\n get() = attributeStringString.get(this, \"step\")\n set(newValue) {attributeStringString.set(this, \"step\", newValue)}\n\n var width : String\n get() = attributeStringString.get(this, \"width\")\n set(newValue) {attributeStringString.set(this, \"width\", newValue)}\n\n var files : String\n get() = attributeStringString.get(this, \"files\")\n set(newValue) {attributeStringString.set(this, \"files\", newValue)}\n\n var value : String\n get() = attributeStringString.get(this, \"value\")\n set(newValue) {attributeStringString.set(this, \"value\", newValue)}\n\n var name : String\n get() = attributeStringString.get(this, \"name\")\n set(newValue) {attributeStringString.set(this, \"name\", newValue)}\n\n\n}\nval INPUT.asFlowContent : FlowContent\n get() = this\n\nval INPUT.asInteractiveContent : InteractiveContent\n get() = this\n\nval INPUT.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class INS(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"ins\", consumer, initialAttributes, null, false, false), HtmlBlockInlineTag {\n var cite : String\n get() = attributeStringString.get(this, \"cite\")\n set(newValue) {attributeStringString.set(this, \"cite\", newValue)}\n\n var dateTime : String\n get() = attributeStringString.get(this, \"datetime\")\n set(newValue) {attributeStringString.set(this, \"datetime\", newValue)}\n\n\n}\nval INS.asFlowContent : FlowContent\n get() = this\n\nval INS.asPhrasingContent : PhrasingContent\n get() = this\n\n\n","package kotlinx.html\n\nimport kotlinx.html.*\nimport kotlinx.html.impl.*\nimport kotlinx.html.attributes.*\n\n/*******************************************************************************\n DO NOT EDIT\n This file was generated by module generate\n*******************************************************************************/\n\n@Suppress(\"unused\")\nopen class KBD(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"kbd\", consumer, initialAttributes, null, true, false), HtmlBlockInlineTag {\n\n}\nval KBD.asFlowContent : FlowContent\n get() = this\n\nval KBD.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class KEYGEN(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"keygen\", consumer, initialAttributes, null, true, true), CommonAttributeGroupFacadeFlowInteractivePhrasingContent {\n var autoFocus : Boolean\n get() = attributeBooleanTicker.get(this, \"autofocus\")\n set(newValue) {attributeBooleanTicker.set(this, \"autofocus\", newValue)}\n\n var challenge : String\n get() = attributeStringString.get(this, \"challenge\")\n set(newValue) {attributeStringString.set(this, \"challenge\", newValue)}\n\n var disabled : Boolean\n get() = attributeBooleanTicker.get(this, \"disabled\")\n set(newValue) {attributeBooleanTicker.set(this, \"disabled\", newValue)}\n\n var form : String\n get() = attributeStringString.get(this, \"form\")\n set(newValue) {attributeStringString.set(this, \"form\", newValue)}\n\n var keyType : KeyGenKeyType\n get() = attributeKeyGenKeyTypeEnumKeyGenKeyTypeValues.get(this, \"keytype\")\n set(newValue) {attributeKeyGenKeyTypeEnumKeyGenKeyTypeValues.set(this, \"keytype\", newValue)}\n\n var name : String\n get() = attributeStringString.get(this, \"name\")\n set(newValue) {attributeStringString.set(this, \"name\", newValue)}\n\n\n}\nval KEYGEN.asFlowContent : FlowContent\n get() = this\n\nval KEYGEN.asInteractiveContent : InteractiveContent\n get() = this\n\nval KEYGEN.asPhrasingContent : PhrasingContent\n get() = this\n\n\n","package kotlinx.html\n\nimport kotlinx.html.*\nimport kotlinx.html.impl.*\nimport kotlinx.html.attributes.*\n\n/*******************************************************************************\n DO NOT EDIT\n This file was generated by module generate\n*******************************************************************************/\n\n@Suppress(\"unused\")\nopen class LABEL(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"label\", consumer, initialAttributes, null, true, false), CommonAttributeGroupFacadeFlowInteractivePhrasingContent {\n var form : String\n get() = attributeStringString.get(this, \"form\")\n set(newValue) {attributeStringString.set(this, \"form\", newValue)}\n\n var htmlFor : String\n get() = attributeStringString.get(this, \"for\")\n set(newValue) {attributeStringString.set(this, \"for\", newValue)}\n\n\n}\nval LABEL.asFlowContent : FlowContent\n get() = this\n\nval LABEL.asInteractiveContent : InteractiveContent\n get() = this\n\nval LABEL.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class LEGEND(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"legend\", consumer, initialAttributes, null, true, false), HtmlBlockInlineTag {\n\n}\nval LEGEND.asFlowContent : FlowContent\n get() = this\n\nval LEGEND.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class LI(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"li\", consumer, initialAttributes, null, false, false), HtmlBlockTag {\n var value : String\n get() = attributeStringString.get(this, \"value\")\n set(newValue) {attributeStringString.set(this, \"value\", newValue)}\n\n\n}\n\n@Suppress(\"unused\")\nopen class LINK(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"link\", consumer, initialAttributes, null, false, true), CommonAttributeGroupFacadeFlowMetaDataPhrasingContent {\n var href : String\n get() = attributeStringString.get(this, \"href\")\n set(newValue) {attributeStringString.set(this, \"href\", newValue)}\n\n var hrefLang : String\n get() = attributeStringString.get(this, \"hreflang\")\n set(newValue) {attributeStringString.set(this, \"hreflang\", newValue)}\n\n var rel : String\n get() = attributeStringString.get(this, \"rel\")\n set(newValue) {attributeStringString.set(this, \"rel\", newValue)}\n\n var media : String\n get() = attributeStringString.get(this, \"media\")\n set(newValue) {attributeStringString.set(this, \"media\", newValue)}\n\n var type : String\n get() = attributeStringString.get(this, \"type\")\n set(newValue) {attributeStringString.set(this, \"type\", newValue)}\n\n var sizes : String\n get() = attributeStringString.get(this, \"sizes\")\n set(newValue) {attributeStringString.set(this, \"sizes\", newValue)}\n\n var integrity : String\n get() = attributeStringString.get(this, \"integrity\")\n set(newValue) {attributeStringString.set(this, \"integrity\", newValue)}\n\n\n}\nval LINK.asFlowContent : FlowContent\n get() = this\n\nval LINK.asMetaDataContent : MetaDataContent\n get() = this\n\nval LINK.asPhrasingContent : PhrasingContent\n get() = this\n\n\n","package kotlinx.html\n\nimport kotlinx.html.*\nimport kotlinx.html.impl.*\nimport kotlinx.html.attributes.*\n\n/*******************************************************************************\n DO NOT EDIT\n This file was generated by module generate\n*******************************************************************************/\n\n@Suppress(\"unused\")\nopen class MAIN(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"main\", consumer, initialAttributes, null, false, false), CommonAttributeGroupFacadeFlowPhrasingSectioningContent {\n\n}\n\n@Suppress(\"unused\")\nopen class MAP(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"map\", consumer, initialAttributes, null, true, false), HtmlBlockInlineTag {\n var name : String\n get() = attributeStringString.get(this, \"name\")\n set(newValue) {attributeStringString.set(this, \"name\", newValue)}\n\n\n}\nval MAP.asFlowContent : FlowContent\n get() = this\n\nval MAP.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class MARK(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"mark\", consumer, initialAttributes, null, true, false), HtmlBlockInlineTag {\n\n}\nval MARK.asFlowContent : FlowContent\n get() = this\n\nval MARK.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class MATH(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"math\", consumer, initialAttributes, null, false, false), HtmlBlockInlineTag {\n\n}\nval MATH.asFlowContent : FlowContent\n get() = this\n\nval MATH.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class MATHML(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"mathml\", consumer, initialAttributes, null, false, false), CommonAttributeGroupFacade {\n\n}\n\n@Suppress(\"unused\")\nopen class META(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"meta\", consumer, initialAttributes, null, false, true), CommonAttributeGroupFacadeFlowMetaDataPhrasingContent {\n var httpEquiv : String\n get() = attributeStringString.get(this, \"http-equiv\")\n set(newValue) {attributeStringString.set(this, \"http-equiv\", newValue)}\n\n var name : String\n get() = attributeStringString.get(this, \"name\")\n set(newValue) {attributeStringString.set(this, \"name\", newValue)}\n\n var content : String\n get() = attributeStringString.get(this, \"content\")\n set(newValue) {attributeStringString.set(this, \"content\", newValue)}\n\n var charset : String\n get() = attributeStringString.get(this, \"charset\")\n set(newValue) {attributeStringString.set(this, \"charset\", newValue)}\n\n\n}\nval META.asFlowContent : FlowContent\n get() = this\n\nval META.asMetaDataContent : MetaDataContent\n get() = this\n\nval META.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class METER(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"meter\", consumer, initialAttributes, null, true, false), HtmlBlockInlineTag {\n var value : String\n get() = attributeStringString.get(this, \"value\")\n set(newValue) {attributeStringString.set(this, \"value\", newValue)}\n\n var min : String\n get() = attributeStringString.get(this, \"min\")\n set(newValue) {attributeStringString.set(this, \"min\", newValue)}\n\n var max : String\n get() = attributeStringString.get(this, \"max\")\n set(newValue) {attributeStringString.set(this, \"max\", newValue)}\n\n var low : String\n get() = attributeStringString.get(this, \"low\")\n set(newValue) {attributeStringString.set(this, \"low\", newValue)}\n\n var high : String\n get() = attributeStringString.get(this, \"high\")\n set(newValue) {attributeStringString.set(this, \"high\", newValue)}\n\n var optimum : String\n get() = attributeStringString.get(this, \"optimum\")\n set(newValue) {attributeStringString.set(this, \"optimum\", newValue)}\n\n\n}\nval METER.asFlowContent : FlowContent\n get() = this\n\nval METER.asPhrasingContent : PhrasingContent\n get() = this\n\n\n","package kotlinx.html\n\nimport kotlinx.html.*\nimport kotlinx.html.impl.*\nimport kotlinx.html.attributes.*\n\n/*******************************************************************************\n DO NOT EDIT\n This file was generated by module generate\n*******************************************************************************/\n\n@Suppress(\"unused\")\nopen class NAV(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"nav\", consumer, initialAttributes, null, false, false), CommonAttributeGroupFacadeFlowSectioningContent {\n\n}\nval NAV.asFlowContent : FlowContent\n get() = this\n\nval NAV.asSectioningContent : SectioningContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class NOSCRIPT(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"noscript\", consumer, initialAttributes, null, false, false), CommonAttributeGroupFacadeFlowMetaDataPhrasingContent {\n\n}\nval NOSCRIPT.asFlowContent : FlowContent\n get() = this\n\nval NOSCRIPT.asMetaDataContent : MetaDataContent\n get() = this\n\nval NOSCRIPT.asPhrasingContent : PhrasingContent\n get() = this\n\n\n","package kotlinx.html\n\nimport kotlinx.html.*\nimport kotlinx.html.impl.*\nimport kotlinx.html.attributes.*\n\n/*******************************************************************************\n DO NOT EDIT\n This file was generated by module generate\n*******************************************************************************/\n\n@Suppress(\"unused\")\nopen class OBJECT(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"object\", consumer, initialAttributes, null, true, false), CommonAttributeGroupFacadeFlowInteractivePhrasingContent {\n var data : String\n get() = attributeStringString.get(this, \"data\")\n set(newValue) {attributeStringString.set(this, \"data\", newValue)}\n\n var type : String\n get() = attributeStringString.get(this, \"type\")\n set(newValue) {attributeStringString.set(this, \"type\", newValue)}\n\n var height : String\n get() = attributeStringString.get(this, \"height\")\n set(newValue) {attributeStringString.set(this, \"height\", newValue)}\n\n var width : String\n get() = attributeStringString.get(this, \"width\")\n set(newValue) {attributeStringString.set(this, \"width\", newValue)}\n\n var usemap : String\n get() = attributeStringString.get(this, \"usemap\")\n set(newValue) {attributeStringString.set(this, \"usemap\", newValue)}\n\n var name : String\n get() = attributeStringString.get(this, \"name\")\n set(newValue) {attributeStringString.set(this, \"name\", newValue)}\n\n var form : String\n get() = attributeStringString.get(this, \"form\")\n set(newValue) {attributeStringString.set(this, \"form\", newValue)}\n\n var classId : String\n get() = attributeStringString.get(this, \"classid\")\n set(newValue) {attributeStringString.set(this, \"classid\", newValue)}\n\n\n}\n/**\n * Named property value\n */\n@HtmlTagMarker\ninline fun OBJECT.param(name : String? = null, value : String? = null, crossinline block : PARAM.() -> Unit = {}) : Unit = PARAM(attributesMapOf(\"name\", name,\"value\", value), consumer).visit(block)\n\nval OBJECT.asFlowContent : FlowContent\n get() = this\n\nval OBJECT.asInteractiveContent : InteractiveContent\n get() = this\n\nval OBJECT.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class OL(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"ol\", consumer, initialAttributes, null, false, false), HtmlBlockTag {\n var start : String\n get() = attributeStringString.get(this, \"start\")\n set(newValue) {attributeStringString.set(this, \"start\", newValue)}\n\n var reversed : Boolean\n get() = attributeBooleanTicker.get(this, \"reversed\")\n set(newValue) {attributeBooleanTicker.set(this, \"reversed\", newValue)}\n\n\n}\n/**\n * List item\n */\n@HtmlTagMarker\ninline fun OL.li(classes : String? = null, crossinline block : LI.() -> Unit = {}) : Unit = LI(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n\n@Suppress(\"unused\")\nopen class OPTGROUP(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"optgroup\", consumer, initialAttributes, null, true, false), CommonAttributeGroupFacade {\n var disabled : Boolean\n get() = attributeBooleanTicker.get(this, \"disabled\")\n set(newValue) {attributeBooleanTicker.set(this, \"disabled\", newValue)}\n\n var label : String\n get() = attributeStringString.get(this, \"label\")\n set(newValue) {attributeStringString.set(this, \"label\", newValue)}\n\n\n}\n/**\n * Selectable choice\n */\n@HtmlTagMarker\ninline fun OPTGROUP.option(classes : String? = null, crossinline block : OPTION.() -> Unit = {}) : Unit = OPTION(attributesMapOf(\"class\", classes), consumer).visit(block)\n/**\n * Selectable choice\n */\n@HtmlTagMarker\nfun OPTGROUP.option(classes : String? = null, content : String = \"\") : Unit = OPTION(attributesMapOf(\"class\", classes), consumer).visit({+content})\n\n\n@Suppress(\"unused\")\nopen class OPTION(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"option\", consumer, initialAttributes, null, true, false), CommonAttributeGroupFacade {\n var disabled : Boolean\n get() = attributeBooleanTicker.get(this, \"disabled\")\n set(newValue) {attributeBooleanTicker.set(this, \"disabled\", newValue)}\n\n var selected : Boolean\n get() = attributeBooleanTicker.get(this, \"selected\")\n set(newValue) {attributeBooleanTicker.set(this, \"selected\", newValue)}\n\n var label : String\n get() = attributeStringString.get(this, \"label\")\n set(newValue) {attributeStringString.set(this, \"label\", newValue)}\n\n var value : String\n get() = attributeStringString.get(this, \"value\")\n set(newValue) {attributeStringString.set(this, \"value\", newValue)}\n\n\n}\n\n@Suppress(\"unused\")\nopen class OUTPUT(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"output\", consumer, initialAttributes, null, true, false), HtmlBlockInlineTag {\n var htmlFor : String\n get() = attributeStringString.get(this, \"for\")\n set(newValue) {attributeStringString.set(this, \"for\", newValue)}\n\n var form : String\n get() = attributeStringString.get(this, \"form\")\n set(newValue) {attributeStringString.set(this, \"form\", newValue)}\n\n var name : String\n get() = attributeStringString.get(this, \"name\")\n set(newValue) {attributeStringString.set(this, \"name\", newValue)}\n\n\n}\nval OUTPUT.asFlowContent : FlowContent\n get() = this\n\nval OUTPUT.asPhrasingContent : PhrasingContent\n get() = this\n\n\n","package kotlinx.html\n\nimport kotlinx.html.*\nimport kotlinx.html.impl.*\nimport kotlinx.html.attributes.*\n\n/*******************************************************************************\n DO NOT EDIT\n This file was generated by module generate\n*******************************************************************************/\n\n@Suppress(\"unused\")\nopen class P(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"p\", consumer, initialAttributes, null, false, false), HtmlBlockInlineTag {\n\n}\nval P.asFlowContent : FlowContent\n get() = this\n\nval P.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class PARAM(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"param\", consumer, initialAttributes, null, true, true) {\n var name : String\n get() = attributeStringString.get(this, \"name\")\n set(newValue) {attributeStringString.set(this, \"name\", newValue)}\n\n var value : String\n get() = attributeStringString.get(this, \"value\")\n set(newValue) {attributeStringString.set(this, \"value\", newValue)}\n\n\n}\n\n@Suppress(\"unused\")\nopen class PICTURE(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"picture\", consumer, initialAttributes, null, false, false), FlowInteractivePhrasingContent {\n\n}\n/**\n * Media source for \n */\n@HtmlTagMarker\ninline fun PICTURE.source(classes : String? = null, crossinline block : SOURCE.() -> Unit = {}) : Unit = SOURCE(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Embedded image\n */\n@HtmlTagMarker\ninline fun PICTURE.img(alt : String? = null, src : String? = null, classes : String? = null, crossinline block : IMG.() -> Unit = {}) : Unit = IMG(attributesMapOf(\"alt\", alt,\"src\", src,\"class\", classes), consumer).visit(block)\n\nval PICTURE.asFlowContent : FlowContent\n get() = this\n\nval PICTURE.asInteractiveContent : InteractiveContent\n get() = this\n\nval PICTURE.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class PRE(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"pre\", consumer, initialAttributes, null, false, false), HtmlBlockInlineTag {\n\n}\nval PRE.asFlowContent : FlowContent\n get() = this\n\nval PRE.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class PROGRESS(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"progress\", consumer, initialAttributes, null, true, false), HtmlBlockInlineTag {\n var value : String\n get() = attributeStringString.get(this, \"value\")\n set(newValue) {attributeStringString.set(this, \"value\", newValue)}\n\n var max : String\n get() = attributeStringString.get(this, \"max\")\n set(newValue) {attributeStringString.set(this, \"max\", newValue)}\n\n\n}\nval PROGRESS.asFlowContent : FlowContent\n get() = this\n\nval PROGRESS.asPhrasingContent : PhrasingContent\n get() = this\n\n\n","package kotlinx.html\n\nimport kotlinx.html.*\nimport kotlinx.html.impl.*\nimport kotlinx.html.attributes.*\n\n/*******************************************************************************\n DO NOT EDIT\n This file was generated by module generate\n*******************************************************************************/\n\n@Suppress(\"unused\")\nopen class Q(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"q\", consumer, initialAttributes, null, true, false), HtmlBlockInlineTag {\n var cite : String\n get() = attributeStringString.get(this, \"cite\")\n set(newValue) {attributeStringString.set(this, \"cite\", newValue)}\n\n\n}\nval Q.asFlowContent : FlowContent\n get() = this\n\nval Q.asPhrasingContent : PhrasingContent\n get() = this\n\n\n","package kotlinx.html\n\nimport kotlinx.html.*\nimport kotlinx.html.impl.*\nimport kotlinx.html.attributes.*\n\n/*******************************************************************************\n DO NOT EDIT\n This file was generated by module generate\n*******************************************************************************/\n\n@Suppress(\"unused\")\nopen class RP(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"rp\", consumer, initialAttributes, null, true, false), HtmlInlineTag {\n\n}\n\n@Suppress(\"unused\")\nopen class RT(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"rt\", consumer, initialAttributes, null, true, false), HtmlInlineTag {\n\n}\n\n@Suppress(\"unused\")\nopen class RUBY(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"ruby\", consumer, initialAttributes, null, true, false), HtmlBlockInlineTag {\n\n}\n/**\n * Ruby annotation text\n */\n@HtmlTagMarker\ninline fun RUBY.rt(classes : String? = null, crossinline block : RT.() -> Unit = {}) : Unit = RT(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Parenthesis for ruby annotation text\n */\n@HtmlTagMarker\ninline fun RUBY.rp(classes : String? = null, crossinline block : RP.() -> Unit = {}) : Unit = RP(attributesMapOf(\"class\", classes), consumer).visit(block)\n\nval RUBY.asFlowContent : FlowContent\n get() = this\n\nval RUBY.asPhrasingContent : PhrasingContent\n get() = this\n\n\n","package kotlinx.html\n\nimport kotlinx.html.*\nimport kotlinx.html.impl.*\nimport kotlinx.html.attributes.*\n\n/*******************************************************************************\n DO NOT EDIT\n This file was generated by module generate\n*******************************************************************************/\n\n@Suppress(\"unused\")\nopen class SAMP(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"samp\", consumer, initialAttributes, null, true, false), HtmlBlockInlineTag {\n\n}\nval SAMP.asFlowContent : FlowContent\n get() = this\n\nval SAMP.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class SCRIPT(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"script\", consumer, initialAttributes, null, false, false), FlowMetaDataPhrasingContent {\n var charset : String\n get() = attributeStringString.get(this, \"charset\")\n set(newValue) {attributeStringString.set(this, \"charset\", newValue)}\n\n var type : String\n get() = attributeStringString.get(this, \"type\")\n set(newValue) {attributeStringString.set(this, \"type\", newValue)}\n\n var src : String\n get() = attributeStringString.get(this, \"src\")\n set(newValue) {attributeStringString.set(this, \"src\", newValue)}\n\n var defer : Boolean\n get() = attributeBooleanTicker.get(this, \"defer\")\n set(newValue) {attributeBooleanTicker.set(this, \"defer\", newValue)}\n\n var async : Boolean\n get() = attributeBooleanTicker.get(this, \"async\")\n set(newValue) {attributeBooleanTicker.set(this, \"async\", newValue)}\n\n var nonce : String\n get() = attributeStringString.get(this, \"nonce\")\n set(newValue) {attributeStringString.set(this, \"nonce\", newValue)}\n\n var integrity : String\n get() = attributeStringString.get(this, \"integrity\")\n set(newValue) {attributeStringString.set(this, \"integrity\", newValue)}\n\n @Deprecated(\"This tag most likely doesn't support text content or requires unsafe content (try unsafe {}\")\n override operator fun Entities.unaryPlus() : Unit {\n @Suppress(\"DEPRECATION\") entity(this)\n }\n\n @Deprecated(\"This tag most likely doesn't support text content or requires unsafe content (try unsafe {}\")\n override operator fun String.unaryPlus() : Unit {\n @Suppress(\"DEPRECATION\") text(this)\n }\n\n @Deprecated(\"This tag most likely doesn't support text content or requires unsafe content (try unsafe {}\")\n override fun text(s : String) : Unit {\n super.text(s)\n }\n\n @Deprecated(\"This tag most likely doesn't support text content or requires unsafe content (try unsafe {}\")\n override fun text(n : Number) : Unit {\n super.text(n)\n }\n\n @Deprecated(\"This tag most likely doesn't support text content or requires unsafe content (try unsafe {}\")\n override fun entity(e : Entities) : Unit {\n super.entity(e)\n }\n\n}\nval SCRIPT.asFlowContent : FlowContent\n get() = this\n\nval SCRIPT.asMetaDataContent : MetaDataContent\n get() = this\n\nval SCRIPT.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class SECTION(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"section\", consumer, initialAttributes, null, false, false), CommonAttributeGroupFacadeFlowSectioningContent {\n\n}\nval SECTION.asFlowContent : FlowContent\n get() = this\n\nval SECTION.asSectioningContent : SectioningContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class SELECT(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"select\", consumer, initialAttributes, null, true, false), CommonAttributeGroupFacadeFlowInteractivePhrasingContent {\n var autoFocus : Boolean\n get() = attributeBooleanTicker.get(this, \"autofocus\")\n set(newValue) {attributeBooleanTicker.set(this, \"autofocus\", newValue)}\n\n var disabled : Boolean\n get() = attributeBooleanTicker.get(this, \"disabled\")\n set(newValue) {attributeBooleanTicker.set(this, \"disabled\", newValue)}\n\n var form : String\n get() = attributeStringString.get(this, \"form\")\n set(newValue) {attributeStringString.set(this, \"form\", newValue)}\n\n var multiple : Boolean\n get() = attributeBooleanTicker.get(this, \"multiple\")\n set(newValue) {attributeBooleanTicker.set(this, \"multiple\", newValue)}\n\n var name : String\n get() = attributeStringString.get(this, \"name\")\n set(newValue) {attributeStringString.set(this, \"name\", newValue)}\n\n var size : String\n get() = attributeStringString.get(this, \"size\")\n set(newValue) {attributeStringString.set(this, \"size\", newValue)}\n\n var required : Boolean\n get() = attributeBooleanTicker.get(this, \"required\")\n set(newValue) {attributeBooleanTicker.set(this, \"required\", newValue)}\n\n\n}\n/**\n * Selectable choice\n */\n@HtmlTagMarker\ninline fun SELECT.option(classes : String? = null, crossinline block : OPTION.() -> Unit = {}) : Unit = OPTION(attributesMapOf(\"class\", classes), consumer).visit(block)\n/**\n * Selectable choice\n */\n@HtmlTagMarker\nfun SELECT.option(classes : String? = null, content : String = \"\") : Unit = OPTION(attributesMapOf(\"class\", classes), consumer).visit({+content})\n\n/**\n * Option group\n */\n@HtmlTagMarker\ninline fun SELECT.optGroup(label : String? = null, classes : String? = null, crossinline block : OPTGROUP.() -> Unit = {}) : Unit = OPTGROUP(attributesMapOf(\"label\", label,\"class\", classes), consumer).visit(block)\n\nval SELECT.asFlowContent : FlowContent\n get() = this\n\nval SELECT.asInteractiveContent : InteractiveContent\n get() = this\n\nval SELECT.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class SMALL(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"small\", consumer, initialAttributes, null, true, false), HtmlBlockInlineTag {\n\n}\nval SMALL.asFlowContent : FlowContent\n get() = this\n\nval SMALL.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class SOURCE(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"source\", consumer, initialAttributes, null, true, true), CommonAttributeGroupFacade {\n var src : String\n get() = attributeStringString.get(this, \"src\")\n set(newValue) {attributeStringString.set(this, \"src\", newValue)}\n\n var type : String\n get() = attributeStringString.get(this, \"type\")\n set(newValue) {attributeStringString.set(this, \"type\", newValue)}\n\n var media : String\n get() = attributeStringString.get(this, \"media\")\n set(newValue) {attributeStringString.set(this, \"media\", newValue)}\n\n\n}\n\n@Suppress(\"unused\")\nopen class SPAN(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"span\", consumer, initialAttributes, null, true, false), HtmlBlockInlineTag {\n\n}\nval SPAN.asFlowContent : FlowContent\n get() = this\n\nval SPAN.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class STRONG(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"strong\", consumer, initialAttributes, null, true, false), HtmlBlockInlineTag {\n\n}\nval STRONG.asFlowContent : FlowContent\n get() = this\n\nval STRONG.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class STYLE(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"style\", consumer, initialAttributes, null, false, false), CommonAttributeGroupFacadeFlowMetaDataContent {\n var type : String\n get() = attributeStringString.get(this, \"type\")\n set(newValue) {attributeStringString.set(this, \"type\", newValue)}\n\n var media : String\n get() = attributeStringString.get(this, \"media\")\n set(newValue) {attributeStringString.set(this, \"media\", newValue)}\n\n var scoped : Boolean\n get() = attributeBooleanTicker.get(this, \"scoped\")\n set(newValue) {attributeBooleanTicker.set(this, \"scoped\", newValue)}\n\n var nonce : String\n get() = attributeStringString.get(this, \"nonce\")\n set(newValue) {attributeStringString.set(this, \"nonce\", newValue)}\n\n @Deprecated(\"This tag most likely doesn't support text content or requires unsafe content (try unsafe {}\")\n override operator fun Entities.unaryPlus() : Unit {\n @Suppress(\"DEPRECATION\") entity(this)\n }\n\n @Deprecated(\"This tag most likely doesn't support text content or requires unsafe content (try unsafe {}\")\n override operator fun String.unaryPlus() : Unit {\n @Suppress(\"DEPRECATION\") text(this)\n }\n\n @Deprecated(\"This tag most likely doesn't support text content or requires unsafe content (try unsafe {}\")\n override fun text(s : String) : Unit {\n super.text(s)\n }\n\n @Deprecated(\"This tag most likely doesn't support text content or requires unsafe content (try unsafe {}\")\n override fun text(n : Number) : Unit {\n super.text(n)\n }\n\n @Deprecated(\"This tag most likely doesn't support text content or requires unsafe content (try unsafe {}\")\n override fun entity(e : Entities) : Unit {\n super.entity(e)\n }\n\n}\nval STYLE.asFlowContent : FlowContent\n get() = this\n\nval STYLE.asMetaDataContent : MetaDataContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class SUB(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"sub\", consumer, initialAttributes, null, true, false), HtmlBlockInlineTag {\n\n}\nval SUB.asFlowContent : FlowContent\n get() = this\n\nval SUB.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class SUMMARY(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"summary\", consumer, initialAttributes, null, true, false), CommonAttributeGroupFacadeFlowHeadingPhrasingContent {\n\n}\n\n@Suppress(\"unused\")\nopen class SUP(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"sup\", consumer, initialAttributes, null, true, false), HtmlBlockInlineTag {\n\n}\nval SUP.asFlowContent : FlowContent\n get() = this\n\nval SUP.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class SVG(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"svg\", consumer, initialAttributes, \"http://www.w3.org/2000/svg\", false, false), HtmlBlockInlineTag {\n\n}\nval SVG.asFlowContent : FlowContent\n get() = this\n\nval SVG.asPhrasingContent : PhrasingContent\n get() = this\n\n\n","package kotlinx.html\n\nimport kotlinx.html.*\nimport kotlinx.html.impl.*\nimport kotlinx.html.attributes.*\n\n/*******************************************************************************\n DO NOT EDIT\n This file was generated by module generate\n*******************************************************************************/\n\n@Suppress(\"unused\")\nopen class TABLE(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"table\", consumer, initialAttributes, null, false, false), HtmlBlockTag {\n var summary : String\n get() = attributeStringString.get(this, \"summary\")\n set(newValue) {attributeStringString.set(this, \"summary\", newValue)}\n\n\n}\n/**\n * Table caption\n */\n@HtmlTagMarker\ninline fun TABLE.caption(classes : String? = null, crossinline block : CAPTION.() -> Unit = {}) : Unit = CAPTION(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Table column group\n */\n@HtmlTagMarker\ninline fun TABLE.colGroup(classes : String? = null, crossinline block : COLGROUP.() -> Unit = {}) : Unit = COLGROUP(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Table header\n */\n@HtmlTagMarker\ninline fun TABLE.thead(classes : String? = null, crossinline block : THEAD.() -> Unit = {}) : Unit = THEAD(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Table footer\n */\n@HtmlTagMarker\ninline fun TABLE.tfoot(classes : String? = null, crossinline block : TFOOT.() -> Unit = {}) : Unit = TFOOT(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Table body\n */\n@HtmlTagMarker\ninline fun TABLE.tbody(classes : String? = null, crossinline block : TBODY.() -> Unit = {}) : Unit = TBODY(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Table row\n */\n@HtmlTagMarker\ninline fun TABLE.tr(classes : String? = null, crossinline block : TR.() -> Unit = {}) : Unit = TR(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n\n@Suppress(\"unused\")\nopen class TBODY(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"tbody\", consumer, initialAttributes, null, false, false), CommonAttributeGroupFacade {\n\n}\n/**\n * Table row\n */\n@HtmlTagMarker\ninline fun TBODY.tr(classes : String? = null, crossinline block : TR.() -> Unit = {}) : Unit = TR(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n\n@Suppress(\"unused\")\nopen class TD(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"td\", consumer, initialAttributes, null, false, false), HtmlBlockTag {\n var headers : String\n get() = attributeStringString.get(this, \"headers\")\n set(newValue) {attributeStringString.set(this, \"headers\", newValue)}\n\n var rowSpan : String\n get() = attributeStringString.get(this, \"rowspan\")\n set(newValue) {attributeStringString.set(this, \"rowspan\", newValue)}\n\n var colSpan : String\n get() = attributeStringString.get(this, \"colspan\")\n set(newValue) {attributeStringString.set(this, \"colspan\", newValue)}\n\n\n}\n\n@Suppress(\"unused\")\nopen class TEXTAREA(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"textarea\", consumer, initialAttributes, null, true, false), CommonAttributeGroupFacadeFlowInteractivePhrasingContent {\n var autoFocus : Boolean\n get() = attributeBooleanTicker.get(this, \"autofocus\")\n set(newValue) {attributeBooleanTicker.set(this, \"autofocus\", newValue)}\n\n var disabled : Boolean\n get() = attributeBooleanTicker.get(this, \"disabled\")\n set(newValue) {attributeBooleanTicker.set(this, \"disabled\", newValue)}\n\n var form : String\n get() = attributeStringString.get(this, \"form\")\n set(newValue) {attributeStringString.set(this, \"form\", newValue)}\n\n var maxLength : String\n get() = attributeStringString.get(this, \"maxlength\")\n set(newValue) {attributeStringString.set(this, \"maxlength\", newValue)}\n\n var minLength : String\n get() = attributeStringString.get(this, \"minlength\")\n set(newValue) {attributeStringString.set(this, \"minlength\", newValue)}\n\n var name : String\n get() = attributeStringString.get(this, \"name\")\n set(newValue) {attributeStringString.set(this, \"name\", newValue)}\n\n var placeholder : String\n get() = attributeStringString.get(this, \"placeholder\")\n set(newValue) {attributeStringString.set(this, \"placeholder\", newValue)}\n\n var readonly : Boolean\n get() = attributeBooleanTicker.get(this, \"readonly\")\n set(newValue) {attributeBooleanTicker.set(this, \"readonly\", newValue)}\n\n var required : Boolean\n get() = attributeBooleanTicker.get(this, \"required\")\n set(newValue) {attributeBooleanTicker.set(this, \"required\", newValue)}\n\n var rows : String\n get() = attributeStringString.get(this, \"rows\")\n set(newValue) {attributeStringString.set(this, \"rows\", newValue)}\n\n var cols : String\n get() = attributeStringString.get(this, \"cols\")\n set(newValue) {attributeStringString.set(this, \"cols\", newValue)}\n\n var wrap : TextAreaWrap\n get() = attributeTextAreaWrapEnumTextAreaWrapValues.get(this, \"wrap\")\n set(newValue) {attributeTextAreaWrapEnumTextAreaWrapValues.set(this, \"wrap\", newValue)}\n\n\n}\nval TEXTAREA.asFlowContent : FlowContent\n get() = this\n\nval TEXTAREA.asInteractiveContent : InteractiveContent\n get() = this\n\nval TEXTAREA.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class TFOOT(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"tfoot\", consumer, initialAttributes, null, false, false), CommonAttributeGroupFacade {\n\n}\n/**\n * Table row\n */\n@HtmlTagMarker\ninline fun TFOOT.tr(classes : String? = null, crossinline block : TR.() -> Unit = {}) : Unit = TR(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n\n@Suppress(\"unused\")\nopen class TH(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"th\", consumer, initialAttributes, null, false, false), HtmlInlineTag {\n var headers : String\n get() = attributeStringString.get(this, \"headers\")\n set(newValue) {attributeStringString.set(this, \"headers\", newValue)}\n\n var rowSpan : String\n get() = attributeStringString.get(this, \"rowspan\")\n set(newValue) {attributeStringString.set(this, \"rowspan\", newValue)}\n\n var colSpan : String\n get() = attributeStringString.get(this, \"colspan\")\n set(newValue) {attributeStringString.set(this, \"colspan\", newValue)}\n\n var scope : ThScope\n get() = attributeThScopeEnumThScopeValues.get(this, \"scope\")\n set(newValue) {attributeThScopeEnumThScopeValues.set(this, \"scope\", newValue)}\n\n\n}\n\n@Suppress(\"unused\")\nopen class THEAD(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"thead\", consumer, initialAttributes, null, false, false), CommonAttributeGroupFacade {\n\n}\n/**\n * Table row\n */\n@HtmlTagMarker\ninline fun THEAD.tr(classes : String? = null, crossinline block : TR.() -> Unit = {}) : Unit = TR(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n\n@Suppress(\"unused\")\nopen class TIME(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"time\", consumer, initialAttributes, null, true, false), HtmlBlockInlineTag {\n var dateTime : String\n get() = attributeStringString.get(this, \"datetime\")\n set(newValue) {attributeStringString.set(this, \"datetime\", newValue)}\n\n\n}\nval TIME.asFlowContent : FlowContent\n get() = this\n\nval TIME.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class TITLE(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"title\", consumer, initialAttributes, null, false, false), HtmlHeadTag {\n\n}\n\n@Suppress(\"unused\")\nopen class TR(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"tr\", consumer, initialAttributes, null, false, false), CommonAttributeGroupFacade {\n\n}\n/**\n * Table header cell\n */\n@HtmlTagMarker\ninline fun TR.th(scope : ThScope? = null, classes : String? = null, crossinline block : TH.() -> Unit = {}) : Unit = TH(attributesMapOf(\"scope\", scope?.enumEncode(),\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun TR.colTh(classes : String? = null, crossinline block : TH.() -> Unit = {}) : Unit = TH(attributesMapOf(\"scope\", ThScope.col.realValue,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun TR.colGroupTh(classes : String? = null, crossinline block : TH.() -> Unit = {}) : Unit = TH(attributesMapOf(\"scope\", ThScope.colGroup.realValue,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun TR.rowTh(classes : String? = null, crossinline block : TH.() -> Unit = {}) : Unit = TH(attributesMapOf(\"scope\", ThScope.row.realValue,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun TR.rowGroupTh(classes : String? = null, crossinline block : TH.() -> Unit = {}) : Unit = TH(attributesMapOf(\"scope\", ThScope.rowGroup.realValue,\"class\", classes), consumer).visit(block)\n\n/**\n * Table data cell\n */\n@HtmlTagMarker\ninline fun TR.td(classes : String? = null, crossinline block : TD.() -> Unit = {}) : Unit = TD(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n\n","package kotlinx.html\n\nimport kotlinx.html.*\nimport kotlinx.html.impl.*\nimport kotlinx.html.attributes.*\n\n/*******************************************************************************\n DO NOT EDIT\n This file was generated by module generate\n*******************************************************************************/\n\n@Suppress(\"unused\")\nopen class UL(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"ul\", consumer, initialAttributes, null, false, false), HtmlBlockTag {\n\n}\n/**\n * List item\n */\n@HtmlTagMarker\ninline fun UL.li(classes : String? = null, crossinline block : LI.() -> Unit = {}) : Unit = LI(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n\n","package kotlinx.html\n\nimport kotlinx.html.*\nimport kotlinx.html.impl.*\nimport kotlinx.html.attributes.*\n\n/*******************************************************************************\n DO NOT EDIT\n This file was generated by module generate\n*******************************************************************************/\n\n@Suppress(\"unused\")\nopen class VAR(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"var\", consumer, initialAttributes, null, true, false), HtmlBlockInlineTag {\n\n}\nval VAR.asFlowContent : FlowContent\n get() = this\n\nval VAR.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class VIDEO(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"video\", consumer, initialAttributes, null, false, false), CommonAttributeGroupFacadeFlowInteractivePhrasingContent {\n var src : String\n get() = attributeStringString.get(this, \"src\")\n set(newValue) {attributeStringString.set(this, \"src\", newValue)}\n\n var autoBuffer : Boolean\n get() = attributeBooleanTicker.get(this, \"autobuffer\")\n set(newValue) {attributeBooleanTicker.set(this, \"autobuffer\", newValue)}\n\n var autoPlay : Boolean\n get() = attributeBooleanTicker.get(this, \"autoplay\")\n set(newValue) {attributeBooleanTicker.set(this, \"autoplay\", newValue)}\n\n var loop : Boolean\n get() = attributeBooleanTicker.get(this, \"loop\")\n set(newValue) {attributeBooleanTicker.set(this, \"loop\", newValue)}\n\n var controls : Boolean\n get() = attributeBooleanTicker.get(this, \"controls\")\n set(newValue) {attributeBooleanTicker.set(this, \"controls\", newValue)}\n\n var width : String\n get() = attributeStringString.get(this, \"width\")\n set(newValue) {attributeStringString.set(this, \"width\", newValue)}\n\n var height : String\n get() = attributeStringString.get(this, \"height\")\n set(newValue) {attributeStringString.set(this, \"height\", newValue)}\n\n var poster : String\n get() = attributeStringString.get(this, \"poster\")\n set(newValue) {attributeStringString.set(this, \"poster\", newValue)}\n\n\n}\n/**\n * Media source for \n */\n@HtmlTagMarker\ninline fun VIDEO.source(classes : String? = null, crossinline block : SOURCE.() -> Unit = {}) : Unit = SOURCE(attributesMapOf(\"class\", classes), consumer).visit(block)\n\nval VIDEO.asFlowContent : FlowContent\n get() = this\n\nval VIDEO.asInteractiveContent : InteractiveContent\n get() = this\n\nval VIDEO.asPhrasingContent : PhrasingContent\n get() = this\n\n\n","package kotlinx.html\n\nimport kotlinx.html.impl.*\n\nopen class HTMLTag(\n override val tagName: String,\n override val consumer: TagConsumer<*>,\n initialAttributes: Map,\n override val namespace: String? = null,\n override val inlineTag: Boolean,\n override val emptyTag: Boolean\n) : Tag {\n\n override val attributes: DelegatingMap = DelegatingMap(initialAttributes, this) { consumer }\n\n override val attributesEntries: Collection>\n get() = attributes.immutableEntries\n}\n","package kotlinx.html.consumers\n\nimport kotlinx.html.*\nimport org.w3c.dom.events.*\n\ndata class TimedResult(val result: T, val time: Long)\n\nval TimedResult.out: O\n get() = result\n\nprivate class TimeMeasureConsumer(val downstream: TagConsumer) : TagConsumer> {\n private val start = currentTimeMillis()\n\n override fun onTagStart(tag: Tag) {\n downstream.onTagStart(tag)\n }\n\n override fun onTagAttributeChange(tag: Tag, attribute: String, value: String?) {\n downstream.onTagAttributeChange(tag, attribute, value)\n }\n\n override fun onTagEvent(tag: Tag, event: String, value: (Event) -> Unit) {\n downstream.onTagEvent(tag, event, value)\n }\n\n override fun onTagEnd(tag: Tag) {\n downstream.onTagEnd(tag)\n }\n\n override fun onTagContent(content: CharSequence) {\n downstream.onTagContent(content)\n }\n\n override fun onTagContentEntity(entity: Entities) {\n downstream.onTagContentEntity(entity)\n }\n\n override fun onTagContentUnsafe(block: Unsafe.() -> Unit) {\n downstream.onTagContentUnsafe(block)\n }\n\n override fun onTagError(tag: Tag, exception: Throwable) {\n downstream.onTagError(tag, exception)\n }\n\n override fun onTagComment(content: CharSequence) {\n downstream.onTagComment(content)\n }\n\n override fun finalize(): TimedResult = TimedResult(downstream.finalize(), currentTimeMillis() - start)\n}\n\nfun TagConsumer.measureTime(): TagConsumer> = TimeMeasureConsumer(this)","package kotlinx.html.stream\n\nimport kotlinx.html.*\nimport kotlinx.html.consumers.*\nimport org.w3c.dom.events.*\n\nclass HTMLStreamBuilder(val out: O, val prettyPrint: Boolean, val xhtmlCompatible: Boolean) :\n TagConsumer {\n private var level = 0\n private var ln = true\n\n override fun onTagStart(tag: Tag) {\n if (prettyPrint && !tag.inlineTag) {\n indent()\n }\n level++\n\n out.append(\"<\")\n out.append(tag.tagName)\n\n if (tag.namespace != null) {\n out.append(\" xmlns=\\\"\")\n out.append(tag.namespace)\n out.append(\"\\\"\")\n }\n\n if (tag.attributes.isNotEmpty()) {\n tag.attributesEntries.forEachIndexed { _, e ->\n if (!e.key.isValidXmlAttributeName()) {\n throw IllegalArgumentException(\"Tag ${tag.tagName} has invalid attribute name ${e.key}\")\n }\n\n out.append(' ')\n out.append(e.key)\n out.append(\"=\\\"\")\n out.escapeAppend(e.value)\n out.append('\\\"')\n }\n }\n\n if (xhtmlCompatible && tag.emptyTag) {\n out.append(\"/\")\n }\n\n out.append(\">\")\n ln = false\n }\n\n override fun onTagAttributeChange(tag: Tag, attribute: String, value: String?) {\n throw UnsupportedOperationException(\"tag attribute can't be changed as it was already written to the stream. Use with DelayedConsumer to be able to modify attributes\")\n }\n\n override fun onTagEvent(tag: Tag, event: String, value: (Event) -> Unit) {\n throw UnsupportedOperationException(\"you can't assign lambda event handler when building text\")\n }\n\n override fun onTagEnd(tag: Tag) {\n level--\n if (ln) {\n indent()\n }\n\n if (!tag.emptyTag) {\n out.append(\"\")\n }\n\n if (prettyPrint && !tag.inlineTag) {\n appendln()\n }\n }\n\n override fun onTagContent(content: CharSequence) {\n out.escapeAppend(content)\n ln = false\n }\n\n override fun onTagContentEntity(entity: Entities) {\n out.append(entity.text)\n ln = false\n }\n\n override fun finalize(): O = out\n\n override fun onTagContentUnsafe(block: Unsafe.() -> Unit) {\n UnsafeImpl.block()\n }\n\n override fun onTagComment(content: CharSequence) {\n if (prettyPrint) {\n indent()\n }\n\n out.append(\"\")\n\n ln = false\n }\n\n val UnsafeImpl = object : Unsafe {\n override operator fun String.unaryPlus() {\n out.append(this)\n }\n }\n\n private fun appendln() {\n if (prettyPrint && !ln) {\n out.append(\"\\n\")\n ln = true\n }\n }\n\n private fun indent() {\n if (prettyPrint) {\n if (!ln) {\n out.append(\"\\n\")\n }\n var remaining = level\n while (remaining >= 4) {\n out.append(\" \")\n remaining -= 4\n }\n while (remaining >= 2) {\n out.append(\" \")\n remaining -= 2\n }\n if (remaining > 0) {\n out.append(\" \")\n }\n ln = false\n }\n }\n}\n\nprivate val AVERAGE_PAGE_SIZE = 32768\n\nfun createHTML(prettyPrint: Boolean = true, xhtmlCompatible: Boolean = false): TagConsumer =\n HTMLStreamBuilder(\n StringBuilder(AVERAGE_PAGE_SIZE),\n prettyPrint,\n xhtmlCompatible\n ).onFinalizeMap { sb, _ -> sb.toString() }.delayed()\n\nfun O.appendHTML(prettyPrint: Boolean = true, xhtmlCompatible: Boolean = false): TagConsumer =\n HTMLStreamBuilder(this, prettyPrint, xhtmlCompatible).delayed()\n\n@Deprecated(\"Should be resolved to the previous implementation\", level = DeprecationLevel.HIDDEN)\nfun O.appendHTML(prettyPrint: Boolean = true): TagConsumer =\n appendHTML(prettyPrint, false)\n\nprivate val escapeMap = mapOf(\n '<' to \"<\",\n '>' to \">\",\n '&' to \"&\",\n '\\\"' to \""\"\n).let { mappings ->\n val maxCode = mappings.keys.map { it.toInt() }.maxOrNull() ?: -1\n\n Array(maxCode + 1) { mappings[it.toChar()] }\n}\n\nprivate val letterRangeLowerCase = 'a'..'z'\nprivate val letterRangeUpperCase = 'A'..'Z'\nprivate val digitRange = '0'..'9'\n\nprivate fun Char._isLetter() = this in letterRangeLowerCase || this in letterRangeUpperCase\nprivate fun Char._isDigit() = this in digitRange\n\nprivate fun String.isValidXmlAttributeName() =\n !startsWithXml()\n && this.isNotEmpty()\n && (this[0]._isLetter() || this[0] == '_')\n && this.all { it._isLetter() || it._isDigit() || it in \"._:-\" }\n\nprivate fun String.startsWithXml() = length >= 3\n && (this[0].let { it == 'x' || it == 'X' })\n && (this[1].let { it == 'm' || it == 'M' })\n && (this[2].let { it == 'l' || it == 'L' })\n\nprivate fun Appendable.escapeAppend(s: CharSequence) {\n var lastIndex = 0\n val mappings = escapeMap\n val size = mappings.size\n\n for (idx in 0..s.length - 1) {\n val ch = s[idx].toInt()\n if (ch < 0 || ch >= size) continue\n val escape = mappings[ch]\n if (escape != null) {\n append(s.substring(lastIndex, idx))\n append(escape)\n lastIndex = idx + 1\n }\n }\n\n if (lastIndex < s.length) {\n append(s.substring(lastIndex, s.length))\n }\n}\n\nprivate fun Appendable.escapeComment(s: CharSequence) {\n var start = 0\n while (start < s.length) {\n val index = s.indexOf(\"--\")\n if (index == -1) {\n if (start == 0) {\n append(s)\n } else {\n append(s, start, s.length)\n }\n break\n }\n\n append(s, start, index)\n start += 2\n }\n}\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n@file:kotlin.jvm.JvmMultifileClass\n@file:kotlin.jvm.JvmName(\"StandardKt\")\npackage kotlin\n\nimport kotlin.contracts.*\n\n/**\n * An exception is thrown to indicate that a method body remains to be implemented.\n */\npublic class NotImplementedError(message: String = \"An operation is not implemented.\") : Error(message)\n\n/**\n * Always throws [NotImplementedError] stating that operation is not implemented.\n */\n\n@kotlin.internal.InlineOnly\npublic inline fun TODO(): Nothing = throw NotImplementedError()\n\n/**\n * Always throws [NotImplementedError] stating that operation is not implemented.\n *\n * @param reason a string explaining why the implementation is missing.\n */\n@kotlin.internal.InlineOnly\npublic inline fun TODO(reason: String): Nothing = throw NotImplementedError(\"An operation is not implemented: $reason\")\n\n\n\n/**\n * Calls the specified function [block] and returns its result.\n *\n * For detailed usage information see the documentation for [scope functions](https://kotlinlang.org/docs/reference/scope-functions.html#run).\n */\n@kotlin.internal.InlineOnly\npublic inline fun run(block: () -> R): R {\n contract {\n callsInPlace(block, InvocationKind.EXACTLY_ONCE)\n }\n return block()\n}\n\n/**\n * Calls the specified function [block] with `this` value as its receiver and returns its result.\n *\n * For detailed usage information see the documentation for [scope functions](https://kotlinlang.org/docs/reference/scope-functions.html#run).\n */\n@kotlin.internal.InlineOnly\npublic inline fun T.run(block: T.() -> R): R {\n contract {\n callsInPlace(block, InvocationKind.EXACTLY_ONCE)\n }\n return block()\n}\n\n/**\n * Calls the specified function [block] with the given [receiver] as its receiver and returns its result.\n *\n * For detailed usage information see the documentation for [scope functions](https://kotlinlang.org/docs/reference/scope-functions.html#with).\n */\n@kotlin.internal.InlineOnly\npublic inline fun with(receiver: T, block: T.() -> R): R {\n contract {\n callsInPlace(block, InvocationKind.EXACTLY_ONCE)\n }\n return receiver.block()\n}\n\n/**\n * Calls the specified function [block] with `this` value as its receiver and returns `this` value.\n *\n * For detailed usage information see the documentation for [scope functions](https://kotlinlang.org/docs/reference/scope-functions.html#apply).\n */\n@kotlin.internal.InlineOnly\npublic inline fun T.apply(block: T.() -> Unit): T {\n contract {\n callsInPlace(block, InvocationKind.EXACTLY_ONCE)\n }\n block()\n return this\n}\n\n/**\n * Calls the specified function [block] with `this` value as its argument and returns `this` value.\n *\n * For detailed usage information see the documentation for [scope functions](https://kotlinlang.org/docs/reference/scope-functions.html#also).\n */\n@kotlin.internal.InlineOnly\n@SinceKotlin(\"1.1\")\npublic inline fun T.also(block: (T) -> Unit): T {\n contract {\n callsInPlace(block, InvocationKind.EXACTLY_ONCE)\n }\n block(this)\n return this\n}\n\n/**\n * Calls the specified function [block] with `this` value as its argument and returns its result.\n *\n * For detailed usage information see the documentation for [scope functions](https://kotlinlang.org/docs/reference/scope-functions.html#let).\n */\n@kotlin.internal.InlineOnly\npublic inline fun T.let(block: (T) -> R): R {\n contract {\n callsInPlace(block, InvocationKind.EXACTLY_ONCE)\n }\n return block(this)\n}\n\n/**\n * Returns `this` value if it satisfies the given [predicate] or `null`, if it doesn't.\n *\n * For detailed usage information see the documentation for [scope functions](https://kotlinlang.org/docs/reference/scope-functions.html#takeif-and-takeunless).\n */\n@kotlin.internal.InlineOnly\n@SinceKotlin(\"1.1\")\npublic inline fun T.takeIf(predicate: (T) -> Boolean): T? {\n contract {\n callsInPlace(predicate, InvocationKind.EXACTLY_ONCE)\n }\n return if (predicate(this)) this else null\n}\n\n/**\n * Returns `this` value if it _does not_ satisfy the given [predicate] or `null`, if it does.\n *\n * For detailed usage information see the documentation for [scope functions](https://kotlinlang.org/docs/reference/scope-functions.html#takeif-and-takeunless).\n */\n@kotlin.internal.InlineOnly\n@SinceKotlin(\"1.1\")\npublic inline fun T.takeUnless(predicate: (T) -> Boolean): T? {\n contract {\n callsInPlace(predicate, InvocationKind.EXACTLY_ONCE)\n }\n return if (!predicate(this)) this else null\n}\n\n/**\n * Executes the given function [action] specified number of [times].\n *\n * A zero-based index of current iteration is passed as a parameter to [action].\n *\n * @sample samples.misc.ControlFlow.repeat\n */\n@kotlin.internal.InlineOnly\npublic inline fun repeat(times: Int, action: (Int) -> Unit) {\n contract { callsInPlace(action) }\n\n for (index in 0 until times) {\n action(index)\n }\n}\n","package kotlinx.html.consumers\n\nimport kotlinx.html.*\n\nclass TraceConsumer(val downstream: TagConsumer, val println: (String) -> Unit) : TagConsumer by downstream {\n private val id = \"ID-${currentTimeMillis() % 16384}\"\n private val path = ArrayList(1024)\n\n override fun onTagStart(tag: Tag) {\n downstream.onTagStart(tag)\n path.add(tag.tagName)\n\n println(\"[$id] open ${tag.tagName} path: ${path.joinToString(\" > \")}\")\n }\n\n override fun onTagEnd(tag: Tag) {\n downstream.onTagEnd(tag)\n path.removeAt(path.lastIndex)\n\n println(\"[$id] close ${tag.tagName} path: ${path.joinToString(\" > \")}\")\n }\n\n override fun onTagAttributeChange(tag: Tag, attribute: String, value: String?) {\n downstream.onTagAttributeChange(tag, attribute, value)\n\n println(\"[$id] ${tag.tagName}.$attribute changed to $value\")\n }\n\n override fun onTagError(tag: Tag, exception: Throwable) {\n println(\"[$id] exception in ${tag.tagName}: ${exception.message}\")\n\n downstream.onTagError(tag, exception)\n }\n\n override fun finalize(): R {\n val v = downstream.finalize()\n\n println(\"[$id] finalized: ${v.toString()}\")\n\n return v\n }\n}\n\nfun TagConsumer.trace(println: (String) -> Unit): TagConsumer = TraceConsumer(this, println)\n//header fun TagConsumer.trace() : TagConsumer\n","package kotlinx.html\n\nfun HEAD.styleLink(url: String): Unit = link {\n rel = LinkRel.stylesheet\n type = LinkType.textCss\n\n href = url\n}\n\nval Tag.br: Unit\n get() {\n val tag = BR(emptyMap(), consumer)\n consumer.onTagStart(tag)\n consumer.onTagEnd(tag)\n }\n\nexpect fun currentTimeMillis(): Long\n","package kotlinx.html.js\n\nimport kotlinx.html.*\nimport org.w3c.dom.*\n\n@Deprecated(\"Use legend instead\", ReplaceWith(\"legend(classes, block)\"))\ninline fun TagConsumer.legEnd(classes : String? = null, crossinline block : LEGEND.() -> Unit = {}) : HTMLLegendElement = legend(classes, block)\n\n@Deprecated(\"Use htmlObject instead\", ReplaceWith(\"htmlObject(classes, block)\", \"kotlinx.html.js.htmlObject\"))\ninline fun TagConsumer.object_(classes : String? = null, crossinline block : OBJECT.() -> Unit = {}) : HTMLElement =\n htmlObject(classes, block)\n\n@Deprecated(\"Use htmlVar instead\", ReplaceWith(\"htmlVar(classes, block)\", \"kotlinx.html.js.htmlVar\"))\ninline fun TagConsumer.var_(classes : String? = null, crossinline block : VAR.() -> Unit = {}) : HTMLElement =\n htmlVar(classes, block)\n","package kotlinx.html.js\n\nimport kotlinx.html.*\nimport kotlinx.html.impl.*\nimport kotlinx.html.attributes.*\nimport org.w3c.dom.*\n\n/*******************************************************************************\n DO NOT EDIT\n This file was generated by module generate\n*******************************************************************************/\n\n/**\n * Anchor\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.a(href : String? = null, target : String? = null, classes : String? = null, crossinline block : A.() -> Unit = {}) : HTMLAnchorElement = A(attributesMapOf(\"href\", href,\"target\", target,\"class\", classes), this).visitAndFinalize(this, block) as HTMLAnchorElement\n\n/**\n * Abbreviated form (e.g., WWW, HTTP,etc.)\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.abbr(classes : String? = null, crossinline block : ABBR.() -> Unit = {}) : HTMLElement = ABBR(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Information on author\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.address(classes : String? = null, crossinline block : ADDRESS.() -> Unit = {}) : HTMLElement = ADDRESS(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Client-side image map area\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.area(shape : AreaShape? = null, alt : String? = null, classes : String? = null, crossinline block : AREA.() -> Unit = {}) : HTMLAreaElement = AREA(attributesMapOf(\"Shape\", shape?.enumEncode(),\"alt\", alt,\"class\", classes), this).visitAndFinalize(this, block) as HTMLAreaElement\n\n/**\n * Self-contained syndicatable or reusable composition\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.article(classes : String? = null, crossinline block : ARTICLE.() -> Unit = {}) : HTMLElement = ARTICLE(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Sidebar for tangentially related content\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.aside(classes : String? = null, crossinline block : ASIDE.() -> Unit = {}) : HTMLElement = ASIDE(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Audio player\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.audio(classes : String? = null, crossinline block : AUDIO.() -> Unit = {}) : HTMLAudioElement = AUDIO(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLAudioElement\n\n/**\n * Bold text style\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.b(classes : String? = null, crossinline block : B.() -> Unit = {}) : HTMLElement = B(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Document base URI\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.base(classes : String? = null, crossinline block : BASE.() -> Unit = {}) : HTMLBaseElement = BASE(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLBaseElement\n\n/**\n * Text directionality isolation\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.bdi(classes : String? = null, crossinline block : BDI.() -> Unit = {}) : HTMLElement = BDI(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * I18N BiDi over-ride\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.bdo(classes : String? = null, crossinline block : BDO.() -> Unit = {}) : HTMLElement = BDO(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Long quotation\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.blockQuote(classes : String? = null, crossinline block : BLOCKQUOTE.() -> Unit = {}) : HTMLElement = BLOCKQUOTE(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Document body\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.body(classes : String? = null, crossinline block : BODY.() -> Unit = {}) : HTMLBodyElement = BODY(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLBodyElement\n\n/**\n * Forced line break\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.br(classes : String? = null, crossinline block : BR.() -> Unit = {}) : HTMLBRElement = BR(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLBRElement\n\n/**\n * Push button\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.button(formEncType : ButtonFormEncType? = null, formMethod : ButtonFormMethod? = null, name : String? = null, type : ButtonType? = null, classes : String? = null, crossinline block : BUTTON.() -> Unit = {}) : HTMLButtonElement = BUTTON(attributesMapOf(\"formenctype\", formEncType?.enumEncode(),\"formmethod\", formMethod?.enumEncode(),\"name\", name,\"type\", type?.enumEncode(),\"class\", classes), this).visitAndFinalize(this, block) as HTMLButtonElement\n\n/**\n * Scriptable bitmap canvas\n */\n@HtmlTagMarker\npublic fun TagConsumer.canvas(classes : String? = null, content : String = \"\") : HTMLCanvasElement = CANVAS(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, {+content}) as HTMLCanvasElement\n/**\n * Scriptable bitmap canvas\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.canvas(classes : String? = null, crossinline block : CANVAS.() -> Unit = {}) : HTMLCanvasElement = CANVAS(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLCanvasElement\n\n/**\n * Table caption\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.caption(classes : String? = null, crossinline block : CAPTION.() -> Unit = {}) : HTMLElement = CAPTION(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Citation\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.cite(classes : String? = null, crossinline block : CITE.() -> Unit = {}) : HTMLElement = CITE(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Computer code fragment\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.code(classes : String? = null, crossinline block : CODE.() -> Unit = {}) : HTMLElement = CODE(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Table column\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.col(classes : String? = null, crossinline block : COL.() -> Unit = {}) : HTMLTableColElement = COL(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLTableColElement\n\n/**\n * Table column group\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.colGroup(classes : String? = null, crossinline block : COLGROUP.() -> Unit = {}) : HTMLTableColElement = COLGROUP(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLTableColElement\n\n@HtmlTagMarker\npublic inline fun TagConsumer.command(type : CommandType? = null, classes : String? = null, crossinline block : COMMAND.() -> Unit = {}) : HTMLElement = COMMAND(attributesMapOf(\"type\", type?.enumEncode(),\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Container for options for \n */\n@HtmlTagMarker\npublic inline fun TagConsumer.dataList(classes : String? = null, crossinline block : DATALIST.() -> Unit = {}) : HTMLDataListElement = DATALIST(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLDataListElement\n\n/**\n * Definition description\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.dd(classes : String? = null, crossinline block : DD.() -> Unit = {}) : HTMLElement = DD(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Deleted text\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.del(classes : String? = null, crossinline block : DEL.() -> Unit = {}) : HTMLElement = DEL(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Disclosure control for hiding details\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.details(classes : String? = null, crossinline block : DETAILS.() -> Unit = {}) : HTMLDetailsElement = DETAILS(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLDetailsElement\n\n/**\n * Instance definition\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.dfn(classes : String? = null, crossinline block : DFN.() -> Unit = {}) : HTMLElement = DFN(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Dialog box or window\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.dialog(classes : String? = null, crossinline block : DIALOG.() -> Unit = {}) : HTMLDialogElement = DIALOG(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLDialogElement\n\n/**\n * Generic language/style container\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.div(classes : String? = null, crossinline block : DIV.() -> Unit = {}) : HTMLDivElement = DIV(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLDivElement\n\n/**\n * Definition list\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.dl(classes : String? = null, crossinline block : DL.() -> Unit = {}) : HTMLElement = DL(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Definition term\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.dt(classes : String? = null, crossinline block : DT.() -> Unit = {}) : HTMLElement = DT(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Emphasis\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.em(classes : String? = null, crossinline block : EM.() -> Unit = {}) : HTMLElement = EM(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Plugin\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.embed(classes : String? = null, crossinline block : EMBED.() -> Unit = {}) : HTMLEmbedElement = EMBED(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLEmbedElement\n\n/**\n * Form control group\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.fieldSet(classes : String? = null, crossinline block : FIELDSET.() -> Unit = {}) : HTMLFieldSetElement = FIELDSET(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLFieldSetElement\n\n/**\n * Caption for \n */\n@HtmlTagMarker\npublic inline fun TagConsumer.figcaption(classes : String? = null, crossinline block : FIGCAPTION.() -> Unit = {}) : HTMLElement = FIGCAPTION(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Figure with optional caption\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.figure(classes : String? = null, crossinline block : FIGURE.() -> Unit = {}) : HTMLElement = FIGURE(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Footer for a page or section\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.footer(classes : String? = null, crossinline block : FOOTER.() -> Unit = {}) : HTMLElement = FOOTER(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Interactive form\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.form(action : String? = null, encType : FormEncType? = null, method : FormMethod? = null, classes : String? = null, crossinline block : FORM.() -> Unit = {}) : HTMLFormElement = FORM(attributesMapOf(\"action\", action,\"enctype\", encType?.enumEncode(),\"method\", method?.enumEncode(),\"class\", classes), this).visitAndFinalize(this, block) as HTMLFormElement\n\n/**\n * Heading\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.h1(classes : String? = null, crossinline block : H1.() -> Unit = {}) : HTMLHeadingElement = H1(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLHeadingElement\n\n/**\n * Heading\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.h2(classes : String? = null, crossinline block : H2.() -> Unit = {}) : HTMLHeadingElement = H2(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLHeadingElement\n\n/**\n * Heading\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.h3(classes : String? = null, crossinline block : H3.() -> Unit = {}) : HTMLHeadingElement = H3(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLHeadingElement\n\n/**\n * Heading\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.h4(classes : String? = null, crossinline block : H4.() -> Unit = {}) : HTMLHeadingElement = H4(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLHeadingElement\n\n/**\n * Heading\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.h5(classes : String? = null, crossinline block : H5.() -> Unit = {}) : HTMLHeadingElement = H5(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLHeadingElement\n\n/**\n * Heading\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.h6(classes : String? = null, crossinline block : H6.() -> Unit = {}) : HTMLHeadingElement = H6(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLHeadingElement\n\n@Deprecated(\"This tag doesn't support content or requires unsafe (try unsafe {})\")\n@Suppress(\"DEPRECATION\")\n/**\n * Document head\n */\n@HtmlTagMarker\npublic fun TagConsumer.head(content : String = \"\") : HTMLHeadElement = HEAD(emptyMap, this).visitAndFinalize(this, {+content}) as HTMLHeadElement\n/**\n * Document head\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.head(crossinline block : HEAD.() -> Unit = {}) : HTMLHeadElement = HEAD(emptyMap, this).visitAndFinalize(this, block) as HTMLHeadElement\n\n/**\n * Introductory or navigational aids for a page or section\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.header(classes : String? = null, crossinline block : HEADER.() -> Unit = {}) : HTMLElement = HEADER(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n@HtmlTagMarker\npublic inline fun TagConsumer.hGroup(classes : String? = null, crossinline block : HGROUP.() -> Unit = {}) : HTMLElement = HGROUP(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Horizontal rule\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.hr(classes : String? = null, crossinline block : HR.() -> Unit = {}) : HTMLHRElement = HR(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLHRElement\n\n@Deprecated(\"This tag doesn't support content or requires unsafe (try unsafe {})\")\n@Suppress(\"DEPRECATION\")\n/**\n * Document root element\n */\n@HtmlTagMarker\npublic fun TagConsumer.html(content : String = \"\", namespace : String? = null) : HTMLHtmlElement = HTML(emptyMap, this, namespace).visitAndFinalize(this, {+content}) as HTMLHtmlElement\n/**\n * Document root element\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.html(namespace : String? = null, crossinline block : HTML.() -> Unit = {}) : HTMLHtmlElement = HTML(emptyMap, this, namespace).visitAndFinalize(this, block) as HTMLHtmlElement\n\n/**\n * Italic text style\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.i(classes : String? = null, crossinline block : I.() -> Unit = {}) : HTMLElement = I(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Inline subwindow\n */\n@HtmlTagMarker\npublic fun TagConsumer.iframe(sandbox : IframeSandbox? = null, classes : String? = null, content : String = \"\") : HTMLElement = IFRAME(attributesMapOf(\"sandbox\", sandbox?.enumEncode(),\"class\", classes), this).visitAndFinalize(this, {+content})\n/**\n * Inline subwindow\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.iframe(sandbox : IframeSandbox? = null, classes : String? = null, crossinline block : IFRAME.() -> Unit = {}) : HTMLElement = IFRAME(attributesMapOf(\"sandbox\", sandbox?.enumEncode(),\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Embedded image\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.img(alt : String? = null, src : String? = null, classes : String? = null, crossinline block : IMG.() -> Unit = {}) : HTMLImageElement = IMG(attributesMapOf(\"alt\", alt,\"src\", src,\"class\", classes), this).visitAndFinalize(this, block) as HTMLImageElement\n\n/**\n * Form control\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.input(type : InputType? = null, formEncType : InputFormEncType? = null, formMethod : InputFormMethod? = null, name : String? = null, classes : String? = null, crossinline block : INPUT.() -> Unit = {}) : HTMLInputElement = INPUT(attributesMapOf(\"type\", type?.enumEncode(),\"formenctype\", formEncType?.enumEncode(),\"formmethod\", formMethod?.enumEncode(),\"name\", name,\"class\", classes), this).visitAndFinalize(this, block) as HTMLInputElement\n\n/**\n * Inserted text\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.ins(classes : String? = null, crossinline block : INS.() -> Unit = {}) : HTMLElement = INS(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Text to be entered by the user\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.kbd(classes : String? = null, crossinline block : KBD.() -> Unit = {}) : HTMLElement = KBD(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Cryptographic key-pair generator form control\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.keyGen(keyType : KeyGenKeyType? = null, classes : String? = null, crossinline block : KEYGEN.() -> Unit = {}) : HTMLElement = KEYGEN(attributesMapOf(\"keytype\", keyType?.enumEncode(),\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Form field label text\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.label(classes : String? = null, crossinline block : LABEL.() -> Unit = {}) : HTMLLabelElement = LABEL(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLLabelElement\n\n/**\n * Fieldset legend\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.legend(classes : String? = null, crossinline block : LEGEND.() -> Unit = {}) : HTMLLegendElement = LEGEND(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLLegendElement\n\n/**\n * List item\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.li(classes : String? = null, crossinline block : LI.() -> Unit = {}) : HTMLLIElement = LI(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLLIElement\n\n/**\n * A media-independent link\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.link(href : String? = null, rel : String? = null, type : String? = null, crossinline block : LINK.() -> Unit = {}) : HTMLLinkElement = LINK(attributesMapOf(\"href\", href,\"rel\", rel,\"type\", type), this).visitAndFinalize(this, block) as HTMLLinkElement\n\n/**\n * Container for the dominant contents of another element\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.main(classes : String? = null, crossinline block : MAIN.() -> Unit = {}) : HTMLElement = MAIN(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Client-side image map\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.map(name : String? = null, classes : String? = null, crossinline block : MAP.() -> Unit = {}) : HTMLMapElement = MAP(attributesMapOf(\"name\", name,\"class\", classes), this).visitAndFinalize(this, block) as HTMLMapElement\n\n/**\n * Highlight\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.mark(classes : String? = null, crossinline block : MARK.() -> Unit = {}) : HTMLElement = MARK(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n@HtmlTagMarker\npublic inline fun TagConsumer.math(classes : String? = null, crossinline block : MATH.() -> Unit = {}) : HTMLElement = MATH(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n@HtmlTagMarker\npublic fun TagConsumer.mathml(classes : String? = null, content : String = \"\") : HTMLElement = MATHML(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, {+content})\n@HtmlTagMarker\npublic inline fun TagConsumer.mathml(classes : String? = null, crossinline block : MATHML.() -> Unit = {}) : HTMLElement = MATHML(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Generic metainformation\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.meta(name : String? = null, content : String? = null, charset : String? = null, crossinline block : META.() -> Unit = {}) : HTMLMetaElement = META(attributesMapOf(\"name\", name,\"content\", content,\"charset\", charset), this).visitAndFinalize(this, block) as HTMLMetaElement\n\n/**\n * Gauge\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.meter(classes : String? = null, crossinline block : METER.() -> Unit = {}) : HTMLMeterElement = METER(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLMeterElement\n\n/**\n * Section with navigational links\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.nav(classes : String? = null, crossinline block : NAV.() -> Unit = {}) : HTMLElement = NAV(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Generic metainformation\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.noScript(classes : String? = null, crossinline block : NOSCRIPT.() -> Unit = {}) : HTMLElement = NOSCRIPT(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Generic embedded object\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.htmlObject(classes : String? = null, crossinline block : OBJECT.() -> Unit = {}) : HTMLElement = OBJECT(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Ordered list\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.ol(classes : String? = null, crossinline block : OL.() -> Unit = {}) : HTMLElement = OL(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Option group\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.optGroup(label : String? = null, classes : String? = null, crossinline block : OPTGROUP.() -> Unit = {}) : HTMLOptGroupElement = OPTGROUP(attributesMapOf(\"label\", label,\"class\", classes), this).visitAndFinalize(this, block) as HTMLOptGroupElement\n\n/**\n * Selectable choice\n */\n@HtmlTagMarker\npublic fun TagConsumer.option(classes : String? = null, content : String = \"\") : HTMLOptionElement = OPTION(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, {+content}) as HTMLOptionElement\n/**\n * Selectable choice\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.option(classes : String? = null, crossinline block : OPTION.() -> Unit = {}) : HTMLOptionElement = OPTION(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLOptionElement\n\n/**\n * Calculated output value\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.output(classes : String? = null, crossinline block : OUTPUT.() -> Unit = {}) : HTMLOutputElement = OUTPUT(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLOutputElement\n\n/**\n * Paragraph\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.p(classes : String? = null, crossinline block : P.() -> Unit = {}) : HTMLParagraphElement = P(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLParagraphElement\n\n/**\n * Named property value\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.param(name : String? = null, value : String? = null, crossinline block : PARAM.() -> Unit = {}) : HTMLParamElement = PARAM(attributesMapOf(\"name\", name,\"value\", value), this).visitAndFinalize(this, block) as HTMLParamElement\n\n/**\n * Pictures container\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.picture(crossinline block : PICTURE.() -> Unit = {}) : HTMLPictureElement = PICTURE(emptyMap, this).visitAndFinalize(this, block) as HTMLPictureElement\n\n/**\n * Preformatted text\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.pre(classes : String? = null, crossinline block : PRE.() -> Unit = {}) : HTMLPreElement = PRE(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLPreElement\n\n/**\n * Progress bar\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.progress(classes : String? = null, crossinline block : PROGRESS.() -> Unit = {}) : HTMLProgressElement = PROGRESS(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLProgressElement\n\n/**\n * Short inline quotation\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.q(classes : String? = null, crossinline block : Q.() -> Unit = {}) : HTMLElement = Q(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Parenthesis for ruby annotation text\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.rp(classes : String? = null, crossinline block : RP.() -> Unit = {}) : HTMLElement = RP(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Ruby annotation text\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.rt(classes : String? = null, crossinline block : RT.() -> Unit = {}) : HTMLElement = RT(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Ruby annotation(s)\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.ruby(classes : String? = null, crossinline block : RUBY.() -> Unit = {}) : HTMLElement = RUBY(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Strike-through text style\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.samp(classes : String? = null, crossinline block : SAMP.() -> Unit = {}) : HTMLElement = SAMP(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n@Deprecated(\"This tag doesn't support content or requires unsafe (try unsafe {})\")\n@Suppress(\"DEPRECATION\")\n/**\n * Script statements\n */\n@HtmlTagMarker\npublic fun TagConsumer.script(type : String? = null, src : String? = null, content : String = \"\") : HTMLScriptElement = SCRIPT(attributesMapOf(\"type\", type,\"src\", src), this).visitAndFinalize(this, {+content}) as HTMLScriptElement\n/**\n * Script statements\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.script(type : String? = null, src : String? = null, crossinline block : SCRIPT.() -> Unit = {}) : HTMLScriptElement = SCRIPT(attributesMapOf(\"type\", type,\"src\", src), this).visitAndFinalize(this, block) as HTMLScriptElement\n\n/**\n * Generic document or application section\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.section(classes : String? = null, crossinline block : SECTION.() -> Unit = {}) : HTMLElement = SECTION(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Option selector\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.select(classes : String? = null, crossinline block : SELECT.() -> Unit = {}) : HTMLSelectElement = SELECT(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLSelectElement\n\n/**\n * Small text style\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.small(classes : String? = null, crossinline block : SMALL.() -> Unit = {}) : HTMLElement = SMALL(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Media source for \n */\n@HtmlTagMarker\npublic inline fun TagConsumer.source(classes : String? = null, crossinline block : SOURCE.() -> Unit = {}) : HTMLSourceElement = SOURCE(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLSourceElement\n\n/**\n * Generic language/style container\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.span(classes : String? = null, crossinline block : SPAN.() -> Unit = {}) : HTMLSpanElement = SPAN(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLSpanElement\n\n/**\n * Strong emphasis\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.strong(classes : String? = null, crossinline block : STRONG.() -> Unit = {}) : HTMLElement = STRONG(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n@Deprecated(\"This tag doesn't support content or requires unsafe (try unsafe {})\")\n@Suppress(\"DEPRECATION\")\n/**\n * Style info\n */\n@HtmlTagMarker\npublic fun TagConsumer.style(type : String? = null, content : String = \"\") : HTMLStyleElement = STYLE(attributesMapOf(\"type\", type), this).visitAndFinalize(this, {+content}) as HTMLStyleElement\n/**\n * Style info\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.style(type : String? = null, crossinline block : STYLE.() -> Unit = {}) : HTMLStyleElement = STYLE(attributesMapOf(\"type\", type), this).visitAndFinalize(this, block) as HTMLStyleElement\n\n/**\n * Subscript\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.sub(classes : String? = null, crossinline block : SUB.() -> Unit = {}) : HTMLElement = SUB(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Caption for \n */\n@HtmlTagMarker\npublic inline fun TagConsumer.summary(classes : String? = null, crossinline block : SUMMARY.() -> Unit = {}) : HTMLElement = SUMMARY(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Superscript\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.sup(classes : String? = null, crossinline block : SUP.() -> Unit = {}) : HTMLElement = SUP(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n@HtmlTagMarker\npublic fun TagConsumer.svg(classes : String? = null, content : String = \"\") : HTMLElement = SVG(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, {+content})\n@HtmlTagMarker\npublic inline fun TagConsumer.svg(classes : String? = null, crossinline block : SVG.() -> Unit = {}) : HTMLElement = SVG(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * \n */\n@HtmlTagMarker\npublic inline fun TagConsumer.table(classes : String? = null, crossinline block : TABLE.() -> Unit = {}) : HTMLTableElement = TABLE(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLTableElement\n\n/**\n * Table body\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.tbody(classes : String? = null, crossinline block : TBODY.() -> Unit = {}) : HTMLTableSectionElement = TBODY(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLTableSectionElement\n\n/**\n * Table data cell\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.td(classes : String? = null, crossinline block : TD.() -> Unit = {}) : HTMLTableCellElement = TD(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLTableCellElement\n\n/**\n * Multi-line text field\n */\n@HtmlTagMarker\npublic fun TagConsumer.textArea(rows : String? = null, cols : String? = null, wrap : TextAreaWrap? = null, classes : String? = null, content : String = \"\") : HTMLTextAreaElement = TEXTAREA(attributesMapOf(\"rows\", rows,\"cols\", cols,\"wrap\", wrap?.enumEncode(),\"class\", classes), this).visitAndFinalize(this, {+content}) as HTMLTextAreaElement\n/**\n * Multi-line text field\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.textArea(rows : String? = null, cols : String? = null, wrap : TextAreaWrap? = null, classes : String? = null, crossinline block : TEXTAREA.() -> Unit = {}) : HTMLTextAreaElement = TEXTAREA(attributesMapOf(\"rows\", rows,\"cols\", cols,\"wrap\", wrap?.enumEncode(),\"class\", classes), this).visitAndFinalize(this, block) as HTMLTextAreaElement\n\n/**\n * Table footer\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.tfoot(classes : String? = null, crossinline block : TFOOT.() -> Unit = {}) : HTMLTableSectionElement = TFOOT(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLTableSectionElement\n\n/**\n * Table header cell\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.th(scope : ThScope? = null, classes : String? = null, crossinline block : TH.() -> Unit = {}) : HTMLTableCellElement = TH(attributesMapOf(\"scope\", scope?.enumEncode(),\"class\", classes), this).visitAndFinalize(this, block) as HTMLTableCellElement\n\n/**\n * Table header\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.thead(classes : String? = null, crossinline block : THEAD.() -> Unit = {}) : HTMLTableSectionElement = THEAD(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLTableSectionElement\n\n/**\n * Machine-readable equivalent of date- or time-related data\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.time(classes : String? = null, crossinline block : TIME.() -> Unit = {}) : HTMLTimeElement = TIME(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLTimeElement\n\n/**\n * Document title\n */\n@HtmlTagMarker\npublic fun TagConsumer.title(content : String = \"\") : HTMLTitleElement = TITLE(emptyMap, this).visitAndFinalize(this, {+content}) as HTMLTitleElement\n/**\n * Document title\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.title(crossinline block : TITLE.() -> Unit = {}) : HTMLTitleElement = TITLE(emptyMap, this).visitAndFinalize(this, block) as HTMLTitleElement\n\n/**\n * Table row\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.tr(classes : String? = null, crossinline block : TR.() -> Unit = {}) : HTMLTableRowElement = TR(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLTableRowElement\n\n/**\n * Unordered list\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.ul(classes : String? = null, crossinline block : UL.() -> Unit = {}) : HTMLElement = UL(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Unordered list\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.htmlVar(classes : String? = null, crossinline block : VAR.() -> Unit = {}) : HTMLElement = VAR(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Video player\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.video(classes : String? = null, crossinline block : VIDEO.() -> Unit = {}) : HTMLVideoElement = VIDEO(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLVideoElement\n\n","package kotlinx.html.dom\n\nimport kotlinx.html.*\nimport kotlinx.html.consumers.*\nimport org.w3c.dom.*\nimport org.w3c.dom.events.*\n\n@Suppress(\"NOTHING_TO_INLINE\")\nprivate inline fun HTMLElement.setEvent(name: String, noinline callback : (Event) -> Unit) : Unit {\n asDynamic()[name] = callback\n}\n\nclass JSDOMBuilder(val document : Document) : TagConsumer {\n private val path = arrayListOf()\n private var lastLeaved : HTMLElement? = null\n\n override fun onTagStart(tag: Tag) {\n val element: HTMLElement = when {\n tag.namespace != null -> document.createElementNS(tag.namespace!!, tag.tagName).asDynamic()\n else -> document.createElement(tag.tagName) as HTMLElement\n }\n\n tag.attributesEntries.forEach {\n element.setAttribute(it.key, it.value)\n }\n\n if (path.isNotEmpty()) {\n path.last().appendChild(element)\n }\n\n path.add(element)\n }\n\n override fun onTagAttributeChange(tag: Tag, attribute: String, value: String?) {\n when {\n path.isEmpty() -> throw IllegalStateException(\"No current tag\")\n path.last().tagName.toLowerCase() != tag.tagName.toLowerCase() -> throw IllegalStateException(\"Wrong current tag\")\n else -> path.last().let { node ->\n if (value == null) {\n node.removeAttribute(attribute)\n } else {\n node.setAttribute(attribute, value)\n }\n }\n }\n }\n\n override fun onTagEvent(tag: Tag, event: String, value: (Event) -> Unit) {\n when {\n path.isEmpty() -> throw IllegalStateException(\"No current tag\")\n path.last().tagName.toLowerCase() != tag.tagName.toLowerCase() -> throw IllegalStateException(\"Wrong current tag\")\n else -> path.last().setEvent(event, value)\n }\n }\n\n override fun onTagEnd(tag: Tag) {\n if (path.isEmpty() || path.last().tagName.toLowerCase() != tag.tagName.toLowerCase()) {\n throw IllegalStateException(\"We haven't entered tag ${tag.tagName} but trying to leave\")\n }\n\n lastLeaved = path.removeAt(path.lastIndex)\n }\n\n override fun onTagContent(content: CharSequence) {\n if (path.isEmpty()) {\n throw IllegalStateException(\"No current DOM node\")\n }\n\n path.last().appendChild(document.createTextNode(content.toString()))\n }\n\n override fun onTagContentEntity(entity: Entities) {\n if (path.isEmpty()) {\n throw IllegalStateException(\"No current DOM node\")\n }\n\n // stupid hack as browsers doesn't support createEntityReference\n val s = document.createElement(\"span\") as HTMLElement\n s.innerHTML = entity.text\n path.last().appendChild(s.childNodes.asList().filter { it.nodeType == Node.TEXT_NODE }.first())\n\n // other solution would be\n// pathLast().innerHTML += entity.text\n }\n\n override fun onTagContentUnsafe(block: Unsafe.() -> Unit) {\n with(DefaultUnsafe()) {\n block()\n\n path.last().innerHTML += toString()\n }\n }\n\n\n override fun onTagComment(content: CharSequence) {\n if (path.isEmpty()) {\n throw IllegalStateException(\"No current DOM node\")\n }\n\n path.last().appendChild(document.createComment(content.toString()))\n }\n\n override fun finalize(): R = lastLeaved?.asR() ?: throw IllegalStateException(\"We can't finalize as there was no tags\")\n\n @Suppress(\"UNCHECKED_CAST\")\n private fun HTMLElement.asR(): R = this.asDynamic()\n\n}\n\n\n fun Document.createTree() : TagConsumer = JSDOMBuilder(this)\n val Document.create : TagConsumer\n get() = JSDOMBuilder(this)\n\nfun Node.append(block: TagConsumer.() -> Unit): List =\n ArrayList().let { result ->\n ownerDocumentExt.createTree().onFinalize { it, partial ->\n if (!partial) {\n result.add(it); appendChild(it)\n }\n }.block()\n\n result\n }\n\nfun Node.prepend(block: TagConsumer.() -> Unit): List =\n ArrayList().let { result ->\n ownerDocumentExt.createTree().onFinalize { it, partial ->\n if (!partial) {\n result.add(it)\n insertBefore(it, firstChild)\n }\n }.block()\n\n result\n }\n\nval HTMLElement.append: TagConsumer\n get() = ownerDocumentExt.createTree().onFinalize { element, partial ->\n if (!partial) {\n this@append.appendChild(element)\n }\n }\n\nval HTMLElement.prepend: TagConsumer\n get() = ownerDocumentExt.createTree().onFinalize { element, partial ->\n if (!partial) {\n this@prepend.insertBefore(element, this@prepend.firstChild)\n }\n }\n\nprivate val Node.ownerDocumentExt: Document\n get() = when {\n this is Document -> this\n else -> ownerDocument ?: throw IllegalStateException(\"Node has no ownerDocument\")\n }\n","/*\n * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n@file:kotlin.jvm.JvmMultifileClass\n@file:kotlin.jvm.JvmName(\"CollectionsKt\")\n@file:OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n\npackage kotlin.collections\n\nimport kotlin.contracts.*\nimport kotlin.random.Random\n\ninternal object EmptyIterator : ListIterator {\n override fun hasNext(): Boolean = false\n override fun hasPrevious(): Boolean = false\n override fun nextIndex(): Int = 0\n override fun previousIndex(): Int = -1\n override fun next(): Nothing = throw NoSuchElementException()\n override fun previous(): Nothing = throw NoSuchElementException()\n}\n\ninternal object EmptyList : List, Serializable, RandomAccess {\n private const val serialVersionUID: Long = -7390468764508069838L\n\n override fun equals(other: Any?): Boolean = other is List<*> && other.isEmpty()\n override fun hashCode(): Int = 1\n override fun toString(): String = \"[]\"\n\n override val size: Int get() = 0\n override fun isEmpty(): Boolean = true\n override fun contains(element: Nothing): Boolean = false\n override fun containsAll(elements: Collection): Boolean = elements.isEmpty()\n\n override fun get(index: Int): Nothing = throw IndexOutOfBoundsException(\"Empty list doesn't contain element at index $index.\")\n override fun indexOf(element: Nothing): Int = -1\n override fun lastIndexOf(element: Nothing): Int = -1\n\n override fun iterator(): Iterator = EmptyIterator\n override fun listIterator(): ListIterator = EmptyIterator\n override fun listIterator(index: Int): ListIterator {\n if (index != 0) throw IndexOutOfBoundsException(\"Index: $index\")\n return EmptyIterator\n }\n\n override fun subList(fromIndex: Int, toIndex: Int): List {\n if (fromIndex == 0 && toIndex == 0) return this\n throw IndexOutOfBoundsException(\"fromIndex: $fromIndex, toIndex: $toIndex\")\n }\n\n private fun readResolve(): Any = EmptyList\n}\n\ninternal fun Array.asCollection(): Collection = ArrayAsCollection(this, isVarargs = false)\n\nprivate class ArrayAsCollection(val values: Array, val isVarargs: Boolean) : Collection {\n override val size: Int get() = values.size\n override fun isEmpty(): Boolean = values.isEmpty()\n override fun contains(element: T): Boolean = values.contains(element)\n override fun containsAll(elements: Collection): Boolean = elements.all { contains(it) }\n override fun iterator(): Iterator = values.iterator()\n // override hidden toArray implementation to prevent copying of values array\n public fun toArray(): Array = values.copyToArrayOfAny(isVarargs)\n}\n\n/**\n * Returns an empty read-only list. The returned list is serializable (JVM).\n * @sample samples.collections.Collections.Lists.emptyReadOnlyList\n */\npublic fun emptyList(): List = EmptyList\n\n/**\n * Returns a new read-only list of given elements. The returned list is serializable (JVM).\n * @sample samples.collections.Collections.Lists.readOnlyList\n */\npublic fun listOf(vararg elements: T): List = if (elements.size > 0) elements.asList() else emptyList()\n\n/**\n * Returns an empty read-only list. The returned list is serializable (JVM).\n * @sample samples.collections.Collections.Lists.emptyReadOnlyList\n */\n@kotlin.internal.InlineOnly\npublic inline fun listOf(): List = emptyList()\n\n/**\n * Returns an empty new [MutableList].\n * @sample samples.collections.Collections.Lists.emptyMutableList\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic inline fun mutableListOf(): MutableList = ArrayList()\n\n/**\n * Returns an empty new [ArrayList].\n * @sample samples.collections.Collections.Lists.emptyArrayList\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic inline fun arrayListOf(): ArrayList = ArrayList()\n\n/**\n * Returns a new [MutableList] with the given elements.\n * @sample samples.collections.Collections.Lists.mutableList\n */\npublic fun mutableListOf(vararg elements: T): MutableList =\n if (elements.size == 0) ArrayList() else ArrayList(ArrayAsCollection(elements, isVarargs = true))\n\n/**\n * Returns a new [ArrayList] with the given elements.\n * @sample samples.collections.Collections.Lists.arrayList\n */\npublic fun arrayListOf(vararg elements: T): ArrayList =\n if (elements.size == 0) ArrayList() else ArrayList(ArrayAsCollection(elements, isVarargs = true))\n\n/**\n * Returns a new read-only list either of single given element, if it is not null, or empty list if the element is null. The returned list is serializable (JVM).\n * @sample samples.collections.Collections.Lists.listOfNotNull\n */\npublic fun listOfNotNull(element: T?): List = if (element != null) listOf(element) else emptyList()\n\n/**\n * Returns a new read-only list only of those given elements, that are not null. The returned list is serializable (JVM).\n * @sample samples.collections.Collections.Lists.listOfNotNull\n */\npublic fun listOfNotNull(vararg elements: T?): List = elements.filterNotNull()\n\n/**\n * Creates a new read-only list with the specified [size], where each element is calculated by calling the specified\n * [init] function.\n *\n * The function [init] is called for each list element sequentially starting from the first one.\n * It should return the value for a list element given its index.\n *\n * @sample samples.collections.Collections.Lists.readOnlyListFromInitializer\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic inline fun List(size: Int, init: (index: Int) -> T): List = MutableList(size, init)\n\n/**\n * Creates a new mutable list with the specified [size], where each element is calculated by calling the specified\n * [init] function.\n *\n * The function [init] is called for each list element sequentially starting from the first one.\n * It should return the value for a list element given its index.\n *\n * @sample samples.collections.Collections.Lists.mutableListFromInitializer\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic inline fun MutableList(size: Int, init: (index: Int) -> T): MutableList {\n val list = ArrayList(size)\n repeat(size) { index -> list.add(init(index)) }\n return list\n}\n\n/**\n * Builds a new read-only [List] by populating a [MutableList] using the given [builderAction]\n * and returning a read-only list with the same elements.\n *\n * The list passed as a receiver to the [builderAction] is valid only inside that function.\n * Using it outside of the function produces an unspecified behavior.\n *\n * @sample samples.collections.Builders.Lists.buildListSample\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalStdlibApi\n@kotlin.internal.InlineOnly\npublic inline fun buildList(@BuilderInference builderAction: MutableList.() -> Unit): List {\n contract { callsInPlace(builderAction, InvocationKind.EXACTLY_ONCE) }\n return buildListInternal(builderAction)\n}\n\n@PublishedApi\n@SinceKotlin(\"1.3\")\n@ExperimentalStdlibApi\n@kotlin.internal.InlineOnly\ninternal expect inline fun buildListInternal(builderAction: MutableList.() -> Unit): List\n\n/**\n * Builds a new read-only [List] by populating a [MutableList] using the given [builderAction]\n * and returning a read-only list with the same elements.\n *\n * The list passed as a receiver to the [builderAction] is valid only inside that function.\n * Using it outside of the function produces an unspecified behavior.\n *\n * [capacity] is used to hint the expected number of elements added in the [builderAction].\n *\n * @throws IllegalArgumentException if the given [capacity] is negative.\n *\n * @sample samples.collections.Builders.Lists.buildListSampleWithCapacity\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalStdlibApi\n@kotlin.internal.InlineOnly\npublic inline fun buildList(capacity: Int, @BuilderInference builderAction: MutableList.() -> Unit): List {\n contract { callsInPlace(builderAction, InvocationKind.EXACTLY_ONCE) }\n return buildListInternal(capacity, builderAction)\n}\n\n@PublishedApi\n@SinceKotlin(\"1.3\")\n@ExperimentalStdlibApi\n@kotlin.internal.InlineOnly\ninternal expect inline fun buildListInternal(capacity: Int, builderAction: MutableList.() -> Unit): List\n\n/**\n * Returns an [IntRange] of the valid indices for this collection.\n * @sample samples.collections.Collections.Collections.indicesOfCollection\n */\npublic val Collection<*>.indices: IntRange\n get() = 0..size - 1\n\n/**\n * Returns the index of the last item in the list or -1 if the list is empty.\n *\n * @sample samples.collections.Collections.Lists.lastIndexOfList\n */\npublic val List.lastIndex: Int\n get() = this.size - 1\n\n/**\n * Returns `true` if the collection is not empty.\n * @sample samples.collections.Collections.Collections.collectionIsNotEmpty\n */\n@kotlin.internal.InlineOnly\npublic inline fun Collection.isNotEmpty(): Boolean = !isEmpty()\n\n/**\n * Returns `true` if this nullable collection is either null or empty.\n * @sample samples.collections.Collections.Collections.collectionIsNullOrEmpty\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\npublic inline fun Collection?.isNullOrEmpty(): Boolean {\n contract {\n returns(false) implies (this@isNullOrEmpty != null)\n }\n\n return this == null || this.isEmpty()\n}\n\n/**\n * Returns this Collection if it's not `null` and the empty list otherwise.\n * @sample samples.collections.Collections.Collections.collectionOrEmpty\n */\n@kotlin.internal.InlineOnly\npublic inline fun Collection?.orEmpty(): Collection = this ?: emptyList()\n\n/**\n * Returns this List if it's not `null` and the empty list otherwise.\n * @sample samples.collections.Collections.Lists.listOrEmpty\n */\n@kotlin.internal.InlineOnly\npublic inline fun List?.orEmpty(): List = this ?: emptyList()\n\n/**\n * Returns this collection if it's not empty\n * or the result of calling [defaultValue] function if the collection is empty.\n *\n * @sample samples.collections.Collections.Collections.collectionIfEmpty\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\npublic inline fun C.ifEmpty(defaultValue: () -> R): R where C : Collection<*>, C : R =\n if (isEmpty()) defaultValue() else this\n\n\n/**\n * Checks if all elements in the specified collection are contained in this collection.\n *\n * Allows to overcome type-safety restriction of `containsAll` that requires to pass a collection of type `Collection`.\n * @sample samples.collections.Collections.Collections.collectionContainsAll\n */\n@Suppress(\"EXTENSION_SHADOWED_BY_MEMBER\") // false warning, extension takes precedence in some cases\n@kotlin.internal.InlineOnly\npublic inline fun <@kotlin.internal.OnlyInputTypes T> Collection.containsAll(elements: Collection): Boolean = this.containsAll(elements)\n\n\n/**\n * Returns a new list with the elements of this list randomly shuffled\n * using the specified [random] instance as the source of randomness.\n */\n@SinceKotlin(\"1.3\")\npublic fun Iterable.shuffled(random: Random): List = toMutableList().apply { shuffle(random) }\n\n\ninternal fun List.optimizeReadOnlyList() = when (size) {\n 0 -> emptyList()\n 1 -> listOf(this[0])\n else -> this\n}\n\n/**\n * Searches this list or its range for the provided [element] using the binary search algorithm.\n * The list is expected to be sorted into ascending order according to the Comparable natural ordering of its elements,\n * otherwise the result is undefined.\n *\n * If the list contains multiple elements equal to the specified [element], there is no guarantee which one will be found.\n *\n * `null` value is considered to be less than any non-null value.\n *\n * @return the index of the element, if it is contained in the list within the specified range;\n * otherwise, the inverted insertion point `(-insertion point - 1)`.\n * The insertion point is defined as the index at which the element should be inserted,\n * so that the list (or the specified subrange of list) still remains sorted.\n * @sample samples.collections.Collections.Lists.binarySearchOnComparable\n * @sample samples.collections.Collections.Lists.binarySearchWithBoundaries\n */\npublic fun > List.binarySearch(element: T?, fromIndex: Int = 0, toIndex: Int = size): Int {\n rangeCheck(size, fromIndex, toIndex)\n\n var low = fromIndex\n var high = toIndex - 1\n\n while (low <= high) {\n val mid = (low + high).ushr(1) // safe from overflows\n val midVal = get(mid)\n val cmp = compareValues(midVal, element)\n\n if (cmp < 0)\n low = mid + 1\n else if (cmp > 0)\n high = mid - 1\n else\n return mid // key found\n }\n return -(low + 1) // key not found\n}\n\n/**\n * Searches this list or its range for the provided [element] using the binary search algorithm.\n * The list is expected to be sorted into ascending order according to the specified [comparator],\n * otherwise the result is undefined.\n *\n * If the list contains multiple elements equal to the specified [element], there is no guarantee which one will be found.\n *\n * `null` value is considered to be less than any non-null value.\n *\n * @return the index of the element, if it is contained in the list within the specified range;\n * otherwise, the inverted insertion point `(-insertion point - 1)`.\n * The insertion point is defined as the index at which the element should be inserted,\n * so that the list (or the specified subrange of list) still remains sorted according to the specified [comparator].\n * @sample samples.collections.Collections.Lists.binarySearchWithComparator\n */\npublic fun List.binarySearch(element: T, comparator: Comparator, fromIndex: Int = 0, toIndex: Int = size): Int {\n rangeCheck(size, fromIndex, toIndex)\n\n var low = fromIndex\n var high = toIndex - 1\n\n while (low <= high) {\n val mid = (low + high).ushr(1) // safe from overflows\n val midVal = get(mid)\n val cmp = comparator.compare(midVal, element)\n\n if (cmp < 0)\n low = mid + 1\n else if (cmp > 0)\n high = mid - 1\n else\n return mid // key found\n }\n return -(low + 1) // key not found\n}\n\n/**\n * Searches this list or its range for an element having the key returned by the specified [selector] function\n * equal to the provided [key] value using the binary search algorithm.\n * The list is expected to be sorted into ascending order according to the Comparable natural ordering of keys of its elements.\n * otherwise the result is undefined.\n *\n * If the list contains multiple elements with the specified [key], there is no guarantee which one will be found.\n *\n * `null` value is considered to be less than any non-null value.\n *\n * @return the index of the element with the specified [key], if it is contained in the list within the specified range;\n * otherwise, the inverted insertion point `(-insertion point - 1)`.\n * The insertion point is defined as the index at which the element should be inserted,\n * so that the list (or the specified subrange of list) still remains sorted.\n * @sample samples.collections.Collections.Lists.binarySearchByKey\n */\npublic inline fun > List.binarySearchBy(\n key: K?,\n fromIndex: Int = 0,\n toIndex: Int = size,\n crossinline selector: (T) -> K?\n): Int =\n binarySearch(fromIndex, toIndex) { compareValues(selector(it), key) }\n\n// do not introduce this overload --- too rare\n//public fun List.binarySearchBy(key: K, comparator: Comparator, fromIndex: Int = 0, toIndex: Int = size(), selector: (T) -> K): Int =\n// binarySearch(fromIndex, toIndex) { comparator.compare(selector(it), key) }\n\n\n/**\n * Searches this list or its range for an element for which the given [comparison] function returns zero using the binary search algorithm.\n *\n * The list is expected to be sorted so that the signs of the [comparison] function's return values ascend on the list elements,\n * i.e. negative values come before zero and zeroes come before positive values.\n * Otherwise, the result is undefined.\n *\n * If the list contains multiple elements for which [comparison] returns zero, there is no guarantee which one will be found.\n *\n * @param comparison function that returns zero when called on the list element being searched.\n * On the elements coming before the target element, the function must return negative values;\n * on the elements coming after the target element, the function must return positive values.\n *\n * @return the index of the found element, if it is contained in the list within the specified range;\n * otherwise, the inverted insertion point `(-insertion point - 1)`.\n * The insertion point is defined as the index at which the element should be inserted,\n * so that the list (or the specified subrange of list) still remains sorted.\n * @sample samples.collections.Collections.Lists.binarySearchWithComparisonFunction\n */\npublic fun List.binarySearch(fromIndex: Int = 0, toIndex: Int = size, comparison: (T) -> Int): Int {\n rangeCheck(size, fromIndex, toIndex)\n\n var low = fromIndex\n var high = toIndex - 1\n\n while (low <= high) {\n val mid = (low + high).ushr(1) // safe from overflows\n val midVal = get(mid)\n val cmp = comparison(midVal)\n\n if (cmp < 0)\n low = mid + 1\n else if (cmp > 0)\n high = mid - 1\n else\n return mid // key found\n }\n return -(low + 1) // key not found\n}\n\n/**\n * Checks that `from` and `to` are in\n * the range of [0..size] and throws an appropriate exception, if they aren't.\n */\nprivate fun rangeCheck(size: Int, fromIndex: Int, toIndex: Int) {\n when {\n fromIndex > toIndex -> throw IllegalArgumentException(\"fromIndex ($fromIndex) is greater than toIndex ($toIndex).\")\n fromIndex < 0 -> throw IndexOutOfBoundsException(\"fromIndex ($fromIndex) is less than zero.\")\n toIndex > size -> throw IndexOutOfBoundsException(\"toIndex ($toIndex) is greater than size ($size).\")\n }\n}\n\n\n@PublishedApi\n@SinceKotlin(\"1.3\")\ninternal expect fun checkIndexOverflow(index: Int): Int\n\n@PublishedApi\n@SinceKotlin(\"1.3\")\ninternal expect fun checkCountOverflow(count: Int): Int\n\n\n@PublishedApi\n@SinceKotlin(\"1.3\")\ninternal fun throwIndexOverflow() { throw ArithmeticException(\"Index overflow has happened.\") }\n\n@PublishedApi\n@SinceKotlin(\"1.3\")\ninternal fun throwCountOverflow() { throw ArithmeticException(\"Count overflow has happened.\") }\n\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.text\n\nimport kotlin.js.RegExp\n\n/**\n * Converts the characters in the specified array to a string.\n */\n@SinceKotlin(\"1.2\")\n@Deprecated(\"Use CharArray.concatToString() instead\", ReplaceWith(\"chars.concatToString()\"))\npublic actual fun String(chars: CharArray): String {\n var result = \"\"\n for (char in chars) {\n result += char\n }\n return result\n}\n\n/**\n * Converts the characters from a portion of the specified array to a string.\n *\n * @throws IndexOutOfBoundsException if either [offset] or [length] are less than zero\n * or `offset + length` is out of [chars] array bounds.\n */\n@SinceKotlin(\"1.2\")\n@Deprecated(\"Use CharArray.concatToString(startIndex, endIndex) instead\", ReplaceWith(\"chars.concatToString(offset, offset + length)\"))\npublic actual fun String(chars: CharArray, offset: Int, length: Int): String {\n if (offset < 0 || length < 0 || chars.size - offset < length)\n throw IndexOutOfBoundsException(\"size: ${chars.size}; offset: $offset; length: $length\")\n var result = \"\"\n for (index in offset until offset + length) {\n result += chars[index]\n }\n return result\n}\n\n/**\n * Concatenates characters in this [CharArray] into a String.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic actual fun CharArray.concatToString(): String {\n var result = \"\"\n for (char in this) {\n result += char\n }\n return result\n}\n\n/**\n * Concatenates characters in this [CharArray] or its subrange into a String.\n *\n * @param startIndex the beginning (inclusive) of the subrange of characters, 0 by default.\n * @param endIndex the end (exclusive) of the subrange of characters, size of this array by default.\n *\n * @throws IndexOutOfBoundsException if [startIndex] is less than zero or [endIndex] is greater than the size of this array.\n * @throws IllegalArgumentException if [startIndex] is greater than [endIndex].\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\npublic actual fun CharArray.concatToString(startIndex: Int = 0, endIndex: Int = this.size): String {\n AbstractList.checkBoundsIndexes(startIndex, endIndex, this.size)\n var result = \"\"\n for (index in startIndex until endIndex) {\n result += this[index]\n }\n return result\n}\n\n/**\n * Returns a [CharArray] containing characters of this string.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic actual fun String.toCharArray(): CharArray {\n return CharArray(length) { get(it) }\n}\n\n/**\n * Returns a [CharArray] containing characters of this string or its substring.\n *\n * @param startIndex the beginning (inclusive) of the substring, 0 by default.\n * @param endIndex the end (exclusive) of the substring, length of this string by default.\n *\n * @throws IndexOutOfBoundsException if [startIndex] is less than zero or [endIndex] is greater than the length of this string.\n * @throws IllegalArgumentException if [startIndex] is greater than [endIndex].\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\npublic actual fun String.toCharArray(startIndex: Int = 0, endIndex: Int = this.length): CharArray {\n AbstractList.checkBoundsIndexes(startIndex, endIndex, length)\n return CharArray(endIndex - startIndex) { get(startIndex + it) }\n}\n\n/**\n * Decodes a string from the bytes in UTF-8 encoding in this array.\n *\n * Malformed byte sequences are replaced by the replacement char `\\uFFFD`.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic actual fun ByteArray.decodeToString(): String {\n return decodeUtf8(this, 0, size, false)\n}\n\n/**\n * Decodes a string from the bytes in UTF-8 encoding in this array or its subrange.\n *\n * @param startIndex the beginning (inclusive) of the subrange to decode, 0 by default.\n * @param endIndex the end (exclusive) of the subrange to decode, size of this array by default.\n * @param throwOnInvalidSequence specifies whether to throw an exception on malformed byte sequence or replace it by the replacement char `\\uFFFD`.\n *\n * @throws IndexOutOfBoundsException if [startIndex] is less than zero or [endIndex] is greater than the size of this array.\n * @throws IllegalArgumentException if [startIndex] is greater than [endIndex].\n * @throws CharacterCodingException if the byte array contains malformed UTF-8 byte sequence and [throwOnInvalidSequence] is true.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\npublic actual fun ByteArray.decodeToString(\n startIndex: Int = 0,\n endIndex: Int = this.size,\n throwOnInvalidSequence: Boolean = false\n): String {\n AbstractList.checkBoundsIndexes(startIndex, endIndex, this.size)\n return decodeUtf8(this, startIndex, endIndex, throwOnInvalidSequence)\n}\n\n/**\n * Encodes this string to an array of bytes in UTF-8 encoding.\n *\n * Any malformed char sequence is replaced by the replacement byte sequence.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic actual fun String.encodeToByteArray(): ByteArray {\n return encodeUtf8(this, 0, length, false)\n}\n\n/**\n * Encodes this string or its substring to an array of bytes in UTF-8 encoding.\n *\n * @param startIndex the beginning (inclusive) of the substring to encode, 0 by default.\n * @param endIndex the end (exclusive) of the substring to encode, length of this string by default.\n * @param throwOnInvalidSequence specifies whether to throw an exception on malformed char sequence or replace.\n *\n * @throws IndexOutOfBoundsException if [startIndex] is less than zero or [endIndex] is greater than the length of this string.\n * @throws IllegalArgumentException if [startIndex] is greater than [endIndex].\n * @throws CharacterCodingException if this string contains malformed char sequence and [throwOnInvalidSequence] is true.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\npublic actual fun String.encodeToByteArray(\n startIndex: Int = 0,\n endIndex: Int = this.length,\n throwOnInvalidSequence: Boolean = false\n): ByteArray {\n AbstractList.checkBoundsIndexes(startIndex, endIndex, length)\n return encodeUtf8(this, startIndex, endIndex, throwOnInvalidSequence)\n}\n\n/**\n * Returns a copy of this string converted to upper case using the rules of the default locale.\n */\n@kotlin.internal.InlineOnly\npublic actual inline fun String.toUpperCase(): String = asDynamic().toUpperCase()\n\n/**\n * Returns a copy of this string converted to upper case using Unicode mapping rules of the invariant locale.\n *\n * This function supports one-to-many and many-to-one character mapping,\n * thus the length of the returned string can be different from the length of the original string.\n *\n * @sample samples.text.Strings.uppercase\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalStdlibApi\n@kotlin.internal.InlineOnly\npublic actual inline fun String.uppercase(): String = asDynamic().toUpperCase()\n\n/**\n * Returns a copy of this string converted to lower case using the rules of the default locale.\n */\n@kotlin.internal.InlineOnly\npublic actual inline fun String.toLowerCase(): String = asDynamic().toLowerCase()\n\n/**\n * Returns a copy of this string converted to lower case using Unicode mapping rules of the invariant locale.\n *\n * This function supports one-to-many and many-to-one character mapping,\n * thus the length of the returned string can be different from the length of the original string.\n *\n * @sample samples.text.Strings.lowercase\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalStdlibApi\n@kotlin.internal.InlineOnly\npublic actual inline fun String.lowercase(): String = asDynamic().toLowerCase()\n\n@kotlin.internal.InlineOnly\ninternal actual inline fun String.nativeIndexOf(str: String, fromIndex: Int): Int = asDynamic().indexOf(str, fromIndex)\n\n@kotlin.internal.InlineOnly\ninternal actual inline fun String.nativeLastIndexOf(str: String, fromIndex: Int): Int = asDynamic().lastIndexOf(str, fromIndex)\n\n@kotlin.internal.InlineOnly\ninternal inline fun String.nativeStartsWith(s: String, position: Int): Boolean = asDynamic().startsWith(s, position)\n\n@kotlin.internal.InlineOnly\ninternal inline fun String.nativeEndsWith(s: String): Boolean = asDynamic().endsWith(s)\n\n@kotlin.internal.InlineOnly\npublic actual inline fun String.substring(startIndex: Int): String = asDynamic().substring(startIndex)\n\n@kotlin.internal.InlineOnly\npublic actual inline fun String.substring(startIndex: Int, endIndex: Int): String = asDynamic().substring(startIndex, endIndex)\n\n@kotlin.internal.InlineOnly\npublic inline fun String.concat(str: String): String = asDynamic().concat(str)\n\n@kotlin.internal.InlineOnly\npublic inline fun String.match(regex: String): Array? = asDynamic().match(regex)\n\n//native public fun String.trim(): String\n//TODO: String.replace to implement effective trimLeading and trimTrailing\n\n@kotlin.internal.InlineOnly\ninternal inline fun String.nativeReplace(pattern: RegExp, replacement: String): String = asDynamic().replace(pattern, replacement)\n\n@OptIn(ExperimentalStdlibApi::class)\n@SinceKotlin(\"1.2\")\n@Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\npublic actual fun String.compareTo(other: String, ignoreCase: Boolean = false): Int {\n if (ignoreCase) {\n val n1 = this.length\n val n2 = other.length\n val min = minOf(n1, n2)\n if (min == 0) return n1 - n2\n var start = 0\n while (true) {\n val end = minOf(start + 16, min)\n var s1 = this.substring(start, end)\n var s2 = other.substring(start, end)\n if (s1 != s2) {\n s1 = s1.uppercase()\n s2 = s2.uppercase()\n if (s1 != s2) {\n s1 = s1.lowercase()\n s2 = s2.lowercase()\n if (s1 != s2) {\n return s1.compareTo(s2)\n }\n }\n }\n if (end == min) break\n start = end\n }\n return n1 - n2\n } else {\n return compareTo(other)\n }\n}\n\n\nprivate val STRING_CASE_INSENSITIVE_ORDER = Comparator { a, b -> a.compareTo(b, ignoreCase = true) }\n\n@SinceKotlin(\"1.2\")\npublic actual val String.Companion.CASE_INSENSITIVE_ORDER: Comparator\n get() = STRING_CASE_INSENSITIVE_ORDER\n","package kotlinx.html.js\n\nimport kotlinx.html.*\nimport kotlinx.html.attributes.*\nimport kotlinx.html.dom.*\nimport org.w3c.dom.events.*\n\n/*******************************************************************************\n DO NOT EDIT\n This file was generated by module generate\n*******************************************************************************/\n\nvar CommonAttributeGroupFacade.onAbortFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onAbort\")\n set(newValue) {consumer.onTagEvent(this, \"onabort\", newValue)}\n\nvar CommonAttributeGroupFacade.onBlurFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onBlur\")\n set(newValue) {consumer.onTagEvent(this, \"onblur\", newValue)}\n\nvar CommonAttributeGroupFacade.onCanPlayFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onCanPlay\")\n set(newValue) {consumer.onTagEvent(this, \"oncanplay\", newValue)}\n\nvar CommonAttributeGroupFacade.onCanPlayThroughFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onCanPlayThrough\")\n set(newValue) {consumer.onTagEvent(this, \"oncanplaythrough\", newValue)}\n\nvar CommonAttributeGroupFacade.onChangeFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onChange\")\n set(newValue) {consumer.onTagEvent(this, \"onchange\", newValue)}\n\nvar CommonAttributeGroupFacade.onClickFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onClick\")\n set(newValue) {consumer.onTagEvent(this, \"onclick\", newValue)}\n\nvar CommonAttributeGroupFacade.onContextMenuFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onContextMenu\")\n set(newValue) {consumer.onTagEvent(this, \"oncontextmenu\", newValue)}\n\nvar CommonAttributeGroupFacade.onDoubleClickFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onDoubleClick\")\n set(newValue) {consumer.onTagEvent(this, \"ondblclick\", newValue)}\n\nvar CommonAttributeGroupFacade.onDragFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onDrag\")\n set(newValue) {consumer.onTagEvent(this, \"ondrag\", newValue)}\n\nvar CommonAttributeGroupFacade.onDragEndFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onDragEnd\")\n set(newValue) {consumer.onTagEvent(this, \"ondragend\", newValue)}\n\nvar CommonAttributeGroupFacade.onDragEnterFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onDragEnter\")\n set(newValue) {consumer.onTagEvent(this, \"ondragenter\", newValue)}\n\nvar CommonAttributeGroupFacade.onDragLeaveFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onDragLeave\")\n set(newValue) {consumer.onTagEvent(this, \"ondragleave\", newValue)}\n\nvar CommonAttributeGroupFacade.onDragOverFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onDragOver\")\n set(newValue) {consumer.onTagEvent(this, \"ondragover\", newValue)}\n\nvar CommonAttributeGroupFacade.onDragStartFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onDragStart\")\n set(newValue) {consumer.onTagEvent(this, \"ondragstart\", newValue)}\n\nvar CommonAttributeGroupFacade.onDropFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onDrop\")\n set(newValue) {consumer.onTagEvent(this, \"ondrop\", newValue)}\n\nvar CommonAttributeGroupFacade.onDurationChangeFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onDurationChange\")\n set(newValue) {consumer.onTagEvent(this, \"ondurationchange\", newValue)}\n\nvar CommonAttributeGroupFacade.onEmptiedFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onEmptied\")\n set(newValue) {consumer.onTagEvent(this, \"onemptied\", newValue)}\n\nvar CommonAttributeGroupFacade.onEndedFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onEnded\")\n set(newValue) {consumer.onTagEvent(this, \"onended\", newValue)}\n\nvar CommonAttributeGroupFacade.onErrorFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onError\")\n set(newValue) {consumer.onTagEvent(this, \"onerror\", newValue)}\n\nvar CommonAttributeGroupFacade.onFocusFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onFocus\")\n set(newValue) {consumer.onTagEvent(this, \"onfocus\", newValue)}\n\nvar CommonAttributeGroupFacade.onFocusInFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onFocusIn\")\n set(newValue) {consumer.onTagEvent(this, \"onfocusin\", newValue)}\n\nvar CommonAttributeGroupFacade.onFocusOutFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onFocusOut\")\n set(newValue) {consumer.onTagEvent(this, \"onfocusout\", newValue)}\n\nvar CommonAttributeGroupFacade.onFormChangeFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onFormChange\")\n set(newValue) {consumer.onTagEvent(this, \"onformchange\", newValue)}\n\nvar CommonAttributeGroupFacade.onFormInputFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onFormInput\")\n set(newValue) {consumer.onTagEvent(this, \"onforminput\", newValue)}\n\nvar CommonAttributeGroupFacade.onInputFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onInput\")\n set(newValue) {consumer.onTagEvent(this, \"oninput\", newValue)}\n\nvar CommonAttributeGroupFacade.onInvalidFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onInvalid\")\n set(newValue) {consumer.onTagEvent(this, \"oninvalid\", newValue)}\n\nvar CommonAttributeGroupFacade.onKeyDownFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onKeyDown\")\n set(newValue) {consumer.onTagEvent(this, \"onkeydown\", newValue)}\n\nvar CommonAttributeGroupFacade.onKeyPressFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onKeyPress\")\n set(newValue) {consumer.onTagEvent(this, \"onkeypress\", newValue)}\n\nvar CommonAttributeGroupFacade.onKeyUpFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onKeyUp\")\n set(newValue) {consumer.onTagEvent(this, \"onkeyup\", newValue)}\n\nvar CommonAttributeGroupFacade.onLoadFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onLoad\")\n set(newValue) {consumer.onTagEvent(this, \"onload\", newValue)}\n\nvar CommonAttributeGroupFacade.onLoadedDataFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onLoadedData\")\n set(newValue) {consumer.onTagEvent(this, \"onloadeddata\", newValue)}\n\nvar CommonAttributeGroupFacade.onLoadedMetaDataFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onLoadedMetaData\")\n set(newValue) {consumer.onTagEvent(this, \"onloadedmetadata\", newValue)}\n\nvar CommonAttributeGroupFacade.onLoadStartFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onLoadStart\")\n set(newValue) {consumer.onTagEvent(this, \"onloadstart\", newValue)}\n\nvar CommonAttributeGroupFacade.onMouseDownFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onMouseDown\")\n set(newValue) {consumer.onTagEvent(this, \"onmousedown\", newValue)}\n\nvar CommonAttributeGroupFacade.onMouseMoveFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onMouseMove\")\n set(newValue) {consumer.onTagEvent(this, \"onmousemove\", newValue)}\n\nvar CommonAttributeGroupFacade.onMouseOutFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onMouseOut\")\n set(newValue) {consumer.onTagEvent(this, \"onmouseout\", newValue)}\n\nvar CommonAttributeGroupFacade.onMouseOverFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onMouseOver\")\n set(newValue) {consumer.onTagEvent(this, \"onmouseover\", newValue)}\n\nvar CommonAttributeGroupFacade.onMouseUpFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onMouseUp\")\n set(newValue) {consumer.onTagEvent(this, \"onmouseup\", newValue)}\n\nvar CommonAttributeGroupFacade.onMouseWheelFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onMouseWheel\")\n set(newValue) {consumer.onTagEvent(this, \"onmousewheel\", newValue)}\n\nvar CommonAttributeGroupFacade.onPauseFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onPause\")\n set(newValue) {consumer.onTagEvent(this, \"onpause\", newValue)}\n\nvar CommonAttributeGroupFacade.onPlayFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onPlay\")\n set(newValue) {consumer.onTagEvent(this, \"onplay\", newValue)}\n\nvar CommonAttributeGroupFacade.onPlayingFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onPlaying\")\n set(newValue) {consumer.onTagEvent(this, \"onplaying\", newValue)}\n\nvar CommonAttributeGroupFacade.onProgressFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onProgress\")\n set(newValue) {consumer.onTagEvent(this, \"onprogress\", newValue)}\n\nvar CommonAttributeGroupFacade.onRateChangeFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onRateChange\")\n set(newValue) {consumer.onTagEvent(this, \"onratechange\", newValue)}\n\nvar CommonAttributeGroupFacade.onReadyStateChangeFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onReadyStateChange\")\n set(newValue) {consumer.onTagEvent(this, \"onreadystatechange\", newValue)}\n\nvar CommonAttributeGroupFacade.onScrollFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onScroll\")\n set(newValue) {consumer.onTagEvent(this, \"onscroll\", newValue)}\n\nvar CommonAttributeGroupFacade.onSearchFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onSearch\")\n set(newValue) {consumer.onTagEvent(this, \"onsearch\", newValue)}\n\nvar CommonAttributeGroupFacade.onSeekedFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onSeeked\")\n set(newValue) {consumer.onTagEvent(this, \"onseeked\", newValue)}\n\nvar CommonAttributeGroupFacade.onSeekingFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onSeeking\")\n set(newValue) {consumer.onTagEvent(this, \"onseeking\", newValue)}\n\nvar CommonAttributeGroupFacade.onSelectFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onSelect\")\n set(newValue) {consumer.onTagEvent(this, \"onselect\", newValue)}\n\nvar CommonAttributeGroupFacade.onShowFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onShow\")\n set(newValue) {consumer.onTagEvent(this, \"onshow\", newValue)}\n\nvar CommonAttributeGroupFacade.onStalledFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onStalled\")\n set(newValue) {consumer.onTagEvent(this, \"onstalled\", newValue)}\n\nvar CommonAttributeGroupFacade.onSubmitFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onSubmit\")\n set(newValue) {consumer.onTagEvent(this, \"onsubmit\", newValue)}\n\nvar CommonAttributeGroupFacade.onSuspendFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onSuspend\")\n set(newValue) {consumer.onTagEvent(this, \"onsuspend\", newValue)}\n\nvar CommonAttributeGroupFacade.onTimeUpdateFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onTimeUpdate\")\n set(newValue) {consumer.onTagEvent(this, \"ontimeupdate\", newValue)}\n\nvar CommonAttributeGroupFacade.onTouchCancelFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onTouchCancel\")\n set(newValue) {consumer.onTagEvent(this, \"ontouchcancel\", newValue)}\n\nvar CommonAttributeGroupFacade.onTouchEndFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onTouchEnd\")\n set(newValue) {consumer.onTagEvent(this, \"ontouchend\", newValue)}\n\nvar CommonAttributeGroupFacade.onTouchMoveFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onTouchMove\")\n set(newValue) {consumer.onTagEvent(this, \"ontouchmove\", newValue)}\n\nvar CommonAttributeGroupFacade.onTouchStartFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onTouchStart\")\n set(newValue) {consumer.onTagEvent(this, \"ontouchstart\", newValue)}\n\nvar CommonAttributeGroupFacade.onVolumeChangeFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onVolumeChange\")\n set(newValue) {consumer.onTagEvent(this, \"onvolumechange\", newValue)}\n\nvar CommonAttributeGroupFacade.onWaitingFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onWaiting\")\n set(newValue) {consumer.onTagEvent(this, \"onwaiting\", newValue)}\n\nvar CommonAttributeGroupFacade.onWheelFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onWheel\")\n set(newValue) {consumer.onTagEvent(this, \"onwheel\", newValue)}\n\n","package kotlinx.html.injector\n\nimport kotlinx.html.*\nimport kotlinx.html.dom.*\nimport org.w3c.dom.*\nimport kotlin.reflect.*\n\nfun F.injectTo(bean : T, field : KMutableProperty1) {\n field.set(bean, this)\n}\n\nprivate fun F.injectToUnsafe(bean : T, field : KMutableProperty1) {\n injectTo(bean, field.asDynamic())\n}\n\ninterface InjectCapture\nclass InjectByClassName(val className : String) : InjectCapture\nclass InjectByTagName(val tagName : String) : InjectCapture\nobject InjectRoot : InjectCapture\ninterface CustomCapture : InjectCapture {\n fun apply(element : HTMLElement) : Boolean\n}\n\nclass InjectorConsumer(val downstream : TagConsumer, val bean : T, rules : List>>) : TagConsumer by downstream {\n\n private val classesMap: Map>> = rules\n .filter { it.first is InjectByClassName }\n .map { it.first as InjectByClassName to it.second }\n .groupBy ({ it.first.className }, { it.second })\n\n private val tagNamesMap = rules\n .filter { it.first is InjectByTagName }\n .map { it.first as InjectByTagName to it.second }\n .groupBy({ it.first.tagName.toLowerCase() }, { it.second })\n\n private val rootCaptures = rules.filter { it.first == InjectRoot }.map { it.second }\n private val customCaptures = rules.filter {it.first is CustomCapture}.map {it.first as CustomCapture to it.second}\n\n override fun onTagEnd(tag: Tag) {\n downstream.onTagEnd(tag)\n\n val node = downstream.finalize()\n\n if (classesMap.isNotEmpty()) {\n node.classList.asList().flatMap { classesMap[it] ?: emptyList() }.forEach { field ->\n node.injectToUnsafe(bean, field)\n }\n }\n\n if (tagNamesMap.isNotEmpty()) {\n tagNamesMap[node.tagName.toLowerCase()]?.forEach { field ->\n node.injectToUnsafe(bean, field)\n }\n }\n\n customCaptures.filter { it.first.apply(node) }.map {it.second}.forEach { field ->\n node.injectToUnsafe(bean, field)\n }\n }\n\n override fun finalize(): HTMLElement {\n val node = downstream.finalize()\n rootCaptures.forEach { field ->\n node.injectToUnsafe(bean, field)\n }\n\n return node\n }\n}\n\nfun TagConsumer.inject(bean : T, rules : List>>) : TagConsumer = InjectorConsumer(this, bean, rules)\n\nfun HTMLElement.appendAndInject(bean : T, rules : List>>, block : TagConsumer.() -> Unit) : List = append {\n InjectorConsumer(this@append, bean, rules).block()\n Unit\n}\n\n","package kotlinx.html.consumers\n\nimport kotlinx.html.*\n\nfun TagConsumer.trace() : TagConsumer = trace(println = { console.info(it) })\n","package kotlinx.html\n\nimport kotlin.js.*\n\nactual fun currentTimeMillis(): Long = Date().getTime().toLong()\n","package kotlinx.html\n\nactual fun T.visitTag(block: T.() -> Unit) {\n consumer.onTagStart(this)\n try {\n this.block()\n } catch (err: Throwable) {\n consumer.onTagError(this, err)\n } finally {\n consumer.onTagEnd(this)\n }\n}\n\nactual fun T.visitTagAndFinalize(consumer: TagConsumer, block: T.() -> Unit): R {\n if (this.consumer !== consumer) {\n throw IllegalArgumentException(\"Wrong exception\")\n }\n\n visitTag(block)\n return consumer.finalize()\n}","package kotlinx.html\n\nimport kotlinx.html.*\nimport kotlinx.html.attributes.*\n\n/*******************************************************************************\n DO NOT EDIT\n This file was generated by module generate\n*******************************************************************************/\n\ninternal val attributeStringString : Attribute = StringAttribute()\n\ninternal val attributeSetStringStringSet : Attribute> = StringSetAttribute()\n\ninternal val attributeBooleanBoolean : Attribute = BooleanAttribute()\n\ninternal val attributeBooleanBooleanOnOff : Attribute = BooleanAttribute(\"on\", \"off\")\n\ninternal val attributeBooleanTicker : Attribute = TickerAttribute()\n\ninternal val attributeButtonFormEncTypeEnumButtonFormEncTypeValues : Attribute = EnumAttribute(buttonFormEncTypeValues)\n\ninternal val attributeButtonFormMethodEnumButtonFormMethodValues : Attribute = EnumAttribute(buttonFormMethodValues)\n\ninternal val attributeButtonTypeEnumButtonTypeValues : Attribute = EnumAttribute(buttonTypeValues)\n\ninternal val attributeCommandTypeEnumCommandTypeValues : Attribute = EnumAttribute(commandTypeValues)\n\ninternal val attributeDirEnumDirValues : Attribute = EnumAttribute(dirValues)\n\ninternal val attributeDraggableEnumDraggableValues : Attribute = EnumAttribute(draggableValues)\n\ninternal val attributeFormEncTypeEnumFormEncTypeValues : Attribute = EnumAttribute(formEncTypeValues)\n\ninternal val attributeFormMethodEnumFormMethodValues : Attribute = EnumAttribute(formMethodValues)\n\ninternal val attributeIframeSandboxEnumIframeSandboxValues : Attribute = EnumAttribute(iframeSandboxValues)\n\ninternal val attributeInputFormEncTypeEnumInputFormEncTypeValues : Attribute = EnumAttribute(inputFormEncTypeValues)\n\ninternal val attributeInputFormMethodEnumInputFormMethodValues : Attribute = EnumAttribute(inputFormMethodValues)\n\ninternal val attributeInputTypeEnumInputTypeValues : Attribute = EnumAttribute(inputTypeValues)\n\ninternal val attributeKeyGenKeyTypeEnumKeyGenKeyTypeValues : Attribute = EnumAttribute(keyGenKeyTypeValues)\n\ninternal val attributeRunAtEnumRunAtValues : Attribute = EnumAttribute(runAtValues)\n\ninternal val attributeTextAreaWrapEnumTextAreaWrapValues : Attribute = EnumAttribute(textAreaWrapValues)\n\ninternal val attributeThScopeEnumThScopeValues : Attribute = EnumAttribute(thScopeValues)\n\n"],"names":[],"mappings":"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wCrC,iB;MLysBzC,kBAAY,gB;MA4BH,U;MAAA,wB;MAAhB,OAAgB,gBAAhB,C;QAAgB,2B;QAAM,IAAI,EAAW,OM/gBW,YAAU,CN+gBhC,CAAJ,C;UAAyB,WAAY,WAAI,OAAJ,C;;MKruBX,SLsuBzC,W;;MKtuByC,a;IAAA,uD;G;EACpD,oC;IAAoC,+BAAa,GAAb,C;G;EAEpC,4B;IAAA,gC;G;8CACI,gC;IAAyE,OAAM,aAAN,KAAM,EAAa,GAAb,C;G;8CAC/E,gC;IAAyE,qCAAgB,KAAhB,E;G;6CACzE,8B;IAAsD,iB;G;;;;;;;EAH1D,wC;IAAA,uC;MAAA,sB;KAAA,gC;G;EAMA,8B;IAA2B,qBAAuB,8BAAvB,C;G;;;;;;EDHa,gD;IAAA,4B;MAAE,wB;MAAQ,W;IAAA,C;G;EAHuB,qC;IAAA,4B;MAAE,wB;MAAQ,W;IAAA,C;G;EAAV,uC;IAAA,4B;MAAE,wB;MAAQ,W;IAAA,C;G;EAAV,uC;IAAA,4B;MAAE,wB;MAAQ,W;IAAA,C;G;EAG3C,kD;IAAA,4B;MAAE,wB;MAAQ,W;IAAA,C;G;EAAV,kD;IAAA,4B;MAAE,wB;MAAQ,W;IAAA,C;G;EAHuB,uC;IAAA,4B;MAAE,wB;MAAQ,W;IAAA,C;G;EAAV,uC;IAAA,4B;MAAE,wB;MAAQ,W;IAAA,C;G;EGxEM,kC;IAAC,W;EAAA,C;EAD1F,2C;IACqC,uB;MAAA,UAAmB,I;IAAM,qB;MAAA,QAA2B,a;IAAS,OH2ExF,oBIwS8G,WAAO,kBAAgB,OAAhB,EDnXtB,OCmXsB,CAAP,YJxS9G,aAA8B,wBG3E0E,KH2E1E,CAA9B,C;G;EGxE6D,oC;IAAC,W;EAAA,C;EADxE,6C;IACmB,uB;MAAA,UAAmB,I;IAAM,qB;MAAA,QAA2B,e;IHqEP,SKPyC,WAAO,kBAAgB,OAAhB,EF9DtB,OE8DsB,CAAP,EAA0C,kBAA1C,CLOzC,EAAS,aGrE0B,KHqE1B,CAAT,C;G;EGlEQ,oC;IAAC,W;EAAA,C;EADzE,6C;IACoB,uB;MAAA,UAAmB,I;IAAM,qB;MAAA,QAA2B,e;IHkER,SM7C0C,WAAO,kBAAgB,OAAhB,EHrBtB,OGqBsB,CAAP,EAA0C,kBAA1C,CN6C1C,EAAS,eGlE2B,KHkE3B,CAAT,C;G;EG/DM,oC;IAAC,W;EAAA,C;EADvE,6C;IACkB,uB;MAAA,UAAmB,I;IAAM,qB;MAAA,QAA2B,e;IH+DN,SM7BwC,WAAO,kBAAgB,OAAhB,EHlCtB,OGkCsB,CAAP,EAA0C,kBAA1C,CN6BxC,EAAS,eG/DyB,KH+DzB,CAAT,C;G;yFG3D5D,yB;IAAA,wC;IAAA,4B;MAAQ,yB;K;GAAR,C;2FAIA,yB;IAAA,wC;IAAA,4B;MAAQ,0B;K;GAAR,C;EASsF,mC;IAAC,W;EAAA,C;EAD3F,4C;IACsC,uB;MAAA,UAAmB,I;IAAM,qB;MAAA,QAA2B,c;IACtF,OHgDM,oBI4WkH,WAAO,kBAAgB,OAAhB,ED5ZpH,OC4ZoH,CAAP,YJ5WlH,aAA8B,0BGhDhB,KHgDgB,CAA9B,C;G;EG7C0E,gC;IAAC,W;EAAA,C;EADrF,yC;IACmC,uB;MAAA,UAAmB,I;IAAM,qB;MAAA,QAAwB,W;IAChF,OH4CM,oBI4mB4G,QAAI,kBAAgB,OAAhB,EDxpB9G,OCwpB8G,CAAJ,YJ5mB5G,aAA8B,0BG5CnB,KH4CmB,CAA9B,C;G;EG1CV,2C;IAC+B,uB;MAAA,UAAmB,I;IHsCc,SOyQqD,QAAI,kBAAgB,OAAhB,EJ9S7G,OI8S6G,CAAJ,EAAuC,kBAAvC,CPzQrD,EAAS,eGrCpD,KHqCoD,CAAT,C;EGpChE,C;EAGmG,qC;IAAC,W;EAAA,C;EADpG,8C;IAC+C,uB;MAAA,UAAmB,I;IAAM,qB;MAAA,QAA2B,gB;IHiCnC,SOybwE,WAAO,kBAAgB,OAAhB,EJzdhI,OIydgI,CAAP,EAA0C,kBAA1C,CPzbxE,EAAS,eGhCjD,KHgCiD,CAAT,C;G;EG5B5D,6B;IAAQ,wB;G;EACR,oC;IACI,oBAAU,K;EACd,C;EAIA,+B;IAAQ,wB;G;EACR,sC;IACI,oBAAU,K;EACd,C;EAIA,sC;IAAQ,mC;G;EACR,gD;IACI,6BAAgB,QAAhB,C;EACJ,C;EAIA,oC;IAAQ,iC;G;EACR,8C;IACI,2BAAc,QAAd,C;EACJ,C;EKnEoB,qC;IAAC,4B;IACrB,iBAA4B,I;G;iDAE5B,e;IACI,0B;IACA,iBAAU,G;EACd,C;2DAEA,iC;IACI,IAAI,0BAAmB,wBAAW,GAAX,CAAvB,C;MACI,MAAM,2BAAsB,gFAAtB,C;KAEd,C;iDAEA,6B;IACI,IAAI,0BAAmB,wBAAW,GAAX,CAAvB,C;MACI,MAAM,2BAAsB,gFAAtB,C;KAEd,C;+CAEA,e;IACI,0B;IACA,eAAW,kBAAS,GAAT,C;EACf,C;mDAEA,mB;IACI,0B;IACA,eAAW,sBAAa,OAAb,C;EACf,C;yDAEA,kB;IACI,0B;IACA,eAAW,4BAAmB,MAAnB,C;EACf,C;iDAEA,0B;IACI,0B;IACA,eAAW,oBAAW,GAAX,EAAgB,SAAhB,C;EACf,C;mDAEA,mB;IACI,0B;IACA,eAAW,sBAAa,OAAb,C;EACf,C;uCAEA,Y;IACI,0B;IACA,OAAO,eAAW,W;EACtB,C;yDAEA,iB;IACI,0B;IACA,OAAO,eAAW,4BAAmB,KAAnB,C;EACtB,C;kDAEA,Y;IACI,Q;IAAA,oC;MACI,iBAAU,I;MACV,eAAW,yB;KAEnB,C;;;;;;EAGJ,4B;IAAmD,OAAI,yCAAJ,GAAgC,SAAhC,GAA0C,oBAAgB,SAAhB,C;G;EChE1E,qD;IAEf,gB;IACA,0B;IAEA,iBAA2C,a;IAC3C,wBAA6B,K;G;;;SAGzB,Y;MAAQ,OAAA,cAAQ,K;K;;oCAEpB,Y;IAAkC,OAAA,cAAQ,U;G;8CAE1C,e;IAAiD,OAAA,cAAQ,mBAAY,GAAZ,C;G;gDACzD,iB;IAAqD,OAAA,cAAQ,qBAAc,KAAd,C;G;sCAC7D,e;IAAyC,gCAAQ,GAAR,C;G;wCAEzC,sB;IACI,cAAc,wB;IAEd,UAAU,OAAQ,aAAI,GAAJ,EAAS,KAAT,C;IAClB,IAAI,aAAO,KAAP,CAAJ,C;MACI,iBAAW,8BAAqB,UAArB,EAA0B,GAA1B,EAA+B,KAA/B,C;KAGf,OAAO,G;EACX,C;yCAEA,e;IAGmB,Q;IAFf,cAAc,wB;IAEP,U;IAAA,KAAQ,OAAR,OAAQ,cAAO,GAAP,CAAR,U;MACH,iBAAW,8BAAqB,UAArB,OAA+B,IAA/B,C;MADR,a;;MAAA,a;IAAP,a;EAIJ,C;2CAEA,gB;IACI,IAAI,IAAK,UAAT,C;MAAoB,M;IAEpB,eAAe,iB;IACf,cAAc,wB;Ib6uDF,Q;IAAA,Oa3uDZ,IAAK,Qb2uDO,W;IAAhB,OAAgB,cAAhB,C;MAAgB,yB;Ma1uDR,IAAI,QAAQ,oBb0uDS,Oa1uDH,IAAN,Eb0uDS,Oa1uDI,MAAb,CAAR,Eb0uDiB,Oa1uDgB,MAAjC,CAAJ,C;QACa,sCAAqB,UAArB,EbyuDQ,OazuDoB,IAA5B,EbyuDQ,OazuD2B,MAAnC,C;;EAGrB,C;kCAEA,Y;IC8HgB,Q;IAAA,OD7HZ,cf2TgF,QAAQ,W;IgB9L5F,OAAgB,cAAhB,C;MAAgB,yB;MD7HW,iBAAW,8BAAqB,UAArB,EC6HT,OD7HqC,IAA5B,EAAiC,IAAjC,C;;IAClC,iBAAU,U;IACV,wBAAiB,K;EACrB,C;;;SAGI,Y;MAAQ,OAAA,cAAQ,Q;K;;8CAEpB,Y;IAA4D,gB;IAAA,IAAI,qBAAJ,C;MACxD,qB;;MAEA,wBAAiB,I;MACjB,iBAAU,qBAAc,cAAd,C;MACV,qB;;IALwD,qE;G;;;SASxD,Y;MAAQ,OAAA,wBAAkB,K;K;;;;SAG1B,Y;MAAQ,OAAA,wBAAkB,O;K;;;;SAG1B,Y;MAAQ,OAAA,wBAAkB,Q;K;;;;;;;EE1EU,0D;IACxC,4B;IACA,sB;G;6DAGA,0B;IAA0D,aAAQ,eAAR,EAAoB,SAApB,C;G;mDAF1D,Y;IAAA,iC;G;uEAAA,iC;IAAA,0E;G;+DAAA,mB;IAAA,oD;G;+DAAA,mB;IAAA,oD;G;qEAAA,kB;IAAA,yD;G;qEAAA,iB;IAAA,wD;G;2DAAA,e;IAAA,4C;G;6DAAA,6B;IAAA,4D;G;6DAAA,e;IAAA,8C;G;;;;;;EAKJ,qC;IAKU,uCAA4B,SAA5B,EAAkC,OAAlC,C;G;ECZV,4B;IAAA,gC;IACI,8C;IACA,8C;IACA,8C;G;;;;;;;EAHJ,wC;IAAA,uC;MAAA,sB;KAAA,gC;G;EAMA,wC;IAAA,e;IAAA,iB;IAAA,uB;G;EAAA,sC;IAAA,yC;K;IACI,8D;IACA,8D;IACA,8D;G;;EAFA,4C;IAAA,4B;IAAA,oC;G;;EACA,4C;IAAA,4B;IAAA,oC;G;;EACA,4C;IAAA,4B;IAAA,oC;G;;;;;;EAHJ,kC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AAgB,OAAhB,EAAyB,OAAzB,CAAR,EAA2C,SAA3C,CJoDhH,EIpDkL,SJoDlL,EAA8B,wBIpD0J,KJoD1J,CAA9B,C;K;GIxDV,C;+EAMA,yB;IAAA,6B;IAAA,6D;IAAA,4D;IAAA,mC;IJiDA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;II9CyG,gC;MAAC,W;IAAA,C;IAJ5J,wD;MAI0C,qB;QAAA,QAAqB,I;MAAM,mB;QAAA,MAAgB,I;MAAM,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAsC,W;MAAU,OJ8C3J,oBI9C2J,cAAK,iBAAgB,OAAhB,EAAyB,wCAAzB,EAA6C,KAA7C,EAAoD,GAApD,EAAwD,OAAxD,EAAiE,OAAjE,EAAL,EAAgF,SAAhF,CJ8C3J,EI9CkQ,SJ8ClQ,EAA8B,wBI9C0O,KJ8C1O,CAA9B,C;K;GIlDV,C;qFAMA,yB;IAAA,6B;IAAA,4D;IAAA,yC;IJ2CA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IIxC8D,mC;MAAC,W;IAAA,C;IAJjH,4C;MAI6C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAyC,c;MAAU,OJwChH,oBIxCgH,iBAAQ,gBAAgB,OAAhB,EAAyB,OAAzB,CAAR,EAA2C,SAA3C,CJwChH,EIxCkL,SJwClL,EAA8B,wBIxC0J,KJwC1J,CAA9B,C;K;GI5CV,C;iFAMA,yB;IAAA,6B;IAAA,4D;IAAA,qC;IJqCA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IIlC0D,iC;MAAC,W;IAAA,C;IAJ7G,4C;MAI2C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAuC,Y;MAAU,OJkC5G,oBIlC4G,eAAM,gBAAgB,OAAhB,EAAyB,OAAzB,CAAN,EAAyC,SAAzC,CJkC5G,EIlC4K,SJkC5K,EAA8B,wBIlCoJ,KJkCpJ,CAA9B,C;K;GItCV,C;iFAMA,yB;IAAA,6B;IAAA,4D;IAAA,qC;IJ+BA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;II5B0D,iC;MAAC,W;IAAA,C;IAJ7G,4C;MAI2C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAuC,Y;MAAU,OJ4B5G,oBI5B4G,eAAM,gBAAgB,OAAhB,EAAyB,OAAzB,CAAN,EAAyC,SAAzC,CJ4B5G,EI5B4K,SJ4B5K,EAA8B,wBI5BoJ,KJ4BpJ,CAA9B,C;K;GIhCV,C;yEAMA,yB;IAAA,6B;IAAA,4D;IAAA,6B;IJyBA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IItBkD,6B;MAAC,W;IAAA,C;IAJrG,4C;MAIuC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAmC,Q;MAAU,OJsBpG,oBItBoG,WAAE,gBAAgB,OAAhB,EAAyB,OAAzB,CAAF,EAAqC,SAArC,CJsBpG,EItBgK,SJsBhK,EAA8B,wBItBwI,KJsBxI,CAA9B,C;K;GI1BV,C;+EAMA,yB;IAAA,6B;IAAA,4D;IAAA,mC;IJmBA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IIhBwD,gC;MAAC,W;IAAA,C;IAJ3G,4C;MAI0C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAsC,W;MAAU,OJgB1G,oBIhB0G,cAAK,gBAAgB,OAAhB,EAAyB,OAAzB,CAAL,EAAwC,SAAxC,CJgB1G,EIhByK,SJgBzK,EAA8B,wBIhBiJ,KJgBjJ,CAA9B,C;K;GIpBV,C;6EAMA,yB;IAAA,6B;IAAA,4D;IAAA,iC;IJaA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IIVsD,+B;MAAC,W;IAAA,C;IAJzG,4C;MAIyC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAqC,U;MAAU,OJUxG,oBIVwG,aAAI,gBAAgB,OAAhB,EAAyB,OAAzB,CAAJ,EAAuC,SAAvC,CJUxG,EIVsK,SJUtK,EAA8B,wBIV8I,KJU9I,CAA9B,C;K;GIdV,C;6EAMA,yB;IAAA,6B;IAAA,4D;IAAA,iC;IJOA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IIJsD,+B;MAAC,W;IAAA,C;IAJzG,4C;MAIyC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAqC,U;MAAU,OJIxG,oBIJwG,aAAI,gBAAgB,OAAhB,EAAyB,OAAzB,CAAJ,EAAuC,SAAvC,CJIxG,EIJsK,SJItK,EAA8B,wBIJ8I,KJI9I,CAA9B,C;K;GIRV,C;0FAMA,yB;IAAA,6B;IAAA,4D;IAAA,+C;IJCA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IIEoE,sC;MAAC,W;IAAA,C;IAJvH,4C;MAIgD,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAA4C,iB;MAAU,OJFtH,oBIEsH,oBAAW,gBAAgB,OAAhB,EAAyB,OAAzB,CAAX,EAA8C,SAA9C,CJFtH,EIE2L,SJF3L,EAA8B,wBIEmK,KJFnK,CAA9B,C;K;GIFV,C;+EAMA,yB;IAAA,6B;IAAA,4D;IAAA,mC;IJLA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IIQwD,gC;MAAC,W;IAAA,C;IAJ3G,4C;MAI0C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAsC,W;MAAU,OJR1G,oBIQ0G,cAAK,gBAAgB,OAAhB,EAAyB,OAAzB,CAAL,EAAwC,SAAxC,CJR1G,EIQyK,SJRzK,EAA8B,wBIQiJ,KJRjJ,CAA9B,C;K;GIIV,C;2EAMA,yB;IAAA,6B;IAAA,4D;IAAA,+B;IJXA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IIcoD,8B;MAAC,W;IAAA,C;IAJvG,4C;MAIwC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAoC,S;MAAU,OJdtG,oBIcsG,YAAG,gBAAgB,OAAhB,EAAyB,OAAzB,CAAH,EAAsC,SAAtC,CJdtG,EIcmK,SJdnK,EAA8B,wBIc2I,KJd3I,CAA9B,C;K;GIUV,C;mFAMA,yB;IAAA,6B;IAAA,6D;IAAA,4D;IAAA,uC;IJjBA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IIoB8L,kC;MAAC,W;IAAA,C;IAJjP,iF;MAI4C,2B;QAAA,cAAmC,I;MAAM,0B;QAAA,aAAiC,I;MAAM,oB;QAAA,OAAiB,I;MAAM,oB;QAAA,OAAqB,I;MAAM,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAwC,a;MAAU,OJpBhP,oBIoBgP,gBAAO,iBAAgB,aAAhB,EAA+B,oDAA/B,EAAyD,YAAzD,EAAuE,kDAAvE,EAAgG,MAAhG,EAAwG,IAAxG,EAA6G,MAA7G,EAAqH,sCAArH,EAAwI,OAAxI,EAAiJ,OAAjJ,EAAP,EAAkK,SAAlK,CJpBhP,EIoBya,SJpBza,EAA8B,wBIoBiZ,KJpBjZ,CAA9B,C;K;GIgBV,C;EAUmK,wC;IAAA,4B;MAAC,4BAAC,eAAD,C;MAAQ,W;IAAA,C;G;EAJ5K,6C;IAIqC,uB;MAAA,UAAoB,I;IAAM,uB;MAAA,UAAmB,E;IAAU,OJ1BlF,oBI0BkF,WAAO,kBAAgB,OAAhB,EAAyB,OAAzB,CAAP,EAA0C,SAA1C,CJ1BlF,EI0BmJ,SJ1BnJ,EAA8B,0BI0B2H,sBJ1B3H,CAA9B,C;G;qFI2BV,yB;IAAA,6B;IAAA,4D;IAAA,uC;IJ5BA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;II+B4D,kC;MAAC,W;IAAA,C;IAJ/G,4C;MAI4C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAwC,a;MAAU,OJ/B9G,oBI+B8G,gBAAO,gBAAgB,OAAhB,EAAyB,OAAzB,CAAP,EAA0C,SAA1C,CJ/B9G,EI+B+K,SJ/B/K,EAA8B,wBI+BuJ,KJ/BvJ,CAA9B,C;K;GI2BV,C;qFAMA,yB;IAAA,6B;IAAA,4D;IAAA,yC;IJlCA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IIqC8D,mC;MAAC,W;IAAA,C;IAJjH,4C;MAI6C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAyC,c;MAAU,OJrChH,oBIqCgH,iBAAQ,gBAAgB,OAAhB,EAAyB,OAAzB,CAAR,EAA2C,SAA3C,CJrChH,EIqCkL,SJrClL,EAA8B,wBIqC0J,KJrC1J,CAA9B,C;K;GIiCV,C;+EAMA,yB;IAAA,6B;IAAA,4D;IAAA,mC;IJxCA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;II2CwD,gC;MAAC,W;IAAA,C;IAJ3G,4C;MAI0C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAsC,W;MAAU,OJ3C1G,oBI2C0G,cAAK,gBAAgB,OAAhB,EAAyB,OAAzB,CAAL,EAAwC,SAAxC,CJ3C1G,EI2CyK,SJ3CzK,EAA8B,wBI2CiJ,KJ3CjJ,CAA9B,C;K;GIuCV,C;+EAMA,yB;IAAA,6B;IAAA,4D;IAAA,mC;IJ9CA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IIiDwD,gC;MAAC,W;IAAA,C;IAJ3G,4C;MAI0C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAsC,W;MAAU,OJjD1G,oBIiD0G,cAAK,gBAAgB,OAAhB,EAAyB,OAAzB,CAAL,EAAwC,SAAxC,CJjD1G,EIiDyK,SJjDzK,EAA8B,wBIiDiJ,KJjDjJ,CAA9B,C;K;GI6CV,C;6EAMA,yB;IAAA,6B;IAAA,4D;IAAA,iC;IJpDA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IIuDsD,+B;MAAC,W;IAAA,C;IAJzG,4C;MAIyC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAqC,U;MAAU,OJvDxG,oBIuDwG,aAAI,gBAAgB,OAAhB,EAAyB,OAAzB,CAAJ,EAAuC,SAAvC,CJvDxG,EIuDsK,SJvDtK,EAA8B,wBIuD8I,KJvD9I,CAA9B,C;K;GImDV,C;uFAMA,yB;IAAA,6B;IAAA,4D;IAAA,2C;IJ1DA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;II6DgE,oC;MAAC,W;IAAA,C;IAJnH,4C;MAI8C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAA0C,e;MAAU,OJ7DlH,oBI6DkH,kBAAS,gBAAgB,OAAhB,EAAyB,OAAzB,CAAT,EAA4C,SAA5C,CJ7DlH,EI6DqL,SJ7DrL,EAA8B,wBI6D6J,KJ7D7J,CAA9B,C;K;GIyDV,C;qFAMA,yB;IAAA,6B;IAAA,6D;IAAA,4D;IAAA,yC;IJhEA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IIgE0F,mC;MAAC,W;IAAA,C;IAD7I,kD;MAC6C,oB;QAAA,OAAsB,I;MAAM,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAyC,c;MAAU,OJhE5I,oBIgE4I,iBAAQ,iBAAgB,MAAhB,EAAwB,sCAAxB,EAA2C,OAA3C,EAAoD,OAApD,EAAR,EAAsE,SAAtE,CJhE5I,EIgEyO,SJhEzO,EAA8B,wBIgEiN,KJhEjN,CAA9B,C;K;GI+DV,C;uFAGA,yB;IAAA,6B;IAAA,4D;IAAA,2C;IJnEA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IIsEgE,oC;MAAC,W;IAAA,C;IAJnH,4C;MAI8C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAA0C,e;MAAU,OJtElH,oBIsEkH,kBAAS,gBAAgB,OAAhB,EAAyB,OAAzB,CAAT,EAA4C,SAA5C,CJtElH,EIsEqL,SJtErL,EAA8B,wBIsE6J,KJtE7J,CAA9B,C;K;GIkEV,C;2EAMA,yB;IAAA,6B;IAAA,4D;IAAA,+B;IJzEA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;II4EoD,8B;MAAC,W;IAAA,C;IAJvG,4C;MAIwC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAoC,S;MAAU,OJ5EtG,oBI4EsG,YAAG,gBAAgB,OAAhB,EAAyB,OAAzB,CAAH,EAAsC,SAAtC,CJ5EtG,EI4EmK,SJ5EnK,EAA8B,wBI4E2I,KJ5E3I,CAA9B,C;K;GIwEV,C;6EAMA,yB;IAAA,6B;IAAA,4D;IAAA,iC;IJ/EA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IIkFsD,+B;MAAC,W;IAAA,C;IAJzG,4C;MAIyC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAqC,U;MAAU,OJlFxG,oBIkFwG,aAAI,gBAAgB,OAAhB,EAAyB,OAAzB,CAAJ,EAAuC,SAAvC,CJlFxG,EIkFsK,SJlFtK,EAA8B,wBIkF8I,KJlF9I,CAA9B,C;K;GI8EV,C;qFAMA,yB;IAAA,6B;IAAA,4D;IAAA,yC;IJrFA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IIwF8D,mC;MAAC,W;IAAA,C;IAJjH,4C;MAI6C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAyC,c;MAAU,OJxFhH,oBIwFgH,iBAAQ,gBAAgB,OAAhB,EAAyB,OAAzB,CAAR,EAA2C,SAA3C,CJxFhH,EIwFkL,SJxFlL,EAA8B,wBIwF0J,KJxF1J,CAA9B,C;K;GIoFV,C;6EAMA,yB;IAAA,6B;IAAA,4D;IAAA,iC;IJ3FA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;II8FsD,+B;MAAC,W;IAAA,C;IAJzG,4C;MAIyC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAqC,U;MAAU,OJ9FxG,oBI8FwG,aAAI,gBAAgB,OAAhB,EAAyB,OAAzB,CAAJ,EAAuC,SAAvC,CJ9FxG,EI8FsK,SJ9FtK,EAA8B,wBI8F8I,KJ9F9I,CAA9B,C;K;GI0FV,C;mFAMA,yB;IAAA,6B;IAAA,4D;IAAA,uC;IJjGA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IIoG4D,kC;MAAC,W;IAAA,C;IAJ/G,4C;MAI4C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAwC,a;MAAU,OJpG9G,oBIoG8G,gBAAO,gBAAgB,OAAhB,EAAyB,OAAzB,CAAP,EAA0C,SAA1C,CJpG9G,EIoG+K,SJpG/K,EAA8B,wBIoGuJ,KJpGvJ,CAA9B,C;K;GIgGV,C;6EAMA,yB;IAAA,6B;IAAA,4D;IAAA,iC;IJvGA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;II0GsD,+B;MAAC,W;IAAA,C;IAJzG,4C;MAIyC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAqC,U;MAAU,OJ1GxG,oBI0GwG,aAAI,gBAAgB,OAAhB,EAAyB,OAAzB,CAAJ,EAAuC,SAAvC,CJ1GxG,EI0GsK,SJ1GtK,EAA8B,wBI0G8I,KJ1G9I,CAA9B,C;K;GIsGV,C;2EAMA,yB;IAAA,6B;IAAA,4D;IAAA,+B;IJ7GA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IIgHoD,8B;MAAC,W;IAAA,C;IAJvG,4C;MAIwC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAoC,S;MAAU,OJhHtG,oBIgHsG,YAAG,gBAAgB,OAAhB,EAAyB,OAAzB,CAAH,EAAsC,SAAtC,CJhHtG,EIgHmK,SJhHnK,EAA8B,wBIgH2I,KJhH3I,CAA9B,C;K;GI4GV,C;0EAMA,yB;IAAA,6B;IAAA,4D;IAAA,+B;IJnHA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IIsHoD,8B;MAAC,W;IAAA,C;IAJvG,4C;MAIwC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAoC,S;MAAU,OJtHtG,oBIsHsG,YAAG,gBAAgB,OAAhB,EAAyB,OAAzB,CAAH,EAAsC,SAAtC,CJtHtG,EIsHmK,SJtHnK,EAA8B,wBIsH2I,KJtH3I,CAA9B,C;K;GIkHV,C;2EAMA,yB;IAAA,6B;IAAA,4D;IAAA,+B;IJzHA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;II4HoD,8B;MAAC,W;IAAA,C;IAJvG,4C;MAIwC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAoC,S;MAAU,OJ5HtG,oBI4HsG,YAAG,gBAAgB,OAAhB,EAAyB,OAAzB,CAAH,EAAsC,SAAtC,CJ5HtG,EI4HmK,SJ5HnK,EAA8B,wBI4H2I,KJ5H3I,CAA9B,C;K;GIwHV,C;iFAMA,yB;IAAA,6B;IAAA,4D;IAAA,qC;IJ/HA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IIkI0D,iC;MAAC,W;IAAA,C;IAJ7G,4C;MAI2C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAuC,Y;MAAU,OJlI5G,oBIkI4G,eAAM,gBAAgB,OAAhB,EAAyB,OAAzB,CAAN,EAAyC,SAAzC,CJlI5G,EIkI4K,SJlI5K,EAA8B,wBIkIoJ,KJlIpJ,CAA9B,C;K;GI8HV,C;uFAMA,yB;IAAA,6B;IAAA,4D;IAAA,2C;IJrIA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IIwIgE,oC;MAAC,W;IAAA,C;IAJnH,4C;MAI8C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAA0C,e;MAAU,OJxIlH,oBIwIkH,kBAAS,gBAAgB,OAAhB,EAAyB,OAAzB,CAAT,EAA4C,SAA5C,CJxIlH,EIwIqL,SJxIrL,EAA8B,wBIwI6J,KJxI7J,CAA9B,C;K;GIoIV,C;2FAMA,yB;IAAA,6B;IAAA,4D;IAAA,+C;IJ3IA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;II8IoE,sC;MAAC,W;IAAA,C;IAJvH,4C;MAIgD,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAA4C,iB;MAAU,OJ9ItH,oBI8IsH,oBAAW,gBAAgB,OAAhB,EAAyB,OAAzB,CAAX,EAA8C,SAA9C,CJ9ItH,EI8I2L,SJ9I3L,EAA8B,wBI8ImK,KJ9InK,CAA9B,C;K;GI0IV,C;mFAMA,yB;IAAA,6B;IAAA,4D;IAAA,uC;IJjJA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IIoJ4D,kC;MAAC,W;IAAA,C;IAJ/G,4C;MAI4C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAwC,a;MAAU,OJpJ9G,oBIoJ8G,gBAAO,gBAAgB,OAAhB,EAAyB,OAAzB,CAAP,EAA0C,SAA1C,CJpJ9G,EIoJ+K,SJpJ/K,EAA8B,wBIoJuJ,KJpJvJ,CAA9B,C;K;GIgJV,C;mFAMA,yB;IAAA,6B;IAAA,4D;IAAA,uC;IJvJA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;II0J4D,kC;MAAC,W;IAAA,C;IAJ/G,4C;MAI4C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAwC,a;MAAU,OJ1J9G,oBI0J8G,gBAAO,gBAAgB,OAAhB,EAAyB,OAAzB,CAAP,EAA0C,SAA1C,CJ1J9G,EI0J+K,SJ1J/K,EAA8B,wBI0JuJ,KJ1JvJ,CAA9B,C;K;GIsJV,C;+EAMA,yB;IAAA,6B;IAAA,6D;IAAA,4D;IAAA,mC;IJ7JA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IIgK6I,gC;MAAC,W;IAAA,C;IAJhM,qE;MAI0C,sB;QAAA,SAAmB,I;MAAM,uB;QAAA,UAAyB,I;MAAM,sB;QAAA,SAAuB,I;MAAM,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAsC,W;MAAU,OJhK/L,oBIgK+L,cAAK,iBAAgB,QAAhB,EAA0B,MAA1B,EAAiC,SAAjC,EAA4C,4CAA5C,EAAkE,QAAlE,EAA4E,0CAA5E,EAAiG,OAAjG,EAA0G,OAA1G,EAAL,EAAyH,SAAzH,CJhK/L,EIgK+U,SJhK/U,EAA8B,wBIgKuT,KJhKvT,CAA9B,C;K;GI4JV,C;2EAMA,yB;IAAA,6B;IAAA,4D;IAAA,+B;IJnKA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IIsKoD,8B;MAAC,W;IAAA,C;IAJvG,4C;MAIwC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAoC,S;MAAU,OJtKtG,oBIsKsG,YAAG,gBAAgB,OAAhB,EAAyB,OAAzB,CAAH,EAAsC,SAAtC,CJtKtG,EIsKmK,SJtKnK,EAA8B,wBIsK2I,KJtK3I,CAA9B,C;K;GIkKV,C;2EAMA,yB;IAAA,6B;IAAA,4D;IAAA,+B;IJzKA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;II4KoD,8B;MAAC,W;IAAA,C;IAJvG,4C;MAIwC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAoC,S;MAAU,OJ5KtG,oBI4KsG,YAAG,gBAAgB,OAAhB,EAAyB,OAAzB,CAAH,EAAsC,SAAtC,CJ5KtG,EI4KmK,SJ5KnK,EAA8B,wBI4K2I,KJ5K3I,CAA9B,C;K;GIwKV,C;2EAMA,yB;IAAA,6B;IAAA,4D;IAAA,+B;IJ/KA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IIkLoD,8B;MAAC,W;IAAA,C;IAJvG,4C;MAIwC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAoC,S;MAAU,OJlLtG,oBIkLsG,YAAG,gBAAgB,OAAhB,EAAyB,OAAzB,CAAH,EAAsC,SAAtC,CJlLtG,EIkLmK,SJlLnK,EAA8B,wBIkL2I,KJlL3I,CAA9B,C;K;GI8KV,C;2EAMA,yB;IAAA,6B;IAAA,4D;IAAA,+B;IJrLA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IIwLoD,8B;MAAC,W;IAAA,C;IAJvG,4C;MAIwC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAoC,S;MAAU,OJxLtG,oBIwLsG,YAAG,gBAAgB,OAAhB,EAAyB,OAAzB,CAAH,EAAsC,SAAtC,CJxLtG,EIwLmK,SJxLnK,EAA8B,wBIwL2I,KJxL3I,CAA9B,C;K;GIoLV,C;2EAMA,yB;IAAA,6B;IAAA,4D;IAAA,+B;IJ3LA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;II8LoD,8B;MAAC,W;IAAA,C;IAJvG,4C;MAIwC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAoC,S;MAAU,OJ9LtG,oBI8LsG,YAAG,gBAAgB,OAAhB,EAAyB,OAAzB,CAAH,EAAsC,SAAtC,CJ9LtG,EI8LmK,SJ9LnK,EAA8B,wBI8L2I,KJ9L3I,CAA9B,C;K;GI0LV,C;2EAMA,yB;IAAA,6B;IAAA,4D;IAAA,+B;IJjMA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IIoMoD,8B;MAAC,W;IAAA,C;IAJvG,4C;MAIwC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAoC,S;MAAU,OJpMtG,oBIoMsG,YAAG,gBAAgB,OAAhB,EAAyB,OAAzB,CAAH,EAAsC,SAAtC,CJpMtG,EIoMmK,SJpMnK,EAA8B,wBIoM2I,KJpM3I,CAA9B,C;K;GIgMV,C;EAY4G,sC;IAAA,4B;MAAC,4BAAC,eAAD,C;MAAQ,W;IAAA,C;G;EANrH,kC;IAMmC,uB;MAAA,UAAmB,E;IAAU,OJ5MtD,oBI4MsD,SAAK,UAAL,EAAe,SAAf,CJ5MtD,EI4M4F,SJ5M5F,EAA8B,0BI4MoE,oBJ5MpE,CAA9B,C;G;iFI6MV,yB;IAAA,6B;IAAA,yB;IAAA,mC;IJ9MA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IIiN8B,gC;MAAC,W;IAAA,C;IAJjF,mC;MAI0C,qB;QAAA,QAAsC,W;MAAU,OJjNhF,oBIiNgF,cAAK,aAAL,EAAe,SAAf,CJjNhF,EIiNsH,SJjNtH,EAA8B,wBIiN8F,KJjN9F,CAA9B,C;K;GI6MV,C;mFAMA,yB;IAAA,6B;IAAA,4D;IAAA,uC;IJpNA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IIuN4D,kC;MAAC,W;IAAA,C;IAJ/G,4C;MAI4C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAwC,a;MAAU,OJvN9G,oBIuN8G,gBAAO,gBAAgB,OAAhB,EAAyB,OAAzB,CAAP,EAA0C,SAA1C,CJvN9G,EIuN+K,SJvN/K,EAA8B,wBIuNuJ,KJvNvJ,CAA9B,C;K;GImNV,C;mFAMA,yB;IAAA,6B;IAAA,4D;IAAA,uC;IJ1NA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;II0N4D,kC;MAAC,W;IAAA,C;IAD/G,4C;MAC4C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAwC,a;MAAU,OJ1N9G,oBI0N8G,gBAAO,gBAAgB,OAAhB,EAAyB,OAAzB,CAAP,EAA0C,SAA1C,CJ1N9G,EI0N+K,SJ1N/K,EAA8B,wBI0NuJ,KJ1NvJ,CAA9B,C;K;GIyNV,C;2EAGA,yB;IAAA,6B;IAAA,4D;IAAA,+B;IJ7NA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IIgOoD,8B;MAAC,W;IAAA,C;IAJvG,4C;MAIwC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAoC,S;MAAU,OJhOtG,oBIgOsG,YAAG,gBAAgB,OAAhB,EAAyB,OAAzB,CAAH,EAAsC,SAAtC,CJhOtG,EIgOmK,SJhOnK,EAA8B,wBIgO2I,KJhO3I,CAA9B,C;K;GI4NV,C;EAYmJ,sC;IAAA,4B;MAAC,4BAAC,eAAD,C;MAAQ,W;IAAA,C;G;EAN5J,6C;IAMmC,uB;MAAA,UAAmB,E;IAAI,yB;MAAA,YAAsB,I;IAAY,OJxOlF,oBIwOkF,SAAK,UAAL,EAAe,SAAf,EAAqB,SAArB,CJxOlF,EIwOmI,SJxOnI,EAA8B,0BIwO2G,oBJxO3G,CAA9B,C;G;iFIyOV,yB;IAAA,6B;IAAA,yB;IAAA,mC;IJ1OA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;II6O0D,gC;MAAC,W;IAAA,C;IAJ7G,8C;MAI0C,yB;QAAA,YAAsB,I;MAAM,qB;QAAA,QAAsC,W;MAAU,OJ7O5G,oBI6O4G,cAAK,aAAL,EAAe,SAAf,EAAqB,SAArB,CJ7O5G,EI6O6J,SJ7O7J,EAA8B,wBI6OqI,KJ7OrI,CAA9B,C;K;GIyOV,C;yEAMA,yB;IAAA,6B;IAAA,4D;IAAA,6B;IJhPA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IImPkD,6B;MAAC,W;IAAA,C;IAJrG,4C;MAIuC,uB;QAAA,UAAoB,I;MAA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B,SAAhB,EAA2B,4CAA3B,EAAiD,OAAjD,EAA0D,OAA1D,EAAP,EAA2E,SAA3E,CJ5R/I,EI4RiP,SJ5RjP,EAA8B,wBI4RyN,KJ5RzN,CAA9B,C;K;GIwRV,C;iFAMA,yB;IAAA,6B;IAAA,4D;IAAA,qC;IJ/RA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IIkS0D,iC;MAAC,W;IAAA,C;IAJ7G,4C;MAI2C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAuC,Y;MAAU,OJlS5G,oBIkS4G,eAAM,gBAAgB,OAAhB,EAAyB,OAAzB,CAAN,EAAyC,SAAzC,CJlS5G,EIkS4K,SJlS5K,EAA8B,wBIkSoJ,KJlSpJ,CAA9B,C;K;GI8RV,C;mFAMA,yB;IAAA,6B;IAAA,4D;IAAA,uC;IJrSA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IIwS4D,kC;MAAC,W;IAAA,C;IAJ/G,4C;MAI4C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAwC,a;MAAU,OJxS9G,oBIwS8G,gBAAO,gBAAgB,OAAhB,EAAyB,OAAzB,CAAP,EAA0C,SAA1C,CJxS9G,EIwS+K,SJxS/K,EAA8B,wBIwSuJ,KJxSvJ,CAA9B,C;K;GIoSV,C;2EAMA,yB;IAAA,6B;IAAA,4D;IAAA,+B;IJ3SA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;II8SoD,8B;MAAC,W;IAAA,C;IAJvG,4C;MAIwC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAoC,S;MAAU,OJ9StG,oBI8SsG,YAAG,gBAAgB,OAAhB,EAAyB,OAAzB,CAAH,EAAsC,SAAtC,CJ9StG,EI8SmK,SJ9SnK,EAA8B,wBI8S2I,KJ9S3I,CAA9B,C;K;GI0SV,C;+EAMA,yB;IAAA,6B;IAAA,4D;IAAA,mC;IJjTA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IIoTkG,gC;MAAC,W;IAAA,C;IAJrJ,oD;MAI0C,oB;QAAA,OAAiB,I;MAAM,mB;QAAA,MAAgB,I;MAAM,oB;QAAA,OAAiB,I;MAAM,qB;QAAA,QAAsC,W;MAAU,OJpTpJ,oBIoToJ,cAAK,iBAAgB,MAAhB,EAAwB,IAAxB,EAA6B,KAA7B,EAAoC,GAApC,EAAwC,MAAxC,EAAgD,IAAhD,EAAL,EAA4D,SAA5D,CJpTpJ,EIoTuO,SJpTvO,EAA8B,wBIoT+M,KJpT/M,CAA9B,C;K;GIgTV,C;+EAMA,yB;IAAA,6B;IAAA,4D;IAAA,mC;IJvTA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;II0TwD,gC;MAAC,W;IAAA,C;IAJ3G,4C;MAI0C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAsC,W;MAAU,OJ1T1G,oBI0T0G,cAAK,gBAAgB,OAAhB,EAAyB,OAAzB,CAAL,EAAwC,SAAxC,CJ1T1G,EI0TyK,SJ1TzK,EAA8B,wBI0TiJ,KJ1TjJ,CAA9B,C;K;GIsTV,C;6EAMA,yB;IAAA,6B;IAAA,4D;IAAA,iC;IJ7TA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IIgU6E,+B;MAAC,W;IAAA,C;IAJhI,kD;MAIyC,oB;QAAA,OAAiB,I;MAAM,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAqC,U;MAAU,OJhU/H,oBIgU+H,aAAI,iBAAgB,MAAhB,EAAwB,IAAxB,EAA6B,OAA7B,EAAsC,OAAtC,EAAJ,EAAoD,SAApD,CJhU/H,EIgU0M,SJhU1M,EAA8B,wBIgUkL,KJhUlL,CAA9B,C;K;GI4TV,C;+EAMA,yB;IAAA,6B;IAAA,4D;IAAA,mC;IJnUA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IIsUwD,gC;MAAC,W;IAAA,C;IAJ3G,4C;MAI0C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAsC,W;MAAU,OJtU1G,oBIsU0G,cAAK,gBAAgB,OAAhB,EAAyB,OAAzB,CAAL,EAAwC,SAAxC,CJtU1G,EIsUyK,SJtUzK,EAA8B,wBIsUiJ,KJtUjJ,CAA9B,C;K;GIkUV,C;+EAMA,yB;IAAA,6B;IAAA,4D;IAAA,mC;IJzUA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IIyUwD,gC;MAAC,W;IAAA,C;IAD3G,4C;MAC0C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAsC,W;MAAU,OJzU1G,oBIyU0G,cAAK,gBAAgB,OAAhB,EAAyB,OAAzB,CAAL,EAAwC,SAAxC,CJzU1G,EIyUyK,SJzUzK,EAA8B,wBIyUiJ,KJzUjJ,CAA9B,C;K;GIwUV,C;EAImK,wC;IAAA,4B;MAAC,4BAAC,eAAD,C;MAAQ,W;IAAA,C;G;EAD5K,6C;IACqC,uB;MAAA,UAAoB,I;IAAM,uB;MAAA,UAAmB,E;IAAU,OJ5UlF,oBI4UkF,WAAO,kBAAgB,OAAhB,EAAyB,OAAzB,CAAP,EAA0C,SAA1C,CJ5UlF,EI4UmJ,SJ5UnJ,EAA8B,0BI4U2H,sBJ5U3H,CAA9B,C;G;qFI6UV,yB;IAAA,6B;IAAA,4D;IAAA,uC;IJ9UA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;II8U4D,kC;MAAC,W;IAAA,C;IAD/G,4C;MAC4C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAwC,a;MAAU,OJ9U9G,oBI8U8G,gBAAO,gBAAgB,OAAhB,EAAyB,OAAzB,CAAP,EAA0C,SAA1C,CJ9U9G,EI8U+K,SJ9U/K,EAA8B,wBI8UuJ,KJ9UvJ,CAA9B,C;K;GI6UV,C;+EAGA,yB;IAAA,6B;IAAA,4D;IAAA,mC;IJjVA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IIoVyG,gC;MAAC,W;IAAA,C;IAJ5J,2D;MAI0C,oB;QAAA,OAAiB,I;MAAM,uB;QAAA,UAAoB,I;MAAM,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAsC,W;MAAU,OJpV3J,oBIoV2J,cAAK,iBAAgB,MAAhB,EAAwB,IAAxB,EAA6B,SAA7B,EAAwC,OAAxC,EAAgD,SAAhD,EAA2D,OAA3D,EAAL,EAA0E,SAA1E,CJpV3J,EIoV4P,SJpV5P,EAA8B,wBIoVoO,KJpVpO,CAA9B,C;K;GIgVV,C;iFAMA,yB;IAAA,6B;IAAA,4D;IAAA,qC;IJvVA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;II0V0D,iC;MAAC,W;IAAA,C;IAJ7G,4C;MAI2C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAuC,Y;MAAU,OJ1V5G,oBI0V4G,eAAM,gBAAgB,OAAhB,EAAyB,OAAzB,CAAN,EAAyC,SAAzC,CJ1V5G,EI0V4K,SJ1V5K,EAA8B,wBI0VoJ,KJ1VpJ,CAA9B,C;K;GIsVV,C;6EAMA,yB;IAAA,6B;IAAA,4D;IAAA,iC;IJ7VA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IIgWsD,+B;MAAC,W;IAAA,C;IAJzG,4C;MAIyC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAqC,U;MAAU,OJhWxG,oBIgWwG,aAAI,gBAAgB,OAAhB,EAAyB,OAAzB,CAAJ,EAAuC,SAAvC,CJhWxG,EIgWsK,SJhWtK,EAA8B,wBIgW8I,KJhW9I,CAA9B,C;K;GI4VV,C;uFAMA,yB;IAAA,6B;IAAA,4D;IAAA,2C;IJnWA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IIsWgE,oC;MAAC,W;IAAA,C;IAJnH,4C;MAI8C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAA0C,e;MAAU,OJtWlH,oBIsWkH,kBAAS,gBAAgB,OAAhB,EAAyB,OAAzB,CAAT,EAA4C,SAA5C,CJtWlH,EIsWqL,SJtWrL,EAA8B,wBIsW6J,KJtW7J,CAA9B,C;K;GIkWV,C;2FAMA,yB;IAAA,6B;IAAA,4D;IAAA,uC;IJzWA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;II4WgE,sC;MAAC,W;IAAA,C;IAJnH,4C;MAIgD,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAwC,iB;MAAU,OJ5WlH,oBI4WkH,gBAAO,gBAAgB,OAAhB,EAAyB,OAAzB,CAAP,EAA0C,SAA1C,CJ5WlH,EI4WmL,SJ5WnL,EAA8B,wBI4W2J,KJ5W3J,CAA9B,C;K;GIwWV,C;2EAMA,yB;IAAA,6B;IAAA,4D;IAAA,+B;IJ/WA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IIkXoD,8B;MAAC,W;IAAA,C;IAJvG,4C;MAIwC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAoC,S;MAAU,OJlXtG,oBIkXsG,YAAG,gBAAgB,OAAhB,EAAyB,OAAzB,CAAH,EAAsC,SAAtC,CJlXtG,EIkXmK,SJlXnK,EAA8B,wBIkX2I,KJlX3I,CAA9B,C;K;GI8WV,C;uFAMA,yB;IAAA,6B;IAAA,4D;IAAA,2C;IJrXA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IIwXwF,oC;MAAC,W;IAAA,C;IAJ3I,mD;MAI8C,qB;QAAA,QAAkB,I;MAAM,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAA0C,e;MAAU,OJxX1I,oBIwX0I,kBAAS,iBAAgB,OAAhB,EAAyB,KAAzB,EAA+B,OAA/B,EAAwC,OAAxC,EAAT,EAA2D,SAA3D,CJxX1I,EIwX4N,SJxX5N,EAA8B,wBIwXoM,KJxXpM,CAA9B,C;K;GIoXV,C;EAUmK,wC;IAAA,4B;MAAC,4BAAC,eAAD,C;MAAQ,W;IAAA,C;G;EAJ5K,6C;IAIqC,uB;MAAA,UAAoB,I;IAAM,uB;MAAA,UAAmB,E;IAAU,OJ9XlF,oBI8XkF,WAAO,kBAAgB,OAAhB,EAAyB,OAAzB,CAAP,EAA0C,SAA1C,CJ9XlF,EI8XmJ,SJ9XnJ,EAA8B,0BI8X2H,sBJ9X3H,CAA9B,C;G;qFI+XV,yB;IAAA,6B;IAAA,4D;IAAA,uC;IJhYA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IImY4D,kC;MAAC,W;IAAA,C;IAJ/G,4C;MAI4C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAwC,a;MAAU,OJnY9G,oBImY8G,gBAAO,gBAAgB,OAAhB,EAAyB,OAAzB,CAAP,EAA0C,SAA1C,CJnY9G,EImY+K,SJnY/K,EAA8B,wBImYuJ,KJnYvJ,CAA9B,C;K;GI+XV,C;mFAMA,yB;IAAA,6B;IAAA,4D;IAAA,uC;IJtYA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IIyY4D,kC;MAAC,W;IAAA,C;IAJ/G,4C;MAI4C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAwC,a;MAAU,OJzY9G,oBIyY8G,gBAAO,gBAAgB,OAAhB,EAAyB,OAAzB,CAAP,EAA0C,SAA1C,CJzY9G,EIyY+K,SJzY/K,EAA8B,wBIyYuJ,KJzYvJ,CAA9B,C;K;GIqYV,C;yEAMA,yB;IAAA,6B;IAAA,4D;IAAA,6B;IJ5YA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;II+YkD,6B;MAAC,W;IAAA,C;IAJrG,4C;MAIuC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAmC,Q;MAAU,OJ/YpG,oBI+YoG,WAAE,gBAAgB,OAAhB,EAAyB,OAAzB,CAAF,EAAqC,SAArC,CJ/YpG,EI+YgK,SJ/YhK,EAA8B,wBI+YwI,KJ/YxI,CAA9B,C;K;GI2YV,C;iFAMA,yB;IAAA,6B;IAAA,4D;IAAA,qC;IJlZA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IIqZ+E,iC;MAAC,W;IAAA,C;IAJlI,gD;MAI2C,oB;QAAA,OAAiB,I;MAAM,qB;QAAA,QAAkB,I;MAAM,qB;QAAA,QAAuC,Y;MAAU,OJrZjI,oBIqZiI,eAAM,iBAAgB,MAAhB,EAAwB,IAAxB,EAA6B,OAA7B,EAAsC,KAAtC,EAAN,EAAoD,SAApD,CJrZjI,EIqZ4M,SJrZ5M,EAA8B,wBIqZoL,KJrZpL,CAA9B,C;K;GIiZV,C;qFAMA,yB;IAAA,6B;IAAA,yB;IAAA,yC;IJxZA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;II2ZoC,mC;MAAC,W;IAAA,C;IAJvF,mC;MAI6C,qB;QAAA,QAAyC,c;MAAU,OJ3ZtF,oBI2ZsF,iBAAQ,aAAR,EAAkB,SAAlB,CJ3ZtF,EI2Z+H,SJ3Z/H,EAA8B,wBI2ZuG,KJ3ZvG,CAA9B,C;K;GIuZV,C;6EAMA,yB;IAAA,6B;IAAA,4D;IAAA,iC;IJ9ZA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IIiasD,+B;MAAC,W;IAAA,C;IAJzG,4C;MAIyC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAqC,U;MAAU,OJjaxG,oBIiawG,aAAI,gBAAgB,OAAhB,EAAyB,OAAzB,CAAJ,EAAuC,SAAvC,CJjaxG,EIiasK,SJjatK,EAA8B,wBIia8I,KJja9I,CAA9B,C;K;GI6ZV,C;uFAMA,yB;IAAA,6B;IAAA,4D;IAAA,2C;IJpaA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IIuagE,oC;MAAC,W;IAAA,C;IAJnH,4C;MAI8C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAA0C,e;MAAU,OJvalH,oBIuakH,kBAAS,gBAAgB,OAAhB,EAAyB,OAAzB,CAAT,EAA4C,SAA5C,CJvalH,EIuaqL,SJvarL,EAA8B,wBIua6J,KJva7J,CAA9B,C;K;GImaV,C;yEAMA,yB;IAAA,6B;IAAA,4D;IAAA,6B;IJ1aA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;II6akD,6B;MAAC,W;IAAA,C;IAJrG,4C;MAIuC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAmC,Q;MAAU,OJ7apG,oBI6aoG,WAAE,gBAAgB,OAAhB,EAAyB,OAAzB,CAAF,EAAqC,SAArC,CJ7apG,EI6agK,SJ7ahK,EAA8B,wBI6awI,KJ7axI,CAA9B,C;K;GIyaV,C;2EAMA,yB;IAAA,6B;IAAA,4D;IAAA,+B;IJhbA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IImboD,8B;MAAC,W;IAAA,C;IAJvG,4C;MAIwC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAoC,S;MAAU,OJnbtG,oBImbsG,YAAG,gBAAgB,OAAhB,EAAyB,OAAzB,CAAH,EAAsC,SAAtC,CJnbtG,EImbmK,SJnbnK,EAA8B,wBImb2I,KJnb3I,CAA9B,C;K;GI+aV,C;2EAMA,yB;IAAA,6B;IAAA,4D;IAAA,+B;IJtbA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IIyboD,8B;MAAC,W;IAAA,C;IAJvG,4C;MAIwC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAoC,S;MAAU,OJzbtG,oBIybsG,YAAG,gBAAgB,OAAhB,EAAyB,OAAzB,CAAH,EAAsC,SAAtC,CJzbtG,EIybmK,SJzbnK,EAA8B,wBIyb2I,KJzb3I,CAA9B,C;K;GIqbV,C;+EAMA,yB;IAAA,6B;IAAA,4D;IAAA,mC;IJ5bA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;II+bwD,gC;MAAC,W;IAAA,C;IAJ3G,4C;MAI0C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAsC,W;MAAU,OJ/b1G,oBI+b0G,cAAK,gBAAgB,OAAhB,EAAyB,OAAzB,CAAL,EAAwC,SAAxC,CJ/b1G,EI+byK,SJ/bzK,EAA8B,wBI+biJ,KJ/bjJ,CAA9B,C;K;GI2bV,C;+EAMA,yB;IAAA,6B;IAAA,4D;IAAA,mC;IJlcA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IIqcwD,gC;MAAC,W;IAAA,C;IAJ3G,4C;MAI0C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAsC,W;MAAU,OJrc1G,oBIqc0G,cAAK,gBAAgB,OAAhB,EAAyB,OAAzB,CAAL,EAAwC,SAAxC,CJrc1G,EIqcyK,SJrczK,EAA8B,wBIqciJ,KJrcjJ,CAA9B,C;K;GIicV,C;EAY6L,wC;IAAA,4B;MAAC,4BAAC,eAAD,C;MAAQ,W;IAAA,C;G;EANtM,+C;IAMqC,oB;MAAA,OAAiB,I;IAAM,mB;MAAA,MAAgB,I;IAAM,uB;MAAA,UAAmB,E;IAAU,OJ7crG,oBI6cqG,WAAO,mBAAgB,MAAhB,EAAwB,IAAxB,EAA6B,KAA7B,EAAoC,GAApC,EAAP,EAAiD,SAAjD,CJ7crG,EI6c6K,SJ7c7K,EAA8B,0BI6cqJ,sBJ7crJ,CAA9B,C;G;qFI8cV,yB;IAAA,6B;IAAA,4D;IAAA,uC;IJ/cA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IIkd+E,kC;MAAC,W;IAAA,C;IAJlI,8C;MAI4C,oB;QAAA,OAAiB,I;MAAM,mB;QAAA,MAAgB,I;MAAM,qB;QAAA,QAAwC,a;MAAU,OJldjI,oBIkdiI,gBAAO,iBAAgB,MAAhB,EAAwB,IAAxB,EAA6B,KAA7B,EAAoC,GAApC,EAAP,EAAiD,SAAjD,CJldjI,EIkdyM,SJldzM,EAA8B,wBIkdiL,KJldjL,CAA9B,C;K;GI8cV,C;qFAMA,yB;IAAA,6B;IAAA,4D;IAAA,yC;IJrdA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IIwd8D,mC;MAAC,W;IAAA,C;IAJjH,4C;MAI6C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAyC,c;MAAU,OJxdhH,oBIwdgH,iBAAQ,gBAAgB,OAAhB,EAAyB,OAAzB,CAAR,EAA2C,SAA3C,CJxdhH,EIwdkL,SJxdlL,EAA8B,wBIwd0J,KJxd1J,CAA9B,C;K;GIodV,C;mFAMA,yB;IAAA,6B;IAAA,4D;IAAA,uC;IJ3dA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;II8d4D,kC;MAAC,W;IAAA,C;IAJ/G,4C;MAI4C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAwC,a;MAAU,OJ9d9G,oBI8d8G,gBAAO,gBAAgB,OAAhB,EAAyB,OAAzB,CAAP,EAA0C,SAA1C,CJ9d9G,EI8d+K,SJ9d/K,EAA8B,wBI8duJ,KJ9dvJ,CAA9B,C;K;GI0dV,C;iFAMA,yB;IAAA,6B;IAAA,4D;IAAA,qC;IJjeA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IIoe0D,iC;MAAC,W;IAAA,C;IAJ7G,4C;MAI2C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAuC,Y;MAAU,OJpe5G,oBIoe4G,eAAM,gBAAgB,OAAhB,EAAyB,OAAzB,CAAN,EAAyC,SAAzC,CJpe5G,EIoe4K,SJpe5K,EAA8B,wBIoeoJ,KJpepJ,CAA9B,C;K;GIgeV,C;mFAMA,yB;IAAA,6B;IAAA,4D;IAAA,uC;IJveA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;II0e4D,kC;MAAC,W;IAAA,C;IAJ/G,4C;MAI4C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAwC,a;MAAU,OJ1e9G,oBI0e8G,gBAAO,gBAAgB,OAAhB,EAAyB,OAAzB,CAAP,EAA0C,SAA1C,CJ1e9G,EI0e+K,SJ1e/K,EAA8B,wBI0euJ,KJ1evJ,CAA9B,C;K;GIseV,C;+EAMA,yB;IAAA,6B;IAAA,4D;IAAA,mC;IJ7eA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IIgfwD,gC;MAAC,W;IAAA,C;IAJ3G,4C;MAI0C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAsC,W;MAAU,OJhf1G,oBIgf0G,cAAK,gBAAgB,OAAhB,EAAyB,OAAzB,CAAL,EAAwC,SAAxC,CJhf1G,EIgfyK,SJhfzK,EAA8B,wBIgfiJ,KJhfjJ,CAA9B,C;K;GI4eV,C;mFAMA,yB;IAAA,6B;IAAA,4D;IAAA,uC;IJnfA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IIsf4D,kC;MAAC,W;IAAA,C;IAJ/G,4C;MAI4C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAwC,a;MAAU,OJtf9G,oBIsf8G,gBAAO,gBAAgB,OAAhB,EAAyB,OAAzB,CAAP,EAA0C,SAA1C,CJtf9G,EIsf+K,SJtf/K,EAA8B,wBIsfuJ,KJtfvJ,CAA9B,C;K;GIkfV,C;EAY0J,uC;IAAA,4B;MAAC,4BAAC,eAAD,C;MAAQ,W;IAAA,C;G;EANnK,yC;IAMoC,oB;MAAA,OAAiB,I;IAAM,uB;MAAA,UAAmB,E;IAAU,OJ9f9E,oBI8f8E,UAAM,kBAAgB,MAAhB,EAAwB,IAAxB,CAAN,EAAqC,SAArC,CJ9f9E,EI8f0I,SJ9f1I,EAA8B,0BI8fkH,qBJ9flH,CAA9B,C;G;mFI+fV,yB;IAAA,6B;IAAA,4D;IAAA,qC;IJhgBA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IImgBuD,iC;MAAC,W;IAAA,C;IAJ1G,yC;MAI2C,oB;QAAA,OAAiB,I;MAAM,qB;QAAA,QAAuC,Y;MAAU,OJngBzG,oBImgByG,eAAM,gBAAgB,MAAhB,EAAwB,IAAxB,CAAN,EAAqC,SAArC,CJngBzG,EImgBqK,SJngBrK,EAA8B,wBImgB6I,KJngB7I,CAA9B,C;K;GI+fV,C;6EAMA,yB;IAAA,6B;IAAA,4D;IAAA,iC;IJtgBA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IIygBsD,+B;MAAC,W;IAAA,C;IAJzG,4C;MAIyC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAqC,U;MAAU,OJzgBxG,oBIygBwG,aAAI,gBAAgB,OAAhB,EAAyB,OAAzB,CAAJ,EAAuC,SAAvC,CJzgBxG,EIygBsK,SJzgBtK,EAA8B,wBIygB8I,KJzgB9I,CAA9B,C;K;GIqgBV,C;qFAMA,yB;IAAA,6B;IAAA,4D;IAAA,yC;IJ5gBA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;II+gB8D,mC;MAAC,W;IAAA,C;IAJjH,4C;MAI6C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAyC,c;MAAU,OJ/gBhH,oBI+gBgH,iBAAQ,gBAAgB,OAAhB,EAAyB,OAAzB,CAAR,EAA2C,SAA3C,CJ/gBhH,EI+gBkL,SJ/gBlL,EAA8B,wBI+gB0J,KJ/gB1J,CAA9B,C;K;GI2gBV,C;6EAMA,yB;IAAA,6B;IAAA,4D;IAAA,iC;IJlhBA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IIqhBsD,+B;MAAC,W;IAAA,C;IAJzG,4C;MAIyC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAqC,U;MAAU,OJrhBxG,oBIqhBwG,aAAI,gBAAgB,OAAhB,EAAyB,OAAzB,CAAJ,EAAuC,SAAvC,CJrhBxG,EIqhBsK,SJrhBtK,EAA8B,wBIqhB8I,KJrhB9I,CAA9B,C;K;GIihBV,C;EAO6J,qC;IAAA,4B;MAAC,4BAAC,eAAD,C;MAAQ,W;IAAA,C;G;EADtK,0C;IACkC,uB;MAAA,UAAoB,I;IAAM,uB;MAAA,UAAmB,E;IAAU,OJxhB/E,oBIwhB+E,QAAI,kBAAgB,OAAhB,EAAyB,OAAzB,CAAJ,EAAuC,SAAvC,CJxhB/E,EIwhB6I,SJxhB7I,EAA8B,0BIwhBqH,mBJxhBrH,CAA9B,C;G;+EIyhBV,yB;IAAA,6B;IAAA,4D;IAAA,iC;IJ1hBA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;II0hBsD,+B;MAAC,W;IAAA,C;IADzG,4C;MACyC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAqC,U;MAAU,OJ1hBxG,oBI0hBwG,aAAI,gBAAgB,OAAhB,EAAyB,OAAzB,CAAJ,EAAuC,SAAvC,CJ1hBxG,EI0hBsK,SJ1hBtK,EAA8B,wBI0hB8I,KJ1hB9I,CAA9B,C;K;GIyhBV,C;iFAGA,yB;IAAA,6B;IAAA,4D;IAAA,qC;IJ7hBA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;II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M,qB;QAAA,QAAuC,Y;MAAU,OJzkB5G,oBIykB4G,eAAM,gBAAgB,OAAhB,EAAyB,OAAzB,CAAN,EAAyC,SAAzC,CJzkB5G,EIykB4K,SJzkB5K,EAA8B,wBIykBoJ,KJzkBpJ,CAA9B,C;K;GIqkBV,C;+EAMA,yB;IAAA,6B;IAAA,4D;IAAA,mC;IJ5kBA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;II+kBwD,gC;MAAC,W;IAAA,C;IAJ3G,4C;MAI0C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAsC,W;MAAU,OJ/kB1G,oBI+kB0G,cAAK,gBAAgB,OAAhB,EAAyB,OAAzB,CAAL,EAAwC,SAAxC,CJ/kB1G,EI+kByK,SJ/kBzK,EAA8B,wBI+kBiJ,KJ/kBjJ,CAA9B,C;K;GI2kBV,C;EAU8G,uC;IAAA,4B;MAAC,4BAAC,eAAD,C;MAAQ,W;IAAA,C;G;EAJvH,mC;IAIoC,uB;MAAA,UAAmB,E;IAAU,OJrlBvD,oBIqlBuD,UAAM,UAAN,EAAgB,SAAhB,CJrlBvD,EIqlB8F,SJrlB9F,EAA8B,0BIqlBsE,qBJrlBtE,CAA9B,C;G;mFIslBV,yB;IAAA,6B;IAAA,yB;IAAA,qC;IJvlBA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;II0lBgC,iC;MAAC,W;IAAA,C;IAJnF,mC;MAI2C,qB;QAAA,QAAuC,Y;MAAU,OJ1lBlF,oBI0lBkF,eAAM,aAAN,EAAgB,SAAhB,CJ1lBlF,EI0lByH,SJ1lBzH,EAA8B,wBI0lBiG,KJ1lBjG,CAA9B,C;K;GIslBV,C;2EAMA,yB;IAAA,6B;IAAA,4D;IAAA,+B;IJ7lBA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IIgmBoD,8B;MAAC,W;IAAA,C;IAJvG,4C;MAIwC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAoC,S;MAAU,OJhmBtG,oBIgmBsG,YAAG,gBAAgB,OAAhB,EAAyB,OAAzB,CAAH,EAAsC,SAAtC,CJhmBtG,EIgmBmK,SJhmBnK,EAA8B,wBIgmB2I,KJhmB3I,CAA9B,C;K;GI4lBV,C;2EAMA,yB;IAAA,6B;IAAA,4D;IAAA,+B;IJnmBA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IIsmBoD,8B;MAAC,W;IAAA,C;IAJvG,4C;MAIwC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAoC,S;MAAU,OJtmBtG,oBIsmBsG,YAAG,gBAAgB,OAAhB,EAAyB,OAAzB,CAAH,EAAsC,SAAtC,CJtmBtG,EIsmBmK,SJtmBnK,EAA8B,wBIsmB2I,KJtmB3I,CAA9B,C;K;GIkmBV,C;qFAMA,yB;IAAA,6B;IAAA,4D;IAAA,iC;IJzmBA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;II4mB0D,mC;MAAC,W;IAAA,C;IAJ7G,4C;MAI6C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAqC,c;MAAU,OJ5mB5G,oBI4mB4G,aAAI,gBAAgB,OAAhB,EAAyB,OAAzB,CAAJ,EAAuC,SAAvC,CJ5mB5G,EI4mB0K,SJ5mB1K,EAA8B,wBI4mBkJ,KJ5mBlJ,CAA9B,C;K;GIwmBV,C;iFAMA,yB;IAAA,6B;IAAA,4D;IAAA,qC;IJ/mBA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IIknB0D,iC;MAAC,W;IAAA,C;IAJ7G,4C;MAI2C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAuC,Y;MAAU,OJlnB5G,oBIknB4G,eAAM,gBAAgB,OAAhB,EAAyB,OAAzB,CAAN,EAAyC,SAAzC,CJlnB5G,EIknB4K,SJlnB5K,EAA8B,wBIknBoJ,KJlnBpJ,CAA9B,C;K;GI8mBV,C;EWzrBA,iC;IAAA,e;IAAA,iB;IAAA,uB;G;EAAA,+B;IAAA,kC;K;IAMI,gD;IACC,4C;IACA,4C;IACA,gD;IACA,8C;IACA,gD;IACA,kD;IACA,gD;IACA,kD;IACA,oD;IACA,+C;IACA,qD;IACA,iD;IACA,+C;IACA,iD;IACA,iD;IACA,mD;IACA,+C;IACA,+C;IACA,+C;IACA,iD;IACA,+C;IACA,qD;IACA,iD;IACA,iD;IACA,mD;IACA,mD;IACA,iD;IACA,qD;IACA,mD;IACA,iD;IACA,iD;IACA,mD;IACA,qD;IACA,qD;IACA,qD;IACA,qD;IACA,qD;IACA,qD;IACA,mD;IACA,qD;IACA,iD;IACA,mD;IACA,mD;IACA,qD;IACA,qD;IACA,qD;IACA,mD;IACA,iD;IACA,qD;IACA,qD;IACA,mD;IACA,iD;IACA,+C;IACA,qD;IACA,qD;IACA,qD;IACA,mD;IACA,qD;IACA,iD;IACA,mD;IACA,qD;IACA,qD;IACA,qD;IACA,mD;IACA,iD;IACA,qD;IACA,mD;IACA,mD;IACA,qD;IACA,qD;IACA,mD;IACA,qD;IACA,iD;IACA,mD;IACA,mD;IACA,qD;IACA,qD;IACA,qD;IACA,mD;IACA,iD;IACA,qD;IACA,qD;IACA,mD;IACA,iD;IACA,+C;IACA,qD;IACA,qD;IACA,qD;IACA,mD;IACA,qD;IACA,iD;IACA,qD;IACA,qD;IACA,qD;IACA,qD;IACA,mD;IACA,iD;IACA,qD;IACA,mD;IACA,kD;G;;EApGD,qC;IAAA,qB;IAAA,6B;G;;EACC,mC;IAAA,qB;IAAA,2B;G;;EACA,mC;IAAA,qB;IAAA,2B;G;;EACA,qC;IAAA,qB;IAAA,6B;G;;EACA,oC;IAAA,qB;IAAA,4B;G;;EACA,qC;IAAA,qB;IAAA,6B;G;;EACA,sC;IAAA,qB;IAAA,8B;G;;EACA,qC;IAAA,qB;IAAA,6B;G;;EACA,sC;IAAA,qB;IAAA,8B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,oC;IAAA,qB;IAAA,4B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,qC;IAAA,qB;IAAA,6B;G;;EACA,oC;IAAA,qB;IAAA,4B;G;;EACA,qC;IAAA,qB;IAAA,6B;G;;EACA,qC;IAAA,qB;IAAA,6B;G;;EACA,sC;IAAA,qB;IAAA,8B;G;;EACA,oC;IAAA,qB;IAAA,4B;G;;EACA,oC;IAAA,qB;IAAA,4B;G;;EACA,oC;IAAA,qB;IAAA,4B;G;;EACA,qC;IAAA,qB;IAAA,6B;G;;EACA,oC;IAAA,qB;IAAA,4B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,qC;IAAA,qB;IAAA,6B;G;;EACA,qC;IAAA,qB;IAAA,6B;G;;EACA,sC;IAAA,qB;IAAA,8B;G;;EACA,sC;IAAA,qB;IAAA,8B;G;;EACA,qC;IAAA,qB;IAAA,6B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,sC;IAAA,qB;IAAA,8B;G;;EACA,qC;IAAA,qB;IAAA,6B;G;;EACA,qC;IAAA,qB;IAAA,6B;G;;EACA,sC;IAAA,qB;IAAA,8B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,sC;IAAA,qB;IAAA,8B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,qC;IAAA,qB;IAAA,6B;G;;EACA,sC;IAAA,qB;IAAA,8B;G;;EACA,sC;IAAA,qB;IAAA,8B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,sC;IAAA,qB;IAAA,8B;G;;EACA,qC;IAAA,qB;IAAA,6B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,sC;IAAA,qB;IAAA,8B;G;;EACA,qC;IAAA,qB;IAAA,6B;G;;EACA,oC;IAAA,qB;IAAA,4B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,sC;IAAA,qB;IAAA,8B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,qC;IAAA,qB;IAAA,6B;G;;EACA,sC;IAAA,qB;IAAA,8B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,sC;IAAA,qB;IAAA,8B;G;;EACA,qC;IAAA,qB;IAAA,6B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,sC;IAAA,qB;IAAA,8B;G;;EACA,sC;IAAA,qB;IAAA,8B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,sC;IAAA,qB;IAAA,8B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,qC;IAAA,qB;IAAA,6B;G;;EACA,sC;IAAA,qB;IAAA,8B;G;;EACA,sC;IAAA,qB;IAAA,8B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,sC;IAAA,qB;IAAA,8B;G;;EACA,qC;IAAA,qB;IAAA,6B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,sC;IAAA,qB;IAAA,8B;G;;EACA,qC;IAAA,qB;IAAA,6B;G;;EACA,oC;IAAA,qB;IAAA,4B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,sC;IAAA,qB;IAAA,8B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,qC;IAAA,qB;IAAA,6B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,sC;IAAA,qB;IAAA,8B;G;;EACA,qC;IAAA,qB;IAAA,6B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,sC;IAAA,qB;IAAA,8B;G;;EACA,qC;IAAA,qB;IAAA,6B;G;;;SAGD,Y;MAAS,aAAM,IAAK,WAAX,GAAwB,G;K;;;;;;;EA7GrC,2B;IAAA,s9F;G;;EAAA,gC;IAAA,a;MAAA,Y;QAAA,kC;MAAA,U;QAAA,gC;MAAA,U;QAAA,gC;MAAA,Y;QAAA,kC;MAAA,W;QAAA,iC;MAAA,Y;QAAA,kC;MAAA,a;QAAA,mC;MAAA,Y;QAAA,kC;MAAA,a;QAAA,mC;MAAA,c;QAAA,oC;MAAA,W;QAAA,iC;MAAA,c;QAAA,oC;MAAA,Y;QAAA,kC;MAAA,W;QAAA,iC;MAAA,Y;QAAA,kC;MAAA,Y;QAAA,kC;MAAA,a;QAAA,mC;MAAA,W;QAAA,iC;MAAA,W;QAAA,iC;MAAA,W;QAAA,iC;MAAA,Y;QAAA,kC;MAAA,W;QAAA,iC;MAAA,c;QAAA,oC;MAAA,Y;QAAA,kC;MAAA,Y;QAAA,kC;MAAA,a;QAAA,mC;MAAA,a;QAAA,mC;MAAA,Y;QAAA,kC;MAAA,c;QAAA,oC;MAAA,a;QAAA,mC;MAAA,Y;QAAA,kC;MAAA,Y;QAAA,kC;MAAA,a;QAAA,mC;MAAA,c;QAAA,oC;MAAA,c;QAAA,oC;MAAA,c;QAAA,oC;MAAA,c;QAAA,oC;MAAA,c;QAAA,oC;MAAA,c;QAAA,oC;MAAA,a;QAAA,mC;MAAA,c;QAAA,oC;MAAA,Y;QAAA,kC;MAAA,a;QAAA,mC;MAAA,a;QAAA,mC;MAAA,c;QAAA,oC;MAAA,c;QAAA,oC;MAAA,c;QAAA,oC;MAAA,a;QAAA,mC;MAAA,Y;QAAA,kC;MAAA,c;QAAA,oC;MAAA,c;QAAA,oC;MAAA,a;QAAA,mC;MAAA,Y;QAAA,kC;MAAA,W;QAAA,iC;MAAA,c;QAAA,oC;MAAA,c;QAAA,oC;MAAA,c;QAAA,oC;MAAA,a;QAAA,mC;MAAA,c;QAAA,oC;MAAA,Y;QAAA,kC;MAAA,a;QAAA,mC;MAAA,c;QAAA,oC;MAAA,c;QAAA,oC;MAAA,c;QAAA,oC;MAAA,a;QAAA,mC;MAAA,Y;QAAA,kC;MAAA,c;QAAA,oC;MAAA,a;QAAA,mC;MAAA,a;QAAA,mC;MAAA,c;QAAA,oC;MAAA,c;QAAA,oC;MAAA,a;QAAA,mC;MAAA,c;QAAA,oC;MAAA,Y;QAAA,kC;MAAA,a;QAAA,mC;MAAA,a;QAAA,mC;MAAA,c;QAAA,oC;MAAA,c;QAAA,oC;MAAA,c;QAAA,oC;MAAA,a;QAAA,mC;MAAA,Y;QAAA,kC;MAAA,c;QAAA,oC;MAAA,c;QAAA,oC;MAAA,a;QAAA,mC;MAAA,Y;QAAA,kC;MAAA,W;QAAA,iC;MAAA,c;QAAA,oC;MAAA,c;QAAA,oC;MAAA,c;QAAA,oC;MAAA,a;QAAA,mC;MAAA,c;QAAA,oC;MAAA,Y;QAAA,kC;MAAA,c;QAAA,oC;MAAA,c;QAAA,oC;MAAA,c;QAAA,oC;MAAA,c;QAAA,oC;MAAA,a;QAAA,mC;MAA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ACA,sC;IAAA,sB;IAAA,8B;G;;;;;;EAxBJ,4B;IAAA,6tB;G;;EAAA,iC;IAAA,a;MAAA,c;QAAA,qC;MAAA,gB;QAAA,uC;MAAA,a;QAAA,oC;MAAA,Y;QAAA,mC;MAAA,gB;QAAA,uC;MAAA,qB;QAAA,4C;MAAA,a;QAAA,oC;MAAA,Y;QAAA,mC;MAAA,c;QAAA,qC;MAAA,a;QAAA,oC;MAAA,a;QAAA,oC;MAAA,c;QAAA,qC;MAAA,gB;QAAA,uC;MAAA,a;QAAA,oC;MAAA,a;QAAA,oC;MAAA,a;QAAA,oC;MAAA,c;QAAA,qC;MAAA,c;QAAA,qC;MAAA,Y;QAAA,mC;MAAA,W;QAAA,kC;MAAA,Y;QAAA,mC;MAAA,W;QAAA,kC;MAAA,Y;QAAA,mC;MAAA,QAAA,2D;;G;;;EA6B2B,oD;IAD3B,e;IAC4B,oC;IAD5B,iB;IAAA,uB;G;EAAA,uC;IAAA,0C;K;IAEI,2FAAkB,qBAAlB,C;IACA,mHAA8B,mCAA9B,C;IACA,2EAAU,YAAV,C;G;;SAHwB,Y;MAAA,+B;K;;;EACxB,0D;IAAA,6B;IAAA,kD;G;;EACA,sE;IAAA,6B;IAAA,8D;G;;EACA,kD;IAAA,6B;IAAA,0C;G;;;;;;EAJJ,mC;IAAA,iK;G;;EAAA,wC;IAAA,a;MAAA,yB;QAAA,uD;MAAA,qC;QAAA,mE;MAAA,iB;QAAA,+C;MAAA,QAAA,kE;;G;;;EAS0B,mD;IAD1B,e;IAC2B,oC;IAD3B,iB;IAAA,uB;G;EAAA,sC;IAAA,yC;K;IAEI,6DAAI,KAAJ,C;IACA,+DAAK,MAAL,C;IACA,6DAAqD,KAArD,C;IACA,mEAAwD,QAAxD,C;IACA,iEAAuD,OAAvD,C;G;;SALuB,Y;MAAA,+B;K;;;EACvB,2C;IAAA,4B;IAAA,mC;G;;EACA,4C;IAAA,4B;IAAA,oC;G;;EACA,2C;IAAA,4B;IAAA,mC;G;;EACA,8C;IAAA,4B;IAAA,sC;G;;EACA,6C;IAAA,4B;IAAA,qC;G;;;;;;EANJ,kC;IAAA,4L;G;;EAAA,uC;IAAA,a;MAAA,W;QAAA,wC;MAAA,Y;QAAA,yC;MAAA,W;QAAA,wC;MAAA,c;QAAA,2C;MAAA,a;QAAA,0C;MAA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QAAQ,W;MAAA,C;K;IiB3Ce,mC;MAAC,W;IAAA,C;IAJnG,4C;MAI+B,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAyC,c;MjB2ClC,SiB3C+C,iBAAQ,gBAAgB,OAAhB,EAAyB,OAAzB,CAAR,EAA2C,kBAA3C,CjB2C/C,EAAS,aiB3CiG,KjB2CjG,CAAT,C;K;GiB/ChE,C;6FAMA,yB;IAAA,6B;IAAA,4D;IAAA,+C;IjByCA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IiBrCqB,sC;MAAC,W;IAAA,C;IAJzG,4C;MAIkC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAA4C,iB;MjBqCxC,SiBrCqD,oBAAW,gBAAgB,OAAhB,EAAyB,OAAzB,CAAX,EAA8C,kBAA9C,CjBqCrD,EAAS,aiBrC0G,KjBqC1G,CAAT,C;K;GiBzChE,C;qFAMA,yB;IAAA,6B;IAAA,4D;IAAA,uC;IjBmCA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IiB/Ba,kC;MAAC,W;IAAA,C;IAJjG,4C;MAI8B,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAwC,a;MjB+BhC,SiB/B6C,gBAAO,gBAAgB,OAAhB,EAAyB,OAAzB,CAAP,EAA0C,kBAA1C,CjB+B7C,EAAS,aiB/B8F,KjB+B9F,CAAT,C;K;GiBnChE,C;+EAMA,yB;IAAA,6B;IAAA,4D;IAAA,iC;IjB6BA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IiBzBO,+B;MAAC,W;IAAA,C;IAJ3F,4C;MAI2B,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAqC,U;MjByB1B,SiBzBuC,aAAI,gBAAgB,OAAhB,EAAyB,OAAzB,CAAJ,EAAuC,kBAAvC,CjByBvC,EAAS,aiBzBqF,KjByBrF,CAAT,C;K;GiB7BhE,C;6EAMA,yB;IAAA,6B;IAAA,4D;IAAA,+B;IjBuBA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IiBnBK,8B;MAAC,W;IAAA,C;IAJzF,4C;MAI0B,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAoC,S;MjBmBxB,SiBnBqC,YAAG,gBAAgB,OAAhB,EAAyB,OAAzB,CAAH,EAAsC,kBAAtC,CjBmBrC,EAAS,aiBnBkF,KjBmBlF,CAAT,C;K;GiBvBhE,C;yFAMA,yB;IAAA,6B;IAAA,4D;IAAA,2C;IjBiBA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IiBbiB,oC;MAAC,W;IAAA,C;IAJrG,4C;MAIgC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAA0C,e;MjBapC,SiBbiD,kBAAS,gBAAgB,OAAhB,EAAyB,OAAzB,CAAT,EAA4C,kBAA5C,CjBajD,EAAS,aiBboG,KjBapG,CAAT,C;K;GiBjBhE,C;qFAMA,yB;IAAA,6B;IAAA,4D;IAAA,uC;IjBWA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IiBPa,kC;MAAC,W;IAAA,C;IAJjG,4C;MAI8B,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAwC,a;MjBOhC,SiBP6C,gBAAO,gBAAgB,OAAhB,EAAyB,OAAzB,CAAP,EAA0C,kBAA1C,CjBO7C,EAAS,aiBP8F,KjBO9F,CAAT,C;K;GiBXhE,C;6FAMA,yB;IAAA,6B;IAAA,4D;IAAA,+C;IjBKA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IiBDqB,sC;MAAC,W;IAAA,C;IAJzG,4C;MAIkC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAA4C,iB;MjBCxC,SiBDqD,oBAAW,gBAAgB,OAAhB,EAAyB,OAAzB,CAAX,EAA8C,kBAA9C,CjBCrD,EAAS,aiBD0G,KjBC1G,CAAT,C;K;GiBLhE,C;qFAMA,yB;IAAA,6B;IAAA,4D;IAAA,uC;IjBDA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IiBKa,kC;MAAC,W;IAAA,C;IAJjG,4C;MAI8B,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAwC,a;MjBLhC,SiBK6C,gBAAO,gBAAgB,OAAhB,EAAyB,OAAzB,CAAP,EAA0C,kBAA1C,CjBL7C,EAAS,aiBK8F,KjBL9F,CAAT,C;K;GiBChE,C;iFAMA,yB;IAAA,6B;IAAA,6D;IAAA,4D;IAAA,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IAAA,4D;IAAA,uC;IjB1BA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IiB8Ba,kC;MAAC,W;IAAA,C;IAJjG,4C;MAI8B,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAwC,a;MjB9BhC,SiB8B6C,gBAAO,gBAAgB,OAAhB,EAAyB,OAAzB,CAAP,EAA0C,kBAA1C,CjB9B7C,EAAS,aiB8B8F,KjB9B9F,CAAT,C;K;GiB0BhE,C;6EAMA,yB;IAAA,6B;IAAA,4D;IAAA,+B;IjBhCA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IiBoCK,8B;MAAC,W;IAAA,C;IAJzF,4C;MAI0B,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAoC,S;MjBpCxB,SiBoCqC,YAAG,gBAAgB,OAAhB,EAAyB,OAAzB,CAAH,EAAsC,kBAAtC,CjBpCrC,EAAS,aiBoCkF,KjBpClF,CAAT,C;K;GiBgChE,C;6EAMA,yB;IAAA,6B;IAAA,4D;IAAA,+B;IjBtCA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IiB0CK,8B;MAAC,W;IAAA,C;IAJzF,4C;MAI0B,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAoC,S;MjB1CxB,SiB0CqC,YAAG,gBAAgB,OAAhB,EAAyB,OAAzB,CAAH,EAAsC,kBAAtC,CjB1CrC,EAAS,aiB0CkF,KjB1ClF,CAAT,C;K;GiBsChE,C;2EAMA,yB;IAAA,6B;IAAA,4D;IAAA,6B;IjB5CA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IiBgDG,6B;MAAC,W;IAAA,C;IAJvF,4C;MAIyB,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAmC,Q;MjBhDtB,SiBgDmC,WAAE,gBAAgB,OAAhB,EAAyB,OAAzB,CAAF,EAAqC,kBAArC,CjBhDnC,EAAS,aiBgD+E,KjBhD/E,CAAT,C;K;GiB4ChE,C;+EAMA,yB;IAAA,6B;IAAA,4D;IAAA,iC;IjBlDA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IiBsDO,+B;MAAC,W;IAAA,C;IAJ3F,4C;MAI2B,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAqC,U;MjBtD1B,SiBsDuC,aAAI,gBAAgB,OAAhB,EAAyB,OAAzB,CAAJ,EAAuC,kBAAvC,CjBtDvC,EAAS,aiBsDqF,KjBtDrF,CAAT,C;K;GiBkDhE,C;sFAMA,yB;IAAA,6B;IAAA,4D;IAAA,yC;IjBxDA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IiB4De,mC;MAAC,W;IAAA,C;IAJnG,4C;MAI+B,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAyC,c;MjB5DlC,SiB4D+C,iBAAQ,gBAAgB,OAAhB,EAAyB,OAAzB,CAAR,EAA2C,kBAA3C,CjB5D/C,EAAS,aiB4DiG,KjB5DjG,CAAT,C;K;GiBwDhE,C;mFAMA,yB;IAAA,6B;IAAA,4D;IAAA,qC;IjB9DA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IiBkEW,iC;MAAC,W;IAAA,C;IAJ/F,4C;MAI6B,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAuC,Y;MjBlE9B,SiBkE2C,eAAM,gBAAgB,OAAhB,EAAyB,OAAzB,CAAN,EAAyC,kBAAzC,CjBlE3C,EAAS,aiBkE2F,KjBlE3F,CAAT,C;K;GiB8DhE,C;6EAMA,yB;IAAA,6B;IAAA,4D;IAAA,+B;IjBpEA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IiBwEK,8B;MAAC,W;IAAA,C;IAJzF,4C;MAI0B,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAoC,S;MjBxExB,SiBwEqC,YAAG,gBAAgB,OAAhB,EAAyB,OAAzB,CAAH,EAAsC,kBAAtC,CjBxErC,EAAS,aiBwEkF,KjBxElF,CAAT,C;K;GiBoEhE,C;iFAMA,yB;IAAA,6B;IAAA,4D;IAAA,mC;IjB1EA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IiB8Ea,gC;MAAC,W;IAAA,C;IAJjG,4C;MAIgC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAsC,W;MjB9EhC,SiB8E6C,cAAK,gBAAgB,OAAhB,EAAyB,OAAzB,CAAL,EAAwC,kBAAxC,CjB9E7C,EAAS,aiB8E4F,KjB9E5F,CAAT,C;K;GiB0EhE,C;mFAMA,yB;IAAA,6B;IAAA,yB;IAAA,qC;IjBhFA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IiBoFX,iC;MAAC,W;IAAA,C;IAJzE,mC;MAIiC,qB;QAAA,QAAuC,Y;MjBpFR,SiBoFqB,eAAM,aAAN,EAAgB,kBAAhB,CjBpFrB,EAAS,aiBoF4C,KjBpF5C,CAAT,C;K;GiBgFhE,C;EAS0F,yC;IAAA,4B;MAAC,4BAAC,eAAD,C;MAAQ,W;IAAA,C;G;EAJnG,qC;IAI0B,uB;MAAA,UAAmB,E;IjBzFmB,SiByFN,UAAM,UAAN,EAAgB,kBAAhB,CjBzFM,EAAS,eiByFiB,uBjBzFjB,CAAT,C;G;EAAS,uC;IAAA,4B;MAAE,wB;MAAQ,W;IAAA,C;G;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uFO1CnF,yB;IAAA,6B;IAAA,6D;IAAA,4D;IAAA,yC;IP0CA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IOzC+D,mC;MAAC,W;IAAA,C;IADnJ,kD;MACmD,oB;QAAA,OAAsB,I;MAAM,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAyC,c;MPyClF,SOzC+F,iBAAQ,iBAAgB,MAAhB,EAAwB,sCAAxB,EAA2C,OAA3C,EAAoD,OAApD,EAAR,EAAsE,kBAAtE,CPyC/F,EAAS,aOzC4K,KPyC5K,CAAT,C;K;GO1ChE,C;mGAEA,yB;IAAA,6B;IAAA,4C;IAAA,4D;IAAA,yC;IPwCA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IOvC0C,0C;MAAC,W;IAAA,C;IAD9H,4C;MAC0D,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAyC,qB;MPuC7D,SOvC0E,iBAAQ,iBAAgB,MAAhB,EAA4C,6BAA5C,EAAsD,OAAtD,EAA+D,OAA/D,EAAR,EAAiF,kBAAjF,CPuC1E,EAAS,aOvCkK,KPuClK,CAAT,C;K;GOxChE,C;qGAEA,yB;IAAA,6B;IAAA,4C;IAAA,4D;IAAA,yC;IPsCA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IOrC2C,2C;MAAC,W;IAAA,C;IAD/H,4C;MAC2D,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAyC,sB;MPqC9D,SOrC2E,iBAAQ,iBAAgB,MAAhB,EAA6C,8BAA7C,EAAuD,OAAvD,EAAgE,OAAhE,EAAR,EAAkF,kBAAlF,CPqC3E,EAAS,aOrCoK,KPqCpK,CAAT,C;K;GOtChE,C;+FAEA,yB;IAAA,6B;IAAA,4C;IAAA,4D;IAAA,yC;IPoCA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IOnCwC,wC;MAAC,W;IAAA,C;IAD5H,4C;MACwD,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAyC,mB;MPmC3D,SOnCwE,iBAAQ,iBAAgB,MAAhB,EAA0C,2BAA1C,EAAoD,OAApD,EAA6D,OAA7D,EAAR,EAA+E,kBAA/E,CPmCxE,EAAS,aOnC8J,KPmC9J,CAAT,C;K;GOpChE,C;iFAGA,yB;IAAA,6B;IAAA,4D;IAAA,mC;IPiCA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IO7BuE,gC;MAAC,W;IAAA,C;IAJ3J,oD;MAIgD,oB;QAAA,OAAiB,I;MAAM,mB;QAAA,MAAgB,I;MAAM,oB;QAAA,OAAiB,I;MAAM,qB;QAAA,QAAsC,W;MP6B1F,SO7BuG,cAAK,iBAAgB,MAAhB,EAAwB,IAAxB,EAA6B,KAA7B,EAAoC,GAApC,EAAwC,MAAxC,EAAgD,IAAhD,EAAL,EAA4D,kBAA5D,CP6BvG,EAAS,aO7B0K,KP6B1K,CAAT,C;K;GOjChE,C;iFAMA,yB;IAAA,6B;IAAA,4D;IAAA,mC;IP2BA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IOvB8E,gC;MAAC,W;IAAA,C;IAJlK,2D;MAIgD,oB;QAAA,OAAiB,I;MAAM,uB;QAAA,UAAoB,I;MAAM,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAsC,W;MPuBjG,SOvB8G,cAAK,iBAAgB,MAAhB,EAAwB,IAAxB,EAA6B,SAA7B,EAAwC,OAAxC,EAAgD,SAAhD,EAA2D,OAA3D,EAAL,EAA0E,kBAA1E,CPuB9G,EAAS,aOvB+L,KPuB/L,CAAT,C;K;GO3BhE,C;yFAMA,yB;IAAA,6B;IAAA,4D;IAAA,2C;IPqBA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IOjBqC,oC;MAAC,W;IAAA,C;IAJzH,4C;MAIoD,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAA0C,e;MPiBxD,SOjBqE,kBAAS,gBAAgB,OAAhB,EAAyB,OAAzB,CAAT,EAA4C,kBAA5C,CPiBrE,EAAS,aOjBwH,KPiBxH,CAAT,C;K;GOrBhE,C;qFAMA,yB;IAAA,6B;IAAA,4D;IAAA,uC;IPeA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IOXoD,kC;MAAC,W;IAAA,C;IAJxI,8C;MAIkD,oB;QAAA,OAAiB,I;MAAM,mB;QAAA,MAAgB,I;MAAM,qB;QAAA,QAAwC,a;MPWvE,SOXoF,gBAAO,iBAAgB,MAAhB,EAAwB,IAAxB,EAA6B,KAA7B,EAAoC,GAApC,EAAP,EAAiD,kBAAjD,CPWpF,EAAS,aOX4I,KPW5I,CAAT,C;K;GOfhE,C;EAWyL,0C;IAAA,4B;MAAC,4BAAC,eAAD,C;MAAQ,W;IAAA,C;G;EANlM,iD;IAM2C,oB;MAAA,OAAiB,I;IAAM,mB;MAAA,MAAgB,I;IAAM,uB;MAAA,UAAmB,E;IPI3C,SOJwD,WAAO,mBAAgB,MAAhB,EAAwB,IAAxB,EAA6B,KAA7B,EAAoC,GAApC,EAAP,EAAiD,kBAAjD,CPIxD,EAAS,eOJgH,wBPIhH,CAAT,C;G;6EODhE,yB;IAAA,6B;IAAA,4D;IAAA,+B;IPCA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IOGc,8B;MAAC,W;IAAA,C;IAJlG,4C;MAImC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAoC,S;MPHjC,SOG8C,YAAG,gBAAgB,OAAhB,EAAyB,OAAzB,CAAH,EAAsC,kBAAtC,CPH9C,EAAS,aOG2F,KPH3F,CAAT,C;K;GODhE,C;6EAMA,yB;IAAA,6B;IAAA,4D;IAAA,+B;IPLA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IOSc,8B;MAAC,W;IAAA,C;IAJlG,4C;MAImC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAoC,S;MPTjC,SOS8C,YAAG,gBAAgB,OAAhB,EAAyB,OAAzB,CAAH,EAAsC,kBAAtC,CPT9C,EAAS,aOS2F,KPT3F,CAAT,C;K;GOKhE,C;6EAMA,yB;IAAA,6B;IAAA,4D;IAAA,+B;IPXA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IOec,8B;MAAC,W;IAAA,C;IAJlG,4C;MAImC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAoC,S;MPfjC,SOe8C,YAAG,gBAAgB,OAAhB,EAAyB,OAAzB,CAAH,EAAsC,kBAAtC,CPf9C,EAAS,aOe2F,KPf3F,CAAT,C;K;GOWhE,C;6EAMA,yB;IAAA,6B;IAAA,4D;IAAA,+B;IPjBA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IOqBc,8B;MAAC,W;IAAA,C;IAJlG,4C;MAImC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAoC,S;MPrBjC,SOqB8C,YAAG,gBAAgB,OAAhB,EAAyB,OAAzB,CAAH,EAAsC,kBAAtC,CPrB9C,EAAS,aOqB2F,KPrB3F,CAAT,C;K;GOiBhE,C;6EAMA,yB;IAAA,6B;IAAA,4D;IAAA,+B;IPvBA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IO2Bc,8B;MAAC,W;IAAA,C;IAJlG,4C;MAImC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAoC,S;MP3BjC,SO2B8C,YAAG,gBAAgB,OAAhB,EAAyB,OAAzB,CAAH,EAAsC,kBAAtC,CP3B9C,EAAS,aO2B2F,KP3B3F,CAAT,C;K;GOuBhE,C;6EAMA,yB;IAAA,6B;IAAA,4D;IAAA,+B;IP7BA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IOiCc,8B;MAAC,W;IAAA,C;IAJlG,4C;MAImC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAoC,S;MPjCjC,SOiC8C,YAAG,gBAAgB,OAAhB,EAAyB,OAAzB,CAAH,EAAsC,kBAAtC,CPjC9C,EAAS,aOiC2F,KPjC3F,CAAT,C;K;GO6BhE,C;qFAMA,yB;IAAA,6B;IAAA,4D;IAAA,uC;IPnCA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IOoCsB,kC;MAAC,W;IAAA,C;IAD1G,4C;MACuC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAwC,a;MPpCzC,SOoCsD,gBAAO,gBAAgB,OAAhB,EAAyB,OAAzB,CAAP,EAA0C,kBAA1C,CPpCtD,EAAS,aOoCuG,KPpCvG,CAAT,C;K;GOmChE,C;mFAIA,yB;IAAA,6B;IAAA,4D;IAAA,qC;IPvCA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IO2CkB,iC;MAAC,W;IAAA,C;IAJtG,yC;MAIuC,oB;QAAA,OAAiB,I;MAAM,qB;QAAA,QAAuC,Y;MP3CrC,SO2CkD,eAAM,gBAAgB,MAAhB,EAAwB,IAAxB,CAAN,EAAqC,kBAArC,CP3ClD,EAAS,aO2C8F,KP3C9F,CAAT,C;K;GOuChE,C;EAW4I,yC;IAAA,4B;MAAC,4BAAC,eAAD,C;MAAQ,W;IAAA,C;G;EANrJ,2C;IAMgC,oB;MAAA,OAAiB,I;IAAM,uB;MAAA,UAAmB,E;IPlDV,SOkDuB,UAAM,kBAAgB,MAAhB,EAAwB,IAAxB,CAAN,EAAqC,kBAArC,CPlDvB,EAAS,eOkDmE,uBPlDnE,CAAT,C;G;uFOqDhE,yB;IAAA,6B;IAAA,4D;IAAA,yC;IPrDA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IOyD4B,mC;MAAC,W;IAAA,C;IAJhH,4C;MAI4C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAyC,c;MPzD/C,SOyD4D,iBAAQ,gBAAgB,OAAhB,EAAyB,OAAzB,CAAR,EAA2C,kBAA3C,CPzD5D,EAAS,aOyD8G,KPzD9G,CAAT,C;K;GOqDhE,C;iFAOA,yB;IAAA,6B;IAAA,4D;IAAA,mC;IP5DA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IOgEmB,gC;MAAC,W;IAAA,C;IAJvG,4C;MAIsC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAsC,W;MPhEtC,SOgEmD,cAAK,gBAAgB,OAAhB,EA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AE,wB;QAAQ,W;MAAA,C;K;IOgGiB,+B;MAAC,W;IAAA,C;IAJrG,4C;MAIqC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAqC,U;MPhGpC,SOgGiD,aAAI,gBAAgB,OAAhB,EAAyB,OAAzB,CAAJ,EAAuC,kBAAvC,CPhGjD,EAAS,aOgG+F,KPhG/F,CAAT,C;K;GO4FhE,C;6EAMA,yB;IAAA,6B;IAAA,4D;IAAA,+B;IPlGA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IOsGe,8B;MAAC,W;IAAA,C;IAJnG,4C;MAIoC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAoC,S;MPtGlC,SOsG+C,YAAG,gBAAgB,OAAhB,EAAyB,OAAzB,CAAH,EAAsC,kBAAtC,CPtG/C,EAAS,aOsG4F,KPtG5F,CAAT,C;K;GOkGhE,C;qFAMA,yB;IAAA,6B;IAAA,4D;IAAA,uC;IPxGA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IO4GuB,kC;MAAC,W;IAAA,C;IAJ3G,4C;MAIwC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAwC,a;MP5G1C,SO4GuD,gBAAO,gBAAgB,OAAhB,EAAyB,OAAzB,CAAP,EAA0C,kBAA1C,CP5GvD,EAAS,aO4GwG,KP5GxG,CAAT,C;K;GOwGhE,C;EASqJ,0C;IAAA,4B;MAAC,4BAAC,eAAD,C;MAAQ,W;IAAA,C;G;EAJ9J,+C;IAIiC,uB;MAAA,UAAoB,I;IAAM,uB;MAAA,UAAmB,E;IPjHd,SOiH2B,WAAO,kBAAgB,OAAhB,EAAyB,OAAzB,CAAP,EAA0C,kBAA1C,CPjH3B,EAAS,eOiH4E,wBPjH5E,CAAT,C;G;gFOmHhE,yB;IAAA,6B;IAAA,4D;IAAA,mC;IPnHA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IOuHmB,gC;MAAC,W;IAAA,C;IAJvG,4C;MAIsC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAsC,W;MPvHtC,SOuHmD,cAAK,gBAAgB,OAAhB,EAAyB,OAAzB,CAAL,EAAwC,kBAAxC,CPvHnD,EAAS,aOuHkG,KPvHlG,CAAT,C;K;GOmHhE,C;iFAMA,yB;IAAA,6B;IAAA,4D;IAAA,mC;IPzHA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IO6HmB,gC;MAAC,W;IAAA,C;IAJvG,4C;MAIsC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAsC,W;MP7HtC,SO6HmD,cAAK,gBAAgB,OAAhB,EAAyB,OAAzB,CAAL,EAAwC,kBAAxC,CP7HnD,EAAS,aO6HkG,KP7HlG,CAAT,C;K;GOyHhE,C;yFAMA,yB;IAAA,6B;IAAA,4D;IAAA,2C;IP/HA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IOmI2B,oC;MAAC,W;IAAA,C;IAJ/G,4C;MAI0C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAA0C,e;MPnI9C,SOmI2D,kBAAS,gBAAgB,OAAhB,EAAyB,OAAzB,CAAT,EAA4C,kBAA5C,CPnI3D,EAAS,aOmI8G,KPnI9G,CAAT,C;K;GO+HhE,C;+EAMA,yB;IAAA,6B;IAAA,4D;IAAA,iC;IPrIA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IOyIiB,+B;MAAC,W;IAAA,C;IAJrG,4C;MAIqC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAqC,U;MPzIpC,SOyIiD,aAAI,gBAAgB,OAAhB,EAAyB,OAAzB,CAAJ,EAAuC,kBAAvC,CPzIjD,EAAS,aOyI+F,KPzI/F,CAAT,C;K;GOqIhE,C;+EAMA,yB;IAAA,6B;IAAA,4D;IAAA,iC;IP3IA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IO+IiB,+B;MAAC,W;IAAA,C;IAJrG,4C;MAIqC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAqC,U;MP/IpC,SO+IiD,aAAI,gBAAgB,OAAhB,EAAyB,OAAzB,CAAJ,EAAuC,kBAAvC,CP/IjD,EAAS,aO+I+F,KP/I/F,CAAT,C;K;GO2IhE,C;6EAMA,yB;IAAA,6B;IAAA,4D;IAAA,+B;IPjJA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IOqJe,8B;MAAC,W;IAAA,C;IAJnG,4C;MAIoC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAoC,S;MPrJlC,SOqJ+C,YAAG,gBAAgB,OAAhB,EAAyB,OAAzB,CAAH,EAAsC,kBAAtC,CPrJ/C,EAAS,aOqJ4F,KPrJ5F,CAAT,C;K;GOiJhE,C;2EAMA,yB;IAAA,6B;IAAA,4D;IAAA,6B;IPvJA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IO2Ja,6B;MAAC,W;IAAA,C;IAJjG,4C;MAImC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAmC,Q;MP3JhC,SO2J6C,WAAE,gBAAgB,OAAhB,EAAyB,OAAzB,CAAF,EAAqC,kBAArC,CP3J7C,EAAS,aO2JyF,KP3JzF,CAAT,C;K;GOuJhE,C;+EAMA,yB;IAAA,6B;IAAA,4D;IAAA,iC;IP7JA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IOiKiB,+B;MAAC,W;IAAA,C;IAJrG,4C;MAIqC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAqC,U;MPjKpC,SOiKiD,aAAI,gBAAgB,OAAhB,EAAyB,OAAzB,CAAJ,EAAuC,kBAAvC,CPjKjD,EAAS,aOiK+F,KPjK/F,CAAT,C;K;GO6JhE,C;+EAMA,yB;IAAA,6B;IAAA,4D;IAAA,iC;IPnKA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IOuKiB,+B;MAAC,W;IAAA,C;IAJrG,4C;MAIqC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAqC,U;MPvKpC,SOuKiD,aAAI,gBAAgB,OAAhB,EAAyB,OAAzB,CAAJ,EAAuC,kBAAvC,CPvKjD,EAAS,aOuK+F,KPvK/F,CAAT,C;K;GOmKhE,C;+EAMA,yB;IAAA,6B;IAAA,4D;IAAA,iC;IPzKA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IO6KwC,+B;MAAC,W;IAAA,C;IAJ5H,kD;MAIqC,oB;QAAA,OAAiB,I;MAAM,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAqC,U;MP7K3D,SO6KwE,aAAI,iBAAgB,MAAhB,EAAwB,IAAxB,EAA6B,OAA7B,EAAsC,OAAtC,EAAJ,EAAoD,kBAApD,CP7KxE,EAAS,aO6KmI,KP7KnI,CAAT,C;K;GOyKhE,C;iFAMA,yB;IAAA,6B;IAAA,4D;IAAA,mC;IP/KA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IOmLmB,gC;MAAC,W;IAAA,C;IAJvG,4C;MAIsC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAsC,W;MPnLtC,SOmLmD,cAAK,gBAAgB,OAAhB,EAAyB,OAAzB,CAAL,EAAwC,kBAAxC,CPnLnD,EAAS,aOmLkG,KPnLlG,CAAT,C;K;GO+KhE,C;iFAMA,yB;IAAA,6B;IAAA,4D;IAAA,mC;IPrLA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IOsLmB,gC;MAAC,W;IAAA,C;IADvG,4C;MACsC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAsC,W;MPtLtC,SOsLmD,cAAK,gBAAgB,OAAhB,EAAyB,OAAzB,CAAL,EAAwC,kBAAxC,CPtLnD,EAAS,aOsLkG,KPtLlG,CAAT,C;K;GOqLhE,C;mFAGA,yB;IAAA,6B;IAAA,4D;IAAA,qC;IPxLA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IO4LqB,iC;MAAC,W;IAAA,C;IAJzG,4C;MAIuC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAuC,Y;MP5LxC,SO4LqD,eAAM,gBAAgB,OAAhB,EAAyB,OAAzB,CAAN,EAAyC,kBAAzC,CP5LrD,EAAS,aO4LqG,KP5LrG,CAAT,C;K;GOwLhE,C;qFAMA,yB;IAAA,6B;IAAA,4D;IAAA,uC;IP9LA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IOkMuB,kC;MAAC,W;IAAA,C;IAJ3G,4C;MAIwC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAwC,a;MPlM1C,SOkMuD,gBAAO,gBAAgB,OAAhB,EAAyB,OAAzB,CAAP,EAA0C,kBAA1C,CPlMvD,EAAS,aOkMwG,KPlMxG,CAAT,C;K;GO8LhE,C;yFAMA,yB;IAAA,6B;IAAA,4D;IAAA,2C;IPpMA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IOwM2B,oC;MAAC,W;IAAA,C;IAJ/G,4C;MAI0C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAA0C,e;MPxM9C,SOwM2D,kBAAS,gBAAgB,OAAhB,EAAyB,OAAzB,CAAT,EAA4C,kBAA5C,CPxM3D,EAAS,aOwM8G,KPxM9G,CAAT,C;K;GOoMhE,C;2EAMA,yB;IAAA,6B;IAAA,4D;IAAA,6B;IP1MA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IO8Ma,6B;MAAC,W;IAAA,C;IAJjG,4C;MAImC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAmC,Q;MP9MhC,SO8M6C,WAAE,gBAAgB,OAAhB,EAAyB,OAAzB,CAAF,EAAqC,kBAArC,CP9M7C,EAAS,aO8MyF,KP9MzF,CAAT,C;K;GO0MhE,C;iFAMA,yB;IAAA,6B;IAAA,4D;IAAA,mC;IPhNA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IOoNmB,gC;MAAC,W;IAAA,C;IAJvG,4C;MAIsC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAsC,W;MPpNtC,SOoNmD,cAAK,gBAAgB,OAAhB,EAAyB,OAAzB,CAAL,EAAwC,kBAAxC,CPpNnD,EAAS,aOoNkG,KPpNlG,CAAT,C;K;GOgNhE,C;iFAMA,yB;IAAA,6B;IAAA,4D;IAAA,mC;IPtNA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IO0NmB,gC;MAAC,W;IAAA,C;IAJvG,4C;MAIsC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAsC,W;MP1NtC,SO0NmD,cAAK,gBAAgB,OAAhB,EAAyB,OAAzB,CAAL,EAAwC,kBAAxC,CP1NnD,EAAS,aO0NkG,KP1NlG,CAAT,C;K;GOsNhE,C;mFAMA,yB;IAAA,6B;IAAA,4D;IAAA,qC;IP5NA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IOgOqB,iC;MAAC,W;IAAA,C;IAJzG,4C;MAIuC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAuC,Y;MPhOxC,SOgOqD,eAAM,gBAAgB,OAAhB,EAAyB,OAAzB,CAAN,EAAyC,kBAAzC,CPhOrD,EAAS,aOgOqG,KPhOrG,CAAT,C;K;GO4NhE,C;iFAMA,yB;IAAA,6B;IAAA,4D;IAAA,mC;IPlOA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IOsOmB,gC;MAAC,W;IAAA,C;IAJvG,4C;MAIsC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAsC,W;MPtOtC,SOsOmD,cAAK,gBAAgB,OAAhB,EAAyB,OAAzB,CAAL,EAAwC,kBAAxC,CPtOnD,EAAS,aOsOkG,KPtOlG,CAAT,C;K;GOkOhE,C;qFAMA,yB;IAAA,6B;IAAA,4D;IAAA,uC;IPxOA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IO4OuB,kC;MAAC,W;IAAA,C;IAJ3G,4C;MAIwC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAwC,a;MP5O1C,SO4OuD,gBAAO,gBAAgB,OAAhB,EAAyB,OAAzB,CAAP,EAA0C,kBAA1C,CP5OvD,EAAS,aO4OwG,KP5OxG,CAAT,C;K;GOwOhE,C;+EAMA,yB;IAAA,6B;IAAA,4D;IAAA,iC;IP9OA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IOkPiB,+B;MAAC,W;IAAA,C;IAJrG,4C;MAIqC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAqC,U;MPlPpC,SOkPiD,aAAI,gBAAgB,OAAhB,EAAyB,OAAzB,CAAJ,EAAuC,kBAAvC,CPlPjD,EAAS,aOkP+F,KPlP/F,CAAT,C;K;GO8OhE,C;+EAMA,yB;IAAA,6B;IAAA,4D;IAAA,iC;IPpPA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IOwPiB,+B;MAAC,W;IAAA,C;IAJrG,4C;MAIqC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAqC,U;MPxPpC,SOwPiD,aAAI,gBAAgB,OAAhB,EAAyB,OAAzB,CAAJ,EAAuC,kBAAvC,CPxPjD,EAAS,aOwP+F,KPxP/F,CAAT,C;K;GOoPhE,C;+EAMA,yB;IAAA,6B;IAAA,4D;IAAA,iC;IP1PA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IO2PiB,+B;MAAC,W;IAAA,C;IADrG,4C;MACqC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAqC,U;MP3PpC,SO2PiD,aAAI,gBAAgB,OAAhB,EAAyB,OAAzB,CAAJ,EAAuC,kBAAvC,CP3PjD,EAAS,aO2P+F,KP3P/F,CAAT,C;K;GO0PhE,C;EAG+I,uC;IAAA,4B;MAAC,4BAAC,eAAD,C;MAAQ,W;IAAA,C;G;EADxJ,4C;IAC8B,uB;MAAA,UAAoB,I;IAAM,uB;MAAA,UAAmB,E;IP7PX,SO6PwB,QAAI,kBAAgB,OAAhB,EAAyB,OAAzB,CAAJ,EAAuC,kBAAvC,CP7PxB,EAAS,eO6PsE,qBP7PtE,CAAT,C;G;iFO+PhE,yB;IAAA,6B;IAAA,4D;IAAA,mC;IP/PA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IOmQmB,gC;MAAC,W;IAAA,C;IAJvG,4C;MAIsC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAsC,W;MPnQtC,SOmQmD,cAAK,gBAAgB,OAAhB,EAAyB,OAAzB,CAAL,EAAwC,kBAAxC,CPnQnD,EAAS,aOmQkG,KPnQlG,CAAT,C;K;GO+PhE,C;uFAMA,yB;IAAA,6B;IAAA,4D;IAAA,iC;IPrQA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IOyQqB,mC;MAAC,W;IAAA,C;IAJzG,4C;MAIyC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAqC,c;MPzQxC,SOyQqD,aAAI,gBAAgB,OAAhB,EAAyB,OAAzB,CAAJ,EAAuC,kBAAvC,CPzQrD,EAAS,aOyQmG,KPzQnG,CAAT,C;K;GOqQhE,C;uFAOA,yB;IAAA,6B;IAAA,4D;IAAA,yC;IP5QA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IOgR2B,mC;MAAC,W;IAAA,C;IAJ/G,4C;MAI2C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAyC,c;MPhR9C,SOgR2D,iBAAQ,gBAAgB,OAAhB,EAAyB,OAAzB,CAAR,EAA2C,kBAA3C,CPhR3D,EAAS,aOgR6G,KPhR7G,CAAT,C;K;GO4QhE,C;mFAMA,yB;IAAA,6B;IAAA,4D;IAAA,qC;IPlRA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IOsRuB,iC;MAAC,W;IAAA,C;IAJ3G,4C;MAIyC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAuC,Y;MPtR1C,SOsRuD,eAAM,gBAAgB,OAAhB,EAAyB,OAAzB,CAAN,EAAyC,kBAAzC,CPtRvD,EAAS,aOsRuG,KPtRvG,CAAT,C;K;GOkRhE,C;iFAMA,yB;IAAA,6B;IAAA,4D;IAAA,mC;IPxRA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IO4RqB,gC;MAAC,W;IAAA,C;IAJzG,4C;MAIwC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAsC,W;MP5RxC,SO4RqD,cAAK,gBAAgB,OAAhB,EAAyB,OAAzB,CAAL,EAAwC,kBAAxC,CP5RrD,EAAS,aO4RoG,KP5RpG,CAAT,C;K;GOwRhE,C;+EAMA,yB;IAAA,6B;IAAA,4D;IAAA,iC;IP9RA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IOkSmB,+B;MAAC,W;IAAA,C;IAJvG,4C;MAIuC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAqC,U;MPlStC,SOkSmD,aAAI,gBAAgB,OAAhB,EAAyB,OAAzB,CAAJ,EAAuC,kBAAvC,CPlSnD,EAAS,aOkSiG,KPlSjG,CAAT,C;K;GO8RhE,C;uFAMA,yB;IAAA,6B;IAAA,4D;IAAA,yC;IPpSA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IOwS2B,mC;MAAC,W;IAAA,C;IAJ/G,4C;MAI2C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAyC,c;MPxS9C,SOwS2D,iBAAQ,gBAAgB,OAAhB,EAAyB,OAAzB,CAAR,EAA2C,kBAA3C,CPxS3D,EAAS,aOwS6G,KPxS7G,CAAT,C;K;GOoShE,C;2EAOA,yB;IAAA,6B;IAAA,4D;IAAA,6B;IP3SA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IO+S0E,6B;MAAC,W;IAAA,C;IAJ9J,0D;MAIgD,oB;QAAA,OAAiB,I;MAAM,sB;QAAA,SAAmB,I;MAAM,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAmC,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IPvaA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IO2aqE,kC;MAAC,W;IAAA,C;IAJzJ,qD;MAIqD,uB;QAAA,UAA2B,I;MAAM,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAwC,a;MP3axF,SO2aqG,gBAAO,iBAAgB,SAAhB,EAA2B,4CAA3B,EAAiD,OAAjD,EAA0D,OAA1D,EAAP,EAA2E,kBAA3E,CP3arG,EAAS,aO2auL,KP3avL,CAAT,C;K;GOuahE,C;yFAKA,yB;IAAA,6B;IAAA,gD;IAAA,4D;IAAA,uC;IP5aA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IO6auC,qC;MAAC,W;IAAA,C;IAD3H,4C;MACwD,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAwC,gB;MP7a1D,SO6auE,gBAAO,iBAAgB,SAAhB,EAA6C,2BAA7C,EAAuD,OAAvD,EAAgE,OAAhE,EAAP,EAAiF,kBAAjF,CP7avE,EAAS,aO6a+J,KP7a/J,CAAT,C;K;GO4ahE,C;mFAGA,yB;IAAA,6B;IAAA,4D;IAAA,qC;IP/aA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IOmbkC,iC;MAAC,W;IAAA,C;IAJtH,4C;MAIoD,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAuC,Y;MPnbrD,SOmbkE,eAAM,gBAAgB,OAAhB,EAAyB,OAAzB,CAAN,EAAyC,kBAAzC,CPnblE,EAAS,aOmbkH,KPnblH,CAAT,C;K;GO+ahE,C;6FAMA,yB;IAAA,6B;IAAA,4D;IAAA,uC;IPrbA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IOybwC,sC;MAAC,W;IAAA,C;IAJ5H,4C;MAIyD,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAwC,iB;MPzb3D,SOybwE,gBAAO,gBAAgB,OAAhB,EAAyB,OAAzB,CAAP,EAA0C,kBAA1C,CPzbxE,EAAS,aOybyH,KPzbzH,CAAT,C;K;GOqbhE,C;qFAMA,yB;IAAA,6B;IAAA,4D;IAAA,uC;IP3bA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IO+boC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AAJ,EAAU,SAAV,C;K;SAC/B,oB;MAAe,qBAAsB,aAAI,IAAJ,EAAU,SAAV,EAAqB,QAArB,C;IAA8B,C;;;;;;;uFAI3E,yB;IAAA,6B;IAAA,4D;IAAA,yC;IjCyDA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IiCrDS,mC;MAAC,W;IAAA,C;IAJ7F,4C;MAIyB,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAyC,c;MjCqD5B,SiCrDyC,iBAAQ,gBAAgB,OAAhB,EAAyB,OAAzB,CAAR,EAA2C,kBAA3C,CjCqDzC,EAAS,aiCrD2F,KjCqD3F,CAAT,C;K;GiCzDhE,C;yFAMA,yB;IAAA,6B;IAAA,4D;IAAA,2C;IjCmDA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IiC/CW,oC;MAAC,W;IAAA,C;IAJ/F,4C;MAI0B,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAA0C,e;MjC+C9B,SiC/C2C,kBAAS,gBAAgB,OAAhB,EAAyB,OAAzB,CAAT,EAA4C,kBAA5C,CjC+C3C,EAAS,aiC/C8F,KjC+C9F,CAAT,C;K;GiCnDhE,C;mFAMA,yB;IAAA,6B;IAAA,4D;IAAA,qC;IjC6CA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IiCzCK,iC;MAAC,W;IAAA,C;IAJzF,4C;MAIuB,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAuC,Y;MjCyCxB,SiCzCqC,eAAM,gBAAgB,OAAhB,EAAyB,OAAzB,CAAN,EAAyC,kBAAzC,CjCyCrC,EAAS,aiCzCqF,KjCyCrF,CAAT,C;K;GiC7ChE,C;mFAMA,yB;IAAA,6B;IAAA,4D;IAAA,qC;IjCuCA,8C;IAAyE,qC;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;IiCnCK,iC;MAAC,W;IAAA,C;IAJzF,4C;MAIuB,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAuC,Y;MjCmCxB,SiCnCqC,eAAM,gBAAgB,OAAhB,EAAyB,OAAzB,CAAN,EAAyC,kBAAzC,CjCmCrC,EAAS,aiCnCqF,KjCmCrF,CAAT,C;K;GiCvChE,C;mFAMA,yB;IAAA,6B;IAAA,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5D,2B;IACI,UAAU,OAAG,UAAH,EAAe,kBAAf,C;IACV,kBAAS,oBAAW,GAAX,C;IACT,kBAAS,kBAAS,GAAT,C;EACb,C;wFCTJ,yB;IAAA,6B;IC+WA,4D;IAAA,uC;IAAA,2C;IAAA,8B;I3CtSA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I0CzE2D,kC;MAAC,W;IAAA,C;IAD9G,4C;MAC2C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAwC,a;MCkXiC,Q;MDlXP,OCkXO,cAAgD,O3CzSpL,oB2CySoI,gBAAO,gBAAgB,OAAhB,EDlXP,OCkXO,CAAP,Y3CzSpI,aAA8B,wB0CzE+G,K1CyE/G,CAA9B,C2CySoI,0C;K;GDnX9I,C;0FAGA,yB;IAAA,6B;ICgbA,4D;IAAA,uC;I3C1WA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I0CtE4D,mC;MAAC,W;IAAA,C;IAD/G,4C;MAC4C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAwC,c;MACtG,O1CqEE,oB2C6WkI,gBAAO,gBAAgB,OAAhB,EDlbhI,OCkbgI,CAAP,Y3C7WlI,aAA8B,wB0CrEZ,K1CqEY,CAA9B,C;K;G0CvEV,C;oFAIA,yB;IAAA,6B;IC4qBA,4D;IAAA,iC;I3C1mBA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I0ClEsD,gC;MAAC,W;IAAA,C;IADzG,4C;MACyC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAqC,W;MAChG,O1CiEE,oB2C6mB4H,aAAI,gBAAgB,OAAhB,ED9qB1H,OC8qB0H,CAAJ,Y3C7mB5H,aAA8B,wB0CjEf,K1CiEe,CAA9B,C;K;G0CnEV,C;EELA,6C;IAEI,UAAY,IAAZ,IAAoB,Q;EACxB,C;EAEuC,gC;IAAC,wB;IACpC,cCsFgD,gB;IDrFhD,oBAAwC,I;G;8CAExC,e;IAGgB,IAAS,IAAT,EAFe,M;IACvB,IAAA,GAAI,UAAJ,S;MAAgF,SAAvD,aAAuD,iBAA9B,cAAA,GAAI,UAAJ,CAA8B,EAAb,GAAI,QAAS,C;;MACxE,uBAAS,OAAT,aAAS,eAAc,GAAI,QAA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I;MAA/C,qBAA+C,O3C2BhL,oB2C3BiI,eAAM,gBAAgB,OAAhB,EAAyB,OAAzB,CAAN,EAAyC,SAAzC,C3C2BjI,E2C3BiM,S3C2BjM,EAA8B,wB2C3ByK,K3C2BzK,CAA9B,C2C3BiI,yC;K;GAJ3I,C;8EAMA,yB;IAAA,6B;IAAA,4D;IAAA,6B;I3CwBA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2CrBwD,6B;MAAC,W;IAAA,C;IAJ3G,4C;MAI6C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAmC,Q;MAAoB,O3CqBpH,oB2CrBoH,WAAE,gBAAgB,OAAhB,EAAyB,OAAzB,CAAF,EAAqC,SAArC,C3CqBpH,E2CrBgL,S3CqBhL,EAA8B,wB2CrBwJ,K3CqBxJ,CAA9B,C;K;G2CzBV,C;oFAMA,yB;IAAA,6B;IAAA,4D;IAAA,mC;IAAA,uC;IAAA,8B;I3CkBA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2Cf8D,gC;MAAC,W;IAAA,C;IAJjH,4C;MAIgD,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAsC,W;MAAwB,IAA8C,I;MAA9C,qBAA8C,O3Ce5K,oB2Cf8H,cAAK,gBAAgB,OAAhB,EAAyB,OAAzB,CAAL,EAAwC,SAAxC,C3Ce9H,E2Cf6L,S3Ce7L,EAA8B,wB2CfqK,K3CerK,CAA9B,C2Cf8H,wC;K;GAJxI,C;kFAMA,yB;IAAA,6B;IAAA,4D;IAAA,iC;I3CYA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2CT4D,+B;MAAC,W;IAAA,C;IAJ/G,4C;MAI+C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAqC,U;MAAoB,O3CSxH,oB2CTwH,aAAI,gBAAgB,OAAhB,EAAyB,OAAzB,CAAJ,EAAuC,SAAvC,C3CSxH,E2CTsL,S3CStL,EAA8B,wB2CT8J,K3CS9J,CAA9B,C;K;G2CbV,C;kFAMA,yB;IAAA,6B;IAAA,4D;IAAA,iC;I3CMA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2CH4D,+B;MAAC,W;IAAA,C;IAJ/G,4C;MAI+C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAqC,U;MAAoB,O3CGxH,oB2CHwH,aAAI,gBAAgB,OAAhB,EAAyB,OAAzB,CAAJ,EAAuC,SAAvC,C3CGxH,E2CHsL,S3CGtL,EAA8B,wB2CH8J,K3CG9J,CAA9B,C;K;G2CPV,C;gGAMA,yB;IAAA,6B;IAAA,4D;IAAA,+C;I3CAA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2CG0E,sC;MAAC,W;IAAA,C;IAJ7H,4C;MAIsD,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAA4C,iB;MAAoB,O3CHtI,oB2CGsI,oBAAW,gBAAgB,OAAhB,EAAyB,OAAzB,CAAX,EAA8C,SAA9C,C3CHtI,E2CG2M,S3CH3M,EAA8B,wB2CGmL,K3CHnL,CAA9B,C;K;G2CDV,C;oFAMA,yB;IAAA,6B;IAAA,4D;IAAA,mC;IAAA,uC;IAAA,8B;I3CNA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2CS8D,gC;MAAC,W;IAAA,C;IAJjH,4C;MAIgD,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAsC,W;MAAwB,IAA8C,I;MAA9C,qBAA8C,O3CT5K,oB2CS8H,cAAK,gBAAgB,OAAhB,EAAyB,OAAzB,CAAL,EAAwC,SAAxC,C3CT9H,E2CS6L,S3CT7L,EAA8B,wB2CSqK,K3CTrK,CAA9B,C2CS8H,wC;K;GAJxI,C;gFAMA,yB;IAAA,6B;IAAA,4D;IAAA,+B;IAAA,mC;IAAA,8B;I3CZA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2Ce0D,8B;MAAC,W;IAAA,C;IAJ7G,4C;MAI8C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAoC,S;MAAsB,IAA4C,I;MAA5C,qBAA4C,O3CfpK,oB2CewH,YAAG,gBAAgB,OAAhB,EAAyB,OAAzB,CAAH,EAAsC,SAAtC,C3CfxH,E2CeqL,S3CfrL,EAA8B,wB2Ce6J,K3Cf7J,CAA9B,C2CewH,sC;K;GAJlI,C;wFAMA,yB;IAAA,6B;IAAA,6D;IAAA,4D;IAAA,uC;IAAA,2C;IAAA,8B;I3ClBA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2CqBoM,kC;MAAC,W;IAAA,C;IAJvP,iF;MAIkD,2B;QAAA,cAAmC,I;MAAM,0B;QAAA,aAAiC,I;MAAM,oB;QAAA,OAAiB,I;MAAM,oB;QAAA,OAAqB,I;MAAM,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAwC,a;MAA0B,IAAwK,I;MAAxK,qBAAwK,O3CrB9a,oB2CqBsQ,gBAAO,iBAAgB,aAAhB,EAA+B,oDAA/B,EAAyD,YAAzD,EAAuE,kDAAvE,EAAgG,MAAhG,EAAwG,IAAxG,EAA6G,MAA7G,EAAqH,sCAArH,EAAwI,OAAxI,EAAiJ,OAAjJ,EAAP,EAAkK,SAAlK,C3CrBtQ,E2CqB+b,S3CrB/b,EAA8B,wB2CqBua,K3CrBva,CAA9B,C2CqBsQ,0C;K;GAJhR,C;EAUyL,0C;IAAA,4B;MAAC,4BAAC,eAAD,C;MAAQ,W;IAAA,C;G;EAJlM,+C;IAI2C,uB;MAAA,UAAoB,I;IAAM,uB;MAAA,UAAmB,E;IAA0B,IAAgD,I;IAAhD,qBAAgD,O3C3BxJ,oB2C2BwG,WAAO,kBAAgB,OAAhB,EAAyB,OAAzB,CAAP,EAA0C,SAA1C,C3C3BxG,E2C2ByK,S3C3BzK,EAA8B,0B2C2BiJ,wB3C3BjJ,CAA9B,C2C2BwG,wC;G;wFAClH,yB;IAAA,6B;IAAA,4D;IAAA,uC;IAAA,2C;IAAA,8B;I3C7BA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2CgCkE,kC;MAAC,W;IAAA,C;IAJrH,4C;MAIkD,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAwC,a;MAA0B,IAAgD,I;MAAhD,qBAAgD,O3ChCpL,oB2CgCoI,gBAAO,gBAAgB,OAAhB,EAAyB,OAAzB,CAAP,EAA0C,SAA1C,C3ChCpI,E2CgCqM,S3ChCrM,EAA8B,wB2CgC6K,K3ChC7K,CAA9B,C2CgCoI,0C;K;GAJ9I,C;0FAMA,yB;IAAA,6B;IAAA,4D;IAAA,yC;I3CnCA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2CsCoE,mC;MAAC,W;IAAA,C;IAJvH,4C;MAImD,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAyC,c;MAAoB,O3CtChI,oB2CsCgI,iBAAQ,gBAAgB,OAAhB,EAAyB,OAAzB,CAAR,EAA2C,SAA3C,C3CtChI,E2CsCkM,S3CtClM,EAA8B,wB2CsC0K,K3CtC1K,CAA9B,C;K;G2CkCV,C;oFAMA,yB;IAAA,6B;IAAA,4D;IAAA,mC;I3CzCA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2C4C8D,gC;MAAC,W;IAAA,C;IAJjH,4C;MAIgD,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAsC,W;MAAoB,O3C5C1H,oB2C4C0H,cAAK,gBAAgB,OAAhB,EAAyB,OAAzB,CAAL,EAAwC,SAAxC,C3C5C1H,E2C4CyL,S3C5CzL,EAA8B,wB2C4CiK,K3C5CjK,CAA9B,C;K;G2CwCV,C;oFAMA,yB;IAAA,6B;IAAA,4D;IAAA,mC;I3C/CA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2CkD8D,gC;MAAC,W;IAAA,C;IAJjH,4C;MAIgD,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAsC,W;MAAoB,O3ClD1H,oB2CkD0H,cAAK,gBAAgB,OAAhB,EAAyB,OAAzB,CAAL,EAAwC,SAAxC,C3ClD1H,E2CkDyL,S3ClDzL,EAA8B,wB2CkDiK,K3ClDjK,CAA9B,C;K;G2C8CV,C;iFAMA,yB;IAAA,6B;IAAA,4D;IAAA,iC;IAAA,+C;IAAA,8B;I3CrDA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2CwD4D,+B;MAAC,W;IAAA,C;IAJ/G,4C;MAI+C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAqC,U;MAA4B,IAA6C,I;MAA7C,qBAA6C,O3CxD7K,oB2CwDgI,aAAI,gBAAgB,OAAhB,EAAyB,OAAzB,CAAJ,EAAuC,SAAvC,C3CxDhI,E2CwD8L,S3CxD9L,EAA8B,wB2CwDsK,K3CxDtK,CAA9B,C2CwDgI,4C;K;GAJ1I,C;4FAMA,yB;IAAA,6B;IAAA,4D;IAAA,2C;IAAA,+C;IAAA,8B;I3C3DA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2C8DsE,oC;MAAC,W;IAAA,C;IAJzH,4C;MAIoD,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAA0C,e;MAA4B,IAAkD,I;MAAlD,qBAAkD,O3C9D5L,oB2C8D0I,kBAAS,gBAAgB,OAAhB,EAAyB,OAAzB,CAAT,EAA4C,SAA5C,C3C9D1I,E2C8D6M,S3C9D7M,EAA8B,wB2C8DqL,K3C9DrL,CAA9B,C2C8D0I,4C;K;GAJpJ,C;0FAMA,yB;IAAA,6B;IAAA,6D;IAAA,4D;IAAA,yC;I3CjEA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2CiEgG,mC;MAAC,W;IAAA,C;IADnJ,kD;MACmD,oB;QAAA,OAAsB,I;MAAM,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAyC,c;MAAoB,O3CjE5J,oB2CiE4J,iBAAQ,iBAAgB,MAAhB,EAAwB,sCAAxB,EAA2C,OAA3C,EAAoD,OAApD,EAAR,EAAsE,SAAtE,C3CjE5J,E2CiEyP,S3CjEzP,EAA8B,wB2CiEiO,K3CjEjO,CAA9B,C;K;G2CgEV,C;4FAGA,yB;IAAA,6B;IAAA,4D;IAAA,2C;IAAA,+C;IAAA,8B;I3CpEA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2CuEsE,oC;MAAC,W;IAAA,C;IAJzH,4C;MAIoD,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAA0C,e;MAA4B,IAAkD,I;MAAlD,qBAAkD,O3CvE5L,oB2CuE0I,kBAAS,gBAAgB,OAAhB,EAAyB,OAAzB,CAAT,EAA4C,SAA5C,C3CvE1I,E2CuE6M,S3CvE7M,EAA8B,wB2CuEqL,K3CvErL,CAA9B,C2CuE0I,4C;K;GAJpJ,C;gFAMA,yB;IAAA,6B;IAAA,4D;IAAA,+B;I3C1EA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2C6E0D,8B;MAAC,W;IAAA,C;IAJ7G,4C;MAI8C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAoC,S;MAAoB,O3C7EtH,oB2C6EsH,YAAG,gBAAgB,OAAhB,EAAyB,OAAzB,CAAH,EAAsC,SAAtC,C3C7EtH,E2C6EmL,S3C7EnL,EAA8B,wB2C6E2J,K3C7E3J,CAA9B,C;K;G2CyEV,C;kFAMA,yB;IAAA,6B;IAAA,4D;IAAA,iC;I3ChFA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2CmF4D,+B;MAAC,W;IAAA,C;IAJ/G,4C;MAI+C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAqC,U;MAAoB,O3CnFxH,oB2CmFwH,aAAI,gBAAgB,OAAhB,EAAyB,OAAzB,CAAJ,EAAuC,SAAvC,C3CnFxH,E2CmFsL,S3CnFtL,EAA8B,wB2CmF8J,K3CnF9J,CAA9B,C;K;G2C+EV,C;0FAMA,yB;IAAA,6B;IAAA,4D;IAAA,yC;IAAA,6C;IAAA,8B;I3CtFA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2CyFoE,mC;MAAC,W;IAAA,C;IAJvH,4C;MAImD,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAyC,c;MAA2B,IAAiD,I;MAAjD,qBAAiD,O3CzFxL,oB2CyFuI,iBAAQ,gBAAgB,OAAhB,EAAyB,OAAzB,CAAR,EAA2C,SAA3C,C3CzFvI,E2CyFyM,S3CzFzM,EAA8B,wB2CyFiL,K3CzFjL,CAA9B,C2CyFuI,2C;K;GAJjJ,C;kFAMA,yB;IAAA,6B;IAAA,4D;IAAA,iC;I3C5FA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2C+F4D,+B;MAAC,W;IAAA,C;IAJ/G,4C;MAI+C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAqC,U;MAAoB,O3C/FxH,oB2C+FwH,aAAI,gBAAgB,OAAhB,EAAyB,OAAzB,CAAJ,EAAuC,SAAvC,C3C/FxH,E2C+FsL,S3C/FtL,EAA8B,wB2C+F8J,K3C/F9J,CAA9B,C;K;G2C2FV,C;wFAMA,yB;IAAA,6B;IAAA,4D;IAAA,uC;IAAA,2C;IAAA,8B;I3ClGA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2CqGkE,kC;MAAC,W;IAAA,C;IAJrH,4C;MAIkD,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAwC,a;MAA0B,IAAgD,I;MAAhD,qBAAgD,O3CrGpL,oB2CqGoI,gBAAO,gBAAgB,OAAhB,EAAyB,OAAzB,CAAP,EAA0C,SAA1C,C3CrGpI,E2CqGqM,S3CrGrM,EAA8B,wB2CqG6K,K3CrG7K,CAA9B,C2CqGoI,0C;K;GAJ9I,C;kFAMA,yB;IAAA,6B;IAAA,4D;IAAA,iC;IAAA,qC;IAAA,8B;I3CxGA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2C2G4D,+B;MAAC,W;IAAA,C;IAJ/G,4C;MAI+C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAqC,U;MAAuB,IAA6C,I;MAA7C,qBAA6C,O3C3GxK,oB2C2G2H,aAAI,gBAAgB,OAAhB,EAAyB,OAAzB,CAAJ,EAAuC,SAAvC,C3C3G3H,E2C2GyL,S3C3GzL,EAA8B,wB2C2GiK,K3C3GjK,CAA9B,C2C2G2H,uC;K;GAJrI,C;gFAMA,yB;IAAA,6B;IAAA,4D;IAAA,+B;I3C9GA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2CiH0D,8B;MAAC,W;IAAA,C;IAJ7G,4C;MAI8C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAoC,S;MAAoB,O3CjHtH,oB2CiHsH,YAAG,gBAAgB,OAAhB,EAAyB,OAAzB,CAAH,EAAsC,SAAtC,C3CjHtH,E2CiHmL,S3CjHnL,EAA8B,wB2CiH2J,K3CjH3J,CAA9B,C;K;G2C6GV,C;gFAMA,yB;IAAA,6B;IAAA,4D;IAAA,+B;I3CpHA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2CuH0D,8B;MAAC,W;IAAA,C;IAJ7G,4C;MAI8C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAoC,S;MAAoB,O3CvHtH,oB2CuHsH,YAAG,gBAAgB,OAAhB,EAAyB,OAAzB,CAAH,EAAsC,SAAtC,C3CvHtH,E2CuHmL,S3CvHnL,EAA8B,wB2CuH2J,K3CvH3J,CAA9B,C;K;G2CmHV,C;gFAMA,yB;IAAA,6B;IAAA,4D;IAAA,+B;I3C1HA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2C6H0D,8B;MAAC,W;IAAA,C;IAJ7G,4C;MAI8C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAoC,S;MAAoB,O3C7HtH,oB2C6HsH,YAAG,gBAAgB,OAAhB,EAAyB,OAAzB,CAAH,EAAsC,SAAtC,C3C7HtH,E2C6HmL,S3C7HnL,EAA8B,wB2C6H2J,K3C7H3J,CAA9B,C;K;G2CyHV,C;sFAMA,yB;IAAA,6B;IAAA,4D;IAAA,qC;IAAA,yC;IAAA,8B;I3ChIA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2CmIgE,iC;MAAC,W;IAAA,C;IAJnH,4C;MAIiD,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAuC,Y;MAAyB,IAA+C,I;MAA/C,qBAA+C,O3CnIhL,oB2CmIiI,eAAM,gBAAgB,OAAhB,EAAyB,OAAzB,CAAN,EAAyC,SAAzC,C3CnIjI,E2CmIiM,S3CnIjM,EAA8B,wB2CmIyK,K3CnIzK,CAA9B,C2CmIiI,yC;K;GAJ3I,C;4FAMA,yB;IAAA,6B;IAAA,4D;IAAA,2C;IAAA,+C;IAAA,8B;I3CtIA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2CyIsE,oC;MAAC,W;IAAA,C;IAJzH,4C;MAIoD,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAA0C,e;MAA4B,IAAkD,I;MAAlD,qBAAkD,O3CzI5L,oB2CyI0I,kBAAS,gBAAgB,OAAhB,EAAyB,OAAzB,CAAT,EAA4C,SAA5C,C3CzI1I,E2CyI6M,S3CzI7M,EAA8B,wB2CyIqL,K3CzIrL,CAA9B,C2CyI0I,4C;K;GAJpJ,C;gGAMA,yB;IAAA,6B;IAAA,4D;IAAA,+C;I3C5IA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2C+I0E,sC;MAAC,W;IAAA,C;IAJ7H,4C;MAIsD,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAA4C,iB;MAAoB,O3C/ItI,oB2C+IsI,oBAAW,gBAAgB,OAAhB,EAAyB,OAAzB,CAAX,EAA8C,SAA9C,C3C/ItI,E2C+I2M,S3C/I3M,EAA8B,wB2C+ImL,K3C/InL,CAA9B,C;K;G2C2IV,C;wFAMA,yB;IAAA,6B;IAAA,4D;IAAA,uC;I3ClJA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2CqJkE,kC;MAAC,W;IAAA,C;IAJrH,4C;MAIkD,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAwC,a;MAAoB,O3CrJ9H,oB2CqJ8H,gBAAO,gBAAgB,OAAhB,EAAyB,OAAzB,CAAP,EAA0C,SAA1C,C3CrJ9H,E2CqJ+L,S3CrJ/L,EAA8B,wB2CqJuK,K3CrJvK,CAA9B,C;K;G2CiJV,C;wFAMA,yB;IAAA,6B;IAAA,4D;IAAA,uC;I3CxJA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2C2JkE,kC;MAAC,W;IAAA,C;IAJrH,4C;MAIkD,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAwC,a;MAAoB,O3C3J9H,oB2C2J8H,gBAAO,gBAAgB,OAAhB,EAAyB,OAAzB,CAAP,EAA0C,SAA1C,C3C3J9H,E2C2J+L,S3C3J/L,EAA8B,wB2C2JuK,K3C3JvK,CAA9B,C;K;G2CuJV,C;oFAMA,yB;IAAA,6B;IAAA,6D;IAAA,4D;IAAA,mC;IAAA,uC;IAAA,8B;I3C9JA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2CiKmJ,gC;MAAC,W;IAAA,C;IAJtM,qE;MAIgD,sB;QAAA,SAAmB,I;MAAM,uB;QAAA,UAAyB,I;MAAM,sB;QAAA,SAAuB,I;MAAM,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAsC,W;MAAwB,IAA+H,I;MAA/H,qBAA+H,O3CjKlV,oB2CiKmN,cAAK,iBAAgB,QAAhB,EAA0B,MAA1B,EAAiC,SAAjC,EAA4C,4CAA5C,EAAkE,QAAlE,EAA4E,0CAA5E,EAAiG,OAAjG,EAA0G,OAA1G,EAAL,EAAyH,SAAzH,C3CjKnN,E2CiKmW,S3CjKnW,EAA8B,wB2CiK2U,K3CjK3U,CAA9B,C2CiKmN,wC;K;GAJ7N,C;gFAMA,yB;IAAA,6B;IAAA,4D;IAAA,+B;IAAA,6C;IAAA,8B;I3CpKA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2CuK0D,8B;MAAC,W;IAAA,C;IAJ7G,4C;MAI8C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAoC,S;MAA2B,IAA4C,I;MAA5C,qBAA4C,O3CvKzK,oB2CuK6H,YAAG,gBAAgB,OAAhB,EAAyB,OAAzB,CAAH,EAAsC,SAAtC,C3CvK7H,E2CuK0L,S3CvK1L,EAA8B,wB2CuKkK,K3CvKlK,CAA9B,C2CuK6H,2C;K;GAJvI,C;gFAMA,yB;IAAA,6B;IAAA,4D;IAAA,+B;IAAA,6C;IAAA,8B;I3C1KA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2C6K0D,8B;MAAC,W;IAAA,C;IAJ7G,4C;MAI8C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAoC,S;MAA2B,IAA4C,I;MAA5C,qBAA4C,O3C7KzK,oB2C6K6H,YAAG,gBAAgB,OAAhB,EAAyB,OAAzB,CAAH,EAAsC,SAAtC,C3C7K7H,E2C6K0L,S3C7K1L,EAA8B,wB2C6KkK,K3C7KlK,CAA9B,C2C6K6H,2C;K;GAJvI,C;gFAMA,yB;IAAA,6B;IAAA,4D;IAAA,+B;IAAA,6C;IAAA,8B;I3ChLA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2CmL0D,8B;MAAC,W;IAAA,C;IAJ7G,4C;MAI8C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAoC,S;MAA2B,IAA4C,I;MAA5C,qBAA4C,O3CnLzK,oB2CmL6H,YAAG,gBAAgB,OAAhB,EAAyB,OAAzB,CAAH,EAAsC,SAAtC,C3CnL7H,E2CmL0L,S3CnL1L,EAA8B,wB2CmLkK,K3CnLlK,CAA9B,C2CmL6H,2C;K;GAJvI,C;gFAMA,yB;IAAA,6B;IAAA,4D;IAAA,+B;IAAA,6C;IAAA,8B;I3CtLA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2CyL0D,8B;MAAC,W;IAAA,C;IAJ7G,4C;MAI8C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAoC,S;MAA2B,IAA4C,I;MAA5C,qBAA4C,O3CzLzK,oB2CyL6H,YAAG,gBAAgB,OAAhB,EAAyB,OAAzB,CAAH,EAAsC,SAAtC,C3CzL7H,E2CyL0L,S3CzL1L,EAA8B,wB2CyLkK,K3CzLlK,CAA9B,C2CyL6H,2C;K;GAJvI,C;gFAMA,yB;IAAA,6B;IAAA,4D;IAAA,+B;IAAA,6C;IAAA,8B;I3C5LA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2C+L0D,8B;MAAC,W;IAAA,C;IAJ7G,4C;MAI8C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAoC,S;MAA2B,IAA4C,I;MAA5C,qBAA4C,O3C/LzK,oB2C+L6H,YAAG,gBAAgB,OAAhB,EAAyB,OAAzB,CAAH,EAAsC,SAAtC,C3C/L7H,E2C+L0L,S3C/L1L,EAA8B,wB2C+LkK,K3C/LlK,CAA9B,C2C+L6H,2C;K;GAJvI,C;gFAMA,yB;IAAA,6B;IAAA,4D;IAAA,+B;IAAA,6C;IAAA,8B;I3ClMA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2CqM0D,8B;MAAC,W;IAAA,C;IAJ7G,4C;MAI8C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAoC,S;MAA2B,IAA4C,I;MAA5C,qBAA4C,O3CrMzK,oB2CqM6H,YAAG,gBAAgB,OAAhB,EAAyB,OAAzB,CAAH,EAAsC,SAAtC,C3CrM7H,E2CqM0L,S3CrM1L,EAA8B,wB2CqMkK,K3CrMlK,CAA9B,C2CqM6H,2C;K;GAJvI,C;EAYgI,wC;IAAA,4B;MAAC,4BAAC,eAAD,C;MAAQ,W;IAAA,C;G;EANzI,oC;IAMyC,uB;MAAA,UAAmB,E;IAAwB,IAAqB,I;IAArB,qBAAqB,O3C7M/F,oB2C6M0E,SAAK,UAAL,EAAe,SAAf,C3C7M1E,E2C6MgH,S3C7MhH,EAA8B,0B2C6MwF,sB3C7MxF,CAA9B,C2C6M0E,sC;G;oFACpF,yB;IAAA,6B;IAAA,yB;IAAA,mC;IAAA,uC;IAAA,8B;I3C/MA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2CkNoC,gC;MAAC,W;IAAA,C;IAJvF,mC;MAIgD,qB;QAAA,QAAsC,W;MAAwB,IAAqB,I;MAArB,qBAAqB,O3ClNzH,oB2CkNoG,cAAK,aAAL,EAAe,SAAf,C3ClNpG,E2CkN0I,S3ClN1I,EAA8B,wB2CkNkH,K3ClNlH,CAA9B,C2CkNoG,wC;K;GAJ9G,C;wFAMA,yB;IAAA,6B;IAAA,4D;IAAA,uC;I3CrNA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2CwNkE,kC;MAAC,W;IAAA,C;IAJrH,4C;MAIkD,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAwC,a;MAAoB,O3CxN9H,oB2CwN8H,gBAAO,gBAAgB,OAAhB,EAAyB,OAAzB,CAAP,EAA0C,SAA1C,C3CxN9H,E2CwN+L,S3CxN/L,EAA8B,wB2CwNuK,K3CxNvK,CAA9B,C;K;G2CoNV,C;wFAMA,yB;IAAA,6B;IAAA,4D;IAAA,uC;I3C3NA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2C2NkE,kC;MAAC,W;IAAA,C;IADrH,4C;MACkD,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAwC,a;MAAoB,O3C3N9H,oB2C2N8H,gBAAO,gBAAgB,OAAhB,EAAyB,OAAzB,CAAP,EAA0C,SAA1C,C3C3N9H,E2C2N+L,S3C3N/L,EAA8B,wB2C2NuK,K3C3NvK,CAA9B,C;K;G2C0NV,C;gFAGA,yB;IAAA,6B;IAAA,4D;IAAA,+B;IAAA,mC;IAAA,8B;I3C9NA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2CiO0D,8B;MAAC,W;IAAA,C;IAJ7G,4C;MAI8C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAoC,S;MAAsB,IAA4C,I;MAA5C,qBAA4C,O3CjOpK,oB2CiOwH,YAAG,gBAAgB,OAAhB,EAAyB,OAAzB,CAAH,EAAsC,SAAtC,C3CjOxH,E2CiOqL,S3CjOrL,EAA8B,wB2CiO6J,K3CjO7J,CAA9B,C2CiOwH,sC;K;GAJlI,C;EAYuK,wC;IAAA,4B;MAAC,4BAAC,eAAD,C;MAAQ,W;IAAA,C;G;EANhL,+C;IAMyC,uB;MAAA,UAAmB,E;IAAI,yB;MAAA,YAAsB,I;IAA0B,IAAgC,I;IAAhC,qBAAgC,O3CzOtI,oB2CyOsG,SAAK,UAAL,EAAe,SAAf,EAAqB,SAArB,C3CzOtG,E2CyOuJ,S3CzOvJ,EAA8B,0B2CyO+H,sB3CzO/H,CAA9B,C2CyOsG,sC;G;oFAChH,yB;IAAA,6B;IAAA,yB;IAAA,mC;IAAA,uC;IAAA,8B;I3C3OA,o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H,E2CiRsL,S3CjRtL,EAA8B,wB2CiR8J,K3CjR9J,CAA9B,C;K;G2C6QV,C;kFAMA,yB;IAAA,6B;IAAA,4D;IAAA,iC;I3CpRA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2CuR4D,+B;MAAC,W;IAAA,C;IAJ/G,4C;MAI+C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAqC,U;MAAoB,O3CvRxH,oB2CuRwH,aAAI,gBAAgB,OAAhB,EAAyB,OAAzB,CAAJ,EAAuC,SAAvC,C3CvRxH,E2CuRsL,S3CvRtL,EAA8B,wB2CuR8J,K3CvR9J,CAA9B,C;K;G2CmRV,C;wFAMA,yB;IAAA,6B;IAAA,6D;IAAA,4D;IAAA,uC;I3C1RA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2C6RmG,kC;MAAC,W;IAAA,C;IAJtJ,qD;MAIkD,uB;QAAA,UAA2B,I;MAAM,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAwC,a;MAAoB,O3C7R/J,oB2C6R+J,gBAAO,iBAAgB,SAAhB,EAA2B,4CAA3B,EAAiD,OAAjD,EAA0D,OAA1D,EAAP,EAA2E,SAA3E,C3C7R/J,E2C6RiQ,S3C7RjQ,EAA8B,wB2C6RyO,K3C7RzO,CAA9B,C;K;G2CyRV,C;sFAMA,yB;IAAA,6B;IAAA,4D;IAAA,qC;IAAA,yC;IAAA,8B;I3ChSA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2CmSgE,iC;MAAC,W;IAAA,C;IAJnH,4C;MAIiD,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAuC,Y;MAAyB,IAA+C,I;MAA/C,qBAA+C,O3CnShL,oB2CmSiI,eAAM,gBAAgB,OAAhB,EAAyB,OAAzB,CAAN,EAAyC,SAAzC,C3CnSjI,E2CmSiM,S3CnSjM,EAA8B,wB2CmSyK,K3CnSzK,CAA9B,C2CmSiI,yC;K;GAJ3I,C;wFAMA,yB;IAAA,6B;IAAA,4D;IAAA,uC;IAAA,2C;IAAA,8B;I3CtSA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2CySkE,kC;MAAC,W;IAAA,C;IAJrH,4C;MAIkD,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAwC,a;MAA0B,IAAgD,I;MAAhD,qBAAgD,O3CzSpL,oB2CySoI,gBAAO,gBAAgB,OAAhB,EAAyB,OAAzB,CAAP,EAA0C,SAA1C,C3CzSpI,E2CySqM,S3CzSrM,EAA8B,wB2CyS6K,K3CzS7K,CAA9B,C2CySoI,0C;K;GAJ9I,C;gFAMA,yB;IAAA,6B;IAAA,4D;IAAA,+B;IAAA,mC;IAAA,8B;I3C5SA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2C+S0D,8B;MAAC,W;IAAA,C;IAJ7G,4C;MAI8C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAoC,S;MAAsB,IAA4C,I;MAA5C,qBAA4C,O3C/SpK,oB2C+SwH,YAAG,gBAAgB,OAAhB,EAAyB,OAAzB,CAAH,EAAsC,SAAtC,C3C/SxH,E2C+SqL,S3C/SrL,EAA8B,wB2C+S6J,K3C/S7J,CAA9B,C2C+SwH,sC;K;GAJlI,C;oFAMA,yB;IAAA,6B;IAAA,4D;IAAA,mC;IAAA,uC;IAAA,8B;I3ClTA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2CqTwG,gC;MAAC,W;IAAA,C;IAJ3J,oD;MAIgD,oB;QAAA,OAAiB,I;MAAM,mB;QAAA,MAAgB,I;MAAM,oB;QAAA,OAAiB,I;MAAM,qB;QAAA,QAAsC,W;MAAwB,IAAkE,I;MAAlE,qBAAkE,O3CrT1O,oB2CqTwK,cAAK,iBAAgB,MAAhB,EAAwB,IAAxB,EAA6B,KAA7B,EAAoC,GAApC,EAAwC,MAAxC,EAAgD,IAAhD,EAAL,EAA4D,SAA5D,C3CrTxK,E2CqT2P,S3CrT3P,EAA8B,wB2CqTmO,K3CrTnO,CAA9B,C2CqTwK,wC;K;GAJlL,C;oFAMA,yB;IAAA,6B;IAAA,4D;IAAA,mC;I3CxTA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2C2T8D,gC;MAAC,W;IAAA,C;IAJjH,4C;MAIgD,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAsC,W;MAAoB,O3C3T1H,oB2C2T0H,cAAK,gBAAgB,OAAhB,EAAyB,OAAzB,CAAL,EAAwC,SAAxC,C3C3T1H,E2C2TyL,S3C3TzL,EAA8B,wB2C2TiK,K3C3TjK,CAA9B,C;K;G2CuTV,C;kFAMA,yB;IAAA,6B;IAAA,4D;IAAA,iC;IAAA,qC;IAAA,8B;I3C9TA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2CiUmF,+B;MAAC,W;IAAA,C;IAJtI,kD;MAI+C,oB;QAAA,OAAiB,I;MAAM,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAqC,U;MAAuB,IAA0D,I;MAA1D,qBAA0D,O3CjU5M,oB2CiUkJ,aAAI,iBAAgB,MAAhB,EAAwB,IAAxB,EAA6B,OAA7B,EAAsC,OAAtC,EAAJ,EAAoD,SAApD,C3CjUlJ,E2CiU6N,S3CjU7N,EAA8B,wB2CiUqM,K3CjUrM,CAA9B,C2CiUkJ,uC;K;GAJ5J,C;oFAMA,yB;IAAA,6B;IAAA,4D;IAAA,mC;I3CpUA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2CuU8D,gC;MAAC,W;IAAA,C;IAJjH,4C;MAIgD,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAsC,W;MAAoB,O3CvU1H,oB2CuU0H,cAAK,gBAAgB,OAAhB,EAAyB,OAAzB,CAAL,EAAwC,SAAxC,C3CvU1H,E2CuUyL,S3CvUzL,EAA8B,wB2CuUiK,K3CvUjK,CAA9B,C;K;G2CmUV,C;oFAMA,yB;IAAA,6B;IAAA,4D;IAAA,mC;I3C1UA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2C0U8D,gC;MAAC,W;IAAA,C;IADjH,4C;MACgD,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAsC,W;MAAoB,O3C1U1H,oB2C0U0H,cAAK,gBAAgB,OAAhB,EAAyB,OAAzB,CAAL,EAAwC,SAAxC,C3C1U1H,E2C0UyL,S3C1UzL,EAA8B,wB2C0UiK,K3C1UjK,CAA9B,C;K;G2CyUV,C;EAImL,0C;IAAA,4B;MAAC,4BAAC,eAAD,C;MAAQ,W;IAAA,C;G;EAD5L,+C;IAC2C,uB;MAAA,UAAoB,I;IAAM,uB;MAAA,UAAmB,E;IAAoB,O3C7UlG,oB2C6UkG,WAAO,kBAAgB,OAAhB,EAAyB,OAAzB,CAAP,EAA0C,SAA1C,C3C7UlG,E2C6UmK,S3C7UnK,EAA8B,0B2C6U2I,wB3C7U3I,CAA9B,C;G;wF2C8UV,yB;IAAA,6B;IAAA,4D;IAAA,uC;I3C/UA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2C+UkE,kC;MAAC,W;IAAA,C;IADrH,4C;MACkD,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAwC,a;MAAoB,O3C/U9H,oB2C+U8H,gBAAO,gBAAgB,OAAhB,EAAyB,OAAzB,CAAP,EAA0C,SAA1C,C3C/U9H,E2C+U+L,S3C/U/L,EAA8B,wB2C+UuK,K3C/UvK,CAA9B,C;K;G2C8UV,C;oFAGA,yB;IAAA,6B;IAAA,4D;IAAA,mC;IAAA,uC;IAAA,8B;I3ClVA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2CqV+G,gC;MAAC,W;IAAA,C;IAJlK,2D;MAIgD,oB;QAAA,OAAiB,I;MAAM,uB;QAAA,UAAoB,I;MAAM,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAsC,W;MAAwB,IAAgF,I;MAAhF,qBAAgF,O3CrV/P,oB2CqV+K,cAAK,iBAAgB,MAAhB,EAAwB,IAAxB,EAA6B,SAA7B,EAAwC,OAAxC,EAAgD,SAAhD,EAA2D,OAA3D,EAAL,EAA0E,SAA1E,C3CrV/K,E2CqVgR,S3CrVhR,EAA8B,wB2CqVwP,K3CrVxP,CAA9B,C2CqV+K,wC;K;GAJzL,C;sFAMA,yB;IAAA,6B;IAAA,4D;IAAA,qC;IAAA,yC;IAAA,8B;I3CxVA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2C2VgE,iC;MAAC,W;IAAA,C;IAJnH,4C;MAIiD,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAuC,Y;MAAyB,IAA+C,I;MAA/C,qBAA+C,O3C3VhL,oB2C2ViI,eAAM,gBAAgB,OAAhB,EAAyB,OAAzB,CAAN,EAAyC,SAAzC,C3C3VjI,E2C2ViM,S3C3VjM,EAA8B,wB2C2VyK,K3C3VzK,CAA9B,C2C2ViI,yC;K;GAJ3I,C;kFAMA,yB;IAAA,6B;IAAA,4D;IAAA,iC;I3C9VA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2CiW4D,+B;MAAC,W;IAAA,C;IAJ/G,4C;MAI+C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAqC,U;MAAoB,O3CjWxH,oB2CiWwH,aAAI,gBAAgB,OAAhB,EAAyB,OAAzB,CAAJ,EAAuC,SAAvC,C3CjWxH,E2CiWsL,S3CjWtL,EAA8B,wB2CiW8J,K3CjW9J,CAA9B,C;K;G2C6VV,C;4FAMA,yB;IAAA,6B;IAAA,4D;IAAA,2C;I3CpWA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2CuWsE,oC;MAAC,W;IAAA,C;IAJzH,4C;MAIoD,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAA0C,e;MAAoB,O3CvWlI,oB2CuWkI,kBAAS,gBAAgB,OAAhB,EAAyB,OAAzB,CAAT,EAA4C,SAA5C,C3CvWlI,E2CuWqM,S3CvWrM,EAA8B,wB2CuW6K,K3CvW7K,CAA9B,C;K;G2CmWV,C;gGAMA,yB;IAAA,6B;IAAA,4D;IAAA,uC;I3C1WA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2C6WsE,sC;MAAC,W;IAAA,C;IAJzH,4C;MAIsD,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAwC,iB;MAAoB,O3C7WlI,oB2C6WkI,gBAAO,gBAAgB,OAAhB,EAAyB,OAAzB,CAAP,EAA0C,SAA1C,C3C7WlI,E2C6WmM,S3C7WnM,EAA8B,wB2C6W2K,K3C7W3K,CAA9B,C;K;G2CyWV,C;gFAMA,yB;IAAA,6B;IAAA,4D;IAAA,+B;I3ChXA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2CmX0D,8B;MAAC,W;IAAA,C;IAJ7G,4C;MAI8C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAoC,S;MAAoB,O3CnXtH,oB2CmXsH,YAAG,gBAAgB,OAAhB,EAAyB,OAAzB,CAAH,EAAsC,SAAtC,C3CnXtH,E2CmXmL,S3CnXnL,EAA8B,wB2CmX2J,K3CnX3J,CAA9B,C;K;G2C+WV,C;4FAMA,yB;IAAA,6B;IAAA,4D;IAAA,2C;IAAA,+C;IAAA,8B;I3CtXA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2CyX8F,oC;MAAC,W;IAAA,C;IAJjJ,mD;MAIoD,qB;QAAA,QAAkB,I;MAAM,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAA0C,e;MAA4B,IAAiE,I;MAAjE,qBAAiE,O3CzXnO,oB2CyXkK,kBAAS,iBAAgB,OAAhB,EAAyB,KAAzB,EAA+B,OAA/B,EAAwC,OAAxC,EAAT,EAA2D,SAA3D,C3CzXlK,E2CyXoP,S3CzXpP,EAA8B,wB2CyX4N,K3CzX5N,CAA9B,C2CyXkK,4C;K;GAJ5K,C;EAUyL,0C;IAAA,4B;MAAC,4BAAC,eAAD,C;MAAQ,W;IAAA,C;G;EAJlM,+C;IAI2C,uB;MAAA,UAAoB,I;IAAM,uB;MAAA,UAAmB,E;IAA0B,IAAgD,I;IAAhD,qBAAgD,O3C/XxJ,oB2C+XwG,WAAO,kBAAgB,OAAhB,EAAyB,OAAzB,CAAP,EAA0C,SAA1C,C3C/XxG,E2C+XyK,S3C/XzK,EAA8B,0B2C+XiJ,wB3C/XjJ,CAA9B,C2C+XwG,wC;G;wFAClH,yB;IAAA,6B;IAAA,4D;IAAA,uC;IAAA,2C;IAAA,8B;I3CjYA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2CoYkE,kC;MAAC,W;IAAA,C;IAJrH,4C;MAIkD,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAwC,a;MAA0B,IAAgD,I;MAAhD,qBAAgD,O3CpYpL,oB2CoYoI,gBAAO,gBAAgB,OAAhB,EAAyB,OAAzB,CAAP,EAA0C,SAA1C,C3CpYpI,E2CoYqM,S3CpYrM,EAA8B,wB2CoY6K,K3CpY7K,CAA9B,C2CoYoI,0C;K;GAJ9I,C;wFAMA,yB;IAAA,6B;IAAA,4D;IAAA,uC;IAAA,2C;IAAA,8B;I3CvYA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2C0YkE,kC;MAAC,W;IAAA,C;IAJrH,4C;MAIkD,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAwC,a;MAA0B,IAAgD,I;MAAhD,qBAAgD,O3C1YpL,oB2C0YoI,gBAAO,gBAAgB,OAAhB,EAAyB,OAAzB,CAAP,EAA0C,SAA1C,C3C1YpI,E2C0YqM,S3C1YrM,EAA8B,wB2C0Y6K,K3C1Y7K,CAA9B,C2C0YoI,0C;K;GAJ9I,C;8EAMA,yB;IAAA,6B;IAAA,4D;IAAA,6B;IAAA,iD;IAAA,8B;I3C7YA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2CgZwD,6B;MAAC,W;IAAA,C;IAJ3G,4C;MAI6C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAmC,Q;MAA6B,IAA2C,I;MAA3C,qBAA2C,O3ChZxK,oB2CgZ6H,WAAE,gBAAgB,OAAhB,EAAyB,OAAzB,CAAF,EAAqC,SAArC,C3ChZ7H,E2CgZyL,S3ChZzL,EAA8B,wB2CgZiK,K3ChZjK,CAA9B,C2CgZ6H,6C;K;GAJvI,C;sFAMA,yB;IAAA,6B;IAAA,4D;IAAA,qC;IAAA,yC;IAAA,8B;I3CnZA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2CsZqF,iC;MAAC,W;IAAA,C;IAJxI,gD;MAIiD,oB;QAAA,OAAiB,I;MAAM,qB;QAAA,QAAkB,I;MAAM,qB;QAAA,QAAuC,Y;MAAyB,IAA0D,I;MAA1D,qBAA0D,O3CtZhN,oB2CsZsJ,eAAM,iBAAgB,MAAhB,EAAwB,IAAxB,EAA6B,OAA7B,EAAsC,KAAtC,EAAN,EAAoD,SAApD,C3CtZtJ,E2CsZiO,S3CtZjO,EAA8B,wB2CsZyM,K3CtZzM,CAA9B,C2CsZsJ,yC;K;GAJhK,C;0FAMA,yB;IAAA,6B;IAAA,yB;IAAA,yC;IAAA,6C;IAAA,8B;I3CzZA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2C4Z0C,mC;MAAC,W;IAAA,C;IAJ7F,mC;MAImD,qB;QAAA,QAAyC,c;MAA2B,IAAwB,I;MAAxB,qBAAwB,O3C5ZrI,oB2C4Z6G,iBAAQ,aAAR,EAAkB,SAAlB,C3C5Z7G,E2C4ZsJ,S3C5ZtJ,EAA8B,wB2C4Z8H,K3C5Z9H,CAA9B,C2C4Z6G,2C;K;GAJvH,C;kFAMA,yB;IAAA,6B;IAAA,4D;IAAA,iC;IAAA,qC;IAAA,8B;I3C/ZA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2Cka4D,+B;MAAC,W;IAAA,C;IAJ/G,4C;MAI+C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAqC,U;MAAuB,IAA6C,I;MAA7C,qBAA6C,O3ClaxK,oB2Cka2H,aAAI,gBAAgB,OAAhB,EAAyB,OAAzB,CAAJ,EAAuC,SAAvC,C3Cla3H,E2CkayL,S3ClazL,EAA8B,wB2CkaiK,K3ClajK,CAA9B,C2Cka2H,uC;K;GAJrI,C;4FAMA,yB;IAAA,6B;IAAA,4D;IAAA,2C;IAAA,+C;IAAA,8B;I3CraA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2CwasE,oC;MAAC,W;IAAA,C;IAJzH,4C;MAIoD,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAA0C,e;MAA4B,IAAkD,I;MAAlD,qBAAkD,O3Cxa5L,oB2Cwa0I,kBAAS,gBAAgB,OAAhB,EAAyB,OAAzB,CAAT,EAA4C,SAA5C,C3Cxa1I,E2Cwa6M,S3Cxa7M,EAA8B,wB2CwaqL,K3CxarL,CAA9B,C2Cwa0I,4C;K;GAJpJ,C;8EAMA,yB;IAAA,6B;IAAA,4D;IAAA,6B;I3C3aA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2C8awD,6B;MAAC,W;IAAA,C;IAJ3G,4C;MAI6C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAmC,Q;MAAoB,O3C9apH,oB2C8aoH,WAAE,gBAAgB,OAAhB,EAAyB,OAAzB,CAAF,EAAqC,SAArC,C3C9apH,E2C8agL,S3C9ahL,EAA8B,wB2C8awJ,K3C9axJ,CAA9B,C;K;G2C0aV,C;gFAMA,yB;IAAA,6B;IAAA,4D;IAAA,+B;I3CjbA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2Cob0D,8B;MAAC,W;IAAA,C;IAJ7G,4C;MAI8C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAoC,S;MAAoB,O3CpbtH,oB2CobsH,YAAG,gBAAgB,OAAhB,EAAyB,OAAzB,CAAH,EAAsC,SAAtC,C3CpbtH,E2CobmL,S3CpbnL,EAA8B,wB2Cob2J,K3Cpb3J,CAA9B,C;K;G2CgbV,C;gFAMA,yB;IAAA,6B;IAAA,4D;IAAA,+B;I3CvbA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2C0b0D,8B;MAAC,W;IAAA,C;IAJ7G,4C;MAI8C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAoC,S;MAAoB,O3C1btH,oB2C0bsH,YAAG,gBAAgB,OAAhB,EAAyB,OAAzB,CAAH,EAAsC,SAAtC,C3C1btH,E2C0bmL,S3C1bnL,EAA8B,wB2C0b2J,K3C1b3J,CAA9B,C;K;G2CsbV,C;oFAMA,yB;IAAA,6B;IAAA,4D;IAAA,mC;I3C7bA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2Cgc8D,gC;MAAC,W;IAAA,C;IAJjH,4C;MAIgD,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAsC,W;MAAoB,O3Chc1H,oB2Cgc0H,cAAK,gBAAgB,OAAhB,EAAyB,OAAzB,CAAL,EAAwC,SAAxC,C3Chc1H,E2CgcyL,S3ChczL,EAA8B,wB2CgciK,K3ChcjK,CAA9B,C;K;G2C4bV,C;oFAMA,yB;IAAA,6B;IAAA,4D;IAAA,mC;I3CncA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2Csc8D,gC;MAAC,W;IAAA,C;IAJjH,4C;MAIgD,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAsC,W;MAAoB,O3Ctc1H,oB2Csc0H,cAAK,gBAAgB,OAAhB,EAAyB,OAAzB,CAAL,EAAwC,SAAxC,C3Ctc1H,E2CscyL,S3CtczL,EAA8B,wB2CsciK,K3CtcjK,CAA9B,C;K;G2CkcV,C;EAYmN,0C;IAAA,4B;MAAC,4BAAC,eAAD,C;MAAQ,W;IAAA,C;G;EAN5N,iD;IAM2C,oB;MAAA,OAAiB,I;IAAM,mB;MAAA,MAAgB,I;IAAM,uB;MAAA,UAAmB,E;IAA0B,IAAuD,I;IAAvD,qBAAuD,O3C9clL,oB2C8c2H,WAAO,mBAAgB,MAAhB,EAAwB,IAAxB,EAA6B,KAA7B,EAAoC,GAApC,EAAP,EAAiD,SAAjD,C3C9c3H,E2C8cmM,S3C9cnM,EAA8B,0B2C8c2K,wB3C9c3K,CAA9B,C2C8c2H,wC;G;wFACrI,yB;IAAA,6B;IAAA,4D;IAAA,uC;IAAA,2C;IAAA,8B;I3ChdA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2CmdqF,kC;MAAC,W;IAAA,C;IAJxI,8C;MAIkD,oB;QAAA,OAAiB,I;MAAM,mB;QAAA,MAAgB,I;MAAM,qB;QAAA,QAAwC,a;MAA0B,IAAuD,I;MAAvD,qBAAuD,O3Cnd9M,oB2CmduJ,gBAAO,iBAAgB,MAAhB,EAAwB,IAAxB,EAA6B,KAA7B,EAAoC,GAApC,EAAP,EAAiD,SAAjD,C3CndvJ,E2Cmd+N,S3Cnd/N,EAA8B,wB2CmduM,K3CndvM,CAA9B,C2CmduJ,0C;K;GAJjK,C;yFAMA,yB;IAAA,6B;IAAA,4D;IAAA,yC;I3CtdA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2CydoE,mC;MAAC,W;IAAA,C;IAJvH,4C;MAImD,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAyC,c;MAAoB,O3CzdhI,oB2CydgI,iBAAQ,gBAAgB,OAAhB,EAAyB,OAAzB,CAAR,EAA2C,SAA3C,C3CzdhI,E2CydkM,S3CzdlM,EAA8B,wB2Cyd0K,K3Czd1K,CAA9B,C;K;G2CqdV,C;wFAMA,yB;IAAA,6B;IAAA,4D;IAAA,uC;IAAA,2C;IAAA,8B;I3C5dA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2C+dkE,kC;MAAC,W;IAAA,C;IAJrH,4C;MAIkD,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAwC,a;MAA0B,IAAgD,I;MAAhD,qBAAgD,O3C/dpL,oB2C+doI,gBAAO,gBAAgB,OAAhB,EAAyB,OAAzB,CAAP,EAA0C,SAA1C,C3C/dpI,E2C+dqM,S3C/drM,EAA8B,wB2C+d6K,K3C/d7K,CAA9B,C2C+doI,0C;K;GAJ9I,C;sFAMA,yB;IAAA,6B;IAAA,4D;IAAA,qC;I3CleA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2CqegE,iC;MAAC,W;IAAA,C;IAJnH,4C;MAIiD,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAuC,Y;MAAoB,O3Cre5H,oB2Cqe4H,eAAM,gBAAgB,OAAhB,EAAyB,OAAzB,CAAN,EAAyC,SAAzC,C3Cre5H,E2Cqe4L,S3Cre5L,EAA8B,wB2CqeoK,K3CrepK,CAA9B,C;K;G2CieV,C;wFAMA,yB;IAAA,6B;IAAA,4D;IAAA,uC;IAAA,2C;IAAA,8B;I3CxeA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2C2ekE,kC;MAAC,W;IAAA,C;IAJrH,4C;MAIkD,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAwC,a;MAA0B,IAAgD,I;MAAhD,qBAAgD,O3C3epL,oB2C2eoI,gBAAO,gBAAgB,OAAhB,EAAyB,OAAzB,CAAP,EAA0C,SAA1C,C3C3epI,E2C2eqM,S3C3erM,EAA8B,wB2C2e6K,K3C3e7K,CAA9B,C2C2eoI,0C;K;GAJ9I,C;oFAMA,yB;IAAA,6B;IAAA,4D;IAAA,mC;IAAA,uC;IAAA,8B;I3C9eA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2Cif8D,gC;MAAC,W;IAAA,C;IAJjH,4C;MAIgD,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAsC,W;MAAwB,IAA8C,I;MAA9C,qBAA8C,O3Cjf5K,oB2Cif8H,cAAK,gBAAgB,OAAhB,EAAyB,OAAzB,CAAL,EAAwC,SAAxC,C3Cjf9H,E2Cif6L,S3Cjf7L,EAA8B,wB2CifqK,K3CjfrK,CAA9B,C2Cif8H,wC;K;GAJxI,C;wFAMA,yB;IAAA,6B;IAAA,4D;IAAA,uC;I3CpfA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2CufkE,kC;MAAC,W;IAAA,C;IAJrH,4C;MAIkD,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAwC,a;MAAoB,O3Cvf9H,oB2Cuf8H,gBAAO,gBAAgB,OAAhB,EAAyB,OAAzB,CAAP,EAA0C,SAA1C,C3Cvf9H,E2Cuf+L,S3Cvf/L,EAA8B,wB2CufuK,K3CvfvK,CAA9B,C;K;G2CmfV,C;EAY+K,yC;IAAA,4B;MAAC,4BAAC,eAAD,C;MAAQ,W;IAAA,C;G;EANxL,2C;IAM0C,oB;MAAA,OAAiB,I;IAAM,uB;MAAA,UAAmB,E;IAAyB,IAA2C,I;IAA3C,qBAA2C,O3C/f9I,oB2C+fmG,UAAM,kBAAgB,MAAhB,EAAwB,IAAxB,CAAN,EAAqC,SAArC,C3C/fnG,E2C+f+J,S3C/f/J,EAA8B,0B2C+fuI,uB3C/fvI,CAA9B,C2C+fmG,uC;G;sFAC7G,yB;IAAA,6B;IAAA,4D;IAAA,qC;IAAA,yC;IAAA,8B;I3CjgBA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2CogB6D,iC;MAAC,W;IAAA,C;IAJhH,yC;MAIiD,oB;QAAA,OAAiB,I;MAAM,qB;QAAA,QAAuC,Y;MAAyB,IAA2C,I;MAA3C,qBAA2C,O3CpgBzK,oB2CogB8H,eAAM,gBAAgB,MAAhB,EAAwB,IAAxB,CAAN,EAAqC,SAArC,C3CpgB9H,E2CogB0L,S3CpgB1L,EAA8B,wB2CogBkK,K3CpgBlK,CAA9B,C2CogB8H,yC;K;GAJxI,C;kFAMA,yB;IAAA,6B;IAAA,4D;IAAA,iC;I3CvgBA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2C0gB4D,+B;MAAC,W;IAAA,C;IAJ/G,4C;MAI+C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAqC,U;MAAoB,O3C1gBxH,oB2C0gBwH,aAAI,gBAAgB,OAAhB,EAAyB,OAAzB,CAAJ,EAAuC,SAAvC,C3C1gBxH,E2C0gBsL,S3C1gBtL,EAA8B,wB2C0gB8J,K3C1gB9J,CAA9B,C;K;G2CsgBV,C;0FAMA,yB;IAAA,6B;IAAA,4D;IAAA,yC;I3C7gBA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2CghBoE,mC;MAAC,W;IAAA,C;IAJvH,4C;MAImD,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAyC,c;MAAoB,O3ChhBhI,oB2CghBgI,iBAAQ,gBAAgB,OAAhB,EAAyB,OAAzB,CAAR,EAA2C,SAA3C,C3ChhBhI,E2CghBkM,S3ChhBlM,EAA8B,wB2CghB0K,K3ChhB1K,CAA9B,C;K;G2C4gBV,C;kFAMA,yB;IAAA,6B;IAAA,4D;IAAA,iC;I3CnhBA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2CshB4D,+B;MAAC,W;IAAA,C;IAJ/G,4C;MAI+C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAqC,U;MAAoB,O3CthBxH,oB2CshBwH,aAAI,gBAAgB,OAAhB,EAAyB,OAAzB,CAAJ,EAAuC,SAAvC,C3CthBxH,E2CshBsL,S3CthBtL,EAA8B,wB2CshB8J,K3CthB9J,CAA9B,C;K;G2CkhBV,C;EAO6K,uC;IAAA,4B;MAAC,4BAAC,eAAD,C;MAAQ,W;IAAA,C;G;EADtL,4C;IACwC,uB;MAAA,UAAoB,I;IAAM,uB;MAAA,UAAmB,E;IAAoB,O3CzhB/F,oB2CyhB+F,QAAI,kBAAgB,OAAhB,EAAyB,OAAzB,CAAJ,EAAuC,SAAvC,C3CzhB/F,E2CyhB6J,S3CzhB7J,EAA8B,0B2CyhBqI,qB3CzhBrI,CAA9B,C;G;kF2C0hBV,yB;IAAA,6B;IAAA,4D;IAAA,iC;I3C3hBA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2C2hB4D,+B;MAAC,W;IAAA,C;IAD/G,4C;MAC+C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAqC,U;MAAoB,O3C3hBxH,oB2C2hBwH,aAAI,gBAAgB,OAAhB,EAAyB,OAAzB,CAAJ,EAAuC,SAAvC,C3C3hBxH,E2C2hBsL,S3C3hBtL,EAA8B,wB2C2hB8J,K3C3hB9J,CAA9B,C;K;G2C0hBV,C;sFAGA,yB;IAAA,6B;IAAA,4D;IAAA,qC;IAAA,yC;IAAA,8B;I3C9hBA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2CiiBgE,iC;MAAC,W;IAAA,C;IAJnH,4C;MAIiD,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAuC,Y;MAAyB,IAA+C,I;MAA/C,qBAA+C,O3CjiBhL,oB2CiiBiI,eAAM,gBAAgB,OAAhB,EAAyB,OAAzB,CAAN,EAAyC,SAAzC,C3CjiBjI,E2CiiBiM,S3CjiBjM,EAA8B,wB2CiiByK,K3CjiBzK,CAA9B,C2CiiBiI,yC;K;GAJ3I,C;sFAMA,yB;IAAA,6B;IAAA,4D;IAAA,qC;IAAA,uD;IAAA,8B;I3CpiBA,oE;IACwC,gD;MAAA,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,iC;MAAC,W;IAAA,C;IAJnH,4C;MAIiD,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAuC,Y;MAAgC,IAA+C,I;MAA/C,qBAA+C,O3C1kBvL,oB2C0kBwI,eAAM,gBAAgB,OAAhB,EAAyB,OAAzB,CAAN,EAAyC,SAAzC,C3C1kBxI,E2C0kBwM,S3C1kBxM,EAA8B,wB2C0kBgL,K3C1kBhL,CAA9B,C2C0kBwI,gD;K;GAJlJ,C;oFAMA,yB;IAAA,6B;IAAA,4D;IAAA,mC;IAAA,uC;IAAA,8B;I3C7kBA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2CglB8D,gC;MAAC,W;IAAA,C;IAJjH,4C;MAIgD,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAsC,W;MAAwB,IAA8C,I;MAA9C,qBAA8C,O3ChlB5K,oB2CglB8H,cAAK,gBAAgB,OAAhB,EAAyB,OAAzB,CAAL,EAAwC,SAAxC,C3ChlB9H,E2CglB6L,S3ChlB7L,EAA8B,wB2CglBqK,K3ChlBrK,CAA9B,C2CglB8H,wC;K;GAJxI,C;EAUmI,yC;IAAA,4B;MAAC,4BAAC,eAAD,C;MAAQ,W;IAAA,C;G;EAJ5I,qC;IAI0C,uB;MAAA,UAAmB,E;IAAyB,IAAsB,I;IAAtB,qBAAsB,O3CtlBlG,oB2CslB4E,UAAM,UAAN,EAAgB,SAAhB,C3CtlB5E,E2CslBmH,S3CtlBnH,EAA8B,0B2CslB2F,uB3CtlB3F,CAA9B,C2CslB4E,uC;G;sFACtF,yB;IAAA,6B;IAAA,yB;IAAA,qC;IAAA,yC;IAAA,8B;I3CxlBA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2C2lBsC,iC;MAAC,W;IAAA,C;IAJzF,mC;MAIiD,qB;QAAA,QAAuC,Y;MAAyB,IAAsB,I;MAAtB,qBAAsB,O3C3lB7H,oB2C2lBuG,eAAM,aAAN,EAAgB,SAAhB,C3C3lBvG,E2C2lB8I,S3C3lB9I,EAA8B,wB2C2lBsH,K3C3lBtH,CAA9B,C2C2lBuG,yC;K;GAJjH,C;gFAMA,yB;IAAA,6B;IAAA,4D;IAAA,+B;IAAA,+C;IAAA,8B;I3C9lBA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2CimB0D,8B;MAAC,W;IAAA,C;IAJ7G,4C;MAI8C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAoC,S;MAA4B,IAA4C,I;MAA5C,qBAA4C,O3CjmB1K,oB2CimB8H,YAAG,gBAAgB,OAAhB,EAAyB,OAAzB,CAAH,EAAsC,SAAtC,C3CjmB9H,E2CimB2L,S3CjmB3L,EAA8B,wB2CimBmK,K3CjmBnK,CAA9B,C2CimB8H,4C;K;GAJxI,C;gFAMA,yB;IAAA,6B;IAAA,4D;IAAA,+B;I3CpmBA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2CumB0D,8B;MAAC,W;IAAA,C;IAJ7G,4C;MAI8C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAoC,S;MAAoB,O3CvmBtH,oB2CumBsH,YAAG,gBAAgB,OAAhB,EAAyB,OAAzB,CAAH,EAAsC,SAAtC,C3CvmBtH,E2CumBmL,S3CvmBnL,EAA8B,wB2CumB2J,K3CvmB3J,CAA9B,C;K;G2CmmBV,C;0FAMA,yB;IAAA,6B;IAAA,4D;IAAA,iC;I3C1mBA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2C6mBgE,mC;MAAC,W;IAAA,C;IAJnH,4C;MAImD,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAqC,c;MAAoB,O3C7mB5H,oB2C6mB4H,aAAI,gBAAgB,OAAhB,EAAyB,OAAzB,CAAJ,EAAuC,SAAvC,C3C7mB5H,E2C6mB0L,S3C7mB1L,EAA8B,wB2C6mBkK,K3C7mBlK,CAA9B,C;K;G2CymBV,C;sFAMA,yB;IAAA,6B;IAAA,4D;IAAA,qC;IAAA,yC;IAAA,8B;I3ChnBA,oE;IACwC,gD;MAAA,4B;QAAE,wB;QAAQ,W;MAAA,C;K;I2CmnBgE,iC;MAAC,W;IAAA,C;IAJnH,4C;MAIiD,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAuC,Y;MAAyB,IAA+C,I;MAA/C,qBAA+C,O3CnnBhL,oB2CmnBiI,eAAM,gBAAgB,OAAhB,EAAyB,OAAzB,CAAN,EAAyC,SAAzC,C3CnnBjI,E2CmnBiM,S3CnnBjM,EAA8B,wB2C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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}