package Ġcom . world turn er . util Ċ Ċ import Ġkotlin . reflect . K Mutable Property 0 Ċ Ċ inline Ġfun Ġ< T > ĠK Mutable Property 0 < T ?> . with Value ( ĊĠĠĠ Ġassign Value : ĠT ?, ĊĠĠĠ Ġaction : Ġ() Ġ-> ĠUnit Ċ ) Ġ{ ĊĠĠĠ Ġval Ġsaved Value Ġ= Ġthis . get () ĊĠĠĠ Ġthis . set ( assign Value ) ĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġaction () ĊĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . set ( saved Value ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġ< T > ĠK Mutable Property 0 < T ?> . get And Clear (): ĠT ? Ġ{ ĊĠĠĠ Ġval Ġvalue Ġ= Ġthis . get () ĊĠĠĠ Ġthis . set ( null ) ĊĠĠĠ Ġreturn Ġvalue Ċ } Ċ