package Ġcom . m ant ono . solo . id Ċ Ċ import Ġcom . m ant ono . py tt ip anna . transformation . Base 6 4 Ċ import Ġcom . m ant ono . solo . api . Identifier Ċ import Ġjava . nio . ByteBuffer Ċ import Ġjava . util . Arrays Ċ Ċ class ĠSnow Fl ake Id ( private Ġval Ġbytes : ĠByteArray ) Ġ: ĠIdentifier Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġas Bytes (): ĠByteArray Ġ= Ġbytes . copyOf () ĊĠĠĠ Ġoverride Ġfun Ġas String (): ĠString Ġ= ĠBase 6 4 . asString ( bytes ) ĊĠĠĠ Ġfun Ġas Long (): ĠLong Ġ= Ġbytes . to Long () ĊĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this Ġ=== Ġother ) Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġif Ġ( other Ġ! is ĠIdentifier ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġreturn Ġthis . bytes . content Equals ( other . as Bytes ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ= ĠArrays . hashCode ( bytes ) Ċ } Ċ Ċ fun ĠByteArray . to Long (): ĠLong Ċ { ĊĠĠĠ Ġval Ġbuffer Ġ= ĠByteBuffer . allocate ( 8 ) ĊĠĠĠ Ġbuffer . put ( this ) ĊĠĠĠ Ġbuffer . flip () ĊĠĠĠ Ġreturn Ġbuffer . getLong ( 0 ) Ċ }