package main.kotlin2023

class Day005 {

    fun part1(lines: String): Long {
        val parsedInput = parseInput(lines)
        val seeds = parsedInput.get(0).get(0)
        val seedMaps = parsedInput.drop(1)
        val locationValues = mutableSetOf<Long>()
        for (seed in seeds) {
            val foundCorrespondent = findCorrespondent(seed, seedMaps[0])
            val foundCorrespondent2 = findCorrespondent(foundCorrespondent, seedMaps[1])
            val foundCorrespondent3 = findCorrespondent(foundCorrespondent2, seedMaps[2])
            val foundCorrespondent4 = findCorrespondent(foundCorrespondent3, seedMaps[3])
            val foundCorrespondent5 = findCorrespondent(foundCorrespondent4, seedMaps[4])
            val foundCorrespondent6 = findCorrespondent(foundCorrespondent5, seedMaps[5])
            val foundCorrespondentFinal = findCorrespondent(foundCorrespondent6, seedMaps[6])
            locationValues.add(foundCorrespondentFinal)
        }
        return locationValues.min()
    }
    fun part2(lines: String): Long {
        val parsedInput = parseInput(lines)
        val seedsRaw = parsedInput.get(0).get(0)
//        val seeds = mutableSetOf<Long>()
//        for (i in 0..seedsRaw.size - 2 step 2) {
//            seeds.addAll(seedsRaw[i]..seedsRaw[i] + seedsRaw[i + 1])
//        }
        val seeds = sequence {
            for (i in 0..seedsRaw.size-2 step 2) {
                yieldAll(seedsRaw[i] .. seedsRaw[i]+seedsRaw[i+1])
            }
        }
        val seedMaps = parsedInput.drop(1)
        val locationValues = mutableSetOf<Long>()
        for (seed in seeds) {
            val foundCorrespondent = findCorrespondent(seed, seedMaps[0])
            val foundCorrespondent2 = findCorrespondent(foundCorrespondent, seedMaps[1])
            val foundCorrespondent3 = findCorrespondent(foundCorrespondent2, seedMaps[2])
            val foundCorrespondent4 = findCorrespondent(foundCorrespondent3, seedMaps[3])
            val foundCorrespondent5 = findCorrespondent(foundCorrespondent4, seedMaps[4])
            val foundCorrespondent6 = findCorrespondent(foundCorrespondent5, seedMaps[5])
            val foundCorrespondentFinal = findCorrespondent(foundCorrespondent6, seedMaps[6])
            locationValues.add(foundCorrespondentFinal)
        }
        return locationValues.min()
    }

    private fun findCorrespondent(source: Long, targets: List<List<Long>>): Long {
        for (target in targets) {
            if (source >= target[1] && source <= target[1] + target[2]) {
                return target[0] + source - target[1]
            }
        }
        return source
    }

    private fun parseInput(input: String) = input.split("\n\n")
        .map { eachLine ->
            eachLine.split("\n")
                .map { it.dropWhile { !it.isDigit() } }
                .map {
                    it.split(' ')
                        .filter { it.isNotEmpty() && it.all(Character::isDigit) }
                        .map(String::toLong)
                }
                .filter { it.isNotEmpty() }
        }
}

Compiled from "Day005.kt"
final class main.kotlin2023.Day005$part2$seeds$1 extends kotlin.coroutines.jvm.internal.RestrictedSuspendLambda implements kotlin.jvm.functions.Function2<kotlin.sequences.SequenceScope<? super java.lang.Long>, kotlin.coroutines.Continuation<? super kotlin.Unit>, java.lang.Object> {
  int I$0;

  int I$1;

  int label;

  private java.lang.Object L$0;

  final java.util.List<java.lang.Long> $seedsRaw;

  main.kotlin2023.Day005$part2$seeds$1(java.util.List<java.lang.Long>, kotlin.coroutines.Continuation<? super main.kotlin2023.Day005$part2$seeds$1>);
    Code:
       0: aload_0
       1: aload_1
       2: putfield      #14                 // Field $seedsRaw:Ljava/util/List;
       5: aload_0
       6: iconst_2
       7: aload_2
       8: invokespecial #17                 // Method kotlin/coroutines/jvm/internal/RestrictedSuspendLambda."<init>":(ILkotlin/coroutines/Continuation;)V
      11: return

  public final java.lang.Object invokeSuspend(java.lang.Object);
    Code:
       0: invokestatic  #46                 // Method kotlin/coroutines/intrinsics/IntrinsicsKt.getCOROUTINE_SUSPENDED:()Ljava/lang/Object;
       3: astore        6
       5: aload_0
       6: getfield      #49                 // Field label:I
       9: tableswitch   { // 0 to 1
                     0: 32
                     1: 177
               default: 220
          }
      32: aload_1
      33: invokestatic  #55                 // Method kotlin/ResultKt.throwOnFailure:(Ljava/lang/Object;)V
      36: aload_0
      37: getfield      #58                 // Field L$0:Ljava/lang/Object;
      40: checkcast     #60                 // class kotlin/sequences/SequenceScope
      43: astore_2
      44: aload_0
      45: getfield      #14                 // Field $seedsRaw:Ljava/util/List;
      48: invokeinterface #66,  1           // InterfaceMethod java/util/List.size:()I
      53: iconst_2
      54: isub
      55: istore_3
      56: iconst_0
      57: istore        4
      59: iconst_0
      60: iload_3
      61: iconst_2
      62: invokestatic  #72                 // Method kotlin/internal/ProgressionUtilKt.getProgressionLastElement:(III)I
      65: istore        5
      67: iload         4
      69: iload         5
      71: if_icmpgt     216
      74: aload_2
      75: new           #74                 // class kotlin/ranges/LongRange
      78: dup
      79: aload_0
      80: getfield      #14                 // Field $seedsRaw:Ljava/util/List;
      83: iload         4
      85: invokeinterface #78,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
      90: checkcast     #80                 // class java/lang/Number
      93: invokevirtual #84                 // Method java/lang/Number.longValue:()J
      96: aload_0
      97: getfield      #14                 // Field $seedsRaw:Ljava/util/List;
     100: iload         4
     102: invokeinterface #78,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     107: checkcast     #80                 // class java/lang/Number
     110: invokevirtual #84                 // Method java/lang/Number.longValue:()J
     113: aload_0
     114: getfield      #14                 // Field $seedsRaw:Ljava/util/List;
     117: iload         4
     119: iconst_1
     120: iadd
     121: invokeinterface #78,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     126: checkcast     #80                 // class java/lang/Number
     129: invokevirtual #84                 // Method java/lang/Number.longValue:()J
     132: ladd
     133: invokespecial #87                 // Method kotlin/ranges/LongRange."<init>":(JJ)V
     136: checkcast     #89                 // class java/lang/Iterable
     139: aload_0
     140: checkcast     #91                 // class kotlin/coroutines/Continuation
     143: aload_0
     144: aload_2
     145: putfield      #58                 // Field L$0:Ljava/lang/Object;
     148: aload_0
     149: iload         4
     151: putfield      #93                 // Field I$0:I
     154: aload_0
     155: iload         5
     157: putfield      #95                 // Field I$1:I
     160: aload_0
     161: iconst_1
     162: putfield      #49                 // Field label:I
     165: invokevirtual #99                 // Method kotlin/sequences/SequenceScope.yieldAll:(Ljava/lang/Iterable;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
     168: dup
     169: aload         6
     171: if_acmpne     202
     174: aload         6
     176: areturn
     177: aload_0
     178: getfield      #95                 // Field I$1:I
     181: istore        5
     183: aload_0
     184: getfield      #93                 // Field I$0:I
     187: istore        4
     189: aload_0
     190: getfield      #58                 // Field L$0:Ljava/lang/Object;
     193: checkcast     #60                 // class kotlin/sequences/SequenceScope
     196: astore_2
     197: aload_1
     198: invokestatic  #55                 // Method kotlin/ResultKt.throwOnFailure:(Ljava/lang/Object;)V
     201: aload_1
     202: pop
     203: iload         4
     205: iload         5
     207: if_icmpeq     216
     210: iinc          4, 2
     213: goto          74
     216: getstatic     #105                // Field kotlin/Unit.INSTANCE:Lkotlin/Unit;
     219: areturn
     220: new           #107                // class java/lang/IllegalStateException
     223: dup
     224: ldc           #109                // String call to \'resume\' before \'invoke\' with coroutine
     226: invokespecial #112                // Method java/lang/IllegalStateException."<init>":(Ljava/lang/String;)V
     229: athrow

