package Ġcom . kafka . data . extensions Ċ Ċ import Ġcom . google . android . gms . tasks . Task Ċ import Ġkotlinx . coroutines . Cancellation Exception Ċ import Ġkotlinx . coroutines . suspend C ancellable Coroutine Ċ import Ġkotlin . coroutines . resume With Exception Ċ Ċ suspend Ġfun Ġ< T > ĠTask < T >. await ( onError : Ġ( Exception ) Ġ-> ĠUnit Ġ= Ġ{ Ġthrow Ġit Ġ}): ĠT ? Ġ{ ĊĠĠĠ Ġif Ġ( is Complete ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġe Ġ= Ġexception ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( e Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Canceled ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠC ancellation Exception ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Task Ġ$ this Ġwas Ġcancelled Ġnormally ." ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠonError ( e ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġsuspend C ancellable Coroutine Ġ{ Ġcont Ġ-> ĊĠĠĠĠĠĠĠ Ġadd On Complete Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġe Ġ= Ġexception ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( e Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Canceled ) Ġcont . cancel () Ġelse Ġcont . resume ( result ) Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcont . resume With Exception ( e ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