// ĠWITH _ RUNTIME Ċ // ĠWITH _ COR OUT IN ES Ċ import Ġkotlin . coroutines .* Ċ Ċ class ĠController Ġ{ ĊĠĠĠ Ġsuspend Ġfun Ġsuspend Here (): ĠUnit Ġ= ĠCor outine Intr insics . suspend Coroutine Or Return Ġ{ Ġx Ġ-> ĊĠĠĠĠĠĠĠ Ġx . resume ( Unit ) ĊĠĠĠĠĠĠĠ ĠCor outine Intr insics . SUS PEN DED ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġbuilder ( c : Ġsuspend ĠController . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġc . start Coroutine ( Controller (), ĠEmpty Continuation ) Ċ } Ċ Ċ fun Ġbox (): ĠString Ġ{ ĊĠĠĠ Ġbuilder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġx Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġsuspend Here () ĊĠĠĠĠĠĠĠ Ġval Ġy : ĠBoolean Ġ= Ġx ĊĠĠĠĠĠĠĠ Ġif Ġ(! y ) Ġthrow ĠIllegalStateException (" fail Ġ 1 ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġbuilder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġx Ġ= Ġ' 1 ' ĊĠĠĠĠĠĠĠ Ġsuspend Here () ĊĊĠĠĠĠĠĠĠ Ġval Ġy : ĠChar Ġ= Ġx ĊĠĠĠĠĠĠĠ Ġif Ġ( y Ġ!= Ġ' 1 ') Ġthrow ĠIllegalStateException (" fail Ġ 2 ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġbuilder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġx : ĠByte Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġsuspend Here () ĊĊĠĠĠĠĠĠĠ Ġval Ġy : ĠByte Ġ= Ġx ĊĠĠĠĠĠĠĠ Ġif Ġ( y Ġ!= Ġ 1 . to Byte ()) Ġthrow ĠIllegalStateException (" fail Ġ 3 ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġbuilder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġx : ĠShort Ġ= Ġ 1 ĊĊĠĠĠĠĠĠĠ Ġsuspend Here () ĊĊĠĠĠĠĠĠĠ Ġval Ġy : ĠShort Ġ= Ġx ĊĠĠĠĠĠĠĠ Ġif Ġ( y Ġ!= Ġ 1 . to Short ()) Ġthrow ĠIllegalStateException (" fail Ġ 4 ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġbuilder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġx : ĠInt Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġsuspend Here () ĊĊĠĠĠĠĠĠĠ Ġval Ġy : ĠInt Ġ= Ġx ĊĠĠĠĠĠĠĠ Ġif Ġ( y Ġ!= Ġ 1 ) Ġthrow ĠIllegalStateException (" fail Ġ 5 ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġ" OK " Ċ } Ċ