fun testForBreak1(ss: List<String>) {
  { // BLOCK
    val <iterator>: Iterator<String> = ss.iterator()
    while (<iterator>.hasNext()) { // BLOCK
      val s: String = <iterator>.next()
      break
    }
  }
}

fun testForBreak2(ss: List<String>) {
  { // BLOCK
    val <iterator>: Iterator<String> = ss.iterator()
    OUTER@ while (<iterator>.hasNext()) { // BLOCK
      val s1: String = <iterator>.next()
      { // BLOCK
        { // BLOCK
          val <iterator>: Iterator<String> = ss.iterator()
          INNER@ while (<iterator>.hasNext()) { // BLOCK
            val s2: String = <iterator>.next()
            { // BLOCK
              break@OUTER
              break@INNER
              break@INNER
            }
          }
        }
        break@OUTER
      }
    }
  }
}

fun testForContinue1(ss: List<String>) {
  { // BLOCK
    val <iterator>: Iterator<String> = ss.iterator()
    while (<iterator>.hasNext()) { // BLOCK
      val s: String = <iterator>.next()
      continue
    }
  }
}

fun testForContinue2(ss: List<String>) {
  { // BLOCK
    val <iterator>: Iterator<String> = ss.iterator()
    OUTER@ while (<iterator>.hasNext()) { // BLOCK
      val s1: String = <iterator>.next()
      { // BLOCK
        { // BLOCK
          val <iterator>: Iterator<String> = ss.iterator()
          INNER@ while (<iterator>.hasNext()) { // BLOCK
            val s2: String = <iterator>.next()
            { // BLOCK
              continue@OUTER
              continue@INNER
              continue@INNER
            }
          }
        }
        continue@OUTER
      }
    }
  }
}