  public final kotlin.coroutines.Continuation<kotlin.Unit> create(java.lang.Object, kotlin.coroutines.Continuation<?>);
    Code:
       0: new           #2                  // class main/kotlin2023/Day005$part2$seeds$1
       3: dup
       4: aload_0
       5: getfield      #14                 // Field $seedsRaw:Ljava/util/List;
       8: aload_2
       9: invokespecial #121                // Method "<init>":(Ljava/util/List;Lkotlin/coroutines/Continuation;)V
      12: astore_3
      13: aload_3
      14: aload_1
      15: putfield      #58                 // Field L$0:Ljava/lang/Object;
      18: aload_3
      19: checkcast     #91                 // class kotlin/coroutines/Continuation
      22: areturn

  public final java.lang.Object invoke(kotlin.sequences.SequenceScope<? super java.lang.Long>, kotlin.coroutines.Continuation<? super kotlin.Unit>);
    Code:
       0: aload_0
       1: aload_1
       2: aload_2
       3: invokevirtual #127                // Method create:(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;
       6: checkcast     #2                  // class main/kotlin2023/Day005$part2$seeds$1
       9: getstatic     #105                // Field kotlin/Unit.INSTANCE:Lkotlin/Unit;
      12: invokevirtual #129                // Method invokeSuspend:(Ljava/lang/Object;)Ljava/lang/Object;
      15: areturn

  public java.lang.Object invoke(java.lang.Object, java.lang.Object);
    Code:
       0: aload_0
       1: aload_1
       2: checkcast     #60                 // class kotlin/sequences/SequenceScope
       5: aload_2
       6: checkcast     #91                 // class kotlin/coroutines/Continuation
       9: invokevirtual #134                // Method invoke:(Lkotlin/sequences/SequenceScope;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
      12: areturn
}

Compiled from "Day005.kt"
public final class main.kotlin2023.Day005 {
  public main.kotlin2023.Day005();
    Code:
       0: aload_0
       1: invokespecial #8                  // Method java/lang/Object."<init>":()V
       4: return

  public final long part1(java.lang.String);
    Code:
       0: aload_1
       1: ldc           #15                 // String lines
       3: invokestatic  #21                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: aload_0
       7: aload_1
       8: invokespecial #25                 // Method parseInput:(Ljava/lang/String;)Ljava/util/List;
      11: astore_2
      12: aload_2
      13: iconst_0
      14: invokeinterface #31,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
      19: checkcast     #27                 // class java/util/List
      22: iconst_0
      23: invokeinterface #31,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
      28: checkcast     #27                 // class java/util/List
      31: astore_3
      32: aload_2
      33: checkcast     #33                 // class java/lang/Iterable
      36: iconst_1
      37: invokestatic  #39                 // Method kotlin/collections/CollectionsKt.drop:(Ljava/lang/Iterable;I)Ljava/util/List;
      40: astore        4
      42: new           #41                 // class java/util/LinkedHashSet
      45: dup
      46: invokespecial #42                 // Method java/util/LinkedHashSet."<init>":()V
      49: checkcast     #44                 // class java/util/Set
      52: astore        5
      54: aload_3
      55: invokeinterface #48,  1           // InterfaceMethod java/util/List.iterator:()Ljava/util/Iterator;
      60: astore        6
      62: aload         6
      64: invokeinterface #54,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
      69: ifeq          237
      72: aload         6
      74: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
      79: checkcast     #60                 // class java/lang/Number
      82: invokevirtual #64                 // Method java/lang/Number.longValue:()J
      85: lstore        7
      87: aload_0
      88: lload         7
      90: aload         4
      92: iconst_0
      93: invokeinterface #31,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
      98: checkcast     #27                 // class java/util/List
     101: invokespecial #68                 // Method findCorrespondent:(JLjava/util/List;)J
     104: lstore        9
     106: aload_0
     107: lload         9
     109: aload         4
     111: iconst_1
     112: invokeinterface #31,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     117: checkcast     #27                 // class java/util/List
     120: invokespecial #68                 // Method findCorrespondent:(JLjava/util/List;)J
     123: lstore        11
     125: aload_0
     126: lload         11
     128: aload         4
     130: iconst_2
     131: invokeinterface #31,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     136: checkcast     #27                 // class java/util/List
     139: invokespecial #68                 // Method findCorrespondent:(JLjava/util/List;)J
     142: lstore        13
     144: aload_0
     145: lload         13
     147: aload         4
     149: iconst_3
     150: invokeinterface #31,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     155: checkcast     #27                 // class java/util/List
     158: invokespecial #68                 // Method findCorrespondent:(JLjava/util/List;)J
     161: lstore        15
     163: aload_0
     164: lload         15
     166: aload         4
     168: iconst_4
     169: invokeinterface #31,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     174: checkcast     #27                 // class java/util/List
     177: invokespecial #68                 // Method findCorrespondent:(JLjava/util/List;)J
     180: lstore        17
     182: aload_0
     183: lload         17
     185: aload         4
     187: iconst_5
     188: invokeinterface #31,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     193: checkcast     #27                 // class java/util/List
     196: invokespecial #68                 // Method findCorrespondent:(JLjava/util/List;)J
     199: lstore        19
     201: aload_0
     202: lload         19
     204: aload         4
     206: bipush        6
     208: invokeinterface #31,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     213: checkcast     #27                 // class java/util/List
     216: invokespecial #68                 // Method findCorrespondent:(JLjava/util/List;)J
     219: lstore        21
     221: aload         5
     223: lload         21
     225: invokestatic  #74                 // Method java/lang/Long.valueOf:(J)Ljava/lang/Long;
     228: invokeinterface #78,  2           // InterfaceMethod java/util/Set.add:(Ljava/lang/Object;)Z
     233: pop
     234: goto          62
     237: aload         5
     239: checkcast     #33                 // class java/lang/Iterable
     242: invokestatic  #82                 // Method kotlin/collections/CollectionsKt.minOrThrow:(Ljava/lang/Iterable;)Ljava/lang/Comparable;
     245: checkcast     #60                 // class java/lang/Number
     248: invokevirtual #64                 // Method java/lang/Number.longValue:()J
     251: lreturn

