package Ġio . h armor . msg pack Ċ Ċ import Ġio . h armor . msg pack . internal . get Ċ import Ġjava . math . BigInteger Ċ Ċ public Ġfun ĠInteger Value . to BigInteger (): ĠBigInteger Ġ= Ġif Ġ( is Negative ) ĊĠĠĠ ĠBigInteger . valueOf ( to Long ()) Ċ else ĊĠĠĠ Ġto UL ong (). let Ġ{ ĊĠĠĠĠĠĠĠ ĠBigInteger ( byte ArrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 , Ġit [ 7 ], Ġit [ 6 ], Ġit [ 5 ], Ġit [ 4 ], ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit [ 3 ], Ġit [ 2 ], Ġit [ 1 ], Ġit [ 0 ])) ĊĠĠĠ Ġ} Ċ Ċ public Ġfun ĠBigInteger . to UL ong OrNull (): ĠU Long ? Ġ= ĊĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠ Ġsign um () Ġ< Ġ 0 Ġ-> Ġnull ĊĠĠĠĠĠĠĠ Ġbit Length () Ġ> ĠU Long . SIZE _ BITS Ġ-> Ġnull ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġto ByteArray (). take Last ( 8 ). as Re versed (). fold Indexed ( 0 UL ) Ġ{ Ġindex : ĠInt , Ġacc : ĠU Long , Ġbyte : ĠByte Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġacc Ġ+ Ġ( byte . to UL ong () Ġshl Ġ( index Ġ* Ġ 8 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ public Ġfun ĠStructure Scope . int ( value : ĠBigInteger ): ĠInteger Value Ġ= Ġwhen Ġ{ ĊĠĠĠ Ġvalue . sign um () Ġ>= Ġ 0 Ġ-> ĠInteger Value . from ( value . to UL ong OrNull () Ġ?: Ġthrow ĠIllegalArgumentException ("$ value ")) ĊĠĠĠ Ġvalue . bit Length () Ġ< ĠLong . SIZE _ BITS Ġ-> ĠInteger Value . from ( value . to Long ()) ĊĠĠĠ Ġelse Ġ-> Ġthrow ĠIllegalArgumentException ("$ value ") Ċ }