package Ġit . uni bo . ac ding net . prot el is . util Ċ Ċ import Ġorg . prot el is . lang . datatype . Tuple Ċ import Ġorg . prot el is . lang . datatype . impl . Array Tuple Impl Ċ import Ġutil . time . Time Ċ import Ġutil . time . TimeUnit Ċ import Ġjava . math . Round ingMode Ċ Ċ object ĠUtils Ġ{ ĊĊĠĠĠ Ġ@ Jvm Over loads ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġround To Decimal ( value : ĠDouble , ĠnumOf Decimal : ĠInt Ġ= Ġ 1 ) Ġ= Ġvalue . to BigDecimal () ĊĠĠĠĠĠĠĠ Ġ. set Scale ( num Of Decimal , ĠRound ingMode . HALF _ E VEN ). toDouble () ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġdistinct By UID ( tuple : ĠTuple ): ĠTuple Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġret : ĠTuple Ġ= ĠArray Tuple Impl () ĊĠĠĠĠĠĠĠ Ġtuple . distinct By Ġ{ Ġ( it Ġas ĠArray Tuple Impl )[ 0 ] Ġ}. forEach Ġ{ Ġret Ġ= Ġret . append ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġret ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġmax Time ( t 1 : ĠTime , Ġt 2 : ĠTime ) Ġ= Ġif Ġ( t 1 . is After ( t 2 )) Ġt 1 Ġelse Ġt 2 ĊĊĠĠĠ Ġfun ĠTime . max ( t 2 : ĠTime ) Ġ= Ġif Ġ( is After ( t 2 )) Ġthis Ġelse Ġt 2 ĊĊĠĠĠ Ġfun Ġprint Time ( t : ĠTime , Ġt U : ĠTimeUnit ) Ġ= ĠUtils . round To Decimal ( t . getAs ( t U ), Ġ 2 ). toString () Ċ } Ċ