{"version":3,"file":"js/2768-3cfb3344c83aa52e081b.chunk.js","mappings":";gbA0DmEA,EAAOC,QAGjE,WAAe,aA2BpB,IAzBA,IAAIC,EAAU,SAAUC,EAAGC,EAAKC,GAI5B,YAHa,IAARD,IAAiBA,EAAI,QACb,IAARC,IAAiBA,EAAI,GAEnBF,EAAIC,EAAMA,EAAMD,EAAIE,EAAMA,EAAMF,CAC3C,EAEIG,EAAUJ,EAEVK,EAAa,SAAUC,GACvBA,EAAIC,UAAW,EACfD,EAAIE,WAAaF,EAAIG,MAAM,GAC3B,IAAK,IAAIC,EAAE,EAAGA,GAAG,EAAGA,IACZA,EAAI,IACAJ,EAAII,GAAK,GAAKJ,EAAII,GAAK,OAAOJ,EAAIC,UAAW,GACjDD,EAAII,GAAKN,EAAQE,EAAII,GAAI,EAAG,MACf,IAANA,IACPJ,EAAII,GAAKN,EAAQE,EAAII,GAAI,EAAG,IAGpC,OAAOJ,CACX,EAGIK,EAAc,CAAC,EACVC,EAAM,EAAGC,EAAS,CAAC,UAAW,SAAU,SAAU,WAAY,QAAS,OAAQ,SAAU,YAAa,QAASD,EAAMC,EAAOC,OAAQF,GAAO,EAAG,CACnJ,IAAIG,EAAOF,EAAOD,GAElBD,EAAa,WAAaI,EAAO,KAAQA,EAAKC,aAClD,CACA,IAAIC,EAAS,SAASC,GAClB,OAAOP,EAAYQ,OAAOC,UAAUC,SAASC,KAAKJ,KAAS,QAC/D,EAEIK,EAASN,EAETO,EAAW,SAAUC,EAAMC,GAI3B,YAHkB,IAAbA,IAAsBA,EAAS,MAGhCD,EAAKX,QAAU,EAAYa,MAAMP,UAAUX,MAAMa,KAAKG,GAGtC,UAAnBF,EAAOE,EAAK,KAAmBC,EAC3BA,EAASE,MAAM,IACpBC,QAAO,SAAUC,GAAK,YAAsBC,IAAfN,EAAK,GAAGK,EAAkB,IACvDE,KAAI,SAAUF,GAAK,OAAOL,EAAK,GAAGK,EAAI,IAI/BL,EAAK,EAChB,EAEIQ,EAAShB,EAETiB,EAAS,SAAUT,GACnB,GAAIA,EAAKX,OAAS,EAAK,OAAO,KAC9B,IAAIqB,EAAIV,EAAKX,OAAO,EACpB,MAAuB,UAAnBmB,EAAOR,EAAKU,IAA0BV,EAAKU,GAAGnB,cAC3C,IACX,EAEIoB,EAAOC,KAAKC,GAEZC,EAAQ,CACXC,SAAUnC,EACVoC,MAAOzC,EACP0C,KAAMzB,EACN0B,OAAQnB,EACRoB,KAAMV,EACNI,GAAIF,EACJS,MAAY,EAALT,EACPU,QAASV,EAAK,EACdW,QAASX,EAAO,IAChBY,QAAS,IAAMZ,GAGZa,EAAU,CACbC,OAAQ,CAAC,EACTC,WAAY,IAGTC,EAASb,EAAMK,KACfS,EAAad,EAAMC,SACnBc,EAASf,EAAMG,KACfa,EAASN,EAETO,EAAU,WAEV,IADA,IAAI/B,EAAO,GAAIgC,EAAMC,UAAU5C,OACvB2C,KAAQhC,EAAMgC,GAAQC,UAAWD,GAEzC,IAAIE,EAAKC,KACT,GAAwB,WAApBN,EAAO7B,EAAK,KACZA,EAAK,GAAGoC,aACRpC,EAAK,GAAGoC,cAAgBD,KAAKC,YAE7B,OAAOpC,EAAK,GAIhB,IAAIqC,EAAOV,EAAO3B,GACd0B,GAAa,EAEjB,IAAKW,EAAM,CACPX,GAAa,EACRI,EAAOQ,SACRR,EAAOJ,WAAaI,EAAOJ,WAAWa,MAAK,SAAUC,EAAEC,GAAK,OAAOA,EAAEC,EAAIF,EAAEE,CAAG,IAC9EZ,EAAOQ,QAAS,GAGpB,IAAK,IAAIrD,EAAI,EAAG0D,EAAOb,EAAOJ,WAAYzC,EAAI0D,EAAKtD,OAAQJ,GAAK,EAAG,CAC/D,IAAI2D,EAAMD,EAAK1D,GAGf,GADAoD,EAAOO,EAAIC,KAAKC,MAAMF,EAAK5C,GACf,KAChB,CACJ,CAEA,IAAI8B,EAAOL,OAAOY,GAId,MAAM,IAAIU,MAAM,mBAAmB/C,GAHnC,IAAInB,EAAMiD,EAAOL,OAAOY,GAAMS,MAAM,KAAMpB,EAAa1B,EAAOA,EAAKhB,MAAM,GAAG,IAC5EkD,EAAGc,KAAOpB,EAAW/C,GAMF,IAAnBqD,EAAGc,KAAK3D,QAAgB6C,EAAGc,KAAKC,KAAK,EAC7C,EAEAlB,EAAQpC,UAAUC,SAAW,WACzB,MAAwB,YAApBiC,EAAOM,KAAKe,KAA6Bf,KAAKe,MAC1C,IAAOf,KAAKa,KAAKG,KAAK,KAAQ,GAC1C,EAEA,IAAIC,EAAUrB,EAEVsB,EAAW,WAEd,IADA,IAAIrD,EAAO,GAAIgC,EAAMC,UAAU5C,OACvB2C,KAAQhC,EAAMgC,GAAQC,UAAWD,GAEzC,OAAO,IAAKsB,SAAS3D,UAAU4D,KAAKT,MAAOO,EAASG,MAAO,CAAE,MAAOC,OAAQzD,IAC7E,EAEAqD,EAASG,MAAQJ,EACjBC,EAASK,QAAU,QAEnB,IAAIC,EAAWN,EAEXO,EAAW9C,EAAMI,OACjB2C,EAAQjD,KAAKlC,IAEboF,EAAa,WAEb,IADA,IAAI9D,EAAO,GAAIgC,EAAMC,UAAU5C,OACvB2C,KAAQhC,EAAMgC,GAAQC,UAAWD,GAEzC,IAAI+B,EAAMH,EAAS5D,EAAM,OACrBgE,EAAID,EAAI,GACRE,EAAIF,EAAI,GACRtB,EAAIsB,EAAI,GAIR1D,EAAI,EAAIwD,EAHZG,GAAQ,IAGYH,EAFpBI,GAAQ,IACRxB,GAAQ,MAEJyB,EAAI7D,EAAI,EAAI,GAAK,EAAEA,GAAK,EAI5B,MAAO,EAHE,EAAE2D,EAAE3D,GAAK6D,GACT,EAAED,EAAE5D,GAAK6D,GACT,EAAEzB,EAAEpC,GAAK6D,EACJ7D,EAClB,EAEI8D,EAAaL,EAEbM,EAAWtD,EAAMI,OAEjBmD,EAAW,WAEX,IADA,IAAIrE,EAAO,GAAIgC,EAAMC,UAAU5C,OACvB2C,KAAQhC,EAAMgC,GAAQC,UAAWD,GAGzC,IAAIsC,GADJtE,EAAOoE,EAASpE,EAAM,SACT,GACTuE,EAAIvE,EAAK,GACTwE,EAAIxE,EAAK,GACTK,EAAIL,EAAK,GACTyE,EAAQzE,EAAKX,OAAS,EAAIW,EAAK,GAAK,EACxC,OAAU,IAANK,EAAkB,CAAC,EAAE,EAAE,EAAEoE,GACtB,CACHH,GAAK,EAAI,EAAI,KAAO,EAAEA,IAAM,EAAEjE,GAC9BkE,GAAK,EAAI,EAAI,KAAO,EAAEA,IAAM,EAAElE,GAC9BmE,GAAK,EAAI,EAAI,KAAO,EAAEA,IAAM,EAAEnE,GAC9BoE,EAER,EAEIC,EAAaL,EAEbM,EAAWhB,EACXiB,EAAUxB,EACVyB,EAAUrD,EACVsD,EAAWhE,EAAMI,OACjB6D,EAASjE,EAAMG,KAEf+D,EAAWb,EAEfS,EAAQjF,UAAUsF,KAAO,WACrB,OAAOD,EAAS7C,KAAKa,KACzB,EAEA2B,EAASM,KAAO,WAEZ,IADA,IAAIjF,EAAO,GAAIgC,EAAMC,UAAU5C,OACvB2C,KAAQhC,EAAMgC,GAAQC,UAAWD,GAEzC,OAAO,IAAKsB,SAAS3D,UAAU4D,KAAKT,MAAO8B,EAAS,CAAE,MAAOnB,OAAQzD,EAAM,CAAC,UAChF,EAEA6E,EAAQpD,OAAOwD,KAAOP,EAEtBG,EAAQnD,WAAWuB,KAAK,CACpBP,EAAG,EACHG,KAAM,WAEF,IADA,IAAI7C,EAAO,GAAIgC,EAAMC,UAAU5C,OACvB2C,KAAQhC,EAAMgC,GAAQC,UAAWD,GAGzC,GADAhC,EAAO8E,EAAS9E,EAAM,QACD,UAAjB+E,EAAO/E,IAAqC,IAAhBA,EAAKX,OACjC,MAAO,MAEf,IAGJ,IAAI6F,EAAWpE,EAAMI,OACjBiE,EAASrE,EAAMK,KACfiE,EAAM,SAAU5C,GAAK,OAAO5B,KAAKyE,MAAQ,IAAF7C,GAAO,GAAK,EAUnD8C,EAAY,WAEZ,IADA,IAAItF,EAAO,GAAIgC,EAAMC,UAAU5C,OACvB2C,KAAQhC,EAAMgC,GAAQC,UAAWD,GAEzC,IAAIuD,EAAOL,EAASlF,EAAM,QACtBqC,EAAO8C,EAAOnF,IAAS,MAU3B,OATAuF,EAAK,GAAKH,EAAIG,EAAK,IAAM,GACzBA,EAAK,GAAKH,EAAY,IAARG,EAAK,IAAU,IAC7BA,EAAK,GAAKH,EAAY,IAARG,EAAK,IAAU,IAChB,SAATlD,GAAoBkD,EAAKlG,OAAS,GAAKkG,EAAK,GAAG,GAC/CA,EAAK,GAAKA,EAAKlG,OAAS,EAAIkG,EAAK,GAAK,EACtClD,EAAO,QAEPkD,EAAKlG,OAAS,EAEVgD,EAAO,IAAOkD,EAAKpC,KAAK,KAAQ,GAC5C,EAEIqC,EAAYF,EAEZG,EAAW3E,EAAMI,OAUjBwE,EAAY,WAEZ,IADA,IAAI1F,EAAO,GAAIgC,EAAMC,UAAU5C,OACvB2C,KAAQhC,EAAMgC,GAAQC,UAAWD,GAGzC,IAAIgC,GADJhE,EAAOyF,EAASzF,EAAM,SACT,GACTiE,EAAIjE,EAAK,GACTyC,EAAIzC,EAAK,GAEbgE,GAAK,IACLC,GAAK,IACLxB,GAAK,IAEL,IAIIkD,EAAGC,EAJHnH,EAAMmC,KAAKnC,IAAIuF,EAAGC,EAAGxB,GACrB/D,EAAMkC,KAAKlC,IAAIsF,EAAGC,EAAGxB,GAErB/B,GAAKhC,EAAMD,GAAO,EAgBtB,OAbIC,IAAQD,GACRkH,EAAI,EACJC,EAAIC,OAAOC,KAEXH,EAAIjF,EAAI,IAAOhC,EAAMD,IAAQC,EAAMD,IAAQC,EAAMD,IAAQ,EAAIC,EAAMD,GAGnEuF,GAAKtF,EAAOkH,GAAK3B,EAAIxB,IAAM/D,EAAMD,GAC5BwF,GAAKvF,EAAOkH,EAAI,GAAKnD,EAAIuB,IAAMtF,EAAMD,GACrCgE,GAAK/D,IAAOkH,EAAI,GAAK5B,EAAIC,IAAMvF,EAAMD,KAE9CmH,GAAK,IACG,IAAKA,GAAK,KACd5F,EAAKX,OAAO,QAAeiB,IAAVN,EAAK,GAAyB,CAAC4F,EAAED,EAAEjF,EAAEV,EAAK,IACxD,CAAC4F,EAAED,EAAEjF,EAChB,EAEIqF,EAAYL,EAEZM,EAAWlF,EAAMI,OACjB+E,EAASnF,EAAMK,KACf+E,EAAUV,EACVW,EAAYJ,EACZK,EAAUxF,KAAKyE,MAUfgB,EAAY,WAEZ,IADA,IAAIrG,EAAO,GAAIgC,EAAMC,UAAU5C,OACvB2C,KAAQhC,EAAMgC,GAAQC,UAAWD,GAEzC,IAAIsE,EAAON,EAAShG,EAAM,QACtBqC,EAAO4D,EAAOjG,IAAS,MAC3B,MAAwB,OAApBqC,EAAKkE,OAAO,EAAE,GACPL,EAAQC,EAAUG,GAAOjE,IAEpCiE,EAAK,GAAKF,EAAQE,EAAK,IACvBA,EAAK,GAAKF,EAAQE,EAAK,IACvBA,EAAK,GAAKF,EAAQE,EAAK,KACV,SAATjE,GAAoBiE,EAAKjH,OAAS,GAAKiH,EAAK,GAAG,KAC/CA,EAAK,GAAKA,EAAKjH,OAAS,EAAIiH,EAAK,GAAK,EACtCjE,EAAO,QAEHA,EAAO,IAAOiE,EAAKtH,MAAM,EAAS,QAAPqD,EAAa,EAAE,GAAGc,KAAK,KAAQ,IACtE,EAEIqD,EAAYH,EAEZI,EAAW3F,EAAMI,OACjBwF,EAAU9F,KAAKyE,MAEfsB,EAAY,WAIZ,IAHA,IAAIC,EAEA5G,EAAO,GAAIgC,EAAMC,UAAU5C,OACvB2C,KAAQhC,EAAMgC,GAAQC,UAAWD,GAEzC,IAGIgC,EAAEC,EAAExB,EAHJmD,GADJ5F,EAAOyG,EAASzG,EAAM,QACT,GACT2F,EAAI3F,EAAK,GACTU,EAAIV,EAAK,GAEb,GAAU,IAAN2F,EACA3B,EAAIC,EAAIxB,EAAM,IAAF/B,MACT,CACH,IAAImG,EAAK,CAAC,EAAE,EAAE,GACVvC,EAAI,CAAC,EAAE,EAAE,GACTwC,EAAKpG,EAAI,GAAMA,GAAK,EAAEiF,GAAKjF,EAAEiF,EAAEjF,EAAEiF,EACjCoB,EAAK,EAAIrG,EAAIoG,EACbE,EAAKpB,EAAI,IACbiB,EAAG,GAAKG,EAAK,EAAE,EACfH,EAAG,GAAKG,EACRH,EAAG,GAAKG,EAAK,EAAE,EACf,IAAK,IAAI/H,EAAE,EAAGA,EAAE,EAAGA,IACX4H,EAAG5H,GAAK,IAAK4H,EAAG5H,IAAM,GACtB4H,EAAG5H,GAAK,IAAK4H,EAAG5H,IAAM,GACtB,EAAI4H,EAAG5H,GAAK,EACVqF,EAAErF,GAAK8H,EAAiB,GAAXD,EAAKC,GAAUF,EAAG5H,GAC5B,EAAI4H,EAAG5H,GAAK,EACfqF,EAAErF,GAAK6H,EACJ,EAAID,EAAG5H,GAAK,EACfqF,EAAErF,GAAK8H,GAAMD,EAAKC,IAAQ,EAAI,EAAKF,EAAG5H,IAAM,EAE5CqF,EAAErF,GAAK8H,EAEkD/C,GAAlE4C,EAAS,CAACF,EAAa,IAALpC,EAAE,IAAQoC,EAAa,IAALpC,EAAE,IAAQoC,EAAa,IAALpC,EAAE,MAAqB,GAAIL,EAAI2C,EAAO,GAAInE,EAAImE,EAAO,EAChH,CACA,OAAI5G,EAAKX,OAAS,EAEP,CAAC2E,EAAEC,EAAExB,EAAEzC,EAAK,IAEhB,CAACgE,EAAEC,EAAExB,EAAE,EAClB,EAEIwE,GAAYN,EAEZO,GAAUD,GACVE,GAAU3F,EAEV4F,GAAS,kDACTC,GAAU,wEACVC,GAAa,mFACbC,GAAc,yGACdC,GAAS,kFACTC,GAAU,wGAEVC,GAAU9G,KAAKyE,MAEfsC,GAAY,SAAUC,GAEtB,IAAIrD,EAEJ,GAHAqD,EAAMA,EAAIrI,cAAcsI,OAGpBV,GAAQ1F,OAAOqG,MACf,IACI,OAAOX,GAAQ1F,OAAOqG,MAAMF,EAChC,CAAE,MAAOG,GAET,CAIJ,GAAKxD,EAAIqD,EAAII,MAAMZ,IAAU,CAEzB,IADA,IAAIvI,EAAM0F,EAAEvF,MAAM,EAAE,GACXC,EAAE,EAAGA,EAAE,EAAGA,IACfJ,EAAII,IAAMJ,EAAII,GAGlB,OADAJ,EAAI,GAAK,EACFA,CACX,CAGA,GAAK0F,EAAIqD,EAAII,MAAMX,IAAW,CAE1B,IADA,IAAIY,EAAQ1D,EAAEvF,MAAM,EAAE,GACbG,EAAI,EAAGA,EAAI,EAAGA,IACnB8I,EAAM9I,IAAQ8I,EAAM9I,GAExB,OAAO8I,CACX,CAGA,GAAK1D,EAAIqD,EAAII,MAAMV,IAAc,CAE7B,IADA,IAAIY,EAAQ3D,EAAEvF,MAAM,EAAE,GACbmJ,EAAI,EAAGA,EAAI,EAAGA,IACnBD,EAAMC,GAAOT,GAAqB,KAAbQ,EAAMC,IAG/B,OADAD,EAAM,GAAK,EACJA,CACX,CAGA,GAAK3D,EAAIqD,EAAII,MAAMT,IAAe,CAE9B,IADA,IAAIa,EAAQ7D,EAAEvF,MAAM,EAAE,GACbqJ,EAAI,EAAGA,EAAI,EAAGA,IACnBD,EAAMC,GAAOX,GAAqB,KAAbU,EAAMC,IAG/B,OADAD,EAAM,IAAMA,EAAM,GACXA,CACX,CAGA,GAAK7D,EAAIqD,EAAII,MAAMR,IAAU,CACzB,IAAIc,EAAM/D,EAAEvF,MAAM,EAAE,GACpBsJ,EAAI,IAAM,IACVA,EAAI,IAAM,IACV,IAAIC,EAAQrB,GAAQoB,GAEpB,OADAC,EAAM,GAAK,EACJA,CACX,CAGA,GAAKhE,EAAIqD,EAAII,MAAMP,IAAW,CAC1B,IAAIe,EAAQjE,EAAEvF,MAAM,EAAE,GACtBwJ,EAAM,IAAM,IACZA,EAAM,IAAM,IACZ,IAAIC,EAAQvB,GAAQsB,GAEpB,OADAC,EAAM,IAAMlE,EAAE,GACPkE,CACX,CACJ,EAEAd,GAAU9E,KAAO,SAAU8C,GACvB,OAAOyB,GAAOvE,KAAK8C,IACf0B,GAAQxE,KAAK8C,IACb2B,GAAWzE,KAAK8C,IAChB4B,GAAY1E,KAAK8C,IACjB6B,GAAO3E,KAAK8C,IACZ8B,GAAQ5E,KAAK8C,EACrB,EAEA,IAAI+C,GAAYf,GAEZgB,GAAWhF,EACXiF,GAAUxF,EACVyF,GAAUrH,EACVsH,GAAShI,EAAMG,KAEf8H,GAAUvC,EACVwC,GAAUN,GAEdE,GAAQjJ,UAAUiI,IAAM,SAASvF,GAC7B,OAAO0G,GAAQ5G,KAAKa,KAAMX,EAC9B,EAEAsG,GAASf,IAAM,WAEX,IADA,IAAI5H,EAAO,GAAIgC,EAAMC,UAAU5C,OACvB2C,KAAQhC,EAAMgC,GAAQC,UAAWD,GAEzC,OAAO,IAAKsB,SAAS3D,UAAU4D,KAAKT,MAAO8F,GAAS,CAAE,MAAOnF,OAAQzD,EAAM,CAAC,SAChF,EAEA6I,GAAQpH,OAAOmG,IAAMoB,GAErBH,GAAQnH,WAAWuB,KAAK,CACpBP,EAAG,EACHG,KAAM,SAAU+C,GAEZ,IADA,IAAIqD,EAAO,GAAIjH,EAAMC,UAAU5C,OAAS,EAChC2C,KAAQ,GAAIiH,EAAMjH,GAAQC,UAAWD,EAAM,GAEnD,IAAKiH,EAAK5J,QAAwB,WAAdyJ,GAAOlD,IAAmBoD,GAAQnG,KAAK+C,GACvD,MAAO,KAEf,IAGJ,IAAIsD,GAAU9F,EACV+F,GAAWxF,EACXyF,GAAU5H,EACV6H,GAAWvI,EAAMI,OAErBkI,GAAQ3H,OAAO6H,GAAK,WAEhB,IADA,IAAItJ,EAAO,GAAIgC,EAAMC,UAAU5C,OACvB2C,KAAQhC,EAAMgC,GAAQC,UAAWD,GAEzC,IAAInD,EAAMwK,GAASrJ,EAAM,QAIzB,OAHAnB,EAAI,IAAM,IACVA,EAAI,IAAM,IACVA,EAAI,IAAM,IACHA,CACX,EAEAsK,GAASG,GAAK,WAEV,IADA,IAAItJ,EAAO,GAAIgC,EAAMC,UAAU5C,OACvB2C,KAAQhC,EAAMgC,GAAQC,UAAWD,GAEzC,OAAO,IAAKsB,SAAS3D,UAAU4D,KAAKT,MAAOoG,GAAS,CAAE,MAAOzF,OAAQzD,EAAM,CAAC,QAChF,EAEAkJ,GAAQvJ,UAAU2J,GAAK,WACnB,IAAIzK,EAAMsD,KAAKa,KACf,MAAO,CAACnE,EAAI,GAAG,IAAKA,EAAI,GAAG,IAAKA,EAAI,GAAG,IAAKA,EAAI,GACpD,EAEA,IAAI0K,GAAWzI,EAAMI,OAEjBsI,GAAY,WAEZ,IADA,IAAIxJ,EAAO,GAAIgC,EAAMC,UAAU5C,OACvB2C,KAAQhC,EAAMgC,GAAQC,UAAWD,GAEzC,IASI4D,EATA7B,EAAMwF,GAASvJ,EAAM,OACrBgE,EAAID,EAAI,GACRE,EAAIF,EAAI,GACRtB,EAAIsB,EAAI,GACRtF,EAAMmC,KAAKnC,IAAIuF,EAAGC,EAAGxB,GACrB/D,EAAMkC,KAAKlC,IAAIsF,EAAGC,EAAGxB,GACrBgH,EAAQ/K,EAAMD,EACd6F,EAAY,IAARmF,EAAc,IAClBC,EAAKjL,GAAO,IAAMgL,GAAS,IAW/B,OATc,IAAVA,EACA7D,EAAIC,OAAOC,KAEP9B,IAAMtF,IAAOkH,GAAK3B,EAAIxB,GAAKgH,GAC3BxF,IAAMvF,IAAOkH,EAAI,GAAGnD,EAAIuB,GAAKyF,GAC7BhH,IAAM/D,IAAOkH,EAAI,GAAG5B,EAAIC,GAAKwF,IACjC7D,GAAK,IACG,IAAKA,GAAK,MAEf,CAACA,EAAGtB,EAAGoF,EAClB,EAEIC,GAAYH,GAEZI,GAAW9I,EAAMI,OACjB2I,GAAUjJ,KAAKkJ,MAUfC,GAAU,WAIV,IAHA,IAAInD,EAAQoD,EAAUC,EAAUC,EAAUC,EAAUC,EAEhDpK,EAAO,GAAIgC,EAAMC,UAAU5C,OACvB2C,KAAQhC,EAAMgC,GAAQC,UAAWD,GAEzC,IAGIgC,EAAEC,EAAExB,EAHJmD,GADJ5F,EAAO4J,GAAS5J,EAAM,QACT,GACTsE,EAAItE,EAAK,GACT0J,EAAK1J,EAAK,GAEd0J,GAAU,IACV,IAAIW,EAAS,IAAJ/F,EACT,GAAU,IAANA,EACAN,EAAIC,EAAIxB,EAAIiH,MACT,CACO,MAAN9D,IAAaA,EAAI,GACjBA,EAAI,MAAOA,GAAK,KAChBA,EAAI,IAAKA,GAAK,KAElB,IAAI3G,EAAI4K,GADRjE,GAAK,IAED1B,EAAI0B,EAAI3G,EACRyD,EAAIgH,GAAM,EAAIpF,GACdgG,EAAI5H,EAAI2H,GAAM,EAAInG,GAClBqG,EAAI7H,EAAI2H,EAAKnG,EACbsG,EAAI9H,EAAI2H,EACZ,OAAQpL,GACJ,KAAK,EAAwB+E,GAApB4C,EAAS,CAAC4D,EAAGD,EAAG7H,IAAe,GAAIuB,EAAI2C,EAAO,GAAInE,EAAImE,EAAO,GAAK,MAC3E,KAAK,EAA0B5C,GAAtBgG,EAAW,CAACM,EAAGE,EAAG9H,IAAiB,GAAIuB,EAAI+F,EAAS,GAAIvH,EAAIuH,EAAS,GAAK,MACnF,KAAK,EAA0BhG,GAAtBiG,EAAW,CAACvH,EAAG8H,EAAGD,IAAiB,GAAItG,EAAIgG,EAAS,GAAIxH,EAAIwH,EAAS,GAAK,MACnF,KAAK,EAA0BjG,GAAtBkG,EAAW,CAACxH,EAAG4H,EAAGE,IAAiB,GAAIvG,EAAIiG,EAAS,GAAIzH,EAAIyH,EAAS,GAAK,MACnF,KAAK,EAA0BlG,GAAtBmG,EAAW,CAACI,EAAG7H,EAAG8H,IAAiB,GAAIvG,EAAIkG,EAAS,GAAI1H,EAAI0H,EAAS,GAAK,MACnF,KAAK,EAA0BnG,GAAtBoG,EAAW,CAACI,EAAG9H,EAAG4H,IAAiB,GAAIrG,EAAImG,EAAS,GAAI3H,EAAI2H,EAAS,GAEtF,CACA,MAAO,CAACpG,EAAGC,EAAGxB,EAAGzC,EAAKX,OAAS,EAAIW,EAAK,GAAK,EACjD,EAEIyK,GAAYV,GAEZW,GAAW5J,EAAMI,OACjByJ,GAAS7J,EAAMG,KACf2J,GAAWjH,EACXkH,GAAUzH,EACV0H,GAAUtJ,EAEVuJ,GAAUpB,GAEdkB,GAAQlL,UAAUqL,IAAM,WACpB,OAAOD,GAAQ5I,KAAKa,KACxB,EAEA4H,GAASI,IAAM,WAEX,IADA,IAAIhL,EAAO,GAAIgC,EAAMC,UAAU5C,OACvB2C,KAAQhC,EAAMgC,GAAQC,UAAWD,GAEzC,OAAO,IAAKsB,SAAS3D,UAAU4D,KAAKT,MAAO+H,GAAS,CAAE,MAAOpH,OAAQzD,EAAM,CAAC,SAChF,EAEA8K,GAAQrJ,OAAOuJ,IAAMP,GAErBK,GAAQpJ,WAAWuB,KAAK,CACpBP,EAAG,EACHG,KAAM,WAEF,IADA,IAAI7C,EAAO,GAAIgC,EAAMC,UAAU5C,OACvB2C,KAAQhC,EAAMgC,GAAQC,UAAWD,GAGzC,GADAhC,EAAO0K,GAAS1K,EAAM,OACD,UAAjB2K,GAAO3K,IAAqC,IAAhBA,EAAKX,OACjC,MAAO,KAEf,IAGJ,IAAI4L,GAAWnK,EAAMI,OACjBC,GAAOL,EAAMK,KACb+J,GAAUtK,KAAKyE,MAEf8F,GAAY,WAEZ,IADA,IAAInL,EAAO,GAAIgC,EAAMC,UAAU5C,OACvB2C,KAAQhC,EAAMgC,GAAQC,UAAWD,GAEzC,IAAI+B,EAAMkH,GAASjL,EAAM,QACrBgE,EAAID,EAAI,GACRE,EAAIF,EAAI,GACRtB,EAAIsB,EAAI,GACRvB,EAAIuB,EAAI,GACR1B,EAAOlB,GAAKnB,IAAS,YACfM,IAANkC,IAAmBA,EAAI,GACd,SAATH,IACAA,EAAOG,EAAI,EAAI,OAAS,OAK5B,IACI4I,EAAM,WAJVpH,EAAIkH,GAAQlH,KAGC,IAFbC,EAAIiH,GAAQjH,KAEW,GADvBxB,EAAIyI,GAAQzI,KAEW7C,SAAS,IAChCwL,EAAMA,EAAI7E,OAAO6E,EAAI/L,OAAS,GAC9B,IAAIgM,EAAM,IAAMH,GAAY,IAAJ1I,GAAS5C,SAAS,IAE1C,OADAyL,EAAMA,EAAI9E,OAAO8E,EAAIhM,OAAS,GACtBgD,EAAK9C,eACT,IAAK,OAAQ,MAAQ,IAAM6L,EAAMC,EACjC,IAAK,OAAQ,MAAQ,IAAMA,EAAMD,EACjC,QAAS,MAAQ,IAAMA,EAE/B,EAEIE,GAAYH,GAEZI,GAAS,sCACTC,GAAU,sCA8CVC,GA5CY,SAAUvI,GACtB,GAAIA,EAAI8E,MAAMuD,IAAS,CAEA,IAAfrI,EAAI7D,QAA+B,IAAf6D,EAAI7D,SACxB6D,EAAMA,EAAIqD,OAAO,IAGF,IAAfrD,EAAI7D,SAEJ6D,GADAA,EAAMA,EAAI/C,MAAM,KACN,GAAG+C,EAAI,GAAGA,EAAI,GAAGA,EAAI,GAAGA,EAAI,GAAGA,EAAI,IAEjD,IAAIwI,EAAIC,SAASzI,EAAK,IAItB,MAAO,CAHCwI,GAAK,GACLA,GAAK,EAAI,IACL,IAAJA,EACM,EAClB,CAGA,GAAIxI,EAAI8E,MAAMwD,IAAU,CACD,IAAftI,EAAI7D,QAA+B,IAAf6D,EAAI7D,SAExB6D,EAAMA,EAAIqD,OAAO,IAGF,IAAfrD,EAAI7D,SAEJ6D,GADAA,EAAMA,EAAI/C,MAAM,KACN,GAAG+C,EAAI,GAAGA,EAAI,GAAGA,EAAI,GAAGA,EAAI,GAAGA,EAAI,GAAGA,EAAI,GAAGA,EAAI,IAE/D,IAAI0I,EAAMD,SAASzI,EAAK,IAKxB,MAAO,CAJG0I,GAAO,GAAK,IACZA,GAAO,GAAK,IACZA,GAAO,EAAI,IACbhL,KAAKyE,OAAa,IAANuG,GAAc,IAAO,KAAO,IAEpD,CAMA,MAAM,IAAI7I,MAAO,sBAAwBG,EAC7C,EAII2I,GAAWlI,EACXmI,GAAU1I,EACV2I,GAASjL,EAAMG,KACf+K,GAAUxK,EAEVyK,GAAYX,GAEhBQ,GAAQnM,UAAUuD,IAAM,SAASb,GAC7B,OAAO4J,GAAU9J,KAAKa,KAAMX,EAChC,EAEAwJ,GAAS3I,IAAM,WAEX,IADA,IAAIlD,EAAO,GAAIgC,EAAMC,UAAU5C,OACvB2C,KAAQhC,EAAMgC,GAAQC,UAAWD,GAEzC,OAAO,IAAKsB,SAAS3D,UAAU4D,KAAKT,MAAOgJ,GAAS,CAAE,MAAOrI,OAAQzD,EAAM,CAAC,SAChF,EAEAgM,GAAQvK,OAAOyB,IAAMuI,GACrBO,GAAQtK,WAAWuB,KAAK,CACpBP,EAAG,EACHG,KAAM,SAAU+C,GAEZ,IADA,IAAIqD,EAAO,GAAIjH,EAAMC,UAAU5C,OAAS,EAChC2C,KAAQ,GAAIiH,EAAMjH,GAAQC,UAAWD,EAAM,GAEnD,IAAKiH,EAAK5J,QAAwB,WAAd0M,GAAOnG,IAAmB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAGsG,QAAQtG,EAAEvG,SAAW,EAC/E,MAAO,KAEf,IAGJ,IAAI8M,GAAWrL,EAAMI,OACjBkL,GAAUtL,EAAMM,MAChBiL,GAAQzL,KAAKnC,IACb6N,GAAS1L,KAAK2L,KACdC,GAAO5L,KAAK4L,KAEZC,GAAY,WAEZ,IADA,IAAIzM,EAAO,GAAIgC,EAAMC,UAAU5C,OACvB2C,KAAQhC,EAAMgC,GAAQC,UAAWD,GAMzC,IAOI4D,EAPA7B,EAAMoI,GAASnM,EAAM,OACrBgE,EAAID,EAAI,GACRE,EAAIF,EAAI,GACRtB,EAAIsB,EAAI,GAKR2I,EAAOL,GAJXrI,GAAK,IACLC,GAAK,IACLxB,GAAK,KAGDxD,GAAK+E,EAAEC,EAAExB,GAAK,EACdkD,EAAI1G,EAAI,EAAI,EAAIyN,EAAKzN,EAAI,EAY7B,OAXU,IAAN0G,EACAC,EAAIE,KAEJF,GAAM5B,EAAEC,GAAID,EAAEvB,IAAM,EACpBmD,GAAK0G,IAAQtI,EAAEC,IAAID,EAAEC,IAAMD,EAAEvB,IAAIwB,EAAExB,IACnCmD,EAAI4G,GAAK5G,GACLnD,EAAIwB,IACJ2B,EAAIwG,GAAUxG,GAElBA,GAAKwG,IAEF,CAAG,IAAFxG,EAAMD,EAAE1G,EACpB,EAEI0N,GAAYF,GAEZG,GAAW9L,EAAMI,OACjBF,GAAQF,EAAME,MACd6L,GAAU/L,EAAMM,MAChBC,GAAUP,EAAMO,QAChByL,GAAQlM,KAAKmM,IAObC,GAAU,WAEV,IADA,IAAIhN,EAAO,GAAIgC,EAAMC,UAAU5C,OACvB2C,KAAQhC,EAAMgC,GAAQC,UAAWD,GAOzC,IAGIgC,EAAEC,EAAExB,EAHJmD,GADJ5F,EAAO4M,GAAS5M,EAAM,QACT,GACT2F,EAAI3F,EAAK,GACTf,EAAIe,EAAK,GA2Bb,OAxBIiN,MAAMrH,KAAMA,EAAI,GAChBqH,MAAMtH,KAAMA,EAAI,GAEhBC,EAAI,MAAOA,GAAK,KAChBA,EAAI,IAAKA,GAAK,MAClBA,GAAK,KACG,EAAE,EAGN3B,EAAI,IAFJxB,GAAK,EAAEkD,GAAG,IACV3B,GAAK,EAAE2B,EAAEmH,GAAMD,GAAQjH,GAAGkH,GAAMzL,GAAQwL,GAAQjH,IAAI,IAE7CA,EAAI,EAAE,EAIbnD,EAAI,IAFJuB,GAAK,EAAE2B,GAAG,IACV1B,GAAK,EAAE0B,EAAEmH,GAAMD,IAFfjH,GAAK,EAAE,IAEmBkH,GAAMzL,GAAQwL,GAAQjH,IAAI,IAMpD5B,EAAI,IAFJC,GAAK,EAAE0B,GAAG,IACVlD,GAAK,EAAEkD,EAAEmH,GAAMD,IAFfjH,GAAK,EAAE,IAEmBkH,GAAMzL,GAAQwL,GAAQjH,IAAI,IAMjD,CAAG,KAHV5B,EAAIhD,GAAM/B,EAAE+E,EAAE,IAGG,KAFjBC,EAAIjD,GAAM/B,EAAEgF,EAAE,IAEU,KADxBxB,EAAIzB,GAAM/B,EAAEwD,EAAE,IACezC,EAAKX,OAAS,EAAIW,EAAK,GAAK,EAC7D,EAEIkN,GAAYF,GAEZG,GAAWrM,EAAMI,OACjBkM,GAAStM,EAAMG,KACfoM,GAAW1J,EACX2J,GAAUlK,EACVmK,GAAU/L,EAEVgM,GAAUb,GAEdW,GAAQ3N,UAAU8N,IAAM,WACpB,OAAOD,GAAQrL,KAAKa,KACxB,EAEAqK,GAASI,IAAM,WAEX,IADA,IAAIzN,EAAO,GAAIgC,EAAMC,UAAU5C,OACvB2C,KAAQhC,EAAMgC,GAAQC,UAAWD,GAEzC,OAAO,IAAKsB,SAAS3D,UAAU4D,KAAKT,MAAOwK,GAAS,CAAE,MAAO7J,OAAQzD,EAAM,CAAC,SAChF,EAEAuN,GAAQ9L,OAAOgM,IAAMP,GAErBK,GAAQ7L,WAAWuB,KAAK,CACpBP,EAAG,EACHG,KAAM,WAEF,IADA,IAAI7C,EAAO,GAAIgC,EAAMC,UAAU5C,OACvB2C,KAAQhC,EAAMgC,GAAQC,UAAWD,GAGzC,GADAhC,EAAOmN,GAASnN,EAAM,OACD,UAAjBoN,GAAOpN,IAAqC,IAAhBA,EAAKX,OACjC,MAAO,KAEf,IAGJ,IAAIqO,GAAW5M,EAAMI,OACjByM,GAAS7M,EAAMG,KACf2M,GAAWjK,EACXkK,GAAUzK,EACV0K,GAAUtM,EAEVuM,GAAYhI,EAEhB8H,GAAQlO,UAAU2I,IAAM,WACpB,OAAOyF,GAAU5L,KAAKa,KAC1B,EAEA4K,GAAStF,IAAM,WAEX,IADA,IAAItI,EAAO,GAAIgC,EAAMC,UAAU5C,OACvB2C,KAAQhC,EAAMgC,GAAQC,UAAWD,GAEzC,OAAO,IAAKsB,SAAS3D,UAAU4D,KAAKT,MAAO+K,GAAS,CAAE,MAAOpK,OAAQzD,EAAM,CAAC,SAChF,EAEA8N,GAAQrM,OAAO6G,IAAMrB,GAErB6G,GAAQpM,WAAWuB,KAAK,CACpBP,EAAG,EACHG,KAAM,WAEF,IADA,IAAI7C,EAAO,GAAIgC,EAAMC,UAAU5C,OACvB2C,KAAQhC,EAAMgC,GAAQC,UAAWD,GAGzC,GADAhC,EAAO0N,GAAS1N,EAAM,OACD,UAAjB2N,GAAO3N,IAAqC,IAAhBA,EAAKX,OACjC,MAAO,KAEf,IAGJ,IAAI2O,GAAWlN,EAAMI,OACjB+M,GAAQrN,KAAKnC,IACbyP,GAAQtN,KAAKlC,IAQbyP,GAAU,WAEV,IADA,IAAInO,EAAO,GAAIgC,EAAMC,UAAU5C,OACvB2C,KAAQhC,EAAMgC,GAAQC,UAAWD,GAGzC,IAMI4D,EAAED,EAAE6E,EANJxG,GADJhE,EAAOgO,GAAShO,EAAM,QACT,GACTiE,EAAIjE,EAAK,GACTyC,EAAIzC,EAAK,GACT0M,EAAOuB,GAAMjK,EAAGC,EAAGxB,GACnB2L,EAAOF,GAAMlK,EAAGC,EAAGxB,GACnBgH,EAAQ2E,EAAO1B,EAcnB,OAZAlC,EAAI4D,EAAO,IACE,IAATA,GACAxI,EAAIC,OAAOC,IACXH,EAAI,IAEJA,EAAI8D,EAAQ2E,EACRpK,IAAMoK,IAAQxI,GAAK3B,EAAIxB,GAAKgH,GAC5BxF,IAAMmK,IAAQxI,EAAI,GAAGnD,EAAIuB,GAAKyF,GAC9BhH,IAAM2L,IAAQxI,EAAI,GAAG5B,EAAIC,GAAKwF,IAClC7D,GAAK,IACG,IAAKA,GAAK,MAEf,CAACA,EAAGD,EAAG6E,EAClB,EAEI6D,GAAYF,GAEZG,GAAWxN,EAAMI,OACjBqN,GAAU3N,KAAKkJ,MAEf0E,GAAU,WAIV,IAHA,IAAI5H,EAAQoD,EAAUC,EAAUC,EAAUC,EAAUC,EAEhDpK,EAAO,GAAIgC,EAAMC,UAAU5C,OACvB2C,KAAQhC,EAAMgC,GAAQC,UAAWD,GAEzC,IAGIgC,EAAEC,EAAExB,EAHJmD,GADJ5F,EAAOsO,GAAStO,EAAM,QACT,GACT2F,EAAI3F,EAAK,GACTwK,EAAIxK,EAAK,GAGb,GADAwK,GAAK,IACK,IAAN7E,EACA3B,EAAIC,EAAIxB,EAAI+H,MACT,CACO,MAAN5E,IAAaA,EAAI,GACjBA,EAAI,MAAOA,GAAK,KAChBA,EAAI,IAAKA,GAAK,KAGlB,IAAI3G,EAAIsP,GAFR3I,GAAK,IAGD1B,EAAI0B,EAAI3G,EACRyD,EAAI8H,GAAK,EAAI7E,GACb2E,EAAIE,GAAK,EAAI7E,EAAIzB,GACjBqG,EAAIC,GAAK,EAAI7E,GAAK,EAAIzB,IAE1B,OAAQjF,GACJ,KAAK,EAAwB+E,GAApB4C,EAAS,CAAC4D,EAAGD,EAAG7H,IAAe,GAAIuB,EAAI2C,EAAO,GAAInE,EAAImE,EAAO,GAAK,MAC3E,KAAK,EAA0B5C,GAAtBgG,EAAW,CAACM,EAAGE,EAAG9H,IAAiB,GAAIuB,EAAI+F,EAAS,GAAIvH,EAAIuH,EAAS,GAAK,MACnF,KAAK,EAA0BhG,GAAtBiG,EAAW,CAACvH,EAAG8H,EAAGD,IAAiB,GAAItG,EAAIgG,EAAS,GAAIxH,EAAIwH,EAAS,GAAK,MACnF,KAAK,EAA0BjG,GAAtBkG,EAAW,CAACxH,EAAG4H,EAAGE,IAAiB,GAAIvG,EAAIiG,EAAS,GAAIzH,EAAIyH,EAAS,GAAK,MACnF,KAAK,EAA0BlG,GAAtBmG,EAAW,CAACI,EAAG7H,EAAG8H,IAAiB,GAAIvG,EAAIkG,EAAS,GAAI1H,EAAI0H,EAAS,GAAK,MACnF,KAAK,EAA0BnG,GAAtBoG,EAAW,CAACI,EAAG9H,EAAG4H,IAAiB,GAAIrG,EAAImG,EAAS,GAAI3H,EAAI2H,EAAS,GAEtF,CACA,MAAO,CAACpG,EAAEC,EAAExB,EAAEzC,EAAKX,OAAS,EAAEW,EAAK,GAAG,EAC1C,EAEIyO,GAAYD,GAEZE,GAAW5N,EAAMI,OACjByN,GAAS7N,EAAMG,KACf2N,GAAWjL,EACXkL,GAAUzL,EACV0L,GAAUtN,EAEVuN,GAAUV,GAEdQ,GAAQlP,UAAUqP,IAAM,WACpB,OAAOD,GAAQ5M,KAAKa,KACxB,EAEA4L,GAASI,IAAM,WAEX,IADA,IAAIhP,EAAO,GAAIgC,EAAMC,UAAU5C,OACvB2C,KAAQhC,EAAMgC,GAAQC,UAAWD,GAEzC,OAAO,IAAKsB,SAAS3D,UAAU4D,KAAKT,MAAO+L,GAAS,CAAE,MAAOpL,OAAQzD,EAAM,CAAC,SAChF,EAEA8O,GAAQrN,OAAOuN,IAAMP,GAErBK,GAAQpN,WAAWuB,KAAK,CACpBP,EAAG,EACHG,KAAM,WAEF,IADA,IAAI7C,EAAO,GAAIgC,EAAMC,UAAU5C,OACvB2C,KAAQhC,EAAMgC,GAAQC,UAAWD,GAGzC,GADAhC,EAAO0O,GAAS1O,EAAM,OACD,UAAjB2O,GAAO3O,IAAqC,IAAhBA,EAAKX,OACjC,MAAO,KAEf,IAGJ,IAAI4P,GAAe,CAEfC,GAAI,GAGJC,GAAI,OACJC,GAAI,EACJC,GAAI,QAEJC,GAAI,WACJvI,GAAI,WACJD,GAAI,UACJD,GAAI,YAGJ0I,GAAkBN,GAClBO,GAAW1O,EAAMI,OACjBuO,GAAQ7O,KAAK8O,IAEbC,GAAY,WAEZ,IADA,IAAI3P,EAAO,GAAIgC,EAAMC,UAAU5C,OACvB2C,KAAQhC,EAAMgC,GAAQC,UAAWD,GAEzC,IAAI+B,EAAMyL,GAASxP,EAAM,OACrBgE,EAAID,EAAI,GACRE,EAAIF,EAAI,GACRtB,EAAIsB,EAAI,GACR6L,EAAQC,GAAQ7L,EAAEC,EAAExB,GACpBjE,EAAIoR,EAAM,GACVpL,EAAIoL,EAAM,GAEVlP,EAAI,IAAM8D,EAAI,GAClB,MAAO,CAAC9D,EAAI,EAAI,EAAIA,EAAG,KAAOlC,EAAIgG,GAAI,KAAOA,EAFrCoL,EAAM,IAGlB,EAEIE,GAAU,SAAU9L,GACpB,OAAKA,GAAK,MAAQ,OAAkBA,EAAI,MACjCyL,IAAOzL,EAAI,MAAS,MAAO,IACtC,EAEI+L,GAAU,SAAUxF,GACpB,OAAIA,EAAIgF,GAAgB1I,GAAa4I,GAAMlF,EAAG,EAAI,GAC3CA,EAAIgF,GAAgBzI,GAAKyI,GAAgBD,EACpD,EAEIO,GAAU,SAAU7L,EAAEC,EAAExB,GAOxB,OANAuB,EAAI8L,GAAQ9L,GACZC,EAAI6L,GAAQ7L,GACZxB,EAAIqN,GAAQrN,GAIL,CAHCsN,IAAS,SAAY/L,EAAI,SAAYC,EAAI,SAAYxB,GAAK8M,GAAgBJ,IAC1EY,IAAS,SAAY/L,EAAI,SAAYC,EAAI,QAAYxB,GAAK8M,GAAgBH,IAC1EW,IAAS,SAAY/L,EAAI,QAAYC,EAAI,SAAYxB,GAAK8M,GAAgBF,IAEtF,EAEIW,GAAYL,GAEZM,GAAkBhB,GAClBiB,GAAWpP,EAAMI,OACjBiP,GAAQvP,KAAK8O,IAObU,GAAY,WAEZ,IADA,IAAIpQ,EAAO,GAAIgC,EAAMC,UAAU5C,OACvB2C,KAAQhC,EAAMgC,GAAQC,UAAWD,GAGzC,IAGIxD,EAAEgG,EAAE6L,EAHJ3P,GADJV,EAAOkQ,GAASlQ,EAAM,QACT,GACTwC,EAAIxC,EAAK,GACTyC,EAAIzC,EAAK,GAeb,OAZAwE,GAAK9D,EAAI,IAAM,IACflC,EAAIyO,MAAMzK,GAAKgC,EAAIA,EAAIhC,EAAI,IAC3B6N,EAAIpD,MAAMxK,GAAK+B,EAAIA,EAAI/B,EAAI,IAE3B+B,EAAIyL,GAAgBb,GAAKkB,GAAQ9L,GACjChG,EAAIyR,GAAgBd,GAAKmB,GAAQ9R,GACjC6R,EAAIJ,GAAgBZ,GAAKiB,GAAQD,GAM1B,CAJHE,GAAQ,UAAY/R,EAAI,UAAYgG,EAAI,SAAY6L,GACpDE,IAAS,QAAY/R,EAAI,UAAYgG,EAAI,QAAY6L,GACpDE,GAAQ,SAAY/R,EAAI,SAAYgG,EAAI,UAAY6L,GAE1CrQ,EAAKX,OAAS,EAAIW,EAAK,GAAK,EAC/C,EAEIuQ,GAAU,SAAUvM,GACpB,OAAO,KAAOA,GAAK,OAAU,MAAQA,EAAI,MAAQmM,GAAMnM,EAAG,EAAI,KAAO,KACzE,EAEIsM,GAAU,SAAU/F,GACpB,OAAOA,EAAI0F,GAAgBlJ,GAAKwD,EAAIA,EAAIA,EAAI0F,GAAgBnJ,IAAMyD,EAAI0F,GAAgBX,GAC1F,EAEIkB,GAAYJ,GAEZK,GAAW3P,EAAMI,OACjBwP,GAAS5P,EAAMG,KACf0P,GAAWhN,EACXiN,GAAUxN,EACVyN,GAAUrP,EAEVsP,GAAYd,GAEhBY,GAAQjR,UAAUoR,IAAM,WACpB,OAAOD,GAAU3O,KAAKa,KAC1B,EAEA2N,GAASI,IAAM,WAEX,IADA,IAAI/Q,EAAO,GAAIgC,EAAMC,UAAU5C,OACvB2C,KAAQhC,EAAMgC,GAAQC,UAAWD,GAEzC,OAAO,IAAKsB,SAAS3D,UAAU4D,KAAKT,MAAO8N,GAAS,CAAE,MAAOnN,OAAQzD,EAAM,CAAC,SAChF,EAEA6Q,GAAQpP,OAAOsP,IAAMP,GAErBK,GAAQnP,WAAWuB,KAAK,CACpBP,EAAG,EACHG,KAAM,WAEF,IADA,IAAI7C,EAAO,GAAIgC,EAAMC,UAAU5C,OACvB2C,KAAQhC,EAAMgC,GAAQC,UAAWD,GAGzC,GADAhC,EAAOyQ,GAASzQ,EAAM,OACD,UAAjB0Q,GAAO1Q,IAAqC,IAAhBA,EAAKX,OACjC,MAAO,KAEf,IAGJ,IAAI2R,GAAWlQ,EAAMI,OACjBK,GAAUT,EAAMS,QAChB0P,GAASrQ,KAAK2L,KACd2E,GAAUtQ,KAAKuQ,MACfC,GAAUxQ,KAAKyE,MAEfgM,GAAY,WAEZ,IADA,IAAIrR,EAAO,GAAIgC,EAAMC,UAAU5C,OACvB2C,KAAQhC,EAAMgC,GAAQC,UAAWD,GAEzC,IAAI+B,EAAMiN,GAAShR,EAAM,OACrBU,EAAIqD,EAAI,GACRvB,EAAIuB,EAAI,GACRtB,EAAIsB,EAAI,GACRO,EAAI2M,GAAOzO,EAAIA,EAAIC,EAAIA,GACvBmD,GAAKsL,GAAQzO,EAAGD,GAAKjB,GAAU,KAAO,IAE1C,OADyB,IAArB6P,GAAU,IAAF9M,KAAkBsB,EAAIC,OAAOC,KAClC,CAACpF,EAAG4D,EAAGsB,EAClB,EAEI0L,GAAYD,GAEZE,GAAWzQ,EAAMI,OACjBsQ,GAAUxB,GACVyB,GAAYH,GAEZI,GAAY,WAEZ,IADA,IAAI1R,EAAO,GAAIgC,EAAMC,UAAU5C,OACvB2C,KAAQhC,EAAMgC,GAAQC,UAAWD,GAEzC,IAAI+B,EAAMwN,GAASvR,EAAM,OACrBgE,EAAID,EAAI,GACRE,EAAIF,EAAI,GACRtB,EAAIsB,EAAI,GACR6L,EAAQ4B,GAAQxN,EAAEC,EAAExB,GACpB/B,EAAIkP,EAAM,GACVpN,EAAIoN,EAAM,GACV+B,EAAK/B,EAAM,GACf,OAAO6B,GAAU/Q,EAAE8B,EAAEmP,EACzB,EAEIC,GAAYF,GAEZG,GAAW/Q,EAAMI,OACjBI,GAAUR,EAAMQ,QAChBwQ,GAAQlR,KAAKmR,IACbC,GAAQpR,KAAKmM,IAEbkF,GAAY,WAEZ,IADA,IAAIjS,EAAO,GAAIgC,EAAMC,UAAU5C,OACvB2C,KAAQhC,EAAMgC,GAAQC,UAAWD,GASzC,IAAI+B,EAAM8N,GAAS7R,EAAM,OACrBU,EAAIqD,EAAI,GACRO,EAAIP,EAAI,GACR6B,EAAI7B,EAAI,GAGZ,OAFIkJ,MAAMrH,KAAMA,EAAI,GAEb,CAAClF,EAAGsR,GADXpM,GAAQtE,IACcgD,EAAGwN,GAAMlM,GAAKtB,EACxC,EAEI4N,GAAYD,GAEZE,GAAWrR,EAAMI,OACjBkR,GAAYF,GACZG,GAAU7B,GAEV8B,GAAY,WAEZ,IADA,IAAItS,EAAO,GAAIgC,EAAMC,UAAU5C,OACvB2C,KAAQhC,EAAMgC,GAAQC,UAAWD,GAGzC,IAAItB,GADJV,EAAOmS,GAASnS,EAAM,QACT,GACTsE,EAAItE,EAAK,GACT4F,EAAI5F,EAAK,GACT+D,EAAMqO,GAAW1R,EAAE4D,EAAEsB,GACrB2M,EAAIxO,EAAI,GACRvB,EAAIuB,EAAI,GACR4N,EAAK5N,EAAI,GACT6L,EAAQyC,GAASE,EAAE/P,EAAEmP,GAIzB,MAAO,CAHC/B,EAAM,GACNA,EAAM,GACNA,EAAM,GACG5P,EAAKX,OAAS,EAAIW,EAAK,GAAK,EACjD,EAEIwS,GAAYF,GAEZG,GAAW3R,EAAMI,OACjBwR,GAAUF,GAEVG,GAAU,WAEV,IADA,IAAI3S,EAAO,GAAIgC,EAAMC,UAAU5C,OACvB2C,KAAQhC,EAAMgC,GAAQC,UAAWD,GAEzC,IAAI4Q,EAAMH,GAASzS,EAAM,OAAO6S,UAChC,OAAOH,GAAQ5P,WAAM,EAAQ8P,EACjC,EAEIE,GAAYH,GAEZI,GAAWjS,EAAMI,OACjB8R,GAASlS,EAAMG,KACfgS,GAAWtP,EACXuP,GAAU9P,EACV+P,GAAU3R,EAEV4R,GAAUxB,GAEdsB,GAAQvT,UAAU0T,IAAM,WAAa,OAAOD,GAAQjR,KAAKa,KAAO,EAChEkQ,GAAQvT,UAAUiT,IAAM,WAAa,OAAOQ,GAAQjR,KAAKa,MAAM6P,SAAW,EAE1EI,GAASI,IAAM,WAEX,IADA,IAAIrT,EAAO,GAAIgC,EAAMC,UAAU5C,OACvB2C,KAAQhC,EAAMgC,GAAQC,UAAWD,GAEzC,OAAO,IAAKsB,SAAS3D,UAAU4D,KAAKT,MAAOoQ,GAAS,CAAE,MAAOzP,OAAQzD,EAAM,CAAC,SAChF,EACAiT,GAASL,IAAM,WAEX,IADA,IAAI5S,EAAO,GAAIgC,EAAMC,UAAU5C,OACvB2C,KAAQhC,EAAMgC,GAAQC,UAAWD,GAEzC,OAAO,IAAKsB,SAAS3D,UAAU4D,KAAKT,MAAOoQ,GAAS,CAAE,MAAOzP,OAAQzD,EAAM,CAAC,SAChF,EAEAmT,GAAQ1R,OAAO4R,IAAMb,GACrBW,GAAQ1R,OAAOmR,IAAME,GAErB,CAAC,MAAM,OAAOQ,SAAQ,SAAU/O,GAAK,OAAO4O,GAAQzR,WAAWuB,KAAK,CAChEP,EAAG,EACHG,KAAM,WAEF,IADA,IAAI7C,EAAO,GAAIgC,EAAMC,UAAU5C,OACvB2C,KAAQhC,EAAMgC,GAAQC,UAAWD,GAGzC,GADAhC,EAAO+S,GAAS/S,EAAMuE,GACD,UAAjByO,GAAOhT,IAAqC,IAAhBA,EAAKX,OACjC,OAAOkF,CAEf,GACA,IAQJ,IA8JIgP,GA9JW,CACXC,UAAW,UACXC,aAAc,UACdC,KAAM,UACNC,WAAY,UACZC,MAAO,UACPC,MAAO,UACPC,OAAQ,UACRC,MAAO,UACPC,eAAgB,UAChBC,KAAM,UACNC,WAAY,UACZC,MAAO,UACPC,UAAW,UACXC,UAAW,UACXC,WAAY,UACZC,UAAW,UACXC,MAAO,UACPC,WAAY,UACZC,eAAgB,UAChBC,SAAU,UACVC,QAAS,UACTC,KAAM,UACNC,SAAU,UACVC,SAAU,UACVC,cAAe,UACfC,SAAU,UACVC,UAAW,UACXC,SAAU,UACVC,UAAW,UACXC,YAAa,UACbC,eAAgB,UAChBC,WAAY,UACZC,WAAY,UACZC,QAAS,UACTC,WAAY,UACZC,aAAc,UACdC,cAAe,UACfC,cAAe,UACfC,cAAe,UACfC,cAAe,UACfC,WAAY,UACZC,SAAU,UACVC,YAAa,UACbC,QAAS,UACTC,QAAS,UACTC,WAAY,UACZC,UAAW,UACXC,YAAa,UACbC,YAAa,UACbC,QAAS,UACTC,UAAW,UACXC,WAAY,UACZC,KAAM,UACNC,UAAW,UACXC,KAAM,UACNC,MAAO,UACPC,YAAa,UACbC,KAAM,UACNC,SAAU,UACVC,QAAS,UACTC,UAAW,UACXC,OAAQ,UACRC,MAAO,UACPC,MAAO,UACPC,WAAY,UACZC,SAAU,UACVC,cAAe,UACfC,UAAW,UACXC,aAAc,UACdC,UAAW,UACXC,WAAY,UACZC,UAAW,UACXC,eAAgB,UAChBC,qBAAsB,UACtBC,UAAW,UACXC,WAAY,UACZC,UAAW,UACXC,UAAW,UACXC,YAAa,UACbC,cAAe,UACfC,aAAc,UACdC,eAAgB,UAChBC,eAAgB,UAChBC,eAAgB,UAChBC,YAAa,UACbC,KAAM,UACNC,UAAW,UACXC,MAAO,UACPC,QAAS,UACTC,OAAQ,UACRC,QAAS,UACTC,QAAS,UACTC,iBAAkB,UAClBC,WAAY,UACZC,aAAc,UACdC,aAAc,UACdC,eAAgB,UAChBC,gBAAiB,UACjBC,kBAAmB,UACnBC,gBAAiB,UACjBC,gBAAiB,UACjBC,aAAc,UACdC,UAAW,UACXC,UAAW,UACXC,SAAU,UACVC,YAAa,UACbC,KAAM,UACNC,QAAS,UACTC,MAAO,UACPC,UAAW,UACXC,OAAQ,UACRC,UAAW,UACXC,OAAQ,UACRC,cAAe,UACfC,UAAW,UACXC,cAAe,UACfC,cAAe,UACfC,WAAY,UACZC,UAAW,UACXC,KAAM,UACNC,KAAM,UACNC,KAAM,UACNC,WAAY,UACZC,OAAQ,UACRC,QAAS,UACTC,QAAS,UACTC,cAAe,UACfC,IAAK,UACLC,UAAW,UACXC,UAAW,UACXC,YAAa,UACbC,OAAQ,UACRC,WAAY,UACZC,SAAU,UACVC,SAAU,UACVC,OAAQ,UACRC,OAAQ,UACRC,QAAS,UACTC,UAAW,UACXC,UAAW,UACXC,UAAW,UACXC,KAAM,UACNC,YAAa,UACbC,UAAW,UACXC,IAAK,UACLC,KAAM,UACNC,QAAS,UACTC,OAAQ,UACRC,UAAW,UACXC,OAAQ,UACRC,MAAO,UACPC,MAAO,UACPC,WAAY,UACZC,OAAQ,UACRC,YAAa,WAKbC,GAAU/Z,EACVga,GAAU5b,EACV6b,GAASvc,EAAMG,KAEfqc,GAAS/J,GACTgK,GAAU9R,GACV+R,GAAUlS,GAEd6R,GAAQxd,UAAUL,KAAO,WAErB,IADA,IAAI4D,EAAMsa,GAAQrb,KAAKa,KAAM,OACpB/D,EAAI,EAAG0D,EAAOjD,OAAO+d,KAAKH,IAASre,EAAI0D,EAAKtD,OAAQJ,GAAK,EAAG,CACjE,IAAIye,EAAI/a,EAAK1D,GAEb,GAAIqe,GAAOI,KAAOxa,EAAO,OAAOwa,EAAEne,aACtC,CACA,OAAO2D,CACX,EAEAka,GAAQ3b,OAAOqG,MAAQ,SAAUxI,GAE7B,GADAA,EAAOA,EAAKC,cACR+d,GAAOhe,GAAS,OAAOie,GAAQD,GAAOhe,IAC1C,MAAM,IAAIyD,MAAM,uBAAuBzD,EAC3C,EAEA8d,GAAQ1b,WAAWuB,KAAK,CACpBP,EAAG,EACHG,KAAM,SAAU+C,GAEZ,IADA,IAAIqD,EAAO,GAAIjH,EAAMC,UAAU5C,OAAS,EAChC2C,KAAQ,GAAIiH,EAAMjH,GAAQC,UAAWD,EAAM,GAEnD,IAAKiH,EAAK5J,QAAwB,WAAdge,GAAOzX,IAAmB0X,GAAO1X,EAAErG,eACnD,MAAO,OAEf,IAGJ,IAAIoe,GAAW7c,EAAMI,OAEjB0c,GAAY,WAEZ,IADA,IAAI5d,EAAO,GAAIgC,EAAMC,UAAU5C,OACvB2C,KAAQhC,EAAMgC,GAAQC,UAAWD,GAEzC,IAAI+B,EAAM4Z,GAAS3d,EAAM,OAIzB,OAHQ+D,EAAI,IAGC,KAFLA,EAAI,IAEa,GADjBA,EAAI,EAEhB,EAEI8Z,GAAYD,GAEZE,GAAShd,EAAMG,KAYf8c,GAVU,SAAUC,GACpB,GAAmB,UAAfF,GAAOE,IAAoBA,GAAO,GAAKA,GAAO,SAI9C,MAAO,CAHCA,GAAO,GACNA,GAAO,EAAK,IACP,IAANA,EACM,GAElB,MAAM,IAAIjb,MAAM,sBAAsBib,EAC1C,EAIIC,GAAWta,EACXua,GAAU9a,EACV+a,GAAU3c,EACV4c,GAAStd,EAAMG,KAEfod,GAAUR,GAEdK,GAAQve,UAAUqe,IAAM,WACpB,OAAOK,GAAQlc,KAAKa,KACxB,EAEAib,GAASD,IAAM,WAEX,IADA,IAAIhe,EAAO,GAAIgC,EAAMC,UAAU5C,OACvB2C,KAAQhC,EAAMgC,GAAQC,UAAWD,GAEzC,OAAO,IAAKsB,SAAS3D,UAAU4D,KAAKT,MAAOob,GAAS,CAAE,MAAOza,OAAQzD,EAAM,CAAC,SAChF,EAEAme,GAAQ1c,OAAOuc,IAAMD,GAErBI,GAAQzc,WAAWuB,KAAK,CACpBP,EAAG,EACHG,KAAM,WAEF,IADA,IAAI7C,EAAO,GAAIgC,EAAMC,UAAU5C,OACvB2C,KAAQhC,EAAMgC,GAAQC,UAAWD,GAEzC,GAAoB,IAAhBhC,EAAKX,QAAoC,WAApB+e,GAAOpe,EAAK,KAAoBA,EAAK,IAAM,GAAKA,EAAK,IAAM,SAChF,MAAO,KAEf,IAGJ,IAAIse,GAAW3a,EACX4a,GAAUnb,EACVob,GAAUhd,EACVid,GAAW3d,EAAMI,OACjBwd,GAAS5d,EAAMG,KACf0d,GAAU/d,KAAKyE,MAEnBkZ,GAAQ5e,UAAUd,IAAM,SAASuG,GAG7B,YAFa,IAARA,IAAiBA,GAAI,IAEd,IAARA,EAAwBjD,KAAKa,KAAKhE,MAAM,EAAE,GACvCmD,KAAKa,KAAKhE,MAAM,EAAE,GAAGuB,IAAIoe,GACpC,EAEAJ,GAAQ5e,UAAU2G,KAAO,SAASlB,GAG9B,YAFa,IAARA,IAAiBA,GAAI,GAEnBjD,KAAKa,KAAKhE,MAAM,EAAE,GAAGuB,KAAI,SAAUiK,EAAEvL,GACxC,OAAOA,EAAE,GAAa,IAARmG,EAAgBoF,EAAImU,GAAQnU,GAAMA,CACpD,GACJ,EAEA8T,GAASzf,IAAM,WAEX,IADA,IAAImB,EAAO,GAAIgC,EAAMC,UAAU5C,OACvB2C,KAAQhC,EAAMgC,GAAQC,UAAWD,GAEzC,OAAO,IAAKsB,SAAS3D,UAAU4D,KAAKT,MAAOyb,GAAS,CAAE,MAAO9a,OAAQzD,EAAM,CAAC,SAChF,EAEAwe,GAAQ/c,OAAO5C,IAAM,WAEjB,IADA,IAAImB,EAAO,GAAIgC,EAAMC,UAAU5C,OACvB2C,KAAQhC,EAAMgC,GAAQC,UAAWD,GAEzC,IAAIsE,EAAOmY,GAASze,EAAM,QAE1B,YADgBM,IAAZgG,EAAK,KAAoBA,EAAK,GAAK,GAChCA,CACX,EAEAkY,GAAQ9c,WAAWuB,KAAK,CACpBP,EAAG,EACHG,KAAM,WAEF,IADA,IAAI7C,EAAO,GAAIgC,EAAMC,UAAU5C,OACvB2C,KAAQhC,EAAMgC,GAAQC,UAAWD,GAGzC,GADAhC,EAAOye,GAASze,EAAM,QACD,UAAjB0e,GAAO1e,KAAsC,IAAhBA,EAAKX,QAClB,IAAhBW,EAAKX,QAAmC,UAAnBqf,GAAO1e,EAAK,KAAmBA,EAAK,IAAM,GAAKA,EAAK,IAAM,GAC/E,MAAO,KAEf,IAQJ,IAAI4e,GAAQhe,KAAKie,IAiBbC,GAfoB,SAAUC,GAC9B,IACI/a,EAAEC,EAAExB,EADJuc,EAAOD,EAAS,IAWpB,OATIC,EAAO,IACPhb,EAAI,IACJC,EAAI+a,EAAO,EAAI,GAAK,mBAAqB,oBAAuB/a,EAAI+a,EAAK,GAAK,mBAAqBJ,GAAM3a,GACzGxB,EAAIuc,EAAO,GAAK,EAA0B,mBAAsBvc,EAAIuc,EAAK,IAApD,mBAA0D,mBAAqBJ,GAAMnc,KAE1GuB,EAAI,mBAAqB,kBAAqBA,EAAIgb,EAAK,IAAM,kBAAoBJ,GAAM5a,GACvFC,EAAI,kBAAoB,oBAAuBA,EAAI+a,EAAK,IAAM,iBAAmBJ,GAAM3a,GACvFxB,EAAI,KAED,CAACuB,EAAEC,EAAExB,EAAE,EAClB,EASIwc,GAAkBH,GAClBI,GAAWpe,EAAMI,OACjBmE,GAAQzE,KAAKyE,MAEb8Z,GAAoB,WAEpB,IADA,IAAInf,EAAO,GAAIgC,EAAMC,UAAU5C,OACvB2C,KAAQhC,EAAMgC,GAAQC,UAAWD,GAQzC,IANA,IAKIgd,EALAngB,EAAMqgB,GAASlf,EAAM,OACrBgE,EAAInF,EAAI,GAAI4D,EAAI5D,EAAI,GACpBugB,EAAU,IACVC,EAAU,IACVC,EAAM,GAEHD,EAAUD,EAAUE,GAAK,CAE5B,IAAIrX,EAAQgX,GADZD,EAA6B,IAArBK,EAAUD,IAEbnX,EAAM,GAAKA,EAAM,IAAQxF,EAAIuB,EAC9Bqb,EAAUL,EAEVI,EAAUJ,CAElB,CACA,OAAO3Z,GAAM2Z,EACjB,EAIIO,GAAW5b,EACX6b,GAAUpc,EACVqc,GAAUje,EAEVke,GANoBP,GAQxBK,GAAQ7f,UAAUqf,KAClBQ,GAAQ7f,UAAUof,OAClBS,GAAQ7f,UAAUggB,YAAc,WAC5B,OAAOD,GAAgBvd,KAAKa,KAChC,EAEAuc,GAASP,KACTO,GAASR,OACTQ,GAASI,YAAc,WAEnB,IADA,IAAI3f,EAAO,GAAIgC,EAAMC,UAAU5C,OACvB2C,KAAQhC,EAAMgC,GAAQC,UAAWD,GAEzC,OAAO,IAAKsB,SAAS3D,UAAU4D,KAAKT,MAAO0c,GAAS,CAAE,MAAO/b,OAAQzD,EAAM,CAAC,UAChF,EAEAyf,GAAQhe,OAAOud,KACfS,GAAQhe,OAAOsd,OACfU,GAAQhe,OAAOke,YAAcb,GAE7B,IAAIc,GAAW9e,EAAMI,OACjB2e,GAAOjf,KAAKif,KACZC,GAAQlf,KAAK8O,IACbqQ,GAASnf,KAAKof,KAEdC,GAAc,WAEd,IADA,IAAIjgB,EAAO,GAAIgC,EAAMC,UAAU5C,OACvB2C,KAAQhC,EAAMgC,GAAQC,UAAWD,GAIzC,IAAI+B,EAAM6b,GAAS5f,EAAM,OACrBgE,EAAID,EAAI,GACRE,EAAIF,EAAI,GACRtB,EAAIsB,EAAI,GACR6L,EAAQ,CAACsQ,GAASlc,EAAI,KAAMkc,GAASjc,EAAI,KAAMic,GAASzd,EAAI,MAC5D0d,EAAKvQ,EAAM,GACXwQ,EAAKxQ,EAAM,GACXyQ,EAAKzQ,EAAM,GACXlP,EAAImf,GAAK,YAAeM,EAAK,YAAeC,EAAK,YAAeC,GAChE9b,EAAIsb,GAAK,YAAeM,EAAK,YAAeC,EAAK,YAAeC,GAChE1a,EAAIka,GAAK,YAAeM,EAAK,YAAeC,EAAK,YAAeC,GAEpE,MAAO,CACH,YAAe3f,EAAI,WAAc6D,EAAI,YAAeoB,EACpD,aAAejF,EAAI,YAAc6D,EAAI,YAAeoB,EACpD,YAAejF,EAAI,YAAe6D,EAAI,WAAcoB,EAE5D,EAEI2a,GAAcL,GAElB,SAASC,GAAS5b,GACd,IAAIic,EAAM3f,KAAK2f,IAAIjc,GACnB,OAAIic,EAAM,OACCjc,EAAI,OAEPyb,GAAOzb,IAAM,GAAKwb,IAAOS,EAAM,MAAS,MAAO,IAC3D,CAEA,IAAIC,GAAW1f,EAAMI,OACjBuf,GAAQ7f,KAAK8O,IACbsQ,GAAOpf,KAAKof,KAOZU,GAAc,WAEd,IADA,IAAI1gB,EAAO,GAAIgC,EAAMC,UAAU5C,OACvB2C,KAAQhC,EAAMgC,GAAQC,UAAWD,GAGzC,IAAIuQ,GADJvS,EAAOwgB,GAASxgB,EAAM,QACT,GACTwC,EAAIxC,EAAK,GACTyC,EAAIzC,EAAK,GAETU,EAAI+f,GAAMlO,EAAI,YAAe/P,EAAI,YAAeC,EAAG,GACnD8B,EAAIkc,GAAMlO,EAAI,YAAe/P,EAAI,YAAeC,EAAG,GACnDkD,EAAI8a,GAAMlO,EAAI,YAAe/P,EAAI,YAAcC,EAAG,GAEtD,MAAO,CACH,IAAMke,GAAS,aAAgBjgB,EAAI,aAAe6D,EAAI,YAAeoB,GACrE,IAAMgb,IAAU,aAAejgB,EAAI,aAAe6D,EAAI,YAAeoB,GACrE,IAAMgb,IAAU,YAAejgB,EAAI,YAAe6D,EAAI,YAAcoB,GACpE3F,EAAKX,OAAS,EAAIW,EAAK,GAAK,EAEpC,EAEI4gB,GAAcF,GAElB,SAASC,GAASrc,GACd,IAAIic,EAAM3f,KAAK2f,IAAIjc,GACnB,OAAIic,EAAM,UACEP,GAAK1b,IAAM,IAAM,MAAQmc,GAAMF,EAAK,EAAI,KAAO,MAEhD,MAAJjc,CACX,CAEA,IAAIuc,GAAW/f,EAAMI,OACjB4f,GAAShgB,EAAMG,KACf8f,GAAWpd,EACXqd,GAAU5d,EACV6d,GAAUzf,EAEV0f,GAAcZ,GAElBU,GAAQrhB,UAAUwhB,MAAQ,WACtB,OAAOD,GAAY/e,KAAKa,KAC5B,EAEA+d,GAASI,MAAQ,WAEb,IADA,IAAInhB,EAAO,GAAIgC,EAAMC,UAAU5C,OACvB2C,KAAQhC,EAAMgC,GAAQC,UAAWD,GAEzC,OAAO,IAAKsB,SAAS3D,UAAU4D,KAAKT,MAAOke,GAAS,CAAE,MAAOvd,OAAQzD,EAAM,CAAC,WAChF,EAEAihB,GAAQxf,OAAO0f,MAAQP,GAEvBK,GAAQvf,WAAWuB,KAAK,CACpBP,EAAG,EACHG,KAAM,WAEF,IADA,IAAI7C,EAAO,GAAIgC,EAAMC,UAAU5C,OACvB2C,KAAQhC,EAAMgC,GAAQC,UAAWD,GAGzC,GADAhC,EAAO6gB,GAAS7gB,EAAM,SACD,UAAjB8gB,GAAO9gB,IAAqC,IAAhBA,EAAKX,OACjC,MAAO,OAEf,IAGJ,IAAI+hB,GAAWtgB,EAAMI,OACjBmgB,GAAYf,GACZgB,GAAUhQ,GAEViQ,GAAc,WAEd,IADA,IAAIvhB,EAAO,GAAIgC,EAAMC,UAAU5C,OACvB2C,KAAQhC,EAAMgC,GAAQC,UAAWD,GAEzC,IAAI+B,EAAMqd,GAASphB,EAAM,OACrBgE,EAAID,EAAI,GACRE,EAAIF,EAAI,GACRtB,EAAIsB,EAAI,GACR6L,EAAQyR,GAAUrd,EAAGC,EAAGxB,GACxB/B,EAAIkP,EAAM,GACVpN,EAAIoN,EAAM,GACV+B,EAAK/B,EAAM,GACf,OAAO0R,GAAQ5gB,EAAG8B,EAAGmP,EACzB,EAEI6P,GAAcD,GAEdE,GAAW3gB,EAAMI,OACjBwgB,GAAUxP,GACVyP,GAAYf,GAEZgB,GAAY,WAEZ,IADA,IAAI5hB,EAAO,GAAIgC,EAAMC,UAAU5C,OACvB2C,KAAQhC,EAAMgC,GAAQC,UAAWD,GAGzC,IAAItB,GADJV,EAAOyhB,GAASzhB,EAAM,QACT,GACTsE,EAAItE,EAAK,GACT4F,EAAI5F,EAAK,GACT+D,EAAM2d,GAAQhhB,EAAG4D,EAAGsB,GACpB2M,EAAIxO,EAAI,GACRvB,EAAIuB,EAAI,GACR4N,EAAK5N,EAAI,GACT6L,EAAQ+R,GAAUpP,EAAG/P,EAAGmP,GAI5B,MAAO,CAHC/B,EAAM,GACNA,EAAM,GACNA,EAAM,GACG5P,EAAKX,OAAS,EAAIW,EAAK,GAAK,EACjD,EAEI6hB,GAAcD,GAEd1gB,GAASJ,EAAMI,OACf4gB,GAAShhB,EAAMG,KACf8gB,GAAWpe,EACXqe,GAAU5e,EACV6e,GAAQzgB,EAER0gB,GAAYV,GAEhBQ,GAAQriB,UAAUwiB,MAAQ,WACtB,OAAOD,GAAU/f,KAAKa,KAC1B,EAEA+e,GAASI,MAAQ,WAEb,IADA,IAAIniB,EAAO,GAAIgC,EAAMC,UAAU5C,OACvB2C,KAAQhC,EAAMgC,GAAQC,UAAWD,GAEzC,OAAO,IAAKsB,SAAS3D,UAAU4D,KAAKT,MAAOkf,GAAS,CAAE,MAAOve,OAAQzD,EAAM,CAAC,WAChF,EAEAiiB,GAAMxgB,OAAO0gB,MAAQN,GAErBI,GAAMvgB,WAAWuB,KAAK,CAClBP,EAAG,EACHG,KAAM,WAEF,IADA,IAAI7C,EAAO,GAAIgC,EAAMC,UAAU5C,OACvB2C,KAAQhC,EAAMgC,GAAQC,UAAWD,GAGzC,GADAhC,EAAOkB,GAAOlB,EAAM,SACC,UAAjB8hB,GAAO9hB,IAAqC,IAAhBA,EAAKX,OACjC,MAAO,OAEf,IAGJ,IAAI+iB,GAAUhf,EACVif,GAASvhB,EAAMG,KAEnBmhB,GAAQziB,UAAU8E,MAAQ,SAASjC,EAAG8f,GAGlC,YAFgB,IAAXA,IAAoBA,GAAO,QAEtBhiB,IAANkC,GAAiC,WAAd6f,GAAO7f,GACtB8f,GACAngB,KAAKa,KAAK,GAAKR,EACRL,MAEJ,IAAIigB,GAAQ,CAACjgB,KAAKa,KAAK,GAAIb,KAAKa,KAAK,GAAIb,KAAKa,KAAK,GAAIR,GAAI,OAE/DL,KAAKa,KAAK,EACrB,EAEcI,EAENzD,UAAU4iB,QAAU,WACxB,OAAOpgB,KAAKa,KAAKlE,WAAY,CACjC,EAEA,IAAI0jB,GAAUpf,EACVqf,GAAkBxT,GAEtBuT,GAAQ7iB,UAAU+iB,OAAS,SAASC,QACnB,IAAXA,IAAoBA,EAAO,GAEhC,IAAIzgB,EAAKC,KACL4O,EAAM7O,EAAG6O,MAEb,OADAA,EAAI,IAAM0R,GAAgBvT,GAAKyT,EACxB,IAAIH,GAAQzR,EAAK,OAAOtM,MAAMvC,EAAGuC,SAAS,EAClD,EAEA+d,GAAQ7iB,UAAUijB,SAAW,SAASD,GAGrC,YAFgB,IAAXA,IAAoBA,EAAO,GAEzBxgB,KAAKugB,QAAQC,EACrB,EAEAH,GAAQ7iB,UAAUkjB,OAASL,GAAQ7iB,UAAU+iB,OAC7CF,GAAQ7iB,UAAUmjB,SAAWN,GAAQ7iB,UAAUijB,SAEjCxf,EAENzD,UAAUojB,IAAM,SAAUC,GAC9B,IAAIjf,EAAMif,EAAG7iB,MAAM,KACfkC,EAAO0B,EAAI,GACXkf,EAAUlf,EAAI,GACdmf,EAAM/gB,KAAKE,KACf,GAAI4gB,EAAS,CACT,IAAIhkB,EAAIoD,EAAK6J,QAAQ+W,IAAkC,OAAtB5gB,EAAKkE,OAAO,EAAG,GAAc,EAAI,GAClE,GAAItH,GAAK,EAAK,OAAOikB,EAAIjkB,GACzB,MAAM,IAAI8D,MAAO,mBAAqBkgB,EAAU,YAAc5gB,EAClE,CACI,OAAO6gB,CAEf,EAEA,IAAIC,GAAU/f,EACVggB,GAAStiB,EAAMG,KACfoiB,GAAQziB,KAAK8O,IAEb4T,GAAM,KACNC,GAAW,GAEfJ,GAAQxjB,UAAU6jB,UAAY,SAASC,GACnC,QAAYnjB,IAARmjB,GAAqC,WAAhBL,GAAOK,GAAmB,CAC/C,GAAY,IAARA,EAEA,OAAO,IAAIN,GAAQ,CAAC,EAAE,EAAE,EAAEhhB,KAAKa,KAAK,IAAK,OAE7C,GAAY,IAARygB,EAEA,OAAO,IAAIN,GAAQ,CAAC,IAAI,IAAI,IAAIhhB,KAAKa,KAAK,IAAK,OAGnD,IAAI0gB,EAAUvhB,KAAKqhB,YACfnhB,EAAO,MACPshB,EAAWJ,GAEX1gB,EAAO,SAAU+gB,EAAKC,GACtB,IAAIC,EAAMF,EAAIG,YAAYF,EAAM,GAAKxhB,GACjC2hB,EAAKF,EAAIN,YACb,OAAI5iB,KAAK2f,IAAIkD,EAAMO,GAAMV,KAAQK,IAEtBG,EAEJE,EAAKP,EAAM5gB,EAAK+gB,EAAKE,GAAOjhB,EAAKihB,EAAKD,EACjD,EAEIhlB,GAAO6kB,EAAUD,EAAM5gB,EAAK,IAAIsgB,GAAQ,CAAC,EAAE,EAAE,IAAKhhB,MAAQU,EAAKV,KAAM,IAAIghB,GAAQ,CAAC,IAAI,IAAI,QAAQtkB,MACtG,OAAO,IAAIskB,GAAQtkB,EAAI4E,OAAQ,CAACtB,KAAKa,KAAK,KAC9C,CACA,OAAOihB,GAAcnhB,WAAM,EAASX,KAAS,KAAEnD,MAAM,EAAE,GAC3D,EAGA,IAAIilB,GAAgB,SAAUjgB,EAAEC,EAAExB,GAM9B,MAAO,OAHPuB,EAAIkgB,GAAYlgB,IAGI,OAFpBC,EAAIigB,GAAYjgB,IAEiB,OADjCxB,EAAIyhB,GAAYzhB,GAEpB,EAEIyhB,GAAc,SAAU1lB,GAExB,OADAA,GAAK,MACO,OAAUA,EAAE,MAAQ6kB,IAAO7kB,EAAE,MAAO,MAAO,IAC3D,EAEI2lB,GAAiB,CAAC,EAElBC,GAAUhhB,EACVihB,GAASvjB,EAAMG,KACfqjB,GAAeH,GAEfI,GAAQ,SAAUC,EAAMC,EAAMvgB,QACnB,IAANA,IAAeA,EAAE,IAEtB,IADA,IAAI+E,EAAO,GAAIjH,EAAMC,UAAU5C,OAAS,EAChC2C,KAAQ,GAAIiH,EAAMjH,GAAQC,UAAWD,EAAM,GAEnD,IAAIK,EAAO4G,EAAK,IAAM,OAKtB,GAJKqb,GAAajiB,IAAU4G,EAAK5J,SAE7BgD,EAAO3C,OAAO+d,KAAK6G,IAAc,KAEhCA,GAAajiB,GACd,MAAM,IAAIU,MAAO,sBAAwBV,EAAO,mBAIpD,MAFqB,WAAjBgiB,GAAOG,KAAsBA,EAAO,IAAIJ,GAAQI,IAC/B,WAAjBH,GAAOI,KAAsBA,EAAO,IAAIL,GAAQK,IAC7CH,GAAajiB,GAAMmiB,EAAMC,EAAMvgB,GACjCO,MAAM+f,EAAK/f,QAAUP,GAAKugB,EAAKhgB,QAAU+f,EAAK/f,SACvD,EAEIigB,GAAUthB,EACVuhB,GAAMJ,GAEVG,GAAQ/kB,UAAUglB,IAClBD,GAAQ/kB,UAAUokB,YAAc,SAASU,EAAMvgB,QACnC,IAANA,IAAeA,EAAE,IAEtB,IADA,IAAI+E,EAAO,GAAIjH,EAAMC,UAAU5C,OAAS,EAChC2C,KAAQ,GAAIiH,EAAMjH,GAAQC,UAAWD,EAAM,GAEnD,OAAO2iB,GAAI7hB,WAAM,EAAQ,CAAEX,KAAMsiB,EAAMvgB,GAAIT,OAAQwF,GACpD,EAEA,IAAI2b,GAAUxhB,EAEdwhB,GAAQjlB,UAAUklB,YAAc,SAASvC,QACxB,IAAXA,IAAoBA,GAAO,GAEhC,IAAIzjB,EAAMsD,KAAKa,KACXR,EAAI3D,EAAI,GACZ,OAAIyjB,GACHngB,KAAKa,KAAO,CAACnE,EAAI,GAAG2D,EAAG3D,EAAI,GAAG2D,EAAG3D,EAAI,GAAG2D,EAAGA,GACpCL,MAEA,IAAIyiB,GAAQ,CAAC/lB,EAAI,GAAG2D,EAAG3D,EAAI,GAAG2D,EAAG3D,EAAI,GAAG2D,EAAGA,GAAI,MAExD,EAEA,IAAIsiB,GAAU1hB,EACV2hB,GAAgB9V,GAEpB6V,GAAQnlB,UAAUqlB,SAAW,SAASrC,QACrB,IAAXA,IAAoBA,EAAO,GAEhC,IAAIzgB,EAAKC,KACLkR,EAAMnR,EAAGmR,MAGb,OAFAA,EAAI,IAAM0R,GAAc7V,GAAKyT,EACzBtP,EAAI,GAAK,IAAKA,EAAI,GAAK,GACpB,IAAIyR,GAAQzR,EAAK,OAAO5O,MAAMvC,EAAGuC,SAAS,EAClD,EAEAqgB,GAAQnlB,UAAUslB,WAAa,SAAStC,GAGvC,YAFgB,IAAXA,IAAoBA,EAAO,GAEzBxgB,KAAK6iB,UAAUrC,EACvB,EAEA,IAAIuC,GAAU9hB,EACV+hB,GAASrkB,EAAMG,KAEnBikB,GAAQvlB,UAAUylB,IAAM,SAAUpC,EAAIqC,EAAO/C,QACzB,IAAXA,IAAoBA,GAAS,GAElC,IAAIve,EAAMif,EAAG7iB,MAAM,KACfkC,EAAO0B,EAAI,GACXkf,EAAUlf,EAAI,GACdmf,EAAM/gB,KAAKE,KACf,GAAI4gB,EAAS,CACT,IAAIhkB,EAAIoD,EAAK6J,QAAQ+W,IAAkC,OAAtB5gB,EAAKkE,OAAO,EAAG,GAAc,EAAI,GAClE,GAAItH,GAAK,EAAG,CACR,GAAqB,UAAjBkmB,GAAOE,GACP,OAAQA,EAAMC,OAAO,IACjB,IAAK,IAGL,IAAK,IACDpC,EAAIjkB,KAAOomB,EACX,MACJ,IAAK,IACDnC,EAAIjkB,KAAOomB,EAAM9e,OAAO,GACxB,MACJ,IAAK,IACD2c,EAAIjkB,KAAOomB,EAAM9e,OAAO,GACxB,MACJ,QACI2c,EAAIjkB,IAAMomB,MAEf,IAAsB,WAAlBF,GAAOE,GAGd,MAAM,IAAItiB,MAAM,mCAFhBmgB,EAAIjkB,GAAKomB,CAGb,CACA,IAAIE,EAAM,IAAIL,GAAQhC,EAAK7gB,GAC3B,OAAIigB,GACAngB,KAAKa,KAAOuiB,EAAIviB,KACTb,MAEJojB,CACX,CACA,MAAM,IAAIxiB,MAAO,mBAAqBkgB,EAAU,YAAc5gB,EAClE,CACI,OAAO6gB,CAEf,EAEA,IAAIsC,GAAUpiB,EAEVvE,GAAM,SAAU2lB,EAAMC,EAAMvgB,GAC5B,IAAIuhB,EAAOjB,EAAKxhB,KACZ0iB,EAAOjB,EAAKzhB,KAChB,OAAO,IAAIwiB,GACPC,EAAK,GAAKvhB,GAAKwhB,EAAK,GAAGD,EAAK,IAC5BA,EAAK,GAAKvhB,GAAKwhB,EAAK,GAAGD,EAAK,IAC5BA,EAAK,GAAKvhB,GAAKwhB,EAAK,GAAGD,EAAK,IAC5B,MAER,EAGAtB,GAAetlB,IAAMA,GAErB,IAAI8mB,GAAUviB,EACVwiB,GAAShlB,KAAK2L,KACdsZ,GAAQjlB,KAAK8O,IAEboW,GAAO,SAAUtB,EAAMC,EAAMvgB,GAC7B,IAAIH,EAAMygB,EAAKxhB,KACX+iB,EAAKhiB,EAAI,GACTiiB,EAAKjiB,EAAI,GACTkiB,EAAKliB,EAAI,GACT6L,EAAQ6U,EAAKzhB,KACbkjB,EAAKtW,EAAM,GACXuW,EAAKvW,EAAM,GACXwW,EAAKxW,EAAM,GACf,OAAO,IAAI+V,GACPC,GAAOC,GAAME,EAAG,IAAM,EAAE7hB,GAAK2hB,GAAMK,EAAG,GAAKhiB,GAC3C0hB,GAAOC,GAAMG,EAAG,IAAM,EAAE9hB,GAAK2hB,GAAMM,EAAG,GAAKjiB,GAC3C0hB,GAAOC,GAAMI,EAAG,IAAM,EAAE/hB,GAAK2hB,GAAMO,EAAG,GAAKliB,GAC3C,MAER,EAGAigB,GAAe2B,KAAOA,GAEtB,IAAIO,GAAUjjB,EAEV2N,GAAM,SAAUyT,EAAMC,EAAMvgB,GAC5B,IAAIuhB,EAAOjB,EAAKzT,MACZ2U,EAAOjB,EAAK1T,MAChB,OAAO,IAAIsV,GACPZ,EAAK,GAAKvhB,GAAKwhB,EAAK,GAAGD,EAAK,IAC5BA,EAAK,GAAKvhB,GAAKwhB,EAAK,GAAGD,EAAK,IAC5BA,EAAK,GAAKvhB,GAAKwhB,EAAK,GAAGD,EAAK,IAC5B,MAER,EAGAtB,GAAepT,IAAMA,GAErB,IAAIuV,GAAUljB,EAEVmjB,GAAO,SAAU/B,EAAMC,EAAMvgB,EAAGK,GAChC,IAAIqC,EAAQoD,EAERyb,EAAMC,EAsBNc,EAAMC,EAAMC,EAAMC,EAAMC,EAAMC,EAM9BC,EAAKC,EAAKC,EAwBd,MAnDU,QAANziB,GACAkhB,EAAOjB,EAAKlc,MACZod,EAAOjB,EAAKnc,OACC,QAAN/D,GACPkhB,EAAOjB,EAAKxV,MACZ0W,EAAOjB,EAAKzV,OACC,QAANzK,GACPkhB,EAAOjB,EAAKxZ,MACZ0a,EAAOjB,EAAKzZ,OACC,QAANzG,GACPkhB,EAAOjB,EAAK/W,MACZiY,EAAOjB,EAAKhX,OACC,QAANlJ,GAAqB,QAANA,GACtBA,EAAI,MACJkhB,EAAOjB,EAAK5R,MACZ8S,EAAOjB,EAAK7R,OACC,UAANrO,IACPkhB,EAAOjB,EAAKrC,QAAQtP,UACpB6S,EAAOjB,EAAKtC,QAAQtP,WAID,MAAnBtO,EAAEgC,OAAO,EAAG,IAAoB,UAANhC,IACViiB,GAAf5f,EAAS6e,GAAoB,GAAIiB,EAAO9f,EAAO,GAAIggB,EAAOhgB,EAAO,GAChD6f,GAAjBzc,EAAW0b,GAAsB,GAAIiB,EAAO3c,EAAS,GAAI6c,EAAO7c,EAAS,IAKzEiD,MAAMuZ,IAAUvZ,MAAMwZ,GAUfxZ,MAAMuZ,GAGNvZ,MAAMwZ,GAIdM,EAAMlhB,OAAOC,KAHbihB,EAAMN,EACO,GAARG,GAAqB,GAARA,GAAmB,OAALriB,IAAcuiB,EAAMH,KAJpDI,EAAMP,EACO,GAARK,GAAqB,GAARA,GAAmB,OAALtiB,IAAcuiB,EAAMJ,IAHpDK,EAAMP,EAAOtiB,GAPTuiB,EAAOD,GAAQC,EAAOD,EAAO,IACxBC,GAAQD,EAAO,KACbC,EAAOD,GAAQA,EAAOC,EAAO,IAC/BA,EAAO,IAAMD,EAEbC,EAAOD,QAaRlmB,IAARwmB,IAAqBA,EAAMJ,EAAOxiB,GAAKyiB,EAAOD,IAClDM,EAAMJ,EAAO1iB,GAAK2iB,EAAOD,GACF,IAAIN,GAAd,UAAN/hB,EAA4B,CAACyiB,EAAKF,EAAKC,GAAuB,CAACA,EAAKD,EAAKE,GAA5BziB,EACxD,EAEI0iB,GAAoBV,GAEpBlT,GAAM,SAAUmR,EAAMC,EAAMvgB,GAC/B,OAAO+iB,GAAkBzC,EAAMC,EAAMvgB,EAAG,MACzC,EAGAigB,GAAe9Q,IAAMA,GACrB8Q,GAAevR,IAAMS,GAErB,IAAI6T,GAAU9jB,EAEV4a,GAAM,SAAUwG,EAAMC,EAAMvgB,GAC5B,IAAIijB,EAAK3C,EAAKxG,MACVoJ,EAAK3C,EAAKzG,MACd,OAAO,IAAIkJ,GAAQC,EAAKjjB,GAAKkjB,EAAGD,GAAK,MACzC,EAGAhD,GAAenG,IAAMA,GAErB,IAAIqJ,GAAoBd,GAEpBvb,GAAM,SAAUwZ,EAAMC,EAAMvgB,GAC/B,OAAOmjB,GAAkB7C,EAAMC,EAAMvgB,EAAG,MACzC,EAGAigB,GAAenZ,IAAMA,GAErB,IAAIsc,GAAoBf,GAEpB9Y,GAAM,SAAU+W,EAAMC,EAAMvgB,GAC/B,OAAOojB,GAAkB9C,EAAMC,EAAMvgB,EAAG,MACzC,EAGAigB,GAAe1W,IAAMA,GAErB,IAAI8Z,GAAoBhB,GAEpBje,GAAM,SAAUkc,EAAMC,EAAMvgB,GAC/B,OAAOqjB,GAAkB/C,EAAMC,EAAMvgB,EAAG,MACzC,EAGAigB,GAAe7b,IAAMA,GAErB,IAAIkf,GAAoBjB,GAEpBvX,GAAM,SAAUwV,EAAMC,EAAMvgB,GAC/B,OAAOsjB,GAAkBhD,EAAMC,EAAMvgB,EAAG,MACzC,EAGAigB,GAAenV,IAAMA,GAErB,IAAIyY,GAAUrkB,EAEV+d,GAAQ,SAAUqD,EAAMC,EAAMvgB,GAC9B,IAAIuhB,EAAOjB,EAAKrD,QACZuE,EAAOjB,EAAKtD,QAChB,OAAO,IAAIsG,GACPhC,EAAK,GAAKvhB,GAAKwhB,EAAK,GAAKD,EAAK,IAC9BA,EAAK,GAAKvhB,GAAKwhB,EAAK,GAAKD,EAAK,IAC9BA,EAAK,GAAKvhB,GAAKwhB,EAAK,GAAKD,EAAK,IAC9B,QAER,EAGAtB,GAAehD,MAAQA,GAEvB,IAAIuG,GAAkBnB,GAElBpE,GAAQ,SAAUqC,EAAMC,EAAMvgB,GAC9B,OAAOwjB,GAAgBlD,EAAMC,EAAMvgB,EAAG,QAC1C,EAGAigB,GAAehC,MAAQA,GAEvB,IAAIwF,GAAUvkB,EACVwkB,GAAa9mB,EAAMC,SACnB8mB,GAAQjnB,KAAK8O,IACboY,GAASlnB,KAAK2L,KACdwb,GAAOnnB,KAAKC,GACZmnB,GAAQpnB,KAAKmM,IACbkb,GAAQrnB,KAAKmR,IACbmW,GAAUtnB,KAAKuQ,MAEfgX,GAAU,SAAUC,EAAQ/lB,EAAMgmB,QACpB,IAAThmB,IAAkBA,EAAK,aACX,IAAZgmB,IAAqBA,EAAQ,MAElC,IAAI3nB,EAAI0nB,EAAO/oB,OACVgpB,IAAWA,EAAUnoB,MAAMooB,KAAK,IAAIpoB,MAAMQ,IAAIH,KAAI,WAAc,OAAO,CAAG,KAE/E,IAAIF,EAAIK,EAAI2nB,EAAQE,QAAO,SAAS/lB,EAAGC,GAAK,OAAOD,EAAIC,CAAG,IAI1D,GAHA4lB,EAAQ/U,SAAQ,SAAUkV,EAAEvpB,GAAKopB,EAAQppB,IAAMoB,CAAG,IAElD+nB,EAASA,EAAO7nB,KAAI,SAAU+D,GAAK,OAAO,IAAIqjB,GAAQrjB,EAAI,IAC7C,SAATjC,EACA,OAAOomB,GAAcL,EAAQC,GAQjC,IANA,IAAIK,EAAQN,EAAOO,QACfC,EAAMF,EAAM3F,IAAI1gB,GAChBwmB,EAAM,GACNC,EAAK,EACLC,EAAK,EAEA9pB,EAAE,EAAGA,EAAE2pB,EAAIvpB,OAAQJ,IAGxB,GAFA2pB,EAAI3pB,IAAM2pB,EAAI3pB,IAAM,GAAKopB,EAAQ,GACjCQ,EAAI5lB,KAAKgK,MAAM2b,EAAI3pB,IAAM,EAAIopB,EAAQ,IACd,MAAnBhmB,EAAKijB,OAAOrmB,KAAegO,MAAM2b,EAAI3pB,IAAK,CAC1C,IAAI+pB,EAAIJ,EAAI3pB,GAAK,IAAM8oB,GACvBe,GAAMd,GAAMgB,GAAKX,EAAQ,GACzBU,GAAMd,GAAMe,GAAKX,EAAQ,EAC7B,CAGJ,IAAI5jB,EAAQikB,EAAMjkB,QAAU4jB,EAAQ,GACpCD,EAAO9U,SAAQ,SAAUhP,EAAE2kB,GACvB,IAAIC,EAAO5kB,EAAEye,IAAI1gB,GACjBoC,GAASH,EAAEG,QAAU4jB,EAAQY,EAAG,GAChC,IAAK,IAAIhqB,EAAE,EAAGA,EAAE2pB,EAAIvpB,OAAQJ,IACxB,IAAKgO,MAAMic,EAAKjqB,IAEZ,GADA4pB,EAAI5pB,IAAMopB,EAAQY,EAAG,GACE,MAAnB5mB,EAAKijB,OAAOrmB,GAAY,CACxB,IAAI+pB,EAAIE,EAAKjqB,GAAK,IAAM8oB,GACxBe,GAAMd,GAAMgB,GAAKX,EAAQY,EAAG,GAC5BF,GAAMd,GAAMe,GAAKX,EAAQY,EAAG,EAChC,MACIL,EAAI3pB,IAAMiqB,EAAKjqB,GAAKopB,EAAQY,EAAG,EAI/C,IAEA,IAAK,IAAI9pB,EAAI,EAAGA,EAAIypB,EAAIvpB,OAAQF,IAC5B,GAAyB,MAArBkD,EAAKijB,OAAOnmB,GAAc,CAE1B,IADA,IAAIgqB,EAAMjB,GAAQa,EAAKF,EAAI1pB,GAAM2pB,EAAKD,EAAI1pB,IAAQ4oB,GAAO,IAClDoB,EAAM,GAAKA,GAAO,IACzB,KAAOA,GAAO,KAAOA,GAAO,IAC5BP,EAAIzpB,GAAOgqB,CACf,MACIP,EAAIzpB,GAAOypB,EAAIzpB,GAAK0pB,EAAI1pB,GAIhC,OADAsF,GAAS/D,EACF,IAAKinB,GAAQiB,EAAKvmB,GAAOoC,MAAMA,EAAQ,OAAU,EAAIA,GAAO,EACvE,EAGIgkB,GAAgB,SAAUL,EAAQC,GAGlC,IAFA,IAAI3nB,EAAI0nB,EAAO/oB,OACXupB,EAAM,CAAC,EAAE,EAAE,EAAE,GACR3pB,EAAE,EAAGA,EAAImpB,EAAO/oB,OAAQJ,IAAK,CAClC,IAAImqB,EAAMhB,EAAOnpB,GACbiF,EAAImkB,EAAQppB,GAAKyB,EACjB7B,EAAMuqB,EAAIpmB,KACd4lB,EAAI,IAAMf,GAAMhpB,EAAI,GAAG,GAAKqF,EAC5B0kB,EAAI,IAAMf,GAAMhpB,EAAI,GAAG,GAAKqF,EAC5B0kB,EAAI,IAAMf,GAAMhpB,EAAI,GAAG,GAAKqF,EAC5B0kB,EAAI,IAAM/pB,EAAI,GAAKqF,CACvB,CAKA,OAJA0kB,EAAI,GAAKd,GAAOc,EAAI,IACpBA,EAAI,GAAKd,GAAOc,EAAI,IACpBA,EAAI,GAAKd,GAAOc,EAAI,IAChBA,EAAI,GAAK,WAAaA,EAAI,GAAK,GAC5B,IAAIjB,GAAQC,GAAWgB,GAClC,EAMIS,GAAW1lB,EACX2lB,GAASxoB,EAAMG,KAEfsoB,GAAQ3oB,KAAK8O,IAEb8Z,GAAU,SAASpB,GAGnB,IAAIqB,EAAQ,MACRC,EAASL,GAAS,QAClBM,EAAU,EAEVC,EAAU,CAAC,EAAG,GACdC,EAAO,GACPC,EAAW,CAAC,EAAE,GACdC,GAAW,EACXC,EAAU,GACVC,GAAO,EACPC,EAAO,EACPC,EAAO,EACPC,GAAoB,EACpBC,EAAc,CAAC,EACfC,GAAY,EACZC,EAAS,EAITC,EAAY,SAASpC,GAMrB,IALAA,EAASA,GAAU,CAAC,OAAQ,UACK,WAAnBkB,GAAOlB,IAAwBiB,GAASoB,QAClDpB,GAASoB,OAAOrC,EAAO7oB,iBACvB6oB,EAASiB,GAASoB,OAAOrC,EAAO7oB,gBAEb,UAAnB+pB,GAAOlB,GAAqB,CAEN,IAAlBA,EAAO/oB,SACP+oB,EAAS,CAACA,EAAO,GAAIA,EAAO,KAGhCA,EAASA,EAAOppB,MAAM,GAEtB,IAAK,IAAIsF,EAAE,EAAGA,EAAE8jB,EAAO/oB,OAAQiF,IAC3B8jB,EAAO9jB,GAAK+kB,GAASjB,EAAO9jB,IAGhCulB,EAAKxqB,OAAS,EACd,IAAK,IAAIqrB,EAAI,EAAGA,EAAItC,EAAO/oB,OAAQqrB,IAC/Bb,EAAK5mB,KAAKynB,GAAKtC,EAAO/oB,OAAO,GAErC,CAEA,OADAsrB,IACOX,EAAU5B,CACrB,EAEIwC,EAAW,SAASvF,GACpB,GAAgB,MAAZ0E,EAAkB,CAGlB,IAFA,IAAIrM,EAAIqM,EAAS1qB,OAAO,EACpBJ,EAAI,EACDA,EAAIye,GAAK2H,GAAS0E,EAAS9qB,IAC9BA,IAEJ,OAAOA,EAAE,CACb,CACA,OAAO,CACX,EAEI4rB,EAAgB,SAAUtgB,GAAK,OAAOA,CAAG,EACzCugB,EAAa,SAAUvgB,GAAK,OAAOA,CAAG,EActCwgB,EAAW,SAASC,EAAKC,GACzB,IAAI7B,EAAK7e,EAET,GADiB,MAAb0gB,IAAqBA,GAAY,GACjChe,MAAM+d,IAAiB,OAARA,EAAiB,OAAOtB,EAavCnf,EAZC0gB,EAYGD,EAXAjB,GAAaA,EAAS1qB,OAAS,EAEvBurB,EAASI,IACRjB,EAAS1qB,OAAO,GAClB8qB,IAASD,GAEXc,EAAMd,IAASC,EAAOD,GAEvB,EAOZ3f,EAAIugB,EAAWvgB,GAEV0gB,IACD1gB,EAAIsgB,EAActgB,IAGP,IAAXggB,IAAgBhgB,EAAIgf,GAAMhf,EAAGggB,IAEjChgB,EAAIuf,EAAS,GAAMvf,GAAK,EAAIuf,EAAS,GAAKA,EAAS,IAEnDvf,EAAI3J,KAAKnC,IAAI,EAAGmC,KAAKlC,IAAI,EAAG6L,IAE5B,IAAIlK,EAAIO,KAAKkJ,MAAU,IAAJS,GAEnB,GAAI+f,GAAaD,EAAYhqB,GACzB+oB,EAAMiB,EAAYhqB,OACf,CACH,GAAwB,UAApBipB,GAAOU,GAEP,IAAK,IAAI/qB,EAAE,EAAGA,EAAE4qB,EAAKxqB,OAAQJ,IAAK,CAC9B,IAAIyD,EAAImnB,EAAK5qB,GACb,GAAIsL,GAAK7H,EAAG,CACR0mB,EAAMY,EAAQ/qB,GACd,KACJ,CACA,GAAKsL,GAAK7H,GAAOzD,IAAO4qB,EAAKxqB,OAAO,EAAK,CACrC+pB,EAAMY,EAAQ/qB,GACd,KACJ,CACA,GAAIsL,EAAI7H,GAAK6H,EAAIsf,EAAK5qB,EAAE,GAAI,CACxBsL,GAAKA,EAAE7H,IAAImnB,EAAK5qB,EAAE,GAAGyD,GACrB0mB,EAAMC,GAAStF,YAAYiG,EAAQ/qB,GAAI+qB,EAAQ/qB,EAAE,GAAIsL,EAAGkf,GACxD,KACJ,CACJ,KAC2B,aAApBH,GAAOU,KACdZ,EAAMY,EAAQzf,IAEd+f,IAAaD,EAAYhqB,GAAK+oB,EACtC,CACA,OAAOA,CACX,EAEIuB,EAAa,WAAc,OAAON,EAAc,CAAC,CAAG,EAExDG,EAAUpC,GAIV,IAAIlkB,EAAI,SAASsG,GACb,IAAIlG,EAAI+kB,GAAS0B,EAASvgB,IAC1B,OAAIyf,GAAQ3lB,EAAE2lB,GAAgB3lB,EAAE2lB,KAAyB3lB,CAC7D,EAuMA,OArMAJ,EAAEgnB,QAAU,SAASA,GACjB,GAAe,MAAXA,EAAiB,CACjB,GAAwB,UAApB5B,GAAO4B,GACPnB,EAAWmB,EACXtB,EAAU,CAACsB,EAAQ,GAAIA,EAAQA,EAAQ7rB,OAAO,QAC3C,CACH,IAAI8rB,EAAI9B,GAAS+B,QAAQxB,GAErBG,EADY,IAAZmB,EACW,CAACC,EAAE1sB,IAAK0sB,EAAEzsB,KAEV2qB,GAASgC,OAAOF,EAAG,IAAKD,EAE3C,CACA,OAAOhnB,CACX,CACA,OAAO6lB,CACX,EAGA7lB,EAAEonB,OAAS,SAASA,GAChB,IAAKrpB,UAAU5C,OACX,OAAOuqB,EAEXM,EAAOoB,EAAO,GACdnB,EAAOmB,EAAOA,EAAOjsB,OAAO,GAC5BwqB,EAAO,GACP,IAAIxpB,EAAI2pB,EAAQ3qB,OAChB,GAAKisB,EAAOjsB,SAAWgB,GAAO6pB,IAASC,EAEnC,IAAK,IAAIlrB,EAAI,EAAG0D,EAAOzC,MAAMooB,KAAKgD,GAASrsB,EAAI0D,EAAKtD,OAAQJ,GAAK,EAAG,CAChE,IAAIksB,EAAIxoB,EAAK1D,GAEf4qB,EAAK5mB,MAAMkoB,EAAEjB,IAASC,EAAKD,GAC7B,KACG,CACH,IAAK,IAAI5lB,EAAE,EAAGA,EAAEjE,EAAGiE,IACfulB,EAAK5mB,KAAKqB,GAAGjE,EAAE,IAEnB,GAAIirB,EAAOjsB,OAAS,EAAG,CAEnB,IAAIksB,EAAOD,EAAO/qB,KAAI,SAAU4qB,EAAElsB,GAAK,OAAOA,GAAGqsB,EAAOjsB,OAAO,EAAI,IAC/DmsB,EAAUF,EAAO/qB,KAAI,SAAU4qB,GAAK,OAAQA,EAAIjB,IAASC,EAAOD,EAAO,IACtEsB,EAAQC,OAAM,SAAUT,EAAK/rB,GAAK,OAAOssB,EAAKtsB,KAAO+rB,CAAK,MAC3DF,EAAa,SAAUvgB,GACnB,GAAIA,GAAK,GAAKA,GAAK,EAAK,OAAOA,EAE/B,IADA,IAAItL,EAAI,EACDsL,GAAKihB,EAAQvsB,EAAE,IAAMA,IAC5B,IAAIiF,GAAKqG,EAAIihB,EAAQvsB,KAAOusB,EAAQvsB,EAAE,GAAKusB,EAAQvsB,IAEnD,OADUssB,EAAKtsB,GAAKiF,GAAKqnB,EAAKtsB,EAAE,GAAKssB,EAAKtsB,GAE9C,EAGR,CACJ,CAEA,OADA2qB,EAAU,CAACM,EAAMC,GACVjmB,CACX,EAEAA,EAAE7B,KAAO,SAASqpB,GACd,OAAKzpB,UAAU5C,QAGfoqB,EAAQiC,EACRf,IACOzmB,GAJIulB,CAKf,EAEAvlB,EAAEynB,MAAQ,SAASvD,EAAQyB,GAEvB,OADAW,EAAUpC,GACHlkB,CACX,EAEAA,EAAEqhB,IAAM,SAASqG,GAEb,OADA3B,EAAO2B,EACA1nB,CACX,EAEAA,EAAE2nB,OAAS,SAASb,GAChB,OAAK/oB,UAAU5C,QAGfsqB,EAAUqB,EACH9mB,GAHIylB,CAIf,EAEAzlB,EAAE4nB,iBAAmB,SAASthB,GAkC1B,OAjCS,MAALA,IAAaA,GAAI,GACrB4f,EAAoB5f,EACpBmgB,IAEIE,EADAT,EACgB,SAAS7f,GAUrB,IATA,IAAIwhB,EAAKhB,EAAS,GAAG,GAAMha,MAAM,GAC7Bib,EAAKjB,EAAS,GAAG,GAAMha,MAAM,GAC7Bkb,EAAMF,EAAKC,EACXE,EAAWnB,EAASxgB,GAAG,GAAMwG,MAAM,GACnCob,EAAUJ,GAAOC,EAAKD,GAAMxhB,EAC5B6hB,EAASF,EAAWC,EACpB7c,EAAK,EACLvI,EAAK,EACL4c,EAAW,GACP/iB,KAAK2f,IAAI6L,GAAU,KAAUzI,KAAa,GAEtCsI,IAAOG,IAAW,GAClBA,EAAS,GACT9c,EAAK/E,EACLA,GAAgB,IAAVxD,EAAKwD,KAEXxD,EAAKwD,EACLA,GAAgB,IAAV+E,EAAK/E,IAEf2hB,EAAWnB,EAASxgB,GAAG,GAAMwG,MAAM,GAC5Bqb,EAASF,EAAWC,EAGnC,OAAO5hB,CACX,EAEgB,SAAUA,GAAK,OAAOA,CAAG,EAEtCrG,CACX,EAEAA,EAAEmoB,QAAU,SAAS3pB,GACjB,OAAS,MAALA,GACkB,WAAd4mB,GAAO5mB,KACPA,EAAI,CAACA,EAAEA,IAEXonB,EAAWpnB,EACJwB,GAEA4lB,CAEf,EAEA5lB,EAAEkkB,OAAS,SAASkE,EAAW/G,GAEvBtjB,UAAU5C,OAAS,IAAKkmB,EAAM,OAClC,IAAIgH,EAAS,GAEb,GAAyB,IAArBtqB,UAAU5C,OACVktB,EAASvC,EAAQhrB,MAAM,QAEpB,GAAkB,IAAdstB,EACPC,EAAS,CAACroB,EAAE,UAET,GAAIooB,EAAY,EAAG,CACtB,IAAIE,EAAK5C,EAAQ,GACb6C,EAAK7C,EAAQ,GAAK4C,EACtBD,EAASG,GAAU,EAAGJ,GAAW,GAAO/rB,KAAI,SAAUtB,GAAK,OAAOiF,EAAGsoB,EAAOvtB,GAAGqtB,EAAU,GAAMG,EAAO,GAE1G,KAAO,CACHrE,EAAS,GACT,IAAIuE,EAAU,GACd,GAAI5C,GAAaA,EAAS1qB,OAAS,EAC/B,IAAK,IAAIJ,EAAI,EAAG2tB,EAAM7C,EAAS1qB,OAAQwtB,EAAM,GAAKD,EAAKC,EAAM5tB,EAAI2tB,EAAM3tB,EAAI2tB,EAAKC,EAAM5tB,IAAMA,IACxF0tB,EAAQ1pB,KAAiC,IAA3B8mB,EAAS9qB,EAAE,GAAG8qB,EAAS9qB,UAGzC0tB,EAAU/C,EAEd2C,EAASI,EAAQpsB,KAAI,SAAUiK,GAAK,OAAOtG,EAAEsG,EAAI,GACrD,CAKA,OAHI6e,GAAS9D,KACTgH,EAASA,EAAOhsB,KAAI,SAAU+D,GAAK,OAAOA,EAAEihB,IAAQ,KAEjDgH,CACX,EAEAroB,EAAE4oB,MAAQ,SAASxoB,GACf,OAAS,MAALA,GACAgmB,EAAYhmB,EACLJ,GAEAomB,CAEf,EAEApmB,EAAE6oB,MAAQ,SAAS9oB,GACf,OAAS,MAALA,GACAsmB,EAAStmB,EACFC,GAEAqmB,CAEf,EAEArmB,EAAE8oB,OAAS,SAAS7B,GAChB,OAAS,MAALA,GACAzB,EAASL,GAAS8B,GACXjnB,GAEAwlB,CAEf,EAEOxlB,CACX,EAEA,SAASwoB,GAAUO,EAAMC,EAAOC,GAI9B,IAHA,IAAIxB,EAAQ,GACRyB,EAAYH,EAAOC,EACnBN,EAAOO,EAAoBC,EAAYF,EAAQ,EAAIA,EAAQ,EAAxCA,EACdjuB,EAAIguB,EAAMG,EAAYnuB,EAAI2tB,EAAM3tB,EAAI2tB,EAAKQ,EAAYnuB,IAAMA,IAClE0sB,EAAM1oB,KAAKhE,GAEb,OAAO0sB,CACT,CAOA,IAAI0B,GAAUjqB,EAEVkqB,GAAU9D,GAGV+D,GAAY,SAAS7P,GAErB,IADA,IAAI8P,EAAM,CAAC,EAAG,GACLvuB,EAAI,EAAGA,EAAIye,EAAGze,IAAK,CAExB,IADA,IAAIwuB,EAAS,CAAC,GACLC,EAAI,EAAGA,GAAKF,EAAInuB,OAAQquB,IAC7BD,EAAOC,IAAMF,EAAIE,IAAM,GAAKF,EAAIE,EAAI,GAExCF,EAAMC,CACV,CACA,OAAOD,CACX,EAEIG,GAAS,SAASvF,GAClB,IAAIxhB,EAAQoD,EAAUC,EAElB2jB,EAAGC,EAAMC,EAAMC,EAEnB,GAAsB,KADtB3F,EAASA,EAAO7nB,KAAI,SAAU+D,GAAK,OAAO,IAAI+oB,GAAQ/oB,EAAI,KAC/CjF,OAENuH,EAASwhB,EAAO7nB,KAAI,SAAU+D,GAAK,OAAOA,EAAEyM,KAAO,IAAI8c,EAAOjnB,EAAO,GAAIknB,EAAOlnB,EAAO,GACxFgnB,EAAI,SAASrjB,GACT,IAAIwG,EAAO,CAAC,EAAG,EAAG,GAAGxQ,KAAI,SAAUtB,GAAK,OAAO4uB,EAAK5uB,GAAMsL,GAAKujB,EAAK7uB,GAAK4uB,EAAK5uB,GAAM,IACpF,OAAO,IAAIouB,GAAQtc,EAAK,MAC5B,OACG,GAAsB,IAAlBqX,EAAO/oB,OAEb2K,EAAWoe,EAAO7nB,KAAI,SAAU+D,GAAK,OAAOA,EAAEyM,KAAO,IAAI8c,EAAO7jB,EAAS,GAAI8jB,EAAO9jB,EAAS,GAAI+jB,EAAO/jB,EAAS,GAClH4jB,EAAI,SAASrjB,GACT,IAAIwG,EAAO,CAAC,EAAG,EAAG,GAAGxQ,KAAI,SAAUtB,GAAK,OAAS,EAAEsL,IAAI,EAAEA,GAAKsjB,EAAK5uB,GAAO,GAAK,EAAEsL,GAAKA,EAAIujB,EAAK7uB,GAAOsL,EAAIA,EAAIwjB,EAAK9uB,EAAK,IACxH,OAAO,IAAIouB,GAAQtc,EAAK,MAC5B,OACG,GAAsB,IAAlBqX,EAAO/oB,OAAc,CAE5B,IAAI2uB,EACH/jB,EAAWme,EAAO7nB,KAAI,SAAU+D,GAAK,OAAOA,EAAEyM,KAAO,IAAI8c,EAAO5jB,EAAS,GAAI6jB,EAAO7jB,EAAS,GAAI8jB,EAAO9jB,EAAS,GAAI+jB,EAAO/jB,EAAS,GACtI2jB,EAAI,SAASrjB,GACT,IAAIwG,EAAO,CAAC,EAAG,EAAG,GAAGxQ,KAAI,SAAUtB,GAAK,OAAS,EAAEsL,IAAI,EAAEA,IAAI,EAAEA,GAAKsjB,EAAK5uB,GAAO,GAAK,EAAEsL,IAAM,EAAEA,GAAKA,EAAIujB,EAAK7uB,GAAO,GAAK,EAAEsL,GAAKA,EAAIA,EAAIwjB,EAAK9uB,GAAOsL,EAAEA,EAAEA,EAAIyjB,EAAK/uB,EAAK,IACtK,OAAO,IAAIouB,GAAQtc,EAAK,MAC5B,CACJ,KAAO,MAAIqX,EAAO/oB,QAAU,GAYxB,MAAM,IAAI4uB,WAAW,mDAVrB,IAAIC,EAAMV,EAAK9P,EACfwQ,EAAO9F,EAAO7nB,KAAI,SAAU+D,GAAK,OAAOA,EAAEyM,KAAO,IACjD2M,EAAI0K,EAAO/oB,OAAS,EACpBmuB,EAAMD,GAAU7P,GAChBkQ,EAAI,SAAUrjB,GACV,IAAImB,EAAI,EAAInB,EACRwG,EAAO,CAAC,EAAG,EAAG,GAAGxQ,KAAI,SAAUtB,GAAK,OAAOivB,EAAK3F,QAAO,SAAU4F,EAAKC,EAAIV,GAAK,OAAQS,EAAMX,EAAIE,GAAK9sB,KAAK8O,IAAKhE,EAAIgS,EAAIgQ,GAAO9sB,KAAK8O,IAAKnF,EAAGmjB,GAAMU,EAAGnvB,EAAK,GAAG,EAAI,IACrK,OAAO,IAAIouB,GAAQtc,EAAK,MAC5B,CAGJ,CACA,OAAO6c,CACX,EAEIS,GAAW,SAAUjG,GACrB,IAAIlkB,EAAIypB,GAAOvF,GAEf,OADAlkB,EAAEoqB,MAAQ,WAAc,OAAOhB,GAAQppB,EAAI,EACpCA,CACX,EAOIqqB,GAAW5qB,EAEX6qB,GAAQ,SAAUC,EAAQC,EAAKrsB,GAC/B,IAAKmsB,GAAMnsB,GACP,MAAM,IAAIU,MAAM,sBAAwBV,GAE5C,OAAOmsB,GAAMnsB,GAAMosB,EAAQC,EAC/B,EAEIC,GAAU,SAAUzqB,GAAK,OAAO,SAAUuqB,EAAOC,GAC7C,IAAIE,EAAKL,GAASG,GAAK7vB,MACnBsoB,EAAKoH,GAASE,GAAQ5vB,MAC1B,OAAO0vB,GAAS1vB,IAAIqF,EAAE0qB,EAAIzH,GAC9B,CAAG,EAEH0H,GAAO,SAAU3qB,GAAK,OAAO,SAAU0qB,EAAIzH,GACvC,IAAI5B,EAAM,GAIV,OAHAA,EAAI,GAAKrhB,EAAE0qB,EAAG,GAAIzH,EAAG,IACrB5B,EAAI,GAAKrhB,EAAE0qB,EAAG,GAAIzH,EAAG,IACrB5B,EAAI,GAAKrhB,EAAE0qB,EAAG,GAAIzH,EAAG,IACd5B,CACX,CAAG,EAEHuJ,GAAS,SAAUtsB,GAAK,OAAOA,CAAG,EAClCusB,GAAW,SAAUvsB,EAAEC,GAAK,OAAOD,EAAIC,EAAI,GAAK,EAChDigB,GAAS,SAAUlgB,EAAEC,GAAK,OAAOD,EAAIC,EAAIA,EAAID,CAAG,EAChDwsB,GAAU,SAAUxsB,EAAEC,GAAK,OAAOD,EAAIC,EAAID,EAAIC,CAAG,EACjDwsB,GAAS,SAAUzsB,EAAEC,GAAK,OAAO,KAAO,GAAK,EAAED,EAAE,MAAQ,EAAEC,EAAE,KAAO,EACpEysB,GAAU,SAAU1sB,EAAEC,GAAK,OAAOA,EAAI,IAAM,EAAID,EAAIC,EAAI,IAAM,KAAO,EAAI,GAAK,EAAID,EAAI,MAAU,EAAIC,EAAI,KAAQ,EAChH0sB,GAAO,SAAU3sB,EAAEC,GAAK,OAAO,KAAO,GAAK,EAAIA,EAAI,MAAQD,EAAE,KAAO,EACpE4sB,GAAQ,SAAU5sB,EAAEC,GACpB,OAAU,MAAND,IACJA,EAAWC,EAAI,IAAX,KAAmB,EAAID,EAAI,MACpB,IAFa,IAEDA,CAC3B,EAKAgsB,GAAMM,OAASH,GAAQE,GAAKC,KAC5BN,GAAMO,SAAWJ,GAAQE,GAAKE,KAC9BP,GAAMS,OAASN,GAAQE,GAAKI,KAC5BT,GAAMU,QAAUP,GAAQE,GAAKK,KAC7BV,GAAM9L,OAASiM,GAAQE,GAAKnM,KAC5B8L,GAAMQ,QAAUL,GAAQE,GAAKG,KAC7BR,GAAMY,MAAQT,GAAQE,GAAKO,KAC3BZ,GAAMW,KAAOR,GAAQE,GAAKM,KAgf1B,IA7eA,IAAIE,GAAUb,GAMVc,GAASxuB,EAAMG,KACfF,GAAWD,EAAMC,SACjBK,GAAQN,EAAMM,MACdmuB,GAAQ3uB,KAAK8O,IACb8f,GAAQ5uB,KAAKmR,IACb0d,GAAQ7uB,KAAKmM,IACb2iB,GAAW/rB,EAEXgsB,GAAY,SAASC,EAAOC,EAAW9I,EAAKgG,EAAO+C,QACpC,IAAVF,IAAmBA,EAAM,UACX,IAAdC,IAAuBA,GAAW,UAC1B,IAAR9I,IAAiBA,EAAI,QACX,IAAVgG,IAAmBA,EAAM,QACX,IAAd+C,IAAuBA,EAAU,CAAC,EAAE,IAEzC,IAAYC,EAARC,EAAK,EACiB,UAAtBV,GAAOQ,GACPC,EAAKD,EAAU,GAAKA,EAAU,IAE9BC,EAAK,EACLD,EAAY,CAACA,EAAWA,IAG5B,IAAI5rB,EAAI,SAAS+rB,GACb,IAAIztB,EAAIpB,KAAWwuB,EAAM,KAAK,IAAQC,EAAYI,GAC9CvvB,EAAI6uB,GAAMO,EAAU,GAAMC,EAAKE,EAAQlD,GAEvCmD,GADW,IAAPF,EAAWjJ,EAAI,GAAMkJ,EAAQD,EAAMjJ,GAC5BrmB,GAAK,EAAEA,GAAM,EACxByvB,EAAQV,GAAMjtB,GACd4tB,EAAQZ,GAAMhtB,GAIlB,OAAOktB,GAAS3uB,GAAS,CAAG,KAHpBL,EAAKwvB,IAAS,OAAUC,EAAU,QAASC,IAGjB,KAF1B1vB,EAAKwvB,IAAS,OAAUC,EAAU,OAASC,IAEX,KADhC1vB,EAAKwvB,GAAO,QAAWC,IACa,IAChD,EAgDA,OA9CAjsB,EAAE0rB,MAAQ,SAASjqB,GACf,OAAU,MAALA,EAAqBiqB,GAC1BA,EAAQjqB,EACDzB,EACX,EAEAA,EAAE2rB,UAAY,SAAS7rB,GACnB,OAAU,MAALA,EAAqB6rB,GAC1BA,EAAY7rB,EACLE,EACX,EAEAA,EAAE6oB,MAAQ,SAAS9oB,GACf,OAAU,MAALA,EAAqB8oB,GAC1BA,EAAQ9oB,EACDC,EACX,EAEAA,EAAE6iB,IAAM,SAASnhB,GACb,OAAU,MAALA,EAAqBmhB,GAEN,UAAhBuI,GADJvI,EAAMnhB,GAGS,KADXoqB,EAAKjJ,EAAI,GAAKA,EAAI,MACFA,EAAMA,EAAI,IAE1BiJ,EAAK,EAEF9rB,EACX,EAEAA,EAAE4rB,UAAY,SAASlqB,GACnB,OAAU,MAALA,EAAqBkqB,GACR,UAAdR,GAAO1pB,IACPkqB,EAAYlqB,EACZmqB,EAAKnqB,EAAE,GAAKA,EAAE,KAEdkqB,EAAY,CAAClqB,EAAEA,GACfmqB,EAAK,GAEF7rB,EACX,EAEAA,EAAEoqB,MAAQ,WAAc,OAAOoB,GAASpB,MAAMpqB,EAAI,EAElDA,EAAE6iB,IAAIA,GAEC7iB,CACX,EAEImsB,GAAUjtB,EACVktB,GAAS,mBAETC,GAAU3vB,KAAKkJ,MACf0mB,GAAS5vB,KAAK4vB,OAEdC,GAAW,WAEX,IADA,IAAIC,EAAO,IACFzxB,EAAE,EAAGA,EAAE,EAAGA,IACfyxB,GAAQJ,GAAOhL,OAAOiL,GAAmB,GAAXC,OAElC,OAAO,IAAIH,GAAQK,EAAM,MAC7B,EAEIzvB,GAAOzB,EACPqf,GAAMje,KAAKie,IACX8R,GAAQ/vB,KAAK8O,IACb5F,GAAQlJ,KAAKkJ,MACb8mB,GAAQhwB,KAAK2f,IAGb6K,GAAU,SAAUyF,EAAMC,QACb,IAARA,IAAiBA,EAAI,MAE1B,IAAI9sB,EAAI,CACJvF,IAAKoH,OAAOkrB,UACZryB,KAAuB,EAAlBmH,OAAOkrB,UACZ5C,IAAK,EACL6C,OAAQ,GACRC,MAAO,GAoBX,MAlBmB,WAAfhwB,GAAK4vB,KACLA,EAAOnxB,OAAOsxB,OAAOH,IAEzBA,EAAKvd,SAAQ,SAAU0X,GACf8F,GAAqB,WAAd7vB,GAAK+pB,KAAqBA,EAAMA,EAAI8F,SACnCxwB,IAAR0qB,GAA6B,OAARA,GAAiB/d,MAAM+d,KAC5ChnB,EAAEgtB,OAAO/tB,KAAK+nB,GACdhnB,EAAEmqB,KAAOnD,EACLA,EAAMhnB,EAAEvF,MAAOuF,EAAEvF,IAAMusB,GACvBA,EAAMhnB,EAAEtF,MAAOsF,EAAEtF,IAAMssB,GAC3BhnB,EAAEitB,OAAS,EAEnB,IAEAjtB,EAAEsnB,OAAS,CAACtnB,EAAEvF,IAAKuF,EAAEtF,KAErBsF,EAAEqnB,OAAS,SAAUhpB,EAAM2b,GAAO,OAAOqN,GAAOrnB,EAAG3B,EAAM2b,EAAM,EAExDha,CACX,EAGIqnB,GAAS,SAAUwF,EAAMxuB,EAAM2b,QACjB,IAAT3b,IAAkBA,EAAK,cACf,IAAR2b,IAAiBA,EAAI,GAER,SAAd/c,GAAK4vB,KACLA,EAAOzF,GAAQyF,IAEnB,IAAIpyB,EAAMoyB,EAAKpyB,IACXC,EAAMmyB,EAAKnyB,IACXsyB,EAASH,EAAKG,OAAOzuB,MAAK,SAAUC,EAAEC,GAAK,OAAOD,EAAEC,CAAG,IAE3D,GAAY,IAARub,EAAa,MAAO,CAACvf,EAAIC,GAE7B,IAAI2sB,EAAS,GAOb,GALyB,MAArBhpB,EAAKkE,OAAO,EAAE,KACd8kB,EAAOpoB,KAAKxE,GACZ4sB,EAAOpoB,KAAKvE,IAGS,MAArB2D,EAAKkE,OAAO,EAAE,GAAY,CAC1B8kB,EAAOpoB,KAAKxE,GACZ,IAAK,IAAIQ,EAAE,EAAGA,EAAE+e,EAAK/e,IACjBosB,EAAOpoB,KAAKxE,EAAMQ,EAAE+e,GAAMtf,EAAID,IAElC4sB,EAAOpoB,KAAKvE,EAChB,MAEK,GAAyB,MAArB2D,EAAKkE,OAAO,EAAE,GAAY,CAC/B,GAAI9H,GAAO,EACP,MAAM,IAAIsE,MAAM,uDAEpB,IAAImuB,EAAUtwB,KAAKuwB,OAAStS,GAAIpgB,GAC5B2yB,EAAUxwB,KAAKuwB,OAAStS,GAAIngB,GAChC2sB,EAAOpoB,KAAKxE,GACZ,IAAK,IAAIU,EAAI,EAAGA,EAAI6e,EAAK7e,IACrBksB,EAAOpoB,KAAK0tB,GAAM,GAAIO,EAAY/xB,EAAI6e,GAAQoT,EAAUF,KAE5D7F,EAAOpoB,KAAKvE,EAChB,MAEK,GAAyB,MAArB2D,EAAKkE,OAAO,EAAE,GAAY,CAC/B8kB,EAAOpoB,KAAKxE,GACZ,IAAK,IAAI0J,EAAI,EAAGA,EAAI6V,EAAK7V,IAAO,CAC5B,IAAIzF,GAAMsuB,EAAO3xB,OAAO,GAAK8I,EAAK6V,EAC9BqT,EAAKvnB,GAAMpH,GACf,GAAI2uB,IAAO3uB,EACP2oB,EAAOpoB,KAAK+tB,EAAOK,QAChB,CACH,IAAIC,EAAK5uB,EAAI2uB,EACbhG,EAAOpoB,KAAM+tB,EAAOK,IAAK,EAAEC,GAAQN,EAAOK,EAAG,GAAGC,EACpD,CACJ,CACAjG,EAAOpoB,KAAKvE,EAEhB,MAEK,GAAyB,MAArB2D,EAAKkE,OAAO,EAAE,GAAY,CAM/B,IAAIgrB,EACA7T,EAAIsT,EAAO3xB,OACXmyB,EAAc,IAAItxB,MAAMwd,GACxB+T,EAAe,IAAIvxB,MAAM8d,GACzB0T,GAAS,EACTC,EAAW,EACXC,EAAY,MAGhBA,EAAY,IACF3uB,KAAKxE,GACf,IAAK,IAAI4J,EAAI,EAAGA,EAAI2V,EAAK3V,IACrBupB,EAAU3uB,KAAKxE,EAAQ4J,EAAI2V,GAAQtf,EAAID,IAI3C,IAFAmzB,EAAU3uB,KAAKvE,GAERgzB,GAAQ,CAEX,IAAK,IAAIhE,EAAE,EAAGA,EAAE1P,EAAK0P,IACjB+D,EAAa/D,GAAK,EAEtB,IAAK,IAAImE,EAAI,EAAGA,EAAInU,EAAGmU,IAInB,IAHA,IAAIxM,EAAQ2L,EAAOa,GACfC,EAAUjsB,OAAOkrB,UACjBgB,OAAO,EACFC,EAAI,EAAGA,EAAIhU,EAAKgU,IAAO,CAC5B,IAAIC,EAAOrB,GAAMgB,EAAUI,GAAK3M,GAC5B4M,EAAOH,IACPA,EAAUG,EACVF,EAAOC,GAEXP,EAAaM,KACbP,EAAYK,GAAOE,CACvB,CAKJ,IADA,IAAIG,EAAe,IAAIhyB,MAAM8d,GACpBmU,EAAI,EAAGA,EAAInU,EAAKmU,IACrBD,EAAaC,GAAO,KAExB,IAAK,IAAIC,EAAI,EAAGA,EAAI1U,EAAG0U,IAEW,OAA1BF,EADJX,EAAUC,EAAYY,IAElBF,EAAaX,GAAWP,EAAOoB,GAE/BF,EAAaX,IAAYP,EAAOoB,GAGxC,IAAK,IAAIC,EAAI,EAAGA,EAAIrU,EAAKqU,IACrBH,EAAaG,IAAQ,EAAEZ,EAAaY,GAIxCX,GAAS,EACT,IAAK,IAAIY,EAAI,EAAGA,EAAItU,EAAKsU,IACrB,GAAIJ,EAAaI,KAASV,EAAUU,GAAM,CACtCZ,GAAS,EACT,KACJ,CAGJE,EAAYM,IACZP,EAEe,MACXD,GAAS,EAEjB,CAKA,IADA,IAAIa,EAAY,CAAC,EACRC,EAAI,EAAGA,EAAIxU,EAAKwU,IACrBD,EAAUC,GAAO,GAErB,IAAK,IAAIC,EAAI,EAAGA,EAAI/U,EAAG+U,IAEnBF,EADAhB,EAAUC,EAAYiB,IACHxvB,KAAK+tB,EAAOyB,IAGnC,IADA,IAAIC,EAAkB,GACbC,EAAI,EAAGA,EAAI3U,EAAK2U,IACrBD,EAAgBzvB,KAAKsvB,EAAUI,GAAK,IACpCD,EAAgBzvB,KAAKsvB,EAAUI,GAAKJ,EAAUI,GAAKtzB,OAAO,IAE9DqzB,EAAkBA,EAAgBnwB,MAAK,SAAUC,EAAEC,GAAI,OAAOD,EAAEC,CAAG,IACnE4oB,EAAOpoB,KAAKyvB,EAAgB,IAC5B,IAAK,IAAIE,EAAI,EAAGA,EAAMF,EAAgBrzB,OAAQuzB,GAAM,EAAG,CACnD,IAAIpoB,EAAIkoB,EAAgBE,GACnB3lB,MAAMzC,KAA8B,IAAvB6gB,EAAOnf,QAAQ1B,IAC7B6gB,EAAOpoB,KAAKuH,EAEpB,CACJ,CACA,OAAO6gB,CACX,EAEIwH,GAAY,CAACzH,QAASA,GAASC,OAAQA,IAEvCyH,GAAU1vB,EAGV2vB,GAAW,SAAUvwB,EAAGC,GAGxBD,EAAI,IAAIswB,GAAQtwB,GAChBC,EAAI,IAAIqwB,GAAQrwB,GAChB,IAAIuwB,EAAKxwB,EAAEghB,YACPyP,EAAKxwB,EAAE+gB,YACX,OAAOwP,EAAKC,GAAMD,EAAK,MAASC,EAAK,MAASA,EAAK,MAASD,EAAK,IACrE,EAEIE,GAAU9vB,EACVmJ,GAAO3L,KAAK2L,KACZmD,GAAM9O,KAAK8O,IACXjR,GAAMmC,KAAKnC,IACXC,GAAMkC,KAAKlC,IACXyS,GAAQvQ,KAAKuQ,MACboP,GAAM3f,KAAK2f,IACXxT,GAAMnM,KAAKmM,IACXgF,GAAMnR,KAAKmR,IACXohB,GAAMvyB,KAAKuyB,IACXtyB,GAAKD,KAAKC,GAEVuyB,GAAS,SAAS5wB,EAAGC,EAAG4wB,EAAIC,EAAIC,QACpB,IAAPF,IAAgBA,EAAG,QACZ,IAAPC,IAAgBA,EAAG,QACZ,IAAPC,IAAgBA,EAAG,GAIxB,IAAIC,EAAU,SAASC,GACnB,OAAO,IAAMA,GAAO,EAAI5yB,GAC5B,EACI6yB,EAAU,SAASC,GACnB,OAAQ,EAAI9yB,GAAK8yB,EAAO,GAC5B,EACAnxB,EAAI,IAAI0wB,GAAQ1wB,GAChBC,EAAI,IAAIywB,GAAQzwB,GAChB,IAAIsB,EAAM7D,MAAMooB,KAAK9lB,EAAEuO,OACnBib,EAAKjoB,EAAI,GACT6vB,EAAK7vB,EAAI,GACT8vB,EAAK9vB,EAAI,GACT6L,EAAQ1P,MAAMooB,KAAK7lB,EAAEsO,OACrB+iB,EAAKlkB,EAAM,GACXmkB,EAAKnkB,EAAM,GACXokB,EAAKpkB,EAAM,GACXqkB,GAAQjI,EAAK8H,GAAI,EAGjBI,GAFK3nB,GAAKmD,GAAIkkB,EAAI,GAAKlkB,GAAImkB,EAAI,IAC1BtnB,GAAKmD,GAAIqkB,EAAI,GAAKrkB,GAAIskB,EAAI,KACd,EACjBG,EAAI,IAAK,EAAE5nB,GAAKmD,GAAIwkB,EAAM,IAAIxkB,GAAIwkB,EAAM,GAAKxkB,GAAI,GAAI,MACrD0kB,EAAMR,GAAI,EAAEO,GACZE,EAAMN,GAAI,EAAEI,GACZG,EAAM/nB,GAAKmD,GAAI0kB,EAAK,GAAK1kB,GAAImkB,EAAI,IACjCU,EAAMhoB,GAAKmD,GAAI2kB,EAAK,GAAK3kB,GAAIskB,EAAI,IACjCQ,GAASF,EAAMC,GAAK,EACpBE,EAAUjB,EAAQriB,GAAM0iB,EAAIO,IAC5BM,EAAUlB,EAAQriB,GAAM6iB,EAAIK,IAC5BM,EAAMF,GAAW,EAAIA,EAAUA,EAAU,IACzCG,EAAMF,GAAW,EAAIA,EAAUA,EAAU,IACzCG,EAAQtU,GAAIoU,EAAMC,GAAO,KAAOD,EAAMC,EAAM,KAAK,GAAKD,EAAMC,GAAK,EACjEE,EAAI,EAAI,IAAK/nB,GAAI2mB,EAAQmB,EAAQ,KAAO,IAAK9nB,GAAI2mB,EAAQ,EAAEmB,IAAU,IAAK9nB,GAAI2mB,EAAQ,EAAEmB,EAAQ,IAAM,GAAI9nB,GAAI2mB,EAAQ,EAAEmB,EAAQ,KAChIE,EAAUH,EAAMD,EACpBI,EAAUxU,GAAIwU,IAAY,IAAMA,EAAUH,GAAOD,EAAMI,EAAU,IAAMA,EAAU,IACjFA,EAAU,EAAExoB,GAAK+nB,EAAIC,GAAKxiB,GAAI2hB,EAAQqB,GAAS,GAC/C,IAAIC,EAASlB,EAAK9H,EACdiJ,EAAUV,EAAMD,EAChBY,EAAK,EAAK,KAAMxlB,GAAIukB,EAAO,GAAI,GAAI1nB,GAAK,GAAKmD,GAAIukB,EAAO,GAAI,IAC5DkB,EAAK,EAAI,KAAMX,EACfY,EAAK,EAAI,KAAMZ,EAAMM,EACrBO,EAAa,GAAGlC,IAAKzjB,IAAKmlB,EAAQ,KAAK,GAAI,IAE3CS,GADK,EAAE/oB,GAAKmD,GAAI8kB,EAAO,IAAI9kB,GAAI8kB,EAAO,GAAK9kB,GAAI,GAAI,KAC1CqC,GAAI,EAAE2hB,EAAQ2B,IACvB9I,EAAShgB,GAAKmD,GAAIslB,GAAQ3B,EAAG6B,GAAK,GAAKxlB,GAAIulB,GAAS3B,EAAG6B,GAAK,GAAKzlB,GAAIqlB,GAASxB,EAAG6B,GAAK,GAAKE,GAAIL,GAAS3B,EAAG6B,KAAMJ,GAASxB,EAAG6B,KACjI,OAAO12B,GAAI,EAAGD,GAAI,IAAK8tB,GAC3B,EAEIgJ,GAAUnyB,EAGVoyB,GAAW,SAAShzB,EAAGC,EAAGJ,QACZ,IAATA,IAAkBA,EAAK,OAI5BG,EAAI,IAAI+yB,GAAQ/yB,GAChBC,EAAI,IAAI8yB,GAAQ9yB,GAChB,IAAIuwB,EAAKxwB,EAAEugB,IAAI1gB,GACX4wB,EAAKxwB,EAAEsgB,IAAI1gB,GACXozB,EAAS,EACb,IAAK,IAAIx2B,KAAK+zB,EAAI,CACd,IAAI7H,GAAK6H,EAAG/zB,IAAM,IAAMg0B,EAAGh0B,IAAM,GACjCw2B,GAAUtK,EAAEA,CAChB,CACA,OAAOvqB,KAAK2L,KAAKkpB,EACrB,EAEIjyB,GAAQJ,EAERsyB,GAAQ,WAER,IADA,IAAI11B,EAAO,GAAIgC,EAAMC,UAAU5C,OACvB2C,KAAQhC,EAAMgC,GAAQC,UAAWD,GAEzC,IAEI,OADA,IAAKsB,SAAS3D,UAAU4D,KAAKT,MAAOU,GAAO,CAAE,MAAOC,OAAQzD,MACrD,CACX,CAAE,MAAO+H,GACL,OAAO,CACX,CACJ,EAGI4tB,GAAWhyB,EAEX2qB,GAAQ9E,GAERoM,GAAS,CACZC,KAAM,WAAkB,OAAOvH,GAAM,CAACqH,GAASrtB,IAAI,IAAI,EAAE,IAAKqtB,GAASrtB,IAAI,IAAI,GAAG,KAAM,EACxFwtB,IAAK,WAAiB,OAAOxH,GAAM,CAAC,OAAO,OAAO,OAAO,SAASjsB,KAAK,MAAO,GAoB3E0zB,GAAc,CAEdC,KAAM,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WAC/FC,KAAM,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WAC/FC,KAAM,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WAC/FC,QAAS,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WAClGC,KAAM,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WAC/FC,OAAQ,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WACjGC,KAAM,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WAC/FC,KAAM,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WAC/FC,KAAM,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WAC/FC,OAAQ,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WACjGC,OAAQ,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WACjGC,QAAS,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WAClGC,KAAM,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WAC/FC,MAAO,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WAChGC,OAAQ,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WACjGC,KAAM,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WAC/FC,MAAO,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WAChGC,OAAQ,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WACjGC,QAAS,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WAIlGC,SAAU,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WACzHC,OAAQ,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WACvHC,KAAM,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WACrHC,KAAM,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WACrHC,KAAM,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WACrHC,OAAQ,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WACvHC,KAAM,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WACrHC,KAAM,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WACrHC,KAAM,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WAIrHC,KAAM,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WACpFC,OAAQ,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WACtFC,KAAM,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WAC/FC,KAAM,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WAChIC,MAAO,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WACrFC,OAAQ,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WAClIC,QAAS,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WACvFC,QAAS,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,YAI7Fl5B,GAAI,EAAG0D,GAAOjD,OAAO+d,KAAKsY,IAAc92B,GAAI0D,GAAKtD,OAAQJ,IAAK,EAAG,CACtE,IAAI6xB,GAAMnuB,GAAK1D,IAEf82B,GAAYjF,GAAIvxB,eAAiBw2B,GAAYjF,GACjD,CAEA,IAAIsH,GAAgBrC,GAEhBsC,GAAS10B,EAyEb,OAzBA00B,GAAOlQ,QAAUA,GACjBkQ,GAAO1K,OAASU,GAChBgK,GAAO7J,MAAQa,GACfgJ,GAAO1I,UAAYA,GACnB0I,GAAO1T,IAAM0T,GAAOtU,YAAcQ,GAClC8T,GAAO7H,OAASC,GAChB4H,GAAO/J,MAAQ9E,GAGf6O,GAAOjN,QAAUyH,GAAUzH,QAC3BiN,GAAOtF,SAAWA,GAClBsF,GAAOjF,OAASA,GAChBiF,GAAO7C,SAAWA,GAClB6C,GAAOhN,OAASwH,GAAUxH,OAC1BgN,GAAO3C,MAAQA,GAGf2C,GAAOzC,OAASA,GAGhByC,GAAOjQ,OAAS7U,GAChB8kB,GAAO5N,OAAS2N,GAEAC,EAInB,CAp8GmFC","sources":["webpack://nodalview/./node_modules/chroma-js/chroma.js"],"sourcesContent":["/**\n * chroma.js - JavaScript library for color conversions\n *\n * Copyright (c) 2011-2019, Gregor Aisch\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer.\n *\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution.\n *\n * 3. The name Gregor Aisch may not be used to endorse or promote products\n * derived from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL GREGOR AISCH OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\n * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY\n * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * -------------------------------------------------------\n *\n * chroma.js includes colors from colorbrewer2.org, which are released under\n * the following license:\n *\n * Copyright (c) 2002 Cynthia Brewer, Mark Harrower,\n * and The Pennsylvania State University.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,\n * either express or implied. See the License for the specific\n * language governing permissions and limitations under the License.\n *\n * ------------------------------------------------------\n *\n * Named colors are taken from X11 Color Names.\n * http://www.w3.org/TR/css3-color/#svg-color\n *\n * @preserve\n */\n\n(function (global, factory) {\n    typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n    typeof define === 'function' && define.amd ? define(factory) :\n    (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.chroma = factory());\n})(this, (function () { 'use strict';\n\n    var limit$2 = function (x, min, max) {\n        if ( min === void 0 ) min=0;\n        if ( max === void 0 ) max=1;\n\n        return x < min ? min : x > max ? max : x;\n    };\n\n    var limit$1 = limit$2;\n\n    var clip_rgb$3 = function (rgb) {\n        rgb._clipped = false;\n        rgb._unclipped = rgb.slice(0);\n        for (var i=0; i<=3; i++) {\n            if (i < 3) {\n                if (rgb[i] < 0 || rgb[i] > 255) { rgb._clipped = true; }\n                rgb[i] = limit$1(rgb[i], 0, 255);\n            } else if (i === 3) {\n                rgb[i] = limit$1(rgb[i], 0, 1);\n            }\n        }\n        return rgb;\n    };\n\n    // ported from jQuery's $.type\n    var classToType = {};\n    for (var i$1 = 0, list$1 = ['Boolean', 'Number', 'String', 'Function', 'Array', 'Date', 'RegExp', 'Undefined', 'Null']; i$1 < list$1.length; i$1 += 1) {\n        var name = list$1[i$1];\n\n        classToType[(\"[object \" + name + \"]\")] = name.toLowerCase();\n    }\n    var type$p = function(obj) {\n        return classToType[Object.prototype.toString.call(obj)] || \"object\";\n    };\n\n    var type$o = type$p;\n\n    var unpack$B = function (args, keyOrder) {\n        if ( keyOrder === void 0 ) keyOrder=null;\n\n    \t// if called with more than 3 arguments, we return the arguments\n        if (args.length >= 3) { return Array.prototype.slice.call(args); }\n        // with less than 3 args we check if first arg is object\n        // and use the keyOrder string to extract and sort properties\n    \tif (type$o(args[0]) == 'object' && keyOrder) {\n    \t\treturn keyOrder.split('')\n    \t\t\t.filter(function (k) { return args[0][k] !== undefined; })\n    \t\t\t.map(function (k) { return args[0][k]; });\n    \t}\n    \t// otherwise we just return the first argument\n    \t// (which we suppose is an array of args)\n        return args[0];\n    };\n\n    var type$n = type$p;\n\n    var last$4 = function (args) {\n        if (args.length < 2) { return null; }\n        var l = args.length-1;\n        if (type$n(args[l]) == 'string') { return args[l].toLowerCase(); }\n        return null;\n    };\n\n    var PI$2 = Math.PI;\n\n    var utils = {\n    \tclip_rgb: clip_rgb$3,\n    \tlimit: limit$2,\n    \ttype: type$p,\n    \tunpack: unpack$B,\n    \tlast: last$4,\n    \tPI: PI$2,\n    \tTWOPI: PI$2*2,\n    \tPITHIRD: PI$2/3,\n    \tDEG2RAD: PI$2 / 180,\n    \tRAD2DEG: 180 / PI$2\n    };\n\n    var input$h = {\n    \tformat: {},\n    \tautodetect: []\n    };\n\n    var last$3 = utils.last;\n    var clip_rgb$2 = utils.clip_rgb;\n    var type$m = utils.type;\n    var _input = input$h;\n\n    var Color$D = function Color() {\n        var args = [], len = arguments.length;\n        while ( len-- ) args[ len ] = arguments[ len ];\n\n        var me = this;\n        if (type$m(args[0]) === 'object' &&\n            args[0].constructor &&\n            args[0].constructor === this.constructor) {\n            // the argument is already a Color instance\n            return args[0];\n        }\n\n        // last argument could be the mode\n        var mode = last$3(args);\n        var autodetect = false;\n\n        if (!mode) {\n            autodetect = true;\n            if (!_input.sorted) {\n                _input.autodetect = _input.autodetect.sort(function (a,b) { return b.p - a.p; });\n                _input.sorted = true;\n            }\n            // auto-detect format\n            for (var i = 0, list = _input.autodetect; i < list.length; i += 1) {\n                var chk = list[i];\n\n                mode = chk.test.apply(chk, args);\n                if (mode) { break; }\n            }\n        }\n\n        if (_input.format[mode]) {\n            var rgb = _input.format[mode].apply(null, autodetect ? args : args.slice(0,-1));\n            me._rgb = clip_rgb$2(rgb);\n        } else {\n            throw new Error('unknown format: '+args);\n        }\n\n        // add alpha channel\n        if (me._rgb.length === 3) { me._rgb.push(1); }\n    };\n\n    Color$D.prototype.toString = function toString () {\n        if (type$m(this.hex) == 'function') { return this.hex(); }\n        return (\"[\" + (this._rgb.join(',')) + \"]\");\n    };\n\n    var Color_1 = Color$D;\n\n    var chroma$k = function () {\n    \tvar args = [], len = arguments.length;\n    \twhile ( len-- ) args[ len ] = arguments[ len ];\n\n    \treturn new (Function.prototype.bind.apply( chroma$k.Color, [ null ].concat( args) ));\n    };\n\n    chroma$k.Color = Color_1;\n    chroma$k.version = '2.4.2';\n\n    var chroma_1 = chroma$k;\n\n    var unpack$A = utils.unpack;\n    var max$2 = Math.max;\n\n    var rgb2cmyk$1 = function () {\n        var args = [], len = arguments.length;\n        while ( len-- ) args[ len ] = arguments[ len ];\n\n        var ref = unpack$A(args, 'rgb');\n        var r = ref[0];\n        var g = ref[1];\n        var b = ref[2];\n        r = r / 255;\n        g = g / 255;\n        b = b / 255;\n        var k = 1 - max$2(r,max$2(g,b));\n        var f = k < 1 ? 1 / (1-k) : 0;\n        var c = (1-r-k) * f;\n        var m = (1-g-k) * f;\n        var y = (1-b-k) * f;\n        return [c,m,y,k];\n    };\n\n    var rgb2cmyk_1 = rgb2cmyk$1;\n\n    var unpack$z = utils.unpack;\n\n    var cmyk2rgb = function () {\n        var args = [], len = arguments.length;\n        while ( len-- ) args[ len ] = arguments[ len ];\n\n        args = unpack$z(args, 'cmyk');\n        var c = args[0];\n        var m = args[1];\n        var y = args[2];\n        var k = args[3];\n        var alpha = args.length > 4 ? args[4] : 1;\n        if (k === 1) { return [0,0,0,alpha]; }\n        return [\n            c >= 1 ? 0 : 255 * (1-c) * (1-k), // r\n            m >= 1 ? 0 : 255 * (1-m) * (1-k), // g\n            y >= 1 ? 0 : 255 * (1-y) * (1-k), // b\n            alpha\n        ];\n    };\n\n    var cmyk2rgb_1 = cmyk2rgb;\n\n    var chroma$j = chroma_1;\n    var Color$C = Color_1;\n    var input$g = input$h;\n    var unpack$y = utils.unpack;\n    var type$l = utils.type;\n\n    var rgb2cmyk = rgb2cmyk_1;\n\n    Color$C.prototype.cmyk = function() {\n        return rgb2cmyk(this._rgb);\n    };\n\n    chroma$j.cmyk = function () {\n        var args = [], len = arguments.length;\n        while ( len-- ) args[ len ] = arguments[ len ];\n\n        return new (Function.prototype.bind.apply( Color$C, [ null ].concat( args, ['cmyk']) ));\n    };\n\n    input$g.format.cmyk = cmyk2rgb_1;\n\n    input$g.autodetect.push({\n        p: 2,\n        test: function () {\n            var args = [], len = arguments.length;\n            while ( len-- ) args[ len ] = arguments[ len ];\n\n            args = unpack$y(args, 'cmyk');\n            if (type$l(args) === 'array' && args.length === 4) {\n                return 'cmyk';\n            }\n        }\n    });\n\n    var unpack$x = utils.unpack;\n    var last$2 = utils.last;\n    var rnd = function (a) { return Math.round(a*100)/100; };\n\n    /*\n     * supported arguments:\n     * - hsl2css(h,s,l)\n     * - hsl2css(h,s,l,a)\n     * - hsl2css([h,s,l], mode)\n     * - hsl2css([h,s,l,a], mode)\n     * - hsl2css({h,s,l,a}, mode)\n     */\n    var hsl2css$1 = function () {\n        var args = [], len = arguments.length;\n        while ( len-- ) args[ len ] = arguments[ len ];\n\n        var hsla = unpack$x(args, 'hsla');\n        var mode = last$2(args) || 'lsa';\n        hsla[0] = rnd(hsla[0] || 0);\n        hsla[1] = rnd(hsla[1]*100) + '%';\n        hsla[2] = rnd(hsla[2]*100) + '%';\n        if (mode === 'hsla' || (hsla.length > 3 && hsla[3]<1)) {\n            hsla[3] = hsla.length > 3 ? hsla[3] : 1;\n            mode = 'hsla';\n        } else {\n            hsla.length = 3;\n        }\n        return (mode + \"(\" + (hsla.join(',')) + \")\");\n    };\n\n    var hsl2css_1 = hsl2css$1;\n\n    var unpack$w = utils.unpack;\n\n    /*\n     * supported arguments:\n     * - rgb2hsl(r,g,b)\n     * - rgb2hsl(r,g,b,a)\n     * - rgb2hsl([r,g,b])\n     * - rgb2hsl([r,g,b,a])\n     * - rgb2hsl({r,g,b,a})\n     */\n    var rgb2hsl$3 = function () {\n        var args = [], len = arguments.length;\n        while ( len-- ) args[ len ] = arguments[ len ];\n\n        args = unpack$w(args, 'rgba');\n        var r = args[0];\n        var g = args[1];\n        var b = args[2];\n\n        r /= 255;\n        g /= 255;\n        b /= 255;\n\n        var min = Math.min(r, g, b);\n        var max = Math.max(r, g, b);\n\n        var l = (max + min) / 2;\n        var s, h;\n\n        if (max === min){\n            s = 0;\n            h = Number.NaN;\n        } else {\n            s = l < 0.5 ? (max - min) / (max + min) : (max - min) / (2 - max - min);\n        }\n\n        if (r == max) { h = (g - b) / (max - min); }\n        else if (g == max) { h = 2 + (b - r) / (max - min); }\n        else if (b == max) { h = 4 + (r - g) / (max - min); }\n\n        h *= 60;\n        if (h < 0) { h += 360; }\n        if (args.length>3 && args[3]!==undefined) { return [h,s,l,args[3]]; }\n        return [h,s,l];\n    };\n\n    var rgb2hsl_1 = rgb2hsl$3;\n\n    var unpack$v = utils.unpack;\n    var last$1 = utils.last;\n    var hsl2css = hsl2css_1;\n    var rgb2hsl$2 = rgb2hsl_1;\n    var round$6 = Math.round;\n\n    /*\n     * supported arguments:\n     * - rgb2css(r,g,b)\n     * - rgb2css(r,g,b,a)\n     * - rgb2css([r,g,b], mode)\n     * - rgb2css([r,g,b,a], mode)\n     * - rgb2css({r,g,b,a}, mode)\n     */\n    var rgb2css$1 = function () {\n        var args = [], len = arguments.length;\n        while ( len-- ) args[ len ] = arguments[ len ];\n\n        var rgba = unpack$v(args, 'rgba');\n        var mode = last$1(args) || 'rgb';\n        if (mode.substr(0,3) == 'hsl') {\n            return hsl2css(rgb2hsl$2(rgba), mode);\n        }\n        rgba[0] = round$6(rgba[0]);\n        rgba[1] = round$6(rgba[1]);\n        rgba[2] = round$6(rgba[2]);\n        if (mode === 'rgba' || (rgba.length > 3 && rgba[3]<1)) {\n            rgba[3] = rgba.length > 3 ? rgba[3] : 1;\n            mode = 'rgba';\n        }\n        return (mode + \"(\" + (rgba.slice(0,mode==='rgb'?3:4).join(',')) + \")\");\n    };\n\n    var rgb2css_1 = rgb2css$1;\n\n    var unpack$u = utils.unpack;\n    var round$5 = Math.round;\n\n    var hsl2rgb$1 = function () {\n        var assign;\n\n        var args = [], len = arguments.length;\n        while ( len-- ) args[ len ] = arguments[ len ];\n        args = unpack$u(args, 'hsl');\n        var h = args[0];\n        var s = args[1];\n        var l = args[2];\n        var r,g,b;\n        if (s === 0) {\n            r = g = b = l*255;\n        } else {\n            var t3 = [0,0,0];\n            var c = [0,0,0];\n            var t2 = l < 0.5 ? l * (1+s) : l+s-l*s;\n            var t1 = 2 * l - t2;\n            var h_ = h / 360;\n            t3[0] = h_ + 1/3;\n            t3[1] = h_;\n            t3[2] = h_ - 1/3;\n            for (var i=0; i<3; i++) {\n                if (t3[i] < 0) { t3[i] += 1; }\n                if (t3[i] > 1) { t3[i] -= 1; }\n                if (6 * t3[i] < 1)\n                    { c[i] = t1 + (t2 - t1) * 6 * t3[i]; }\n                else if (2 * t3[i] < 1)\n                    { c[i] = t2; }\n                else if (3 * t3[i] < 2)\n                    { c[i] = t1 + (t2 - t1) * ((2 / 3) - t3[i]) * 6; }\n                else\n                    { c[i] = t1; }\n            }\n            (assign = [round$5(c[0]*255),round$5(c[1]*255),round$5(c[2]*255)], r = assign[0], g = assign[1], b = assign[2]);\n        }\n        if (args.length > 3) {\n            // keep alpha channel\n            return [r,g,b,args[3]];\n        }\n        return [r,g,b,1];\n    };\n\n    var hsl2rgb_1 = hsl2rgb$1;\n\n    var hsl2rgb = hsl2rgb_1;\n    var input$f = input$h;\n\n    var RE_RGB = /^rgb\\(\\s*(-?\\d+),\\s*(-?\\d+)\\s*,\\s*(-?\\d+)\\s*\\)$/;\n    var RE_RGBA = /^rgba\\(\\s*(-?\\d+),\\s*(-?\\d+)\\s*,\\s*(-?\\d+)\\s*,\\s*([01]|[01]?\\.\\d+)\\)$/;\n    var RE_RGB_PCT = /^rgb\\(\\s*(-?\\d+(?:\\.\\d+)?)%,\\s*(-?\\d+(?:\\.\\d+)?)%\\s*,\\s*(-?\\d+(?:\\.\\d+)?)%\\s*\\)$/;\n    var RE_RGBA_PCT = /^rgba\\(\\s*(-?\\d+(?:\\.\\d+)?)%,\\s*(-?\\d+(?:\\.\\d+)?)%\\s*,\\s*(-?\\d+(?:\\.\\d+)?)%\\s*,\\s*([01]|[01]?\\.\\d+)\\)$/;\n    var RE_HSL = /^hsl\\(\\s*(-?\\d+(?:\\.\\d+)?),\\s*(-?\\d+(?:\\.\\d+)?)%\\s*,\\s*(-?\\d+(?:\\.\\d+)?)%\\s*\\)$/;\n    var RE_HSLA = /^hsla\\(\\s*(-?\\d+(?:\\.\\d+)?),\\s*(-?\\d+(?:\\.\\d+)?)%\\s*,\\s*(-?\\d+(?:\\.\\d+)?)%\\s*,\\s*([01]|[01]?\\.\\d+)\\)$/;\n\n    var round$4 = Math.round;\n\n    var css2rgb$1 = function (css) {\n        css = css.toLowerCase().trim();\n        var m;\n\n        if (input$f.format.named) {\n            try {\n                return input$f.format.named(css);\n            } catch (e) {\n                // eslint-disable-next-line\n            }\n        }\n\n        // rgb(250,20,0)\n        if ((m = css.match(RE_RGB))) {\n            var rgb = m.slice(1,4);\n            for (var i=0; i<3; i++) {\n                rgb[i] = +rgb[i];\n            }\n            rgb[3] = 1;  // default alpha\n            return rgb;\n        }\n\n        // rgba(250,20,0,0.4)\n        if ((m = css.match(RE_RGBA))) {\n            var rgb$1 = m.slice(1,5);\n            for (var i$1=0; i$1<4; i$1++) {\n                rgb$1[i$1] = +rgb$1[i$1];\n            }\n            return rgb$1;\n        }\n\n        // rgb(100%,0%,0%)\n        if ((m = css.match(RE_RGB_PCT))) {\n            var rgb$2 = m.slice(1,4);\n            for (var i$2=0; i$2<3; i$2++) {\n                rgb$2[i$2] = round$4(rgb$2[i$2] * 2.55);\n            }\n            rgb$2[3] = 1;  // default alpha\n            return rgb$2;\n        }\n\n        // rgba(100%,0%,0%,0.4)\n        if ((m = css.match(RE_RGBA_PCT))) {\n            var rgb$3 = m.slice(1,5);\n            for (var i$3=0; i$3<3; i$3++) {\n                rgb$3[i$3] = round$4(rgb$3[i$3] * 2.55);\n            }\n            rgb$3[3] = +rgb$3[3];\n            return rgb$3;\n        }\n\n        // hsl(0,100%,50%)\n        if ((m = css.match(RE_HSL))) {\n            var hsl = m.slice(1,4);\n            hsl[1] *= 0.01;\n            hsl[2] *= 0.01;\n            var rgb$4 = hsl2rgb(hsl);\n            rgb$4[3] = 1;\n            return rgb$4;\n        }\n\n        // hsla(0,100%,50%,0.5)\n        if ((m = css.match(RE_HSLA))) {\n            var hsl$1 = m.slice(1,4);\n            hsl$1[1] *= 0.01;\n            hsl$1[2] *= 0.01;\n            var rgb$5 = hsl2rgb(hsl$1);\n            rgb$5[3] = +m[4];  // default alpha = 1\n            return rgb$5;\n        }\n    };\n\n    css2rgb$1.test = function (s) {\n        return RE_RGB.test(s) ||\n            RE_RGBA.test(s) ||\n            RE_RGB_PCT.test(s) ||\n            RE_RGBA_PCT.test(s) ||\n            RE_HSL.test(s) ||\n            RE_HSLA.test(s);\n    };\n\n    var css2rgb_1 = css2rgb$1;\n\n    var chroma$i = chroma_1;\n    var Color$B = Color_1;\n    var input$e = input$h;\n    var type$k = utils.type;\n\n    var rgb2css = rgb2css_1;\n    var css2rgb = css2rgb_1;\n\n    Color$B.prototype.css = function(mode) {\n        return rgb2css(this._rgb, mode);\n    };\n\n    chroma$i.css = function () {\n        var args = [], len = arguments.length;\n        while ( len-- ) args[ len ] = arguments[ len ];\n\n        return new (Function.prototype.bind.apply( Color$B, [ null ].concat( args, ['css']) ));\n    };\n\n    input$e.format.css = css2rgb;\n\n    input$e.autodetect.push({\n        p: 5,\n        test: function (h) {\n            var rest = [], len = arguments.length - 1;\n            while ( len-- > 0 ) rest[ len ] = arguments[ len + 1 ];\n\n            if (!rest.length && type$k(h) === 'string' && css2rgb.test(h)) {\n                return 'css';\n            }\n        }\n    });\n\n    var Color$A = Color_1;\n    var chroma$h = chroma_1;\n    var input$d = input$h;\n    var unpack$t = utils.unpack;\n\n    input$d.format.gl = function () {\n        var args = [], len = arguments.length;\n        while ( len-- ) args[ len ] = arguments[ len ];\n\n        var rgb = unpack$t(args, 'rgba');\n        rgb[0] *= 255;\n        rgb[1] *= 255;\n        rgb[2] *= 255;\n        return rgb;\n    };\n\n    chroma$h.gl = function () {\n        var args = [], len = arguments.length;\n        while ( len-- ) args[ len ] = arguments[ len ];\n\n        return new (Function.prototype.bind.apply( Color$A, [ null ].concat( args, ['gl']) ));\n    };\n\n    Color$A.prototype.gl = function() {\n        var rgb = this._rgb;\n        return [rgb[0]/255, rgb[1]/255, rgb[2]/255, rgb[3]];\n    };\n\n    var unpack$s = utils.unpack;\n\n    var rgb2hcg$1 = function () {\n        var args = [], len = arguments.length;\n        while ( len-- ) args[ len ] = arguments[ len ];\n\n        var ref = unpack$s(args, 'rgb');\n        var r = ref[0];\n        var g = ref[1];\n        var b = ref[2];\n        var min = Math.min(r, g, b);\n        var max = Math.max(r, g, b);\n        var delta = max - min;\n        var c = delta * 100 / 255;\n        var _g = min / (255 - delta) * 100;\n        var h;\n        if (delta === 0) {\n            h = Number.NaN;\n        } else {\n            if (r === max) { h = (g - b) / delta; }\n            if (g === max) { h = 2+(b - r) / delta; }\n            if (b === max) { h = 4+(r - g) / delta; }\n            h *= 60;\n            if (h < 0) { h += 360; }\n        }\n        return [h, c, _g];\n    };\n\n    var rgb2hcg_1 = rgb2hcg$1;\n\n    var unpack$r = utils.unpack;\n    var floor$3 = Math.floor;\n\n    /*\n     * this is basically just HSV with some minor tweaks\n     *\n     * hue.. [0..360]\n     * chroma .. [0..1]\n     * grayness .. [0..1]\n     */\n\n    var hcg2rgb = function () {\n        var assign, assign$1, assign$2, assign$3, assign$4, assign$5;\n\n        var args = [], len = arguments.length;\n        while ( len-- ) args[ len ] = arguments[ len ];\n        args = unpack$r(args, 'hcg');\n        var h = args[0];\n        var c = args[1];\n        var _g = args[2];\n        var r,g,b;\n        _g = _g * 255;\n        var _c = c * 255;\n        if (c === 0) {\n            r = g = b = _g;\n        } else {\n            if (h === 360) { h = 0; }\n            if (h > 360) { h -= 360; }\n            if (h < 0) { h += 360; }\n            h /= 60;\n            var i = floor$3(h);\n            var f = h - i;\n            var p = _g * (1 - c);\n            var q = p + _c * (1 - f);\n            var t = p + _c * f;\n            var v = p + _c;\n            switch (i) {\n                case 0: (assign = [v, t, p], r = assign[0], g = assign[1], b = assign[2]); break\n                case 1: (assign$1 = [q, v, p], r = assign$1[0], g = assign$1[1], b = assign$1[2]); break\n                case 2: (assign$2 = [p, v, t], r = assign$2[0], g = assign$2[1], b = assign$2[2]); break\n                case 3: (assign$3 = [p, q, v], r = assign$3[0], g = assign$3[1], b = assign$3[2]); break\n                case 4: (assign$4 = [t, p, v], r = assign$4[0], g = assign$4[1], b = assign$4[2]); break\n                case 5: (assign$5 = [v, p, q], r = assign$5[0], g = assign$5[1], b = assign$5[2]); break\n            }\n        }\n        return [r, g, b, args.length > 3 ? args[3] : 1];\n    };\n\n    var hcg2rgb_1 = hcg2rgb;\n\n    var unpack$q = utils.unpack;\n    var type$j = utils.type;\n    var chroma$g = chroma_1;\n    var Color$z = Color_1;\n    var input$c = input$h;\n\n    var rgb2hcg = rgb2hcg_1;\n\n    Color$z.prototype.hcg = function() {\n        return rgb2hcg(this._rgb);\n    };\n\n    chroma$g.hcg = function () {\n        var args = [], len = arguments.length;\n        while ( len-- ) args[ len ] = arguments[ len ];\n\n        return new (Function.prototype.bind.apply( Color$z, [ null ].concat( args, ['hcg']) ));\n    };\n\n    input$c.format.hcg = hcg2rgb_1;\n\n    input$c.autodetect.push({\n        p: 1,\n        test: function () {\n            var args = [], len = arguments.length;\n            while ( len-- ) args[ len ] = arguments[ len ];\n\n            args = unpack$q(args, 'hcg');\n            if (type$j(args) === 'array' && args.length === 3) {\n                return 'hcg';\n            }\n        }\n    });\n\n    var unpack$p = utils.unpack;\n    var last = utils.last;\n    var round$3 = Math.round;\n\n    var rgb2hex$2 = function () {\n        var args = [], len = arguments.length;\n        while ( len-- ) args[ len ] = arguments[ len ];\n\n        var ref = unpack$p(args, 'rgba');\n        var r = ref[0];\n        var g = ref[1];\n        var b = ref[2];\n        var a = ref[3];\n        var mode = last(args) || 'auto';\n        if (a === undefined) { a = 1; }\n        if (mode === 'auto') {\n            mode = a < 1 ? 'rgba' : 'rgb';\n        }\n        r = round$3(r);\n        g = round$3(g);\n        b = round$3(b);\n        var u = r << 16 | g << 8 | b;\n        var str = \"000000\" + u.toString(16); //#.toUpperCase();\n        str = str.substr(str.length - 6);\n        var hxa = '0' + round$3(a * 255).toString(16);\n        hxa = hxa.substr(hxa.length - 2);\n        switch (mode.toLowerCase()) {\n            case 'rgba': return (\"#\" + str + hxa);\n            case 'argb': return (\"#\" + hxa + str);\n            default: return (\"#\" + str);\n        }\n    };\n\n    var rgb2hex_1 = rgb2hex$2;\n\n    var RE_HEX = /^#?([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/;\n    var RE_HEXA = /^#?([A-Fa-f0-9]{8}|[A-Fa-f0-9]{4})$/;\n\n    var hex2rgb$1 = function (hex) {\n        if (hex.match(RE_HEX)) {\n            // remove optional leading #\n            if (hex.length === 4 || hex.length === 7) {\n                hex = hex.substr(1);\n            }\n            // expand short-notation to full six-digit\n            if (hex.length === 3) {\n                hex = hex.split('');\n                hex = hex[0]+hex[0]+hex[1]+hex[1]+hex[2]+hex[2];\n            }\n            var u = parseInt(hex, 16);\n            var r = u >> 16;\n            var g = u >> 8 & 0xFF;\n            var b = u & 0xFF;\n            return [r,g,b,1];\n        }\n\n        // match rgba hex format, eg #FF000077\n        if (hex.match(RE_HEXA)) {\n            if (hex.length === 5 || hex.length === 9) {\n                // remove optional leading #\n                hex = hex.substr(1);\n            }\n            // expand short-notation to full eight-digit\n            if (hex.length === 4) {\n                hex = hex.split('');\n                hex = hex[0]+hex[0]+hex[1]+hex[1]+hex[2]+hex[2]+hex[3]+hex[3];\n            }\n            var u$1 = parseInt(hex, 16);\n            var r$1 = u$1 >> 24 & 0xFF;\n            var g$1 = u$1 >> 16 & 0xFF;\n            var b$1 = u$1 >> 8 & 0xFF;\n            var a = Math.round((u$1 & 0xFF) / 0xFF * 100) / 100;\n            return [r$1,g$1,b$1,a];\n        }\n\n        // we used to check for css colors here\n        // if _input.css? and rgb = _input.css hex\n        //     return rgb\n\n        throw new Error((\"unknown hex color: \" + hex));\n    };\n\n    var hex2rgb_1 = hex2rgb$1;\n\n    var chroma$f = chroma_1;\n    var Color$y = Color_1;\n    var type$i = utils.type;\n    var input$b = input$h;\n\n    var rgb2hex$1 = rgb2hex_1;\n\n    Color$y.prototype.hex = function(mode) {\n        return rgb2hex$1(this._rgb, mode);\n    };\n\n    chroma$f.hex = function () {\n        var args = [], len = arguments.length;\n        while ( len-- ) args[ len ] = arguments[ len ];\n\n        return new (Function.prototype.bind.apply( Color$y, [ null ].concat( args, ['hex']) ));\n    };\n\n    input$b.format.hex = hex2rgb_1;\n    input$b.autodetect.push({\n        p: 4,\n        test: function (h) {\n            var rest = [], len = arguments.length - 1;\n            while ( len-- > 0 ) rest[ len ] = arguments[ len + 1 ];\n\n            if (!rest.length && type$i(h) === 'string' && [3,4,5,6,7,8,9].indexOf(h.length) >= 0) {\n                return 'hex';\n            }\n        }\n    });\n\n    var unpack$o = utils.unpack;\n    var TWOPI$2 = utils.TWOPI;\n    var min$2 = Math.min;\n    var sqrt$4 = Math.sqrt;\n    var acos = Math.acos;\n\n    var rgb2hsi$1 = function () {\n        var args = [], len = arguments.length;\n        while ( len-- ) args[ len ] = arguments[ len ];\n\n        /*\n        borrowed from here:\n        http://hummer.stanford.edu/museinfo/doc/examples/humdrum/keyscape2/rgb2hsi.cpp\n        */\n        var ref = unpack$o(args, 'rgb');\n        var r = ref[0];\n        var g = ref[1];\n        var b = ref[2];\n        r /= 255;\n        g /= 255;\n        b /= 255;\n        var h;\n        var min_ = min$2(r,g,b);\n        var i = (r+g+b) / 3;\n        var s = i > 0 ? 1 - min_/i : 0;\n        if (s === 0) {\n            h = NaN;\n        } else {\n            h = ((r-g)+(r-b)) / 2;\n            h /= sqrt$4((r-g)*(r-g) + (r-b)*(g-b));\n            h = acos(h);\n            if (b > g) {\n                h = TWOPI$2 - h;\n            }\n            h /= TWOPI$2;\n        }\n        return [h*360,s,i];\n    };\n\n    var rgb2hsi_1 = rgb2hsi$1;\n\n    var unpack$n = utils.unpack;\n    var limit = utils.limit;\n    var TWOPI$1 = utils.TWOPI;\n    var PITHIRD = utils.PITHIRD;\n    var cos$4 = Math.cos;\n\n    /*\n     * hue [0..360]\n     * saturation [0..1]\n     * intensity [0..1]\n     */\n    var hsi2rgb = function () {\n        var args = [], len = arguments.length;\n        while ( len-- ) args[ len ] = arguments[ len ];\n\n        /*\n        borrowed from here:\n        http://hummer.stanford.edu/museinfo/doc/examples/humdrum/keyscape2/hsi2rgb.cpp\n        */\n        args = unpack$n(args, 'hsi');\n        var h = args[0];\n        var s = args[1];\n        var i = args[2];\n        var r,g,b;\n\n        if (isNaN(h)) { h = 0; }\n        if (isNaN(s)) { s = 0; }\n        // normalize hue\n        if (h > 360) { h -= 360; }\n        if (h < 0) { h += 360; }\n        h /= 360;\n        if (h < 1/3) {\n            b = (1-s)/3;\n            r = (1+s*cos$4(TWOPI$1*h)/cos$4(PITHIRD-TWOPI$1*h))/3;\n            g = 1 - (b+r);\n        } else if (h < 2/3) {\n            h -= 1/3;\n            r = (1-s)/3;\n            g = (1+s*cos$4(TWOPI$1*h)/cos$4(PITHIRD-TWOPI$1*h))/3;\n            b = 1 - (r+g);\n        } else {\n            h -= 2/3;\n            g = (1-s)/3;\n            b = (1+s*cos$4(TWOPI$1*h)/cos$4(PITHIRD-TWOPI$1*h))/3;\n            r = 1 - (g+b);\n        }\n        r = limit(i*r*3);\n        g = limit(i*g*3);\n        b = limit(i*b*3);\n        return [r*255, g*255, b*255, args.length > 3 ? args[3] : 1];\n    };\n\n    var hsi2rgb_1 = hsi2rgb;\n\n    var unpack$m = utils.unpack;\n    var type$h = utils.type;\n    var chroma$e = chroma_1;\n    var Color$x = Color_1;\n    var input$a = input$h;\n\n    var rgb2hsi = rgb2hsi_1;\n\n    Color$x.prototype.hsi = function() {\n        return rgb2hsi(this._rgb);\n    };\n\n    chroma$e.hsi = function () {\n        var args = [], len = arguments.length;\n        while ( len-- ) args[ len ] = arguments[ len ];\n\n        return new (Function.prototype.bind.apply( Color$x, [ null ].concat( args, ['hsi']) ));\n    };\n\n    input$a.format.hsi = hsi2rgb_1;\n\n    input$a.autodetect.push({\n        p: 2,\n        test: function () {\n            var args = [], len = arguments.length;\n            while ( len-- ) args[ len ] = arguments[ len ];\n\n            args = unpack$m(args, 'hsi');\n            if (type$h(args) === 'array' && args.length === 3) {\n                return 'hsi';\n            }\n        }\n    });\n\n    var unpack$l = utils.unpack;\n    var type$g = utils.type;\n    var chroma$d = chroma_1;\n    var Color$w = Color_1;\n    var input$9 = input$h;\n\n    var rgb2hsl$1 = rgb2hsl_1;\n\n    Color$w.prototype.hsl = function() {\n        return rgb2hsl$1(this._rgb);\n    };\n\n    chroma$d.hsl = function () {\n        var args = [], len = arguments.length;\n        while ( len-- ) args[ len ] = arguments[ len ];\n\n        return new (Function.prototype.bind.apply( Color$w, [ null ].concat( args, ['hsl']) ));\n    };\n\n    input$9.format.hsl = hsl2rgb_1;\n\n    input$9.autodetect.push({\n        p: 2,\n        test: function () {\n            var args = [], len = arguments.length;\n            while ( len-- ) args[ len ] = arguments[ len ];\n\n            args = unpack$l(args, 'hsl');\n            if (type$g(args) === 'array' && args.length === 3) {\n                return 'hsl';\n            }\n        }\n    });\n\n    var unpack$k = utils.unpack;\n    var min$1 = Math.min;\n    var max$1 = Math.max;\n\n    /*\n     * supported arguments:\n     * - rgb2hsv(r,g,b)\n     * - rgb2hsv([r,g,b])\n     * - rgb2hsv({r,g,b})\n     */\n    var rgb2hsl = function () {\n        var args = [], len = arguments.length;\n        while ( len-- ) args[ len ] = arguments[ len ];\n\n        args = unpack$k(args, 'rgb');\n        var r = args[0];\n        var g = args[1];\n        var b = args[2];\n        var min_ = min$1(r, g, b);\n        var max_ = max$1(r, g, b);\n        var delta = max_ - min_;\n        var h,s,v;\n        v = max_ / 255.0;\n        if (max_ === 0) {\n            h = Number.NaN;\n            s = 0;\n        } else {\n            s = delta / max_;\n            if (r === max_) { h = (g - b) / delta; }\n            if (g === max_) { h = 2+(b - r) / delta; }\n            if (b === max_) { h = 4+(r - g) / delta; }\n            h *= 60;\n            if (h < 0) { h += 360; }\n        }\n        return [h, s, v]\n    };\n\n    var rgb2hsv$1 = rgb2hsl;\n\n    var unpack$j = utils.unpack;\n    var floor$2 = Math.floor;\n\n    var hsv2rgb = function () {\n        var assign, assign$1, assign$2, assign$3, assign$4, assign$5;\n\n        var args = [], len = arguments.length;\n        while ( len-- ) args[ len ] = arguments[ len ];\n        args = unpack$j(args, 'hsv');\n        var h = args[0];\n        var s = args[1];\n        var v = args[2];\n        var r,g,b;\n        v *= 255;\n        if (s === 0) {\n            r = g = b = v;\n        } else {\n            if (h === 360) { h = 0; }\n            if (h > 360) { h -= 360; }\n            if (h < 0) { h += 360; }\n            h /= 60;\n\n            var i = floor$2(h);\n            var f = h - i;\n            var p = v * (1 - s);\n            var q = v * (1 - s * f);\n            var t = v * (1 - s * (1 - f));\n\n            switch (i) {\n                case 0: (assign = [v, t, p], r = assign[0], g = assign[1], b = assign[2]); break\n                case 1: (assign$1 = [q, v, p], r = assign$1[0], g = assign$1[1], b = assign$1[2]); break\n                case 2: (assign$2 = [p, v, t], r = assign$2[0], g = assign$2[1], b = assign$2[2]); break\n                case 3: (assign$3 = [p, q, v], r = assign$3[0], g = assign$3[1], b = assign$3[2]); break\n                case 4: (assign$4 = [t, p, v], r = assign$4[0], g = assign$4[1], b = assign$4[2]); break\n                case 5: (assign$5 = [v, p, q], r = assign$5[0], g = assign$5[1], b = assign$5[2]); break\n            }\n        }\n        return [r,g,b,args.length > 3?args[3]:1];\n    };\n\n    var hsv2rgb_1 = hsv2rgb;\n\n    var unpack$i = utils.unpack;\n    var type$f = utils.type;\n    var chroma$c = chroma_1;\n    var Color$v = Color_1;\n    var input$8 = input$h;\n\n    var rgb2hsv = rgb2hsv$1;\n\n    Color$v.prototype.hsv = function() {\n        return rgb2hsv(this._rgb);\n    };\n\n    chroma$c.hsv = function () {\n        var args = [], len = arguments.length;\n        while ( len-- ) args[ len ] = arguments[ len ];\n\n        return new (Function.prototype.bind.apply( Color$v, [ null ].concat( args, ['hsv']) ));\n    };\n\n    input$8.format.hsv = hsv2rgb_1;\n\n    input$8.autodetect.push({\n        p: 2,\n        test: function () {\n            var args = [], len = arguments.length;\n            while ( len-- ) args[ len ] = arguments[ len ];\n\n            args = unpack$i(args, 'hsv');\n            if (type$f(args) === 'array' && args.length === 3) {\n                return 'hsv';\n            }\n        }\n    });\n\n    var labConstants = {\n        // Corresponds roughly to RGB brighter/darker\n        Kn: 18,\n\n        // D65 standard referent\n        Xn: 0.950470,\n        Yn: 1,\n        Zn: 1.088830,\n\n        t0: 0.137931034,  // 4 / 29\n        t1: 0.206896552,  // 6 / 29\n        t2: 0.12841855,   // 3 * t1 * t1\n        t3: 0.008856452,  // t1 * t1 * t1\n    };\n\n    var LAB_CONSTANTS$3 = labConstants;\n    var unpack$h = utils.unpack;\n    var pow$a = Math.pow;\n\n    var rgb2lab$2 = function () {\n        var args = [], len = arguments.length;\n        while ( len-- ) args[ len ] = arguments[ len ];\n\n        var ref = unpack$h(args, 'rgb');\n        var r = ref[0];\n        var g = ref[1];\n        var b = ref[2];\n        var ref$1 = rgb2xyz(r,g,b);\n        var x = ref$1[0];\n        var y = ref$1[1];\n        var z = ref$1[2];\n        var l = 116 * y - 16;\n        return [l < 0 ? 0 : l, 500 * (x - y), 200 * (y - z)];\n    };\n\n    var rgb_xyz = function (r) {\n        if ((r /= 255) <= 0.04045) { return r / 12.92; }\n        return pow$a((r + 0.055) / 1.055, 2.4);\n    };\n\n    var xyz_lab = function (t) {\n        if (t > LAB_CONSTANTS$3.t3) { return pow$a(t, 1 / 3); }\n        return t / LAB_CONSTANTS$3.t2 + LAB_CONSTANTS$3.t0;\n    };\n\n    var rgb2xyz = function (r,g,b) {\n        r = rgb_xyz(r);\n        g = rgb_xyz(g);\n        b = rgb_xyz(b);\n        var x = xyz_lab((0.4124564 * r + 0.3575761 * g + 0.1804375 * b) / LAB_CONSTANTS$3.Xn);\n        var y = xyz_lab((0.2126729 * r + 0.7151522 * g + 0.0721750 * b) / LAB_CONSTANTS$3.Yn);\n        var z = xyz_lab((0.0193339 * r + 0.1191920 * g + 0.9503041 * b) / LAB_CONSTANTS$3.Zn);\n        return [x,y,z];\n    };\n\n    var rgb2lab_1 = rgb2lab$2;\n\n    var LAB_CONSTANTS$2 = labConstants;\n    var unpack$g = utils.unpack;\n    var pow$9 = Math.pow;\n\n    /*\n     * L* [0..100]\n     * a [-100..100]\n     * b [-100..100]\n     */\n    var lab2rgb$1 = function () {\n        var args = [], len = arguments.length;\n        while ( len-- ) args[ len ] = arguments[ len ];\n\n        args = unpack$g(args, 'lab');\n        var l = args[0];\n        var a = args[1];\n        var b = args[2];\n        var x,y,z, r,g,b_;\n\n        y = (l + 16) / 116;\n        x = isNaN(a) ? y : y + a / 500;\n        z = isNaN(b) ? y : y - b / 200;\n\n        y = LAB_CONSTANTS$2.Yn * lab_xyz(y);\n        x = LAB_CONSTANTS$2.Xn * lab_xyz(x);\n        z = LAB_CONSTANTS$2.Zn * lab_xyz(z);\n\n        r = xyz_rgb(3.2404542 * x - 1.5371385 * y - 0.4985314 * z);  // D65 -> sRGB\n        g = xyz_rgb(-0.9692660 * x + 1.8760108 * y + 0.0415560 * z);\n        b_ = xyz_rgb(0.0556434 * x - 0.2040259 * y + 1.0572252 * z);\n\n        return [r,g,b_,args.length > 3 ? args[3] : 1];\n    };\n\n    var xyz_rgb = function (r) {\n        return 255 * (r <= 0.00304 ? 12.92 * r : 1.055 * pow$9(r, 1 / 2.4) - 0.055)\n    };\n\n    var lab_xyz = function (t) {\n        return t > LAB_CONSTANTS$2.t1 ? t * t * t : LAB_CONSTANTS$2.t2 * (t - LAB_CONSTANTS$2.t0)\n    };\n\n    var lab2rgb_1 = lab2rgb$1;\n\n    var unpack$f = utils.unpack;\n    var type$e = utils.type;\n    var chroma$b = chroma_1;\n    var Color$u = Color_1;\n    var input$7 = input$h;\n\n    var rgb2lab$1 = rgb2lab_1;\n\n    Color$u.prototype.lab = function() {\n        return rgb2lab$1(this._rgb);\n    };\n\n    chroma$b.lab = function () {\n        var args = [], len = arguments.length;\n        while ( len-- ) args[ len ] = arguments[ len ];\n\n        return new (Function.prototype.bind.apply( Color$u, [ null ].concat( args, ['lab']) ));\n    };\n\n    input$7.format.lab = lab2rgb_1;\n\n    input$7.autodetect.push({\n        p: 2,\n        test: function () {\n            var args = [], len = arguments.length;\n            while ( len-- ) args[ len ] = arguments[ len ];\n\n            args = unpack$f(args, 'lab');\n            if (type$e(args) === 'array' && args.length === 3) {\n                return 'lab';\n            }\n        }\n    });\n\n    var unpack$e = utils.unpack;\n    var RAD2DEG = utils.RAD2DEG;\n    var sqrt$3 = Math.sqrt;\n    var atan2$2 = Math.atan2;\n    var round$2 = Math.round;\n\n    var lab2lch$2 = function () {\n        var args = [], len = arguments.length;\n        while ( len-- ) args[ len ] = arguments[ len ];\n\n        var ref = unpack$e(args, 'lab');\n        var l = ref[0];\n        var a = ref[1];\n        var b = ref[2];\n        var c = sqrt$3(a * a + b * b);\n        var h = (atan2$2(b, a) * RAD2DEG + 360) % 360;\n        if (round$2(c*10000) === 0) { h = Number.NaN; }\n        return [l, c, h];\n    };\n\n    var lab2lch_1 = lab2lch$2;\n\n    var unpack$d = utils.unpack;\n    var rgb2lab = rgb2lab_1;\n    var lab2lch$1 = lab2lch_1;\n\n    var rgb2lch$1 = function () {\n        var args = [], len = arguments.length;\n        while ( len-- ) args[ len ] = arguments[ len ];\n\n        var ref = unpack$d(args, 'rgb');\n        var r = ref[0];\n        var g = ref[1];\n        var b = ref[2];\n        var ref$1 = rgb2lab(r,g,b);\n        var l = ref$1[0];\n        var a = ref$1[1];\n        var b_ = ref$1[2];\n        return lab2lch$1(l,a,b_);\n    };\n\n    var rgb2lch_1 = rgb2lch$1;\n\n    var unpack$c = utils.unpack;\n    var DEG2RAD = utils.DEG2RAD;\n    var sin$3 = Math.sin;\n    var cos$3 = Math.cos;\n\n    var lch2lab$2 = function () {\n        var args = [], len = arguments.length;\n        while ( len-- ) args[ len ] = arguments[ len ];\n\n        /*\n        Convert from a qualitative parameter h and a quantitative parameter l to a 24-bit pixel.\n        These formulas were invented by David Dalrymple to obtain maximum contrast without going\n        out of gamut if the parameters are in the range 0-1.\n\n        A saturation multiplier was added by Gregor Aisch\n        */\n        var ref = unpack$c(args, 'lch');\n        var l = ref[0];\n        var c = ref[1];\n        var h = ref[2];\n        if (isNaN(h)) { h = 0; }\n        h = h * DEG2RAD;\n        return [l, cos$3(h) * c, sin$3(h) * c]\n    };\n\n    var lch2lab_1 = lch2lab$2;\n\n    var unpack$b = utils.unpack;\n    var lch2lab$1 = lch2lab_1;\n    var lab2rgb = lab2rgb_1;\n\n    var lch2rgb$1 = function () {\n        var args = [], len = arguments.length;\n        while ( len-- ) args[ len ] = arguments[ len ];\n\n        args = unpack$b(args, 'lch');\n        var l = args[0];\n        var c = args[1];\n        var h = args[2];\n        var ref = lch2lab$1 (l,c,h);\n        var L = ref[0];\n        var a = ref[1];\n        var b_ = ref[2];\n        var ref$1 = lab2rgb (L,a,b_);\n        var r = ref$1[0];\n        var g = ref$1[1];\n        var b = ref$1[2];\n        return [r, g, b, args.length > 3 ? args[3] : 1];\n    };\n\n    var lch2rgb_1 = lch2rgb$1;\n\n    var unpack$a = utils.unpack;\n    var lch2rgb = lch2rgb_1;\n\n    var hcl2rgb = function () {\n        var args = [], len = arguments.length;\n        while ( len-- ) args[ len ] = arguments[ len ];\n\n        var hcl = unpack$a(args, 'hcl').reverse();\n        return lch2rgb.apply(void 0, hcl);\n    };\n\n    var hcl2rgb_1 = hcl2rgb;\n\n    var unpack$9 = utils.unpack;\n    var type$d = utils.type;\n    var chroma$a = chroma_1;\n    var Color$t = Color_1;\n    var input$6 = input$h;\n\n    var rgb2lch = rgb2lch_1;\n\n    Color$t.prototype.lch = function() { return rgb2lch(this._rgb); };\n    Color$t.prototype.hcl = function() { return rgb2lch(this._rgb).reverse(); };\n\n    chroma$a.lch = function () {\n        var args = [], len = arguments.length;\n        while ( len-- ) args[ len ] = arguments[ len ];\n\n        return new (Function.prototype.bind.apply( Color$t, [ null ].concat( args, ['lch']) ));\n    };\n    chroma$a.hcl = function () {\n        var args = [], len = arguments.length;\n        while ( len-- ) args[ len ] = arguments[ len ];\n\n        return new (Function.prototype.bind.apply( Color$t, [ null ].concat( args, ['hcl']) ));\n    };\n\n    input$6.format.lch = lch2rgb_1;\n    input$6.format.hcl = hcl2rgb_1;\n\n    ['lch','hcl'].forEach(function (m) { return input$6.autodetect.push({\n        p: 2,\n        test: function () {\n            var args = [], len = arguments.length;\n            while ( len-- ) args[ len ] = arguments[ len ];\n\n            args = unpack$9(args, m);\n            if (type$d(args) === 'array' && args.length === 3) {\n                return m;\n            }\n        }\n    }); });\n\n    /**\n    \tX11 color names\n\n    \thttp://www.w3.org/TR/css3-color/#svg-color\n    */\n\n    var w3cx11$1 = {\n        aliceblue: '#f0f8ff',\n        antiquewhite: '#faebd7',\n        aqua: '#00ffff',\n        aquamarine: '#7fffd4',\n        azure: '#f0ffff',\n        beige: '#f5f5dc',\n        bisque: '#ffe4c4',\n        black: '#000000',\n        blanchedalmond: '#ffebcd',\n        blue: '#0000ff',\n        blueviolet: '#8a2be2',\n        brown: '#a52a2a',\n        burlywood: '#deb887',\n        cadetblue: '#5f9ea0',\n        chartreuse: '#7fff00',\n        chocolate: '#d2691e',\n        coral: '#ff7f50',\n        cornflower: '#6495ed',\n        cornflowerblue: '#6495ed',\n        cornsilk: '#fff8dc',\n        crimson: '#dc143c',\n        cyan: '#00ffff',\n        darkblue: '#00008b',\n        darkcyan: '#008b8b',\n        darkgoldenrod: '#b8860b',\n        darkgray: '#a9a9a9',\n        darkgreen: '#006400',\n        darkgrey: '#a9a9a9',\n        darkkhaki: '#bdb76b',\n        darkmagenta: '#8b008b',\n        darkolivegreen: '#556b2f',\n        darkorange: '#ff8c00',\n        darkorchid: '#9932cc',\n        darkred: '#8b0000',\n        darksalmon: '#e9967a',\n        darkseagreen: '#8fbc8f',\n        darkslateblue: '#483d8b',\n        darkslategray: '#2f4f4f',\n        darkslategrey: '#2f4f4f',\n        darkturquoise: '#00ced1',\n        darkviolet: '#9400d3',\n        deeppink: '#ff1493',\n        deepskyblue: '#00bfff',\n        dimgray: '#696969',\n        dimgrey: '#696969',\n        dodgerblue: '#1e90ff',\n        firebrick: '#b22222',\n        floralwhite: '#fffaf0',\n        forestgreen: '#228b22',\n        fuchsia: '#ff00ff',\n        gainsboro: '#dcdcdc',\n        ghostwhite: '#f8f8ff',\n        gold: '#ffd700',\n        goldenrod: '#daa520',\n        gray: '#808080',\n        green: '#008000',\n        greenyellow: '#adff2f',\n        grey: '#808080',\n        honeydew: '#f0fff0',\n        hotpink: '#ff69b4',\n        indianred: '#cd5c5c',\n        indigo: '#4b0082',\n        ivory: '#fffff0',\n        khaki: '#f0e68c',\n        laserlemon: '#ffff54',\n        lavender: '#e6e6fa',\n        lavenderblush: '#fff0f5',\n        lawngreen: '#7cfc00',\n        lemonchiffon: '#fffacd',\n        lightblue: '#add8e6',\n        lightcoral: '#f08080',\n        lightcyan: '#e0ffff',\n        lightgoldenrod: '#fafad2',\n        lightgoldenrodyellow: '#fafad2',\n        lightgray: '#d3d3d3',\n        lightgreen: '#90ee90',\n        lightgrey: '#d3d3d3',\n        lightpink: '#ffb6c1',\n        lightsalmon: '#ffa07a',\n        lightseagreen: '#20b2aa',\n        lightskyblue: '#87cefa',\n        lightslategray: '#778899',\n        lightslategrey: '#778899',\n        lightsteelblue: '#b0c4de',\n        lightyellow: '#ffffe0',\n        lime: '#00ff00',\n        limegreen: '#32cd32',\n        linen: '#faf0e6',\n        magenta: '#ff00ff',\n        maroon: '#800000',\n        maroon2: '#7f0000',\n        maroon3: '#b03060',\n        mediumaquamarine: '#66cdaa',\n        mediumblue: '#0000cd',\n        mediumorchid: '#ba55d3',\n        mediumpurple: '#9370db',\n        mediumseagreen: '#3cb371',\n        mediumslateblue: '#7b68ee',\n        mediumspringgreen: '#00fa9a',\n        mediumturquoise: '#48d1cc',\n        mediumvioletred: '#c71585',\n        midnightblue: '#191970',\n        mintcream: '#f5fffa',\n        mistyrose: '#ffe4e1',\n        moccasin: '#ffe4b5',\n        navajowhite: '#ffdead',\n        navy: '#000080',\n        oldlace: '#fdf5e6',\n        olive: '#808000',\n        olivedrab: '#6b8e23',\n        orange: '#ffa500',\n        orangered: '#ff4500',\n        orchid: '#da70d6',\n        palegoldenrod: '#eee8aa',\n        palegreen: '#98fb98',\n        paleturquoise: '#afeeee',\n        palevioletred: '#db7093',\n        papayawhip: '#ffefd5',\n        peachpuff: '#ffdab9',\n        peru: '#cd853f',\n        pink: '#ffc0cb',\n        plum: '#dda0dd',\n        powderblue: '#b0e0e6',\n        purple: '#800080',\n        purple2: '#7f007f',\n        purple3: '#a020f0',\n        rebeccapurple: '#663399',\n        red: '#ff0000',\n        rosybrown: '#bc8f8f',\n        royalblue: '#4169e1',\n        saddlebrown: '#8b4513',\n        salmon: '#fa8072',\n        sandybrown: '#f4a460',\n        seagreen: '#2e8b57',\n        seashell: '#fff5ee',\n        sienna: '#a0522d',\n        silver: '#c0c0c0',\n        skyblue: '#87ceeb',\n        slateblue: '#6a5acd',\n        slategray: '#708090',\n        slategrey: '#708090',\n        snow: '#fffafa',\n        springgreen: '#00ff7f',\n        steelblue: '#4682b4',\n        tan: '#d2b48c',\n        teal: '#008080',\n        thistle: '#d8bfd8',\n        tomato: '#ff6347',\n        turquoise: '#40e0d0',\n        violet: '#ee82ee',\n        wheat: '#f5deb3',\n        white: '#ffffff',\n        whitesmoke: '#f5f5f5',\n        yellow: '#ffff00',\n        yellowgreen: '#9acd32'\n    };\n\n    var w3cx11_1 = w3cx11$1;\n\n    var Color$s = Color_1;\n    var input$5 = input$h;\n    var type$c = utils.type;\n\n    var w3cx11 = w3cx11_1;\n    var hex2rgb = hex2rgb_1;\n    var rgb2hex = rgb2hex_1;\n\n    Color$s.prototype.name = function() {\n        var hex = rgb2hex(this._rgb, 'rgb');\n        for (var i = 0, list = Object.keys(w3cx11); i < list.length; i += 1) {\n            var n = list[i];\n\n            if (w3cx11[n] === hex) { return n.toLowerCase(); }\n        }\n        return hex;\n    };\n\n    input$5.format.named = function (name) {\n        name = name.toLowerCase();\n        if (w3cx11[name]) { return hex2rgb(w3cx11[name]); }\n        throw new Error('unknown color name: '+name);\n    };\n\n    input$5.autodetect.push({\n        p: 5,\n        test: function (h) {\n            var rest = [], len = arguments.length - 1;\n            while ( len-- > 0 ) rest[ len ] = arguments[ len + 1 ];\n\n            if (!rest.length && type$c(h) === 'string' && w3cx11[h.toLowerCase()]) {\n                return 'named';\n            }\n        }\n    });\n\n    var unpack$8 = utils.unpack;\n\n    var rgb2num$1 = function () {\n        var args = [], len = arguments.length;\n        while ( len-- ) args[ len ] = arguments[ len ];\n\n        var ref = unpack$8(args, 'rgb');\n        var r = ref[0];\n        var g = ref[1];\n        var b = ref[2];\n        return (r << 16) + (g << 8) + b;\n    };\n\n    var rgb2num_1 = rgb2num$1;\n\n    var type$b = utils.type;\n\n    var num2rgb = function (num) {\n        if (type$b(num) == \"number\" && num >= 0 && num <= 0xFFFFFF) {\n            var r = num >> 16;\n            var g = (num >> 8) & 0xFF;\n            var b = num & 0xFF;\n            return [r,g,b,1];\n        }\n        throw new Error(\"unknown num color: \"+num);\n    };\n\n    var num2rgb_1 = num2rgb;\n\n    var chroma$9 = chroma_1;\n    var Color$r = Color_1;\n    var input$4 = input$h;\n    var type$a = utils.type;\n\n    var rgb2num = rgb2num_1;\n\n    Color$r.prototype.num = function() {\n        return rgb2num(this._rgb);\n    };\n\n    chroma$9.num = function () {\n        var args = [], len = arguments.length;\n        while ( len-- ) args[ len ] = arguments[ len ];\n\n        return new (Function.prototype.bind.apply( Color$r, [ null ].concat( args, ['num']) ));\n    };\n\n    input$4.format.num = num2rgb_1;\n\n    input$4.autodetect.push({\n        p: 5,\n        test: function () {\n            var args = [], len = arguments.length;\n            while ( len-- ) args[ len ] = arguments[ len ];\n\n            if (args.length === 1 && type$a(args[0]) === 'number' && args[0] >= 0 && args[0] <= 0xFFFFFF) {\n                return 'num';\n            }\n        }\n    });\n\n    var chroma$8 = chroma_1;\n    var Color$q = Color_1;\n    var input$3 = input$h;\n    var unpack$7 = utils.unpack;\n    var type$9 = utils.type;\n    var round$1 = Math.round;\n\n    Color$q.prototype.rgb = function(rnd) {\n        if ( rnd === void 0 ) rnd=true;\n\n        if (rnd === false) { return this._rgb.slice(0,3); }\n        return this._rgb.slice(0,3).map(round$1);\n    };\n\n    Color$q.prototype.rgba = function(rnd) {\n        if ( rnd === void 0 ) rnd=true;\n\n        return this._rgb.slice(0,4).map(function (v,i) {\n            return i<3 ? (rnd === false ? v : round$1(v)) : v;\n        });\n    };\n\n    chroma$8.rgb = function () {\n        var args = [], len = arguments.length;\n        while ( len-- ) args[ len ] = arguments[ len ];\n\n        return new (Function.prototype.bind.apply( Color$q, [ null ].concat( args, ['rgb']) ));\n    };\n\n    input$3.format.rgb = function () {\n        var args = [], len = arguments.length;\n        while ( len-- ) args[ len ] = arguments[ len ];\n\n        var rgba = unpack$7(args, 'rgba');\n        if (rgba[3] === undefined) { rgba[3] = 1; }\n        return rgba;\n    };\n\n    input$3.autodetect.push({\n        p: 3,\n        test: function () {\n            var args = [], len = arguments.length;\n            while ( len-- ) args[ len ] = arguments[ len ];\n\n            args = unpack$7(args, 'rgba');\n            if (type$9(args) === 'array' && (args.length === 3 ||\n                args.length === 4 && type$9(args[3]) == 'number' && args[3] >= 0 && args[3] <= 1)) {\n                return 'rgb';\n            }\n        }\n    });\n\n    /*\n     * Based on implementation by Neil Bartlett\n     * https://github.com/neilbartlett/color-temperature\n     */\n\n    var log$1 = Math.log;\n\n    var temperature2rgb$1 = function (kelvin) {\n        var temp = kelvin / 100;\n        var r,g,b;\n        if (temp < 66) {\n            r = 255;\n            g = temp < 6 ? 0 : -155.25485562709179 - 0.44596950469579133 * (g = temp-2) + 104.49216199393888 * log$1(g);\n            b = temp < 20 ? 0 : -254.76935184120902 + 0.8274096064007395 * (b = temp-10) + 115.67994401066147 * log$1(b);\n        } else {\n            r = 351.97690566805693 + 0.114206453784165 * (r = temp-55) - 40.25366309332127 * log$1(r);\n            g = 325.4494125711974 + 0.07943456536662342 * (g = temp-50) - 28.0852963507957 * log$1(g);\n            b = 255;\n        }\n        return [r,g,b,1];\n    };\n\n    var temperature2rgb_1 = temperature2rgb$1;\n\n    /*\n     * Based on implementation by Neil Bartlett\n     * https://github.com/neilbartlett/color-temperature\n     **/\n\n    var temperature2rgb = temperature2rgb_1;\n    var unpack$6 = utils.unpack;\n    var round = Math.round;\n\n    var rgb2temperature$1 = function () {\n        var args = [], len = arguments.length;\n        while ( len-- ) args[ len ] = arguments[ len ];\n\n        var rgb = unpack$6(args, 'rgb');\n        var r = rgb[0], b = rgb[2];\n        var minTemp = 1000;\n        var maxTemp = 40000;\n        var eps = 0.4;\n        var temp;\n        while (maxTemp - minTemp > eps) {\n            temp = (maxTemp + minTemp) * 0.5;\n            var rgb$1 = temperature2rgb(temp);\n            if ((rgb$1[2] / rgb$1[0]) >= (b / r)) {\n                maxTemp = temp;\n            } else {\n                minTemp = temp;\n            }\n        }\n        return round(temp);\n    };\n\n    var rgb2temperature_1 = rgb2temperature$1;\n\n    var chroma$7 = chroma_1;\n    var Color$p = Color_1;\n    var input$2 = input$h;\n\n    var rgb2temperature = rgb2temperature_1;\n\n    Color$p.prototype.temp =\n    Color$p.prototype.kelvin =\n    Color$p.prototype.temperature = function() {\n        return rgb2temperature(this._rgb);\n    };\n\n    chroma$7.temp =\n    chroma$7.kelvin =\n    chroma$7.temperature = function () {\n        var args = [], len = arguments.length;\n        while ( len-- ) args[ len ] = arguments[ len ];\n\n        return new (Function.prototype.bind.apply( Color$p, [ null ].concat( args, ['temp']) ));\n    };\n\n    input$2.format.temp =\n    input$2.format.kelvin =\n    input$2.format.temperature = temperature2rgb_1;\n\n    var unpack$5 = utils.unpack;\n    var cbrt = Math.cbrt;\n    var pow$8 = Math.pow;\n    var sign$1 = Math.sign;\n\n    var rgb2oklab$2 = function () {\n        var args = [], len = arguments.length;\n        while ( len-- ) args[ len ] = arguments[ len ];\n\n        // OKLab color space implementation taken from\n        // https://bottosson.github.io/posts/oklab/\n        var ref = unpack$5(args, 'rgb');\n        var r = ref[0];\n        var g = ref[1];\n        var b = ref[2];\n        var ref$1 = [rgb2lrgb(r / 255), rgb2lrgb(g / 255), rgb2lrgb(b / 255)];\n        var lr = ref$1[0];\n        var lg = ref$1[1];\n        var lb = ref$1[2];\n        var l = cbrt(0.4122214708 * lr + 0.5363325363 * lg + 0.0514459929 * lb);\n        var m = cbrt(0.2119034982 * lr + 0.6806995451 * lg + 0.1073969566 * lb);\n        var s = cbrt(0.0883024619 * lr + 0.2817188376 * lg + 0.6299787005 * lb);\n\n        return [\n            0.2104542553 * l + 0.793617785 * m - 0.0040720468 * s,\n            1.9779984951 * l - 2.428592205 * m + 0.4505937099 * s,\n            0.0259040371 * l + 0.7827717662 * m - 0.808675766 * s\n        ];\n    };\n\n    var rgb2oklab_1 = rgb2oklab$2;\n\n    function rgb2lrgb(c) {\n        var abs = Math.abs(c);\n        if (abs < 0.04045) {\n            return c / 12.92;\n        }\n        return (sign$1(c) || 1) * pow$8((abs + 0.055) / 1.055, 2.4);\n    }\n\n    var unpack$4 = utils.unpack;\n    var pow$7 = Math.pow;\n    var sign = Math.sign;\n\n    /*\n     * L* [0..100]\n     * a [-100..100]\n     * b [-100..100]\n     */\n    var oklab2rgb$1 = function () {\n        var args = [], len = arguments.length;\n        while ( len-- ) args[ len ] = arguments[ len ];\n\n        args = unpack$4(args, 'lab');\n        var L = args[0];\n        var a = args[1];\n        var b = args[2];\n\n        var l = pow$7(L + 0.3963377774 * a + 0.2158037573 * b, 3);\n        var m = pow$7(L - 0.1055613458 * a - 0.0638541728 * b, 3);\n        var s = pow$7(L - 0.0894841775 * a - 1.291485548 * b, 3);\n\n        return [\n            255 * lrgb2rgb(+4.0767416621 * l - 3.3077115913 * m + 0.2309699292 * s),\n            255 * lrgb2rgb(-1.2684380046 * l + 2.6097574011 * m - 0.3413193965 * s),\n            255 * lrgb2rgb(-0.0041960863 * l - 0.7034186147 * m + 1.707614701 * s),\n            args.length > 3 ? args[3] : 1\n        ];\n    };\n\n    var oklab2rgb_1 = oklab2rgb$1;\n\n    function lrgb2rgb(c) {\n        var abs = Math.abs(c);\n        if (abs > 0.0031308) {\n            return (sign(c) || 1) * (1.055 * pow$7(abs, 1 / 2.4) - 0.055);\n        }\n        return c * 12.92;\n    }\n\n    var unpack$3 = utils.unpack;\n    var type$8 = utils.type;\n    var chroma$6 = chroma_1;\n    var Color$o = Color_1;\n    var input$1 = input$h;\n\n    var rgb2oklab$1 = rgb2oklab_1;\n\n    Color$o.prototype.oklab = function () {\n        return rgb2oklab$1(this._rgb);\n    };\n\n    chroma$6.oklab = function () {\n        var args = [], len = arguments.length;\n        while ( len-- ) args[ len ] = arguments[ len ];\n\n        return new (Function.prototype.bind.apply( Color$o, [ null ].concat( args, ['oklab']) ));\n    };\n\n    input$1.format.oklab = oklab2rgb_1;\n\n    input$1.autodetect.push({\n        p: 3,\n        test: function () {\n            var args = [], len = arguments.length;\n            while ( len-- ) args[ len ] = arguments[ len ];\n\n            args = unpack$3(args, 'oklab');\n            if (type$8(args) === 'array' && args.length === 3) {\n                return 'oklab';\n            }\n        }\n    });\n\n    var unpack$2 = utils.unpack;\n    var rgb2oklab = rgb2oklab_1;\n    var lab2lch = lab2lch_1;\n\n    var rgb2oklch$1 = function () {\n        var args = [], len = arguments.length;\n        while ( len-- ) args[ len ] = arguments[ len ];\n\n        var ref = unpack$2(args, 'rgb');\n        var r = ref[0];\n        var g = ref[1];\n        var b = ref[2];\n        var ref$1 = rgb2oklab(r, g, b);\n        var l = ref$1[0];\n        var a = ref$1[1];\n        var b_ = ref$1[2];\n        return lab2lch(l, a, b_);\n    };\n\n    var rgb2oklch_1 = rgb2oklch$1;\n\n    var unpack$1 = utils.unpack;\n    var lch2lab = lch2lab_1;\n    var oklab2rgb = oklab2rgb_1;\n\n    var oklch2rgb = function () {\n        var args = [], len = arguments.length;\n        while ( len-- ) args[ len ] = arguments[ len ];\n\n        args = unpack$1(args, 'lch');\n        var l = args[0];\n        var c = args[1];\n        var h = args[2];\n        var ref = lch2lab(l, c, h);\n        var L = ref[0];\n        var a = ref[1];\n        var b_ = ref[2];\n        var ref$1 = oklab2rgb(L, a, b_);\n        var r = ref$1[0];\n        var g = ref$1[1];\n        var b = ref$1[2];\n        return [r, g, b, args.length > 3 ? args[3] : 1];\n    };\n\n    var oklch2rgb_1 = oklch2rgb;\n\n    var unpack = utils.unpack;\n    var type$7 = utils.type;\n    var chroma$5 = chroma_1;\n    var Color$n = Color_1;\n    var input = input$h;\n\n    var rgb2oklch = rgb2oklch_1;\n\n    Color$n.prototype.oklch = function () {\n        return rgb2oklch(this._rgb);\n    };\n\n    chroma$5.oklch = function () {\n        var args = [], len = arguments.length;\n        while ( len-- ) args[ len ] = arguments[ len ];\n\n        return new (Function.prototype.bind.apply( Color$n, [ null ].concat( args, ['oklch']) ));\n    };\n\n    input.format.oklch = oklch2rgb_1;\n\n    input.autodetect.push({\n        p: 3,\n        test: function () {\n            var args = [], len = arguments.length;\n            while ( len-- ) args[ len ] = arguments[ len ];\n\n            args = unpack(args, 'oklch');\n            if (type$7(args) === 'array' && args.length === 3) {\n                return 'oklch';\n            }\n        }\n    });\n\n    var Color$m = Color_1;\n    var type$6 = utils.type;\n\n    Color$m.prototype.alpha = function(a, mutate) {\n        if ( mutate === void 0 ) mutate=false;\n\n        if (a !== undefined && type$6(a) === 'number') {\n            if (mutate) {\n                this._rgb[3] = a;\n                return this;\n            }\n            return new Color$m([this._rgb[0], this._rgb[1], this._rgb[2], a], 'rgb');\n        }\n        return this._rgb[3];\n    };\n\n    var Color$l = Color_1;\n\n    Color$l.prototype.clipped = function() {\n        return this._rgb._clipped || false;\n    };\n\n    var Color$k = Color_1;\n    var LAB_CONSTANTS$1 = labConstants;\n\n    Color$k.prototype.darken = function(amount) {\n    \tif ( amount === void 0 ) amount=1;\n\n    \tvar me = this;\n    \tvar lab = me.lab();\n    \tlab[0] -= LAB_CONSTANTS$1.Kn * amount;\n    \treturn new Color$k(lab, 'lab').alpha(me.alpha(), true);\n    };\n\n    Color$k.prototype.brighten = function(amount) {\n    \tif ( amount === void 0 ) amount=1;\n\n    \treturn this.darken(-amount);\n    };\n\n    Color$k.prototype.darker = Color$k.prototype.darken;\n    Color$k.prototype.brighter = Color$k.prototype.brighten;\n\n    var Color$j = Color_1;\n\n    Color$j.prototype.get = function (mc) {\n        var ref = mc.split('.');\n        var mode = ref[0];\n        var channel = ref[1];\n        var src = this[mode]();\n        if (channel) {\n            var i = mode.indexOf(channel) - (mode.substr(0, 2) === 'ok' ? 2 : 0);\n            if (i > -1) { return src[i]; }\n            throw new Error((\"unknown channel \" + channel + \" in mode \" + mode));\n        } else {\n            return src;\n        }\n    };\n\n    var Color$i = Color_1;\n    var type$5 = utils.type;\n    var pow$6 = Math.pow;\n\n    var EPS = 1e-7;\n    var MAX_ITER = 20;\n\n    Color$i.prototype.luminance = function(lum) {\n        if (lum !== undefined && type$5(lum) === 'number') {\n            if (lum === 0) {\n                // return pure black\n                return new Color$i([0,0,0,this._rgb[3]], 'rgb');\n            }\n            if (lum === 1) {\n                // return pure white\n                return new Color$i([255,255,255,this._rgb[3]], 'rgb');\n            }\n            // compute new color using...\n            var cur_lum = this.luminance();\n            var mode = 'rgb';\n            var max_iter = MAX_ITER;\n\n            var test = function (low, high) {\n                var mid = low.interpolate(high, 0.5, mode);\n                var lm = mid.luminance();\n                if (Math.abs(lum - lm) < EPS || !max_iter--) {\n                    // close enough\n                    return mid;\n                }\n                return lm > lum ? test(low, mid) : test(mid, high);\n            };\n\n            var rgb = (cur_lum > lum ? test(new Color$i([0,0,0]), this) : test(this, new Color$i([255,255,255]))).rgb();\n            return new Color$i(rgb.concat( [this._rgb[3]]));\n        }\n        return rgb2luminance.apply(void 0, (this._rgb).slice(0,3));\n    };\n\n\n    var rgb2luminance = function (r,g,b) {\n        // relative luminance\n        // see http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n        r = luminance_x(r);\n        g = luminance_x(g);\n        b = luminance_x(b);\n        return 0.2126 * r + 0.7152 * g + 0.0722 * b;\n    };\n\n    var luminance_x = function (x) {\n        x /= 255;\n        return x <= 0.03928 ? x/12.92 : pow$6((x+0.055)/1.055, 2.4);\n    };\n\n    var interpolator$1 = {};\n\n    var Color$h = Color_1;\n    var type$4 = utils.type;\n    var interpolator = interpolator$1;\n\n    var mix$1 = function (col1, col2, f) {\n        if ( f === void 0 ) f=0.5;\n        var rest = [], len = arguments.length - 3;\n        while ( len-- > 0 ) rest[ len ] = arguments[ len + 3 ];\n\n        var mode = rest[0] || 'lrgb';\n        if (!interpolator[mode] && !rest.length) {\n            // fall back to the first supported mode\n            mode = Object.keys(interpolator)[0];\n        }\n        if (!interpolator[mode]) {\n            throw new Error((\"interpolation mode \" + mode + \" is not defined\"));\n        }\n        if (type$4(col1) !== 'object') { col1 = new Color$h(col1); }\n        if (type$4(col2) !== 'object') { col2 = new Color$h(col2); }\n        return interpolator[mode](col1, col2, f)\n            .alpha(col1.alpha() + f * (col2.alpha() - col1.alpha()));\n    };\n\n    var Color$g = Color_1;\n    var mix = mix$1;\n\n    Color$g.prototype.mix =\n    Color$g.prototype.interpolate = function(col2, f) {\n    \tif ( f === void 0 ) f=0.5;\n    \tvar rest = [], len = arguments.length - 2;\n    \twhile ( len-- > 0 ) rest[ len ] = arguments[ len + 2 ];\n\n    \treturn mix.apply(void 0, [ this, col2, f ].concat( rest ));\n    };\n\n    var Color$f = Color_1;\n\n    Color$f.prototype.premultiply = function(mutate) {\n    \tif ( mutate === void 0 ) mutate=false;\n\n    \tvar rgb = this._rgb;\n    \tvar a = rgb[3];\n    \tif (mutate) {\n    \t\tthis._rgb = [rgb[0]*a, rgb[1]*a, rgb[2]*a, a];\n    \t\treturn this;\n    \t} else {\n    \t\treturn new Color$f([rgb[0]*a, rgb[1]*a, rgb[2]*a, a], 'rgb');\n    \t}\n    };\n\n    var Color$e = Color_1;\n    var LAB_CONSTANTS = labConstants;\n\n    Color$e.prototype.saturate = function(amount) {\n    \tif ( amount === void 0 ) amount=1;\n\n    \tvar me = this;\n    \tvar lch = me.lch();\n    \tlch[1] += LAB_CONSTANTS.Kn * amount;\n    \tif (lch[1] < 0) { lch[1] = 0; }\n    \treturn new Color$e(lch, 'lch').alpha(me.alpha(), true);\n    };\n\n    Color$e.prototype.desaturate = function(amount) {\n    \tif ( amount === void 0 ) amount=1;\n\n    \treturn this.saturate(-amount);\n    };\n\n    var Color$d = Color_1;\n    var type$3 = utils.type;\n\n    Color$d.prototype.set = function (mc, value, mutate) {\n        if ( mutate === void 0 ) mutate = false;\n\n        var ref = mc.split('.');\n        var mode = ref[0];\n        var channel = ref[1];\n        var src = this[mode]();\n        if (channel) {\n            var i = mode.indexOf(channel) - (mode.substr(0, 2) === 'ok' ? 2 : 0);\n            if (i > -1) {\n                if (type$3(value) == 'string') {\n                    switch (value.charAt(0)) {\n                        case '+':\n                            src[i] += +value;\n                            break;\n                        case '-':\n                            src[i] += +value;\n                            break;\n                        case '*':\n                            src[i] *= +value.substr(1);\n                            break;\n                        case '/':\n                            src[i] /= +value.substr(1);\n                            break;\n                        default:\n                            src[i] = +value;\n                    }\n                } else if (type$3(value) === 'number') {\n                    src[i] = value;\n                } else {\n                    throw new Error(\"unsupported value for Color.set\");\n                }\n                var out = new Color$d(src, mode);\n                if (mutate) {\n                    this._rgb = out._rgb;\n                    return this;\n                }\n                return out;\n            }\n            throw new Error((\"unknown channel \" + channel + \" in mode \" + mode));\n        } else {\n            return src;\n        }\n    };\n\n    var Color$c = Color_1;\n\n    var rgb = function (col1, col2, f) {\n        var xyz0 = col1._rgb;\n        var xyz1 = col2._rgb;\n        return new Color$c(\n            xyz0[0] + f * (xyz1[0]-xyz0[0]),\n            xyz0[1] + f * (xyz1[1]-xyz0[1]),\n            xyz0[2] + f * (xyz1[2]-xyz0[2]),\n            'rgb'\n        )\n    };\n\n    // register interpolator\n    interpolator$1.rgb = rgb;\n\n    var Color$b = Color_1;\n    var sqrt$2 = Math.sqrt;\n    var pow$5 = Math.pow;\n\n    var lrgb = function (col1, col2, f) {\n        var ref = col1._rgb;\n        var x1 = ref[0];\n        var y1 = ref[1];\n        var z1 = ref[2];\n        var ref$1 = col2._rgb;\n        var x2 = ref$1[0];\n        var y2 = ref$1[1];\n        var z2 = ref$1[2];\n        return new Color$b(\n            sqrt$2(pow$5(x1,2) * (1-f) + pow$5(x2,2) * f),\n            sqrt$2(pow$5(y1,2) * (1-f) + pow$5(y2,2) * f),\n            sqrt$2(pow$5(z1,2) * (1-f) + pow$5(z2,2) * f),\n            'rgb'\n        )\n    };\n\n    // register interpolator\n    interpolator$1.lrgb = lrgb;\n\n    var Color$a = Color_1;\n\n    var lab = function (col1, col2, f) {\n        var xyz0 = col1.lab();\n        var xyz1 = col2.lab();\n        return new Color$a(\n            xyz0[0] + f * (xyz1[0]-xyz0[0]),\n            xyz0[1] + f * (xyz1[1]-xyz0[1]),\n            xyz0[2] + f * (xyz1[2]-xyz0[2]),\n            'lab'\n        )\n    };\n\n    // register interpolator\n    interpolator$1.lab = lab;\n\n    var Color$9 = Color_1;\n\n    var _hsx = function (col1, col2, f, m) {\n        var assign, assign$1;\n\n        var xyz0, xyz1;\n        if (m === 'hsl') {\n            xyz0 = col1.hsl();\n            xyz1 = col2.hsl();\n        } else if (m === 'hsv') {\n            xyz0 = col1.hsv();\n            xyz1 = col2.hsv();\n        } else if (m === 'hcg') {\n            xyz0 = col1.hcg();\n            xyz1 = col2.hcg();\n        } else if (m === 'hsi') {\n            xyz0 = col1.hsi();\n            xyz1 = col2.hsi();\n        } else if (m === 'lch' || m === 'hcl') {\n            m = 'hcl';\n            xyz0 = col1.hcl();\n            xyz1 = col2.hcl();\n        } else if (m === 'oklch') {\n            xyz0 = col1.oklch().reverse();\n            xyz1 = col2.oklch().reverse();\n        }\n\n        var hue0, hue1, sat0, sat1, lbv0, lbv1;\n        if (m.substr(0, 1) === 'h' || m === 'oklch') {\n            (assign = xyz0, hue0 = assign[0], sat0 = assign[1], lbv0 = assign[2]);\n            (assign$1 = xyz1, hue1 = assign$1[0], sat1 = assign$1[1], lbv1 = assign$1[2]);\n        }\n\n        var sat, hue, lbv, dh;\n\n        if (!isNaN(hue0) && !isNaN(hue1)) {\n            // both colors have hue\n            if (hue1 > hue0 && hue1 - hue0 > 180) {\n                dh = hue1 - (hue0 + 360);\n            } else if (hue1 < hue0 && hue0 - hue1 > 180) {\n                dh = hue1 + 360 - hue0;\n            } else {\n                dh = hue1 - hue0;\n            }\n            hue = hue0 + f * dh;\n        } else if (!isNaN(hue0)) {\n            hue = hue0;\n            if ((lbv1 == 1 || lbv1 == 0) && m != 'hsv') { sat = sat0; }\n        } else if (!isNaN(hue1)) {\n            hue = hue1;\n            if ((lbv0 == 1 || lbv0 == 0) && m != 'hsv') { sat = sat1; }\n        } else {\n            hue = Number.NaN;\n        }\n\n        if (sat === undefined) { sat = sat0 + f * (sat1 - sat0); }\n        lbv = lbv0 + f * (lbv1 - lbv0);\n        return m === 'oklch' ? new Color$9([lbv, sat, hue], m) : new Color$9([hue, sat, lbv], m);\n    };\n\n    var interpolate_hsx$5 = _hsx;\n\n    var lch = function (col1, col2, f) {\n    \treturn interpolate_hsx$5(col1, col2, f, 'lch');\n    };\n\n    // register interpolator\n    interpolator$1.lch = lch;\n    interpolator$1.hcl = lch;\n\n    var Color$8 = Color_1;\n\n    var num = function (col1, col2, f) {\n        var c1 = col1.num();\n        var c2 = col2.num();\n        return new Color$8(c1 + f * (c2-c1), 'num')\n    };\n\n    // register interpolator\n    interpolator$1.num = num;\n\n    var interpolate_hsx$4 = _hsx;\n\n    var hcg = function (col1, col2, f) {\n    \treturn interpolate_hsx$4(col1, col2, f, 'hcg');\n    };\n\n    // register interpolator\n    interpolator$1.hcg = hcg;\n\n    var interpolate_hsx$3 = _hsx;\n\n    var hsi = function (col1, col2, f) {\n    \treturn interpolate_hsx$3(col1, col2, f, 'hsi');\n    };\n\n    // register interpolator\n    interpolator$1.hsi = hsi;\n\n    var interpolate_hsx$2 = _hsx;\n\n    var hsl = function (col1, col2, f) {\n    \treturn interpolate_hsx$2(col1, col2, f, 'hsl');\n    };\n\n    // register interpolator\n    interpolator$1.hsl = hsl;\n\n    var interpolate_hsx$1 = _hsx;\n\n    var hsv = function (col1, col2, f) {\n    \treturn interpolate_hsx$1(col1, col2, f, 'hsv');\n    };\n\n    // register interpolator\n    interpolator$1.hsv = hsv;\n\n    var Color$7 = Color_1;\n\n    var oklab = function (col1, col2, f) {\n        var xyz0 = col1.oklab();\n        var xyz1 = col2.oklab();\n        return new Color$7(\n            xyz0[0] + f * (xyz1[0] - xyz0[0]),\n            xyz0[1] + f * (xyz1[1] - xyz0[1]),\n            xyz0[2] + f * (xyz1[2] - xyz0[2]),\n            'oklab'\n        );\n    };\n\n    // register interpolator\n    interpolator$1.oklab = oklab;\n\n    var interpolate_hsx = _hsx;\n\n    var oklch = function (col1, col2, f) {\n        return interpolate_hsx(col1, col2, f, 'oklch');\n    };\n\n    // register interpolator\n    interpolator$1.oklch = oklch;\n\n    var Color$6 = Color_1;\n    var clip_rgb$1 = utils.clip_rgb;\n    var pow$4 = Math.pow;\n    var sqrt$1 = Math.sqrt;\n    var PI$1 = Math.PI;\n    var cos$2 = Math.cos;\n    var sin$2 = Math.sin;\n    var atan2$1 = Math.atan2;\n\n    var average = function (colors, mode, weights) {\n        if ( mode === void 0 ) mode='lrgb';\n        if ( weights === void 0 ) weights=null;\n\n        var l = colors.length;\n        if (!weights) { weights = Array.from(new Array(l)).map(function () { return 1; }); }\n        // normalize weights\n        var k = l / weights.reduce(function(a, b) { return a + b; });\n        weights.forEach(function (w,i) { weights[i] *= k; });\n        // convert colors to Color objects\n        colors = colors.map(function (c) { return new Color$6(c); });\n        if (mode === 'lrgb') {\n            return _average_lrgb(colors, weights)\n        }\n        var first = colors.shift();\n        var xyz = first.get(mode);\n        var cnt = [];\n        var dx = 0;\n        var dy = 0;\n        // initial color\n        for (var i=0; i<xyz.length; i++) {\n            xyz[i] = (xyz[i] || 0) * weights[0];\n            cnt.push(isNaN(xyz[i]) ? 0 : weights[0]);\n            if (mode.charAt(i) === 'h' && !isNaN(xyz[i])) {\n                var A = xyz[i] / 180 * PI$1;\n                dx += cos$2(A) * weights[0];\n                dy += sin$2(A) * weights[0];\n            }\n        }\n\n        var alpha = first.alpha() * weights[0];\n        colors.forEach(function (c,ci) {\n            var xyz2 = c.get(mode);\n            alpha += c.alpha() * weights[ci+1];\n            for (var i=0; i<xyz.length; i++) {\n                if (!isNaN(xyz2[i])) {\n                    cnt[i] += weights[ci+1];\n                    if (mode.charAt(i) === 'h') {\n                        var A = xyz2[i] / 180 * PI$1;\n                        dx += cos$2(A) * weights[ci+1];\n                        dy += sin$2(A) * weights[ci+1];\n                    } else {\n                        xyz[i] += xyz2[i] * weights[ci+1];\n                    }\n                }\n            }\n        });\n\n        for (var i$1=0; i$1<xyz.length; i$1++) {\n            if (mode.charAt(i$1) === 'h') {\n                var A$1 = atan2$1(dy / cnt[i$1], dx / cnt[i$1]) / PI$1 * 180;\n                while (A$1 < 0) { A$1 += 360; }\n                while (A$1 >= 360) { A$1 -= 360; }\n                xyz[i$1] = A$1;\n            } else {\n                xyz[i$1] = xyz[i$1]/cnt[i$1];\n            }\n        }\n        alpha /= l;\n        return (new Color$6(xyz, mode)).alpha(alpha > 0.99999 ? 1 : alpha, true);\n    };\n\n\n    var _average_lrgb = function (colors, weights) {\n        var l = colors.length;\n        var xyz = [0,0,0,0];\n        for (var i=0; i < colors.length; i++) {\n            var col = colors[i];\n            var f = weights[i] / l;\n            var rgb = col._rgb;\n            xyz[0] += pow$4(rgb[0],2) * f;\n            xyz[1] += pow$4(rgb[1],2) * f;\n            xyz[2] += pow$4(rgb[2],2) * f;\n            xyz[3] += rgb[3] * f;\n        }\n        xyz[0] = sqrt$1(xyz[0]);\n        xyz[1] = sqrt$1(xyz[1]);\n        xyz[2] = sqrt$1(xyz[2]);\n        if (xyz[3] > 0.9999999) { xyz[3] = 1; }\n        return new Color$6(clip_rgb$1(xyz));\n    };\n\n    // minimal multi-purpose interface\n\n    // @requires utils color analyze\n\n    var chroma$4 = chroma_1;\n    var type$2 = utils.type;\n\n    var pow$3 = Math.pow;\n\n    var scale$2 = function(colors) {\n\n        // constructor\n        var _mode = 'rgb';\n        var _nacol = chroma$4('#ccc');\n        var _spread = 0;\n        // const _fixed = false;\n        var _domain = [0, 1];\n        var _pos = [];\n        var _padding = [0,0];\n        var _classes = false;\n        var _colors = [];\n        var _out = false;\n        var _min = 0;\n        var _max = 1;\n        var _correctLightness = false;\n        var _colorCache = {};\n        var _useCache = true;\n        var _gamma = 1;\n\n        // private methods\n\n        var setColors = function(colors) {\n            colors = colors || ['#fff', '#000'];\n            if (colors && type$2(colors) === 'string' && chroma$4.brewer &&\n                chroma$4.brewer[colors.toLowerCase()]) {\n                colors = chroma$4.brewer[colors.toLowerCase()];\n            }\n            if (type$2(colors) === 'array') {\n                // handle single color\n                if (colors.length === 1) {\n                    colors = [colors[0], colors[0]];\n                }\n                // make a copy of the colors\n                colors = colors.slice(0);\n                // convert to chroma classes\n                for (var c=0; c<colors.length; c++) {\n                    colors[c] = chroma$4(colors[c]);\n                }\n                // auto-fill color position\n                _pos.length = 0;\n                for (var c$1=0; c$1<colors.length; c$1++) {\n                    _pos.push(c$1/(colors.length-1));\n                }\n            }\n            resetCache();\n            return _colors = colors;\n        };\n\n        var getClass = function(value) {\n            if (_classes != null) {\n                var n = _classes.length-1;\n                var i = 0;\n                while (i < n && value >= _classes[i]) {\n                    i++;\n                }\n                return i-1;\n            }\n            return 0;\n        };\n\n        var tMapLightness = function (t) { return t; };\n        var tMapDomain = function (t) { return t; };\n\n        // const classifyValue = function(value) {\n        //     let val = value;\n        //     if (_classes.length > 2) {\n        //         const n = _classes.length-1;\n        //         const i = getClass(value);\n        //         const minc = _classes[0] + ((_classes[1]-_classes[0]) * (0 + (_spread * 0.5)));  // center of 1st class\n        //         const maxc = _classes[n-1] + ((_classes[n]-_classes[n-1]) * (1 - (_spread * 0.5)));  // center of last class\n        //         val = _min + ((((_classes[i] + ((_classes[i+1] - _classes[i]) * 0.5)) - minc) / (maxc-minc)) * (_max - _min));\n        //     }\n        //     return val;\n        // };\n\n        var getColor = function(val, bypassMap) {\n            var col, t;\n            if (bypassMap == null) { bypassMap = false; }\n            if (isNaN(val) || (val === null)) { return _nacol; }\n            if (!bypassMap) {\n                if (_classes && (_classes.length > 2)) {\n                    // find the class\n                    var c = getClass(val);\n                    t = c / (_classes.length-2);\n                } else if (_max !== _min) {\n                    // just interpolate between min/max\n                    t = (val - _min) / (_max - _min);\n                } else {\n                    t = 1;\n                }\n            } else {\n                t = val;\n            }\n\n            // domain map\n            t = tMapDomain(t);\n\n            if (!bypassMap) {\n                t = tMapLightness(t);  // lightness correction\n            }\n\n            if (_gamma !== 1) { t = pow$3(t, _gamma); }\n\n            t = _padding[0] + (t * (1 - _padding[0] - _padding[1]));\n\n            t = Math.min(1, Math.max(0, t));\n\n            var k = Math.floor(t * 10000);\n\n            if (_useCache && _colorCache[k]) {\n                col = _colorCache[k];\n            } else {\n                if (type$2(_colors) === 'array') {\n                    //for i in [0.._pos.length-1]\n                    for (var i=0; i<_pos.length; i++) {\n                        var p = _pos[i];\n                        if (t <= p) {\n                            col = _colors[i];\n                            break;\n                        }\n                        if ((t >= p) && (i === (_pos.length-1))) {\n                            col = _colors[i];\n                            break;\n                        }\n                        if (t > p && t < _pos[i+1]) {\n                            t = (t-p)/(_pos[i+1]-p);\n                            col = chroma$4.interpolate(_colors[i], _colors[i+1], t, _mode);\n                            break;\n                        }\n                    }\n                } else if (type$2(_colors) === 'function') {\n                    col = _colors(t);\n                }\n                if (_useCache) { _colorCache[k] = col; }\n            }\n            return col;\n        };\n\n        var resetCache = function () { return _colorCache = {}; };\n\n        setColors(colors);\n\n        // public interface\n\n        var f = function(v) {\n            var c = chroma$4(getColor(v));\n            if (_out && c[_out]) { return c[_out](); } else { return c; }\n        };\n\n        f.classes = function(classes) {\n            if (classes != null) {\n                if (type$2(classes) === 'array') {\n                    _classes = classes;\n                    _domain = [classes[0], classes[classes.length-1]];\n                } else {\n                    var d = chroma$4.analyze(_domain);\n                    if (classes === 0) {\n                        _classes = [d.min, d.max];\n                    } else {\n                        _classes = chroma$4.limits(d, 'e', classes);\n                    }\n                }\n                return f;\n            }\n            return _classes;\n        };\n\n\n        f.domain = function(domain) {\n            if (!arguments.length) {\n                return _domain;\n            }\n            _min = domain[0];\n            _max = domain[domain.length-1];\n            _pos = [];\n            var k = _colors.length;\n            if ((domain.length === k) && (_min !== _max)) {\n                // update positions\n                for (var i = 0, list = Array.from(domain); i < list.length; i += 1) {\n                    var d = list[i];\n\n                  _pos.push((d-_min) / (_max-_min));\n                }\n            } else {\n                for (var c=0; c<k; c++) {\n                    _pos.push(c/(k-1));\n                }\n                if (domain.length > 2) {\n                    // set domain map\n                    var tOut = domain.map(function (d,i) { return i/(domain.length-1); });\n                    var tBreaks = domain.map(function (d) { return (d - _min) / (_max - _min); });\n                    if (!tBreaks.every(function (val, i) { return tOut[i] === val; })) {\n                        tMapDomain = function (t) {\n                            if (t <= 0 || t >= 1) { return t; }\n                            var i = 0;\n                            while (t >= tBreaks[i+1]) { i++; }\n                            var f = (t - tBreaks[i]) / (tBreaks[i+1] - tBreaks[i]);\n                            var out = tOut[i] + f * (tOut[i+1] - tOut[i]);\n                            return out;\n                        };\n                    }\n\n                }\n            }\n            _domain = [_min, _max];\n            return f;\n        };\n\n        f.mode = function(_m) {\n            if (!arguments.length) {\n                return _mode;\n            }\n            _mode = _m;\n            resetCache();\n            return f;\n        };\n\n        f.range = function(colors, _pos) {\n            setColors(colors);\n            return f;\n        };\n\n        f.out = function(_o) {\n            _out = _o;\n            return f;\n        };\n\n        f.spread = function(val) {\n            if (!arguments.length) {\n                return _spread;\n            }\n            _spread = val;\n            return f;\n        };\n\n        f.correctLightness = function(v) {\n            if (v == null) { v = true; }\n            _correctLightness = v;\n            resetCache();\n            if (_correctLightness) {\n                tMapLightness = function(t) {\n                    var L0 = getColor(0, true).lab()[0];\n                    var L1 = getColor(1, true).lab()[0];\n                    var pol = L0 > L1;\n                    var L_actual = getColor(t, true).lab()[0];\n                    var L_ideal = L0 + ((L1 - L0) * t);\n                    var L_diff = L_actual - L_ideal;\n                    var t0 = 0;\n                    var t1 = 1;\n                    var max_iter = 20;\n                    while ((Math.abs(L_diff) > 1e-2) && (max_iter-- > 0)) {\n                        (function() {\n                            if (pol) { L_diff *= -1; }\n                            if (L_diff < 0) {\n                                t0 = t;\n                                t += (t1 - t) * 0.5;\n                            } else {\n                                t1 = t;\n                                t += (t0 - t) * 0.5;\n                            }\n                            L_actual = getColor(t, true).lab()[0];\n                            return L_diff = L_actual - L_ideal;\n                        })();\n                    }\n                    return t;\n                };\n            } else {\n                tMapLightness = function (t) { return t; };\n            }\n            return f;\n        };\n\n        f.padding = function(p) {\n            if (p != null) {\n                if (type$2(p) === 'number') {\n                    p = [p,p];\n                }\n                _padding = p;\n                return f;\n            } else {\n                return _padding;\n            }\n        };\n\n        f.colors = function(numColors, out) {\n            // If no arguments are given, return the original colors that were provided\n            if (arguments.length < 2) { out = 'hex'; }\n            var result = [];\n\n            if (arguments.length === 0) {\n                result = _colors.slice(0);\n\n            } else if (numColors === 1) {\n                result = [f(0.5)];\n\n            } else if (numColors > 1) {\n                var dm = _domain[0];\n                var dd = _domain[1] - dm;\n                result = __range__(0, numColors, false).map(function (i) { return f( dm + ((i/(numColors-1)) * dd) ); });\n\n            } else { // returns all colors based on the defined classes\n                colors = [];\n                var samples = [];\n                if (_classes && (_classes.length > 2)) {\n                    for (var i = 1, end = _classes.length, asc = 1 <= end; asc ? i < end : i > end; asc ? i++ : i--) {\n                        samples.push((_classes[i-1]+_classes[i])*0.5);\n                    }\n                } else {\n                    samples = _domain;\n                }\n                result = samples.map(function (v) { return f(v); });\n            }\n\n            if (chroma$4[out]) {\n                result = result.map(function (c) { return c[out](); });\n            }\n            return result;\n        };\n\n        f.cache = function(c) {\n            if (c != null) {\n                _useCache = c;\n                return f;\n            } else {\n                return _useCache;\n            }\n        };\n\n        f.gamma = function(g) {\n            if (g != null) {\n                _gamma = g;\n                return f;\n            } else {\n                return _gamma;\n            }\n        };\n\n        f.nodata = function(d) {\n            if (d != null) {\n                _nacol = chroma$4(d);\n                return f;\n            } else {\n                return _nacol;\n            }\n        };\n\n        return f;\n    };\n\n    function __range__(left, right, inclusive) {\n      var range = [];\n      var ascending = left < right;\n      var end = !inclusive ? right : ascending ? right + 1 : right - 1;\n      for (var i = left; ascending ? i < end : i > end; ascending ? i++ : i--) {\n        range.push(i);\n      }\n      return range;\n    }\n\n    //\n    // interpolates between a set of colors uzing a bezier spline\n    //\n\n    // @requires utils lab\n    var Color$5 = Color_1;\n\n    var scale$1 = scale$2;\n\n    // nth row of the pascal triangle\n    var binom_row = function(n) {\n        var row = [1, 1];\n        for (var i = 1; i < n; i++) {\n            var newrow = [1];\n            for (var j = 1; j <= row.length; j++) {\n                newrow[j] = (row[j] || 0) + row[j - 1];\n            }\n            row = newrow;\n        }\n        return row;\n    };\n\n    var bezier = function(colors) {\n        var assign, assign$1, assign$2;\n\n        var I, lab0, lab1, lab2;\n        colors = colors.map(function (c) { return new Color$5(c); });\n        if (colors.length === 2) {\n            // linear interpolation\n            (assign = colors.map(function (c) { return c.lab(); }), lab0 = assign[0], lab1 = assign[1]);\n            I = function(t) {\n                var lab = ([0, 1, 2].map(function (i) { return lab0[i] + (t * (lab1[i] - lab0[i])); }));\n                return new Color$5(lab, 'lab');\n            };\n        } else if (colors.length === 3) {\n            // quadratic bezier interpolation\n            (assign$1 = colors.map(function (c) { return c.lab(); }), lab0 = assign$1[0], lab1 = assign$1[1], lab2 = assign$1[2]);\n            I = function(t) {\n                var lab = ([0, 1, 2].map(function (i) { return ((1-t)*(1-t) * lab0[i]) + (2 * (1-t) * t * lab1[i]) + (t * t * lab2[i]); }));\n                return new Color$5(lab, 'lab');\n            };\n        } else if (colors.length === 4) {\n            // cubic bezier interpolation\n            var lab3;\n            (assign$2 = colors.map(function (c) { return c.lab(); }), lab0 = assign$2[0], lab1 = assign$2[1], lab2 = assign$2[2], lab3 = assign$2[3]);\n            I = function(t) {\n                var lab = ([0, 1, 2].map(function (i) { return ((1-t)*(1-t)*(1-t) * lab0[i]) + (3 * (1-t) * (1-t) * t * lab1[i]) + (3 * (1-t) * t * t * lab2[i]) + (t*t*t * lab3[i]); }));\n                return new Color$5(lab, 'lab');\n            };\n        } else if (colors.length >= 5) {\n            // general case (degree n bezier)\n            var labs, row, n;\n            labs = colors.map(function (c) { return c.lab(); });\n            n = colors.length - 1;\n            row = binom_row(n);\n            I = function (t) {\n                var u = 1 - t;\n                var lab = ([0, 1, 2].map(function (i) { return labs.reduce(function (sum, el, j) { return (sum + row[j] * Math.pow( u, (n - j) ) * Math.pow( t, j ) * el[i]); }, 0); }));\n                return new Color$5(lab, 'lab');\n            };\n        } else {\n            throw new RangeError(\"No point in running bezier with only one color.\")\n        }\n        return I;\n    };\n\n    var bezier_1 = function (colors) {\n        var f = bezier(colors);\n        f.scale = function () { return scale$1(f); };\n        return f;\n    };\n\n    /*\n     * interpolates between a set of colors uzing a bezier spline\n     * blend mode formulas taken from http://www.venture-ware.com/kevin/coding/lets-learn-math-photoshop-blend-modes/\n     */\n\n    var chroma$3 = chroma_1;\n\n    var blend = function (bottom, top, mode) {\n        if (!blend[mode]) {\n            throw new Error('unknown blend mode ' + mode);\n        }\n        return blend[mode](bottom, top);\n    };\n\n    var blend_f = function (f) { return function (bottom,top) {\n            var c0 = chroma$3(top).rgb();\n            var c1 = chroma$3(bottom).rgb();\n            return chroma$3.rgb(f(c0, c1));\n        }; };\n\n    var each = function (f) { return function (c0, c1) {\n            var out = [];\n            out[0] = f(c0[0], c1[0]);\n            out[1] = f(c0[1], c1[1]);\n            out[2] = f(c0[2], c1[2]);\n            return out;\n        }; };\n\n    var normal = function (a) { return a; };\n    var multiply = function (a,b) { return a * b / 255; };\n    var darken = function (a,b) { return a > b ? b : a; };\n    var lighten = function (a,b) { return a > b ? a : b; };\n    var screen = function (a,b) { return 255 * (1 - (1-a/255) * (1-b/255)); };\n    var overlay = function (a,b) { return b < 128 ? 2 * a * b / 255 : 255 * (1 - 2 * (1 - a / 255 ) * ( 1 - b / 255 )); };\n    var burn = function (a,b) { return 255 * (1 - (1 - b / 255) / (a/255)); };\n    var dodge = function (a,b) {\n        if (a === 255) { return 255; }\n        a = 255 * (b / 255) / (1 - a / 255);\n        return a > 255 ? 255 : a\n    };\n\n    // # add = (a,b) ->\n    // #     if (a + b > 255) then 255 else a + b\n\n    blend.normal = blend_f(each(normal));\n    blend.multiply = blend_f(each(multiply));\n    blend.screen = blend_f(each(screen));\n    blend.overlay = blend_f(each(overlay));\n    blend.darken = blend_f(each(darken));\n    blend.lighten = blend_f(each(lighten));\n    blend.dodge = blend_f(each(dodge));\n    blend.burn = blend_f(each(burn));\n    // blend.add = blend_f(each(add));\n\n    var blend_1 = blend;\n\n    // cubehelix interpolation\n    // based on D.A. Green \"A colour scheme for the display of astronomical intensity images\"\n    // http://astron-soc.in/bulletin/11June/289392011.pdf\n\n    var type$1 = utils.type;\n    var clip_rgb = utils.clip_rgb;\n    var TWOPI = utils.TWOPI;\n    var pow$2 = Math.pow;\n    var sin$1 = Math.sin;\n    var cos$1 = Math.cos;\n    var chroma$2 = chroma_1;\n\n    var cubehelix = function(start, rotations, hue, gamma, lightness) {\n        if ( start === void 0 ) start=300;\n        if ( rotations === void 0 ) rotations=-1.5;\n        if ( hue === void 0 ) hue=1;\n        if ( gamma === void 0 ) gamma=1;\n        if ( lightness === void 0 ) lightness=[0,1];\n\n        var dh = 0, dl;\n        if (type$1(lightness) === 'array') {\n            dl = lightness[1] - lightness[0];\n        } else {\n            dl = 0;\n            lightness = [lightness, lightness];\n        }\n\n        var f = function(fract) {\n            var a = TWOPI * (((start+120)/360) + (rotations * fract));\n            var l = pow$2(lightness[0] + (dl * fract), gamma);\n            var h = dh !== 0 ? hue[0] + (fract * dh) : hue;\n            var amp = (h * l * (1-l)) / 2;\n            var cos_a = cos$1(a);\n            var sin_a = sin$1(a);\n            var r = l + (amp * ((-0.14861 * cos_a) + (1.78277* sin_a)));\n            var g = l + (amp * ((-0.29227 * cos_a) - (0.90649* sin_a)));\n            var b = l + (amp * (+1.97294 * cos_a));\n            return chroma$2(clip_rgb([r*255,g*255,b*255,1]));\n        };\n\n        f.start = function(s) {\n            if ((s == null)) { return start; }\n            start = s;\n            return f;\n        };\n\n        f.rotations = function(r) {\n            if ((r == null)) { return rotations; }\n            rotations = r;\n            return f;\n        };\n\n        f.gamma = function(g) {\n            if ((g == null)) { return gamma; }\n            gamma = g;\n            return f;\n        };\n\n        f.hue = function(h) {\n            if ((h == null)) { return hue; }\n            hue = h;\n            if (type$1(hue) === 'array') {\n                dh = hue[1] - hue[0];\n                if (dh === 0) { hue = hue[1]; }\n            } else {\n                dh = 0;\n            }\n            return f;\n        };\n\n        f.lightness = function(h) {\n            if ((h == null)) { return lightness; }\n            if (type$1(h) === 'array') {\n                lightness = h;\n                dl = h[1] - h[0];\n            } else {\n                lightness = [h,h];\n                dl = 0;\n            }\n            return f;\n        };\n\n        f.scale = function () { return chroma$2.scale(f); };\n\n        f.hue(hue);\n\n        return f;\n    };\n\n    var Color$4 = Color_1;\n    var digits = '0123456789abcdef';\n\n    var floor$1 = Math.floor;\n    var random = Math.random;\n\n    var random_1 = function () {\n        var code = '#';\n        for (var i=0; i<6; i++) {\n            code += digits.charAt(floor$1(random() * 16));\n        }\n        return new Color$4(code, 'hex');\n    };\n\n    var type = type$p;\n    var log = Math.log;\n    var pow$1 = Math.pow;\n    var floor = Math.floor;\n    var abs$1 = Math.abs;\n\n\n    var analyze = function (data, key) {\n        if ( key === void 0 ) key=null;\n\n        var r = {\n            min: Number.MAX_VALUE,\n            max: Number.MAX_VALUE*-1,\n            sum: 0,\n            values: [],\n            count: 0\n        };\n        if (type(data) === 'object') {\n            data = Object.values(data);\n        }\n        data.forEach(function (val) {\n            if (key && type(val) === 'object') { val = val[key]; }\n            if (val !== undefined && val !== null && !isNaN(val)) {\n                r.values.push(val);\n                r.sum += val;\n                if (val < r.min) { r.min = val; }\n                if (val > r.max) { r.max = val; }\n                r.count += 1;\n            }\n        });\n\n        r.domain = [r.min, r.max];\n\n        r.limits = function (mode, num) { return limits(r, mode, num); };\n\n        return r;\n    };\n\n\n    var limits = function (data, mode, num) {\n        if ( mode === void 0 ) mode='equal';\n        if ( num === void 0 ) num=7;\n\n        if (type(data) == 'array') {\n            data = analyze(data);\n        }\n        var min = data.min;\n        var max = data.max;\n        var values = data.values.sort(function (a,b) { return a-b; });\n\n        if (num === 1) { return [min,max]; }\n\n        var limits = [];\n\n        if (mode.substr(0,1) === 'c') { // continuous\n            limits.push(min);\n            limits.push(max);\n        }\n\n        if (mode.substr(0,1) === 'e') { // equal interval\n            limits.push(min);\n            for (var i=1; i<num; i++) {\n                limits.push(min+((i/num)*(max-min)));\n            }\n            limits.push(max);\n        }\n\n        else if (mode.substr(0,1) === 'l') { // log scale\n            if (min <= 0) {\n                throw new Error('Logarithmic scales are only possible for values > 0');\n            }\n            var min_log = Math.LOG10E * log(min);\n            var max_log = Math.LOG10E * log(max);\n            limits.push(min);\n            for (var i$1=1; i$1<num; i$1++) {\n                limits.push(pow$1(10, min_log + ((i$1/num) * (max_log - min_log))));\n            }\n            limits.push(max);\n        }\n\n        else if (mode.substr(0,1) === 'q') { // quantile scale\n            limits.push(min);\n            for (var i$2=1; i$2<num; i$2++) {\n                var p = ((values.length-1) * i$2)/num;\n                var pb = floor(p);\n                if (pb === p) {\n                    limits.push(values[pb]);\n                } else { // p > pb\n                    var pr = p - pb;\n                    limits.push((values[pb]*(1-pr)) + (values[pb+1]*pr));\n                }\n            }\n            limits.push(max);\n\n        }\n\n        else if (mode.substr(0,1) === 'k') { // k-means clustering\n            /*\n            implementation based on\n            http://code.google.com/p/figue/source/browse/trunk/figue.js#336\n            simplified for 1-d input values\n            */\n            var cluster;\n            var n = values.length;\n            var assignments = new Array(n);\n            var clusterSizes = new Array(num);\n            var repeat = true;\n            var nb_iters = 0;\n            var centroids = null;\n\n            // get seed values\n            centroids = [];\n            centroids.push(min);\n            for (var i$3=1; i$3<num; i$3++) {\n                centroids.push(min + ((i$3/num) * (max-min)));\n            }\n            centroids.push(max);\n\n            while (repeat) {\n                // assignment step\n                for (var j=0; j<num; j++) {\n                    clusterSizes[j] = 0;\n                }\n                for (var i$4=0; i$4<n; i$4++) {\n                    var value = values[i$4];\n                    var mindist = Number.MAX_VALUE;\n                    var best = (void 0);\n                    for (var j$1=0; j$1<num; j$1++) {\n                        var dist = abs$1(centroids[j$1]-value);\n                        if (dist < mindist) {\n                            mindist = dist;\n                            best = j$1;\n                        }\n                        clusterSizes[best]++;\n                        assignments[i$4] = best;\n                    }\n                }\n\n                // update centroids step\n                var newCentroids = new Array(num);\n                for (var j$2=0; j$2<num; j$2++) {\n                    newCentroids[j$2] = null;\n                }\n                for (var i$5=0; i$5<n; i$5++) {\n                    cluster = assignments[i$5];\n                    if (newCentroids[cluster] === null) {\n                        newCentroids[cluster] = values[i$5];\n                    } else {\n                        newCentroids[cluster] += values[i$5];\n                    }\n                }\n                for (var j$3=0; j$3<num; j$3++) {\n                    newCentroids[j$3] *= 1/clusterSizes[j$3];\n                }\n\n                // check convergence\n                repeat = false;\n                for (var j$4=0; j$4<num; j$4++) {\n                    if (newCentroids[j$4] !== centroids[j$4]) {\n                        repeat = true;\n                        break;\n                    }\n                }\n\n                centroids = newCentroids;\n                nb_iters++;\n\n                if (nb_iters > 200) {\n                    repeat = false;\n                }\n            }\n\n            // finished k-means clustering\n            // the next part is borrowed from gabrielflor.it\n            var kClusters = {};\n            for (var j$5=0; j$5<num; j$5++) {\n                kClusters[j$5] = [];\n            }\n            for (var i$6=0; i$6<n; i$6++) {\n                cluster = assignments[i$6];\n                kClusters[cluster].push(values[i$6]);\n            }\n            var tmpKMeansBreaks = [];\n            for (var j$6=0; j$6<num; j$6++) {\n                tmpKMeansBreaks.push(kClusters[j$6][0]);\n                tmpKMeansBreaks.push(kClusters[j$6][kClusters[j$6].length-1]);\n            }\n            tmpKMeansBreaks = tmpKMeansBreaks.sort(function (a,b){ return a-b; });\n            limits.push(tmpKMeansBreaks[0]);\n            for (var i$7=1; i$7 < tmpKMeansBreaks.length; i$7+= 2) {\n                var v = tmpKMeansBreaks[i$7];\n                if (!isNaN(v) && (limits.indexOf(v) === -1)) {\n                    limits.push(v);\n                }\n            }\n        }\n        return limits;\n    };\n\n    var analyze_1 = {analyze: analyze, limits: limits};\n\n    var Color$3 = Color_1;\n\n\n    var contrast = function (a, b) {\n        // WCAG contrast ratio\n        // see http://www.w3.org/TR/2008/REC-WCAG20-20081211/#contrast-ratiodef\n        a = new Color$3(a);\n        b = new Color$3(b);\n        var l1 = a.luminance();\n        var l2 = b.luminance();\n        return l1 > l2 ? (l1 + 0.05) / (l2 + 0.05) : (l2 + 0.05) / (l1 + 0.05);\n    };\n\n    var Color$2 = Color_1;\n    var sqrt = Math.sqrt;\n    var pow = Math.pow;\n    var min = Math.min;\n    var max = Math.max;\n    var atan2 = Math.atan2;\n    var abs = Math.abs;\n    var cos = Math.cos;\n    var sin = Math.sin;\n    var exp = Math.exp;\n    var PI = Math.PI;\n\n    var deltaE = function(a, b, Kl, Kc, Kh) {\n        if ( Kl === void 0 ) Kl=1;\n        if ( Kc === void 0 ) Kc=1;\n        if ( Kh === void 0 ) Kh=1;\n\n        // Delta E (CIE 2000)\n        // see http://www.brucelindbloom.com/index.html?Eqn_DeltaE_CIE2000.html\n        var rad2deg = function(rad) {\n            return 360 * rad / (2 * PI);\n        };\n        var deg2rad = function(deg) {\n            return (2 * PI * deg) / 360;\n        };\n        a = new Color$2(a);\n        b = new Color$2(b);\n        var ref = Array.from(a.lab());\n        var L1 = ref[0];\n        var a1 = ref[1];\n        var b1 = ref[2];\n        var ref$1 = Array.from(b.lab());\n        var L2 = ref$1[0];\n        var a2 = ref$1[1];\n        var b2 = ref$1[2];\n        var avgL = (L1 + L2)/2;\n        var C1 = sqrt(pow(a1, 2) + pow(b1, 2));\n        var C2 = sqrt(pow(a2, 2) + pow(b2, 2));\n        var avgC = (C1 + C2)/2;\n        var G = 0.5*(1-sqrt(pow(avgC, 7)/(pow(avgC, 7) + pow(25, 7))));\n        var a1p = a1*(1+G);\n        var a2p = a2*(1+G);\n        var C1p = sqrt(pow(a1p, 2) + pow(b1, 2));\n        var C2p = sqrt(pow(a2p, 2) + pow(b2, 2));\n        var avgCp = (C1p + C2p)/2;\n        var arctan1 = rad2deg(atan2(b1, a1p));\n        var arctan2 = rad2deg(atan2(b2, a2p));\n        var h1p = arctan1 >= 0 ? arctan1 : arctan1 + 360;\n        var h2p = arctan2 >= 0 ? arctan2 : arctan2 + 360;\n        var avgHp = abs(h1p - h2p) > 180 ? (h1p + h2p + 360)/2 : (h1p + h2p)/2;\n        var T = 1 - 0.17*cos(deg2rad(avgHp - 30)) + 0.24*cos(deg2rad(2*avgHp)) + 0.32*cos(deg2rad(3*avgHp + 6)) - 0.2*cos(deg2rad(4*avgHp - 63));\n        var deltaHp = h2p - h1p;\n        deltaHp = abs(deltaHp) <= 180 ? deltaHp : h2p <= h1p ? deltaHp + 360 : deltaHp - 360;\n        deltaHp = 2*sqrt(C1p*C2p)*sin(deg2rad(deltaHp)/2);\n        var deltaL = L2 - L1;\n        var deltaCp = C2p - C1p;    \n        var sl = 1 + (0.015*pow(avgL - 50, 2))/sqrt(20 + pow(avgL - 50, 2));\n        var sc = 1 + 0.045*avgCp;\n        var sh = 1 + 0.015*avgCp*T;\n        var deltaTheta = 30*exp(-pow((avgHp - 275)/25, 2));\n        var Rc = 2*sqrt(pow(avgCp, 7)/(pow(avgCp, 7) + pow(25, 7)));\n        var Rt = -Rc*sin(2*deg2rad(deltaTheta));\n        var result = sqrt(pow(deltaL/(Kl*sl), 2) + pow(deltaCp/(Kc*sc), 2) + pow(deltaHp/(Kh*sh), 2) + Rt*(deltaCp/(Kc*sc))*(deltaHp/(Kh*sh)));\n        return max(0, min(100, result));\n    };\n\n    var Color$1 = Color_1;\n\n    // simple Euclidean distance\n    var distance = function(a, b, mode) {\n        if ( mode === void 0 ) mode='lab';\n\n        // Delta E (CIE 1976)\n        // see http://www.brucelindbloom.com/index.html?Equations.html\n        a = new Color$1(a);\n        b = new Color$1(b);\n        var l1 = a.get(mode);\n        var l2 = b.get(mode);\n        var sum_sq = 0;\n        for (var i in l1) {\n            var d = (l1[i] || 0) - (l2[i] || 0);\n            sum_sq += d*d;\n        }\n        return Math.sqrt(sum_sq);\n    };\n\n    var Color = Color_1;\n\n    var valid = function () {\n        var args = [], len = arguments.length;\n        while ( len-- ) args[ len ] = arguments[ len ];\n\n        try {\n            new (Function.prototype.bind.apply( Color, [ null ].concat( args) ));\n            return true;\n        } catch (e) {\n            return false;\n        }\n    };\n\n    // some pre-defined color scales:\n    var chroma$1 = chroma_1;\n\n    var scale = scale$2;\n\n    var scales = {\n    \tcool: function cool() { return scale([chroma$1.hsl(180,1,.9), chroma$1.hsl(250,.7,.4)]) },\n    \thot: function hot() { return scale(['#000','#f00','#ff0','#fff']).mode('rgb') }\n    };\n\n    /**\n        ColorBrewer colors for chroma.js\n\n        Copyright (c) 2002 Cynthia Brewer, Mark Harrower, and The\n        Pennsylvania State University.\n\n        Licensed under the Apache License, Version 2.0 (the \"License\");\n        you may not use this file except in compliance with the License.\n        You may obtain a copy of the License at\n        http://www.apache.org/licenses/LICENSE-2.0\n\n        Unless required by applicable law or agreed to in writing, software distributed\n        under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n        CONDITIONS OF ANY KIND, either express or implied. See the License for the\n        specific language governing permissions and limitations under the License.\n    */\n\n    var colorbrewer = {\n        // sequential\n        OrRd: ['#fff7ec', '#fee8c8', '#fdd49e', '#fdbb84', '#fc8d59', '#ef6548', '#d7301f', '#b30000', '#7f0000'],\n        PuBu: ['#fff7fb', '#ece7f2', '#d0d1e6', '#a6bddb', '#74a9cf', '#3690c0', '#0570b0', '#045a8d', '#023858'],\n        BuPu: ['#f7fcfd', '#e0ecf4', '#bfd3e6', '#9ebcda', '#8c96c6', '#8c6bb1', '#88419d', '#810f7c', '#4d004b'],\n        Oranges: ['#fff5eb', '#fee6ce', '#fdd0a2', '#fdae6b', '#fd8d3c', '#f16913', '#d94801', '#a63603', '#7f2704'],\n        BuGn: ['#f7fcfd', '#e5f5f9', '#ccece6', '#99d8c9', '#66c2a4', '#41ae76', '#238b45', '#006d2c', '#00441b'],\n        YlOrBr: ['#ffffe5', '#fff7bc', '#fee391', '#fec44f', '#fe9929', '#ec7014', '#cc4c02', '#993404', '#662506'],\n        YlGn: ['#ffffe5', '#f7fcb9', '#d9f0a3', '#addd8e', '#78c679', '#41ab5d', '#238443', '#006837', '#004529'],\n        Reds: ['#fff5f0', '#fee0d2', '#fcbba1', '#fc9272', '#fb6a4a', '#ef3b2c', '#cb181d', '#a50f15', '#67000d'],\n        RdPu: ['#fff7f3', '#fde0dd', '#fcc5c0', '#fa9fb5', '#f768a1', '#dd3497', '#ae017e', '#7a0177', '#49006a'],\n        Greens: ['#f7fcf5', '#e5f5e0', '#c7e9c0', '#a1d99b', '#74c476', '#41ab5d', '#238b45', '#006d2c', '#00441b'],\n        YlGnBu: ['#ffffd9', '#edf8b1', '#c7e9b4', '#7fcdbb', '#41b6c4', '#1d91c0', '#225ea8', '#253494', '#081d58'],\n        Purples: ['#fcfbfd', '#efedf5', '#dadaeb', '#bcbddc', '#9e9ac8', '#807dba', '#6a51a3', '#54278f', '#3f007d'],\n        GnBu: ['#f7fcf0', '#e0f3db', '#ccebc5', '#a8ddb5', '#7bccc4', '#4eb3d3', '#2b8cbe', '#0868ac', '#084081'],\n        Greys: ['#ffffff', '#f0f0f0', '#d9d9d9', '#bdbdbd', '#969696', '#737373', '#525252', '#252525', '#000000'],\n        YlOrRd: ['#ffffcc', '#ffeda0', '#fed976', '#feb24c', '#fd8d3c', '#fc4e2a', '#e31a1c', '#bd0026', '#800026'],\n        PuRd: ['#f7f4f9', '#e7e1ef', '#d4b9da', '#c994c7', '#df65b0', '#e7298a', '#ce1256', '#980043', '#67001f'],\n        Blues: ['#f7fbff', '#deebf7', '#c6dbef', '#9ecae1', '#6baed6', '#4292c6', '#2171b5', '#08519c', '#08306b'],\n        PuBuGn: ['#fff7fb', '#ece2f0', '#d0d1e6', '#a6bddb', '#67a9cf', '#3690c0', '#02818a', '#016c59', '#014636'],\n        Viridis: ['#440154', '#482777', '#3f4a8a', '#31678e', '#26838f', '#1f9d8a', '#6cce5a', '#b6de2b', '#fee825'],\n\n        // diverging\n\n        Spectral: ['#9e0142', '#d53e4f', '#f46d43', '#fdae61', '#fee08b', '#ffffbf', '#e6f598', '#abdda4', '#66c2a5', '#3288bd', '#5e4fa2'],\n        RdYlGn: ['#a50026', '#d73027', '#f46d43', '#fdae61', '#fee08b', '#ffffbf', '#d9ef8b', '#a6d96a', '#66bd63', '#1a9850', '#006837'],\n        RdBu: ['#67001f', '#b2182b', '#d6604d', '#f4a582', '#fddbc7', '#f7f7f7', '#d1e5f0', '#92c5de', '#4393c3', '#2166ac', '#053061'],\n        PiYG: ['#8e0152', '#c51b7d', '#de77ae', '#f1b6da', '#fde0ef', '#f7f7f7', '#e6f5d0', '#b8e186', '#7fbc41', '#4d9221', '#276419'],\n        PRGn: ['#40004b', '#762a83', '#9970ab', '#c2a5cf', '#e7d4e8', '#f7f7f7', '#d9f0d3', '#a6dba0', '#5aae61', '#1b7837', '#00441b'],\n        RdYlBu: ['#a50026', '#d73027', '#f46d43', '#fdae61', '#fee090', '#ffffbf', '#e0f3f8', '#abd9e9', '#74add1', '#4575b4', '#313695'],\n        BrBG: ['#543005', '#8c510a', '#bf812d', '#dfc27d', '#f6e8c3', '#f5f5f5', '#c7eae5', '#80cdc1', '#35978f', '#01665e', '#003c30'],\n        RdGy: ['#67001f', '#b2182b', '#d6604d', '#f4a582', '#fddbc7', '#ffffff', '#e0e0e0', '#bababa', '#878787', '#4d4d4d', '#1a1a1a'],\n        PuOr: ['#7f3b08', '#b35806', '#e08214', '#fdb863', '#fee0b6', '#f7f7f7', '#d8daeb', '#b2abd2', '#8073ac', '#542788', '#2d004b'],\n\n        // qualitative\n\n        Set2: ['#66c2a5', '#fc8d62', '#8da0cb', '#e78ac3', '#a6d854', '#ffd92f', '#e5c494', '#b3b3b3'],\n        Accent: ['#7fc97f', '#beaed4', '#fdc086', '#ffff99', '#386cb0', '#f0027f', '#bf5b17', '#666666'],\n        Set1: ['#e41a1c', '#377eb8', '#4daf4a', '#984ea3', '#ff7f00', '#ffff33', '#a65628', '#f781bf', '#999999'],\n        Set3: ['#8dd3c7', '#ffffb3', '#bebada', '#fb8072', '#80b1d3', '#fdb462', '#b3de69', '#fccde5', '#d9d9d9', '#bc80bd', '#ccebc5', '#ffed6f'],\n        Dark2: ['#1b9e77', '#d95f02', '#7570b3', '#e7298a', '#66a61e', '#e6ab02', '#a6761d', '#666666'],\n        Paired: ['#a6cee3', '#1f78b4', '#b2df8a', '#33a02c', '#fb9a99', '#e31a1c', '#fdbf6f', '#ff7f00', '#cab2d6', '#6a3d9a', '#ffff99', '#b15928'],\n        Pastel2: ['#b3e2cd', '#fdcdac', '#cbd5e8', '#f4cae4', '#e6f5c9', '#fff2ae', '#f1e2cc', '#cccccc'],\n        Pastel1: ['#fbb4ae', '#b3cde3', '#ccebc5', '#decbe4', '#fed9a6', '#ffffcc', '#e5d8bd', '#fddaec', '#f2f2f2'],\n    };\n\n    // add lowercase aliases for case-insensitive matches\n    for (var i = 0, list = Object.keys(colorbrewer); i < list.length; i += 1) {\n        var key = list[i];\n\n        colorbrewer[key.toLowerCase()] = colorbrewer[key];\n    }\n\n    var colorbrewer_1 = colorbrewer;\n\n    var chroma = chroma_1;\n\n    // feel free to comment out anything to rollup\n    // a smaller chroma.js built\n\n    // io --> convert colors\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n    // operators --> modify existing Colors\n\n\n\n\n\n\n\n\n\n\n    // interpolators\n\n\n\n\n\n\n\n\n\n\n\n\n    // generators -- > create new colors\n    chroma.average = average;\n    chroma.bezier = bezier_1;\n    chroma.blend = blend_1;\n    chroma.cubehelix = cubehelix;\n    chroma.mix = chroma.interpolate = mix$1;\n    chroma.random = random_1;\n    chroma.scale = scale$2;\n\n    // other utility methods\n    chroma.analyze = analyze_1.analyze;\n    chroma.contrast = contrast;\n    chroma.deltaE = deltaE;\n    chroma.distance = distance;\n    chroma.limits = analyze_1.limits;\n    chroma.valid = valid;\n\n    // scale\n    chroma.scales = scales;\n\n    // colors\n    chroma.colors = w3cx11_1;\n    chroma.brewer = colorbrewer_1;\n\n    var chroma_js = chroma;\n\n    return chroma_js;\n\n}));\n"],"names":["module","exports","limit$2","x","min","max","limit$1","clip_rgb$3","rgb","_clipped","_unclipped","slice","i","classToType","i$1","list$1","length","name","toLowerCase","type$p","obj","Object","prototype","toString","call","type$o","unpack$B","args","keyOrder","Array","split","filter","k","undefined","map","type$n","last$4","l","PI$2","Math","PI","utils","clip_rgb","limit","type","unpack","last","TWOPI","PITHIRD","DEG2RAD","RAD2DEG","input$h","format","autodetect","last$3","clip_rgb$2","type$m","_input","Color$D","len","arguments","me","this","constructor","mode","sorted","sort","a","b","p","list","chk","test","apply","Error","_rgb","push","hex","join","Color_1","chroma$k","Function","bind","Color","concat","version","chroma_1","unpack$A","max$2","rgb2cmyk$1","ref","r","g","f","rgb2cmyk_1","unpack$z","cmyk2rgb","c","m","y","alpha","cmyk2rgb_1","chroma$j","Color$C","input$g","unpack$y","type$l","rgb2cmyk","cmyk","unpack$x","last$2","rnd","round","hsl2css$1","hsla","hsl2css_1","unpack$w","rgb2hsl$3","s","h","Number","NaN","rgb2hsl_1","unpack$v","last$1","hsl2css","rgb2hsl$2","round$6","rgb2css$1","rgba","substr","rgb2css_1","unpack$u","round$5","hsl2rgb$1","assign","t3","t2","t1","h_","hsl2rgb_1","hsl2rgb","input$f","RE_RGB","RE_RGBA","RE_RGB_PCT","RE_RGBA_PCT","RE_HSL","RE_HSLA","round$4","css2rgb$1","css","trim","named","e","match","rgb$1","rgb$2","i$2","rgb$3","i$3","hsl","rgb$4","hsl$1","rgb$5","css2rgb_1","chroma$i","Color$B","input$e","type$k","rgb2css","css2rgb","rest","Color$A","chroma$h","input$d","unpack$t","gl","unpack$s","rgb2hcg$1","delta","_g","rgb2hcg_1","unpack$r","floor$3","floor","hcg2rgb","assign$1","assign$2","assign$3","assign$4","assign$5","_c","q","t","v","hcg2rgb_1","unpack$q","type$j","chroma$g","Color$z","input$c","rgb2hcg","hcg","unpack$p","round$3","rgb2hex$2","str","hxa","rgb2hex_1","RE_HEX","RE_HEXA","hex2rgb_1","u","parseInt","u$1","chroma$f","Color$y","type$i","input$b","rgb2hex$1","indexOf","unpack$o","TWOPI$2","min$2","sqrt$4","sqrt","acos","rgb2hsi$1","min_","rgb2hsi_1","unpack$n","TWOPI$1","cos$4","cos","hsi2rgb","isNaN","hsi2rgb_1","unpack$m","type$h","chroma$e","Color$x","input$a","rgb2hsi","hsi","unpack$l","type$g","chroma$d","Color$w","input$9","rgb2hsl$1","unpack$k","min$1","max$1","rgb2hsl","max_","rgb2hsv$1","unpack$j","floor$2","hsv2rgb","hsv2rgb_1","unpack$i","type$f","chroma$c","Color$v","input$8","rgb2hsv","hsv","labConstants","Kn","Xn","Yn","Zn","t0","LAB_CONSTANTS$3","unpack$h","pow$a","pow","rgb2lab$2","ref$1","rgb2xyz","rgb_xyz","xyz_lab","rgb2lab_1","LAB_CONSTANTS$2","unpack$g","pow$9","lab2rgb$1","z","lab_xyz","xyz_rgb","lab2rgb_1","unpack$f","type$e","chroma$b","Color$u","input$7","rgb2lab$1","lab","unpack$e","sqrt$3","atan2$2","atan2","round$2","lab2lch$2","lab2lch_1","unpack$d","rgb2lab","lab2lch$1","rgb2lch$1","b_","rgb2lch_1","unpack$c","sin$3","sin","cos$3","lch2lab$2","lch2lab_1","unpack$b","lch2lab$1","lab2rgb","lch2rgb$1","L","lch2rgb_1","unpack$a","lch2rgb","hcl2rgb","hcl","reverse","hcl2rgb_1","unpack$9","type$d","chroma$a","Color$t","input$6","rgb2lch","lch","forEach","w3cx11_1","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflower","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","laserlemon","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrod","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","maroon2","maroon3","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","purple2","purple3","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","Color$s","input$5","type$c","w3cx11","hex2rgb","rgb2hex","keys","n","unpack$8","rgb2num$1","rgb2num_1","type$b","num2rgb_1","num","chroma$9","Color$r","input$4","type$a","rgb2num","chroma$8","Color$q","input$3","unpack$7","type$9","round$1","log$1","log","temperature2rgb_1","kelvin","temp","temperature2rgb","unpack$6","rgb2temperature$1","minTemp","maxTemp","eps","chroma$7","Color$p","input$2","rgb2temperature","temperature","unpack$5","cbrt","pow$8","sign$1","sign","rgb2oklab$2","rgb2lrgb","lr","lg","lb","rgb2oklab_1","abs","unpack$4","pow$7","oklab2rgb$1","lrgb2rgb","oklab2rgb_1","unpack$3","type$8","chroma$6","Color$o","input$1","rgb2oklab$1","oklab","unpack$2","rgb2oklab","lab2lch","rgb2oklch$1","rgb2oklch_1","unpack$1","lch2lab","oklab2rgb","oklch2rgb","oklch2rgb_1","type$7","chroma$5","Color$n","input","rgb2oklch","oklch","Color$m","type$6","mutate","clipped","Color$k","LAB_CONSTANTS$1","darken","amount","brighten","darker","brighter","get","mc","channel","src","Color$i","type$5","pow$6","EPS","MAX_ITER","luminance","lum","cur_lum","max_iter","low","high","mid","interpolate","lm","rgb2luminance","luminance_x","interpolator$1","Color$h","type$4","interpolator","mix$1","col1","col2","Color$g","mix","Color$f","premultiply","Color$e","LAB_CONSTANTS","saturate","desaturate","Color$d","type$3","set","value","charAt","out","Color$c","xyz0","xyz1","Color$b","sqrt$2","pow$5","lrgb","x1","y1","z1","x2","y2","z2","Color$a","Color$9","_hsx","hue0","hue1","sat0","sat1","lbv0","lbv1","sat","hue","lbv","interpolate_hsx$5","Color$8","c1","c2","interpolate_hsx$4","interpolate_hsx$3","interpolate_hsx$2","interpolate_hsx$1","Color$7","interpolate_hsx","Color$6","clip_rgb$1","pow$4","sqrt$1","PI$1","cos$2","sin$2","atan2$1","average","colors","weights","from","reduce","w","_average_lrgb","first","shift","xyz","cnt","dx","dy","A","ci","xyz2","A$1","col","chroma$4","type$2","pow$3","scale$2","_mode","_nacol","_spread","_domain","_pos","_padding","_classes","_colors","_out","_min","_max","_correctLightness","_colorCache","_useCache","_gamma","setColors","brewer","c$1","resetCache","getClass","tMapLightness","tMapDomain","getColor","val","bypassMap","classes","d","analyze","limits","domain","tOut","tBreaks","every","_m","range","_o","spread","correctLightness","L0","L1","pol","L_actual","L_ideal","L_diff","padding","numColors","result","dm","dd","__range__","samples","end","asc","cache","gamma","nodata","left","right","inclusive","ascending","Color$5","scale$1","binom_row","row","newrow","j","bezier","I","lab0","lab1","lab2","lab3","RangeError","labs","sum","el","bezier_1","scale","chroma$3","blend","bottom","top","blend_f","c0","each","normal","multiply","lighten","screen","overlay","burn","dodge","blend_1","type$1","pow$2","sin$1","cos$1","chroma$2","cubehelix","start","rotations","lightness","dl","dh","fract","amp","cos_a","sin_a","Color$4","digits","floor$1","random","random_1","code","pow$1","abs$1","data","key","MAX_VALUE","values","count","min_log","LOG10E","max_log","pb","pr","cluster","assignments","clusterSizes","repeat","nb_iters","centroids","i$4","mindist","best","j$1","dist","newCentroids","j$2","i$5","j$3","j$4","kClusters","j$5","i$6","tmpKMeansBreaks","j$6","i$7","analyze_1","Color$3","contrast","l1","l2","Color$2","exp","deltaE","Kl","Kc","Kh","rad2deg","rad","deg2rad","deg","a1","b1","L2","a2","b2","avgL","avgC","G","a1p","a2p","C1p","C2p","avgCp","arctan1","arctan2","h1p","h2p","avgHp","T","deltaHp","deltaL","deltaCp","sl","sc","sh","deltaTheta","Rt","Color$1","distance","sum_sq","valid","chroma$1","scales","cool","hot","colorbrewer","OrRd","PuBu","BuPu","Oranges","BuGn","YlOrBr","YlGn","Reds","RdPu","Greens","YlGnBu","Purples","GnBu","Greys","YlOrRd","PuRd","Blues","PuBuGn","Viridis","Spectral","RdYlGn","RdBu","PiYG","PRGn","RdYlBu","BrBG","RdGy","PuOr","Set2","Accent","Set1","Set3","Dark2","Paired","Pastel2","Pastel1","colorbrewer_1","chroma","factory"],"sourceRoot":""}