package Ġat . pe tr ak . hex cast ing . common . cast ing . operators . stack Ċ Ċ import Ġat . pe tr ak . hex cast ing . api . spell . Operation Result Ċ import Ġat . pe tr ak . hex cast ing . api . spell . Operator Ċ import Ġat . pe tr ak . hex cast ing . api . spell . Spell Datum Ċ import Ġat . pe tr ak . hex cast ing . api . spell . cast ing . Cast ing Context Ċ import Ġat . pe tr ak . hex cast ing . api . spell . cast ing . Spell Continuation Ċ import Ġat . pe tr ak . hex cast ing . api . spell . get Checked Ċ import Ġat . pe tr ak . hex cast ing . api . spell . mis haps . M ish ap Invalid I ota Ċ import Ġat . pe tr ak . hex cast ing . api . spell . mis haps . M ish ap Not En ough Args Ċ import Ġat . pe tr ak . hex cast ing . api . utils . as Translated Component Ċ import Ġkotlin . math . abs Ċ import Ġkotlin . math . round ToInt Ċ Ċ object ĠOp Fish er man Ġ: ĠOperator Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġoperate ( ĊĠĠĠĠĠĠĠ Ġcontinuation : ĠSpell Continuation , ĊĠĠĠĠĠĠĠ Ġstack : ĠMutable List < Spell Datum <* >>, ĊĠĠĠĠĠĠĠ Ġlocal : ĠSpell Datum <* >, ĊĠĠĠĠĠĠĠ Ġctx : ĠCast ing Context ĊĠĠĠ Ġ): ĠOperation Result Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( stack . size Ġ< Ġ 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠM ish ap Not En ough Args ( 2 , Ġstack . size ) ĊĠĠĠĠĠĠĠ Ġval Ġarg Ġ= Ġstack . get Checked < Double >( stack . last Index ) ĊĠĠĠĠĠĠĠ Ġval Ġdatum Ġ= Ġstack [ stack . last Index ] ĊĠĠĠĠĠĠĠ Ġval Ġdistance Ġ= Ġstack . size Ġ- Ġ( arg Ġ+ Ġ 1 ) Ġ// Ġbecause Ġget Checked < Int > Ġjust Ġgives Ġme Ġa Ġdouble Ġfor Ġsome Ġreason ĊĠĠĠĠĠĠĠ Ġstack . remove Last () ĊĠĠĠĠĠĠĠ Ġif Ġ( distance Ġ>= Ġ 0 Ġ&& Ġdistance Ġ< Ġstack . size Ġ&& Ġabs ( distance . round ToInt () Ġ- Ġdistance ) Ġ< Ġ 0 . 0 5 f ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfish Ġ= Ġstack [ distance . round ToInt ()] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstack . remove At ( distance . round ToInt ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstack . add ( stack . size , Ġfish ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠM ish ap Invalid I ota ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdatum , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" hex cast ing . mis hap . invalid _ value . int . between ". as Translated Component ( 1 , Ġstack . size ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn ĠOperation Result ( continu ation , Ġstack , Ġlocal , ĠlistOf ()) ĊĠĠĠ Ġ} Ċ } Ċ