package Ġcom . da im ler . mb ingress kit . implementation . network . service Ċ Ċ import Ġcom . da im ler . mb ingress kit . common . Countries Ċ import Ġcom . da im ler . mb ingress kit . common . Login User Ċ import Ġcom . da im ler . mb ingress kit . common . Profile Fields Data Ċ import Ġcom . da im ler . mb ingress kit . common . Registration User Ċ import Ġcom . da im ler . mb ingress kit . common . Registration User Agreement Updates Ċ import Ġcom . da im ler . mb ingress kit . common . Unit Preferences Ċ import Ġcom . da im ler . mb ingress kit . common . User Ċ import Ġcom . da im ler . mb ingress kit . common . User Adapt ion Values Ċ import Ġcom . da im ler . mb ingress kit . common . User Bio metric State Ċ import Ġcom . da im ler . mb ingress kit . common . User Body Height Ċ import Ġcom . da im ler . mb ingress kit . common . authentication . Authentication Type Ċ import Ġcom . da im ler . mb ingress kit . implementation . etag . ET ag Provider Ċ import Ġcom . da im ler . mb ingress kit . implementation . etag . profile Picture Ċ import Ġcom . da im ler . mb ingress kit . implementation . network . api . User Api Ċ import Ġcom . da im ler . mb ingress kit . implementation . network . error . Not Modified Error Ċ import Ġcom . da im ler . mb ingress kit . implementation . network . executor . Profile Picture Request Executor Ċ import Ġcom . da im ler . mb ingress kit . implementation . network . map Default Input Error Ċ import Ġcom . da im ler . mb ingress kit . implementation . network . map Registration Errors Ċ import Ġcom . da im ler . mb ingress kit . implementation . network . model . adapt ion values . to Api User Adapt ion Values Ċ import Ġcom . da im ler . mb ingress kit . implementation . network . model . bio metric . User Bio metric Activation State Request Ċ import Ġcom . da im ler . mb ingress kit . implementation . network . model . bio metric . User Bio metric Api State Ċ import Ġcom . da im ler . mb ingress kit . implementation . network . model . country . Country Response Ċ import Ġcom . da im ler . mb ingress kit . implementation . network . model . country . to Countries Ċ import Ġcom . da im ler . mb ingress kit . implementation . network . model . pin . Change Pin Request Ċ import Ġcom . da im ler . mb ingress kit . implementation . network . model . pin . Login UserRequest Ċ import Ġcom . da im ler . mb ingress kit . implementation . network . model . pin . Set Pin Request Ċ import Ġcom . da im ler . mb ingress kit . implementation . network . model . profile fields . Profile Fields Data Response Ċ import Ġcom . da im ler . mb ingress kit . implementation . network . model . unit preferences . to User Unit Preferences Ċ import Ġcom . da im ler . mb ingress kit . implementation . network . model . user . Api Verify UserRequest Ċ import Ġcom . da im ler . mb ingress kit . implementation . network . model . user . create . Create User Response Ċ import Ġcom . da im ler . mb ingress kit . implementation . network . model . user . create . to Create UserRequest Ċ import Ġcom . da im ler . mb ingress kit . implementation . network . model . user . fetch . User Token Response Ċ import Ġcom . da im ler . mb ingress kit . implementation . network . model . user . update . to Update UserRequest Ċ import Ġcom . da im ler . mb ingress kit . implementation . network . rop c . nonce . Nonce Provider Ċ import Ġcom . da im ler . mb ingress kit . implementation . network . rop c . nonce . login Nonce Ċ import Ġcom . da im ler . mb ingress kit . implementation . network . rop c . token provider . Login Request Executor Ċ import Ġcom . da im ler . mb ingress kit . login . UserService Ċ import Ġcom . da im ler . mb logger kit . MB Logger Kit Ċ import Ġcom . da im ler . mb network kit . common . Error Map Strategy Ċ import Ġcom . da im ler . mb network kit . header . Header Service Ċ import Ġcom . da im ler . mb network kit . networking . Request Error Ċ import Ġcom . da im ler . mb network kit . networking . ResponseError Ċ import Ġcom . da im ler . mb network kit . networking . coroutines . M appable Request Executor Ċ import Ġcom . da im ler . mb network kit . networking . coroutines . No Content Request Executor Ċ import Ġcom . da im ler . mb network kit . networking . coroutines . Request Executor Ċ import Ġcom . da im ler . mb network kit . networking . coroutines . Request Result Ċ import Ġcom . da im ler . mb network kit . networking . coroutines . dispatch Error Ċ import Ġcom . da im ler . mb network kit . networking . coroutines . dispatch Result Ċ import Ġcom . da im ler . mb network kit . task . Future Task Ċ import Ġcom . da im ler . mb network kit . task . Response Task Object Ċ import Ġcom . da im ler . mb network kit . task . Task Object Ċ import Ġkotlinx . coroutines . Coroutine Scope Ċ import Ġkotlinx . coroutines . launch Ċ import Ġokhttp 3 . MediaType Ċ import Ġokhttp 3 . RequestBody Ċ Ċ internal Ġclass ĠRet rofit UserService ( ĊĠĠĠ Ġuser Api : ĠUser Api , ĊĠĠĠ Ġprivate Ġval Ġheader Service : ĠHeader Service , ĊĠĠĠ Ġprivate Ġval Ġe Tag Provider : ĠE Tag Provider , ĊĠĠĠ Ġprivate Ġval Ġnonce Provider : ĠN once Provider , ĊĠĠĠ Ġscope : ĠCor outine Scope Ġ= ĠNetwork Coroutine Scope () Ċ ) Ġ: ĠCor outine Scope Ġby Ġscope , ĠUserService , ĠBase Ret rofit Service < User Api >( user Api , Ġscope ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġsend Tan ( ĊĠĠĠĠĠĠĠ ĠuserName : ĠString , ĊĠĠĠĠĠĠĠ Ġcountry Code : ĠString ĊĠĠĠ Ġ): ĠFuture Task < Login User , ĠResponse Error < out ĠRequest Error > ?> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnonce Ġ= Ġnew Nonce () ĊĠĠĠĠĠĠĠ Ġnonce Provider . login Nonce Ġ= Ġnonce ĊĠĠĠĠĠĠĠ Ġval Ġtask Ġ= ĠResponse Task Object < Login User >() ĊĊĠĠĠĠĠĠĠ Ġlaunch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠLogin Request Executor (). execute Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapi . send Tan ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLogin UserRequest ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġemail Or PhoneNumber Ġ= ĠuserName , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcountry Code Ġ= Ġcountry Code , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlocale Ġ= Ġheader Service . current Network Locale (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnonce Ġ= Ġnonce ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( result ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠRequest Result . Success Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlogin Response Ġ= Ġresult . body . response ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġauth Mode Ġ= Ġresult . body . auth Mode ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġauth Mode ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMB Logger Kit . i (" Backend Ġchose Ġauth Ġmode : Ġ$ it ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheader Service . update Auth Mode ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġauth Method Ġ= ĠAuthentication Type . values (). find Ġ{ Ġit . auth Mode Ġ== Ġauth Mode Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: ĠAuthentication Type . KEY CLO AK ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtask . dispatch Result ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLogin User ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogin Response . userName , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogin Response . is Email , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġauth Method ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠRequest Result . Error Ġ-> Ġtask . dispatch Error ( result . error ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtask . future Task () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsend Pin ( ĊĠĠĠĠĠĠĠ ĠuserName : ĠString , ĊĠĠĠĠĠĠĠ Ġcountry Code : ĠString ĊĠĠĠ Ġ) Ġ= Ġsend Tan ( userName , Ġcountry Code ) ĊĊĠĠĠ Ġoverride Ġfun Ġload User ( jwt Token : ĠString ): ĠFuture Task < User , ĠResponse Error < out ĠRequest Error > ?> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtask Ġ= ĠResponse Task Object < User >() ĊĠĠĠĠĠĠĠ Ġlaunch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRequest Executor < User Token Response , ĠUser >(). execute With Task ( task ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapi . fetch UserData ( jwt Token ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtask . future Task () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcreate User ( ĊĠĠĠĠĠĠĠ Ġuse Mail As Username : ĠBoolean , ĊĠĠĠĠĠĠĠ Ġuser : ĠUser ĊĠĠĠ Ġ): ĠFuture Task < Registration User , ĠResponse Error < out ĠRequest Error > ?> Ġ= ĊĠĠĠĠĠĠĠ Ġcreate User Internal ( use Mail As Username , Ġuser , Ġnull ) ĊĊĠĠĠ Ġoverride Ġfun Ġcreate User With Consent ( ĊĠĠĠĠĠĠĠ Ġuse Mail As Username : ĠBoolean , ĊĠĠĠĠĠĠĠ Ġuser : ĠUser , ĊĠĠĠĠĠĠĠ Ġconsent : ĠRegistration User Agreement Updates ĊĠĠĠ Ġ): ĠFuture Task < Registration User , ĠResponse Error < out ĠRequest Error > ?> Ġ= ĊĠĠĠĠĠĠĠ Ġcreate User Internal ( use Mail As Username , Ġuser , Ġconsent ) ĊĊĠĠĠ Ġoverride Ġfun Ġupdate User ( ĊĠĠĠĠĠĠĠ Ġjwt Token : ĠString , ĊĠĠĠĠĠĠĠ Ġuser : ĠUser ĊĠĠĠ Ġ): ĠFuture Task < User , ĠResponse Error < out ĠRequest Error > ?> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtask Ġ= ĠResponse Task Object < User >() ĊĠĠĠĠĠĠĠ Ġlaunch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRequest Executor < User Token Response , ĠUser >( getInput Error Mapping ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. execute With Task ( task ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapi . update User ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjwt Token , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser . country Code , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser . to Update UserRequest () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtask . future Task () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdelete User ( ĊĠĠĠĠĠĠĠ Ġjwt Token : ĠString , ĊĠĠĠĠĠĠĠ Ġuser : ĠUser ĊĠĠĠ Ġ): ĠFuture Task < Unit , ĠResponse Error < out ĠRequest Error > ?> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtask Ġ= ĠResponse Task Object < Unit >() ĊĊĠĠĠĠĠĠĠ Ġlaunch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNo Content Request Executor (). execute With Task ( task ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapi . delete User ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjwt Token , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser . country Code ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtask . future Task () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġupdate Profile Picture ( ĊĠĠĠĠĠĠĠ Ġjwt Token : ĠString , ĊĠĠĠĠĠĠĠ Ġbitmap ByteArray : ĠByteArray , ĊĠĠĠĠĠĠĠ Ġmedia Type : ĠString ĊĠĠĠ Ġ): ĠFuture Task < Unit , ĠResponse Error < out ĠRequest Error > ?> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtask Ġ= ĠResponse Task Object < Unit >() ĊĠĠĠĠĠĠĠ Ġlaunch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNo Content Request Executor (). execute With Task ( task ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapi . update Profile Picture ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjwt Token , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRequest Body . create ( MediaType . parse ( media Type ), Ġbitmap ByteArray ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtask . future Task () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġfetch Profile Picture Bytes ( jwt Token : ĠString ): ĠFuture Task < ByteArray , ĠResponse Error < out ĠRequest Error > ?> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtask Ġ= ĠResponse Task Object < ByteArray >() ĊĊĠĠĠĠĠĠĠ Ġlaunch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠProfile Picture Request Executor (). execute Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapi . fetch Profile Picture If Modified ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjwt Token , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe Tag Provider . profile Picture ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( result ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠRequest Result . Success Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( val Ġbody Ġ= Ġresult . body ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠProfile Picture Request Executor . Result . Picture Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe Tag Provider . profile Picture Ġ= Ġbody . e Tag ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtask . dispatch Result ( body . bytes ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠProfile Picture Request Executor . Result . Not Modified Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtask . dispatch Error ( ResponseError . request Error ( Not Modified Error ())) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠRequest Result . Error Ġ-> Ġtask . dispatch Error ( result . error ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtask . future Task () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġfetch Countries (): ĠFuture Task < Countries , ĠResponse Error < out ĠRequest Error > ?> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtask Ġ= ĠTask Object < Countries , ĠResponse Error < out ĠRequest Error > ?> () ĊĠĠĠĠĠĠĠ Ġlaunch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠM appable Request Executor < List < Country Response >, ĠCount ries > Ġ{ Ġit . to Countries () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. execute With Task ( task ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapi . fetch Countries ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheader Service . current Network Locale () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtask . future Task () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Pin ( ĊĠĠĠĠĠĠĠ Ġjwt Token : ĠString , ĊĠĠĠĠĠĠĠ Ġpin : ĠString ĊĠĠĠ Ġ): ĠFuture Task < Unit , ĠResponse Error < out ĠRequest Error > ?> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtask Ġ= ĠResponse Task Object < Unit >() ĊĠĠĠĠĠĠĠ Ġlaunch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Pin Manip ulating Executor (). execute With Task ( task ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapi . set Pin ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjwt Token , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSet Pin Request ( pin ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtask . future Task () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġchange Pin ( ĊĠĠĠĠĠĠĠ Ġjwt Token : ĠString , ĊĠĠĠĠĠĠĠ Ġcurrent Pin : ĠString , ĊĠĠĠĠĠĠĠ Ġnew Pin : ĠString ĊĠĠĠ Ġ): ĠFuture Task < Unit , ĠResponse Error < out ĠRequest Error > ?> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtask Ġ= ĠTask Object < Unit , ĠResponse Error < out ĠRequest Error > ?> () ĊĠĠĠĠĠĠĠ Ġlaunch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Pin Manip ulating Executor (). execute With Task ( task ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapi . change Pin ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjwt Token , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠChange Pin Request ( current Pin , Ġnew Pin ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtask . future Task () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdelete Pin ( ĊĠĠĠĠĠĠĠ Ġjwt Token : ĠString , ĊĠĠĠĠĠĠĠ Ġcurrent Pin : ĠString ĊĠĠĠ Ġ): ĠFuture Task < Unit , ĠResponse Error < out ĠRequest Error > ?> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtask Ġ= ĠTask Object < Unit , ĠResponse Error < out ĠRequest Error > ?> () ĊĠĠĠĠĠĠĠ Ġlaunch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Pin Manip ulating Executor (). execute With Task ( task ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapi . delete Pin ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjwt Token , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Pin ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtask . future Task () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġreset Pin ( jwt Token : ĠString ): ĠFuture Task < Unit , ĠResponse Error < out ĠRequest Error > ?> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtask Ġ= ĠTask Object < Unit , ĠResponse Error < out ĠRequest Error > ?> () ĊĠĠĠĠĠĠĠ Ġlaunch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Pin Manip ulating Executor (). execute With Task ( task ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapi . reset Pin ( jwt Token ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtask . future Task () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsend Bio metric Activation ( ĊĠĠĠĠĠĠĠ Ġjwt Token : ĠString , ĊĠĠĠĠĠĠĠ Ġcountry Code : ĠString , ĊĠĠĠĠĠĠĠ Ġstate : ĠUser Bio metric State , ĊĠĠĠĠĠĠĠ Ġcurrent Pin : ĠString ? ĊĠĠĠ Ġ): ĠFuture Task < Unit , ĠResponse Error < out ĠRequest Error > ?> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtask Ġ= ĠTask Object < Unit , ĠResponse Error < out ĠRequest Error > ?> () ĊĠĠĠĠĠĠĠ Ġlaunch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNo Content Request Executor (). execute With Task ( task ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapi . send Bio metric Activation ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjwt Token , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcountry Code , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUser Bio metric Activation State Request ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Pin . or Empty (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUser Bio metric Api State . forName ( state . name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtask . future Task () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġupdate Unit Preferences ( ĊĠĠĠĠĠĠĠ Ġjwt Token : ĠString , ĊĠĠĠĠĠĠĠ Ġunit Preferences : ĠUnit Preferences ĊĠĠĠ Ġ): ĠFuture Task < Unit , ĠResponse Error < out ĠRequest Error > ?> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtask Ġ= ĠTask Object < Unit , ĠResponse Error < out ĠRequest Error > ?> () ĊĠĠĠĠĠĠĠ Ġlaunch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNo Content Request Executor (). execute With Task ( task ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapi . update Unit Preferences ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjwt Token , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġunit Preferences . to User Unit Preferences () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtask . future Task () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġupdate Adapt ion Values ( ĊĠĠĠĠĠĠĠ Ġjwt Token : ĠString , ĊĠĠĠĠĠĠĠ Ġbody Height : ĠUser Body Height ĊĠĠĠ Ġ): ĠFuture Task < Unit , ĠResponse Error < out ĠRequest Error > ?> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġupdate Adapt ion Values ( jwt Token , ĠUser Adapt ion Values ( body Height , Ġnull )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġupdate Adapt ion Values ( ĊĠĠĠĠĠĠĠ Ġjwt Token : ĠString , ĊĠĠĠĠĠĠĠ Ġuser Adapt ion Values : ĠUser Adapt ion Values ĊĠĠĠ Ġ): ĠFuture Task < Unit , ĠResponse Error < out ĠRequest Error > ?> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtask Ġ= ĠTask Object < Unit , ĠResponse Error < out ĠRequest Error > ?> () ĊĠĠĠĠĠĠĠ Ġlaunch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNo Content Request Executor ( getInput Error Mapping ()). execute With Task ( task ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapi . update Adapt ion Values ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjwt Token , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser Adapt ion Values . to Api User Adapt ion Values () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtask . future Task () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġfetch Profile Fields ( ĊĠĠĠĠĠĠĠ Ġcountry Code : ĠString , ĊĠĠĠĠĠĠĠ Ġlocale : ĠString ? ĊĠĠĠ Ġ): ĠFuture Task < Profile Fields Data , ĠResponse Error < out ĠRequest Error > ?> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtask Ġ= ĠTask Object < Profile Fields Data , ĠResponse Error < out ĠRequest Error > ?> () ĊĠĠĠĠĠĠĠ Ġlaunch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRequest Executor < Profile Fields Data Response , ĠProfile Fields Data >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. execute With Task ( task ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapi . fetch Profile Fields ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlocale Ġ?: Ġheader Service . current Network Locale (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcountry Code ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtask . future Task () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġverify User ( ĊĠĠĠĠĠĠĠ Ġjwt Token : ĠString , ĊĠĠĠĠĠĠĠ Ġscan Reference : ĠString ĊĠĠĠ Ġ): ĠFuture Task < Unit , ĠResponse Error < out ĠRequest Error > ?> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtask Ġ= ĠTask Object < Unit , ĠResponse Error < out ĠRequest Error > ?> () ĊĠĠĠĠĠĠĠ Ġlaunch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNo Content Request Executor (). execute With Task ( task ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapi . verify User ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjwt Token , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApi Verify UserRequest ( scan Reference ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtask . future Task () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate User Internal ( ĊĠĠĠĠĠĠĠ Ġuse Mail As Username : ĠBoolean , ĊĠĠĠĠĠĠĠ Ġuser : ĠUser , ĊĠĠĠĠĠĠĠ Ġagreement Updates : ĠRegistration User Agreement Updates ? ĊĠĠĠ Ġ): ĠFuture Task < Registration User , ĠResponse Error < out ĠRequest Error > ?> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtask Ġ= ĠResponse Task Object < Registration User >() ĊĠĠĠĠĠĠĠ Ġlaunch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġerror Mapping Ġ= Ġagreement Updates ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Registration Error Mapping () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġ?: Ġget Input Error Mapping () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRequest Executor < Create User Response , ĠRegistration User >( error Mapping ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. execute With Task ( task ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnonce Ġ= Ġnew Nonce () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnonce Provider . login Nonce Ġ= Ġnonce ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapi . createUser ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser . language Code , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser . to Create UserRequest ( use Mail As Username , Ġagreement Updates ?. updates , Ġnonce ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtask . future Task () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Pin Manip ulating Executor () Ġ= ĠNo Content Request Executor ( getInput Error Mapping ()) ĊĊĠĠĠ Ġprivate Ġfun Ġget Input Error Mapping () Ġ= ĠError Map Strategy . Custom Ġ{ ĊĠĠĠĠĠĠĠ Ġmap Default Input Error ( it ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Registration Error Mapping () Ġ= ĠError Map Strategy . Custom Ġ{ ĊĠĠĠĠĠĠĠ Ġmap Registration Errors ( it ) ĊĠĠĠ Ġ} Ċ } Ċ