/* Ċ Ġ* ĠCopyright Ġ 2 0 1 5 - 2 0 2 0 Ġthe Ġoriginal Ġauthor Ġor Ġauthors . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġio . r socket . kotlin . internal Ċ Ċ internal Ġactual Ġclass ĠMutable Value < V Ġ: ĠAny > Ġactual Ġconstructor ( initial : ĠV ) Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġ_ value Ġ= Ġinitial ĊĠĠĠ Ġactual Ġval Ġvalue : ĠV Ġget () Ġ= Ġ_ value ĊĠĠĠ Ġactual Ġval Ġupdate : Ġ( V ) Ġ-> ĠUnit Ġ= Ġ{ Ġ_ value Ġ= Ġit Ġ} Ċ } Ċ Ċ internal Ġactual Ġclass ĠValue Store < V Ġ: ĠAny > Ġactual Ġconstructor ( size : ĠInt , Ġcapacity : ĠInt ) Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġ_ size Ġ= Ġsize ĊĠĠĠ Ġprivate Ġval Ġkeys : ĠInt Array Ġ= ĠInt Array ( capacity ) ĊĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġprivate Ġval Ġvalues : ĠArray < V ?> Ġ= ĠarrayOf Null s < Any ? >( capacity ) Ġas ĠArray < V ?> ĊĊĠĠĠ Ġactual Ġval Ġsize : ĠInt Ġget () Ġ= Ġ_ size ĊĊĠĠĠ Ġactual Ġfun Ġkey ( index : ĠInt ): ĠInt Ġ= Ġkeys [ index ] ĊĊĠĠĠ Ġactual Ġfun Ġvalue ( index : ĠInt ): ĠV ? Ġ= Ġvalues [ index ] ĊĊĠĠĠ Ġactual Ġfun Ġset Key ( index : ĠInt , Ġkey : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġkeys [ index ] Ġ= Ġkey ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġactual Ġfun ĠsetValue ( index : ĠInt , Ġvalue : ĠV ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġvalues [ index ] Ġ= Ġvalue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġactual Ġfun Ġincrement Size (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ size Ġ+= Ġ 1 ĊĠĠĠĠĠĠĠ Ġreturn Ġ_ size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġactual Ġfun Ġdecrement Size (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ size Ġ-= Ġ 1 ĊĠĠĠĠĠĠĠ Ġreturn Ġ_ size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġactual Ġfun Ġclear Size () Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ size Ġ= Ġ 0 ĊĠĠĠ Ġ} Ċ } Ċ