  public final long part2(java.lang.String);
    Code:
       0: aload_1
       1: ldc           #15                 // String lines
       3: invokestatic  #21                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: aload_0
       7: aload_1
       8: invokespecial #25                 // Method parseInput:(Ljava/lang/String;)Ljava/util/List;
      11: astore_2
      12: aload_2
      13: iconst_0
      14: invokeinterface #31,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
      19: checkcast     #27                 // class java/util/List
      22: iconst_0
      23: invokeinterface #31,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
      28: checkcast     #27                 // class java/util/List
      31: astore_3
      32: new           #103                // class main/kotlin2023/Day005$part2$seeds$1
      35: dup
      36: aload_3
      37: aconst_null
      38: invokespecial #106                // Method main/kotlin2023/Day005$part2$seeds$1."<init>":(Ljava/util/List;Lkotlin/coroutines/Continuation;)V
      41: checkcast     #108                // class kotlin/jvm/functions/Function2
      44: invokestatic  #114                // Method kotlin/sequences/SequencesKt.sequence:(Lkotlin/jvm/functions/Function2;)Lkotlin/sequences/Sequence;
      47: astore        4
      49: aload_2
      50: checkcast     #33                 // class java/lang/Iterable
      53: iconst_1
      54: invokestatic  #39                 // Method kotlin/collections/CollectionsKt.drop:(Ljava/lang/Iterable;I)Ljava/util/List;
      57: astore        5
      59: new           #41                 // class java/util/LinkedHashSet
      62: dup
      63: invokespecial #42                 // Method java/util/LinkedHashSet."<init>":()V
      66: checkcast     #44                 // class java/util/Set
      69: astore        6
      71: aload         4
      73: invokeinterface #117,  1          // InterfaceMethod kotlin/sequences/Sequence.iterator:()Ljava/util/Iterator;
      78: astore        7
      80: aload         7
      82: invokeinterface #54,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
      87: ifeq          255
      90: aload         7
      92: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
      97: checkcast     #60                 // class java/lang/Number
     100: invokevirtual #64                 // Method java/lang/Number.longValue:()J
     103: lstore        8
     105: aload_0
     106: lload         8
     108: aload         5
     110: iconst_0
     111: invokeinterface #31,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     116: checkcast     #27                 // class java/util/List
     119: invokespecial #68                 // Method findCorrespondent:(JLjava/util/List;)J
     122: lstore        10
     124: aload_0
     125: lload         10
     127: aload         5
     129: iconst_1
     130: invokeinterface #31,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     135: checkcast     #27                 // class java/util/List
     138: invokespecial #68                 // Method findCorrespondent:(JLjava/util/List;)J
     141: lstore        12
     143: aload_0
     144: lload         12
     146: aload         5
     148: iconst_2
     149: invokeinterface #31,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     154: checkcast     #27                 // class java/util/List
     157: invokespecial #68                 // Method findCorrespondent:(JLjava/util/List;)J
     160: lstore        14
     162: aload_0
     163: lload         14
     165: aload         5
     167: iconst_3
     168: invokeinterface #31,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     173: checkcast     #27                 // class java/util/List
     176: invokespecial #68                 // Method findCorrespondent:(JLjava/util/List;)J
     179: lstore        16
     181: aload_0
     182: lload         16
     184: aload         5
     186: iconst_4
     187: invokeinterface #31,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     192: checkcast     #27                 // class java/util/List
     195: invokespecial #68                 // Method findCorrespondent:(JLjava/util/List;)J
     198: lstore        18
     200: aload_0
     201: lload         18
     203: aload         5
     205: iconst_5
     206: invokeinterface #31,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     211: checkcast     #27                 // class java/util/List
     214: invokespecial #68                 // Method findCorrespondent:(JLjava/util/List;)J
     217: lstore        20
     219: aload_0
     220: lload         20
     222: aload         5
     224: bipush        6
     226: invokeinterface #31,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     231: checkcast     #27                 // class java/util/List
     234: invokespecial #68                 // Method findCorrespondent:(JLjava/util/List;)J
     237: lstore        22
     239: aload         6
     241: lload         22
     243: invokestatic  #74                 // Method java/lang/Long.valueOf:(J)Ljava/lang/Long;
     246: invokeinterface #78,  2           // InterfaceMethod java/util/Set.add:(Ljava/lang/Object;)Z
     251: pop
     252: goto          80
     255: aload         6
     257: checkcast     #33                 // class java/lang/Iterable
     260: invokestatic  #82                 // Method kotlin/collections/CollectionsKt.minOrThrow:(Ljava/lang/Iterable;)Ljava/lang/Comparable;
     263: checkcast     #60                 // class java/lang/Number
     266: invokevirtual #64                 // Method java/lang/Number.longValue:()J
     269: lreturn

  private final long findCorrespondent(long, java.util.List<? extends java.util.List<java.lang.Long>>);
    Code:
       0: aload_3
       1: invokeinterface #48,  1           // InterfaceMethod java/util/List.iterator:()Ljava/util/Iterator;
       6: astore        4
       8: aload         4
      10: invokeinterface #54,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
      15: ifeq          115
      18: aload         4
      20: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
      25: checkcast     #27                 // class java/util/List
      28: astore        5
      30: lload_1
      31: aload         5
      33: iconst_1
      34: invokeinterface #31,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
      39: checkcast     #60                 // class java/lang/Number
      42: invokevirtual #64                 // Method java/lang/Number.longValue:()J
      45: lcmp
      46: iflt          8
      49: lload_1
      50: aload         5
      52: iconst_1
      53: invokeinterface #31,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
      58: checkcast     #60                 // class java/lang/Number
      61: invokevirtual #64                 // Method java/lang/Number.longValue:()J
      64: aload         5
      66: iconst_2
      67: invokeinterface #31,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
      72: checkcast     #60                 // class java/lang/Number
      75: invokevirtual #64                 // Method java/lang/Number.longValue:()J
      78: ladd
      79: lcmp
      80: ifgt          8
      83: aload         5
      85: iconst_0
      86: invokeinterface #31,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
      91: checkcast     #60                 // class java/lang/Number
      94: invokevirtual #64                 // Method java/lang/Number.longValue:()J
      97: lload_1
      98: ladd
      99: aload         5
     101: iconst_1
     102: invokeinterface #31,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     107: checkcast     #60                 // class java/lang/Number
     110: invokevirtual #64                 // Method java/lang/Number.longValue:()J
     113: lsub
     114: lreturn
     115: lload_1
     116: lreturn

