/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 8 ĠÃ ģ lan ĠCr ÃŃ sto ffer Ċ Ġ* Ċ Ġ* ĠPermission Ġis Ġhereby Ġgranted , Ġfree Ġof Ġcharge , Ġto Ġany Ġperson Ġobtaining Ġa Ġcopy Ċ Ġ* Ġof Ġthis Ġsoftware Ġand Ġassociated Ġdocumentation Ġfiles Ġ( the Ġ" Software "), Ġto Ġdeal Ċ Ġ* Ġin Ġthe ĠSoftware Ġwithout Ġrestriction , Ġincluding Ġwithout Ġlimitation Ġthe Ġrights Ċ Ġ* Ġto Ġuse , Ġcopy , Ġmodify , Ġmerge , Ġpublish , Ġdistribute , Ġsublicense , Ġand Ġ/ Ġor Ġsell Ċ Ġ* Ġcopies Ġof Ġthe ĠSoftware , Ġand Ġto Ġpermit Ġpersons Ġto Ġwhom Ġthe ĠSoftware Ġis Ċ Ġ* Ġfurnished Ġto Ġdo Ġso , Ġsubject Ġto Ġthe Ġfollowing Ġconditions : Ċ Ġ* Ċ Ġ* ĠThe Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ġincluded Ġin Ċ Ġ* Ġall Ġcopies Ġor Ġsubstantial Ġportions Ġof Ġthe ĠSoftware . Ċ Ġ* Ċ Ġ* ĠTHE ĠSOFTWARE ĠIS ĠPROVIDED Ġ" AS ĠIS ", ĠWITHOUT ĠWARRANTY ĠOF ĠANY ĠKIND , ĠEXPRESS ĠOR Ċ Ġ* ĠIMPLIED , ĠINCLUDING ĠBUT ĠNOT ĠLIMITED ĠTO ĠTHE ĠWARRANTIES ĠOF ĠMERCHANTABILITY , Ċ Ġ* ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠAND ĠNONINFRINGEMENT . ĠIN ĠNO ĠEVENT ĠSHALL ĠTHE Ċ Ġ* ĠAUTHORS ĠOR ĠCOPYRIGHT ĠHOLDERS ĠBE ĠLIABLE ĠFOR ĠANY ĠCLAIM , ĠDAMAGES ĠOR ĠOTHER Ċ Ġ* ĠLIABILITY , ĠWHETHER ĠIN ĠAN ĠACTION ĠOF ĠCONTRACT , ĠTORT ĠOR ĠOTHERWISE , ĠARISING ĠFROM , Ċ Ġ* ĠOUT ĠOF ĠOR ĠIN ĠCONNECTION ĠWITH ĠTHE ĠSOFTWARE ĠOR ĠTHE ĠUSE ĠOR ĠOTHER ĠDEALINGS ĠIN Ċ Ġ* ĠTHE ĠSOFTWARE . Ċ Ġ*/ Ċ Ċ package Ġsig aa . ac rist offers . me . sig a agr ades Ċ Ċ fun Ġ< T > Ġtry OrDefault ( defaultValue : ĠT , Ġf : Ġ() Ġ-> ĠT ): ĠT Ġ{ ĊĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġf () ĊĠĠĠ Ġ} Ġcatch Ġ(_ : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠ ĠdefaultValue ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġ< T , ĠU > ĠCollection < T >. zip By ( B : ĠCollection < T >, Ġfilter : Ġ( E : ĠT ) Ġ-> ĠU ): ĠCollection < Pair < T , ĠT >> Ġ{ ĊĠĠĠ Ġreturn Ġthis . map NotNull Ġ{ Ġa Ġ-> ĊĠĠĠĠĠĠĠ Ġval Ġsecond Ġ= ĠB . first OrNull Ġ{ Ġb Ġ-> Ġfilter ( b ) Ġ== Ġfilter ( a ) Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( second Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair ( a , Ġsecond ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġ< T , ĠR > ĠCollection < Pair < T , ĠT >> . compare Pair With ( comparator : Ġ( a : ĠT , Ġb : ĠT ) Ġ-> ĠR ): ĠCollection < R > Ġ{ ĊĠĠĠ Ġreturn Ġthis . map Ġ{ Ġcomparator ( it . first , Ġit . second ) Ġ} Ċ } Ċ