/* Ċ Ġ* ĠCopyright Ġ 2 0 2 0 - 2 0 2 0 ĠJetBrains Ġs . r . o Ġand Ġcontributors . ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense . Ċ Ġ*/ Ċ Ċ package Ġkotlinx . uuid Ċ Ċ /** Ċ Ġ* ĠR enders ĠUUID Ġin Ġthe ĠRFC Ġformat : Ġfive Ġgroups Ġof Ġhex ade mical Ġparts Ġseparated Ġwith Ċ Ġ* Ġminus Ġcharacters Ġand Ġsur rounded Ġwith Ġcur ly Ġbrackets Ġif Ġ[ include Br ackets ] Ġis Ġ` true `, Ċ Ġ* Ġwithout Ġspaces . Ċ Ġ* Ġ`{ 1 b 3 e 4 5 6 7 - e 9 9 b - 1 3 d 3 - a 4 7 6 - 4 4 6 6 5 7 4 2 0 0 0 0 }` Ċ Ġ*/ Ċ internal Ġfun Ġformat UUID ( ĊĠĠĠ Ġtime Stamp And Version Raw : ĠLong , ĊĠĠĠ Ġclock Sequence Variant And Node Raw : ĠLong , ĊĠĠĠ Ġinclude Br ackets : ĠBoolean Ċ ): ĠString Ġ= Ġbuild String ( 3 8 ) Ġ{ ĊĠĠĠ Ġif Ġ( include Br ackets ) Ġ{ ĊĠĠĠĠĠĠĠ Ġappend ('{ ') ĊĠĠĠ Ġ} ĊĠĠĠ Ġdump Hex ( time Stamp And Version Raw Ġ ush r Ġ 3 2 , Ġ 4 , Ġthis ) ĊĠĠĠ Ġappend ('- ') ĊĠĠĠ Ġdump Hex ( time Stamp And Version Raw Ġ ush r Ġ 1 6 Ġand Ġ 0 xffff , Ġ 2 , Ġthis ) ĊĠĠĠ Ġappend ('- ') ĊĠĠĠ Ġdump Hex ( time Stamp And Version Raw Ġand Ġ 0 xffff , Ġ 2 , Ġthis ) ĊĠĠĠ Ġappend ('- ') ĊĠĠĠ Ġdump Hex ( clock Sequence Variant And Node Raw Ġshr Ġ 4 8 Ġand Ġ 0 xffff , Ġ 2 , Ġthis ) ĊĠĠĠ Ġappend ('- ') ĊĠĠĠ Ġdump Hex ( clock Sequence Variant And Node Raw Ġand Ġ 0 xffffffff ffff L , Ġ 6 , Ġthis ) ĊĠĠĠ Ġif Ġ( include Br ackets ) Ġ{ ĊĠĠĠĠĠĠĠ Ġappend (' }') ĊĠĠĠ Ġ} Ċ } Ċ Ċ internal Ġfun Ġdump Hex ( value : ĠLong , ĠnumberOf Oct ets : ĠInt , Ġout : ĠStringBuilder ) Ġ{ ĊĠĠĠ Ġrepeat ( numberOf Oct ets ) Ġ{ Ġindex Ġ-> ĊĠĠĠĠĠĠĠ Ġval Ġoct et Ġ= Ġvalue Ġ ush r Ġ(( numberOf Oct ets Ġ- Ġindex Ġ- Ġ 1 ) Ġ* Ġ 8 ) ĊĠĠĠĠĠĠĠ Ġdump Half Byte ( octet . toInt () Ġshr Ġ 4 , Ġout ) ĊĠĠĠĠĠĠĠ Ġdump Half Byte ( octet . toInt (), Ġout ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġfun Ġdump Half Byte ( value : ĠInt , Ġout : ĠStringBuilder ) Ġ{ ĊĠĠĠ Ġval Ġhalf Ġ= Ġvalue Ġand Ġ 0 x 0 f ĊĠĠĠ Ġout . append ( ĊĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhalf Ġ<= Ġ 9 Ġ-> Ġ' 0 ' Ġ+ Ġhalf ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ' a ' Ġ+ Ġhalf Ġ- Ġ 1 0 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ) Ċ } Ċ