  private final java.util.List<java.util.List<java.util.List<java.lang.Long>>> parseInput(java.lang.String);
    Code:
       0: aload_1
       1: checkcast     #126                // class java/lang/CharSequence
       4: iconst_1
       5: anewarray     #100                // class java/lang/String
       8: astore_2
       9: aload_2
      10: iconst_0
      11: ldc           #128                // String \n\n
      13: aastore
      14: aload_2
      15: iconst_0
      16: iconst_0
      17: bipush        6
      19: aconst_null
      20: invokestatic  #134                // Method kotlin/text/StringsKt.split$default:(Ljava/lang/CharSequence;[Ljava/lang/String;ZIILjava/lang/Object;)Ljava/util/List;
      23: checkcast     #33                 // class java/lang/Iterable
      26: astore_2
      27: nop
      28: iconst_0
      29: istore_3
      30: aload_2
      31: astore        4
      33: new           #136                // class java/util/ArrayList
      36: dup
      37: aload_2
      38: bipush        10
      40: invokestatic  #140                // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
      43: invokespecial #143                // Method java/util/ArrayList."<init>":(I)V
      46: checkcast     #145                // class java/util/Collection
      49: astore        5
      51: iconst_0
      52: istore        6
      54: aload         4
      56: invokeinterface #146,  1          // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
      61: astore        7
      63: aload         7
      65: invokeinterface #54,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
      70: ifeq          825
      73: aload         7
      75: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
      80: astore        8
      82: aload         5
      84: aload         8
      86: checkcast     #100                // class java/lang/String
      89: astore        9
      91: astore        37
      93: iconst_0
      94: istore        10
      96: aload         9
      98: checkcast     #126                // class java/lang/CharSequence
     101: iconst_1
     102: anewarray     #100                // class java/lang/String
     105: astore        11
     107: aload         11
     109: iconst_0
     110: ldc           #148                // String \n
     112: aastore
     113: aload         11
     115: iconst_0
     116: iconst_0
     117: bipush        6
     119: aconst_null
     120: invokestatic  #134                // Method kotlin/text/StringsKt.split$default:(Ljava/lang/CharSequence;[Ljava/lang/String;ZIILjava/lang/Object;)Ljava/util/List;
     123: checkcast     #33                 // class java/lang/Iterable
     126: astore        11
     128: nop
     129: iconst_0
     130: istore        12
     132: aload         11
     134: astore        13
     136: new           #136                // class java/util/ArrayList
     139: dup
     140: aload         11
     142: bipush        10
     144: invokestatic  #140                // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     147: invokespecial #143                // Method java/util/ArrayList."<init>":(I)V
     150: checkcast     #145                // class java/util/Collection
     153: astore        14
     155: iconst_0
     156: istore        15
     158: aload         13
     160: invokeinterface #146,  1          // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     165: astore        16
     167: aload         16
     169: invokeinterface #54,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     174: ifeq          294
     177: aload         16
     179: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     184: astore        17
     186: aload         14
     188: aload         17
     190: checkcast     #100                // class java/lang/String
     193: astore        18
     195: astore        19
     197: iconst_0
     198: istore        20
     200: aload         18
     202: astore        21
     204: iconst_0
     205: istore        22
     207: iconst_0
     208: istore        23
     210: aload         21
     212: checkcast     #126                // class java/lang/CharSequence
     215: invokeinterface #152,  1          // InterfaceMethod java/lang/CharSequence.length:()I
     220: istore        24
     222: iload         23
     224: iload         24
     226: if_icmpge     279
     229: aload         21
     231: iload         23
     233: invokevirtual #156                // Method java/lang/String.charAt:(I)C
     236: istore        25
     238: iconst_0
     239: istore        26
     241: iload         25
     243: invokestatic  #162                // Method java/lang/Character.isDigit:(C)Z
     246: ifne          253
     249: iconst_1
     250: goto          254
     253: iconst_0
     254: ifne          273
     257: aload         21
     259: iload         23
     261: invokevirtual #166                // Method java/lang/String.substring:(I)Ljava/lang/String;
     264: dup
     265: ldc           #168                // String substring(...)
     267: invokestatic  #171                // Method kotlin/jvm/internal/Intrinsics.checkNotNullExpressionValue:(Ljava/lang/Object;Ljava/lang/String;)V
     270: goto          281
     273: iinc          23, 1
     276: goto          222
     279: ldc           #173                // String
     281: nop
     282: aload         19
     284: swap
     285: invokeinterface #174,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     290: pop
     291: goto          167
     294: aload         14
     296: checkcast     #27                 // class java/util/List
     299: nop
     300: checkcast     #33                 // class java/lang/Iterable
     303: astore        11
     305: nop
     306: iconst_0
     307: istore        12
     309: aload         11
     311: astore        13
     313: new           #136                // class java/util/ArrayList
     316: dup
     317: aload         11
     319: bipush        10
     321: invokestatic  #140                // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     324: invokespecial #143                // Method java/util/ArrayList."<init>":(I)V
     327: checkcast     #145                // class java/util/Collection
     330: astore        14
     332: iconst_0
     333: istore        15
     335: aload         13
     337: invokeinterface #146,  1          // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     342: astore        16
     344: aload         16
     346: invokeinterface #54,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     351: ifeq          699
     354: aload         16
     356: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     361: astore        17
     363: aload         14
     365: aload         17
     367: checkcast     #100                // class java/lang/String
     370: astore        18
     372: astore        19
     374: iconst_0
     375: istore        20
     377: aload         18
     379: checkcast     #126                // class java/lang/CharSequence
     382: iconst_1
     383: newarray       char
     385: astore        21
     387: aload         21
     389: iconst_0
     390: bipush        32
     392: castore
     393: aload         21
     395: iconst_0
     396: iconst_0
     397: bipush        6
     399: aconst_null
     400: invokestatic  #177                // Method kotlin/text/StringsKt.split$default:(Ljava/lang/CharSequence;[CZIILjava/lang/Object;)Ljava/util/List;
     403: checkcast     #33                 // class java/lang/Iterable
     406: astore        21
     408: nop
     409: iconst_0
     410: istore        22
     412: aload         21
     414: astore        23
     416: new           #136                // class java/util/ArrayList
     419: dup
     420: invokespecial #178                // Method java/util/ArrayList."<init>":()V
     423: checkcast     #145                // class java/util/Collection
     426: astore        24
     428: iconst_0
     429: istore        25
     431: aload         23
     433: invokeinterface #146,  1          // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     438: astore        26
     440: aload         26
     442: invokeinterface #54,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     447: ifeq          576
     450: aload         26
     452: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     457: astore        27
     459: aload         27
     461: checkcast     #100                // class java/lang/String
     464: astore        28
     466: iconst_0
     467: istore        29
     469: aload         28
     471: checkcast     #126                // class java/lang/CharSequence
     474: invokeinterface #152,  1          // InterfaceMethod java/lang/CharSequence.length:()I
     479: ifle          486
     482: iconst_1
     483: goto          487
     486: iconst_0
     487: ifeq          559
     490: aload         28
     492: checkcast     #126                // class java/lang/CharSequence
     495: astore        30
     497: iconst_0
     498: istore        31
     500: iconst_0
     501: istore        32
     503: iload         32
     505: aload         30
     507: invokeinterface #152,  1          // InterfaceMethod java/lang/CharSequence.length:()I
     512: if_icmpge     551
     515: aload         30
     517: iload         32
     519: invokeinterface #179,  2          // InterfaceMethod java/lang/CharSequence.charAt:(I)C
     524: istore        33
     526: iload         33
     528: istore        34
     530: iconst_0
     531: istore        35
     533: iload         34
     535: invokestatic  #162                // Method java/lang/Character.isDigit:(C)Z
     538: ifne          545
     541: iconst_0
     542: goto          552
     545: iinc          32, 1
     548: goto          503
     551: iconst_1
     552: ifeq          559
     555: iconst_1
     556: goto          560
     559: iconst_0
     560: ifeq          440
     563: aload         24
     565: aload         27
     567: invokeinterface #174,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     572: pop
     573: goto          440
     576: aload         24
     578: checkcast     #27                 // class java/util/List
     581: nop
     582: checkcast     #33                 // class java/lang/Iterable
     585: astore        21
     587: nop
     588: iconst_0
     589: istore        22
     591: aload         21
     593: astore        23
     595: new           #136                // class java/util/ArrayList
     598: dup
     599: aload         21
     601: bipush        10
     603: invokestatic  #140                // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     606: invokespecial #143                // Method java/util/ArrayList."<init>":(I)V
     609: checkcast     #145                // class java/util/Collection
     612: astore        24
     614: iconst_0
     615: istore        25
     617: aload         23
     619: invokeinterface #146,  1          // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     624: astore        26
     626: aload         26
     628: invokeinterface #54,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     633: ifeq          680
     636: aload         26
     638: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     643: astore        27
     645: aload         24
     647: aload         27
     649: checkcast     #100                // class java/lang/String
     652: astore        28
     654: astore        36
     656: iconst_0
     657: istore        29
     659: aload         28
     661: invokestatic  #182                // Method java/lang/Long.parseLong:(Ljava/lang/String;)J
     664: nop
     665: invokestatic  #74                 // Method java/lang/Long.valueOf:(J)Ljava/lang/Long;
     668: aload         36
     670: swap
     671: invokeinterface #174,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     676: pop
     677: goto          626
     680: aload         24
     682: checkcast     #27                 // class java/util/List
     685: nop
     686: nop
     687: aload         19
     689: swap
     690: invokeinterface #174,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     695: pop
     696: goto          344
     699: aload         14
     701: checkcast     #27                 // class java/util/List
     704: nop
     705: checkcast     #33                 // class java/lang/Iterable
     708: astore        11
     710: nop
     711: iconst_0
     712: istore        12
     714: aload         11
     716: astore        13
     718: new           #136                // class java/util/ArrayList
     721: dup
     722: invokespecial #178                // Method java/util/ArrayList."<init>":()V
     725: checkcast     #145                // class java/util/Collection
     728: astore        14
     730: iconst_0
     731: istore        15
     733: aload         13
     735: invokeinterface #146,  1          // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     740: astore        16
     742: aload         16
     744: invokeinterface #54,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     749: ifeq          806
     752: aload         16
     754: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     759: astore        17
     761: aload         17
     763: checkcast     #27                 // class java/util/List
     766: astore        18
     768: iconst_0
     769: istore        20
     771: aload         18
     773: checkcast     #145                // class java/util/Collection
     776: invokeinterface #185,  1          // InterfaceMethod java/util/Collection.isEmpty:()Z
     781: ifne          788
     784: iconst_1
     785: goto          789
     788: iconst_0
     789: nop
     790: ifeq          742
     793: aload         14
     795: aload         17
     797: invokeinterface #174,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     802: pop
     803: goto          742
     806: aload         14
     808: checkcast     #27                 // class java/util/List
     811: nop
     812: nop
     813: aload         37
     815: swap
     816: invokeinterface #174,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     821: pop
     822: goto          63
     825: aload         5
     827: checkcast     #27                 // class java/util/List
     830: nop
     831: areturn
}


package main.kotlin2023

import kotlin.math.pow

class Day004 {

