package Ġme . j ason 5 lee . k tp ost . common ĊĊ Ċ import Ġme . j ason 5 lee . res uk t . Result Ċ import Ġjava . util .* Ċ Ċ private Ġval Ġbase 6 4 Decoder Ġ= ĠBase 6 4 . getUrl Decoder () Ċ private Ġval Ġbase 6 4 Encoder Ġ= ĠBase 6 4 . getUrl Encoder (). without Padding () Ċ Ċ fun Ġparse Id ( s : ĠString ): ĠResult < Long , ĠString > Ġ{ ĊĠ Ġval Ġbytes Ġ= Ġtry Ġ{ ĊĠĠĠ Ġbase 6 4 Decoder . decode ( s ) ĊĠ Ġ} Ġcatch Ġ( e : ĠIllegalArgumentException ) Ġ{ ĊĠĠĠ Ġreturn ĠResult . failure ( e . toString ()) ĊĠ Ġ} ĊĊĠ Ġif Ġ( bytes . size Ġ!= Ġ 8 ) Ġ{ ĊĠĠĠ ĠResult . failure (" wrong Ġlength ") ĊĠ Ġ} ĊĊĠ Ġvar Ġvalue : ĠLong Ġ= Ġ 0 ĊĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġ 8 ) Ġ{ ĊĠĠĠ Ġvalue Ġ= Ġvalue Ġor Ġ(( bytes [ i ]. to Long () Ġand Ġ 0 xFF ) Ġshl Ġ( i Ġ* Ġ 8 )) ĊĠ Ġ} ĊĠ Ġreturn ĠResult . success ( value ) Ċ } Ċ Ċ fun Ġformat Id ( s : ĠLong ): ĠString Ġ{ ĊĠ Ġval Ġbytes Ġ= ĠByteArray ( 8 ) ĊĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġ 8 ) Ġ{ ĊĠĠĠ Ġbytes [ i ] Ġ= Ġ(( s Ġ ush r Ġ( i Ġ* Ġ 8 )) Ġand Ġ 0 xFF ). to Byte () ĊĠ Ġ} ĊĠ Ġreturn Ġbase 6 4 Encoder . encode ToString ( bytes ) Ċ } Ċ