package Ġcom . t ange m . commands . common . card Ċ Ċ enum Ġclass ĠF irmware Type ( val Ġraw Value : ĠString ?) Ġ{ ĊĠĠĠ ĠS dk (" d ĠSDK "), ĊĠĠĠ ĠRelease (" r "), ĊĠĠĠ ĠS prec ial ( null ); ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġfrom ( type : ĠString ): ĠF irmware Type ? Ġ= Ġvalues (). find Ġ{ Ġit . raw Value Ġ== Ġtype Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ type alias ĠCard Type Ġ= ĠF irmware Type ĊĊ Ċ /** Ċ Ġ* ĠHold s Ġinformation Ġabout Ġcard Ġfirmware Ġversion Ġincluded Ġversion Ġsaved Ġon Ġcard Ġ` version `, Ċ Ġ* Ġsplit ted Ġto Ġ` major `, Ġ` minor ` Ġand Ġ` hot Fix ` Ġand Ġ` Firmware Type ` Ċ Ġ*/ Ċ class ĠF irmware Version Ġ: ĠComparable < Firmware Version > Ġ{ ĊĠĠĠ Ġvar Ġmajor : ĠInt Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġprivate Ġset ĊĊĠĠĠ Ġvar Ġminor : ĠInt Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġprivate Ġset ĊĊĠĠĠ Ġvar Ġhot Fix : ĠInt Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġprivate Ġset ĊĊĠĠĠ Ġvar Ġtype : ĠF irmware Type ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġprivate Ġset ĊĊĠĠĠ Ġval Ġversion Double : ĠDouble ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ"$ major .$ minor ". toDouble () ĊĊĠĠĠ Ġval Ġversion : ĠString ĊĊĠĠĠ Ġconstructor ( version : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . version Ġ= Ġversion ĊĊĠĠĠĠĠĠĠ Ġval Ġversion Clean ed Ġ= Ġversion . remove Suffix ("\ u 0 0 0 0 ") ĊĊĠĠĠĠĠĠĠ Ġval Ġcard Type Str Ġ= Ġversion Clean ed . trim Ġ{ Ġ" 0 1 2 3 4 5 6 7 8 9 .". contains ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġversion Clean ed . replace ( card Type Str , Ġ"") ĊĠĠĠĠĠĠĠ Ġval Ġsplit ted Ġ= Ġresult . split (". "). to Mutable List () ĊĊĠĠĠĠĠĠĠ Ġsplit ted . remove First OrNull ()?. let Ġ{ Ġthis . major Ġ= Ġit . toInt () Ġ} ĊĠĠĠĠĠĠĠ Ġsplit ted . remove First OrNull ()?. let Ġ{ Ġthis . minor Ġ= Ġit . toInt () Ġ} ĊĠĠĠĠĠĠĠ Ġsplit ted . remove First OrNull ()?. let Ġ{ Ġthis . hot Fix Ġ= Ġit . toInt () Ġ} ĊĊĠĠĠĠĠĠĠ Ġtype Ġ= ĠF irmware Type . from ( card Type Str ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( major : ĠInt , Ġminor : ĠInt , Ġhot Fix : ĠInt Ġ= Ġ 0 , Ġtype : ĠF irmware Type Ġ= ĠF irmware Type . Sdk ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . major Ġ= Ġmajor ĊĠĠĠĠĠĠĠ Ġthis . minor Ġ= Ġminor ĊĠĠĠĠĠĠĠ Ġthis . hot Fix Ġ= Ġhot Fix ĊĠĠĠĠĠĠĠ Ġthis . type Ġ= Ġtype ĊĊĠĠĠĠĠĠĠ Ġthis . version Ġ= ĠStringBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. append ("$ major .$ minor ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. append ( if Ġ( hot Fix Ġ!= Ġ 0 ) Ġ".$ hot Fix " Ġelse Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. append ( type . raw Value ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. toString () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcompare To ( other : ĠF irmware Version ): ĠInt Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠ Ġmajor Ġ!= Ġother . major Ġ-> Ġmajor . compareTo ( other . major ) ĊĠĠĠĠĠĠĠ Ġminor Ġ!= Ġother . minor Ġ-> Ġminor . compareTo ( other . minor ) ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġhot Fix . compareTo ( other . hot Fix ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġzero Ġ= ĠF irmware Version ( 0 , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġmax Ġ= ĠF irmware Version ( Int . MAX _ VALUE , Ġ 0 ) ĊĠĠĠ Ġ} Ċ }