    fun part1(lines: List<String>): Int {
        val objects = lines.map { line ->
            line.dropWhile { it != ':' }
                .split('|')
                .map { subString ->
                    subString.split(' ')
                        .filter { it.isNotEmpty() && it.all(Character::isDigit) }
                        .map(String::toInt)
                }
        }

        val sumOf = objects.map { it[0].intersect(it[1]).size }
            .filter { !it.equals(0) }
            .sumOf { 2.0.pow(it - 1) }.toInt()

        return sumOf
    }
    fun part2(lines: List<String>): Int {
        data class Card(val winningNumbers: List<Int>, val ourNumbers: List<Int>)
        return lines.map { line ->
            val (_, winningNumbersText, ourNumbersText) = line.split(":", " | ")
            val winningNumbers = winningNumbersText.chunked(3).map { it.trim().toInt() }
            val ourNumbers = ourNumbersText.chunked(3).map { it.trim().toInt() }
            val count = winningNumbers.count { it in ourNumbers }
            Card(winningNumbers, ourNumbers)to count
        }.let { pairs ->
            val countByCard = MutableList(pairs.size) { 1 }
            pairs.mapIndexed { index, (_, count) ->
                (1..count).forEach {
                    countByCard[index + it] += countByCard[index]
                }
            }
            countByCard
        }
            .onEach(::println)
            .sum()
    }
}

Compiled from "Day004.kt"
public final class main.kotlin2023.Day004$part2$Card {
  private final java.util.List<java.lang.Integer> winningNumbers;

  private final java.util.List<java.lang.Integer> ourNumbers;

  public main.kotlin2023.Day004$part2$Card(java.util.List<java.lang.Integer>, java.util.List<java.lang.Integer>);
    Code:
       0: aload_1
       1: ldc           #9                  // String winningNumbers
       3: invokestatic  #15                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: aload_2
       7: ldc           #17                 // String ourNumbers
       9: invokestatic  #15                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
      12: aload_0
      13: invokespecial #20                 // Method java/lang/Object."<init>":()V
      16: aload_0
      17: aload_1
      18: putfield      #23                 // Field winningNumbers:Ljava/util/List;
      21: aload_0
      22: aload_2
      23: putfield      #25                 // Field ourNumbers:Ljava/util/List;
      26: return

  public final java.util.List<java.lang.Integer> getWinningNumbers();
    Code:
       0: aload_0
       1: getfield      #23                 // Field winningNumbers:Ljava/util/List;
       4: areturn

  public final java.util.List<java.lang.Integer> getOurNumbers();
    Code:
       0: aload_0
       1: getfield      #25                 // Field ourNumbers:Ljava/util/List;
       4: areturn

  public final java.util.List<java.lang.Integer> component1();
    Code:
       0: aload_0
       1: getfield      #23                 // Field winningNumbers:Ljava/util/List;
       4: areturn

  public final java.util.List<java.lang.Integer> component2();
    Code:
       0: aload_0
       1: getfield      #25                 // Field ourNumbers:Ljava/util/List;
       4: areturn

  public final main.kotlin2023.Day004$part2$Card copy(java.util.List<java.lang.Integer>, java.util.List<java.lang.Integer>);
    Code:
       0: aload_1
       1: ldc           #9                  // String winningNumbers
       3: invokestatic  #15                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: aload_2
       7: ldc           #17                 // String ourNumbers
       9: invokestatic  #15                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
      12: new           #2                  // class main/kotlin2023/Day004$part2$Card
      15: dup
      16: aload_1
      17: aload_2
      18: invokespecial #38                 // Method "<init>":(Ljava/util/List;Ljava/util/List;)V
      21: areturn

  public static main.kotlin2023.Day004$part2$Card copy$default(main.kotlin2023.Day004$part2$Card, java.util.List, java.util.List, int, java.lang.Object);
    Code:
       0: iload_3
       1: iconst_1
       2: iand
       3: ifeq          11
       6: aload_0
       7: getfield      #23                 // Field winningNumbers:Ljava/util/List;
      10: astore_1
      11: iload_3
      12: iconst_2
      13: iand
      14: ifeq          22
      17: aload_0
      18: getfield      #25                 // Field ourNumbers:Ljava/util/List;
      21: astore_2
      22: aload_0
      23: aload_1
      24: aload_2
      25: invokevirtual #42                 // Method copy:(Ljava/util/List;Ljava/util/List;)Lmain/kotlin2023/Day004$part2$Card;
      28: areturn

  public java.lang.String toString();
    Code:
       0: new           #46                 // class java/lang/StringBuilder
       3: dup
       4: invokespecial #47                 // Method java/lang/StringBuilder."<init>":()V
       7: ldc           #49                 // String Card(winningNumbers=
       9: invokevirtual #53                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
      12: aload_0
      13: getfield      #23                 // Field winningNumbers:Ljava/util/List;
      16: invokevirtual #56                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
      19: ldc           #58                 // String , ourNumbers=
      21: invokevirtual #53                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
      24: aload_0
      25: getfield      #25                 // Field ourNumbers:Ljava/util/List;
      28: invokevirtual #56                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
      31: bipush        41
      33: invokevirtual #61                 // Method java/lang/StringBuilder.append:(C)Ljava/lang/StringBuilder;
      36: invokevirtual #63                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;
      39: areturn

  public int hashCode();
    Code:
       0: aload_0
       1: getfield      #23                 // Field winningNumbers:Ljava/util/List;
       4: invokevirtual #67                 // Method java/lang/Object.hashCode:()I
       7: istore_1
       8: iload_1
       9: bipush        31
      11: imul
      12: aload_0
      13: getfield      #25                 // Field ourNumbers:Ljava/util/List;
      16: invokevirtual #67                 // Method java/lang/Object.hashCode:()I
      19: iadd
      20: istore_1
      21: iload_1
      22: ireturn

  public boolean equals(java.lang.Object);
    Code:
       0: aload_0
       1: aload_1
       2: if_acmpne     7
       5: iconst_1
       6: ireturn
       7: aload_1
       8: instanceof    #2                  // class main/kotlin2023/Day004$part2$Card
      11: ifne          16
      14: iconst_0
      15: ireturn
      16: aload_1
      17: checkcast     #2                  // class main/kotlin2023/Day004$part2$Card
      20: astore_2
      21: aload_0
      22: getfield      #23                 // Field winningNumbers:Ljava/util/List;
      25: aload_2
      26: getfield      #23                 // Field winningNumbers:Ljava/util/List;
      29: invokestatic  #75                 // Method kotlin/jvm/internal/Intrinsics.areEqual:(Ljava/lang/Object;Ljava/lang/Object;)Z
      32: ifne          37
      35: iconst_0
      36: ireturn
      37: aload_0
      38: getfield      #25                 // Field ourNumbers:Ljava/util/List;
      41: aload_2
      42: getfield      #25                 // Field ourNumbers:Ljava/util/List;
      45: invokestatic  #75                 // Method kotlin/jvm/internal/Intrinsics.areEqual:(Ljava/lang/Object;Ljava/lang/Object;)Z
      48: ifne          53
      51: iconst_0
      52: ireturn
      53: iconst_1
      54: ireturn
}

Compiled from "Day004.kt"
public final class main.kotlin2023.Day004 {
  public main.kotlin2023.Day004();
    Code:
       0: aload_0
       1: invokespecial #8                  // Method java/lang/Object."<init>":()V
       4: return

  public final int part1(java.util.List<java.lang.String>);
    Code:
       0: aload_1
       1: ldc           #16                 // String lines
       3: invokestatic  #22                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: aload_1
       7: checkcast     #24                 // class java/lang/Iterable
      10: astore_3
      11: iconst_0
      12: istore        4
      14: aload_3
      15: astore        5
      17: new           #26                 // class java/util/ArrayList
      20: dup
      21: aload_3
      22: bipush        10
      24: invokestatic  #32                 // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
      27: invokespecial #35                 // Method java/util/ArrayList."<init>":(I)V
      30: checkcast     #37                 // class java/util/Collection
      33: astore        6
      35: iconst_0
      36: istore        7
      38: aload         5
      40: invokeinterface #41,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
      45: astore        8
      47: aload         8
      49: invokeinterface #47,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
      54: ifeq          602
      57: aload         8
      59: invokeinterface #51,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
      64: astore        9
      66: aload         6
      68: aload         9
      70: checkcast     #53                 // class java/lang/String
      73: astore        10
      75: astore        38
      77: iconst_0
      78: istore        11
      80: aload         10
      82: astore        12
      84: iconst_0
      85: istore        13
      87: iconst_0
      88: istore        14
      90: aload         12
      92: checkcast     #55                 // class java/lang/CharSequence
      95: invokeinterface #59,  1           // InterfaceMethod java/lang/CharSequence.length:()I
     100: istore        15
     102: iload         14
     104: iload         15
     106: if_icmpge     158
     109: aload         12
     111: iload         14
     113: invokevirtual #63                 // Method java/lang/String.charAt:(I)C
     116: istore        16
     118: iconst_0
     119: istore        17
     121: iload         16
     123: bipush        58
     125: if_icmpeq     132
     128: iconst_1
     129: goto          133
     132: iconst_0
     133: ifne          152
     136: aload         12
     138: iload         14
     140: invokevirtual #67                 // Method java/lang/String.substring:(I)Ljava/lang/String;
     143: dup
     144: ldc           #69                 // String substring(...)
     146: invokestatic  #72                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullExpressionValue:(Ljava/lang/Object;Ljava/lang/String;)V
     149: goto          160
     152: iinc          14, 1
     155: goto          102
     158: ldc           #74                 // String
     160: checkcast     #55                 // class java/lang/CharSequence
     163: iconst_1
     164: newarray       char
     166: astore        12
     168: aload         12
     170: iconst_0
     171: bipush        124
     173: castore
     174: aload         12
     176: iconst_0
     177: iconst_0
     178: bipush        6
     180: aconst_null
     181: invokestatic  #80                 // Method kotlin/text/StringsKt.split$default:(Ljava/lang/CharSequence;[CZIILjava/lang/Object;)Ljava/util/List;
     184: checkcast     #24                 // class java/lang/Iterable
     187: astore        12
     189: nop
     190: iconst_0
     191: istore        13
     193: aload         12
     195: astore        14
     197: new           #26                 // class java/util/ArrayList
     200: dup
     201: aload         12
     203: bipush        10
     205: invokestatic  #32                 // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     208: invokespecial #35                 // Method java/util/ArrayList."<init>":(I)V
     211: checkcast     #37                 // class java/util/Collection
     214: astore        15
     216: iconst_0
     217: istore        16
     219: aload         14
     221: invokeinterface #41,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     226: astore        17
     228: aload         17
     230: invokeinterface #47,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     235: ifeq          583
     238: aload         17
     240: invokeinterface #51,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     245: astore        18
     247: aload         15
     249: aload         18
     251: checkcast     #53                 // class java/lang/String
     254: astore        19
     256: astore        20
     258: iconst_0
     259: istore        21
     261: aload         19
     263: checkcast     #55                 // class java/lang/CharSequence
     266: iconst_1
     267: newarray       char
     269: astore        22
     271: aload         22
     273: iconst_0
     274: bipush        32
     276: castore
     277: aload         22
     279: iconst_0
     280: iconst_0
     281: bipush        6
     283: aconst_null
     284: invokestatic  #80                 // Method kotlin/text/StringsKt.split$default:(Ljava/lang/CharSequence;[CZIILjava/lang/Object;)Ljava/util/List;
     287: checkcast     #24                 // class java/lang/Iterable
     290: astore        22
     292: nop
     293: iconst_0
     294: istore        23
     296: aload         22
     298: astore        24
     300: new           #26                 // class java/util/ArrayList
     303: dup
     304: invokespecial #81                 // Method java/util/ArrayList."<init>":()V
     307: checkcast     #37                 // class java/util/Collection
     310: astore        25
     312: iconst_0
     313: istore        26
     315: aload         24
     317: invokeinterface #41,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     322: astore        27
     324: aload         27
     326: invokeinterface #47,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     331: ifeq          460
     334: aload         27
     336: invokeinterface #51,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     341: astore        28
     343: aload         28
     345: checkcast     #53                 // class java/lang/String
     348: astore        29
     350: iconst_0
     351: istore        30
     353: aload         29
     355: checkcast     #55                 // class java/lang/CharSequence
     358: invokeinterface #59,  1           // InterfaceMethod java/lang/CharSequence.length:()I
     363: ifle          370
     366: iconst_1
     367: goto          371
     370: iconst_0
     371: ifeq          443
     374: aload         29
     376: checkcast     #55                 // class java/lang/CharSequence
     379: astore        31
     381: iconst_0
     382: istore        32
     384: iconst_0
     385: istore        33
     387: iload         33
     389: aload         31
     391: invokeinterface #59,  1           // InterfaceMethod java/lang/CharSequence.length:()I
     396: if_icmpge     435
     399: aload         31
     401: iload         33
     403: invokeinterface #82,  2           // InterfaceMethod java/lang/CharSequence.charAt:(I)C
     408: istore        34
     410: iload         34
     412: istore        35
     414: iconst_0
     415: istore        36
     417: iload         35
     419: invokestatic  #88                 // Method java/lang/Character.isDigit:(C)Z
     422: ifne          429
     425: iconst_0
     426: goto          436
     429: iinc          33, 1
     432: goto          387
     435: iconst_1
     436: ifeq          443
     439: iconst_1
     440: goto          444
     443: iconst_0
     444: ifeq          324
     447: aload         25
     449: aload         28
     451: invokeinterface #92,  2           // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     456: pop
     457: goto          324
     460: aload         25
     462: checkcast     #94                 // class java/util/List
     465: nop
     466: checkcast     #24                 // class java/lang/Iterable
     469: astore        22
     471: nop
     472: iconst_0
     473: istore        23
     475: aload         22
     477: astore        24
     479: new           #26                 // class java/util/ArrayList
     482: dup
     483: aload         22
     485: bipush        10
     487: invokestatic  #32                 // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     490: invokespecial #35                 // Method java/util/ArrayList."<init>":(I)V
     493: checkcast     #37                 // class java/util/Collection
     496: astore        25
     498: iconst_0
     499: istore        26
     501: aload         24
     503: invokeinterface #41,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     508: astore        27
     510: aload         27
     512: invokeinterface #47,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     517: ifeq          564
     520: aload         27
     522: invokeinterface #51,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     527: astore        28
     529: aload         25
     531: aload         28
     533: checkcast     #53                 // class java/lang/String
     536: astore        29
     538: astore        37
     540: iconst_0
     541: istore        30
     543: aload         29
     545: invokestatic  #100                // Method java/lang/Integer.parseInt:(Ljava/lang/String;)I
     548: nop
     549: invokestatic  #104                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     552: aload         37
     554: swap
     555: invokeinterface #92,  2           // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     560: pop
     561: goto          510
     564: aload         25
     566: checkcast     #94                 // class java/util/List
     569: nop
     570: nop
     571: aload         20
     573: swap
     574: invokeinterface #92,  2           // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     579: pop
     580: goto          228
     583: aload         15
     585: checkcast     #94                 // class java/util/List
     588: nop
     589: nop
     590: aload         38
     592: swap
     593: invokeinterface #92,  2           // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     598: pop
     599: goto          47
     602: aload         6
     604: checkcast     #94                 // class java/util/List
     607: nop
     608: astore_2
     609: aload_2
     610: checkcast     #24                 // class java/lang/Iterable
     613: astore        4
     615: iconst_0
     616: istore        5
     618: aload         4
     620: astore        6
     622: new           #26                 // class java/util/ArrayList
     625: dup
     626: aload         4
     628: bipush        10
     630: invokestatic  #32                 // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     633: invokespecial #35                 // Method java/util/ArrayList."<init>":(I)V
     636: checkcast     #37                 // class java/util/Collection
     639: astore        7
     641: iconst_0
     642: istore        8
     644: aload         6
     646: invokeinterface #41,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     651: astore        9
     653: aload         9
     655: invokeinterface #47,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     660: ifeq          731
     663: aload         9
     665: invokeinterface #51,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     670: astore        10
     672: aload         7
     674: aload         10
     676: checkcast     #94                 // class java/util/List
     679: astore        11
     681: astore        38
     683: iconst_0
     684: istore        12
     686: aload         11
     688: iconst_0
     689: invokeinterface #108,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     694: checkcast     #24                 // class java/lang/Iterable
     697: aload         11
     699: iconst_1
     700: invokeinterface #108,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     705: checkcast     #24                 // class java/lang/Iterable
     708: invokestatic  #112                // Method kotlin/collections/CollectionsKt.intersect:(Ljava/lang/Iterable;Ljava/lang/Iterable;)Ljava/util/Set;
     711: invokeinterface #117,  1          // InterfaceMethod java/util/Set.size:()I
     716: invokestatic  #104                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     719: aload         38
     721: swap
     722: invokeinterface #92,  2           // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     727: pop
     728: goto          653
     731: aload         7
     733: checkcast     #94                 // class java/util/List
     736: nop
     737: checkcast     #24                 // class java/lang/Iterable
     740: astore        4
     742: nop
     743: iconst_0
     744: istore        5
     746: aload         4
     748: astore        6
     750: new           #26                 // class java/util/ArrayList
     753: dup
     754: invokespecial #81                 // Method java/util/ArrayList."<init>":()V
     757: checkcast     #37                 // class java/util/Collection
     760: astore        7
     762: iconst_0
     763: istore        8
     765: aload         6
     767: invokeinterface #41,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     772: astore        9
     774: aload         9
     776: invokeinterface #47,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     781: ifeq          842
     784: aload         9
     786: invokeinterface #51,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     791: astore        10
     793: aload         10
     795: checkcast     #119                // class java/lang/Number
     798: invokevirtual #122                // Method java/lang/Number.intValue:()I
     801: istore        11
     803: iconst_0
     804: istore        12
     806: iload         11
     808: invokestatic  #104                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     811: iconst_0
     812: invokestatic  #104                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     815: invokevirtual #125                // Method java/lang/Object.equals:(Ljava/lang/Object;)Z
     818: ifne          825
     821: iconst_1
     822: goto          826
     825: iconst_0
     826: ifeq          774
     829: aload         7
     831: aload         10
     833: invokeinterface #92,  2           // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     838: pop
     839: goto          774
     842: aload         7
     844: checkcast     #94                 // class java/util/List
     847: nop
     848: checkcast     #24                 // class java/lang/Iterable
     851: astore        4
     853: dconst_0
     854: dstore        5
     856: aload         4
     858: invokeinterface #41,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     863: astore        7
     865: aload         7
     867: invokeinterface #47,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     872: ifeq          925
     875: aload         7
     877: invokeinterface #51,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     882: astore        8
     884: dload         5
     886: aload         8
     888: checkcast     #119                // class java/lang/Number
     891: invokevirtual #122                // Method java/lang/Number.intValue:()I
     894: istore        9
     896: dstore        38
     898: iconst_0
     899: istore        10
     901: ldc2_w        #126                // double 2.0d
     904: iload         9
     906: iconst_1
     907: isub
     908: i2d
     909: invokestatic  #133                // Method java/lang/Math.pow:(DD)D
     912: nop
     913: dstore        40
     915: dload         38
     917: dload         40
     919: dadd
     920: dstore        5
     922: goto          865
     925: dload         5
     927: d2i
     928: istore_3
     929: iload_3
     930: ireturn

  public final int part2(java.util.List<java.lang.String>);
    Code:
       0: aload_1
       1: ldc           #16                 // String lines
       3: invokestatic  #22                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: aload_1
       7: checkcast     #24                 // class java/lang/Iterable
      10: astore_2
      11: iconst_0
      12: istore_3
      13: aload_2
      14: astore        4
      16: new           #26                 // class java/util/ArrayList
      19: dup
      20: aload_2
      21: bipush        10
      23: invokestatic  #32                 // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
      26: invokespecial #35                 // Method java/util/ArrayList."<init>":(I)V
      29: checkcast     #37                 // class java/util/Collection
      32: astore        5
      34: iconst_0
      35: istore        6
      37: aload         4
      39: invokeinterface #41,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
      44: astore        7
      46: aload         7
      48: invokeinterface #47,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
      53: ifeq          531
      56: aload         7
      58: invokeinterface #51,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
      63: astore        8
      65: aload         5
      67: aload         8
      69: checkcast     #53                 // class java/lang/String
      72: astore        9
      74: astore        27
      76: iconst_0
      77: istore        10
      79: aload         9
      81: checkcast     #55                 // class java/lang/CharSequence
      84: iconst_2
      85: anewarray     #53                 // class java/lang/String
      88: astore        11
      90: aload         11
      92: iconst_0
      93: ldc           #176                // String :
      95: aastore
      96: aload         11
      98: iconst_1
      99: ldc           #178                // String  |
     101: aastore
     102: aload         11
     104: iconst_0
     105: iconst_0
     106: bipush        6
     108: aconst_null
     109: invokestatic  #181                // Method kotlin/text/StringsKt.split$default:(Ljava/lang/CharSequence;[Ljava/lang/String;ZIILjava/lang/Object;)Ljava/util/List;
     112: astore        12
     114: aload         12
     116: iconst_1
     117: invokeinterface #108,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     122: checkcast     #53                 // class java/lang/String
     125: astore        11
     127: aload         12
     129: iconst_2
     130: invokeinterface #108,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     135: checkcast     #53                 // class java/lang/String
     138: astore        13
     140: aload         11
     142: checkcast     #55                 // class java/lang/CharSequence
     145: iconst_3
     146: invokestatic  #185                // Method kotlin/text/StringsKt.chunked:(Ljava/lang/CharSequence;I)Ljava/util/List;
     149: checkcast     #24                 // class java/lang/Iterable
     152: astore        14
     154: iconst_0
     155: istore        15
     157: aload         14
     159: astore        16
     161: new           #26                 // class java/util/ArrayList
     164: dup
     165: aload         14
     167: bipush        10
     169: invokestatic  #32                 // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     172: invokespecial #35                 // Method java/util/ArrayList."<init>":(I)V
     175: checkcast     #37                 // class java/util/Collection
     178: astore        17
     180: iconst_0
     181: istore        18
     183: aload         16
     185: invokeinterface #41,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     190: astore        19
     192: aload         19
     194: invokeinterface #47,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     199: ifeq          256
     202: aload         19
     204: invokeinterface #51,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     209: astore        20
     211: aload         17
     213: aload         20
     215: checkcast     #53                 // class java/lang/String
     218: astore        21
     220: astore        22
     222: iconst_0
     223: istore        23
     225: nop
     226: aload         21
     228: checkcast     #55                 // class java/lang/CharSequence
     231: invokestatic  #189                // Method kotlin/text/StringsKt.trim:(Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
     234: invokevirtual #193                // Method java/lang/Object.toString:()Ljava/lang/String;
     237: invokestatic  #100                // Method java/lang/Integer.parseInt:(Ljava/lang/String;)I
     240: nop
     241: invokestatic  #104                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     244: aload         22
     246: swap
     247: invokeinterface #92,  2           // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     252: pop
     253: goto          192
     256: aload         17
     258: checkcast     #94                 // class java/util/List
     261: nop
     262: astore        24
     264: aload         13
     266: checkcast     #55                 // class java/lang/CharSequence
     269: iconst_3
     270: invokestatic  #185                // Method kotlin/text/StringsKt.chunked:(Ljava/lang/CharSequence;I)Ljava/util/List;
     273: checkcast     #24                 // class java/lang/Iterable
     276: astore        15
     278: iconst_0
     279: istore        16
     281: aload         15
     283: astore        17
     285: new           #26                 // class java/util/ArrayList
     288: dup
     289: aload         15
     291: bipush        10
     293: invokestatic  #32                 // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     296: invokespecial #35                 // Method java/util/ArrayList."<init>":(I)V
     299: checkcast     #37                 // class java/util/Collection
     302: astore        18
     304: iconst_0
     305: istore        19
     307: aload         17
     309: invokeinterface #41,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     314: astore        20
     316: aload         20
     318: invokeinterface #47,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     323: ifeq          380
     326: aload         20
     328: invokeinterface #51,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     333: astore        21
     335: aload         18
     337: aload         21
     339: checkcast     #53                 // class java/lang/String
     342: astore        23
     344: astore        22
     346: iconst_0
     347: istore        25
     349: nop
     350: aload         23
     352: checkcast     #55                 // class java/lang/CharSequence
     355: invokestatic  #189                // Method kotlin/text/StringsKt.trim:(Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
     358: invokevirtual #193                // Method java/lang/Object.toString:()Ljava/lang/String;
     361: invokestatic  #100                // Method java/lang/Integer.parseInt:(Ljava/lang/String;)I
     364: nop
     365: invokestatic  #104                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     368: aload         22
     370: swap
     371: invokeinterface #92,  2           // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     376: pop
     377: goto          316
     380: aload         18
     382: checkcast     #94                 // class java/util/List
     385: nop
     386: astore        14
     388: aload         24
     390: checkcast     #24                 // class java/lang/Iterable
     393: astore        16
     395: iconst_0
     396: istore        17
     398: aload         16
     400: instanceof    #37                 // class java/util/Collection
     403: ifeq          423
     406: aload         16
     408: checkcast     #37                 // class java/util/Collection
     411: invokeinterface #196,  1          // InterfaceMethod java/util/Collection.isEmpty:()Z
     416: ifeq          423
     419: iconst_0
     420: goto          498
     423: iconst_0
     424: istore        18
     426: aload         16
     428: invokeinterface #41,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     433: astore        19
     435: aload         19
     437: invokeinterface #47,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     442: ifeq          496
     445: aload         19
     447: invokeinterface #51,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     452: astore        20
     454: aload         20
     456: checkcast     #119                // class java/lang/Number
     459: invokevirtual #122                // Method java/lang/Number.intValue:()I
     462: istore        21
     464: iconst_0
     465: istore        23
     467: aload         14
     469: iload         21
     471: invokestatic  #104                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     474: invokeinterface #199,  2          // InterfaceMethod java/util/List.contains:(Ljava/lang/Object;)Z
     479: ifeq          435
     482: iinc          18, 1
     485: iload         18
     487: ifge          435
     490: invokestatic  #202                // Method kotlin/collections/CollectionsKt.throwCountOverflow:()V
     493: goto          435
     496: iload         18
     498: istore        15
     500: new           #204                // class main/kotlin2023/Day004$part2$Card
     503: dup
     504: aload         24
     506: aload         14
     508: invokespecial #207                // Method main/kotlin2023/Day004$part2$Card."<init>":(Ljava/util/List;Ljava/util/List;)V
     511: iload         15
     513: invokestatic  #104                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     516: invokestatic  #213                // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
     519: aload         27
     521: swap
     522: invokeinterface #92,  2           // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     527: pop
     528: goto          46
     531: aload         5
     533: checkcast     #94                 // class java/util/List
     536: nop
     537: astore_3
     538: iconst_0
     539: istore        4
     541: aload_3
     542: invokeinterface #214,  1          // InterfaceMethod java/util/List.size:()I
     547: istore        5
     549: new           #26                 // class java/util/ArrayList
     552: dup
     553: iload         5
     555: invokespecial #35                 // Method java/util/ArrayList."<init>":(I)V
     558: astore        6
     560: iconst_0
     561: istore        7
     563: iload         7
     565: iload         5
     567: if_icmpge     602
     570: iload         7
     572: istore        8
     574: aload         6
     576: iload         8
     578: istore        9
     580: astore        10
     582: iconst_0
     583: istore        11
     585: iconst_1
     586: invokestatic  #104                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     589: aload         10
     591: swap
     592: invokevirtual #215                // Method java/util/ArrayList.add:(Ljava/lang/Object;)Z
     595: pop
     596: iinc          7, 1
     599: goto          563
     602: aload         6
     604: checkcast     #94                 // class java/util/List
     607: astore        12
     609: aload_3
     610: checkcast     #24                 // class java/lang/Iterable
     613: astore        5
     615: iconst_0
     616: istore        6
     618: aload         5
     620: astore        7
     622: new           #26                 // class java/util/ArrayList
     625: dup
     626: aload         5
     628: bipush        10
     630: invokestatic  #32                 // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     633: invokespecial #35                 // Method java/util/ArrayList."<init>":(I)V
     636: checkcast     #37                 // class java/util/Collection
     639: astore        8
     641: iconst_0
     642: istore        9
     644: iconst_0
     645: istore        11
     647: aload         7
     649: invokeinterface #41,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     654: astore        13
     656: aload         13
     658: invokeinterface #47,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     663: ifeq          847
     666: aload         13
     668: invokeinterface #51,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     673: astore        14
     675: aload         8
     677: iload         11
     679: iinc          11, 1
     682: istore        15
     684: iload         15
     686: ifge          692
     689: invokestatic  #218                // Method kotlin/collections/CollectionsKt.throwIndexOverflow:()V
     692: iload         15
     694: aload         14
     696: checkcast     #220                // class kotlin/Pair
     699: astore        16
     701: istore        17
     703: astore        10
     705: iconst_0
     706: istore        18
     708: aload         16
     710: invokevirtual #223                // Method kotlin/Pair.component2:()Ljava/lang/Object;
     713: checkcast     #119                // class java/lang/Number
     716: invokevirtual #122                // Method java/lang/Number.intValue:()I
     719: istore        19
     721: new           #225                // class kotlin/ranges/IntRange
     724: dup
     725: iconst_1
     726: iload         19
     728: invokespecial #228                // Method kotlin/ranges/IntRange."<init>":(II)V
     731: checkcast     #24                 // class java/lang/Iterable
     734: astore        20
     736: iconst_0
     737: istore        21
     739: aload         20
     741: invokeinterface #41,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     746: astore        22
     748: aload         22
     750: invokeinterface #47,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     755: ifeq          831
     758: aload         22
     760: checkcast     #230                // class kotlin/collections/IntIterator
     763: invokevirtual #233                // Method kotlin/collections/IntIterator.nextInt:()I
     766: istore        23
     768: iload         23
     770: istore        24
     772: iconst_0
     773: istore        25
     775: iload         17
     777: iload         24
     779: iadd
     780: istore        26
     782: aload         12
     784: iload         26
     786: aload         12
     788: iload         26
     790: invokeinterface #108,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     795: checkcast     #119                // class java/lang/Number
     798: invokevirtual #122                // Method java/lang/Number.intValue:()I
     801: aload         12
     803: iload         17
     805: invokeinterface #108,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     810: checkcast     #119                // class java/lang/Number
     813: invokevirtual #122                // Method java/lang/Number.intValue:()I
     816: iadd
     817: invokestatic  #104                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     820: invokeinterface #237,  3          // InterfaceMethod java/util/List.set:(ILjava/lang/Object;)Ljava/lang/Object;
     825: pop
     826: nop
     827: nop
     828: goto          748
     831: nop
     832: nop
     833: aload         10
     835: getstatic     #243                // Field kotlin/Unit.INSTANCE:Lkotlin/Unit;
     838: invokeinterface #92,  2           // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     843: pop
     844: goto          656
     847: aload         8
     849: checkcast     #94                 // class java/util/List
     852: nop
     853: pop
     854: aload         12
     856: checkcast     #24                 // class java/lang/Iterable
     859: astore_2
     860: nop
     861: iconst_0
     862: istore_3
     863: aload_2
     864: astore        4
     866: aload         4
     868: astore        5
     870: iconst_0
     871: istore        6
     873: aload         5
     875: invokeinterface #41,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     880: astore        7
     882: aload         7
     884: invokeinterface #47,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     889: ifeq          927
     892: aload         7
     894: invokeinterface #51,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     899: astore        8
     901: aload         8
     903: checkcast     #119                // class java/lang/Number
     906: invokevirtual #122                // Method java/lang/Number.intValue:()I
     909: istore        9
     911: iconst_0
     912: istore        10
     914: getstatic     #249                // Field java/lang/System.out:Ljava/io/PrintStream;
     917: iload         9
     919: invokevirtual #254                // Method java/io/PrintStream.println:(I)V
     922: nop
     923: nop
     924: goto          882
     927: aload         4
     929: nop
     930: invokestatic  #258                // Method kotlin/collections/CollectionsKt.sumOfInt:(Ljava/lang/Iterable;)I
     933: ireturn
}