{"version":3,"file":"static/js/main.386335df.js","mappings":";2CASycA,EAAxbC,EAAEC,OAAOC,IAAI,iBAAiBC,EAAEF,OAAOC,IAAI,gBAAgBE,EAAEH,OAAOC,IAAI,kBAAkBG,EAAEJ,OAAOC,IAAI,qBAAqBI,EAAEL,OAAOC,IAAI,kBAAkBK,EAAEN,OAAOC,IAAI,kBAAkBM,EAAEP,OAAOC,IAAI,iBAAiBO,EAAER,OAAOC,IAAI,wBAAwBQ,EAAET,OAAOC,IAAI,qBAAqBS,EAAEV,OAAOC,IAAI,kBAAkBU,EAAEX,OAAOC,IAAI,uBAAuBW,EAAEZ,OAAOC,IAAI,cAAcY,EAAEb,OAAOC,IAAI,cAAca,EAAEd,OAAOC,IAAI,mBACtb,SAASc,EAAEC,GAAG,GAAG,kBAAkBA,GAAG,OAAOA,EAAE,CAAC,IAAIC,EAAED,EAAEE,SAAS,OAAOD,GAAG,KAAKlB,EAAE,OAAOiB,EAAEA,EAAEG,MAAQ,KAAKhB,EAAE,KAAKE,EAAE,KAAKD,EAAE,KAAKM,EAAE,KAAKC,EAAE,OAAOK,EAAE,QAAQ,OAAOA,EAAEA,GAAGA,EAAEE,UAAY,KAAKV,EAAE,KAAKD,EAAE,KAAKE,EAAE,KAAKI,EAAE,KAAKD,EAAE,KAAKN,EAAE,OAAOU,EAAE,QAAQ,OAAOC,GAAG,KAAKf,EAAE,OAAOe,EAAE,CAAC,CADkMnB,EAAEE,OAAOC,IAAI,sDCNtdmB,EAAAA,uBCHkEA,EAAOC,QAAmI,WAAW,aAAa,IAAIP,EAAE,IAAIV,EAAE,IAAIO,EAAE,KAAKM,EAAE,cAAcK,EAAE,SAASC,EAAE,SAASzB,EAAE,OAAOkB,EAAE,MAAMQ,EAAE,OAAOtB,EAAE,QAAQG,EAAE,UAAUE,EAAE,OAAOJ,EAAE,OAAOM,EAAE,eAAegB,EAAE,6FAA6FC,EAAE,sFAAsFC,EAAE,CAACC,KAAK,KAAKC,SAAS,2DAA2DC,MAAM,KAAKC,OAAO,wFAAwFD,MAAM,KAAKE,QAAQ,SAASlB,GAAG,IAAIV,EAAE,CAAC,KAAK,KAAK,KAAK,MAAMO,EAAEG,EAAE,IAAI,MAAM,IAAIA,GAAGV,GAAGO,EAAE,IAAI,KAAKP,EAAEO,IAAIP,EAAE,IAAI,GAAG,GAAGM,EAAE,SAASI,EAAEV,EAAEO,GAAG,IAAIM,EAAEgB,OAAOnB,GAAG,OAAOG,GAAGA,EAAEiB,QAAQ9B,EAAEU,EAAE,GAAGqB,MAAM/B,EAAE,EAAEa,EAAEiB,QAAQE,KAAKzB,GAAGG,CAAC,EAAEC,EAAE,CAACQ,EAAEb,EAAE2B,EAAE,SAASvB,GAAG,IAAIV,GAAGU,EAAEwB,YAAY3B,EAAE4B,KAAKC,IAAIpC,GAAGa,EAAEsB,KAAKE,MAAM9B,EAAE,IAAIW,EAAEX,EAAE,GAAG,OAAOP,GAAG,EAAE,IAAI,KAAKM,EAAEO,EAAE,EAAE,KAAK,IAAIP,EAAEY,EAAE,EAAE,IAAI,EAAEZ,EAAE,SAASI,EAAEV,EAAEO,GAAG,GAAGP,EAAEsC,OAAO/B,EAAE+B,OAAO,OAAO5B,EAAEH,EAAEP,GAAG,IAAIa,EAAE,IAAIN,EAAEgC,OAAOvC,EAAEuC,SAAShC,EAAEiC,QAAQxC,EAAEwC,SAAStB,EAAElB,EAAEyC,QAAQC,IAAI7B,EAAEf,GAAGqB,EAAEZ,EAAEW,EAAE,EAAExB,EAAEM,EAAEyC,QAAQC,IAAI7B,GAAGM,GAAG,EAAE,GAAGrB,GAAG,UAAUe,GAAGN,EAAEW,IAAIC,EAAED,EAAExB,EAAEA,EAAEwB,KAAK,EAAE,EAAEN,EAAE,SAASF,GAAG,OAAOA,EAAE,EAAEyB,KAAKQ,KAAKjC,IAAI,EAAEyB,KAAKE,MAAM3B,EAAE,EAAEF,EAAE,SAASE,GAAG,MAAM,CAACa,EAAEzB,EAAEwB,EAAEnB,EAAEyC,EAAExB,EAAErB,EAAEa,EAAEiC,EAAE9C,EAAEI,EAAET,EAAEY,EAAEa,EAAEA,EAAED,EAAE4B,GAAGjC,EAAEkC,EAAE9C,GAAGS,IAAImB,OAAOnB,GAAG,IAAIsC,cAAcC,QAAQ,KAAK,GAAG,EAAEvD,EAAE,SAASgB,GAAG,YAAO,IAASA,CAAC,GAAGR,EAAE,KAAK2C,EAAE,CAAC,EAAEA,EAAE3C,GAAGqB,EAAE,IAAIf,EAAE,iBAAiB0C,EAAE,SAASxC,GAAG,OAAOA,aAAayC,MAAMzC,IAAIA,EAAEF,GAAG,EAAEoC,EAAE,SAASlC,EAAEV,EAAEO,EAAEM,GAAG,IAAIK,EAAE,IAAIlB,EAAE,OAAOE,EAAE,GAAG,iBAAiBF,EAAE,CAAC,IAAImB,EAAEnB,EAAEgD,cAAcH,EAAE1B,KAAKD,EAAEC,GAAGZ,IAAIsC,EAAE1B,GAAGZ,EAAEW,EAAEC,GAAG,IAAIzB,EAAEM,EAAE0B,MAAM,KAAK,IAAIR,GAAGxB,EAAEoC,OAAO,EAAE,OAAOpB,EAAEhB,EAAE,GAAG,KAAK,CAAC,IAAIkB,EAAEZ,EAAEwB,KAAKqB,EAAEjC,GAAGZ,EAAEkB,EAAEN,CAAC,CAAC,OAAOC,GAAGK,IAAIhB,EAAEgB,GAAGA,IAAIL,GAAGX,CAAC,EAAEkD,EAAE,SAAS1C,EAAEV,GAAG,GAAGkD,EAAExC,GAAG,OAAOA,EAAE+B,QAAQ,IAAIlC,EAAE,iBAAiBP,EAAEA,EAAE,CAAC,EAAE,OAAOO,EAAE+B,KAAK5B,EAAEH,EAAE8C,KAAKC,UAAU,IAAIH,EAAE5C,EAAE,EAAEZ,EAAEgB,EAAEhB,EAAEU,EAAEuC,EAAEjD,EAAEuB,EAAEgC,EAAEvD,EAAEiD,EAAE,SAASlC,EAAEV,GAAG,OAAOoD,EAAE1C,EAAE,CAAC6C,OAAOvD,EAAEwD,GAAGC,IAAIzD,EAAE0D,GAAGC,EAAE3D,EAAE4D,GAAGC,QAAQ7D,EAAE6D,SAAS,EAAE,IAAIV,EAAE,WAAW,SAAS5B,EAAEb,GAAGoD,KAAKN,GAAGZ,EAAElC,EAAE6C,OAAO,MAAK,GAAIO,KAAKC,MAAMrD,GAAGoD,KAAKF,GAAGE,KAAKF,IAAIlD,EAAEiD,GAAG,CAAC,EAAEG,KAAKtD,IAAG,CAAE,CAAC,IAAIF,EAAEiB,EAAEyC,UAAU,OAAO1D,EAAEyD,MAAM,SAASrD,GAAGoD,KAAKG,GAAG,SAASvD,GAAG,IAAIV,EAAEU,EAAE4B,KAAK/B,EAAEG,EAAE+C,IAAI,GAAG,OAAOzD,EAAE,OAAO,IAAIkE,KAAKC,KAAK,GAAGxE,EAAED,EAAEM,GAAG,OAAO,IAAIkE,KAAK,GAAGlE,aAAakE,KAAK,OAAO,IAAIA,KAAKlE,GAAG,GAAG,iBAAiBA,IAAI,MAAMoE,KAAKpE,GAAG,CAAC,IAAIa,EAAEb,EAAEqE,MAAMhD,GAAG,GAAGR,EAAE,CAAC,IAAIK,EAAEL,EAAE,GAAG,GAAG,EAAEM,GAAGN,EAAE,IAAI,KAAKyD,UAAU,EAAE,GAAG,OAAO/D,EAAE,IAAI2D,KAAKA,KAAKK,IAAI1D,EAAE,GAAGK,EAAEL,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAEM,IAAI,IAAI+C,KAAKrD,EAAE,GAAGK,EAAEL,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAEM,EAAE,CAAC,CAAC,OAAO,IAAI+C,KAAKlE,EAAE,CAA3X,CAA6XU,GAAGoD,KAAKU,MAAM,EAAElE,EAAEkE,KAAK,WAAW,IAAI9D,EAAEoD,KAAKG,GAAGH,KAAKW,GAAG/D,EAAEgE,cAAcZ,KAAKa,GAAGjE,EAAEkE,WAAWd,KAAKe,GAAGnE,EAAEoE,UAAUhB,KAAKiB,GAAGrE,EAAEsE,SAASlB,KAAKmB,GAAGvE,EAAEwE,WAAWpB,KAAKqB,GAAGzE,EAAE0E,aAAatB,KAAKuB,GAAG3E,EAAE4E,aAAaxB,KAAKyB,IAAI7E,EAAE8E,iBAAiB,EAAElF,EAAEmF,OAAO,WAAW,OAAO9F,CAAC,EAAEW,EAAEoF,QAAQ,WAAW,QAAQ5B,KAAKG,GAAG0B,aAAatF,EAAE,EAAEC,EAAEsF,OAAO,SAASlF,EAAEV,GAAG,IAAIO,EAAE6C,EAAE1C,GAAG,OAAOoD,KAAK+B,QAAQ7F,IAAIO,GAAGA,GAAGuD,KAAKgC,MAAM9F,EAAE,EAAEM,EAAEyF,QAAQ,SAASrF,EAAEV,GAAG,OAAOoD,EAAE1C,GAAGoD,KAAK+B,QAAQ7F,EAAE,EAAEM,EAAE0F,SAAS,SAAStF,EAAEV,GAAG,OAAO8D,KAAKgC,MAAM9F,GAAGoD,EAAE1C,EAAE,EAAEJ,EAAE2F,GAAG,SAASvF,EAAEV,EAAEO,GAAG,OAAOZ,EAAED,EAAEgB,GAAGoD,KAAK9D,GAAG8D,KAAKoC,IAAI3F,EAAEG,EAAE,EAAEJ,EAAE6F,KAAK,WAAW,OAAOhE,KAAKE,MAAMyB,KAAKsC,UAAU,IAAI,EAAE9F,EAAE8F,QAAQ,WAAW,OAAOtC,KAAKG,GAAGoC,SAAS,EAAE/F,EAAEuF,QAAQ,SAASnF,EAAEV,GAAG,IAAIO,EAAEuD,KAAKjD,IAAIlB,EAAED,EAAEM,IAAIA,EAAEC,EAAEN,EAAEa,EAAEE,GAAGL,EAAE,SAASK,EAAEV,GAAG,IAAIkB,EAAEvB,EAAEiD,EAAErC,EAAEmD,GAAGQ,KAAKK,IAAIhE,EAAEkE,GAAGzE,EAAEU,GAAG,IAAIwD,KAAK3D,EAAEkE,GAAGzE,EAAEU,GAAGH,GAAG,OAAOM,EAAEK,EAAEA,EAAE4E,MAAMlF,EAAE,EAAES,EAAE,SAASX,EAAEV,GAAG,OAAOL,EAAEiD,EAAErC,EAAE+F,SAAS5F,GAAG6F,MAAMhG,EAAE+F,OAAO,MAAMzF,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,MAAM2F,MAAMxG,IAAIO,EAAE,EAAEe,EAAEwC,KAAKiB,GAAGxD,EAAEuC,KAAKa,GAAGrE,EAAEwD,KAAKe,GAAGlE,EAAE,OAAOmD,KAAKJ,GAAG,MAAM,IAAI,OAAOzD,GAAG,KAAKE,EAAE,OAAOU,EAAER,EAAE,EAAE,GAAGA,EAAE,GAAG,IAAI,KAAKP,EAAE,OAAOe,EAAER,EAAE,EAAEkB,GAAGlB,EAAE,EAAEkB,EAAE,GAAG,KAAKH,EAAE,IAAIlB,EAAE4D,KAAK2C,UAAUC,WAAW,EAAE7D,GAAGvB,EAAEpB,EAAEoB,EAAE,EAAEA,GAAGpB,EAAE,OAAOG,EAAEQ,EAAEP,EAAEuC,EAAEvC,GAAG,EAAEuC,GAAGtB,GAAG,KAAKX,EAAE,KAAKb,EAAE,OAAOsB,EAAEV,EAAE,QAAQ,GAAG,KAAKjB,EAAE,OAAO2B,EAAEV,EAAE,UAAU,GAAG,KAAKQ,EAAE,OAAOE,EAAEV,EAAE,UAAU,GAAG,KAAKO,EAAE,OAAOG,EAAEV,EAAE,eAAe,GAAG,QAAQ,OAAOmD,KAAKrB,QAAQ,EAAEnC,EAAEwF,MAAM,SAASpF,GAAG,OAAOoD,KAAK+B,QAAQnF,GAAE,EAAG,EAAEJ,EAAEqG,KAAK,SAASjG,EAAEV,GAAG,IAAIO,EAAEa,EAAEzB,EAAEa,EAAEE,GAAGT,EAAE,OAAO6D,KAAKJ,GAAG,MAAM,IAAIrD,GAAGE,EAAE,CAAC,EAAEA,EAAEK,GAAGX,EAAE,OAAOM,EAAER,GAAGE,EAAE,OAAOM,EAAET,GAAGG,EAAE,QAAQM,EAAEJ,GAAGF,EAAE,WAAWM,EAAEb,GAAGO,EAAE,QAAQM,EAAEY,GAAGlB,EAAE,UAAUM,EAAEW,GAAGjB,EAAE,UAAUM,EAAEM,GAAGZ,EAAE,eAAeM,GAAGa,GAAGC,EAAED,IAAIR,EAAEkD,KAAKe,IAAI7E,EAAE8D,KAAKiB,IAAI/E,EAAE,GAAGoB,IAAItB,GAAGsB,IAAIjB,EAAE,CAAC,IAAImB,EAAEwC,KAAKrB,QAAQyD,IAAInG,EAAE,GAAGuB,EAAE2C,GAAG5D,GAAGgB,GAAGC,EAAEkD,OAAOV,KAAKG,GAAG3C,EAAE4E,IAAInG,EAAEoC,KAAKyE,IAAI9C,KAAKe,GAAGvD,EAAEuF,gBAAgB5C,EAAE,MAAM5D,GAAGyD,KAAKG,GAAG5D,GAAGgB,GAAG,OAAOyC,KAAKU,OAAOV,IAAI,EAAExD,EAAE4F,IAAI,SAASxF,EAAEV,GAAG,OAAO8D,KAAKrB,QAAQkE,KAAKjG,EAAEV,EAAE,EAAEM,EAAEwG,IAAI,SAASpG,GAAG,OAAOoD,KAAKnE,EAAEa,EAAEE,KAAK,EAAEJ,EAAEoC,IAAI,SAAS7B,EAAEZ,GAAG,IAAIF,EAAEM,EAAEyD,KAAKjD,EAAEkG,OAAOlG,GAAG,IAAIQ,EAAE1B,EAAEa,EAAEP,GAAGqB,EAAE,SAASZ,GAAG,IAAIV,EAAEoD,EAAE/C,GAAG,OAAOV,EAAEiD,EAAE5C,EAAEsC,KAAKtC,EAAEsC,OAAOH,KAAK6E,MAAMtG,EAAEG,IAAIR,EAAE,EAAE,GAAGgB,IAAIvB,EAAE,OAAOgE,KAAKoC,IAAIpG,EAAEgE,KAAKa,GAAG9D,GAAG,GAAGQ,IAAIlB,EAAE,OAAO2D,KAAKoC,IAAI/F,EAAE2D,KAAKW,GAAG5D,GAAG,GAAGQ,IAAIT,EAAE,OAAOU,EAAE,GAAG,GAAGD,IAAID,EAAE,OAAOE,EAAE,GAAG,IAAIC,GAAGxB,EAAE,CAAC,EAAEA,EAAEoB,GAAGnB,EAAED,EAAEL,GAAGa,EAAER,EAAEmB,GAAGR,EAAEX,GAAGsB,IAAI,EAAEf,EAAEwD,KAAKG,GAAGoC,UAAUxF,EAAEU,EAAE,OAAO5B,EAAEiD,EAAEtC,EAAEwD,KAAK,EAAExD,EAAE2G,SAAS,SAASvG,EAAEV,GAAG,OAAO8D,KAAKpB,KAAK,EAAEhC,EAAEV,EAAE,EAAEM,EAAE4G,OAAO,SAASxG,GAAG,IAAIV,EAAE8D,KAAKvD,EAAEuD,KAAK2C,UAAU,IAAI3C,KAAK4B,UAAU,OAAOnF,EAAE4G,aAAa9G,EAAE,IAAIQ,EAAEH,GAAG,uBAAuBQ,EAAEvB,EAAEsC,EAAE6B,MAAM3C,EAAE2C,KAAKmB,GAAGvF,EAAEoE,KAAKqB,GAAGvE,EAAEkD,KAAKa,GAAGvD,EAAEb,EAAEkB,SAAS3B,EAAES,EAAEoB,OAAO1B,EAAEM,EAAE6G,SAASjH,EAAE,SAASO,EAAEH,EAAEW,EAAEC,GAAG,OAAOT,IAAIA,EAAEH,IAAIG,EAAEV,EAAEa,KAAKK,EAAEX,GAAGiG,MAAM,EAAErF,EAAE,EAAEpB,EAAE,SAASW,GAAG,OAAOf,EAAEwB,EAAEA,EAAE,IAAI,GAAGT,EAAE,IAAI,EAAEW,EAAEpB,GAAG,SAASS,EAAEV,EAAEO,GAAG,IAAIM,EAAEH,EAAE,GAAG,KAAK,KAAK,OAAOH,EAAEM,EAAEmC,cAAcnC,CAAC,EAAE,OAAOA,EAAEoC,QAAQ3B,GAAG,SAASZ,EAAEG,GAAG,OAAOA,GAAG,SAASH,GAAG,OAAOA,GAAG,IAAI,KAAK,OAAOmB,OAAO7B,EAAEyE,IAAI+B,OAAO,GAAG,IAAI,OAAO,OAAO7G,EAAEwB,EAAEnB,EAAEyE,GAAG,EAAE,KAAK,IAAI,IAAI,OAAO7D,EAAE,EAAE,IAAI,KAAK,OAAOjB,EAAEwB,EAAEP,EAAE,EAAE,EAAE,KAAK,IAAI,MAAM,OAAOT,EAAEI,EAAE8G,YAAYzG,EAAEd,EAAE,GAAG,IAAI,OAAO,OAAOK,EAAEL,EAAEc,GAAG,IAAI,IAAI,OAAOZ,EAAE6E,GAAG,IAAI,KAAK,OAAOlF,EAAEwB,EAAEnB,EAAE6E,GAAG,EAAE,KAAK,IAAI,IAAI,OAAOhD,OAAO7B,EAAE+E,IAAI,IAAI,KAAK,OAAO5E,EAAEI,EAAE+G,YAAYtH,EAAE+E,GAAG3D,EAAE,GAAG,IAAI,MAAM,OAAOjB,EAAEI,EAAEgH,cAAcvH,EAAE+E,GAAG3D,EAAE,GAAG,IAAI,OAAO,OAAOA,EAAEpB,EAAE+E,IAAI,IAAI,IAAI,OAAOlD,OAAOV,GAAG,IAAI,KAAK,OAAOxB,EAAEwB,EAAEA,EAAE,EAAE,KAAK,IAAI,IAAI,OAAOpB,EAAE,GAAG,IAAI,KAAK,OAAOA,EAAE,GAAG,IAAI,IAAI,OAAOsB,EAAEF,EAAEzB,GAAE,GAAI,IAAI,IAAI,OAAO2B,EAAEF,EAAEzB,GAAE,GAAI,IAAI,IAAI,OAAOmC,OAAOnC,GAAG,IAAI,KAAK,OAAOC,EAAEwB,EAAEzB,EAAE,EAAE,KAAK,IAAI,IAAI,OAAOmC,OAAO7B,EAAEqF,IAAI,IAAI,KAAK,OAAO1F,EAAEwB,EAAEnB,EAAEqF,GAAG,EAAE,KAAK,IAAI,MAAM,OAAO1F,EAAEwB,EAAEnB,EAAEuF,IAAI,EAAE,KAAK,IAAI,IAAI,OAAOrE,EAAE,OAAO,IAAI,CAAptB,CAAstBR,IAAIQ,EAAE+B,QAAQ,IAAI,GAAG,GAAG,EAAE3C,EAAE4B,UAAU,WAAW,OAAO,IAAIC,KAAK6E,MAAMlD,KAAKG,GAAGuD,oBAAoB,GAAG,EAAElH,EAAEmH,KAAK,SAAS5G,EAAEd,EAAEM,GAAG,IAAIgB,EAAEC,EAAEwC,KAAKvC,EAAE5B,EAAEa,EAAET,GAAGO,EAAE8C,EAAEvC,GAAGF,GAAGL,EAAE4B,YAAY4B,KAAK5B,aAAalC,EAAEE,EAAE4D,KAAKxD,EAAEuC,EAAE,WAAW,OAAOlD,EAAEW,EAAEgB,EAAEhB,EAAE,EAAE,OAAOiB,GAAG,KAAKpB,EAAEkB,EAAEwB,IAAI,GAAG,MAAM,KAAK/C,EAAEuB,EAAEwB,IAAI,MAAM,KAAK5C,EAAEoB,EAAEwB,IAAI,EAAE,MAAM,KAAKzB,EAAEC,GAAGnB,EAAES,GAAG,OAAO,MAAM,KAAKC,EAAES,GAAGnB,EAAES,GAAG,MAAM,MAAM,KAAKjB,EAAE2B,EAAEnB,EAAEK,EAAE,MAAM,KAAKY,EAAEE,EAAEnB,EAAEF,EAAE,MAAM,KAAKkB,EAAEG,EAAEnB,EAAEQ,EAAE,MAAM,QAAQW,EAAEnB,EAAE,OAAOG,EAAEgB,EAAE1B,EAAEiB,EAAES,EAAE,EAAEf,EAAEuG,YAAY,WAAW,OAAO/C,KAAKgC,MAAMhG,GAAG+E,EAAE,EAAEvE,EAAEmG,QAAQ,WAAW,OAAO5D,EAAEiB,KAAKN,GAAG,EAAElD,EAAEiD,OAAO,SAAS7C,EAAEV,GAAG,IAAIU,EAAE,OAAOoD,KAAKN,GAAG,IAAIjD,EAAEuD,KAAKrB,QAAQ5B,EAAE+B,EAAElC,EAAEV,GAAE,GAAI,OAAOa,IAAIN,EAAEiD,GAAG3C,GAAGN,CAAC,EAAED,EAAEmC,MAAM,WAAW,OAAO9C,EAAEiD,EAAEkB,KAAKG,GAAGH,KAAK,EAAExD,EAAEgG,OAAO,WAAW,OAAO,IAAIpC,KAAKJ,KAAKsC,UAAU,EAAE9F,EAAEoH,OAAO,WAAW,OAAO5D,KAAK4B,UAAU5B,KAAK6D,cAAc,IAAI,EAAErH,EAAEqH,YAAY,WAAW,OAAO7D,KAAKG,GAAG0D,aAAa,EAAErH,EAAEqF,SAAS,WAAW,OAAO7B,KAAKG,GAAG2D,aAAa,EAAErG,CAAC,CAA/sJ,GAAmtJnB,EAAE+C,EAAEa,UAAU,OAAOZ,EAAEY,UAAU5D,EAAE,CAAC,CAAC,MAAMS,GAAG,CAAC,KAAKK,GAAG,CAAC,KAAKC,GAAG,CAAC,KAAKzB,GAAG,CAAC,KAAKkB,GAAG,CAAC,KAAKd,GAAG,CAAC,KAAKK,GAAG,CAAC,KAAKJ,IAAI8H,SAAS,SAASnH,GAAGN,EAAEM,EAAE,IAAI,SAASV,GAAG,OAAO8D,KAAKmC,GAAGjG,EAAEU,EAAE,GAAGA,EAAE,GAAG,CAAC,IAAI0C,EAAE0E,OAAO,SAASpH,EAAEV,GAAG,OAAOU,EAAEqH,KAAKrH,EAAEV,EAAEmD,EAAEC,GAAG1C,EAAEqH,IAAG,GAAI3E,CAAC,EAAEA,EAAEG,OAAOX,EAAEQ,EAAE4E,QAAQ9E,EAAEE,EAAE+C,KAAK,SAASzF,GAAG,OAAO0C,EAAE,IAAI1C,EAAE,EAAE0C,EAAE6E,GAAGpF,EAAE3C,GAAGkD,EAAE8E,GAAGrF,EAAEO,EAAE5C,EAAE,CAAC,EAAE4C,CAAC,CAAj6NpD,qBCAfgB,EAAOC,QAAyJ,WAAW,aAAa,OAAO,SAASjB,EAAEU,GAAG,IAAIG,EAAEH,EAAEsD,UAAUzD,EAAEM,EAAEqG,OAAOrG,EAAEqG,OAAO,SAASlH,GAAG,IAAIU,EAAEoD,KAAKjD,EAAEiD,KAAK2C,UAAU,IAAI3C,KAAK4B,UAAU,OAAOnF,EAAE4H,KAAKrE,KAAPvD,CAAaP,GAAG,IAAImB,EAAE2C,KAAK2B,SAAS7E,GAAGZ,GAAG,wBAAwBiD,QAAQ,+DAA+D,SAASjD,GAAG,OAAOA,GAAG,IAAI,IAAI,OAAOmC,KAAKQ,MAAMjC,EAAEiE,GAAG,GAAG,GAAG,IAAI,KAAK,OAAO9D,EAAEe,QAAQlB,EAAEmE,IAAI,IAAI,OAAO,OAAOnE,EAAE0H,WAAW,IAAI,OAAO,OAAO1H,EAAE2H,cAAc,IAAI,KAAK,OAAOxH,EAAEe,QAAQlB,EAAE4H,OAAO,KAAK,IAAI,IAAI,IAAI,KAAK,OAAOnH,EAAEA,EAAET,EAAE4H,OAAO,MAAMtI,EAAE,EAAE,EAAE,KAAK,IAAI,IAAI,IAAI,KAAK,OAAOmB,EAAEA,EAAET,EAAE6H,UAAU,MAAMvI,EAAE,EAAE,EAAE,KAAK,IAAI,IAAI,IAAI,KAAK,OAAOmB,EAAEA,EAAEU,OAAO,IAAInB,EAAEuE,GAAG,GAAGvE,EAAEuE,IAAI,MAAMjF,EAAE,EAAE,EAAE,KAAK,IAAI,IAAI,OAAOmC,KAAKE,MAAM3B,EAAEuD,GAAGoC,UAAU,KAAK,IAAI,IAAI,OAAO3F,EAAEuD,GAAGoC,UAAU,IAAI,IAAI,MAAM,IAAI3F,EAAE8H,aAAa,IAAI,IAAI,MAAM,MAAM,IAAI9H,EAAE8H,WAAW,QAAQ,IAAI,QAAQ,OAAOxI,EAAE,IAAI,OAAOO,EAAE4H,KAAKrE,KAAPvD,CAAaK,EAAE,CAAC,CAAC,CAAn/BF,qBCAfM,EAAOC,QAA4J,WAAW,aAAa,IAAIjB,EAAE,CAACyI,IAAI,YAAYC,GAAG,SAASC,EAAE,aAAaC,GAAG,eAAeC,IAAI,sBAAsBC,KAAK,6BAA6BpI,EAAE,gGAAgGH,EAAE,KAAKM,EAAE,OAAOK,EAAE,QAAQE,EAAE,qBAAqBD,EAAE,CAAC,EAAEP,EAAE,SAASZ,GAAG,OAAOA,GAAGA,IAAIA,EAAE,GAAG,KAAK,IAAI,EAAMC,EAAE,SAASD,GAAG,OAAO,SAASU,GAAGoD,KAAK9D,IAAIU,CAAC,CAAC,EAAEP,EAAE,CAAC,sBAAsB,SAASH,IAAI8D,KAAKiF,OAAOjF,KAAKiF,KAAK,CAAC,IAAIC,OAAO,SAAShJ,GAAG,IAAIA,EAAE,OAAO,EAAE,GAAG,MAAMA,EAAE,OAAO,EAAE,IAAIU,EAAEV,EAAEqE,MAAM,gBAAgB9D,EAAE,GAAGG,EAAE,KAAKA,EAAE,IAAI,GAAG,OAAO,IAAIH,EAAE,EAAE,MAAMG,EAAE,IAAIH,EAAEA,CAAC,CAAhI,CAAkIP,EAAE,GAAGN,EAAE,SAASM,GAAG,IAAIU,EAAES,EAAEnB,GAAG,OAAOU,IAAIA,EAAEuI,QAAQvI,EAAEA,EAAES,EAAE+H,OAAOxI,EAAET,GAAG,EAAEF,EAAE,SAASC,EAAEU,GAAG,IAAIH,EAAEM,EAAEM,EAAEiG,SAAS,GAAGvG,GAAG,IAAI,IAAIK,EAAE,EAAEA,GAAG,GAAGA,GAAG,EAAE,GAAGlB,EAAEiJ,QAAQpI,EAAEK,EAAE,EAAER,KAAK,EAAE,CAACH,EAAEW,EAAE,GAAG,KAAK,OAAOX,EAAEP,KAAKU,EAAE,KAAK,MAAM,OAAOH,CAAC,EAAET,EAAE,CAACqJ,EAAE,CAAC/H,EAAE,SAASpB,GAAG8D,KAAKsF,UAAUrJ,EAAEC,GAAE,EAAG,GAAGY,EAAE,CAACQ,EAAE,SAASpB,GAAG8D,KAAKsF,UAAUrJ,EAAEC,GAAE,EAAG,GAAG+C,EAAE,CAACxC,EAAE,SAASP,GAAG8D,KAAKtB,MAAM,GAAGxC,EAAE,GAAG,CAAC,GAAGkD,EAAE,CAAC3C,EAAE,SAASP,GAAG8D,KAAKuF,aAAa,KAAKrJ,CAAC,GAAGsJ,GAAG,CAACzI,EAAE,SAASb,GAAG8D,KAAKuF,aAAa,IAAIrJ,CAAC,GAAGuJ,IAAI,CAAC,QAAQ,SAASvJ,GAAG8D,KAAKuF,cAAcrJ,CAAC,GAAGmB,EAAE,CAACD,EAAEjB,EAAE,YAAYuJ,GAAG,CAACtI,EAAEjB,EAAE,YAAYK,EAAE,CAACY,EAAEjB,EAAE,YAAYwJ,GAAG,CAACvI,EAAEjB,EAAE,YAAYyJ,EAAE,CAACxI,EAAEjB,EAAE,UAAUE,EAAE,CAACe,EAAEjB,EAAE,UAAU0J,GAAG,CAACzI,EAAEjB,EAAE,UAAU2J,GAAG,CAAC1I,EAAEjB,EAAE,UAAU4C,EAAE,CAAC3B,EAAEjB,EAAE,QAAQ4J,GAAG,CAAChJ,EAAEZ,EAAE,QAAQ6J,GAAG,CAAC1I,EAAE,SAASpB,GAAG,IAAIU,EAAES,EAAES,QAAQrB,EAAEP,EAAEqE,MAAM,OAAO,GAAGP,KAAKiG,IAAIxJ,EAAE,GAAGG,EAAE,IAAI,IAAIG,EAAE,EAAEA,GAAG,GAAGA,GAAG,EAAEH,EAAEG,GAAGoC,QAAQ,SAAS,MAAMjD,IAAI8D,KAAKiG,IAAIlJ,EAAE,GAAG+B,EAAE,CAAC1B,EAAEjB,EAAE,SAAS+J,GAAG,CAACnJ,EAAEZ,EAAE,SAASsB,EAAE,CAACL,EAAEjB,EAAE,UAAUgK,GAAG,CAACpJ,EAAEZ,EAAE,UAAUiK,IAAI,CAAC9I,EAAE,SAASpB,GAAG,IAAIU,EAAEhB,EAAE,UAAUa,GAAGb,EAAE,gBAAgBgB,EAAEyJ,KAAK,SAASnK,GAAG,OAAOA,EAAEwG,MAAM,EAAE,EAAE,KAAKyC,QAAQjJ,GAAG,EAAE,GAAGO,EAAE,EAAE,MAAM,IAAI6J,MAAMtG,KAAKtB,MAAMjC,EAAE,IAAIA,CAAC,GAAG8J,KAAK,CAACjJ,EAAE,SAASpB,GAAG,IAAIU,EAAEhB,EAAE,UAAUuJ,QAAQjJ,GAAG,EAAE,GAAGU,EAAE,EAAE,MAAM,IAAI0J,MAAMtG,KAAKtB,MAAM9B,EAAE,IAAIA,CAAC,GAAG4J,EAAE,CAAC,WAAWrK,EAAE,SAASsK,GAAG,CAAC1J,EAAE,SAASb,GAAG8D,KAAKvB,KAAK3B,EAAEZ,EAAE,GAAGwK,KAAK,CAAC,QAAQvK,EAAE,SAASwK,EAAEtK,EAAEuK,GAAGvK,GAAG,SAASE,EAAEE,GAAG,IAAIM,EAAEK,EAAEL,EAAEN,EAAEW,EAAEC,GAAGA,EAAEwJ,QAAQ,IAAI,IAAIvJ,GAAGb,EAAEM,EAAEoC,QAAQ,qCAAqC,SAASvC,EAAEH,EAAEM,GAAG,IAAIO,EAAEP,GAAGA,EAAE+J,cAAc,OAAOrK,GAAGW,EAAEL,IAAIb,EAAEa,IAAIK,EAAEE,GAAG6B,QAAQ,kCAAkC,SAASjD,EAAEU,EAAEH,GAAG,OAAOG,GAAGH,EAAEiG,MAAM,EAAE,GAAG,KAAKnC,MAAM3D,GAAGE,EAAEQ,EAAEU,OAAO7B,EAAE,EAAEA,EAAEW,EAAEX,GAAG,EAAE,CAAC,IAAIE,EAAEiB,EAAEnB,GAAGP,EAAEI,EAAEK,GAAGJ,EAAEL,GAAGA,EAAE,GAAGW,EAAEX,GAAGA,EAAE,GAAG0B,EAAEnB,GAAGI,EAAE,CAACwK,MAAM9K,EAAE+K,OAAOzK,GAAGF,EAAE8C,QAAQ,WAAW,GAAG,CAAC,OAAO,SAASjD,GAAG,IAAI,IAAIU,EAAE,CAAC,EAAEH,EAAE,EAAEM,EAAE,EAAEN,EAAEK,EAAEL,GAAG,EAAE,CAAC,IAAIW,EAAEE,EAAEb,GAAG,GAAG,iBAAiBW,EAAEL,GAAGK,EAAEY,WAAW,CAAC,IAAIX,EAAED,EAAE2J,MAAM5K,EAAEiB,EAAE4J,OAAO3K,EAAEH,EAAEwG,MAAM3F,GAAGnB,EAAEyB,EAAE4J,KAAK5K,GAAG,GAAGF,EAAE+K,KAAKtK,EAAEhB,GAAGM,EAAEA,EAAEiD,QAAQvD,EAAE,GAAG,CAAC,CAAC,OAAO,SAASM,GAAG,IAAIU,EAAEV,EAAEoJ,UAAU,QAAG,IAAS1I,EAAE,CAAC,IAAIH,EAAEP,EAAEiL,MAAMvK,EAAEH,EAAE,KAAKP,EAAEiL,OAAO,IAAI,KAAK1K,IAAIP,EAAEiL,MAAM,UAAUjL,EAAEoJ,SAAS,CAAC,CAAxH,CAA0H1I,GAAGA,CAAC,CAAC,CAAC,OAAO,SAASV,EAAEU,EAAEH,GAAGA,EAAEC,EAAE0K,mBAAkB,EAAGlL,GAAGA,EAAEmL,oBAAoBvK,EAAEZ,EAAEmL,mBAAmB,IAAItK,EAAEH,EAAEsD,UAAU9C,EAAEL,EAAEkD,MAAMlD,EAAEkD,MAAM,SAAS/D,GAAG,IAAIU,EAAEV,EAAEsC,KAAKzB,EAAEb,EAAEyD,IAAIrC,EAAEpB,EAAEqD,KAAKS,KAAKJ,GAAG7C,EAAE,IAAID,EAAEQ,EAAE,GAAG,GAAG,iBAAiBR,EAAE,CAAC,IAAIX,GAAE,IAAKmB,EAAE,GAAGjB,GAAE,IAAKiB,EAAE,GAAG1B,EAAEO,GAAGE,EAAEJ,EAAEqB,EAAE,GAAGjB,IAAIJ,EAAEqB,EAAE,IAAID,EAAE2C,KAAK2C,WAAWxG,GAAGF,IAAIoB,EAAEZ,EAAE2H,GAAGnI,IAAI+D,KAAKG,GAAG,SAASjE,EAAEU,EAAEH,EAAEM,GAAG,IAAI,GAAG,CAAC,IAAI,KAAKoI,QAAQvI,IAAI,EAAE,OAAO,IAAIwD,MAAM,MAAMxD,EAAE,IAAI,GAAGV,GAAG,IAAIkB,EAAEb,EAAEK,EAAFL,CAAKL,GAAGoB,EAAEF,EAAEqB,KAAKpB,EAAED,EAAEsB,MAAM5B,EAAEM,EAAE6I,IAAI9J,EAAEiB,EAAE+J,MAAM9K,EAAEe,EAAEkK,QAAQ1L,EAAEwB,EAAEmK,QAAQtL,EAAEmB,EAAEmI,aAAavJ,EAAEoB,EAAE6H,KAAKzI,EAAEY,EAAEoH,KAAK/G,EAAE,IAAI2C,KAAKoG,EAAE1J,IAAIQ,GAAGD,EAAE,EAAEI,EAAEuD,WAAWtE,EAAEY,GAAGG,EAAEmD,cAAc/D,EAAE,EAAES,IAAID,IAAIR,EAAEQ,EAAE,EAAEA,EAAE,EAAEI,EAAEqD,YAAY,IAAI/B,EAAED,EAAE3C,GAAG,EAAEC,EAAEC,GAAG,EAAEmB,EAAE5B,GAAG,EAAEiJ,EAAE5I,GAAG,EAAE,OAAOD,EAAE,IAAIoE,KAAKA,KAAKK,IAAI/D,EAAEG,EAAE2J,EAAE1H,EAAE1C,EAAEoB,EAAEqH,EAAE,GAAG7I,EAAEkJ,OAAO,MAAMzI,EAAE,IAAI2D,KAAKA,KAAKK,IAAI/D,EAAEG,EAAE2J,EAAE1H,EAAE1C,EAAEoB,EAAEqH,KAAK9F,EAAE,IAAIqB,KAAK1D,EAAEG,EAAE2J,EAAE1H,EAAE1C,EAAEoB,EAAEqH,GAAGrI,IAAIuC,EAAEhC,EAAEgC,GAAGyF,KAAKhI,GAAGgG,UAAUzD,EAAE,CAAC,MAAM7C,GAAG,OAAO,IAAIkE,KAAK,GAAG,CAAC,CAAzf,CAA2fxD,EAAEE,EAAEC,EAAEN,GAAGuD,KAAKU,OAAOzE,IAAG,IAAKA,IAAI+D,KAAKN,GAAGM,KAAKP,OAAOxD,GAAGyD,IAAI9D,GAAGgB,GAAGoD,KAAKoD,OAAOtG,KAAKkD,KAAKG,GAAG,IAAIC,KAAK,KAAK/C,EAAE,CAAC,CAAC,MAAM,GAAGP,aAAamB,MAAM,IAAI,IAAIjC,EAAEc,EAAEkB,OAAOxB,EAAE,EAAEA,GAAGR,EAAEQ,GAAG,EAAE,CAACc,EAAE,GAAGR,EAAEN,EAAE,GAAG,IAAIiB,EAAEhB,EAAEgG,MAAMzC,KAAK1C,GAAG,GAAGG,EAAEmE,UAAU,CAAC5B,KAAKG,GAAG1C,EAAE0C,GAAGH,KAAKN,GAAGjC,EAAEiC,GAAGM,KAAKU,OAAO,KAAK,CAAClE,IAAIR,IAAIgE,KAAKG,GAAG,IAAIC,KAAK,IAAI,MAAMhD,EAAE8J,KAAKlH,KAAK9D,EAAE,CAAC,CAAC,CAAhtHU,qBCAfM,EAAOC,QAAoJ,WAAW,aAAa,OAAO,SAASjB,EAAEkB,EAAER,GAAGQ,EAAE8C,UAAUsH,UAAU,SAAStL,EAAEkB,EAAEC,EAAElB,GAAG,IAAIM,EAAEG,EAAEV,GAAGoB,EAAEV,EAAEQ,GAAGL,EAAE,OAAOZ,EAAEA,GAAG,MAAM,GAAGP,EAAE,MAAMO,EAAE,GAAG,OAAOY,EAAEiD,KAAKiC,QAAQxF,EAAEY,IAAI2C,KAAKkC,SAASzF,EAAEY,MAAMzB,EAAEoE,KAAKkC,SAAS5E,EAAED,IAAI2C,KAAKiC,QAAQ3E,EAAED,MAAMN,EAAEiD,KAAKkC,SAASzF,EAAEY,IAAI2C,KAAKiC,QAAQxF,EAAEY,MAAMzB,EAAEoE,KAAKiC,QAAQ3E,EAAED,IAAI2C,KAAKkC,SAAS5E,EAAED,GAAG,CAAC,CAAC,CAA3cD,qBCAfF,EAAOC,QAA0J,WAAW,aAAa,IAAIjB,EAAE,CAACyI,IAAI,YAAYC,GAAG,SAASC,EAAE,aAAaC,GAAG,eAAeC,IAAI,sBAAsBC,KAAK,6BAA6B,OAAO,SAASpI,EAAEU,EAAEb,GAAG,IAAIM,EAAEO,EAAE4C,UAAU9C,EAAEL,EAAEqG,OAAO3G,EAAE0H,GAAG0C,QAAQ3K,EAAEa,EAAEqG,OAAO,SAASxG,QAAG,IAASA,IAAIA,EAAE,wBAAwB,IAAIU,EAAE0C,KAAK2C,UAAUkE,QAAQpK,EAAE,SAASG,EAAEU,GAAG,OAAOV,EAAEuC,QAAQ,qCAAqC,SAASvC,EAAEH,EAAEM,GAAG,IAAIK,EAAEL,GAAGA,EAAE+J,cAAc,OAAOrK,GAAGa,EAAEP,IAAIb,EAAEa,IAAIO,EAAEF,GAAG+B,QAAQ,kCAAkC,SAASjD,EAAEU,EAAEU,GAAG,OAAOV,GAAGU,EAAEoF,MAAM,EAAE,GAAG,GAAG,CAA5N,CAA8N9F,OAAE,IAASU,EAAE,CAAC,EAAEA,GAAG,OAAOF,EAAE8J,KAAKlH,KAAKvD,EAAE,CAAC,CAAC,CAAhtBG,qBCAfM,EAAOC,QAAqJ,WAAW,aAAa,IAAIjB,EAAE,OAAOU,EAAE,OAAO,OAAO,SAASQ,EAAEX,EAAEM,GAAG,IAAIZ,EAAEM,EAAEyD,UAAU/D,EAAEqI,KAAK,SAASpH,GAAG,QAAG,IAASA,IAAIA,EAAE,MAAM,OAAOA,EAAE,OAAO4C,KAAKpB,IAAI,GAAGxB,EAAE4C,KAAKwE,QAAQ,OAAO,IAAI/H,EAAEuD,KAAK2C,UAAU8E,WAAW,EAAE,GAAG,KAAKzH,KAAKtB,SAASsB,KAAKxB,OAAO,GAAG,CAAC,IAAIrC,EAAEY,EAAEiD,MAAM+B,QAAQnF,GAAGgC,IAAI,EAAEhC,GAAG4B,KAAK/B,GAAGY,EAAEN,EAAEiD,MAAMgC,MAAM9F,GAAG,GAAGC,EAAE+F,SAAS7E,GAAG,OAAO,CAAC,CAAC,IAAIP,EAAEC,EAAEiD,MAAM+B,QAAQnF,GAAG4B,KAAK/B,GAAGsF,QAAQ7F,GAAGiH,SAAS,EAAE,eAAe7F,EAAE0C,KAAK2D,KAAK7G,EAAEZ,GAAE,GAAI,OAAOoB,EAAE,EAAEP,EAAEiD,MAAM+B,QAAQ,QAAQyC,OAAOnG,KAAKQ,KAAKvB,EAAE,EAAEnB,EAAEuL,MAAM,SAASxL,GAAG,YAAO,IAASA,IAAIA,EAAE,MAAM8D,KAAKwE,KAAKtI,EAAE,CAAC,CAAC,CAAhrBU,yBCAnF,OACC,WACC,aAiBA,IA2DE+K,EA3DEC,EAAa,IAIfC,EAAU,CAORC,UAAW,GAkBXC,SAAU,EAIVC,UAAW,EAIXC,SAAW,GAIXC,KAAM,wHAORC,GAAW,EAEXC,EAAe,kBACfC,EAAkBD,EAAe,qBACjCE,EAAqBF,EAAe,0BAEpCG,EAAYlK,KAAKE,MACjBiK,EAAUnK,KAAKoK,IAEfC,EAAY,qCAGZC,EAAO,IAEPC,EAAmB,iBACnBC,EAAQN,EAAUK,oBAGlBE,EAAI,CAAC,EAg0BP,SAASlK,EAAIiB,EAAGrC,GACd,IAAIuL,EAAO9M,EAAGC,EAAGkB,EAAGd,EAAG0M,EAAKC,EAAIC,EAC9BC,EAAOtJ,EAAEuJ,YACTC,EAAKF,EAAKrB,UAGZ,IAAKjI,EAAExC,IAAMG,EAAEH,EAKb,OADKG,EAAEH,IAAGG,EAAI,IAAI2L,EAAKtJ,IAChBsI,EAAWjF,EAAM1F,EAAG6L,GAAM7L,EAcnC,GAXAyL,EAAKpJ,EAAE5D,EACPiN,EAAK1L,EAAEvB,EAIPK,EAAIuD,EAAE3D,EACNA,EAAIsB,EAAEtB,EACN+M,EAAKA,EAAGvG,QACRtF,EAAId,EAAIJ,EAGD,CAsBL,IArBIkB,EAAI,GACNnB,EAAIgN,EACJ7L,GAAKA,EACL4L,EAAME,EAAGlL,SAET/B,EAAIiN,EACJhN,EAAII,EACJ0M,EAAMC,EAAGjL,QAOPZ,GAFJ4L,GADA1M,EAAI+B,KAAKQ,KAAKwK,EA12BL,IA22BCL,EAAM1M,EAAI,EAAI0M,EAAM,KAG5B5L,EAAI4L,EACJ/M,EAAE+B,OAAS,GAIb/B,EAAEqN,UACKlM,KAAMnB,EAAEsN,KAAK,GACpBtN,EAAEqN,SACJ,CAcA,KAZAN,EAAMC,EAAGjL,SACTZ,EAAI8L,EAAGlL,QAGO,IACZZ,EAAI4L,EACJ/M,EAAIiN,EACJA,EAAKD,EACLA,EAAKhN,GAIF8M,EAAQ,EAAG3L,GACd2L,GAASE,IAAK7L,GAAK6L,EAAG7L,GAAK8L,EAAG9L,GAAK2L,GAASJ,EAAO,EACnDM,EAAG7L,IAAMuL,EAUX,IAPII,IACFE,EAAGO,QAAQT,KACT7M,GAKC8M,EAAMC,EAAGjL,OAAqB,GAAbiL,IAAKD,IAAYC,EAAGQ,MAK1C,OAHAjM,EAAEvB,EAAIgN,EACNzL,EAAEtB,EAAIA,EAECiM,EAAWjF,EAAM1F,EAAG6L,GAAM7L,CACnC,CAGA,SAASkM,EAAWtM,EAAG0F,EAAK6G,GAC1B,GAAIvM,MAAQA,GAAKA,EAAI0F,GAAO1F,EAAIuM,EAC9B,MAAMrD,MAAM+B,EAAkBjL,EAElC,CAGA,SAASwM,EAAe3N,GACtB,IAAImB,EAAGd,EAAGuN,EACRC,EAAkB7N,EAAE+B,OAAS,EAC7B+L,EAAM,GACNjL,EAAI7C,EAAE,GAER,GAAI6N,EAAkB,EAAG,CAEvB,IADAC,GAAOjL,EACF1B,EAAI,EAAGA,EAAI0M,EAAiB1M,KAE/Bd,EA16BO,GAy6BPuN,EAAK5N,EAAEmB,GAAK,IACMY,UACX+L,GAAOC,EAAc1N,IAC5ByN,GAAOF,GAKTvN,EAj7BS,GAg7BTuN,GADA/K,EAAI7C,EAAEmB,IACG,IACSY,UACX+L,GAAOC,EAAc1N,GAC9B,MAAO,GAAU,IAANwC,EACT,MAAO,IAIT,KAAOA,EAAI,KAAO,GAAIA,GAAK,GAE3B,OAAOiL,EAAMjL,CACf,CAr4BAgK,EAAEmB,cAAgBnB,EAAExK,IAAM,WACxB,IAAIuB,EAAI,IAAIG,KAAKoJ,YAAYpJ,MAE7B,OADIH,EAAExC,IAAGwC,EAAExC,EAAI,GACRwC,CACT,EAUAiJ,EAAEoB,WAAapB,EAAEqB,IAAM,SAAU3M,GAC/B,IAAIJ,EAAGgN,EAAGC,EAAKC,EACbzK,EAAIG,KAKN,GAHAxC,EAAI,IAAIqC,EAAEuJ,YAAY5L,GAGlBqC,EAAExC,IAAMG,EAAEH,EAAG,OAAOwC,EAAExC,IAAMG,EAAEH,EAGlC,GAAIwC,EAAE3D,IAAMsB,EAAEtB,EAAG,OAAO2D,EAAE3D,EAAIsB,EAAEtB,EAAI2D,EAAExC,EAAI,EAAI,GAAK,EAMnD,IAAKD,EAAI,EAAGgN,GAJZC,EAAMxK,EAAE5D,EAAE+B,SACVsM,EAAM9M,EAAEvB,EAAE+B,QAGkBqM,EAAMC,EAAKlN,EAAIgN,IAAKhN,EAC9C,GAAIyC,EAAE5D,EAAEmB,KAAOI,EAAEvB,EAAEmB,GAAI,OAAOyC,EAAE5D,EAAEmB,GAAKI,EAAEvB,EAAEmB,GAAKyC,EAAExC,EAAI,EAAI,GAAK,EAIjE,OAAOgN,IAAQC,EAAM,EAAID,EAAMC,EAAMzK,EAAExC,EAAI,EAAI,GAAK,CACtD,EAOAyL,EAAEyB,cAAgBzB,EAAE0B,GAAK,WACvB,IAAI3K,EAAIG,KACNlB,EAAIe,EAAE5D,EAAE+B,OAAS,EACjBwM,EApGS,GAoGH1L,EAAIe,EAAE3D,GAId,GADA4C,EAAIe,EAAE5D,EAAE6C,GACD,KAAOA,EAAI,IAAM,EAAGA,GAAK,GAAI0L,IAEpC,OAAOA,EAAK,EAAI,EAAIA,CACtB,EAQA1B,EAAE2B,UAAY3B,EAAE4B,IAAM,SAAUlN,GAC9B,OAAOmN,EAAO3K,KAAM,IAAIA,KAAKoJ,YAAY5L,GAC3C,EAQAsL,EAAE8B,mBAAqB9B,EAAE+B,KAAO,SAAUrN,GACxC,IACE2L,EADMnJ,KACGoJ,YACX,OAAOlG,EAAMyH,EAFL3K,KAEe,IAAImJ,EAAK3L,GAAI,EAAG,GAAI2L,EAAKrB,UAClD,EAOAgB,EAAEgC,OAAShC,EAAEiC,GAAK,SAAUvN,GAC1B,OAAQwC,KAAKmK,IAAI3M,EACnB,EAOAsL,EAAEkC,SAAW,WACX,OAAOC,EAAkBjL,KAC3B,EAQA8I,EAAEoC,YAAcpC,EAAEqC,GAAK,SAAU3N,GAC/B,OAAOwC,KAAKmK,IAAI3M,GAAK,CACvB,EAQAsL,EAAEsC,qBAAuBtC,EAAEuC,IAAM,SAAU7N,GACzC,OAAOwC,KAAKmK,IAAI3M,IAAM,CACxB,EAOAsL,EAAEwC,UAAYxC,EAAEyC,MAAQ,WACtB,OAAOvL,KAAK9D,EAAI8D,KAAK/D,EAAE+B,OAAS,CAClC,EAOA8K,EAAE0C,WAAa1C,EAAE2C,MAAQ,WACvB,OAAOzL,KAAK3C,EAAI,CAClB,EAOAyL,EAAE4C,WAAa5C,EAAE6C,MAAQ,WACvB,OAAO3L,KAAK3C,EAAI,CAClB,EAOAyL,EAAE8C,OAAS,WACT,OAAkB,IAAX5L,KAAK3C,CACd,EAOAyL,EAAE+C,SAAW/C,EAAEgD,GAAK,SAAUtO,GAC5B,OAAOwC,KAAKmK,IAAI3M,GAAK,CACvB,EAOAsL,EAAEiD,kBAAoBjD,EAAEkD,IAAM,SAAUxO,GACtC,OAAOwC,KAAKmK,IAAI3M,GAAK,CACvB,EAgBAsL,EAAEmD,UAAYnD,EAAEoD,IAAM,SAAUC,GAC9B,IAAIpP,EACF8C,EAAIG,KACJmJ,EAAOtJ,EAAEuJ,YACTC,EAAKF,EAAKrB,UACVsE,EAAM/C,EAAK,EAGb,QAAa,IAAT8C,EACFA,EAAO,IAAIhD,EAAK,SAOhB,IALAgD,EAAO,IAAIhD,EAAKgD,IAKP9O,EAAI,GAAK8O,EAAKpB,GAAGpD,GAAM,MAAMrB,MAAM8B,EAAe,OAK7D,GAAIvI,EAAExC,EAAI,EAAG,MAAMiJ,MAAM8B,GAAgBvI,EAAExC,EAAI,MAAQ,cAGvD,OAAIwC,EAAEkL,GAAGpD,GAAa,IAAIwB,EAAK,IAE/BhB,GAAW,EACXpL,EAAI4N,EAAO0B,EAAGxM,EAAGuM,GAAMC,EAAGF,EAAMC,GAAMA,GACtCjE,GAAW,EAEJjF,EAAMnG,EAAGsM,GAClB,EAQAP,EAAEwD,MAAQxD,EAAEyD,IAAM,SAAU/O,GAC1B,IAAIqC,EAAIG,KAER,OADAxC,EAAI,IAAIqC,EAAEuJ,YAAY5L,GACfqC,EAAExC,GAAKG,EAAEH,EAAI8F,EAAStD,EAAGrC,GAAKoB,EAAIiB,GAAIrC,EAAEH,GAAKG,EAAEH,EAAGG,GAC3D,EAQAsL,EAAE0D,OAAS1D,EAAE2D,IAAM,SAAUjP,GAC3B,IAAIb,EACFkD,EAAIG,KACJmJ,EAAOtJ,EAAEuJ,YACTC,EAAKF,EAAKrB,UAKZ,KAHAtK,EAAI,IAAI2L,EAAK3L,IAGNH,EAAG,MAAMiJ,MAAM8B,EAAe,OAGrC,OAAKvI,EAAExC,GAGP8K,GAAW,EACXxL,EAAIgO,EAAO9K,EAAGrC,EAAG,EAAG,GAAGkP,MAAMlP,GAC7B2K,GAAW,EAEJtI,EAAEyM,MAAM3P,IAPEuG,EAAM,IAAIiG,EAAKtJ,GAAIwJ,EAQtC,EASAP,EAAE6D,mBAAqB7D,EAAE8D,IAAM,WAC7B,OAAOA,EAAI5M,KACb,EAQA8I,EAAE+D,iBAAmB/D,EAAEuD,GAAK,WAC1B,OAAOA,EAAGrM,KACZ,EAQA8I,EAAEgE,QAAUhE,EAAEiE,IAAM,WAClB,IAAIlN,EAAI,IAAIG,KAAKoJ,YAAYpJ,MAE7B,OADAH,EAAExC,GAAKwC,EAAExC,GAAK,EACPwC,CACT,EAQAiJ,EAAEkE,KAAOlE,EAAElK,IAAM,SAAUpB,GACzB,IAAIqC,EAAIG,KAER,OADAxC,EAAI,IAAIqC,EAAEuJ,YAAY5L,GACfqC,EAAExC,GAAKG,EAAEH,EAAIuB,EAAIiB,EAAGrC,GAAK2F,EAAStD,GAAIrC,EAAEH,GAAKG,EAAEH,EAAGG,GAC3D,EASAsL,EAAEhB,UAAYgB,EAAEmE,GAAK,SAAU9O,GAC7B,IAAIjC,EAAG+Q,EAAInO,EACTe,EAAIG,KAEN,QAAU,IAAN7B,GAAgBA,MAAQA,GAAW,IAANA,GAAiB,IAANA,EAAS,MAAMmI,MAAM+B,EAAkBlK,GAQnF,GANAjC,EAAI+O,EAAkBpL,GAAK,EAE3BoN,EAlXW,GAiXXnO,EAAIe,EAAE5D,EAAE+B,OAAS,GACG,EACpBc,EAAIe,EAAE5D,EAAE6C,GAGD,CAGL,KAAOA,EAAI,IAAM,EAAGA,GAAK,GAAImO,IAG7B,IAAKnO,EAAIe,EAAE5D,EAAE,GAAI6C,GAAK,GAAIA,GAAK,GAAImO,GACrC,CAEA,OAAO9O,GAAKjC,EAAI+Q,EAAK/Q,EAAI+Q,CAC3B,EAQAnE,EAAEoE,WAAapE,EAAEqE,KAAO,WACtB,IAAIjR,EAAGO,EAAG4M,EAAItM,EAAGM,EAAGT,EAAGwP,EACrBvM,EAAIG,KACJmJ,EAAOtJ,EAAEuJ,YAGX,GAAIvJ,EAAExC,EAAI,EAAG,CACX,IAAKwC,EAAExC,EAAG,OAAO,IAAI8L,EAAK,GAG1B,MAAM7C,MAAM8B,EAAe,MAC7B,CAgCA,IA9BAlM,EAAI+O,EAAkBpL,GACtBsI,GAAW,EAOF,IAJT9K,EAAIgB,KAAK8O,MAAMtN,KAIDxC,GAAK,OACjBZ,EAAImN,EAAe/J,EAAE5D,IACd+B,OAAS9B,GAAK,GAAK,IAAGO,GAAK,KAClCY,EAAIgB,KAAK8O,KAAK1Q,GACdP,EAAIqM,GAAWrM,EAAI,GAAK,IAAMA,EAAI,GAAKA,EAAI,GAS3Ca,EAAI,IAAIoM,EANN1M,EADEY,GAAK,IACH,KAAOnB,GAEXO,EAAIY,EAAE+P,iBACA1K,MAAM,EAAGjG,EAAE0I,QAAQ,KAAO,GAAKjJ,IAKvCa,EAAI,IAAIoM,EAAK9L,EAAEwE,YAIjBxE,EAAI+O,GADJ/C,EAAKF,EAAKrB,WACK,IAOb,GAFA/K,GADAH,EAAIG,GACEiQ,KAAKrC,EAAO9K,EAAGjD,EAAGwP,EAAM,IAAIM,MAAM,IAEpC9C,EAAehN,EAAEX,GAAGyG,MAAM,EAAG0J,MAAU3P,EAAImN,EAAe7M,EAAEd,IAAIyG,MAAM,EAAG0J,GAAM,CAKjF,GAJA3P,EAAIA,EAAEiG,MAAM0J,EAAM,EAAGA,EAAM,GAIvB/O,GAAK+O,GAAY,QAAL3P,GAMd,GAFAyG,EAAMtG,EAAGyM,EAAK,EAAG,GAEbzM,EAAE8P,MAAM9P,GAAGmO,GAAGlL,GAAI,CACpB9C,EAAIH,EACJ,KACF,OACK,GAAS,QAALH,EACT,MAGF2P,GAAO,CACT,CAKF,OAFAjE,GAAW,EAEJjF,EAAMnG,EAAGsM,EAClB,EAQAP,EAAE4D,MAAQ5D,EAAEuE,IAAM,SAAU7P,GAC1B,IAAIuL,EAAO7M,EAAGkB,EAAGd,EAAGS,EAAGuQ,EAAI1Q,EAAGyN,EAAKC,EACjCzK,EAAIG,KACJmJ,EAAOtJ,EAAEuJ,YACTH,EAAKpJ,EAAE5D,EACPiN,GAAM1L,EAAI,IAAI2L,EAAK3L,IAAIvB,EAGzB,IAAK4D,EAAExC,IAAMG,EAAEH,EAAG,OAAO,IAAI8L,EAAK,GAoBlC,IAlBA3L,EAAEH,GAAKwC,EAAExC,EACTnB,EAAI2D,EAAE3D,EAAIsB,EAAEtB,GACZmO,EAAMpB,EAAGjL,SACTsM,EAAMpB,EAAGlL,UAIPjB,EAAIkM,EACJA,EAAKC,EACLA,EAAKnM,EACLuQ,EAAKjD,EACLA,EAAMC,EACNA,EAAMgD,GAIRvQ,EAAI,GAECK,EADLkQ,EAAKjD,EAAMC,EACElN,KAAML,EAAEwM,KAAK,GAG1B,IAAKnM,EAAIkN,IAAOlN,GAAK,GAAI,CAEvB,IADA2L,EAAQ,EACHzM,EAAI+N,EAAMjN,EAAGd,EAAIc,GACpBR,EAAIG,EAAET,GAAK4M,EAAG9L,GAAK6L,EAAG3M,EAAIc,EAAI,GAAK2L,EACnChM,EAAET,KAAOM,EAAI+L,EAAO,EACpBI,EAAQnM,EAAI+L,EAAO,EAGrB5L,EAAET,IAAMS,EAAET,GAAKyM,GAASJ,EAAO,CACjC,CAGA,MAAQ5L,IAAIuQ,IAAMvQ,EAAE0M,MAQpB,OANIV,IAAS7M,EACRa,EAAEwQ,QAEP/P,EAAEvB,EAAIc,EACNS,EAAEtB,EAAIA,EAECiM,EAAWjF,EAAM1F,EAAG2L,EAAKrB,WAAatK,CAC/C,EAaAsL,EAAE0E,gBAAkB1E,EAAE2E,KAAO,SAAUjD,EAAIkD,GACzC,IAAI7N,EAAIG,KACNmJ,EAAOtJ,EAAEuJ,YAGX,OADAvJ,EAAI,IAAIsJ,EAAKtJ,QACF,IAAP2K,EAAsB3K,GAE1B6J,EAAWc,EAAI,EAAG5C,QAEP,IAAP8F,EAAeA,EAAKvE,EAAKpB,SACxB2B,EAAWgE,EAAI,EAAG,GAEhBxK,EAAMrD,EAAG2K,EAAKS,EAAkBpL,GAAK,EAAG6N,GACjD,EAWA5E,EAAEsE,cAAgB,SAAU5C,EAAIkD,GAC9B,IAAI3D,EACFlK,EAAIG,KACJmJ,EAAOtJ,EAAEuJ,YAcX,YAZW,IAAPoB,EACFT,EAAMlI,EAAShC,GAAG,IAElB6J,EAAWc,EAAI,EAAG5C,QAEP,IAAP8F,EAAeA,EAAKvE,EAAKpB,SACxB2B,EAAWgE,EAAI,EAAG,GAGvB3D,EAAMlI,EADNhC,EAAIqD,EAAM,IAAIiG,EAAKtJ,GAAI2K,EAAK,EAAGkD,IACb,EAAMlD,EAAK,IAGxBT,CACT,EAmBAjB,EAAE6E,QAAU,SAAUnD,EAAIkD,GACxB,IAAI3D,EAAKvM,EACPqC,EAAIG,KACJmJ,EAAOtJ,EAAEuJ,YAEX,YAAW,IAAPoB,EAAsB3I,EAAShC,IAEnC6J,EAAWc,EAAI,EAAG5C,QAEP,IAAP8F,EAAeA,EAAKvE,EAAKpB,SACxB2B,EAAWgE,EAAI,EAAG,GAGvB3D,EAAMlI,GADNrE,EAAI0F,EAAM,IAAIiG,EAAKtJ,GAAI2K,EAAKS,EAAkBpL,GAAK,EAAG6N,IACrCpP,OAAO,EAAOkM,EAAKS,EAAkBzN,GAAK,GAIpDqC,EAAE4L,UAAY5L,EAAE+L,SAAW,IAAM7B,EAAMA,EAChD,EAQAjB,EAAE8E,UAAY9E,EAAE+E,MAAQ,WACtB,IAAIhO,EAAIG,KACNmJ,EAAOtJ,EAAEuJ,YACX,OAAOlG,EAAM,IAAIiG,EAAKtJ,GAAIoL,EAAkBpL,GAAK,EAAGsJ,EAAKpB,SAC3D,EAOAe,EAAEgF,SAAW,WACX,OAAQ9N,IACV,EAgBA8I,EAAEiF,QAAUjF,EAAEL,IAAM,SAAUjL,GAC5B,IAAItB,EAAGI,EAAG+M,EAAItM,EAAGiR,EAAMC,EACrBpO,EAAIG,KACJmJ,EAAOtJ,EAAEuJ,YAET8E,IAAO1Q,EAAI,IAAI2L,EAAK3L,IAGtB,IAAKA,EAAEH,EAAG,OAAO,IAAI8L,EAAKxB,GAM1B,KAJA9H,EAAI,IAAIsJ,EAAKtJ,IAINxC,EAAG,CACR,GAAIG,EAAEH,EAAI,EAAG,MAAMiJ,MAAM8B,EAAe,YACxC,OAAOvI,CACT,CAGA,GAAIA,EAAEkL,GAAGpD,GAAM,OAAO9H,EAKtB,GAHAwJ,EAAKF,EAAKrB,UAGNtK,EAAEuN,GAAGpD,GAAM,OAAOzE,EAAMrD,EAAGwJ,GAO/B,GAHA4E,GAFA/R,EAAIsB,EAAEtB,KACNI,EAAIkB,EAAEvB,EAAE+B,OAAS,GAEjBgQ,EAAOnO,EAAExC,EAEJ4Q,GAME,IAAK3R,EAAI4R,EAAK,GAAKA,EAAKA,IAAOtF,EAAkB,CAStD,IARA7L,EAAI,IAAIoM,EAAKxB,GAIbzL,EAAImC,KAAKQ,KAAKwK,EAzrBL,EAyrBqB,GAE9BlB,GAAW,EAGL7L,EAAI,GAEN6R,GADApR,EAAIA,EAAE2P,MAAM7M,IACD5D,EAAGC,GAIN,KADVI,EAAIiM,EAAUjM,EAAI,KAIlB6R,GADAtO,EAAIA,EAAE6M,MAAM7M,IACD5D,EAAGC,GAKhB,OAFAiM,GAAW,EAEJ3K,EAAEH,EAAI,EAAI,IAAI8L,EAAKxB,GAAK+C,IAAI3N,GAAKmG,EAAMnG,EAAGsM,EACnD,OA5BE,GAAI2E,EAAO,EAAG,MAAM1H,MAAM8B,EAAe,OAwC3C,OATA4F,EAAOA,EAAO,GAA2B,EAAtBxQ,EAAEvB,EAAEoC,KAAKsL,IAAIzN,EAAGI,KAAW,EAAI,EAElDuD,EAAExC,EAAI,EACN8K,GAAW,EACXpL,EAAIS,EAAEkP,MAAML,EAAGxM,EAAGwJ,EAlER,KAmEVlB,GAAW,GACXpL,EAAI6P,EAAI7P,IACNM,EAAI2Q,EAECjR,CACT,EAcA+L,EAAEsF,YAAc,SAAUnB,EAAIS,GAC5B,IAAIxR,EAAG6N,EACLlK,EAAIG,KACJmJ,EAAOtJ,EAAEuJ,YAgBX,YAdW,IAAP6D,EAEFlD,EAAMlI,EAAShC,GADf3D,EAAI+O,EAAkBpL,KACCsJ,EAAKnB,UAAY9L,GAAKiN,EAAKlB,WAElDyB,EAAWuD,EAAI,EAAGrF,QAEP,IAAP8F,EAAeA,EAAKvE,EAAKpB,SACxB2B,EAAWgE,EAAI,EAAG,GAIvB3D,EAAMlI,EAFNhC,EAAIqD,EAAM,IAAIiG,EAAKtJ,GAAIoN,EAAIS,GAETT,IADlB/Q,EAAI+O,EAAkBpL,KACO3D,GAAKiN,EAAKnB,SAAUiF,IAG5ClD,CACT,EAYAjB,EAAEuF,oBAAsBvF,EAAEwF,KAAO,SAAUrB,EAAIS,GAC7C,IACEvE,EADMnJ,KACGoJ,YAYX,YAVW,IAAP6D,GACFA,EAAK9D,EAAKrB,UACV4F,EAAKvE,EAAKpB,WAEV2B,EAAWuD,EAAI,EAAGrF,QAEP,IAAP8F,EAAeA,EAAKvE,EAAKpB,SACxB2B,EAAWgE,EAAI,EAAG,IAGlBxK,EAAM,IAAIiG,EAbTnJ,MAakBiN,EAAIS,EAChC,EAUA5E,EAAEjH,SAAWiH,EAAExG,QAAUwG,EAAEyF,IAAMzF,EAAElF,OAAS,WAC1C,IAAI/D,EAAIG,KACN9D,EAAI+O,EAAkBpL,GACtBsJ,EAAOtJ,EAAEuJ,YAEX,OAAOvH,EAAShC,EAAG3D,GAAKiN,EAAKnB,UAAY9L,GAAKiN,EAAKlB,SACrD,EAuJA,IAAI0C,EAAU,WAGZ,SAAS6D,EAAgB3O,EAAGvD,GAC1B,IAAImS,EACF1F,EAAQ,EACR3L,EAAIyC,EAAE7B,OAER,IAAK6B,EAAIA,EAAE6C,QAAStF,KAClBqR,EAAO5O,EAAEzC,GAAKd,EAAIyM,EAClBlJ,EAAEzC,GAAKqR,EAAO9F,EAAO,EACrBI,EAAQ0F,EAAO9F,EAAO,EAKxB,OAFII,GAAOlJ,EAAE2J,QAAQT,GAEdlJ,CACT,CAEA,SAAS6O,EAAQ5R,EAAGjB,EAAG8S,EAAIC,GACzB,IAAIxR,EAAGL,EAEP,GAAI4R,GAAMC,EACR7R,EAAI4R,EAAKC,EAAK,GAAK,OAEnB,IAAKxR,EAAIL,EAAI,EAAGK,EAAIuR,EAAIvR,IACtB,GAAIN,EAAEM,IAAMvB,EAAEuB,GAAI,CAChBL,EAAID,EAAEM,GAAKvB,EAAEuB,GAAK,GAAK,EACvB,KACF,CAIJ,OAAOL,CACT,CAEA,SAASoG,EAASrG,EAAGjB,EAAG8S,GAItB,IAHA,IAAIvR,EAAI,EAGDuR,KACL7R,EAAE6R,IAAOvR,EACTA,EAAIN,EAAE6R,GAAM9S,EAAE8S,GAAM,EAAI,EACxB7R,EAAE6R,GAAMvR,EAAIuL,EAAO7L,EAAE6R,GAAM9S,EAAE8S,GAI/B,MAAQ7R,EAAE,IAAMA,EAAEkB,OAAS,GAAIlB,EAAEyQ,OACnC,CAEA,OAAO,SAAU1N,EAAGrC,EAAG6L,EAAImB,GACzB,IAAIL,EAAKjO,EAAGkB,EAAGd,EAAGuS,EAAMC,EAAOnS,EAAGoS,EAAIC,EAAKC,EAAMC,EAAMjC,EAAIrQ,EAAGuS,EAAIC,EAAIC,EAAKC,EAAIC,EAC7EpG,EAAOtJ,EAAEuJ,YACT4E,EAAOnO,EAAExC,GAAKG,EAAEH,EAAI,GAAK,EACzB4L,EAAKpJ,EAAE5D,EACPiN,EAAK1L,EAAEvB,EAGT,IAAK4D,EAAExC,EAAG,OAAO,IAAI8L,EAAKtJ,GAC1B,IAAKrC,EAAEH,EAAG,MAAMiJ,MAAM8B,EAAe,oBASrC,IAPAlM,EAAI2D,EAAE3D,EAAIsB,EAAEtB,EACZoT,EAAKpG,EAAGlL,OACRoR,EAAKnG,EAAGjL,OAER+Q,GADApS,EAAI,IAAIwM,EAAK6E,IACN/R,EAAI,GAGNmB,EAAI,EAAG8L,EAAG9L,KAAO6L,EAAG7L,IAAM,MAAQA,EAWvC,GAVI8L,EAAG9L,IAAM6L,EAAG7L,IAAM,MAAMlB,GAG1B+Q,EADQ,MAAN5D,EACGA,EAAKF,EAAKrB,UACN0C,EACJnB,GAAM4B,EAAkBpL,GAAKoL,EAAkBzN,IAAM,EAErD6L,GAGE,EAAG,OAAO,IAAIF,EAAK,GAO5B,GAJA8D,EAAKA,EAhhCI,EAghCY,EAAI,EACzB7P,EAAI,EAGM,GAANkS,EAMF,IALAhT,EAAI,EACJ4M,EAAKA,EAAG,GACR+D,KAGQ7P,EAAIgS,GAAM9S,IAAM2Q,IAAM7P,IAC5BR,EAAIN,EAAIqM,GAAQM,EAAG7L,IAAM,GACzB2R,EAAG3R,GAAKR,EAAIsM,EAAK,EACjB5M,EAAIM,EAAIsM,EAAK,MAIV,CAiBL,KAdA5M,EAAIqM,GAAQO,EAAG,GAAK,GAAK,GAEjB,IACNA,EAAKsF,EAAgBtF,EAAI5M,GACzB2M,EAAKuF,EAAgBvF,EAAI3M,GACzBgT,EAAKpG,EAAGlL,OACRoR,EAAKnG,EAAGjL,QAGVmR,EAAKG,EAELL,GADAD,EAAM/F,EAAGvG,MAAM,EAAG4M,IACPtR,OAGJiR,EAAOK,GAAKN,EAAIC,KAAU,GAEjCM,EAAKrG,EAAGxG,SACL8G,QAAQ,GACX6F,EAAMnG,EAAG,GAELA,EAAG,IAAMP,EAAO,KAAK0G,EAEzB,GACE/S,EAAI,GAGJ6N,EAAMuE,EAAQxF,EAAI8F,EAAKM,EAAIL,IAGjB,GAGRC,EAAOF,EAAI,GACPM,GAAML,IAAMC,EAAOA,EAAOvG,GAAQqG,EAAI,IAAM,KAGhD1S,EAAI4S,EAAOG,EAAM,GAUT,GACF/S,GAAKqM,IAAMrM,EAAIqM,EAAO,GAWf,IAHXwB,EAAMuE,EALNG,EAAOL,EAAgBtF,EAAI5M,GAKP0S,EAJpBF,EAAQD,EAAK7Q,OACbiR,EAAOD,EAAIhR,WAOT1B,IAGA6G,EAAS0L,EAAMS,EAAKR,EAAQS,EAAKrG,EAAI4F,MAO9B,GAALxS,IAAQ6N,EAAM7N,EAAI,GACtBuS,EAAO3F,EAAGxG,UAGZoM,EAAQD,EAAK7Q,QACDiR,GAAMJ,EAAKrF,QAAQ,GAG/BrG,EAAS6L,EAAKH,EAAMI,IAGR,GAAR9E,IAIFA,EAAMuE,EAAQxF,EAAI8F,EAAKM,EAHvBL,EAAOD,EAAIhR,SAMD,IACR1B,IAGA6G,EAAS6L,EAAKM,EAAKL,EAAOM,EAAKrG,EAAI+F,IAIvCA,EAAOD,EAAIhR,QACM,IAARmM,IACT7N,IACA0S,EAAM,CAAC,IAITD,EAAG3R,KAAOd,EAGN6N,GAAO6E,EAAI,GACbA,EAAIC,KAAUhG,EAAGkG,IAAO,GAExBH,EAAM,CAAC/F,EAAGkG,IACVF,EAAO,UAGDE,IAAOC,QAAiB,IAAXJ,EAAI,KAAkB/B,IAC/C,CAOA,OAJK8B,EAAG,IAAIA,EAAGxB,QAEf5Q,EAAET,EAAIA,EAECgH,EAAMvG,EAAG6N,EAAKnB,EAAK4B,EAAkBtO,GAAK,EAAI0M,EACvD,CACF,CAhOc,GAyPd,SAASuD,EAAI/M,EAAGoN,GACd,IAAIuC,EAAoB/G,EAAKgH,EAAK7S,EAAGwP,EACnChP,EAAI,EACJd,EAAI,EACJ6M,EAAOtJ,EAAEuJ,YACTC,EAAKF,EAAKrB,UAEZ,GAAImD,EAAkBpL,GAAK,GAAI,MAAMyG,MAAMgC,EAAqB2C,EAAkBpL,IAGlF,IAAKA,EAAExC,EAAG,OAAO,IAAI8L,EAAKxB,GAW1B,IATU,MAANsF,GACF9E,GAAW,EACXiE,EAAM/C,GAEN+C,EAAMa,EAGRrQ,EAAI,IAAIuM,EAAK,QAENtJ,EAAEvB,MAAM+M,IAAI,KACjBxL,EAAIA,EAAE6M,MAAM9P,GACZN,GAAK,EASP,IAJA8P,GADQ/N,KAAK6N,IAAI1D,EAAQ,EAAGlM,IAAM+B,KAAK6J,KAAO,EAAI,EAAI,EAEtDsH,EAAc/G,EAAMgH,EAAM,IAAItG,EAAKxB,GACnCwB,EAAKrB,UAAYsE,IAER,CAKP,GAJA3D,EAAMvF,EAAMuF,EAAIiE,MAAM7M,GAAIuM,GAC1BoD,EAAcA,EAAY9C,QAAQtP,GAG9BwM,GAFJhN,EAAI6S,EAAIzC,KAAKrC,EAAOlC,EAAK+G,EAAapD,KAEjBnQ,GAAGyG,MAAM,EAAG0J,KAASxC,EAAe6F,EAAIxT,GAAGyG,MAAM,EAAG0J,GAAM,CAC7E,KAAO9P,KAAKmT,EAAMvM,EAAMuM,EAAI/C,MAAM+C,GAAMrD,GAExC,OADAjD,EAAKrB,UAAYuB,EACJ,MAAN4D,GAAc9E,GAAW,EAAMjF,EAAMuM,EAAKpG,IAAOoG,CAC1D,CAEAA,EAAM7S,CACR,CACF,CAIA,SAASqO,EAAkBpL,GAKzB,IAJA,IAAI3D,EAzuCO,EAyuCH2D,EAAE3D,EACR4C,EAAIe,EAAE5D,EAAE,GAGH6C,GAAK,GAAIA,GAAK,GAAI5C,IACzB,OAAOA,CACT,CAGA,SAASwT,EAAQvG,EAAM8D,EAAI5D,GAEzB,GAAI4D,EAAK9D,EAAKjB,KAAK+E,KAMjB,MAFA9E,GAAW,EACPkB,IAAIF,EAAKrB,UAAYuB,GACnB/C,MAAM8B,EAAe,iCAG7B,OAAOlF,EAAM,IAAIiG,EAAKA,EAAKjB,MAAO+E,EACpC,CAGA,SAASjD,EAAc1N,GAErB,IADA,IAAIqT,EAAK,GACFrT,KAAMqT,GAAM,IACnB,OAAOA,CACT,CAUA,SAAStD,EAAG7O,EAAGyP,GACb,IAAIjR,EAAG4T,EAAIJ,EAAatT,EAAG2T,EAAWJ,EAAK7S,EAAGwP,EAAK0D,EACjDrT,EAAI,EAEJoD,EAAIrC,EACJyL,EAAKpJ,EAAE5D,EACPkN,EAAOtJ,EAAEuJ,YACTC,EAAKF,EAAKrB,UAIZ,GAAIjI,EAAExC,EAAI,EAAG,MAAMiJ,MAAM8B,GAAgBvI,EAAExC,EAAI,MAAQ,cAGvD,GAAIwC,EAAEkL,GAAGpD,GAAM,OAAO,IAAIwB,EAAK,GAS/B,GAPU,MAAN8D,GACF9E,GAAW,EACXiE,EAAM/C,GAEN+C,EAAMa,EAGJpN,EAAEkL,GAAG,IAEP,OADU,MAANkC,IAAY9E,GAAW,GACpBuH,EAAQvG,EAAMiD,GASvB,GANAA,GAzBU,GA0BVjD,EAAKrB,UAAYsE,EAEjBwD,GADA5T,EAAI4N,EAAeX,IACZ8G,OAAO,GACd7T,EAAI+O,EAAkBpL,KAElBxB,KAAKC,IAAIpC,GAAK,OAqChB,OAJAU,EAAI8S,EAAQvG,EAAMiD,EAAM,EAAG/C,GAAIqD,MAAMxQ,EAAI,IACzC2D,EAAIwM,EAAG,IAAIlD,EAAKyG,EAAK,IAAM5T,EAAE0G,MAAM,IAAK0J,EAjEhC,IAiE6CY,KAAKpQ,GAE1DuM,EAAKrB,UAAYuB,EACJ,MAAN4D,GAAc9E,GAAW,EAAMjF,EAAMrD,EAAGwJ,IAAOxJ,EAxBtD,KAAO+P,EAAK,GAAW,GAANA,GAAiB,GAANA,GAAW5T,EAAE+T,OAAO,GAAK,GAGnDH,GADA5T,EAAI4N,GADJ/J,EAAIA,EAAE6M,MAAMlP,IACSvB,IACd8T,OAAO,GACdtT,IAgCJ,IA7BEP,EAAI+O,EAAkBpL,GAElB+P,EAAK,GACP/P,EAAI,IAAIsJ,EAAK,KAAOnN,GACpBE,KAEA2D,EAAI,IAAIsJ,EAAKyG,EAAK,IAAM5T,EAAE0G,MAAM,IAmBpC+M,EAAMI,EAAYhQ,EAAI8K,EAAO9K,EAAEyM,MAAM3E,GAAM9H,EAAEmN,KAAKrF,GAAMyE,GACxD0D,EAAK5M,EAAMrD,EAAE6M,MAAM7M,GAAIuM,GACvBoD,EAAc,IAEL,CAIP,GAHAK,EAAY3M,EAAM2M,EAAUnD,MAAMoD,GAAK1D,GAGnCxC,GAFJhN,EAAI6S,EAAIzC,KAAKrC,EAAOkF,EAAW,IAAI1G,EAAKqG,GAAcpD,KAEjCnQ,GAAGyG,MAAM,EAAG0J,KAASxC,EAAe6F,EAAIxT,GAAGyG,MAAM,EAAG0J,GAQvE,OAPAqD,EAAMA,EAAI/C,MAAM,GAGN,IAANxQ,IAASuT,EAAMA,EAAIzC,KAAK0C,EAAQvG,EAAMiD,EAAM,EAAG/C,GAAIqD,MAAMxQ,EAAI,MACjEuT,EAAM9E,EAAO8E,EAAK,IAAItG,EAAK1M,GAAI2P,GAE/BjD,EAAKrB,UAAYuB,EACJ,MAAN4D,GAAc9E,GAAW,EAAMjF,EAAMuM,EAAKpG,IAAOoG,EAG1DA,EAAM7S,EACN4S,GAAe,CACjB,CACF,CAMA,SAASQ,EAAanQ,EAAGkK,GACvB,IAAI7N,EAAGkB,EAAG4L,EAmBV,KAhBK9M,EAAI6N,EAAI5E,QAAQ,OAAS,IAAG4E,EAAMA,EAAI5K,QAAQ,IAAK,MAGnD/B,EAAI2M,EAAIkG,OAAO,OAAS,GAGvB/T,EAAI,IAAGA,EAAIkB,GACflB,IAAM6N,EAAIrH,MAAMtF,EAAI,GACpB2M,EAAMA,EAAIvJ,UAAU,EAAGpD,IACdlB,EAAI,IAGbA,EAAI6N,EAAI/L,QAILZ,EAAI,EAAyB,KAAtB2M,EAAImG,WAAW9S,MAAcA,EAGzC,IAAK4L,EAAMe,EAAI/L,OAAoC,KAA5B+L,EAAImG,WAAWlH,EAAM,MAAcA,EAG1D,GAFAe,EAAMA,EAAIrH,MAAMtF,EAAG4L,GAEV,CAaP,GAZAA,GAAO5L,EACPlB,EAAIA,EAAIkB,EAAI,EACZyC,EAAE3D,EAAIqM,EAAUrM,EAv5CP,GAw5CT2D,EAAE5D,EAAI,GAMNmB,GAAKlB,EAAI,GA95CA,EA+5CLA,EAAI,IAAGkB,GA/5CF,GAi6CLA,EAAI4L,EAAK,CAEX,IADI5L,GAAGyC,EAAE5D,EAAEsN,MAAMQ,EAAIrH,MAAM,EAAGtF,IACzB4L,GAn6CE,EAm6Ce5L,EAAI4L,GAAMnJ,EAAE5D,EAAEsN,MAAMQ,EAAIrH,MAAMtF,EAAGA,GAn6ChD,IAq6CPA,EAr6CO,GAo6CP2M,EAAMA,EAAIrH,MAAMtF,IACGY,MACrB,MACEZ,GAAK4L,EAGP,KAAO5L,KAAM2M,GAAO,IAGpB,GAFAlK,EAAE5D,EAAEsN,MAAMQ,GAEN5B,IAAatI,EAAE3D,EAAI2M,GAAShJ,EAAE3D,GAAK2M,GAAQ,MAAMvC,MAAMgC,EAAqBpM,EAClF,MAGE2D,EAAExC,EAAI,EACNwC,EAAE3D,EAAI,EACN2D,EAAE5D,EAAI,CAAC,GAGT,OAAO4D,CACT,CAMC,SAASqD,EAAMrD,EAAGoN,EAAIS,GACrB,IAAItQ,EAAGgN,EAAG9N,EAAGG,EAAG0T,EAAIC,EAAStR,EAAGuR,EAC9BpH,EAAKpJ,EAAE5D,EAWT,IAAKQ,EAAI,EAAGH,EAAI2M,EAAG,GAAI3M,GAAK,GAAIA,GAAK,GAAIG,IAIzC,IAHAW,EAAI6P,EAAKxQ,GAGD,EACNW,GA/8CS,EAg9CTgN,EAAI6C,EACJnO,EAAImK,EAAGoH,EAAM,OACR,CAGL,IAFAA,EAAMhS,KAAKQ,MAAMzB,EAAI,GAn9CZ,MAo9CTd,EAAI2M,EAAGjL,QACO,OAAO6B,EAIrB,IAHAf,EAAIxC,EAAI2M,EAAGoH,GAGN5T,EAAI,EAAGH,GAAK,GAAIA,GAAK,GAAIG,IAO9B2N,GAJAhN,GA59CS,KAg+CUX,CACrB,CAwBA,QAtBW,IAAPiR,IAIFyC,EAAKrR,GAHLxC,EAAIkM,EAAQ,GAAI/L,EAAI2N,EAAI,IAGX,GAAK,EAGlBgG,EAAUnD,EAAK,QAAqB,IAAhBhE,EAAGoH,EAAM,IAAiBvR,EAAIxC,EAMlD8T,EAAU1C,EAAK,GACVyC,GAAMC,KAAmB,GAAN1C,GAAWA,IAAO7N,EAAExC,EAAI,EAAI,EAAI,IACpD8S,EAAK,GAAW,GAANA,IAAkB,GAANzC,GAAW0C,GAAiB,GAAN1C,IAG1CtQ,EAAI,EAAIgN,EAAI,EAAItL,EAAI0J,EAAQ,GAAI/L,EAAI2N,GAAK,EAAInB,EAAGoH,EAAM,IAAM,GAAM,GAClE3C,IAAO7N,EAAExC,EAAI,EAAI,EAAI,KAGzB4P,EAAK,IAAMhE,EAAG,GAkBhB,OAjBImH,GACF9T,EAAI2O,EAAkBpL,GACtBoJ,EAAGjL,OAAS,EAGZiP,EAAKA,EAAK3Q,EAAI,EAGd2M,EAAG,GAAKT,EAAQ,IAlgDT,EAkgDyByE,EAlgDzB,MAmgDPpN,EAAE3D,EAAIqM,GAAW0E,EAngDV,IAmgD4B,IAEnChE,EAAGjL,OAAS,EAGZiL,EAAG,GAAKpJ,EAAE3D,EAAI2D,EAAExC,EAAI,GAGfwC,EAiBT,GAbS,GAALzC,GACF6L,EAAGjL,OAASqS,EACZ/T,EAAI,EACJ+T,MAEApH,EAAGjL,OAASqS,EAAM,EAClB/T,EAAIkM,EAAQ,GArhDH,EAqhDkBpL,GAI3B6L,EAAGoH,GAAOjG,EAAI,GAAKtL,EAAI0J,EAAQ,GAAI/L,EAAI2N,GAAK5B,EAAQ,GAAI4B,GAAK,GAAK9N,EAAI,GAGpE8T,EACF,OAAS,CAGP,GAAW,GAAPC,EAAU,EACPpH,EAAG,IAAM3M,IAAMqM,IAClBM,EAAG,GAAK,IACNpJ,EAAE3D,GAGN,KACF,CAEE,GADA+M,EAAGoH,IAAQ/T,EACP2M,EAAGoH,IAAQ1H,EAAM,MACrBM,EAAGoH,KAAS,EACZ/T,EAAI,CAER,CAIF,IAAKc,EAAI6L,EAAGjL,OAAoB,IAAZiL,IAAK7L,IAAW6L,EAAGQ,MAEvC,GAAItB,IAAatI,EAAE3D,EAAI2M,GAAShJ,EAAE3D,GAAK2M,GACrC,MAAMvC,MAAMgC,EAAqB2C,EAAkBpL,IAGrD,OAAOA,CACT,CAGA,SAASsD,EAAStD,EAAGrC,GACnB,IAAIvB,EAAGC,EAAGkB,EAAGgN,EAAG9N,EAAG0M,EAAKC,EAAIqH,EAAIC,EAAMrH,EACpCC,EAAOtJ,EAAEuJ,YACTC,EAAKF,EAAKrB,UAIZ,IAAKjI,EAAExC,IAAMG,EAAEH,EAGb,OAFIG,EAAEH,EAAGG,EAAEH,GAAKG,EAAEH,EACbG,EAAI,IAAI2L,EAAKtJ,GACXsI,EAAWjF,EAAM1F,EAAG6L,GAAM7L,EAcnC,GAXAyL,EAAKpJ,EAAE5D,EACPiN,EAAK1L,EAAEvB,EAIPC,EAAIsB,EAAEtB,EACNoU,EAAKzQ,EAAE3D,EACP+M,EAAKA,EAAGvG,QACRpG,EAAIgU,EAAKpU,EAGF,CAyBL,KAxBAqU,EAAOjU,EAAI,IAGTL,EAAIgN,EACJ3M,GAAKA,EACL0M,EAAME,EAAGlL,SAET/B,EAAIiN,EACJhN,EAAIoU,EACJtH,EAAMC,EAAGjL,QAQP1B,GAFJc,EAAIiB,KAAKsL,IAAItL,KAAKQ,KAAKwK,EAnmDd,GAmmD8BL,GAAO,KAG5C1M,EAAIc,EACJnB,EAAE+B,OAAS,GAIb/B,EAAEqN,UACGlM,EAAId,EAAGc,KAAMnB,EAAEsN,KAAK,GACzBtN,EAAEqN,SAGJ,KAAO,CASL,KAHAiH,GAFAnT,EAAI6L,EAAGjL,SACPgL,EAAME,EAAGlL,WAECgL,EAAM5L,GAEXA,EAAI,EAAGA,EAAI4L,EAAK5L,IACnB,GAAI6L,EAAG7L,IAAM8L,EAAG9L,GAAI,CAClBmT,EAAOtH,EAAG7L,GAAK8L,EAAG9L,GAClB,KACF,CAGFd,EAAI,CACN,CAaA,IAXIiU,IACFtU,EAAIgN,EACJA,EAAKC,EACLA,EAAKjN,EACLuB,EAAEH,GAAKG,EAAEH,GAGX2L,EAAMC,EAAGjL,OAIJZ,EAAI8L,EAAGlL,OAASgL,EAAK5L,EAAI,IAAKA,EAAG6L,EAAGD,KAAS,EAGlD,IAAK5L,EAAI8L,EAAGlL,OAAQZ,EAAId,GAAI,CAC1B,GAAI2M,IAAK7L,GAAK8L,EAAG9L,GAAI,CACnB,IAAKgN,EAAIhN,EAAGgN,GAAiB,IAAZnB,IAAKmB,IAAWnB,EAAGmB,GAAKzB,EAAO,IAC9CM,EAAGmB,GACLnB,EAAG7L,IAAMuL,CACX,CAEAM,EAAG7L,IAAM8L,EAAG9L,EACd,CAGA,KAAqB,IAAd6L,IAAKD,IAAaC,EAAGQ,MAG5B,KAAiB,IAAVR,EAAG,GAAUA,EAAGsE,UAAWrR,EAGlC,OAAK+M,EAAG,IAERzL,EAAEvB,EAAIgN,EACNzL,EAAEtB,EAAIA,EAGCiM,EAAWjF,EAAM1F,EAAG6L,GAAM7L,GANd,IAAI2L,EAAK,EAO9B,CAGA,SAAStH,EAAShC,EAAG2Q,EAAOvD,GAC1B,IAAI3Q,EACFJ,EAAI+O,EAAkBpL,GACtBkK,EAAMH,EAAe/J,EAAE5D,GACvB+M,EAAMe,EAAI/L,OAwBZ,OAtBIwS,GACEvD,IAAO3Q,EAAI2Q,EAAKjE,GAAO,EACzBe,EAAMA,EAAIgG,OAAO,GAAK,IAAMhG,EAAIrH,MAAM,GAAKsH,EAAc1N,GAChD0M,EAAM,IACfe,EAAMA,EAAIgG,OAAO,GAAK,IAAMhG,EAAIrH,MAAM,IAGxCqH,EAAMA,GAAO7N,EAAI,EAAI,IAAM,MAAQA,GAC1BA,EAAI,GACb6N,EAAM,KAAOC,GAAe9N,EAAI,GAAK6N,EACjCkD,IAAO3Q,EAAI2Q,EAAKjE,GAAO,IAAGe,GAAOC,EAAc1N,KAC1CJ,GAAK8M,GACde,GAAOC,EAAc9N,EAAI,EAAI8M,GACzBiE,IAAO3Q,EAAI2Q,EAAK/Q,EAAI,GAAK,IAAG6N,EAAMA,EAAM,IAAMC,EAAc1N,OAE3DA,EAAIJ,EAAI,GAAK8M,IAAKe,EAAMA,EAAIrH,MAAM,EAAGpG,GAAK,IAAMyN,EAAIrH,MAAMpG,IAC3D2Q,IAAO3Q,EAAI2Q,EAAKjE,GAAO,IACrB9M,EAAI,IAAM8M,IAAKe,GAAO,KAC1BA,GAAOC,EAAc1N,KAIlBuD,EAAExC,EAAI,EAAI,IAAM0M,EAAMA,CAC/B,CAIA,SAASoE,EAASsC,EAAKzH,GACrB,GAAIyH,EAAIzS,OAASgL,EAEf,OADAyH,EAAIzS,OAASgL,GACN,CAEX,CAgIA,SAAS0H,EAAOC,GACd,IAAKA,GAAsB,kBAARA,EACjB,MAAMrK,MAAM8B,EAAe,mBAE7B,IAAIhL,EAAGV,EAAGG,EACR+T,EAAK,CACH,YAAa,EAAGhJ,EAChB,WAAY,EAAG,EACf,YAAY,IAAQ,EACpB,WAAY,EAAG,KAGnB,IAAKxK,EAAI,EAAGA,EAAIwT,EAAG5S,OAAQZ,GAAK,EAC9B,QAA6B,KAAxBP,EAAI8T,EAAIjU,EAAIkU,EAAGxT,KAAiB,CACnC,KAAImL,EAAU1L,KAAOA,GAAKA,GAAK+T,EAAGxT,EAAI,IAAMP,GAAK+T,EAAGxT,EAAI,IACnD,MAAMkJ,MAAM+B,EAAkB3L,EAAI,KAAOG,GADcmD,KAAKtD,GAAKG,CAExE,CAGF,QAA8B,KAAzBA,EAAI8T,EAAIjU,EAAI,SAAqB,CAClC,GAAIG,GAAKwB,KAAK6J,KACT,MAAM5B,MAAM+B,EAAkB3L,EAAI,KAAOG,GAD1BmD,KAAKtD,GAAK,IAAIsD,KAAKnD,EAE3C,CAEA,OAAOmD,IACT,CAIA6H,EA5IA,SAASlJ,EAAMgS,GACb,IAAIvT,EAAGV,EAAGkU,EASV,SAAS/I,EAAQgJ,GACf,IAAIhR,EAAIG,KAGR,KAAMH,aAAagI,GAAU,OAAO,IAAIA,EAAQgJ,GAOhD,GAHAhR,EAAEuJ,YAAcvB,EAGZgJ,aAAiBhJ,EAInB,OAHAhI,EAAExC,EAAIwT,EAAMxT,EACZwC,EAAE3D,EAAI2U,EAAM3U,OACZ2D,EAAE5D,GAAK4U,EAAQA,EAAM5U,GAAK4U,EAAMnO,QAAUmO,GAI5C,GAAqB,kBAAVA,EAAoB,CAG7B,GAAY,EAARA,IAAc,EAChB,MAAMvK,MAAM+B,EAAkBwI,GAGhC,GAAIA,EAAQ,EACVhR,EAAExC,EAAI,MACD,MAAIwT,EAAQ,GAOjB,OAHAhR,EAAExC,EAAI,EACNwC,EAAE3D,EAAI,OACN2D,EAAE5D,EAAI,CAAC,IALP4U,GAASA,EACThR,EAAExC,GAAK,CAMT,CAGA,OAAIwT,MAAYA,GAASA,EAAQ,KAC/BhR,EAAE3D,EAAI,OACN2D,EAAE5D,EAAI,CAAC4U,KAIFb,EAAanQ,EAAGgR,EAAMhP,WAC/B,CAAO,GAAqB,kBAAVgP,EAChB,MAAMvK,MAAM+B,EAAkBwI,GAWhC,GAP4B,KAAxBA,EAAMX,WAAW,IACnBW,EAAQA,EAAMnO,MAAM,GACpB7C,EAAExC,GAAK,GAEPwC,EAAExC,EAAI,GAGJqL,EAAUpI,KAAKuQ,GACd,MAAMvK,MAAM+B,EAAkBwI,GADRb,EAAanQ,EAAGgR,EAE7C,CAkBA,GAhBAhJ,EAAQ3H,UAAY4I,EAEpBjB,EAAQiJ,SAAW,EACnBjJ,EAAQkJ,WAAa,EACrBlJ,EAAQmJ,WAAa,EACrBnJ,EAAQoJ,YAAc,EACtBpJ,EAAQqJ,cAAgB,EACxBrJ,EAAQsJ,gBAAkB,EAC1BtJ,EAAQuJ,gBAAkB,EAC1BvJ,EAAQwJ,gBAAkB,EAC1BxJ,EAAQyJ,iBAAmB,EAE3BzJ,EAAQlJ,MAAQA,EAChBkJ,EAAQ6I,OAAS7I,EAAQzF,IAAMsO,OAEnB,IAARC,IAAgBA,EAAM,CAAC,GACvBA,EAEF,IADAC,EAAK,CAAC,YAAa,WAAY,WAAY,WAAY,QAClDxT,EAAI,EAAGA,EAAIwT,EAAG5S,QAAc2S,EAAIY,eAAe7U,EAAIkU,EAAGxT,QAAOuT,EAAIjU,GAAKsD,KAAKtD,IAKlF,OAFAmL,EAAQ6I,OAAOC,GAER9I,CACT,CA6CUlJ,CAAMkJ,GAEhBA,EAAiB,QAAIA,EAAQA,QAAUA,EAGvCF,EAAM,IAAIE,EAAQ,QAUf,KAFD2J,EAAAA,WACE,OAAO3J,CACR,+BAeJ,CA59DA,0BCCD,IAAI4J,EAAMC,OAAOxR,UAAUqR,eACvBI,EAAS,IASb,SAASC,IAAU,CA4BnB,SAASC,EAAGC,EAAIC,EAASC,GACvBhS,KAAK8R,GAAKA,EACV9R,KAAK+R,QAAUA,EACf/R,KAAKgS,KAAOA,IAAQ,CACtB,CAaA,SAASC,EAAYC,EAASC,EAAOL,EAAIC,EAASC,GAChD,GAAkB,oBAAPF,EACT,MAAM,IAAIM,UAAU,mCAGtB,IAAIC,EAAW,IAAIR,EAAGC,EAAIC,GAAWG,EAASF,GAC1CM,EAAMX,EAASA,EAASQ,EAAQA,EAMpC,OAJKD,EAAQK,QAAQD,GACXJ,EAAQK,QAAQD,GAAKR,GAC1BI,EAAQK,QAAQD,GAAO,CAACJ,EAAQK,QAAQD,GAAMD,GADhBH,EAAQK,QAAQD,GAAK/I,KAAK8I,IADlCH,EAAQK,QAAQD,GAAOD,EAAUH,EAAQM,gBAI7DN,CACT,CASA,SAASO,EAAWP,EAASI,GACI,MAAzBJ,EAAQM,aAAoBN,EAAQK,QAAU,IAAIX,SAC5CM,EAAQK,QAAQD,EAC9B,CASA,SAASI,IACP1S,KAAKuS,QAAU,IAAIX,EACnB5R,KAAKwS,aAAe,CACtB,CAzEId,OAAOiB,SACTf,EAAO1R,UAAYwR,OAAOiB,OAAO,OAM5B,IAAIf,GAASgB,YAAWjB,GAAS,IA2ExCe,EAAaxS,UAAU2S,WAAa,WAClC,IACIC,EACApV,EAFAqV,EAAQ,GAIZ,GAA0B,IAAtB/S,KAAKwS,aAAoB,OAAOO,EAEpC,IAAKrV,KAASoV,EAAS9S,KAAKuS,QACtBd,EAAIvK,KAAK4L,EAAQpV,IAAOqV,EAAMxJ,KAAKoI,EAASjU,EAAKgF,MAAM,GAAKhF,GAGlE,OAAIgU,OAAOsB,sBACFD,EAAM3N,OAAOsM,OAAOsB,sBAAsBF,IAG5CC,CACT,EASAL,EAAaxS,UAAU+S,UAAY,SAAmBd,GACpD,IAAIG,EAAMX,EAASA,EAASQ,EAAQA,EAChCe,EAAWlT,KAAKuS,QAAQD,GAE5B,IAAKY,EAAU,MAAO,GACtB,GAAIA,EAASpB,GAAI,MAAO,CAACoB,EAASpB,IAElC,IAAK,IAAI1U,EAAI,EAAGb,EAAI2W,EAASlV,OAAQmV,EAAK,IAAIlV,MAAM1B,GAAIa,EAAIb,EAAGa,IAC7D+V,EAAG/V,GAAK8V,EAAS9V,GAAG0U,GAGtB,OAAOqB,CACT,EASAT,EAAaxS,UAAUkT,cAAgB,SAAuBjB,GAC5D,IAAIG,EAAMX,EAASA,EAASQ,EAAQA,EAChCc,EAAYjT,KAAKuS,QAAQD,GAE7B,OAAKW,EACDA,EAAUnB,GAAW,EAClBmB,EAAUjV,OAFM,CAGzB,EASA0U,EAAaxS,UAAUmT,KAAO,SAAclB,EAAOmB,EAAIC,EAAIC,EAAIC,EAAIC,GACjE,IAAIpB,EAAMX,EAASA,EAASQ,EAAQA,EAEpC,IAAKnS,KAAKuS,QAAQD,GAAM,OAAO,EAE/B,IAEI/S,EACAnC,EAHA6V,EAAYjT,KAAKuS,QAAQD,GACzBtJ,EAAMxJ,UAAUxB,OAIpB,GAAIiV,EAAUnB,GAAI,CAGhB,OAFImB,EAAUjB,MAAMhS,KAAK2T,eAAexB,EAAOc,EAAUnB,QAAI8B,GAAW,GAEhE5K,GACN,KAAK,EAAG,OAAOiK,EAAUnB,GAAG5K,KAAK+L,EAAUlB,UAAU,EACrD,KAAK,EAAG,OAAOkB,EAAUnB,GAAG5K,KAAK+L,EAAUlB,QAASuB,IAAK,EACzD,KAAK,EAAG,OAAOL,EAAUnB,GAAG5K,KAAK+L,EAAUlB,QAASuB,EAAIC,IAAK,EAC7D,KAAK,EAAG,OAAON,EAAUnB,GAAG5K,KAAK+L,EAAUlB,QAASuB,EAAIC,EAAIC,IAAK,EACjE,KAAK,EAAG,OAAOP,EAAUnB,GAAG5K,KAAK+L,EAAUlB,QAASuB,EAAIC,EAAIC,EAAIC,IAAK,EACrE,KAAK,EAAG,OAAOR,EAAUnB,GAAG5K,KAAK+L,EAAUlB,QAASuB,EAAIC,EAAIC,EAAIC,EAAIC,IAAK,EAG3E,IAAKtW,EAAI,EAAGmC,EAAO,IAAItB,MAAM+K,EAAK,GAAI5L,EAAI4L,EAAK5L,IAC7CmC,EAAKnC,EAAI,GAAKoC,UAAUpC,GAG1B6V,EAAUnB,GAAGrP,MAAMwQ,EAAUlB,QAASxS,EACxC,KAAO,CACL,IACI6K,EADApM,EAASiV,EAAUjV,OAGvB,IAAKZ,EAAI,EAAGA,EAAIY,EAAQZ,IAGtB,OAFI6V,EAAU7V,GAAG4U,MAAMhS,KAAK2T,eAAexB,EAAOc,EAAU7V,GAAG0U,QAAI8B,GAAW,GAEtE5K,GACN,KAAK,EAAGiK,EAAU7V,GAAG0U,GAAG5K,KAAK+L,EAAU7V,GAAG2U,SAAU,MACpD,KAAK,EAAGkB,EAAU7V,GAAG0U,GAAG5K,KAAK+L,EAAU7V,GAAG2U,QAASuB,GAAK,MACxD,KAAK,EAAGL,EAAU7V,GAAG0U,GAAG5K,KAAK+L,EAAU7V,GAAG2U,QAASuB,EAAIC,GAAK,MAC5D,KAAK,EAAGN,EAAU7V,GAAG0U,GAAG5K,KAAK+L,EAAU7V,GAAG2U,QAASuB,EAAIC,EAAIC,GAAK,MAChE,QACE,IAAKjU,EAAM,IAAK6K,EAAI,EAAG7K,EAAO,IAAItB,MAAM+K,EAAK,GAAIoB,EAAIpB,EAAKoB,IACxD7K,EAAK6K,EAAI,GAAK5K,UAAU4K,GAG1B6I,EAAU7V,GAAG0U,GAAGrP,MAAMwQ,EAAU7V,GAAG2U,QAASxS,GAGpD,CAEA,OAAO,CACT,EAWAmT,EAAaxS,UAAU2T,GAAK,SAAY1B,EAAOL,EAAIC,GACjD,OAAOE,EAAYjS,KAAMmS,EAAOL,EAAIC,GAAS,EAC/C,EAWAW,EAAaxS,UAAU8R,KAAO,SAAcG,EAAOL,EAAIC,GACrD,OAAOE,EAAYjS,KAAMmS,EAAOL,EAAIC,GAAS,EAC/C,EAYAW,EAAaxS,UAAUyT,eAAiB,SAAwBxB,EAAOL,EAAIC,EAASC,GAClF,IAAIM,EAAMX,EAASA,EAASQ,EAAQA,EAEpC,IAAKnS,KAAKuS,QAAQD,GAAM,OAAOtS,KAC/B,IAAK8R,EAEH,OADAW,EAAWzS,KAAMsS,GACVtS,KAGT,IAAIiT,EAAYjT,KAAKuS,QAAQD,GAE7B,GAAIW,EAAUnB,GAEVmB,EAAUnB,KAAOA,GACfE,IAAQiB,EAAUjB,MAClBD,GAAWkB,EAAUlB,UAAYA,GAEnCU,EAAWzS,KAAMsS,OAEd,CACL,IAAK,IAAIlV,EAAI,EAAG0V,EAAS,GAAI9U,EAASiV,EAAUjV,OAAQZ,EAAIY,EAAQZ,KAEhE6V,EAAU7V,GAAG0U,KAAOA,GACnBE,IAASiB,EAAU7V,GAAG4U,MACtBD,GAAWkB,EAAU7V,GAAG2U,UAAYA,IAErCe,EAAOvJ,KAAK0J,EAAU7V,IAOtB0V,EAAO9U,OAAQgC,KAAKuS,QAAQD,GAAyB,IAAlBQ,EAAO9U,OAAe8U,EAAO,GAAKA,EACpEL,EAAWzS,KAAMsS,EACxB,CAEA,OAAOtS,IACT,EASA0S,EAAaxS,UAAU4T,mBAAqB,SAA4B3B,GACtE,IAAIG,EAUJ,OARIH,GACFG,EAAMX,EAASA,EAASQ,EAAQA,EAC5BnS,KAAKuS,QAAQD,IAAMG,EAAWzS,KAAMsS,KAExCtS,KAAKuS,QAAU,IAAIX,EACnB5R,KAAKwS,aAAe,GAGfxS,IACT,EAKA0S,EAAaxS,UAAU6T,IAAMrB,EAAaxS,UAAUyT,eACpDjB,EAAaxS,UAAU+R,YAAcS,EAAaxS,UAAU2T,GAK5DnB,EAAasB,SAAWrC,EAKxBe,EAAaA,aAAeA,EAM1BxV,EAAOC,QAAUuV,8BC5UnB,IAAIuB,EAAUC,EAAQ,MAMlBC,EAAgB,CAClBC,mBAAmB,EACnBC,aAAa,EACbC,cAAc,EACdC,cAAc,EACdC,aAAa,EACbC,iBAAiB,EACjBC,0BAA0B,EAC1BC,0BAA0B,EAC1BC,QAAQ,EACRC,WAAW,EACX5X,MAAM,GAEJ6X,EAAgB,CAClBpX,MAAM,EACNM,QAAQ,EACRkC,WAAW,EACX6U,QAAQ,EACRC,QAAQ,EACRxV,WAAW,EACXyV,OAAO,GASLC,EAAe,CACjB,UAAY,EACZxG,SAAS,EACT6F,cAAc,EACdC,aAAa,EACbK,WAAW,EACX5X,MAAM,GAEJkY,EAAe,CAAC,EAIpB,SAASC,EAAWC,GAElB,OAAIpB,EAAQqB,OAAOD,GACVH,EAIFC,EAAaE,EAAoB,WAAMlB,CAChD,CAXAgB,EAAalB,EAAQsB,YAhBK,CACxB,UAAY,EACZC,QAAQ,EACRjB,cAAc,EACdC,aAAa,EACbK,WAAW,GAYbM,EAAalB,EAAQwB,MAAQP,EAY7B,IAAIQ,EAAiBhE,OAAOgE,eACxBC,EAAsBjE,OAAOiE,oBAC7B3C,EAAwBtB,OAAOsB,sBAC/B4C,EAA2BlE,OAAOkE,yBAClCC,EAAiBnE,OAAOmE,eACxBC,EAAkBpE,OAAOxR,UAsC7BhD,EAAOC,QArCP,SAAS4Y,EAAqBC,EAAiBC,EAAiBC,GAC9D,GAA+B,kBAApBD,EAA8B,CAEvC,GAAIH,EAAiB,CACnB,IAAIK,EAAqBN,EAAeI,GAEpCE,GAAsBA,IAAuBL,GAC/CC,EAAqBC,EAAiBG,EAAoBD,EAE9D,CAEA,IAAIE,EAAOT,EAAoBM,GAE3BjD,IACFoD,EAAOA,EAAKhR,OAAO4N,EAAsBiD,KAM3C,IAHA,IAAII,EAAgBjB,EAAWY,GAC3BM,EAAgBlB,EAAWa,GAEtB7Y,EAAI,EAAGA,EAAIgZ,EAAKpY,SAAUZ,EAAG,CACpC,IAAImZ,EAAMH,EAAKhZ,GAEf,IAAK0X,EAAcyB,MAAUL,IAAaA,EAAUK,OAAWD,IAAiBA,EAAcC,OAAWF,IAAiBA,EAAcE,IAAO,CAC7I,IAAIC,EAAaZ,EAAyBK,EAAiBM,GAE3D,IAEEb,EAAeM,EAAiBO,EAAKC,EACvC,CAAE,MAAOta,GAAI,CACf,CACF,CACF,CAEA,OAAO8Z,CACT,6BC3Fa,IAAIna,EAAE,oBAAoBC,QAAQA,OAAOC,IAAIC,EAAEH,EAAEC,OAAOC,IAAI,iBAAiB,MAAME,EAAEJ,EAAEC,OAAOC,IAAI,gBAAgB,MAAMG,EAAEL,EAAEC,OAAOC,IAAI,kBAAkB,MAAMI,EAAEN,EAAEC,OAAOC,IAAI,qBAAqB,MAAMK,EAAEP,EAAEC,OAAOC,IAAI,kBAAkB,MAAMM,EAAER,EAAEC,OAAOC,IAAI,kBAAkB,MAAMO,EAAET,EAAEC,OAAOC,IAAI,iBAAiB,MAAMQ,EAAEV,EAAEC,OAAOC,IAAI,oBAAoB,MAAMS,EAAEX,EAAEC,OAAOC,IAAI,yBAAyB,MAAMU,EAAEZ,EAAEC,OAAOC,IAAI,qBAAqB,MAAMW,EAAEb,EAAEC,OAAOC,IAAI,kBAAkB,MAAMY,EAAEd,EACpfC,OAAOC,IAAI,uBAAuB,MAAMgB,EAAElB,EAAEC,OAAOC,IAAI,cAAc,MAAMa,EAAEf,EAAEC,OAAOC,IAAI,cAAc,MAAMc,EAAEhB,EAAEC,OAAOC,IAAI,eAAe,MAAM+C,EAAEjD,EAAEC,OAAOC,IAAI,qBAAqB,MAAM8D,EAAEhE,EAAEC,OAAOC,IAAI,mBAAmB,MAAMyB,EAAE3B,EAAEC,OAAOC,IAAI,eAAe,MAClQ,SAASoC,EAAErB,GAAG,GAAG,kBAAkBA,GAAG,OAAOA,EAAE,CAAC,IAAIlB,EAAEkB,EAAEE,SAAS,OAAOpB,GAAG,KAAKI,EAAE,OAAOc,EAAEA,EAAEG,MAAQ,KAAKV,EAAE,KAAKC,EAAE,KAAKN,EAAE,KAAKE,EAAE,KAAKD,EAAE,KAAKO,EAAE,OAAOI,EAAE,QAAQ,OAAOA,EAAEA,GAAGA,EAAEE,UAAY,KAAKV,EAAE,KAAKG,EAAE,KAAKG,EAAE,KAAKG,EAAE,KAAKV,EAAE,OAAOS,EAAE,QAAQ,OAAOlB,GAAG,KAAKK,EAAE,OAAOL,EAAE,CAAC,CAAC,SAASyJ,EAAEvI,GAAG,OAAOqB,EAAErB,KAAKN,CAAC,CAACW,EAAQsZ,UAAUla,EAAEY,EAAQuZ,eAAela,EAAEW,EAAQwZ,gBAAgBra,EAAEa,EAAQyZ,gBAAgBva,EAAEc,EAAQ0Z,QAAQ7a,EAAEmB,EAAQoY,WAAW9Y,EAAEU,EAAQ2Z,SAAS5a,EAAEiB,EAAQ4Z,KAAKna,EAAEO,EAAQsY,KAAK1Y,EAAEI,EAAQ6Z,OAAO/a,EAChfkB,EAAQ8Z,SAAS7a,EAAEe,EAAQ+Z,WAAW/a,EAAEgB,EAAQga,SAASza,EAAES,EAAQia,YAAY,SAASta,GAAG,OAAOuI,EAAEvI,IAAIqB,EAAErB,KAAKP,CAAC,EAAEY,EAAQka,iBAAiBhS,EAAElI,EAAQma,kBAAkB,SAASxa,GAAG,OAAOqB,EAAErB,KAAKR,CAAC,EAAEa,EAAQoa,kBAAkB,SAASza,GAAG,OAAOqB,EAAErB,KAAKT,CAAC,EAAEc,EAAQqa,UAAU,SAAS1a,GAAG,MAAM,kBAAkBA,GAAG,OAAOA,GAAGA,EAAEE,WAAWhB,CAAC,EAAEmB,EAAQsa,aAAa,SAAS3a,GAAG,OAAOqB,EAAErB,KAAKL,CAAC,EAAEU,EAAQua,WAAW,SAAS5a,GAAG,OAAOqB,EAAErB,KAAKZ,CAAC,EAAEiB,EAAQwa,OAAO,SAAS7a,GAAG,OAAOqB,EAAErB,KAAKF,CAAC,EAC1dO,EAAQmY,OAAO,SAASxY,GAAG,OAAOqB,EAAErB,KAAKC,CAAC,EAAEI,EAAQya,SAAS,SAAS9a,GAAG,OAAOqB,EAAErB,KAAKb,CAAC,EAAEkB,EAAQ0a,WAAW,SAAS/a,GAAG,OAAOqB,EAAErB,KAAKV,CAAC,EAAEe,EAAQ2a,aAAa,SAAShb,GAAG,OAAOqB,EAAErB,KAAKX,CAAC,EAAEgB,EAAQ4a,WAAW,SAASjb,GAAG,OAAOqB,EAAErB,KAAKJ,CAAC,EAC1OS,EAAQ6a,mBAAmB,SAASlb,GAAG,MAAM,kBAAkBA,GAAG,oBAAoBA,GAAGA,IAAIZ,GAAGY,IAAIN,GAAGM,IAAIV,GAAGU,IAAIX,GAAGW,IAAIJ,GAAGI,IAAIH,GAAG,kBAAkBG,GAAG,OAAOA,IAAIA,EAAEE,WAAWJ,GAAGE,EAAEE,WAAWD,GAAGD,EAAEE,WAAWX,GAAGS,EAAEE,WAAWV,GAAGQ,EAAEE,WAAWP,GAAGK,EAAEE,WAAW8B,GAAGhC,EAAEE,WAAW6C,GAAG/C,EAAEE,WAAWQ,GAAGV,EAAEE,WAAWH,EAAE,EAAEM,EAAQ8a,OAAO9Z,+BCXjUjB,EAAOC,QAAU,EAAjBD,sBCHF,IAIIgb,EAJYhE,EAAQ,KAITiE,CAHJjE,EAAQ,MAGY,YAE/BhX,EAAOC,QAAU+a,kBCNjB,IAAIE,EAAYlE,EAAQ,MACpBmE,EAAanE,EAAQ,MACrBoE,EAAUpE,EAAQ,MAClBqE,EAAUrE,EAAQ,MAClBsE,EAAUtE,EAAQ,MAStB,SAASuE,EAAKC,GACZ,IAAIC,GAAS,EACT3a,EAAoB,MAAX0a,EAAkB,EAAIA,EAAQ1a,OAG3C,IADAgC,KAAK4Y,UACID,EAAQ3a,GAAQ,CACvB,IAAI6a,EAAQH,EAAQC,GACpB3Y,KAAKoC,IAAIyW,EAAM,GAAIA,EAAM,GAC3B,CACF,CAGAJ,EAAKvY,UAAU0Y,MAAQR,EACvBK,EAAKvY,UAAkB,OAAImY,EAC3BI,EAAKvY,UAAU8C,IAAMsV,EACrBG,EAAKvY,UAAUuR,IAAM8G,EACrBE,EAAKvY,UAAUkC,IAAMoW,EAErBtb,EAAOC,QAAUsb,kBC/BjB,IAAIK,EAAiB5E,EAAQ,MACzB6E,EAAkB7E,EAAQ,MAC1B8E,EAAe9E,EAAQ,MACvB+E,EAAe/E,EAAQ,MACvBgF,EAAehF,EAAQ,MAS3B,SAASiF,EAAUT,GACjB,IAAIC,GAAS,EACT3a,EAAoB,MAAX0a,EAAkB,EAAIA,EAAQ1a,OAG3C,IADAgC,KAAK4Y,UACID,EAAQ3a,GAAQ,CACvB,IAAI6a,EAAQH,EAAQC,GACpB3Y,KAAKoC,IAAIyW,EAAM,GAAIA,EAAM,GAC3B,CACF,CAGAM,EAAUjZ,UAAU0Y,MAAQE,EAC5BK,EAAUjZ,UAAkB,OAAI6Y,EAChCI,EAAUjZ,UAAU8C,IAAMgW,EAC1BG,EAAUjZ,UAAUuR,IAAMwH,EAC1BE,EAAUjZ,UAAUkC,IAAM8W,EAE1Bhc,EAAOC,QAAUgc,kBC/BjB,IAIIC,EAJYlF,EAAQ,KAIdiE,CAHCjE,EAAQ,MAGO,OAE1BhX,EAAOC,QAAUic,kBCNjB,IAAIC,EAAgBnF,EAAQ,MACxBoF,EAAiBpF,EAAQ,MACzBqF,EAAcrF,EAAQ,KACtBsF,EAActF,EAAQ,MACtBuF,EAAcvF,EAAQ,MAS1B,SAASwF,EAAShB,GAChB,IAAIC,GAAS,EACT3a,EAAoB,MAAX0a,EAAkB,EAAIA,EAAQ1a,OAG3C,IADAgC,KAAK4Y,UACID,EAAQ3a,GAAQ,CACvB,IAAI6a,EAAQH,EAAQC,GACpB3Y,KAAKoC,IAAIyW,EAAM,GAAIA,EAAM,GAC3B,CACF,CAGAa,EAASxZ,UAAU0Y,MAAQS,EAC3BK,EAASxZ,UAAkB,OAAIoZ,EAC/BI,EAASxZ,UAAU8C,IAAMuW,EACzBG,EAASxZ,UAAUuR,IAAM+H,EACzBE,EAASxZ,UAAUkC,IAAMqX,EAEzBvc,EAAOC,QAAUuc,kBC/BjB,IAIIC,EAJYzF,EAAQ,KAIViE,CAHHjE,EAAQ,MAGW,WAE9BhX,EAAOC,QAAUwc,kBCNjB,IAIIC,EAJY1F,EAAQ,KAIdiE,CAHCjE,EAAQ,MAGO,OAE1BhX,EAAOC,QAAUyc,kBCNjB,IAAIF,EAAWxF,EAAQ,MACnB2F,EAAc3F,EAAQ,MACtB4F,EAAc5F,EAAQ,MAU1B,SAAS6F,EAASC,GAChB,IAAIrB,GAAS,EACT3a,EAAmB,MAAVgc,EAAiB,EAAIA,EAAOhc,OAGzC,IADAgC,KAAKia,SAAW,IAAIP,IACXf,EAAQ3a,GACfgC,KAAKpB,IAAIob,EAAOrB,GAEpB,CAGAoB,EAAS7Z,UAAUtB,IAAMmb,EAAS7Z,UAAUqJ,KAAOsQ,EACnDE,EAAS7Z,UAAUuR,IAAMqI,EAEzB5c,EAAOC,QAAU4c,kBC1BjB,IAAIZ,EAAYjF,EAAQ,MACpBgG,EAAahG,EAAQ,MACrBiG,EAAcjG,EAAQ,KACtBkG,EAAWlG,EAAQ,MACnBmG,EAAWnG,EAAQ,MACnBoG,EAAWpG,EAAQ,MASvB,SAASqG,EAAM7B,GACb,IAAI8B,EAAOxa,KAAKia,SAAW,IAAId,EAAUT,GACzC1Y,KAAKya,KAAOD,EAAKC,IACnB,CAGAF,EAAMra,UAAU0Y,MAAQsB,EACxBK,EAAMra,UAAkB,OAAIia,EAC5BI,EAAMra,UAAU8C,IAAMoX,EACtBG,EAAMra,UAAUuR,IAAM4I,EACtBE,EAAMra,UAAUkC,IAAMkY,EAEtBpd,EAAOC,QAAUod,kBC1BjB,IAGIze,EAHOoY,EAAQ,MAGDpY,OAElBoB,EAAOC,QAAUrB,kBCLjB,IAGI4e,EAHOxG,EAAQ,MAGGwG,WAEtBxd,EAAOC,QAAUud,kBCLjB,IAIIC,EAJYzG,EAAQ,KAIViE,CAHHjE,EAAQ,MAGW,WAE9BhX,EAAOC,QAAUwd,YCcjBzd,EAAOC,QAVP,SAAeyd,EAAMC,EAAStb,GAC5B,OAAQA,EAAKvB,QACX,KAAK,EAAG,OAAO4c,EAAK1T,KAAK2T,GACzB,KAAK,EAAG,OAAOD,EAAK1T,KAAK2T,EAAStb,EAAK,IACvC,KAAK,EAAG,OAAOqb,EAAK1T,KAAK2T,EAAStb,EAAK,GAAIA,EAAK,IAChD,KAAK,EAAG,OAAOqb,EAAK1T,KAAK2T,EAAStb,EAAK,GAAIA,EAAK,GAAIA,EAAK,IAE3D,OAAOqb,EAAKnY,MAAMoY,EAAStb,EAC7B,YCIArC,EAAOC,QAZP,SAAoB2d,EAAOC,GAIzB,IAHA,IAAIpC,GAAS,EACT3a,EAAkB,MAAT8c,EAAgB,EAAIA,EAAM9c,SAE9B2a,EAAQ3a,GACf,IAAK+c,EAAUD,EAAMnC,GAAQA,EAAOmC,GAClC,OAAO,EAGX,OAAO,CACT,YCIA5d,EAAOC,QAfP,SAAqB2d,EAAOC,GAM1B,IALA,IAAIpC,GAAS,EACT3a,EAAkB,MAAT8c,EAAgB,EAAIA,EAAM9c,OACnCgd,EAAW,EACXC,EAAS,KAEJtC,EAAQ3a,GAAQ,CACvB,IAAI6S,EAAQiK,EAAMnC,GACdoC,EAAUlK,EAAO8H,EAAOmC,KAC1BG,EAAOD,KAAcnK,EAEzB,CACA,OAAOoK,CACT,kBCtBA,IAAIC,EAAchH,EAAQ,MAgB1BhX,EAAOC,QALP,SAAuB2d,EAAOjK,GAE5B,SADsB,MAATiK,EAAgB,EAAIA,EAAM9c,SACpBkd,EAAYJ,EAAOjK,EAAO,IAAM,CACrD,YCOA3T,EAAOC,QAZP,SAA2B2d,EAAOjK,EAAOsK,GAIvC,IAHA,IAAIxC,GAAS,EACT3a,EAAkB,MAAT8c,EAAgB,EAAIA,EAAM9c,SAE9B2a,EAAQ3a,GACf,GAAImd,EAAWtK,EAAOiK,EAAMnC,IAC1B,OAAO,EAGX,OAAO,CACT,kBCnBA,IAAIyC,EAAYlH,EAAQ,MACpBmH,EAAcnH,EAAQ,MACtBoH,EAAUpH,EAAQ,MAClBqH,EAAWrH,EAAQ,MACnBsH,EAAUtH,EAAQ,MAClBuH,EAAevH,EAAQ,MAMvB3C,EAHcG,OAAOxR,UAGQqR,eAqCjCrU,EAAOC,QA3BP,SAAuB0T,EAAO6K,GAC5B,IAAIC,EAAQL,EAAQzK,GAChB+K,GAASD,GAASN,EAAYxK,GAC9BgL,GAAUF,IAAUC,GAASL,EAAS1K,GACtCiL,GAAUH,IAAUC,IAAUC,GAAUJ,EAAa5K,GACrDkL,EAAcJ,GAASC,GAASC,GAAUC,EAC1Cb,EAASc,EAAcX,EAAUvK,EAAM7S,OAAQD,QAAU,GACzDC,EAASid,EAAOjd,OAEpB,IAAK,IAAIuY,KAAO1F,GACT6K,IAAanK,EAAerK,KAAK2J,EAAO0F,IACvCwF,IAEQ,UAAPxF,GAECsF,IAAkB,UAAPtF,GAA0B,UAAPA,IAE9BuF,IAAkB,UAAPvF,GAA0B,cAAPA,GAA8B,cAAPA,IAEtDiF,EAAQjF,EAAKvY,KAElBid,EAAO1R,KAAKgN,GAGhB,OAAO0E,CACT,WC1BA/d,EAAOC,QAXP,SAAkB2d,EAAOkB,GAKvB,IAJA,IAAIrD,GAAS,EACT3a,EAAkB,MAAT8c,EAAgB,EAAIA,EAAM9c,OACnCid,EAAShd,MAAMD,KAEV2a,EAAQ3a,GACfid,EAAOtC,GAASqD,EAASlB,EAAMnC,GAAQA,EAAOmC,GAEhD,OAAOG,CACT,YCCA/d,EAAOC,QAXP,SAAmB2d,EAAOd,GAKxB,IAJA,IAAIrB,GAAS,EACT3a,EAASgc,EAAOhc,OAChBkH,EAAS4V,EAAM9c,SAEV2a,EAAQ3a,GACf8c,EAAM5V,EAASyT,GAASqB,EAAOrB,GAEjC,OAAOmC,CACT,YCKA5d,EAAOC,QAZP,SAAmB2d,EAAOC,GAIxB,IAHA,IAAIpC,GAAS,EACT3a,EAAkB,MAAT8c,EAAgB,EAAIA,EAAM9c,SAE9B2a,EAAQ3a,GACf,GAAI+c,EAAUD,EAAMnC,GAAQA,EAAOmC,GACjC,OAAO,EAGX,OAAO,CACT,YCTA5d,EAAOC,QAJP,SAAsB8e,GACpB,OAAOA,EAAOre,MAAM,GACtB,kBCTA,IAAImN,EAAKmJ,EAAQ,MAoBjBhX,EAAOC,QAVP,SAAsB2d,EAAOvE,GAE3B,IADA,IAAIvY,EAAS8c,EAAM9c,OACZA,KACL,GAAI+M,EAAG+P,EAAM9c,GAAQ,GAAIuY,GACvB,OAAOvY,EAGX,OAAQ,CACV,kBClBA,IAAI0X,EAAiBxB,EAAQ,MAwB7BhX,EAAOC,QAbP,SAAyB+e,EAAQ3F,EAAK1F,GACzB,aAAP0F,GAAsBb,EACxBA,EAAewG,EAAQ3F,EAAK,CAC1B,cAAgB,EAChB,YAAc,EACd,MAAS1F,EACT,UAAY,IAGdqL,EAAO3F,GAAO1F,CAElB,kBCtBA,IAAIsL,EAAajI,EAAQ,MAWrBkI,EAViBlI,EAAQ,KAUdmI,CAAeF,GAE9Bjf,EAAOC,QAAUif,kBCbjB,IAAIA,EAAWlI,EAAQ,MAoBvBhX,EAAOC,QATP,SAAmBmf,EAAYvB,GAC7B,IAAIE,GAAS,EAKb,OAJAmB,EAASE,GAAY,SAASzL,EAAO8H,EAAO2D,GAE1C,OADArB,IAAWF,EAAUlK,EAAO8H,EAAO2D,EAErC,IACOrB,CACT,kBClBA,IAAIsB,EAAWrI,EAAQ,MA+BvBhX,EAAOC,QAnBP,SAAsB2d,EAAOkB,EAAUb,GAIrC,IAHA,IAAIxC,GAAS,EACT3a,EAAS8c,EAAM9c,SAEV2a,EAAQ3a,GAAQ,CACvB,IAAI6S,EAAQiK,EAAMnC,GACd6D,EAAUR,EAASnL,GAEvB,GAAe,MAAX2L,SAAiC5I,IAAb6I,EACfD,IAAYA,IAAYD,EAASC,GAClCrB,EAAWqB,EAASC,IAE1B,IAAIA,EAAWD,EACXvB,EAASpK,CAEjB,CACA,OAAOoK,CACT,YCNA/d,EAAOC,QAZP,SAAuB2d,EAAOC,EAAW2B,EAAWC,GAIlD,IAHA,IAAI3e,EAAS8c,EAAM9c,OACf2a,EAAQ+D,GAAaC,EAAY,GAAK,GAElCA,EAAYhE,MAAYA,EAAQ3a,GACtC,GAAI+c,EAAUD,EAAMnC,GAAQA,EAAOmC,GACjC,OAAOnC,EAGX,OAAQ,CACV,iBCrBA,IAAIiE,EAAY1I,EAAQ,MACpB2I,EAAgB3I,EAAQ,MAoC5BhX,EAAOC,QAvBP,SAAS2f,EAAYhC,EAAOiC,EAAOhC,EAAWiC,EAAU/B,GACtD,IAAItC,GAAS,EACT3a,EAAS8c,EAAM9c,OAKnB,IAHA+c,IAAcA,EAAY8B,GAC1B5B,IAAWA,EAAS,MAEXtC,EAAQ3a,GAAQ,CACvB,IAAI6S,EAAQiK,EAAMnC,GACdoE,EAAQ,GAAKhC,EAAUlK,GACrBkM,EAAQ,EAEVD,EAAYjM,EAAOkM,EAAQ,EAAGhC,EAAWiC,EAAU/B,GAEnD2B,EAAU3B,EAAQpK,GAEVmM,IACV/B,EAAOA,EAAOjd,QAAU6S,EAE5B,CACA,OAAOoK,CACT,kBCnCA,IAaIgC,EAbgB/I,EAAQ,KAadgJ,GAEdhgB,EAAOC,QAAU8f,kBCfjB,IAAIA,EAAU/I,EAAQ,MAClBkC,EAAOlC,EAAQ,MAcnBhX,EAAOC,QAJP,SAAoB+e,EAAQF,GAC1B,OAAOE,GAAUe,EAAQf,EAAQF,EAAU5F,EAC7C,kBCbA,IAAI+G,EAAWjJ,EAAQ,MACnBkJ,EAAQlJ,EAAQ,KAsBpBhX,EAAOC,QAZP,SAAiB+e,EAAQmB,GAMvB,IAHA,IAAI1E,EAAQ,EACR3a,GAHJqf,EAAOF,EAASE,EAAMnB,IAGJle,OAED,MAAVke,GAAkBvD,EAAQ3a,GAC/Bke,EAASA,EAAOkB,EAAMC,EAAK1E,OAE7B,OAAQA,GAASA,GAAS3a,EAAUke,OAAStI,CAC/C,kBCrBA,IAAIgJ,EAAY1I,EAAQ,MACpBoH,EAAUpH,EAAQ,MAkBtBhX,EAAOC,QALP,SAAwB+e,EAAQoB,EAAUC,GACxC,IAAItC,EAASqC,EAASpB,GACtB,OAAOZ,EAAQY,GAAUjB,EAAS2B,EAAU3B,EAAQsC,EAAYrB,GAClE,kBCjBA,IAAIpgB,EAASoY,EAAQ,MACjBsJ,EAAYtJ,EAAQ,MACpBuJ,EAAiBvJ,EAAQ,MAOzBwJ,EAAiB5hB,EAASA,EAAO6hB,iBAAc/J,EAkBnD1W,EAAOC,QATP,SAAoB0T,GAClB,OAAa,MAATA,OACe+C,IAAV/C,EAdQ,qBADL,gBAiBJ6M,GAAkBA,KAAkBhM,OAAOb,GAC/C2M,EAAU3M,GACV4M,EAAe5M,EACrB,YCZA3T,EAAOC,QAJP,SAAgB0T,EAAO+M,GACrB,OAAO/M,EAAQ+M,CACjB,YCCA1gB,EAAOC,QAJP,SAAmB+e,EAAQ3F,GACzB,OAAiB,MAAV2F,GAAkB3F,KAAO7E,OAAOwK,EACzC,kBCVA,IAAI2B,EAAgB3J,EAAQ,MACxB4J,EAAY5J,EAAQ,KACpB6J,EAAgB7J,EAAQ,MAiB5BhX,EAAOC,QANP,SAAqB2d,EAAOjK,EAAO6L,GACjC,OAAO7L,IAAUA,EACbkN,EAAcjD,EAAOjK,EAAO6L,GAC5BmB,EAAc/C,EAAOgD,EAAWpB,EACtC,kBCjBA,IAAIsB,EAAa9J,EAAQ,MACrB+J,EAAe/J,EAAQ,MAgB3BhX,EAAOC,QAJP,SAAyB0T,GACvB,OAAOoN,EAAapN,IAVR,sBAUkBmN,EAAWnN,EAC3C,kBCfA,IAAIqN,EAAkBhK,EAAQ,MAC1B+J,EAAe/J,EAAQ,MA0B3BhX,EAAOC,QAVP,SAASghB,EAAYtN,EAAO+M,EAAOQ,EAASC,EAAYC,GACtD,OAAIzN,IAAU+M,IAGD,MAAT/M,GAA0B,MAAT+M,IAAmBK,EAAapN,KAAWoN,EAAaL,GACpE/M,IAAUA,GAAS+M,IAAUA,EAE/BM,EAAgBrN,EAAO+M,EAAOQ,EAASC,EAAYF,EAAaG,GACzE,kBCzBA,IAAI/D,EAAQrG,EAAQ,MAChBqK,EAAcrK,EAAQ,MACtBsK,EAAatK,EAAQ,MACrBuK,EAAevK,EAAQ,MACvBwK,EAASxK,EAAQ,MACjBoH,EAAUpH,EAAQ,MAClBqH,EAAWrH,EAAQ,MACnBuH,EAAevH,EAAQ,MAMvByK,EAAU,qBACVC,EAAW,iBACXC,EAAY,kBAMZtN,EAHcG,OAAOxR,UAGQqR,eA6DjCrU,EAAOC,QA7CP,SAAyB+e,EAAQ0B,EAAOQ,EAASC,EAAYS,EAAWR,GACtE,IAAIS,EAAWzD,EAAQY,GACnB8C,EAAW1D,EAAQsC,GACnBqB,EAASF,EAAWH,EAAWF,EAAOxC,GACtCgD,EAASF,EAAWJ,EAAWF,EAAOd,GAKtCuB,GAHJF,EAASA,GAAUN,EAAUE,EAAYI,IAGhBJ,EACrBO,GAHJF,EAASA,GAAUP,EAAUE,EAAYK,IAGhBL,EACrBQ,EAAYJ,GAAUC,EAE1B,GAAIG,GAAa9D,EAASW,GAAS,CACjC,IAAKX,EAASqC,GACZ,OAAO,EAETmB,GAAW,EACXI,GAAW,CACb,CACA,GAAIE,IAAcF,EAEhB,OADAb,IAAUA,EAAQ,IAAI/D,GACdwE,GAAYtD,EAAaS,GAC7BqC,EAAYrC,EAAQ0B,EAAOQ,EAASC,EAAYS,EAAWR,GAC3DE,EAAWtC,EAAQ0B,EAAOqB,EAAQb,EAASC,EAAYS,EAAWR,GAExE,KArDyB,EAqDnBF,GAAiC,CACrC,IAAIkB,EAAeH,GAAY5N,EAAerK,KAAKgV,EAAQ,eACvDqD,EAAeH,GAAY7N,EAAerK,KAAK0W,EAAO,eAE1D,GAAI0B,GAAgBC,EAAc,CAChC,IAAIC,EAAeF,EAAepD,EAAOrL,QAAUqL,EAC/CuD,EAAeF,EAAe3B,EAAM/M,QAAU+M,EAGlD,OADAU,IAAUA,EAAQ,IAAI/D,GACfuE,EAAUU,EAAcC,EAAcrB,EAASC,EAAYC,EACpE,CACF,CACA,QAAKe,IAGLf,IAAUA,EAAQ,IAAI/D,GACfkE,EAAavC,EAAQ0B,EAAOQ,EAASC,EAAYS,EAAWR,GACrE,kBChFA,IAAI/D,EAAQrG,EAAQ,MAChBiK,EAAcjK,EAAQ,MA4D1BhX,EAAOC,QA5CP,SAAqB+e,EAAQwD,EAAQC,EAAWtB,GAC9C,IAAI1F,EAAQgH,EAAU3hB,OAClBA,EAAS2a,EACTiH,GAAgBvB,EAEpB,GAAc,MAAVnC,EACF,OAAQle,EAGV,IADAke,EAASxK,OAAOwK,GACTvD,KAAS,CACd,IAAI6B,EAAOmF,EAAUhH,GACrB,GAAKiH,GAAgBpF,EAAK,GAClBA,EAAK,KAAO0B,EAAO1B,EAAK,MACtBA,EAAK,KAAM0B,GAEnB,OAAO,CAEX,CACA,OAASvD,EAAQ3a,GAAQ,CAEvB,IAAIuY,GADJiE,EAAOmF,EAAUhH,IACF,GACXkH,EAAW3D,EAAO3F,GAClBuJ,EAAWtF,EAAK,GAEpB,GAAIoF,GAAgBpF,EAAK,IACvB,QAAiB5G,IAAbiM,KAA4BtJ,KAAO2F,GACrC,OAAO,MAEJ,CACL,IAAIoC,EAAQ,IAAI/D,EAChB,GAAI8D,EACF,IAAIpD,EAASoD,EAAWwB,EAAUC,EAAUvJ,EAAK2F,EAAQwD,EAAQpB,GAEnE,UAAiB1K,IAAXqH,EACEkD,EAAY2B,EAAUD,EAAUE,EAA+C1B,EAAYC,GAC3FrD,GAEN,OAAO,CAEX,CACF,CACA,OAAO,CACT,WChDA/d,EAAOC,QAJP,SAAmB0T,GACjB,OAAOA,IAAUA,CACnB,kBCTA,IAAImP,EAAa9L,EAAQ,MACrB+L,EAAW/L,EAAQ,MACnBgM,EAAWhM,EAAQ,MACnBiM,EAAWjM,EAAQ,MASnBkM,EAAe,8BAGfC,EAAYC,SAASpgB,UACrBqgB,EAAc7O,OAAOxR,UAGrBsgB,EAAeH,EAAUxe,SAGzB0P,EAAiBgP,EAAYhP,eAG7BkP,EAAaC,OAAO,IACtBF,EAAatZ,KAAKqK,GAAgBpS,QAjBjB,sBAiBuC,QACvDA,QAAQ,yDAA0D,SAAW,KAmBhFjC,EAAOC,QARP,SAAsB0T,GACpB,SAAKqP,EAASrP,IAAUoP,EAASpP,MAGnBmP,EAAWnP,GAAS4P,EAAaL,GAChC9f,KAAK6f,EAAStP,GAC/B,kBC5CA,IAAImN,EAAa9J,EAAQ,MACrByM,EAAWzM,EAAQ,MACnB+J,EAAe/J,EAAQ,MA8BvB0M,EAAiB,CAAC,EACtBA,EAZiB,yBAYYA,EAXZ,yBAYjBA,EAXc,sBAWYA,EAVX,uBAWfA,EAVe,uBAUYA,EATZ,uBAUfA,EATsB,8BASYA,EARlB,wBAShBA,EARgB,yBAQY,EAC5BA,EAjCc,sBAiCYA,EAhCX,kBAiCfA,EApBqB,wBAoBYA,EAhCnB,oBAiCdA,EApBkB,qBAoBYA,EAhChB,iBAiCdA,EAhCe,kBAgCYA,EA/Bb,qBAgCdA,EA/Ba,gBA+BYA,EA9BT,mBA+BhBA,EA9BgB,mBA8BYA,EA7BZ,mBA8BhBA,EA7Ba,gBA6BYA,EA5BT,mBA6BhBA,EA5BiB,qBA4BY,EAc7B1jB,EAAOC,QALP,SAA0B0T,GACxB,OAAOoN,EAAapN,IAClB8P,EAAS9P,EAAM7S,WAAa4iB,EAAe5C,EAAWnN,GAC1D,kBCzDA,IAAIgQ,EAAc3M,EAAQ,MACtB4M,EAAsB5M,EAAQ,MAC9B6M,EAAW7M,EAAQ,MACnBoH,EAAUpH,EAAQ,MAClB8M,EAAW9M,EAAQ,MA0BvBhX,EAAOC,QAjBP,SAAsB0T,GAGpB,MAAoB,mBAATA,EACFA,EAEI,MAATA,EACKkQ,EAEW,iBAATlQ,EACFyK,EAAQzK,GACXiQ,EAAoBjQ,EAAM,GAAIA,EAAM,IACpCgQ,EAAYhQ,GAEXmQ,EAASnQ,EAClB,kBC5BA,IAAIoQ,EAAc/M,EAAQ,MACtBgN,EAAahN,EAAQ,MAMrB3C,EAHcG,OAAOxR,UAGQqR,eAsBjCrU,EAAOC,QAbP,SAAkB+e,GAChB,IAAK+E,EAAY/E,GACf,OAAOgF,EAAWhF,GAEpB,IAAIjB,EAAS,GACb,IAAK,IAAI1E,KAAO7E,OAAOwK,GACjB3K,EAAerK,KAAKgV,EAAQ3F,IAAe,eAAPA,GACtC0E,EAAO1R,KAAKgN,GAGhB,OAAO0E,CACT,UCdA/d,EAAOC,QAJP,SAAgB0T,EAAO+M,GACrB,OAAO/M,EAAQ+M,CACjB,kBCXA,IAAIxB,EAAWlI,EAAQ,MACnBiN,EAAcjN,EAAQ,MAoB1BhX,EAAOC,QAVP,SAAiBmf,EAAYN,GAC3B,IAAIrD,GAAS,EACTsC,EAASkG,EAAY7E,GAAcre,MAAMqe,EAAWte,QAAU,GAKlE,OAHAoe,EAASE,GAAY,SAASzL,EAAO0F,EAAK+F,GACxCrB,IAAStC,GAASqD,EAASnL,EAAO0F,EAAK+F,EACzC,IACOrB,CACT,kBCnBA,IAAImG,EAAclN,EAAQ,MACtBmN,EAAenN,EAAQ,MACvBoN,EAA0BpN,EAAQ,MAmBtChX,EAAOC,QAVP,SAAqBuiB,GACnB,IAAIC,EAAY0B,EAAa3B,GAC7B,OAAwB,GAApBC,EAAU3hB,QAAe2hB,EAAU,GAAG,GACjC2B,EAAwB3B,EAAU,GAAG,GAAIA,EAAU,GAAG,IAExD,SAASzD,GACd,OAAOA,IAAWwD,GAAU0B,EAAYlF,EAAQwD,EAAQC,EAC1D,CACF,kBCnBA,IAAIxB,EAAcjK,EAAQ,MACtBlR,EAAMkR,EAAQ,MACdqN,EAAQrN,EAAQ,MAChBsN,EAAQtN,EAAQ,MAChBuN,EAAqBvN,EAAQ,MAC7BoN,EAA0BpN,EAAQ,MAClCkJ,EAAQlJ,EAAQ,KA0BpBhX,EAAOC,QAZP,SAA6BkgB,EAAMyC,GACjC,OAAI0B,EAAMnE,IAASoE,EAAmB3B,GAC7BwB,EAAwBlE,EAAMC,GAAOyC,GAEvC,SAAS5D,GACd,IAAI2D,EAAW7c,EAAIkZ,EAAQmB,GAC3B,YAAqBzJ,IAAbiM,GAA0BA,IAAaC,EAC3CyB,EAAMrF,EAAQmB,GACdc,EAAY2B,EAAUD,EAAUE,EACtC,CACF,kBC9BA,IAAI2B,EAAWxN,EAAQ,KACnByN,EAAUzN,EAAQ,MAClB0N,EAAe1N,EAAQ,MACvB2N,EAAU3N,EAAQ,MAClB4N,EAAa5N,EAAQ,KACrB6N,EAAY7N,EAAQ,MACpB8N,EAAkB9N,EAAQ,MAC1B6M,EAAW7M,EAAQ,MACnBoH,EAAUpH,EAAQ,MAwCtBhX,EAAOC,QA7BP,SAAqBmf,EAAY2F,EAAWC,GAExCD,EADEA,EAAUjkB,OACA0jB,EAASO,GAAW,SAASjG,GACvC,OAAIV,EAAQU,GACH,SAASnL,GACd,OAAO8Q,EAAQ9Q,EAA2B,IAApBmL,EAAShe,OAAege,EAAS,GAAKA,EAC9D,EAEKA,CACT,IAEY,CAAC+E,GAGf,IAAIpI,GAAS,EACbsJ,EAAYP,EAASO,EAAWF,EAAUH,IAE1C,IAAI3G,EAAS4G,EAAQvF,GAAY,SAASzL,EAAO0F,EAAK+F,GAIpD,MAAO,CAAE,SAHMoF,EAASO,GAAW,SAASjG,GAC1C,OAAOA,EAASnL,EAClB,IAC+B,QAAW8H,EAAO,MAAS9H,EAC5D,IAEA,OAAOiR,EAAW7G,GAAQ,SAASiB,EAAQ0B,GACzC,OAAOoE,EAAgB9F,EAAQ0B,EAAOsE,EACxC,GACF,WCjCAhlB,EAAOC,QANP,SAAsBoZ,GACpB,OAAO,SAAS2F,GACd,OAAiB,MAAVA,OAAiBtI,EAAYsI,EAAO3F,EAC7C,CACF,kBCXA,IAAIoL,EAAUzN,EAAQ,MAetBhX,EAAOC,QANP,SAA0BkgB,GACxB,OAAO,SAASnB,GACd,OAAOyF,EAAQzF,EAAQmB,EACzB,CACF,YCZA,IAAI8E,EAAa9jB,KAAKQ,KAClBujB,EAAY/jB,KAAKsL,IAyBrBzM,EAAOC,QAZP,SAAmBklB,EAAOC,EAAKC,EAAM5F,GAKnC,IAJA,IAAIhE,GAAS,EACT3a,EAASokB,EAAUD,GAAYG,EAAMD,IAAUE,GAAQ,IAAK,GAC5DtH,EAAShd,MAAMD,GAEZA,KACLid,EAAO0B,EAAY3e,IAAW2a,GAAS0J,EACvCA,GAASE,EAEX,OAAOtH,CACT,kBCzBA,IAAI8F,EAAW7M,EAAQ,MACnBsO,EAAWtO,EAAQ,MACnBuO,EAAcvO,EAAQ,MAc1BhX,EAAOC,QAJP,SAAkByd,EAAMyH,GACtB,OAAOI,EAAYD,EAAS5H,EAAMyH,EAAOtB,GAAWnG,EAAO,GAC7D,kBCdA,IAAI8H,EAAWxO,EAAQ,MACnBwB,EAAiBxB,EAAQ,MACzB6M,EAAW7M,EAAQ,MAUnByO,EAAmBjN,EAA4B,SAASkF,EAAMqB,GAChE,OAAOvG,EAAekF,EAAM,WAAY,CACtC,cAAgB,EAChB,YAAc,EACd,MAAS8H,EAASzG,GAClB,UAAY,GAEhB,EAPwC8E,EASxC7jB,EAAOC,QAAUwlB,YCSjBzlB,EAAOC,QArBP,SAAmB2d,EAAOuH,EAAOC,GAC/B,IAAI3J,GAAS,EACT3a,EAAS8c,EAAM9c,OAEfqkB,EAAQ,IACVA,GAASA,EAAQrkB,EAAS,EAAKA,EAASqkB,IAE1CC,EAAMA,EAAMtkB,EAASA,EAASskB,GACpB,IACRA,GAAOtkB,GAETA,EAASqkB,EAAQC,EAAM,EAAMA,EAAMD,IAAW,EAC9CA,KAAW,EAGX,IADA,IAAIpH,EAAShd,MAAMD,KACV2a,EAAQ3a,GACfid,EAAOtC,GAASmC,EAAMnC,EAAQ0J,GAEhC,OAAOpH,CACT,kBC5BA,IAAImB,EAAWlI,EAAQ,MAqBvBhX,EAAOC,QAVP,SAAkBmf,EAAYvB,GAC5B,IAAIE,EAMJ,OAJAmB,EAASE,GAAY,SAASzL,EAAO8H,EAAO2D,GAE1C,QADArB,EAASF,EAAUlK,EAAO8H,EAAO2D,GAEnC,MACSrB,CACX,WCCA/d,EAAOC,QAVP,SAAoB2d,EAAO8H,GACzB,IAAI5kB,EAAS8c,EAAM9c,OAGnB,IADA8c,EAAM+H,KAAKD,GACJ5kB,KACL8c,EAAM9c,GAAU8c,EAAM9c,GAAQ6S,MAEhC,OAAOiK,CACT,YCCA5d,EAAOC,QAVP,SAAmBV,EAAGuf,GAIpB,IAHA,IAAIrD,GAAS,EACTsC,EAAShd,MAAMxB,KAEVkc,EAAQlc,GACfwe,EAAOtC,GAASqD,EAASrD,GAE3B,OAAOsC,CACT,kBCjBA,IAAInf,EAASoY,EAAQ,MACjBwN,EAAWxN,EAAQ,KACnBoH,EAAUpH,EAAQ,MAClBqI,EAAWrI,EAAQ,MAMnB4O,EAAchnB,EAASA,EAAOoE,eAAY0T,EAC1CmP,EAAiBD,EAAcA,EAAYjhB,cAAW+R,EA0B1D1W,EAAOC,QAhBP,SAAS6lB,EAAanS,GAEpB,GAAoB,iBAATA,EACT,OAAOA,EAET,GAAIyK,EAAQzK,GAEV,OAAO6Q,EAAS7Q,EAAOmS,GAAgB,GAEzC,GAAIzG,EAAS1L,GACX,OAAOkS,EAAiBA,EAAe7b,KAAK2J,GAAS,GAEvD,IAAIoK,EAAUpK,EAAQ,GACtB,MAAkB,KAAVoK,GAAkB,EAAIpK,IAAU,IAAa,KAAOoK,CAC9D,kBClCA,IAAIgI,EAAkB/O,EAAQ,KAG1BgP,EAAc,OAelBhmB,EAAOC,QANP,SAAkB8e,GAChB,OAAOA,EACHA,EAAOvZ,MAAM,EAAGugB,EAAgBhH,GAAU,GAAG9c,QAAQ+jB,EAAa,IAClEjH,CACN,YCHA/e,EAAOC,QANP,SAAmByd,GACjB,OAAO,SAAS/J,GACd,OAAO+J,EAAK/J,EACd,CACF,kBCXA,IAAIkJ,EAAW7F,EAAQ,MACnBiP,EAAgBjP,EAAQ,MACxBkP,EAAoBlP,EAAQ,MAC5BmP,EAAWnP,EAAQ,MACnBoP,EAAYpP,EAAQ,MACpBqP,EAAarP,EAAQ,MAkEzBhX,EAAOC,QApDP,SAAkB2d,EAAOkB,EAAUb,GACjC,IAAIxC,GAAS,EACT6K,EAAWL,EACXnlB,EAAS8c,EAAM9c,OACfylB,GAAW,EACXxI,EAAS,GACTyI,EAAOzI,EAEX,GAAIE,EACFsI,GAAW,EACXD,EAAWJ,OAER,GAAIplB,GAvBY,IAuBgB,CACnC,IAAIoE,EAAM4Z,EAAW,KAAOsH,EAAUxI,GACtC,GAAI1Y,EACF,OAAOmhB,EAAWnhB,GAEpBqhB,GAAW,EACXD,EAAWH,EACXK,EAAO,IAAI3J,CACb,MAEE2J,EAAO1H,EAAW,GAAKf,EAEzB0I,EACA,OAAShL,EAAQ3a,GAAQ,CACvB,IAAI6S,EAAQiK,EAAMnC,GACd8D,EAAWT,EAAWA,EAASnL,GAASA,EAG5C,GADAA,EAASsK,GAAwB,IAAVtK,EAAeA,EAAQ,EAC1C4S,GAAYhH,IAAaA,EAAU,CAErC,IADA,IAAImH,EAAYF,EAAK1lB,OACd4lB,KACL,GAAIF,EAAKE,KAAenH,EACtB,SAASkH,EAGT3H,GACF0H,EAAKna,KAAKkT,GAEZxB,EAAO1R,KAAKsH,EACd,MACU2S,EAASE,EAAMjH,EAAUtB,KAC7BuI,IAASzI,GACXyI,EAAKna,KAAKkT,GAEZxB,EAAO1R,KAAKsH,GAEhB,CACA,OAAOoK,CACT,YCzDA/d,EAAOC,QAJP,SAAkB0mB,EAAOtN,GACvB,OAAOsN,EAAMpS,IAAI8E,EACnB,kBCVA,IAAI+E,EAAUpH,EAAQ,MAClBsN,EAAQtN,EAAQ,MAChB4P,EAAe5P,EAAQ,MACvBrS,EAAWqS,EAAQ,MAiBvBhX,EAAOC,QAPP,SAAkB0T,EAAOqL,GACvB,OAAIZ,EAAQzK,GACHA,EAEF2Q,EAAM3Q,EAAOqL,GAAU,CAACrL,GAASiT,EAAajiB,EAASgP,GAChE,kBClBA,IAAIkT,EAAY7P,EAAQ,MAiBxBhX,EAAOC,QANP,SAAmB2d,EAAOuH,EAAOC,GAC/B,IAAItkB,EAAS8c,EAAM9c,OAEnB,OADAskB,OAAc1O,IAAR0O,EAAoBtkB,EAASskB,GAC1BD,GAASC,GAAOtkB,EAAU8c,EAAQiJ,EAAUjJ,EAAOuH,EAAOC,EACrE,kBCfA,IAAI/F,EAAWrI,EAAQ,MAwCvBhX,EAAOC,QA9BP,SAA0B0T,EAAO+M,GAC/B,GAAI/M,IAAU+M,EAAO,CACnB,IAAIoG,OAAyBpQ,IAAV/C,EACfoT,EAAsB,OAAVpT,EACZqT,EAAiBrT,IAAUA,EAC3BsT,EAAc5H,EAAS1L,GAEvBuT,OAAyBxQ,IAAVgK,EACfyG,EAAsB,OAAVzG,EACZ0G,EAAiB1G,IAAUA,EAC3B2G,EAAchI,EAASqB,GAE3B,IAAMyG,IAAcE,IAAgBJ,GAAetT,EAAQ+M,GACtDuG,GAAeC,GAAgBE,IAAmBD,IAAcE,GAChEN,GAAaG,GAAgBE,IAC5BN,GAAgBM,IACjBJ,EACH,OAAO,EAET,IAAMD,IAAcE,IAAgBI,GAAe1T,EAAQ+M,GACtD2G,GAAeP,GAAgBE,IAAmBD,IAAcE,GAChEE,GAAaL,GAAgBE,IAC5BE,GAAgBF,IACjBI,EACH,OAAQ,CAEZ,CACA,OAAO,CACT,kBCtCA,IAAIE,EAAmBtQ,EAAQ,MA2C/BhX,EAAOC,QA3BP,SAAyB+e,EAAQ0B,EAAOsE,GAOtC,IANA,IAAIvJ,GAAS,EACT8L,EAAcvI,EAAOwI,SACrBC,EAAc/G,EAAM8G,SACpB1mB,EAASymB,EAAYzmB,OACrB4mB,EAAe1C,EAAOlkB,SAEjB2a,EAAQ3a,GAAQ,CACvB,IAAIid,EAASuJ,EAAiBC,EAAY9L,GAAQgM,EAAYhM,IAC9D,GAAIsC,EACF,OAAItC,GAASiM,EACJ3J,EAGFA,GAAmB,QADdiH,EAAOvJ,IACiB,EAAI,EAE5C,CAQA,OAAOuD,EAAOvD,MAAQiF,EAAMjF,KAC9B,kBCzCA,IAGIkM,EAHO3Q,EAAQ,MAGG,sBAEtBhX,EAAOC,QAAU0nB,kBCLjB,IAAI1D,EAAcjN,EAAQ,MA+B1BhX,EAAOC,QArBP,SAAwB2nB,EAAUnI,GAChC,OAAO,SAASL,EAAYN,GAC1B,GAAkB,MAAdM,EACF,OAAOA,EAET,IAAK6E,EAAY7E,GACf,OAAOwI,EAASxI,EAAYN,GAM9B,IAJA,IAAIhe,EAASse,EAAWte,OACpB2a,EAAQgE,EAAY3e,GAAU,EAC9B+mB,EAAWrT,OAAO4K,IAEdK,EAAYhE,MAAYA,EAAQ3a,KACa,IAA/Cge,EAAS+I,EAASpM,GAAQA,EAAOoM,KAIvC,OAAOzI,CACT,CACF,YCLApf,EAAOC,QAjBP,SAAuBwf,GACrB,OAAO,SAAST,EAAQF,EAAUsB,GAMhC,IALA,IAAI3E,GAAS,EACToM,EAAWrT,OAAOwK,GAClB8I,EAAQ1H,EAASpB,GACjBle,EAASgnB,EAAMhnB,OAEZA,KAAU,CACf,IAAIuY,EAAMyO,EAAMrI,EAAY3e,IAAW2a,GACvC,IAA+C,IAA3CqD,EAAS+I,EAASxO,GAAMA,EAAKwO,GAC/B,KAEJ,CACA,OAAO7I,CACT,CACF,kBCtBA,IAAI+I,EAAY/Q,EAAQ,MACpBgR,EAAahR,EAAQ,MACrBiR,EAAgBjR,EAAQ,MACxBrS,EAAWqS,EAAQ,MA6BvBhX,EAAOC,QApBP,SAAyBioB,GACvB,OAAO,SAASnJ,GACdA,EAASpa,EAASoa,GAElB,IAAIoJ,EAAaH,EAAWjJ,GACxBkJ,EAAclJ,QACdrI,EAEA0R,EAAMD,EACNA,EAAW,GACXpJ,EAAOlM,OAAO,GAEdwV,EAAWF,EACXJ,EAAUI,EAAY,GAAGnnB,KAAK,IAC9B+d,EAAOvZ,MAAM,GAEjB,OAAO4iB,EAAIF,KAAgBG,CAC7B,CACF,kBC9BA,IAAI3D,EAAe1N,EAAQ,MACvBiN,EAAcjN,EAAQ,MACtBkC,EAAOlC,EAAQ,MAsBnBhX,EAAOC,QAbP,SAAoBqoB,GAClB,OAAO,SAASlJ,EAAYvB,EAAW2B,GACrC,IAAIqI,EAAWrT,OAAO4K,GACtB,IAAK6E,EAAY7E,GAAa,CAC5B,IAAIN,EAAW4F,EAAa7G,EAAW,GACvCuB,EAAalG,EAAKkG,GAClBvB,EAAY,SAASxE,GAAO,OAAOyF,EAAS+I,EAASxO,GAAMA,EAAKwO,EAAW,CAC7E,CACA,IAAIpM,EAAQ6M,EAAclJ,EAAYvB,EAAW2B,GACjD,OAAO/D,GAAS,EAAIoM,EAAS/I,EAAWM,EAAW3D,GAASA,QAAS/E,CACvE,CACF,kBCtBA,IAAI6R,EAAYvR,EAAQ,MACpBwR,EAAiBxR,EAAQ,KACzByR,EAAWzR,EAAQ,MA2BvBhX,EAAOC,QAlBP,SAAqBwf,GACnB,OAAO,SAAS0F,EAAOC,EAAKC,GAa1B,OAZIA,GAAuB,iBAARA,GAAoBmD,EAAerD,EAAOC,EAAKC,KAChED,EAAMC,OAAO3O,GAGfyO,EAAQsD,EAAStD,QACLzO,IAAR0O,GACFA,EAAMD,EACNA,EAAQ,GAERC,EAAMqD,EAASrD,GAEjBC,OAAgB3O,IAAT2O,EAAsBF,EAAQC,EAAM,GAAK,EAAKqD,EAASpD,GACvDkD,EAAUpD,EAAOC,EAAKC,EAAM5F,EACrC,CACF,kBC3BA,IAAI/C,EAAM1F,EAAQ,MACd0R,EAAO1R,EAAQ,MACfqP,EAAarP,EAAQ,MAYrBoP,EAAc1J,GAAQ,EAAI2J,EAAW,IAAI3J,EAAI,CAAC,EAAE,KAAK,IAT1C,IASoE,SAASI,GAC1F,OAAO,IAAIJ,EAAII,EACjB,EAF4E4L,EAI5E1oB,EAAOC,QAAUmmB,kBClBjB,IAAInL,EAAYjE,EAAQ,MAEpBwB,EAAkB,WACpB,IACE,IAAIkF,EAAOzC,EAAUzG,OAAQ,kBAE7B,OADAkJ,EAAK,CAAC,EAAG,GAAI,CAAC,GACPA,CACT,CAAE,MAAO1e,GAAI,CACf,CANsB,GAQtBgB,EAAOC,QAAUuY,kBCVjB,IAAIqE,EAAW7F,EAAQ,MACnB2R,EAAY3R,EAAQ,MACpBmP,EAAWnP,EAAQ,MAiFvBhX,EAAOC,QA9DP,SAAqB2d,EAAO8C,EAAOQ,EAASC,EAAYS,EAAWR,GACjE,IAAIwH,EAjBqB,EAiBT1H,EACZ2H,EAAYjL,EAAM9c,OAClBgoB,EAAYpI,EAAM5f,OAEtB,GAAI+nB,GAAaC,KAAeF,GAAaE,EAAYD,GACvD,OAAO,EAGT,IAAIE,EAAa3H,EAAMtb,IAAI8X,GACvBoL,EAAa5H,EAAMtb,IAAI4a,GAC3B,GAAIqI,GAAcC,EAChB,OAAOD,GAAcrI,GAASsI,GAAcpL,EAE9C,IAAInC,GAAS,EACTsC,GAAS,EACTyI,EA/BuB,EA+BftF,EAAoC,IAAIrE,OAAWnG,EAM/D,IAJA0K,EAAMlc,IAAI0Y,EAAO8C,GACjBU,EAAMlc,IAAIwb,EAAO9C,KAGRnC,EAAQoN,GAAW,CAC1B,IAAII,EAAWrL,EAAMnC,GACjByN,EAAWxI,EAAMjF,GAErB,GAAI0F,EACF,IAAIgI,EAAWP,EACXzH,EAAW+H,EAAUD,EAAUxN,EAAOiF,EAAO9C,EAAOwD,GACpDD,EAAW8H,EAAUC,EAAUzN,EAAOmC,EAAO8C,EAAOU,GAE1D,QAAiB1K,IAAbyS,EAAwB,CAC1B,GAAIA,EACF,SAEFpL,GAAS,EACT,KACF,CAEA,GAAIyI,GACF,IAAKmC,EAAUjI,GAAO,SAASwI,EAAUE,GACnC,IAAKjD,EAASK,EAAM4C,KACfH,IAAaC,GAAYtH,EAAUqH,EAAUC,EAAUhI,EAASC,EAAYC,IAC/E,OAAOoF,EAAKna,KAAK+c,EAErB,IAAI,CACNrL,GAAS,EACT,KACF,OACK,GACDkL,IAAaC,IACXtH,EAAUqH,EAAUC,EAAUhI,EAASC,EAAYC,GACpD,CACLrD,GAAS,EACT,KACF,CACF,CAGA,OAFAqD,EAAc,OAAExD,GAChBwD,EAAc,OAAEV,GACT3C,CACT,kBCjFA,IAAInf,EAASoY,EAAQ,MACjBwG,EAAaxG,EAAQ,MACrBnJ,EAAKmJ,EAAQ,MACbqK,EAAcrK,EAAQ,MACtBqS,EAAarS,EAAQ,MACrBqP,EAAarP,EAAQ,MAqBrB4O,EAAchnB,EAASA,EAAOoE,eAAY0T,EAC1C4S,EAAgB1D,EAAcA,EAAYxgB,aAAUsR,EAoFxD1W,EAAOC,QAjEP,SAAoB+e,EAAQ0B,EAAO6I,EAAKrI,EAASC,EAAYS,EAAWR,GACtE,OAAQmI,GACN,IAzBc,oBA0BZ,GAAKvK,EAAOwK,YAAc9I,EAAM8I,YAC3BxK,EAAOyK,YAAc/I,EAAM+I,WAC9B,OAAO,EAETzK,EAASA,EAAO0K,OAChBhJ,EAAQA,EAAMgJ,OAEhB,IAlCiB,uBAmCf,QAAK1K,EAAOwK,YAAc9I,EAAM8I,aAC3B5H,EAAU,IAAIpE,EAAWwB,GAAS,IAAIxB,EAAWkD,KAKxD,IAnDU,mBAoDV,IAnDU,gBAoDV,IAjDY,kBAoDV,OAAO7S,GAAImR,GAAS0B,GAEtB,IAxDW,iBAyDT,OAAO1B,EAAOxe,MAAQkgB,EAAMlgB,MAAQwe,EAAO2K,SAAWjJ,EAAMiJ,QAE9D,IAxDY,kBAyDZ,IAvDY,kBA2DV,OAAO3K,GAAW0B,EAAQ,GAE5B,IAjES,eAkEP,IAAIkJ,EAAUP,EAEhB,IAjES,eAkEP,IAAIT,EA5EiB,EA4EL1H,EAGhB,GAFA0I,IAAYA,EAAUvD,GAElBrH,EAAOzB,MAAQmD,EAAMnD,OAASqL,EAChC,OAAO,EAGT,IAAIiB,EAAUzI,EAAMtb,IAAIkZ,GACxB,GAAI6K,EACF,OAAOA,GAAWnJ,EAEpBQ,GAtFuB,EAyFvBE,EAAMlc,IAAI8Z,EAAQ0B,GAClB,IAAI3C,EAASsD,EAAYuI,EAAQ5K,GAAS4K,EAAQlJ,GAAQQ,EAASC,EAAYS,EAAWR,GAE1F,OADAA,EAAc,OAAEpC,GACTjB,EAET,IAnFY,kBAoFV,GAAIuL,EACF,OAAOA,EAActf,KAAKgV,IAAWsK,EAActf,KAAK0W,GAG9D,OAAO,CACT,kBC7GA,IAAIoJ,EAAa9S,EAAQ,MASrB3C,EAHcG,OAAOxR,UAGQqR,eAgFjCrU,EAAOC,QAjEP,SAAsB+e,EAAQ0B,EAAOQ,EAASC,EAAYS,EAAWR,GACnE,IAAIwH,EAtBqB,EAsBT1H,EACZ6I,EAAWD,EAAW9K,GACtBgL,EAAYD,EAASjpB,OAIzB,GAAIkpB,GAHWF,EAAWpJ,GACD5f,SAEM8nB,EAC7B,OAAO,EAGT,IADA,IAAInN,EAAQuO,EACLvO,KAAS,CACd,IAAIpC,EAAM0Q,EAAStO,GACnB,KAAMmN,EAAYvP,KAAOqH,EAAQrM,EAAerK,KAAK0W,EAAOrH,IAC1D,OAAO,CAEX,CAEA,IAAI4Q,EAAa7I,EAAMtb,IAAIkZ,GACvBgK,EAAa5H,EAAMtb,IAAI4a,GAC3B,GAAIuJ,GAAcjB,EAChB,OAAOiB,GAAcvJ,GAASsI,GAAchK,EAE9C,IAAIjB,GAAS,EACbqD,EAAMlc,IAAI8Z,EAAQ0B,GAClBU,EAAMlc,IAAIwb,EAAO1B,GAGjB,IADA,IAAIkL,EAAWtB,IACNnN,EAAQuO,GAAW,CAE1B,IAAIrH,EAAW3D,EADf3F,EAAM0Q,EAAStO,IAEXyN,EAAWxI,EAAMrH,GAErB,GAAI8H,EACF,IAAIgI,EAAWP,EACXzH,EAAW+H,EAAUvG,EAAUtJ,EAAKqH,EAAO1B,EAAQoC,GACnDD,EAAWwB,EAAUuG,EAAU7P,EAAK2F,EAAQ0B,EAAOU,GAGzD,UAAmB1K,IAAbyS,EACGxG,IAAauG,GAAYtH,EAAUe,EAAUuG,EAAUhI,EAASC,EAAYC,GAC7E+H,GACD,CACLpL,GAAS,EACT,KACF,CACAmM,IAAaA,EAAkB,eAAP7Q,EAC1B,CACA,GAAI0E,IAAWmM,EAAU,CACvB,IAAIC,EAAUnL,EAAO9S,YACjBke,EAAU1J,EAAMxU,YAGhBie,GAAWC,KACV,gBAAiBpL,MAAU,gBAAiB0B,IACzB,mBAAXyJ,GAAyBA,aAAmBA,GACjC,mBAAXC,GAAyBA,aAAmBA,IACvDrM,GAAS,EAEb,CAGA,OAFAqD,EAAc,OAAEpC,GAChBoC,EAAc,OAAEV,GACT3C,CACT,kBCtFA,IAAIsM,EAA8B,iBAAVC,EAAAA,GAAsBA,EAAAA,GAAUA,EAAAA,EAAO9V,SAAWA,QAAU8V,EAAAA,EAEpFtqB,EAAOC,QAAUoqB,kBCHjB,IAAIE,EAAiBvT,EAAQ,MACzBwT,EAAaxT,EAAQ,MACrBkC,EAAOlC,EAAQ,MAanBhX,EAAOC,QAJP,SAAoB+e,GAClB,OAAOuL,EAAevL,EAAQ9F,EAAMsR,EACtC,kBCbA,IAAIC,EAAYzT,EAAQ,KAiBxBhX,EAAOC,QAPP,SAAoBkJ,EAAKkQ,GACvB,IAAIiE,EAAOnU,EAAI4T,SACf,OAAO0N,EAAUpR,GACbiE,EAAmB,iBAAPjE,EAAkB,SAAW,QACzCiE,EAAKnU,GACX,kBCfA,IAAIob,EAAqBvN,EAAQ,MAC7BkC,EAAOlC,EAAQ,MAsBnBhX,EAAOC,QAbP,SAAsB+e,GAIpB,IAHA,IAAIjB,EAAS7E,EAAK8F,GACdle,EAASid,EAAOjd,OAEbA,KAAU,CACf,IAAIuY,EAAM0E,EAAOjd,GACb6S,EAAQqL,EAAO3F,GAEnB0E,EAAOjd,GAAU,CAACuY,EAAK1F,EAAO4Q,EAAmB5Q,GACnD,CACA,OAAOoK,CACT,kBCrBA,IAAI2M,EAAe1T,EAAQ,MACvB2T,EAAW3T,EAAQ,MAevBhX,EAAOC,QALP,SAAmB+e,EAAQ3F,GACzB,IAAI1F,EAAQgX,EAAS3L,EAAQ3F,GAC7B,OAAOqR,EAAa/W,GAASA,OAAQ+C,CACvC,kBCdA,IAGIkU,EAHU5T,EAAQ,KAGH6T,CAAQrW,OAAOmE,eAAgBnE,QAElDxU,EAAOC,QAAU2qB,kBCLjB,IAAIhsB,EAASoY,EAAQ,MAGjBqM,EAAc7O,OAAOxR,UAGrBqR,EAAiBgP,EAAYhP,eAO7ByW,EAAuBzH,EAAY1e,SAGnC6b,EAAiB5hB,EAASA,EAAO6hB,iBAAc/J,EA6BnD1W,EAAOC,QApBP,SAAmB0T,GACjB,IAAIoX,EAAQ1W,EAAerK,KAAK2J,EAAO6M,GACnC+I,EAAM5V,EAAM6M,GAEhB,IACE7M,EAAM6M,QAAkB9J,EACxB,IAAIsU,GAAW,CACjB,CAAE,MAAOhsB,GAAI,CAEb,IAAI+e,EAAS+M,EAAqB9gB,KAAK2J,GAQvC,OAPIqX,IACED,EACFpX,EAAM6M,GAAkB+I,SAEjB5V,EAAM6M,IAGVzC,CACT,kBC3CA,IAAIkN,EAAcjU,EAAQ,MACtBkU,EAAYlU,EAAQ,MAMpBmU,EAHc3W,OAAOxR,UAGcmoB,qBAGnCC,EAAmB5W,OAAOsB,sBAS1B0U,EAAcY,EAA+B,SAASpM,GACxD,OAAc,MAAVA,EACK,IAETA,EAASxK,OAAOwK,GACTiM,EAAYG,EAAiBpM,IAAS,SAASqM,GACpD,OAAOF,EAAqBnhB,KAAKgV,EAAQqM,EAC3C,IACF,EARqCH,EAUrClrB,EAAOC,QAAUuqB,kBC7BjB,IAAIxP,EAAWhE,EAAQ,MACnBkF,EAAMlF,EAAQ,MACdyF,EAAUzF,EAAQ,MAClB0F,EAAM1F,EAAQ,MACdyG,EAAUzG,EAAQ,MAClB8J,EAAa9J,EAAQ,MACrBiM,EAAWjM,EAAQ,MAGnBsU,EAAS,eAETC,EAAa,mBACbC,EAAS,eACTC,EAAa,mBAEbC,EAAc,oBAGdC,EAAqB1I,EAASjI,GAC9B4Q,EAAgB3I,EAAS/G,GACzB2P,EAAoB5I,EAASxG,GAC7BqP,EAAgB7I,EAASvG,GACzBqP,EAAoB9I,EAASxF,GAS7B+D,EAASV,GAGR9F,GAAYwG,EAAO,IAAIxG,EAAS,IAAIgR,YAAY,MAAQN,GACxDxP,GAAOsF,EAAO,IAAItF,IAAQoP,GAC1B7O,GAAW+E,EAAO/E,EAAQwP,YAAcV,GACxC7O,GAAO8E,EAAO,IAAI9E,IAAQ8O,GAC1B/N,GAAW+D,EAAO,IAAI/D,IAAYgO,KACrCjK,EAAS,SAAS7N,GAChB,IAAIoK,EAAS+C,EAAWnN,GACpB1H,EA/BQ,mBA+BD8R,EAAsBpK,EAAMzH,iBAAcwK,EACjDwV,EAAajgB,EAAOgX,EAAShX,GAAQ,GAEzC,GAAIigB,EACF,OAAQA,GACN,KAAKP,EAAoB,OAAOD,EAChC,KAAKE,EAAe,OAAON,EAC3B,KAAKO,EAAmB,OAAON,EAC/B,KAAKO,EAAe,OAAON,EAC3B,KAAKO,EAAmB,OAAON,EAGnC,OAAO1N,CACT,GAGF/d,EAAOC,QAAUuhB,YC7CjBxhB,EAAOC,QAJP,SAAkB+e,EAAQ3F,GACxB,OAAiB,MAAV2F,OAAiBtI,EAAYsI,EAAO3F,EAC7C,kBCVA,IAAI4G,EAAWjJ,EAAQ,MACnBmH,EAAcnH,EAAQ,MACtBoH,EAAUpH,EAAQ,MAClBsH,EAAUtH,EAAQ,MAClByM,EAAWzM,EAAQ,MACnBkJ,EAAQlJ,EAAQ,KAiCpBhX,EAAOC,QAtBP,SAAiB+e,EAAQmB,EAAMgM,GAO7B,IAJA,IAAI1Q,GAAS,EACT3a,GAHJqf,EAAOF,EAASE,EAAMnB,IAGJle,OACdid,GAAS,IAEJtC,EAAQ3a,GAAQ,CACvB,IAAIuY,EAAM6G,EAAMC,EAAK1E,IACrB,KAAMsC,EAAmB,MAAViB,GAAkBmN,EAAQnN,EAAQ3F,IAC/C,MAEF2F,EAASA,EAAO3F,EAClB,CACA,OAAI0E,KAAYtC,GAAS3a,EAChBid,KAETjd,EAAmB,MAAVke,EAAiB,EAAIA,EAAOle,SAClB2iB,EAAS3iB,IAAWwd,EAAQjF,EAAKvY,KACjDsd,EAAQY,IAAWb,EAAYa,GACpC,YCnCA,IAWIoN,EAAe5I,OAAO,uFAa1BxjB,EAAOC,QAJP,SAAoB8e,GAClB,OAAOqN,EAAahpB,KAAK2b,EAC3B,kBCvBA,IAAIsN,EAAerV,EAAQ,MAc3BhX,EAAOC,QALP,WACE6C,KAAKia,SAAWsP,EAAeA,EAAa,MAAQ,CAAC,EACrDvpB,KAAKya,KAAO,CACd,YCIAvd,EAAOC,QANP,SAAoBoZ,GAClB,IAAI0E,EAASjb,KAAKyR,IAAI8E,WAAevW,KAAKia,SAAS1D,GAEnD,OADAvW,KAAKya,MAAQQ,EAAS,EAAI,EACnBA,CACT,kBCdA,IAAIsO,EAAerV,EAAQ,MASvB3C,EAHcG,OAAOxR,UAGQqR,eAoBjCrU,EAAOC,QATP,SAAiBoZ,GACf,IAAIiE,EAAOxa,KAAKia,SAChB,GAAIsP,EAAc,CAChB,IAAItO,EAAST,EAAKjE,GAClB,MArBiB,8BAqBV0E,OAA4BrH,EAAYqH,CACjD,CACA,OAAO1J,EAAerK,KAAKsT,EAAMjE,GAAOiE,EAAKjE,QAAO3C,CACtD,kBC3BA,IAAI2V,EAAerV,EAAQ,MAMvB3C,EAHcG,OAAOxR,UAGQqR,eAgBjCrU,EAAOC,QALP,SAAiBoZ,GACf,IAAIiE,EAAOxa,KAAKia,SAChB,OAAOsP,OAA8B3V,IAAd4G,EAAKjE,GAAsBhF,EAAerK,KAAKsT,EAAMjE,EAC9E,kBCpBA,IAAIgT,EAAerV,EAAQ,MAsB3BhX,EAAOC,QAPP,SAAiBoZ,EAAK1F,GACpB,IAAI2J,EAAOxa,KAAKia,SAGhB,OAFAja,KAAKya,MAAQza,KAAKyR,IAAI8E,GAAO,EAAI,EACjCiE,EAAKjE,GAAQgT,QAA0B3V,IAAV/C,EAfV,4BAekDA,EAC9D7Q,IACT,kBCpBA,IAAIlE,EAASoY,EAAQ,MACjBmH,EAAcnH,EAAQ,MACtBoH,EAAUpH,EAAQ,MAGlBsV,EAAmB1tB,EAASA,EAAO2tB,wBAAqB7V,EAc5D1W,EAAOC,QALP,SAAuB0T,GACrB,OAAOyK,EAAQzK,IAAUwK,EAAYxK,OAChC2Y,GAAoB3Y,GAASA,EAAM2Y,GAC1C,YChBA,IAGIE,EAAW,mBAoBfxsB,EAAOC,QAVP,SAAiB0T,EAAO7S,GACtB,IAAIf,SAAc4T,EAGlB,SAFA7S,EAAmB,MAAVA,EAfY,iBAewBA,KAGlC,UAARf,GACU,UAARA,GAAoBysB,EAASppB,KAAKuQ,KAChCA,GAAS,GAAKA,EAAQ,GAAK,GAAKA,EAAQ7S,CACjD,iBCtBA,IAAI+M,EAAKmJ,EAAQ,MACbiN,EAAcjN,EAAQ,MACtBsH,EAAUtH,EAAQ,MAClBgM,EAAWhM,EAAQ,MA0BvBhX,EAAOC,QAdP,SAAwB0T,EAAO8H,EAAOuD,GACpC,IAAKgE,EAAShE,GACZ,OAAO,EAET,IAAIjf,SAAc0b,EAClB,SAAY,UAAR1b,EACKkkB,EAAYjF,IAAWV,EAAQ7C,EAAOuD,EAAOle,QACrC,UAARf,GAAoB0b,KAASuD,IAE7BnR,EAAGmR,EAAOvD,GAAQ9H,EAG7B,kBC3BA,IAAIyK,EAAUpH,EAAQ,MAClBqI,EAAWrI,EAAQ,MAGnByV,EAAe,mDACfC,EAAgB,QAuBpB1sB,EAAOC,QAbP,SAAe0T,EAAOqL,GACpB,GAAIZ,EAAQzK,GACV,OAAO,EAET,IAAI5T,SAAc4T,EAClB,QAAY,UAAR5T,GAA4B,UAARA,GAA4B,WAARA,GAC/B,MAAT4T,IAAiB0L,EAAS1L,MAGvB+Y,EAActpB,KAAKuQ,KAAW8Y,EAAarpB,KAAKuQ,IAC1C,MAAVqL,GAAkBrL,KAASa,OAAOwK,GACvC,WCZAhf,EAAOC,QAPP,SAAmB0T,GACjB,IAAI5T,SAAc4T,EAClB,MAAgB,UAAR5T,GAA4B,UAARA,GAA4B,UAARA,GAA4B,WAARA,EACrD,cAAV4T,EACU,OAAVA,CACP,kBCZA,IAAIgU,EAAa3Q,EAAQ,MAGrB2V,EAAc,WAChB,IAAIC,EAAM,SAAS7iB,KAAK4d,GAAcA,EAAWzO,MAAQyO,EAAWzO,KAAK2T,UAAY,IACrF,OAAOD,EAAO,iBAAmBA,EAAO,EAC1C,CAHkB,GAgBlB5sB,EAAOC,QAJP,SAAkByd,GAChB,QAASiP,GAAeA,KAAcjP,CACxC,YChBA,IAAI2F,EAAc7O,OAAOxR,UAgBzBhD,EAAOC,QAPP,SAAqB0T,GACnB,IAAI1H,EAAO0H,GAASA,EAAMzH,YAG1B,OAAOyH,KAFqB,mBAAR1H,GAAsBA,EAAKjJ,WAAcqgB,EAG/D,kBCfA,IAAIL,EAAWhM,EAAQ,MAcvBhX,EAAOC,QAJP,SAA4B0T,GAC1B,OAAOA,IAAUA,IAAUqP,EAASrP,EACtC,YCAA3T,EAAOC,QALP,WACE6C,KAAKia,SAAW,GAChBja,KAAKya,KAAO,CACd,kBCVA,IAAIuP,EAAe9V,EAAQ,MAMvB+V,EAHahsB,MAAMiC,UAGC+pB,OA4BxB/sB,EAAOC,QAjBP,SAAyBoZ,GACvB,IAAIiE,EAAOxa,KAAKia,SACZtB,EAAQqR,EAAaxP,EAAMjE,GAE/B,QAAIoC,EAAQ,KAIRA,GADY6B,EAAKxc,OAAS,EAE5Bwc,EAAK/Q,MAELwgB,EAAO/iB,KAAKsT,EAAM7B,EAAO,KAEzB3Y,KAAKya,MACA,EACT,kBChCA,IAAIuP,EAAe9V,EAAQ,MAkB3BhX,EAAOC,QAPP,SAAsBoZ,GACpB,IAAIiE,EAAOxa,KAAKia,SACZtB,EAAQqR,EAAaxP,EAAMjE,GAE/B,OAAOoC,EAAQ,OAAI/E,EAAY4G,EAAK7B,GAAO,EAC7C,kBChBA,IAAIqR,EAAe9V,EAAQ,MAe3BhX,EAAOC,QAJP,SAAsBoZ,GACpB,OAAOyT,EAAahqB,KAAKia,SAAU1D,IAAQ,CAC7C,kBCbA,IAAIyT,EAAe9V,EAAQ,MAyB3BhX,EAAOC,QAbP,SAAsBoZ,EAAK1F,GACzB,IAAI2J,EAAOxa,KAAKia,SACZtB,EAAQqR,EAAaxP,EAAMjE,GAQ/B,OANIoC,EAAQ,KACR3Y,KAAKya,KACPD,EAAKjR,KAAK,CAACgN,EAAK1F,KAEhB2J,EAAK7B,GAAO,GAAK9H,EAEZ7Q,IACT,kBCvBA,IAAIyY,EAAOvE,EAAQ,MACfiF,EAAYjF,EAAQ,MACpBkF,EAAMlF,EAAQ,MAkBlBhX,EAAOC,QATP,WACE6C,KAAKya,KAAO,EACZza,KAAKia,SAAW,CACd,KAAQ,IAAIxB,EACZ,IAAO,IAAKW,GAAOD,GACnB,OAAU,IAAIV,EAElB,kBClBA,IAAIyR,EAAahW,EAAQ,MAiBzBhX,EAAOC,QANP,SAAwBoZ,GACtB,IAAI0E,EAASiP,EAAWlqB,KAAMuW,GAAa,OAAEA,GAE7C,OADAvW,KAAKya,MAAQQ,EAAS,EAAI,EACnBA,CACT,iBCfA,IAAIiP,EAAahW,EAAQ,MAezBhX,EAAOC,QAJP,SAAqBoZ,GACnB,OAAO2T,EAAWlqB,KAAMuW,GAAKvT,IAAIuT,EACnC,kBCbA,IAAI2T,EAAahW,EAAQ,MAezBhX,EAAOC,QAJP,SAAqBoZ,GACnB,OAAO2T,EAAWlqB,KAAMuW,GAAK9E,IAAI8E,EACnC,kBCbA,IAAI2T,EAAahW,EAAQ,MAqBzBhX,EAAOC,QATP,SAAqBoZ,EAAK1F,GACxB,IAAI2J,EAAO0P,EAAWlqB,KAAMuW,GACxBkE,EAAOD,EAAKC,KAIhB,OAFAD,EAAKpY,IAAImU,EAAK1F,GACd7Q,KAAKya,MAAQD,EAAKC,MAAQA,EAAO,EAAI,EAC9Bza,IACT,YCFA9C,EAAOC,QAVP,SAAoBkJ,GAClB,IAAIsS,GAAS,EACTsC,EAAShd,MAAMoI,EAAIoU,MAKvB,OAHApU,EAAItC,SAAQ,SAAS8M,EAAO0F,GAC1B0E,IAAStC,GAAS,CAACpC,EAAK1F,EAC1B,IACOoK,CACT,YCIA/d,EAAOC,QAVP,SAAiCoZ,EAAKuJ,GACpC,OAAO,SAAS5D,GACd,OAAc,MAAVA,IAGGA,EAAO3F,KAASuJ,SACPlM,IAAbkM,GAA2BvJ,KAAO7E,OAAOwK,IAC9C,CACF,kBCjBA,IAAIiO,EAAUjW,EAAQ,MAyBtBhX,EAAOC,QAZP,SAAuByd,GACrB,IAAIK,EAASkP,EAAQvP,GAAM,SAASrE,GAIlC,OAfmB,MAYfsN,EAAMpJ,MACRoJ,EAAMjL,QAEDrC,CACT,IAEIsN,EAAQ5I,EAAO4I,MACnB,OAAO5I,CACT,kBCvBA,IAGIsO,EAHYrV,EAAQ,KAGLiE,CAAUzG,OAAQ,UAErCxU,EAAOC,QAAUosB,kBCLjB,IAGIrI,EAHUhN,EAAQ,KAGL6T,CAAQrW,OAAO0E,KAAM1E,QAEtCxU,EAAOC,QAAU+jB,6BCLjB,IAAIqG,EAAarT,EAAQ,MAGrBkW,EAA4CjtB,IAAYA,EAAQktB,UAAYltB,EAG5EmtB,EAAaF,GAA4CltB,IAAWA,EAAOmtB,UAAYntB,EAMvFqtB,EAHgBD,GAAcA,EAAWntB,UAAYitB,GAGtB7C,EAAWiD,QAG1CC,EAAY,WACd,IAEE,IAAIC,EAAQJ,GAAcA,EAAWpW,SAAWoW,EAAWpW,QAAQ,QAAQwW,MAE3E,OAAIA,GAKGH,GAAeA,EAAYI,SAAWJ,EAAYI,QAAQ,OACnE,CAAE,MAAOzuB,GAAI,CACf,CAZgB,GAchBgB,EAAOC,QAAUstB,YC5BjB,IAOIzC,EAPctW,OAAOxR,UAOc2B,SAavC3E,EAAOC,QAJP,SAAwB0T,GACtB,OAAOmX,EAAqB9gB,KAAK2J,EACnC,YCLA3T,EAAOC,QANP,SAAiByd,EAAMgQ,GACrB,OAAO,SAASC,GACd,OAAOjQ,EAAKgQ,EAAUC,GACxB,CACF,kBCZA,IAAIpoB,EAAQyR,EAAQ,MAGhBkO,EAAY/jB,KAAKsL,IAgCrBzM,EAAOC,QArBP,SAAkByd,EAAMyH,EAAOuI,GAE7B,OADAvI,EAAQD,OAAoBxO,IAAVyO,EAAuBzH,EAAK5c,OAAS,EAAKqkB,EAAO,GAC5D,WAML,IALA,IAAI9iB,EAAOC,UACPmZ,GAAS,EACT3a,EAASokB,EAAU7iB,EAAKvB,OAASqkB,EAAO,GACxCvH,EAAQ7c,MAAMD,KAET2a,EAAQ3a,GACf8c,EAAMnC,GAASpZ,EAAK8iB,EAAQ1J,GAE9BA,GAAS,EAET,IADA,IAAImS,EAAY7sB,MAAMokB,EAAQ,KACrB1J,EAAQ0J,GACfyI,EAAUnS,GAASpZ,EAAKoZ,GAG1B,OADAmS,EAAUzI,GAASuI,EAAU9P,GACtBrY,EAAMmY,EAAM5a,KAAM8qB,EAC3B,CACF,kBCjCA,IAAIvD,EAAarT,EAAQ,MAGrB6W,EAA0B,iBAARC,MAAoBA,MAAQA,KAAKtZ,SAAWA,QAAUsZ,KAGxEC,EAAO1D,GAAcwD,GAAYzK,SAAS,cAATA,GAErCpjB,EAAOC,QAAU8tB,YCUjB/tB,EAAOC,QALP,SAAqB0T,GAEnB,OADA7Q,KAAKia,SAAS7X,IAAIyO,EAbC,6BAcZ7Q,IACT,YCHA9C,EAAOC,QAJP,SAAqB0T,GACnB,OAAO7Q,KAAKia,SAASxI,IAAIZ,EAC3B,YCMA3T,EAAOC,QAVP,SAAoBiF,GAClB,IAAIuW,GAAS,EACTsC,EAAShd,MAAMmE,EAAIqY,MAKvB,OAHArY,EAAI2B,SAAQ,SAAS8M,GACnBoK,IAAStC,GAAS9H,CACpB,IACOoK,CACT,kBCfA,IAAI0H,EAAkBzO,EAAQ,MAW1BuO,EAVWvO,EAAQ,KAULgX,CAASvI,GAE3BzlB,EAAOC,QAAUslB,YCZjB,IAII0I,EAAY/qB,KAAKgrB,IA+BrBluB,EAAOC,QApBP,SAAkByd,GAChB,IAAIyQ,EAAQ,EACRC,EAAa,EAEjB,OAAO,WACL,IAAIC,EAAQJ,IACRK,EApBO,IAoBiBD,EAAQD,GAGpC,GADAA,EAAaC,EACTC,EAAY,GACd,KAAMH,GAzBI,IA0BR,OAAO7rB,UAAU,QAGnB6rB,EAAQ,EAEV,OAAOzQ,EAAKnY,WAAMmR,EAAWpU,UAC/B,CACF,kBClCA,IAAI2Z,EAAYjF,EAAQ,MAcxBhX,EAAOC,QALP,WACE6C,KAAKia,SAAW,IAAId,EACpBnZ,KAAKya,KAAO,CACd,WCKAvd,EAAOC,QARP,SAAqBoZ,GACnB,IAAIiE,EAAOxa,KAAKia,SACZgB,EAAST,EAAa,OAAEjE,GAG5B,OADAvW,KAAKya,KAAOD,EAAKC,KACVQ,CACT,YCFA/d,EAAOC,QAJP,SAAkBoZ,GAChB,OAAOvW,KAAKia,SAASjX,IAAIuT,EAC3B,YCEArZ,EAAOC,QAJP,SAAkBoZ,GAChB,OAAOvW,KAAKia,SAASxI,IAAI8E,EAC3B,kBCXA,IAAI4C,EAAYjF,EAAQ,MACpBkF,EAAMlF,EAAQ,MACdwF,EAAWxF,EAAQ,MA+BvBhX,EAAOC,QAhBP,SAAkBoZ,EAAK1F,GACrB,IAAI2J,EAAOxa,KAAKia,SAChB,GAAIO,aAAgBrB,EAAW,CAC7B,IAAIsS,EAAQjR,EAAKP,SACjB,IAAKb,GAAQqS,EAAMztB,OAAS0tB,IAG1B,OAFAD,EAAMliB,KAAK,CAACgN,EAAK1F,IACjB7Q,KAAKya,OAASD,EAAKC,KACZza,KAETwa,EAAOxa,KAAKia,SAAW,IAAIP,EAAS+R,EACtC,CAGA,OAFAjR,EAAKpY,IAAImU,EAAK1F,GACd7Q,KAAKya,KAAOD,EAAKC,KACVza,IACT,YCTA9C,EAAOC,QAZP,SAAuB2d,EAAOjK,EAAO6L,GAInC,IAHA,IAAI/D,EAAQ+D,EAAY,EACpB1e,EAAS8c,EAAM9c,SAEV2a,EAAQ3a,GACf,GAAI8c,EAAMnC,KAAW9H,EACnB,OAAO8H,EAGX,OAAQ,CACV,kBCpBA,IAAIgT,EAAezX,EAAQ,MACvBgR,EAAahR,EAAQ,MACrB0X,EAAiB1X,EAAQ,KAe7BhX,EAAOC,QANP,SAAuB8e,GACrB,OAAOiJ,EAAWjJ,GACd2P,EAAe3P,GACf0P,EAAa1P,EACnB,kBCfA,IAAI4P,EAAgB3X,EAAQ,MAGxB4X,EAAa,mGAGbC,EAAe,WASfjI,EAAe+H,GAAc,SAAS5P,GACxC,IAAIhB,EAAS,GAOb,OAN6B,KAAzBgB,EAAO/L,WAAW,IACpB+K,EAAO1R,KAAK,IAEd0S,EAAO9c,QAAQ2sB,GAAY,SAASvrB,EAAOyrB,EAAQC,EAAOC,GACxDjR,EAAO1R,KAAK0iB,EAAQC,EAAU/sB,QAAQ4sB,EAAc,MAASC,GAAUzrB,EACzE,IACO0a,CACT,IAEA/d,EAAOC,QAAU2mB,iBC1BjB,IAAIvH,EAAWrI,EAAQ,MAoBvBhX,EAAOC,QARP,SAAe0T,GACb,GAAoB,iBAATA,GAAqB0L,EAAS1L,GACvC,OAAOA,EAET,IAAIoK,EAAUpK,EAAQ,GACtB,MAAkB,KAAVoK,GAAkB,EAAIpK,IAAU,IAAa,KAAOoK,CAC9D,YCjBA,IAGIuF,EAHYF,SAASpgB,UAGI2B,SAqB7B3E,EAAOC,QAZP,SAAkByd,GAChB,GAAY,MAARA,EAAc,CAChB,IACE,OAAO4F,EAAatZ,KAAK0T,EAC3B,CAAE,MAAO1e,GAAI,CACb,IACE,OAAQ0e,EAAO,EACjB,CAAE,MAAO1e,GAAI,CACf,CACA,MAAO,EACT,WCtBA,IAAIiwB,EAAe,KAiBnBjvB,EAAOC,QAPP,SAAyB8e,GAGvB,IAFA,IAAItD,EAAQsD,EAAOje,OAEZ2a,KAAWwT,EAAa7rB,KAAK2b,EAAOlM,OAAO4I,MAClD,OAAOA,CACT,WCfA,IAAIyT,EAAgB,kBAQhBC,EAAW,IAAMD,EAAgB,IACjCE,EAAU,kDACVC,EAAS,2BAETC,EAAc,KAAOJ,EAAgB,IACrCK,EAAa,kCACbC,EAAa,qCAIbC,EAPa,MAAQL,EAAU,IAAMC,EAAS,IAOtB,IACxBK,EAAW,oBAEXC,EAAQD,EAAWD,GADP,gBAAwB,CAACH,EAAaC,EAAYC,GAAYxuB,KAAK,KAAO,IAAM0uB,EAAWD,EAAW,MAElHG,EAAW,MAAQ,CAACN,EAAcF,EAAU,IAAKA,EAASG,EAAYC,EAAYL,GAAUnuB,KAAK,KAAO,IAGxG6uB,EAAYrM,OAAO6L,EAAS,MAAQA,EAAS,KAAOO,EAAWD,EAAO,KAa1E3vB,EAAOC,QAJP,SAAwB8e,GACtB,OAAOA,EAAO1b,MAAMwsB,IAAc,EACpC,YCZA7vB,EAAOC,QANP,SAAkB0T,GAChB,OAAO,WACL,OAAOA,CACT,CACF,kBCvBA,IAAIqP,EAAWhM,EAAQ,MACnBkX,EAAMlX,EAAQ,MACdpG,EAAWoG,EAAQ,KAMnBkO,EAAY/jB,KAAKsL,IACjBqjB,EAAY3uB,KAAKyE,IAqLrB5F,EAAOC,QA7HP,SAAkByd,EAAMqS,EAAMC,GAC5B,IAAIC,EACAC,EACAC,EACApS,EACAqS,EACAC,EACAC,EAAiB,EACjBC,GAAU,EACVC,GAAS,EACTnI,GAAW,EAEf,GAAmB,mBAAR3K,EACT,MAAM,IAAIxI,UAzEQ,uBAmFpB,SAASub,EAAWC,GAClB,IAAIruB,EAAO4tB,EACPtS,EAAUuS,EAKd,OAHAD,EAAWC,OAAWxZ,EACtB4Z,EAAiBI,EACjB3S,EAASL,EAAKnY,MAAMoY,EAAStb,EAE/B,CAqBA,SAASsuB,EAAaD,GACpB,IAAIE,EAAoBF,EAAOL,EAM/B,YAAyB3Z,IAAjB2Z,GAA+BO,GAAqBb,GACzDa,EAAoB,GAAOJ,GANJE,EAAOJ,GAM8BH,CACjE,CAEA,SAASU,IACP,IAAIH,EAAOxC,IACX,GAAIyC,EAAaD,GACf,OAAOI,EAAaJ,GAGtBN,EAAUW,WAAWF,EA3BvB,SAAuBH,GACrB,IAEIM,EAAcjB,GAFMW,EAAOL,GAI/B,OAAOG,EACHV,EAAUkB,EAAab,GAJDO,EAAOJ,IAK7BU,CACN,CAmBqCC,CAAcP,GACnD,CAEA,SAASI,EAAaJ,GAKpB,OAJAN,OAAU1Z,EAIN2R,GAAY4H,EACPQ,EAAWC,IAEpBT,EAAWC,OAAWxZ,EACfqH,EACT,CAcA,SAASmT,IACP,IAAIR,EAAOxC,IACPiD,EAAaR,EAAaD,GAM9B,GAJAT,EAAW3tB,UACX4tB,EAAWptB,KACXutB,EAAeK,EAEXS,EAAY,CACd,QAAgBza,IAAZ0Z,EACF,OAzEN,SAAqBM,GAMnB,OAJAJ,EAAiBI,EAEjBN,EAAUW,WAAWF,EAAcd,GAE5BQ,EAAUE,EAAWC,GAAQ3S,CACtC,CAkEaqT,CAAYf,GAErB,GAAIG,EAIF,OAFAa,aAAajB,GACbA,EAAUW,WAAWF,EAAcd,GAC5BU,EAAWJ,EAEtB,CAIA,YAHgB3Z,IAAZ0Z,IACFA,EAAUW,WAAWF,EAAcd,IAE9BhS,CACT,CAGA,OA3GAgS,EAAOnf,EAASmf,IAAS,EACrB/M,EAASgN,KACXO,IAAYP,EAAQO,QAEpBJ,GADAK,EAAS,YAAaR,GACH9K,EAAUtU,EAASof,EAAQG,UAAY,EAAGJ,GAAQI,EACrE9H,EAAW,aAAc2H,IAAYA,EAAQ3H,SAAWA,GAoG1D6I,EAAUI,OApCV,gBACkB5a,IAAZ0Z,GACFiB,aAAajB,GAEfE,EAAiB,EACjBL,EAAWI,EAAeH,EAAWE,OAAU1Z,CACjD,EA+BAwa,EAAUK,MA7BV,WACE,YAAmB7a,IAAZ0Z,EAAwBrS,EAAS+S,EAAa5C,IACvD,EA4BOgD,CACT,YCxJAlxB,EAAOC,QAJP,SAAY0T,EAAO+M,GACjB,OAAO/M,IAAU+M,GAAU/M,IAAUA,GAAS+M,IAAUA,CAC1D,kBClCA,IAAI8Q,EAAaxa,EAAQ,MACrBya,EAAYza,EAAQ,MACpB0N,EAAe1N,EAAQ,MACvBoH,EAAUpH,EAAQ,MAClBwR,EAAiBxR,EAAQ,KAmD7BhX,EAAOC,QARP,SAAemf,EAAYvB,EAAW6T,GACpC,IAAIhU,EAAOU,EAAQgB,GAAcoS,EAAaC,EAI9C,OAHIC,GAASlJ,EAAepJ,EAAYvB,EAAW6T,KACjD7T,OAAYnH,GAEPgH,EAAK0B,EAAYsF,EAAa7G,EAAW,GAClD,kBCrDA,IAuCI8T,EAvCa3a,EAAQ,KAuCd4a,CAtCK5a,EAAQ,OAwCxBhX,EAAOC,QAAU0xB,kBCzCjB,IAAIhR,EAAgB3J,EAAQ,MACxB0N,EAAe1N,EAAQ,MACvBtG,EAAYsG,EAAQ,MAGpBkO,EAAY/jB,KAAKsL,IAiDrBzM,EAAOC,QAZP,SAAmB2d,EAAOC,EAAW2B,GACnC,IAAI1e,EAAkB,MAAT8c,EAAgB,EAAIA,EAAM9c,OACvC,IAAKA,EACH,OAAQ,EAEV,IAAI2a,EAAqB,MAAb+D,EAAoB,EAAI9O,EAAU8O,GAI9C,OAHI/D,EAAQ,IACVA,EAAQyJ,EAAUpkB,EAAS2a,EAAO,IAE7BkF,EAAc/C,EAAO8G,EAAa7G,EAAW,GAAIpC,EAC1D,kBCpDA,IAAImE,EAAc5I,EAAQ,KACtB7N,EAAM6N,EAAQ,MA2BlBhX,EAAOC,QAJP,SAAiBmf,EAAYN,GAC3B,OAAOc,EAAYzW,EAAIiW,EAAYN,GAAW,EAChD,kBC1BA,IAAI2F,EAAUzN,EAAQ,MAgCtBhX,EAAOC,QALP,SAAa+e,EAAQmB,EAAM0R,GACzB,IAAI9T,EAAmB,MAAViB,OAAiBtI,EAAY+N,EAAQzF,EAAQmB,GAC1D,YAAkBzJ,IAAXqH,EAAuB8T,EAAe9T,CAC/C,kBC9BA,IAAI+T,EAAY9a,EAAQ,MACpB+a,EAAU/a,EAAQ,MAgCtBhX,EAAOC,QAJP,SAAe+e,EAAQmB,GACrB,OAAiB,MAAVnB,GAAkB+S,EAAQ/S,EAAQmB,EAAM2R,EACjD,YCXA9xB,EAAOC,QAJP,SAAkB0T,GAChB,OAAOA,CACT,kBClBA,IAAIqe,EAAkBhb,EAAQ,MAC1B+J,EAAe/J,EAAQ,MAGvBqM,EAAc7O,OAAOxR,UAGrBqR,EAAiBgP,EAAYhP,eAG7B8W,EAAuB9H,EAAY8H,qBAoBnChN,EAAc6T,EAAgB,WAAa,OAAO1vB,SAAW,CAA/B,IAAsC0vB,EAAkB,SAASre,GACjG,OAAOoN,EAAapN,IAAUU,EAAerK,KAAK2J,EAAO,YACtDwX,EAAqBnhB,KAAK2J,EAAO,SACtC,EAEA3T,EAAOC,QAAUke,YCZjB,IAAIC,EAAUrd,MAAMqd,QAEpBpe,EAAOC,QAAUme,kBCzBjB,IAAI0E,EAAa9L,EAAQ,MACrByM,EAAWzM,EAAQ,MA+BvBhX,EAAOC,QAJP,SAAqB0T,GACnB,OAAgB,MAATA,GAAiB8P,EAAS9P,EAAM7S,UAAYgiB,EAAWnP,EAChE,kBC9BA,IAAImN,EAAa9J,EAAQ,MACrB+J,EAAe/J,EAAQ,MA2B3BhX,EAAOC,QALP,SAAmB0T,GACjB,OAAiB,IAAVA,IAA4B,IAAVA,GACtBoN,EAAapN,IArBJ,oBAqBcmN,EAAWnN,EACvC,6BC1BA,IAAIoa,EAAO/W,EAAQ,MACfib,EAAYjb,EAAQ,IAGpBkW,EAA4CjtB,IAAYA,EAAQktB,UAAYltB,EAG5EmtB,EAAaF,GAA4CltB,IAAWA,EAAOmtB,UAAYntB,EAMvFkyB,EAHgB9E,GAAcA,EAAWntB,UAAYitB,EAG5Ba,EAAKmE,YAASxb,EAsBvC2H,GAnBiB6T,EAASA,EAAO7T,cAAW3H,IAmBfub,EAEjCjyB,EAAOC,QAAUoe,kBCrCjB,IAAI4C,EAAcjK,EAAQ,MAkC1BhX,EAAOC,QAJP,SAAiB0T,EAAO+M,GACtB,OAAOO,EAAYtN,EAAO+M,EAC5B,kBChCA,IAAII,EAAa9J,EAAQ,MACrBgM,EAAWhM,EAAQ,MAmCvBhX,EAAOC,QAVP,SAAoB0T,GAClB,IAAKqP,EAASrP,GACZ,OAAO,EAIT,IAAI4V,EAAMzI,EAAWnN,GACrB,MA5BY,qBA4BL4V,GA3BI,8BA2BcA,GA7BZ,0BA6B6BA,GA1B7B,kBA0BgDA,CAC/D,YCAAvpB,EAAOC,QALP,SAAkB0T,GAChB,MAAuB,iBAATA,GACZA,GAAS,GAAKA,EAAQ,GAAK,GAAKA,GA9Bb,gBA+BvB,kBChCA,IAAIwe,EAAWnb,EAAQ,MAqCvBhX,EAAOC,QAPP,SAAe0T,GAIb,OAAOwe,EAASxe,IAAUA,IAAUA,CACtC,YCXA3T,EAAOC,QAJP,SAAe0T,GACb,OAAgB,MAATA,CACT,kBCtBA,IAAImN,EAAa9J,EAAQ,MACrB+J,EAAe/J,EAAQ,MAoC3BhX,EAAOC,QALP,SAAkB0T,GAChB,MAAuB,iBAATA,GACXoN,EAAapN,IA9BF,mBA8BYmN,EAAWnN,EACvC,YCLA3T,EAAOC,QALP,SAAkB0T,GAChB,IAAI5T,SAAc4T,EAClB,OAAgB,MAATA,IAA0B,UAAR5T,GAA4B,YAARA,EAC/C,YCAAC,EAAOC,QAJP,SAAsB0T,GACpB,OAAgB,MAATA,GAAiC,iBAATA,CACjC,kBC1BA,IAAImN,EAAa9J,EAAQ,MACrB4T,EAAe5T,EAAQ,MACvB+J,EAAe/J,EAAQ,MAMvBmM,EAAYC,SAASpgB,UACrBqgB,EAAc7O,OAAOxR,UAGrBsgB,EAAeH,EAAUxe,SAGzB0P,EAAiBgP,EAAYhP,eAG7B+d,EAAmB9O,EAAatZ,KAAKwK,QA2CzCxU,EAAOC,QAbP,SAAuB0T,GACrB,IAAKoN,EAAapN,IA5CJ,mBA4CcmN,EAAWnN,GACrC,OAAO,EAET,IAAI0e,EAAQzH,EAAajX,GACzB,GAAc,OAAV0e,EACF,OAAO,EAET,IAAIpmB,EAAOoI,EAAerK,KAAKqoB,EAAO,gBAAkBA,EAAMnmB,YAC9D,MAAsB,mBAARD,GAAsBA,aAAgBA,GAClDqX,EAAatZ,KAAKiC,IAASmmB,CAC/B,iBC3DA,IAAItR,EAAa9J,EAAQ,MACrBoH,EAAUpH,EAAQ,MAClB+J,EAAe/J,EAAQ,MA2B3BhX,EAAOC,QALP,SAAkB0T,GAChB,MAAuB,iBAATA,IACVyK,EAAQzK,IAAUoN,EAAapN,IArBrB,mBAqB+BmN,EAAWnN,EAC1D,kBC3BA,IAAImN,EAAa9J,EAAQ,MACrB+J,EAAe/J,EAAQ,MA2B3BhX,EAAOC,QALP,SAAkB0T,GAChB,MAAuB,iBAATA,GACXoN,EAAapN,IArBF,mBAqBYmN,EAAWnN,EACvC,kBC1BA,IAAI2e,EAAmBtb,EAAQ,MAC3B6N,EAAY7N,EAAQ,MACpBuW,EAAWvW,EAAQ,MAGnBub,EAAmBhF,GAAYA,EAAShP,aAmBxCA,EAAegU,EAAmB1N,EAAU0N,GAAoBD,EAEpEtyB,EAAOC,QAAUse,kBC1BjB,IAAIiU,EAAgBxb,EAAQ,MACxByb,EAAWzb,EAAQ,MACnBiN,EAAcjN,EAAQ,MAkC1BhX,EAAOC,QAJP,SAAc+e,GACZ,OAAOiF,EAAYjF,GAAUwT,EAAcxT,GAAUyT,EAASzT,EAChE,YCfAhf,EAAOC,QALP,SAAc2d,GACZ,IAAI9c,EAAkB,MAAT8c,EAAgB,EAAIA,EAAM9c,OACvC,OAAOA,EAAS8c,EAAM9c,EAAS,QAAK4V,CACtC,kBCjBA,IAAI8N,EAAWxN,EAAQ,KACnB0N,EAAe1N,EAAQ,MACvB2N,EAAU3N,EAAQ,MAClBoH,EAAUpH,EAAQ,MAiDtBhX,EAAOC,QALP,SAAamf,EAAYN,GAEvB,OADWV,EAAQgB,GAAcoF,EAAWG,GAChCvF,EAAYsF,EAAa5F,EAAU,GACjD,kBClDA,IAAI4T,EAAkB1b,EAAQ,MAC1BiI,EAAajI,EAAQ,MACrB0N,EAAe1N,EAAQ,MAwC3BhX,EAAOC,QAVP,SAAmB+e,EAAQF,GACzB,IAAIf,EAAS,CAAC,EAMd,OALAe,EAAW4F,EAAa5F,EAAU,GAElCG,EAAWD,GAAQ,SAASrL,EAAO0F,EAAK2F,GACtC0T,EAAgB3U,EAAQ1E,EAAKyF,EAASnL,EAAO0F,EAAK2F,GACpD,IACOjB,CACT,iBCxCA,IAAI4U,EAAe3b,EAAQ,MACvB4b,EAAS5b,EAAQ,MACjB6M,EAAW7M,EAAQ,MA0BvBhX,EAAOC,QANP,SAAa2d,GACX,OAAQA,GAASA,EAAM9c,OACnB6xB,EAAa/U,EAAOiG,EAAU+O,QAC9Blc,CACN,kBC1BA,IAAI8F,EAAWxF,EAAQ,MAiDvB,SAASiW,EAAQvP,EAAMmV,GACrB,GAAmB,mBAARnV,GAAmC,MAAZmV,GAAuC,mBAAZA,EAC3D,MAAM,IAAI3d,UAhDQ,uBAkDpB,IAAI4d,EAAW,WACb,IAAIzwB,EAAOC,UACP+W,EAAMwZ,EAAWA,EAASttB,MAAMzC,KAAMT,GAAQA,EAAK,GACnDskB,EAAQmM,EAASnM,MAErB,GAAIA,EAAMpS,IAAI8E,GACZ,OAAOsN,EAAM7gB,IAAIuT,GAEnB,IAAI0E,EAASL,EAAKnY,MAAMzC,KAAMT,GAE9B,OADAywB,EAASnM,MAAQA,EAAMzhB,IAAImU,EAAK0E,IAAW4I,EACpC5I,CACT,EAEA,OADA+U,EAASnM,MAAQ,IAAKsG,EAAQ8F,OAASvW,GAChCsW,CACT,CAGA7F,EAAQ8F,MAAQvW,EAEhBxc,EAAOC,QAAUgtB,kBCxEjB,IAAI0F,EAAe3b,EAAQ,MACvBgc,EAAShc,EAAQ,IACjB6M,EAAW7M,EAAQ,MA0BvBhX,EAAOC,QANP,SAAa2d,GACX,OAAQA,GAASA,EAAM9c,OACnB6xB,EAAa/U,EAAOiG,EAAUmP,QAC9Btc,CACN,YCVA1W,EAAOC,QAJP,WACE,kBCbF,IAAI8tB,EAAO/W,EAAQ,MAsBnBhX,EAAOC,QAJG,WACR,OAAO8tB,EAAK7qB,KAAKgrB,KACnB,kBCpBA,IAAI+E,EAAejc,EAAQ,KACvBkc,EAAmBlc,EAAQ,MAC3BsN,EAAQtN,EAAQ,MAChBkJ,EAAQlJ,EAAQ,KA4BpBhX,EAAOC,QAJP,SAAkBkgB,GAChB,OAAOmE,EAAMnE,GAAQ8S,EAAa/S,EAAMC,IAAS+S,EAAiB/S,EACpE,kBC7BA,IA2CIgT,EA3Ccnc,EAAQ,KA2Cdoc,GAEZpzB,EAAOC,QAAUkzB,kBC7CjB,IAAIxK,EAAY3R,EAAQ,MACpB0N,EAAe1N,EAAQ,MACvBqc,EAAWrc,EAAQ,MACnBoH,EAAUpH,EAAQ,MAClBwR,EAAiBxR,EAAQ,KA8C7BhX,EAAOC,QARP,SAAcmf,EAAYvB,EAAW6T,GACnC,IAAIhU,EAAOU,EAAQgB,GAAcuJ,EAAY0K,EAI7C,OAHI3B,GAASlJ,EAAepJ,EAAYvB,EAAW6T,KACjD7T,OAAYnH,GAEPgH,EAAK0B,EAAYsF,EAAa7G,EAAW,GAClD,kBChDA,IAAI+B,EAAc5I,EAAQ,KACtBsc,EAActc,EAAQ,MACtBuc,EAAWvc,EAAQ,MACnBwR,EAAiBxR,EAAQ,KA+BzBwc,EAASD,GAAS,SAASnU,EAAY2F,GACzC,GAAkB,MAAd3F,EACF,MAAO,GAET,IAAIte,EAASikB,EAAUjkB,OAMvB,OALIA,EAAS,GAAK0nB,EAAepJ,EAAY2F,EAAU,GAAIA,EAAU,IACnEA,EAAY,GACHjkB,EAAS,GAAK0nB,EAAezD,EAAU,GAAIA,EAAU,GAAIA,EAAU,MAC5EA,EAAY,CAACA,EAAU,KAElBuO,EAAYlU,EAAYQ,EAAYmF,EAAW,GAAI,GAC5D,IAEA/kB,EAAOC,QAAUuzB,YCzBjBxzB,EAAOC,QAJP,WACE,MAAO,EACT,UCHAD,EAAOC,QAJP,WACE,OAAO,CACT,kBCfA,IAAIwzB,EAAWzc,EAAQ,MACnBgM,EAAWhM,EAAQ,MAmEvBhX,EAAOC,QAlBP,SAAkByd,EAAMqS,EAAMC,GAC5B,IAAIO,GAAU,EACVlI,GAAW,EAEf,GAAmB,mBAAR3K,EACT,MAAM,IAAIxI,UAnDQ,uBAyDpB,OAJI8N,EAASgN,KACXO,EAAU,YAAaP,IAAYA,EAAQO,QAAUA,EACrDlI,EAAW,aAAc2H,IAAYA,EAAQ3H,SAAWA,GAEnDoL,EAAS/V,EAAMqS,EAAM,CAC1B,QAAWQ,EACX,QAAWR,EACX,SAAY1H,GAEhB,kBClEA,IAAIzX,EAAWoG,EAAQ,KAGnB0c,EAAW,IAsCf1zB,EAAOC,QAZP,SAAkB0T,GAChB,OAAKA,GAGLA,EAAQ/C,EAAS+C,MACH+f,GAAY/f,KAAU,IA9BpB,uBA+BFA,EAAQ,GAAK,EAAI,GAGxBA,IAAUA,EAAQA,EAAQ,EAPd,IAAVA,EAAcA,EAAQ,CAQjC,kBCvCA,IAAI8U,EAAWzR,EAAQ,MAmCvBhX,EAAOC,QAPP,SAAmB0T,GACjB,IAAIoK,EAAS0K,EAAS9U,GAClBggB,EAAY5V,EAAS,EAEzB,OAAOA,IAAWA,EAAU4V,EAAY5V,EAAS4V,EAAY5V,EAAU,CACzE,iBCjCA,IAAI6V,EAAW5c,EAAQ,MACnBgM,EAAWhM,EAAQ,MACnBqI,EAAWrI,EAAQ,MAMnB6c,EAAa,qBAGbC,EAAa,aAGbC,EAAY,cAGZC,EAAeC,SA8CnBj0B,EAAOC,QArBP,SAAkB0T,GAChB,GAAoB,iBAATA,EACT,OAAOA,EAET,GAAI0L,EAAS1L,GACX,OA1CM,IA4CR,GAAIqP,EAASrP,GAAQ,CACnB,IAAI+M,EAAgC,mBAAjB/M,EAAMvO,QAAwBuO,EAAMvO,UAAYuO,EACnEA,EAAQqP,EAAStC,GAAUA,EAAQ,GAAMA,CAC3C,CACA,GAAoB,iBAAT/M,EACT,OAAiB,IAAVA,EAAcA,GAASA,EAEhCA,EAAQigB,EAASjgB,GACjB,IAAIugB,EAAWJ,EAAW1wB,KAAKuQ,GAC/B,OAAQugB,GAAYH,EAAU3wB,KAAKuQ,GAC/BqgB,EAAargB,EAAMnO,MAAM,GAAI0uB,EAAW,EAAI,GAC3CL,EAAWzwB,KAAKuQ,GAvDb,KAuD6BA,CACvC,kBC7DA,IAAImS,EAAe9O,EAAQ,MA2B3BhX,EAAOC,QAJP,SAAkB0T,GAChB,OAAgB,MAATA,EAAgB,GAAKmS,EAAanS,EAC3C,iBCzBA,IAAI+Q,EAAe1N,EAAQ,MACvBmd,EAAWnd,EAAQ,MA6BvBhX,EAAOC,QAJP,SAAgB2d,EAAOkB,GACrB,OAAQlB,GAASA,EAAM9c,OAAUqzB,EAASvW,EAAO8G,EAAa5F,EAAU,IAAM,EAChF,iBC5BA,IAmBIsV,EAnBkBpd,EAAQ,KAmBbqd,CAAgB,eAEjCr0B,EAAOC,QAAUm0B,+BCZjB,IAAIE,EAAuBtd,EAAQ,MAEnC,SAASud,IAAiB,CAC1B,SAASC,IAA0B,CACnCA,EAAuBC,kBAAoBF,EAE3Cv0B,EAAOC,QAAU,WACf,SAASy0B,EAAK5M,EAAO6M,EAAUC,EAAeC,EAAUC,EAAcC,GACpE,GAAIA,IAAWT,EAAf,CAIA,IAAIU,EAAM,IAAI5rB,MACZ,mLAKF,MADA4rB,EAAIx0B,KAAO,sBACLw0B,CAPN,CAQF,CAEA,SAASC,IACP,OAAOP,CACT,CAHAA,EAAKQ,WAAaR,EAMlB,IAAIS,EAAiB,CACnBvX,MAAO8W,EACPU,OAAQV,EACRW,KAAMX,EACNhX,KAAMgX,EACN5F,OAAQ4F,EACR1V,OAAQ0V,EACR3V,OAAQ2V,EACRrJ,OAAQqJ,EAERY,IAAKZ,EACLa,QAASN,EACTO,QAASd,EACTe,YAAaf,EACbgB,WAAYT,EACZU,KAAMjB,EACNkB,SAAUX,EACVY,MAAOZ,EACPa,UAAWb,EACXc,MAAOd,EACPe,MAAOf,EAEPgB,eAAgBzB,EAChBC,kBAAmBF,GAKrB,OAFAY,EAAee,UAAYf,EAEpBA,CACT,kBC/CEn1B,EAAOC,QAAU+W,EAAQ,KAARA,0BCNnBhX,EAAOC,QAFoB,4ECGd,IAAIk2B,EAAGnf,EAAQ,MAASof,EAAGpf,EAAQ,MAAa,SAASxX,EAAEI,GAAG,IAAI,IAAIjB,EAAE,yDAAyDiB,EAAEd,EAAE,EAAEA,EAAEwD,UAAUxB,OAAOhC,IAAIH,GAAG,WAAW03B,mBAAmB/zB,UAAUxD,IAAI,MAAM,yBAAyBc,EAAE,WAAWjB,EAAE,gHAAgH,CAAC,IAAI23B,EAAG,IAAI5Z,IAAI6Z,EAAG,CAAC,EAAE,SAASC,EAAG52B,EAAEjB,GAAG83B,EAAG72B,EAAEjB,GAAG83B,EAAG72B,EAAE,UAAUjB,EAAE,CACxb,SAAS83B,EAAG72B,EAAEjB,GAAW,IAAR43B,EAAG32B,GAAGjB,EAAMiB,EAAE,EAAEA,EAAEjB,EAAEmC,OAAOlB,IAAI02B,EAAG50B,IAAI/C,EAAEiB,GAAG,CAC5D,IAAI82B,IAAK,qBAAqBC,QAAQ,qBAAqBA,OAAOC,UAAU,qBAAqBD,OAAOC,SAASC,eAAeC,EAAGtiB,OAAOxR,UAAUqR,eAAe0iB,EAAG,8VAA8VC,EACpgB,CAAC,EAAEC,EAAG,CAAC,EACiN,SAASt3B,EAAEC,EAAEjB,EAAEG,EAAEC,EAAEC,EAAEC,EAAEC,GAAG4D,KAAKo0B,gBAAgB,IAAIv4B,GAAG,IAAIA,GAAG,IAAIA,EAAEmE,KAAKq0B,cAAcp4B,EAAE+D,KAAKs0B,mBAAmBp4B,EAAE8D,KAAKu0B,gBAAgBv4B,EAAEgE,KAAKw0B,aAAa13B,EAAEkD,KAAK/C,KAAKpB,EAAEmE,KAAKy0B,YAAYt4B,EAAE6D,KAAK00B,kBAAkBt4B,CAAC,CAAC,IAAI+B,EAAE,CAAC,EACpb,uIAAuIP,MAAM,KAAKmG,SAAQ,SAASjH,GAAGqB,EAAErB,GAAG,IAAID,EAAEC,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,EAAG,IAAG,CAAC,CAAC,gBAAgB,kBAAkB,CAAC,YAAY,SAAS,CAAC,UAAU,OAAO,CAAC,YAAY,eAAeiH,SAAQ,SAASjH,GAAG,IAAIjB,EAAEiB,EAAE,GAAGqB,EAAEtC,GAAG,IAAIgB,EAAEhB,EAAE,GAAE,EAAGiB,EAAE,GAAG,MAAK,GAAG,EAAG,IAAG,CAAC,kBAAkB,YAAY,aAAa,SAASiH,SAAQ,SAASjH,GAAGqB,EAAErB,GAAG,IAAID,EAAEC,EAAE,GAAE,EAAGA,EAAEoC,cAAc,MAAK,GAAG,EAAG,IAC1e,CAAC,cAAc,4BAA4B,YAAY,iBAAiB6E,SAAQ,SAASjH,GAAGqB,EAAErB,GAAG,IAAID,EAAEC,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,EAAG,IAAG,8OAA8Oc,MAAM,KAAKmG,SAAQ,SAASjH,GAAGqB,EAAErB,GAAG,IAAID,EAAEC,EAAE,GAAE,EAAGA,EAAEoC,cAAc,MAAK,GAAG,EAAG,IACxb,CAAC,UAAU,WAAW,QAAQ,YAAY6E,SAAQ,SAASjH,GAAGqB,EAAErB,GAAG,IAAID,EAAEC,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,EAAG,IAAG,CAAC,UAAU,YAAYiH,SAAQ,SAASjH,GAAGqB,EAAErB,GAAG,IAAID,EAAEC,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,EAAG,IAAG,CAAC,OAAO,OAAO,OAAO,QAAQiH,SAAQ,SAASjH,GAAGqB,EAAErB,GAAG,IAAID,EAAEC,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,EAAG,IAAG,CAAC,UAAU,SAASiH,SAAQ,SAASjH,GAAGqB,EAAErB,GAAG,IAAID,EAAEC,EAAE,GAAE,EAAGA,EAAEoC,cAAc,MAAK,GAAG,EAAG,IAAG,IAAIy1B,EAAG,gBAAgB,SAASC,EAAG93B,GAAG,OAAOA,EAAE,GAAGgK,aAAa,CAIxZ,SAAS+tB,EAAG/3B,EAAEjB,EAAEG,EAAEC,GAAG,IAAIC,EAAEiC,EAAEoT,eAAe1V,GAAGsC,EAAEtC,GAAG,MAAQ,OAAOK,EAAE,IAAIA,EAAEe,KAAKhB,KAAK,EAAEJ,EAAEmC,SAAS,MAAMnC,EAAE,IAAI,MAAMA,EAAE,IAAI,MAAMA,EAAE,IAAI,MAAMA,EAAE,MAP9I,SAAYiB,EAAEjB,EAAEG,EAAEC,GAAG,GAAG,OAAOJ,GAAG,qBAAqBA,GADqE,SAAYiB,EAAEjB,EAAEG,EAAEC,GAAG,GAAG,OAAOD,GAAG,IAAIA,EAAEiB,KAAK,OAAM,EAAG,cAAcpB,GAAG,IAAK,WAAW,IAAK,SAAS,OAAM,EAAG,IAAK,UAAU,OAAGI,IAAc,OAAOD,GAASA,EAAEo4B,gBAAmD,WAAnCt3B,EAAEA,EAAEoC,cAAcwD,MAAM,EAAE,KAAsB,UAAU5F,GAAE,QAAQ,OAAM,EAAG,CAC/Tg4B,CAAGh4B,EAAEjB,EAAEG,EAAEC,GAAG,OAAM,EAAG,GAAGA,EAAE,OAAM,EAAG,GAAG,OAAOD,EAAE,OAAOA,EAAEiB,MAAM,KAAK,EAAE,OAAOpB,EAAE,KAAK,EAAE,OAAM,IAAKA,EAAE,KAAK,EAAE,OAAOk5B,MAAMl5B,GAAG,KAAK,EAAE,OAAOk5B,MAAMl5B,IAAI,EAAEA,EAAE,OAAM,CAAE,CAOtEm5B,CAAGn5B,EAAEG,EAAEE,EAAED,KAAKD,EAAE,MAAMC,GAAG,OAAOC,EARxK,SAAYY,GAAG,QAAGk3B,EAAG9sB,KAAKitB,EAAGr3B,KAAek3B,EAAG9sB,KAAKgtB,EAAGp3B,KAAem3B,EAAG3zB,KAAKxD,GAAUq3B,EAAGr3B,IAAG,GAAGo3B,EAAGp3B,IAAG,GAAS,GAAE,CAQwDm4B,CAAGp5B,KAAK,OAAOG,EAAEc,EAAEo4B,gBAAgBr5B,GAAGiB,EAAEq4B,aAAat5B,EAAE,GAAGG,IAAIE,EAAEq4B,gBAAgBz3B,EAAEZ,EAAEs4B,cAAc,OAAOx4B,EAAE,IAAIE,EAAEe,MAAQ,GAAGjB,GAAGH,EAAEK,EAAEm4B,cAAcp4B,EAAEC,EAAEo4B,mBAAmB,OAAOt4B,EAAEc,EAAEo4B,gBAAgBr5B,IAAaG,EAAE,KAAXE,EAAEA,EAAEe,OAAc,IAAIf,IAAG,IAAKF,EAAE,GAAG,GAAGA,EAAEC,EAAEa,EAAEs4B,eAAen5B,EAAEJ,EAAEG,GAAGc,EAAEq4B,aAAat5B,EAAEG,KAAI,CAHjd,0jCAA0jC4B,MAAM,KAAKmG,SAAQ,SAASjH,GAAG,IAAIjB,EAAEiB,EAAEqC,QAAQw1B,EACzmCC,GAAIz2B,EAAEtC,GAAG,IAAIgB,EAAEhB,EAAE,GAAE,EAAGiB,EAAE,MAAK,GAAG,EAAG,IAAG,2EAA2Ec,MAAM,KAAKmG,SAAQ,SAASjH,GAAG,IAAIjB,EAAEiB,EAAEqC,QAAQw1B,EAAGC,GAAIz2B,EAAEtC,GAAG,IAAIgB,EAAEhB,EAAE,GAAE,EAAGiB,EAAE,gCAA+B,GAAG,EAAG,IAAG,CAAC,WAAW,WAAW,aAAaiH,SAAQ,SAASjH,GAAG,IAAIjB,EAAEiB,EAAEqC,QAAQw1B,EAAGC,GAAIz2B,EAAEtC,GAAG,IAAIgB,EAAEhB,EAAE,GAAE,EAAGiB,EAAE,wCAAuC,GAAG,EAAG,IAAG,CAAC,WAAW,eAAeiH,SAAQ,SAASjH,GAAGqB,EAAErB,GAAG,IAAID,EAAEC,EAAE,GAAE,EAAGA,EAAEoC,cAAc,MAAK,GAAG,EAAG,IACldf,EAAEk3B,UAAU,IAAIx4B,EAAE,YAAY,GAAE,EAAG,aAAa,gCAA+B,GAAG,GAAI,CAAC,MAAM,OAAO,SAAS,cAAckH,SAAQ,SAASjH,GAAGqB,EAAErB,GAAG,IAAID,EAAEC,EAAE,GAAE,EAAGA,EAAEoC,cAAc,MAAK,GAAG,EAAG,IAE5L,IAAIo2B,EAAGjC,EAAGkC,mDAAmDC,EAAG15B,OAAOC,IAAI,iBAAiB05B,EAAG35B,OAAOC,IAAI,gBAAgB25B,EAAG55B,OAAOC,IAAI,kBAAkB45B,EAAG75B,OAAOC,IAAI,qBAAqB65B,EAAG95B,OAAOC,IAAI,kBAAkB85B,EAAG/5B,OAAOC,IAAI,kBAAkB+5B,EAAGh6B,OAAOC,IAAI,iBAAiBg6B,EAAGj6B,OAAOC,IAAI,qBAAqBi6B,EAAGl6B,OAAOC,IAAI,kBAAkBk6B,EAAGn6B,OAAOC,IAAI,uBAAuBm6B,EAAGp6B,OAAOC,IAAI,cAAco6B,EAAGr6B,OAAOC,IAAI,cAAcD,OAAOC,IAAI,eAAeD,OAAOC,IAAI,0BACje,IAAIq6B,EAAGt6B,OAAOC,IAAI,mBAAmBD,OAAOC,IAAI,uBAAuBD,OAAOC,IAAI,eAAeD,OAAOC,IAAI,wBAAwB,IAAIs6B,EAAGv6B,OAAOw6B,SAAS,SAASC,EAAGz5B,GAAG,OAAG,OAAOA,GAAG,kBAAkBA,EAAS,KAAwC,oBAAnCA,EAAEu5B,GAAIv5B,EAAEu5B,IAAKv5B,EAAE,eAA0CA,EAAE,IAAI,CAAC,IAAoB05B,EAAhBnxB,EAAEqM,OAAO+kB,OAAU,SAASC,EAAG55B,GAAG,QAAG,IAAS05B,EAAG,IAAI,MAAMlwB,OAAQ,CAAC,MAAMtK,GAAG,IAAIH,EAAEG,EAAEsiB,MAAMqY,OAAOp2B,MAAM,gBAAgBi2B,EAAG36B,GAAGA,EAAE,IAAI,EAAE,CAAC,MAAM,KAAK26B,EAAG15B,CAAC,CAAC,IAAI85B,GAAG,EACzb,SAASC,EAAG/5B,EAAEjB,GAAG,IAAIiB,GAAG85B,EAAG,MAAM,GAAGA,GAAG,EAAG,IAAI56B,EAAEsK,MAAMwwB,kBAAkBxwB,MAAMwwB,uBAAkB,EAAO,IAAI,GAAGj7B,EAAE,GAAGA,EAAE,WAAW,MAAMyK,OAAQ,EAAEoL,OAAOgE,eAAe7Z,EAAEqE,UAAU,QAAQ,CAACkC,IAAI,WAAW,MAAMkE,OAAQ,IAAI,kBAAkBywB,SAASA,QAAQC,UAAU,CAAC,IAAID,QAAQC,UAAUn7B,EAAE,GAAG,CAAC,MAAMU,GAAG,IAAIN,EAAEM,CAAC,CAACw6B,QAAQC,UAAUl6B,EAAE,GAAGjB,EAAE,KAAK,CAAC,IAAIA,EAAEqL,MAAM,CAAC,MAAM3K,GAAGN,EAAEM,CAAC,CAACO,EAAEoK,KAAKrL,EAAEqE,UAAU,KAAK,CAAC,IAAI,MAAMoG,OAAQ,CAAC,MAAM/J,GAAGN,EAAEM,CAAC,CAACO,GAAG,CAAC,CAAC,MAAMP,GAAG,GAAGA,GAAGN,GAAG,kBAAkBM,EAAE+hB,MAAM,CAAC,IAAI,IAAIpiB,EAAEK,EAAE+hB,MAAM1gB,MAAM,MACnfzB,EAAEF,EAAEqiB,MAAM1gB,MAAM,MAAMxB,EAAEF,EAAE8B,OAAO,EAAE3B,EAAEF,EAAE6B,OAAO,EAAE,GAAG5B,GAAG,GAAGC,GAAGH,EAAEE,KAAKD,EAAEE,IAAIA,IAAI,KAAK,GAAGD,GAAG,GAAGC,EAAED,IAAIC,IAAI,GAAGH,EAAEE,KAAKD,EAAEE,GAAG,CAAC,GAAG,IAAID,GAAG,IAAIC,EAAG,MAAMD,IAAQ,IAAJC,GAASH,EAAEE,KAAKD,EAAEE,GAAG,CAAC,IAAIC,EAAE,KAAKJ,EAAEE,GAAG+C,QAAQ,WAAW,QAA6F,OAArFrC,EAAE0X,aAAalY,EAAEknB,SAAS,iBAAiBlnB,EAAEA,EAAE6C,QAAQ,cAAcrC,EAAE0X,cAAqBlY,CAAC,QAAO,GAAGF,GAAG,GAAGC,GAAG,KAAK,CAAC,CAAC,CAAC,QAAQu6B,GAAG,EAAGtwB,MAAMwwB,kBAAkB96B,CAAC,CAAC,OAAOc,EAAEA,EAAEA,EAAE0X,aAAa1X,EAAEY,KAAK,IAAIg5B,EAAG55B,GAAG,EAAE,CAC9Z,SAASm6B,EAAGn6B,GAAG,OAAOA,EAAE2pB,KAAK,KAAK,EAAE,OAAOiQ,EAAG55B,EAAEG,MAAM,KAAK,GAAG,OAAOy5B,EAAG,QAAQ,KAAK,GAAG,OAAOA,EAAG,YAAY,KAAK,GAAG,OAAOA,EAAG,gBAAgB,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO55B,EAAE+5B,EAAG/5B,EAAEG,MAAK,GAAM,KAAK,GAAG,OAAOH,EAAE+5B,EAAG/5B,EAAEG,KAAKuY,QAAO,GAAM,KAAK,EAAE,OAAO1Y,EAAE+5B,EAAG/5B,EAAEG,MAAK,GAAM,QAAQ,MAAM,GAAG,CACxR,SAASi6B,EAAGp6B,GAAG,GAAG,MAAMA,EAAE,OAAO,KAAK,GAAG,oBAAoBA,EAAE,OAAOA,EAAE0X,aAAa1X,EAAEY,MAAM,KAAK,GAAG,kBAAkBZ,EAAE,OAAOA,EAAE,OAAOA,GAAG,KAAK44B,EAAG,MAAM,WAAW,KAAKD,EAAG,MAAM,SAAS,KAAKG,EAAG,MAAM,WAAW,KAAKD,EAAG,MAAM,aAAa,KAAKK,EAAG,MAAM,WAAW,KAAKC,EAAG,MAAM,eAAe,GAAG,kBAAkBn5B,EAAE,OAAOA,EAAEE,UAAU,KAAK84B,EAAG,OAAOh5B,EAAE0X,aAAa,WAAW,YAAY,KAAKqhB,EAAG,OAAO/4B,EAAEq6B,SAAS3iB,aAAa,WAAW,YAAY,KAAKuhB,EAAG,IAAIl6B,EAAEiB,EAAE0Y,OAC7Z,OADoa1Y,EAAEA,EAAE0X,eACnd1X,EAAE,MADieA,EAAEjB,EAAE2Y,aAClf3Y,EAAE6B,MAAM,IAAY,cAAcZ,EAAE,IAAI,cAAqBA,EAAE,KAAKo5B,EAAG,OAA6B,QAAtBr6B,EAAEiB,EAAE0X,aAAa,MAAc3Y,EAAEq7B,EAAGp6B,EAAEG,OAAO,OAAO,KAAKk5B,EAAGt6B,EAAEiB,EAAEs6B,SAASt6B,EAAEA,EAAEu6B,MAAM,IAAI,OAAOH,EAAGp6B,EAAEjB,GAAG,CAAC,MAAMG,GAAG,EAAE,OAAO,IAAI,CAC3M,SAASs7B,EAAGx6B,GAAG,IAAIjB,EAAEiB,EAAEG,KAAK,OAAOH,EAAE2pB,KAAK,KAAK,GAAG,MAAM,QAAQ,KAAK,EAAE,OAAO5qB,EAAE2Y,aAAa,WAAW,YAAY,KAAK,GAAG,OAAO3Y,EAAEs7B,SAAS3iB,aAAa,WAAW,YAAY,KAAK,GAAG,MAAM,qBAAqB,KAAK,GAAG,OAAkB1X,GAAXA,EAAEjB,EAAE2Z,QAAWhB,aAAa1X,EAAEY,MAAM,GAAG7B,EAAE2Y,cAAc,KAAK1X,EAAE,cAAcA,EAAE,IAAI,cAAc,KAAK,EAAE,MAAM,WAAW,KAAK,EAAE,OAAOjB,EAAE,KAAK,EAAE,MAAM,SAAS,KAAK,EAAE,MAAM,OAAO,KAAK,EAAE,MAAM,OAAO,KAAK,GAAG,OAAOq7B,EAAGr7B,GAAG,KAAK,EAAE,OAAOA,IAAI85B,EAAG,aAAa,OAAO,KAAK,GAAG,MAAM,YACtf,KAAK,GAAG,MAAM,WAAW,KAAK,GAAG,MAAM,QAAQ,KAAK,GAAG,MAAM,WAAW,KAAK,GAAG,MAAM,eAAe,KAAK,GAAG,MAAM,gBAAgB,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,GAAG,oBAAoB95B,EAAE,OAAOA,EAAE2Y,aAAa3Y,EAAE6B,MAAM,KAAK,GAAG,kBAAkB7B,EAAE,OAAOA,EAAE,OAAO,IAAI,CAAC,SAAS07B,EAAGz6B,GAAG,cAAcA,GAAG,IAAK,UAAU,IAAK,SAAS,IAAK,SAAS,IAAK,YAAqB,IAAK,SAAS,OAAOA,EAAE,QAAQ,MAAM,GAAG,CACra,SAAS06B,EAAG16B,GAAG,IAAIjB,EAAEiB,EAAEG,KAAK,OAAOH,EAAEA,EAAE26B,WAAW,UAAU36B,EAAEoC,gBAAgB,aAAarD,GAAG,UAAUA,EAAE,CAEtF,SAAS67B,EAAG56B,GAAGA,EAAE66B,gBAAgB76B,EAAE66B,cADvD,SAAY76B,GAAG,IAAIjB,EAAE27B,EAAG16B,GAAG,UAAU,QAAQd,EAAE0V,OAAOkE,yBAAyB9Y,EAAEsM,YAAYlJ,UAAUrE,GAAGI,EAAE,GAAGa,EAAEjB,GAAG,IAAIiB,EAAEyU,eAAe1V,IAAI,qBAAqBG,GAAG,oBAAoBA,EAAEgH,KAAK,oBAAoBhH,EAAEoG,IAAI,CAAC,IAAIlG,EAAEF,EAAEgH,IAAI7G,EAAEH,EAAEoG,IAAiL,OAA7KsP,OAAOgE,eAAe5Y,EAAEjB,EAAE,CAAC+7B,cAAa,EAAG50B,IAAI,WAAW,OAAO9G,EAAEgL,KAAKlH,KAAK,EAAEoC,IAAI,SAAStF,GAAGb,EAAE,GAAGa,EAAEX,EAAE+K,KAAKlH,KAAKlD,EAAE,IAAI4U,OAAOgE,eAAe5Y,EAAEjB,EAAE,CAACg8B,WAAW77B,EAAE67B,aAAmB,CAAChQ,SAAS,WAAW,OAAO5rB,CAAC,EAAE67B,SAAS,SAASh7B,GAAGb,EAAE,GAAGa,CAAC,EAAEi7B,aAAa,WAAWj7B,EAAE66B,cACxf,YAAY76B,EAAEjB,EAAE,EAAE,CAAC,CAAkDm8B,CAAGl7B,GAAG,CAAC,SAASm7B,EAAGn7B,GAAG,IAAIA,EAAE,OAAM,EAAG,IAAIjB,EAAEiB,EAAE66B,cAAc,IAAI97B,EAAE,OAAM,EAAG,IAAIG,EAAEH,EAAEgsB,WAAe5rB,EAAE,GAAqD,OAAlDa,IAAIb,EAAEu7B,EAAG16B,GAAGA,EAAEo7B,QAAQ,OAAO,QAAQp7B,EAAE+T,QAAO/T,EAAEb,KAAaD,IAAGH,EAAEi8B,SAASh7B,IAAG,EAAM,CAAC,SAASq7B,EAAGr7B,GAAwD,GAAG,qBAAxDA,EAAEA,IAAI,qBAAqBg3B,SAASA,cAAS,IAAkC,OAAO,KAAK,IAAI,OAAOh3B,EAAEs7B,eAAet7B,EAAEu7B,IAAI,CAAC,MAAMx8B,GAAG,OAAOiB,EAAEu7B,IAAI,CAAC,CACpa,SAASC,EAAGx7B,EAAEjB,GAAG,IAAIG,EAAEH,EAAEq8B,QAAQ,OAAO7yB,EAAE,CAAC,EAAExJ,EAAE,CAAC08B,oBAAe,EAAOxJ,kBAAa,EAAOle,WAAM,EAAOqnB,QAAQ,MAAMl8B,EAAEA,EAAEc,EAAE07B,cAAcC,gBAAgB,CAAC,SAASC,EAAG57B,EAAEjB,GAAG,IAAIG,EAAE,MAAMH,EAAEkzB,aAAa,GAAGlzB,EAAEkzB,aAAa9yB,EAAE,MAAMJ,EAAEq8B,QAAQr8B,EAAEq8B,QAAQr8B,EAAE08B,eAAev8B,EAAEu7B,EAAG,MAAM17B,EAAEgV,MAAMhV,EAAEgV,MAAM7U,GAAGc,EAAE07B,cAAc,CAACC,eAAex8B,EAAE08B,aAAa38B,EAAE48B,WAAW,aAAa/8B,EAAEoB,MAAM,UAAUpB,EAAEoB,KAAK,MAAMpB,EAAEq8B,QAAQ,MAAMr8B,EAAEgV,MAAM,CAAC,SAASgoB,EAAG/7B,EAAEjB,GAAe,OAAZA,EAAEA,EAAEq8B,UAAiBrD,EAAG/3B,EAAE,UAAUjB,GAAE,EAAG,CAC9d,SAASi9B,EAAGh8B,EAAEjB,GAAGg9B,EAAG/7B,EAAEjB,GAAG,IAAIG,EAAEu7B,EAAG17B,EAAEgV,OAAO5U,EAAEJ,EAAEoB,KAAK,GAAG,MAAMjB,EAAK,WAAWC,GAAM,IAAID,GAAG,KAAKc,EAAE+T,OAAO/T,EAAE+T,OAAO7U,KAAEc,EAAE+T,MAAM,GAAG7U,GAAOc,EAAE+T,QAAQ,GAAG7U,IAAIc,EAAE+T,MAAM,GAAG7U,QAAQ,GAAG,WAAWC,GAAG,UAAUA,EAA8B,YAA3Ba,EAAEo4B,gBAAgB,SAAgBr5B,EAAE0V,eAAe,SAASwnB,GAAGj8B,EAAEjB,EAAEoB,KAAKjB,GAAGH,EAAE0V,eAAe,iBAAiBwnB,GAAGj8B,EAAEjB,EAAEoB,KAAKs6B,EAAG17B,EAAEkzB,eAAe,MAAMlzB,EAAEq8B,SAAS,MAAMr8B,EAAE08B,iBAAiBz7B,EAAEy7B,iBAAiB18B,EAAE08B,eAAe,CACla,SAASS,EAAGl8B,EAAEjB,EAAEG,GAAG,GAAGH,EAAE0V,eAAe,UAAU1V,EAAE0V,eAAe,gBAAgB,CAAC,IAAItV,EAAEJ,EAAEoB,KAAK,KAAK,WAAWhB,GAAG,UAAUA,QAAG,IAASJ,EAAEgV,OAAO,OAAOhV,EAAEgV,OAAO,OAAOhV,EAAE,GAAGiB,EAAE07B,cAAcG,aAAa38B,GAAGH,IAAIiB,EAAE+T,QAAQ/T,EAAE+T,MAAMhV,GAAGiB,EAAEiyB,aAAalzB,CAAC,CAAU,MAATG,EAAEc,EAAEY,QAAcZ,EAAEY,KAAK,IAAIZ,EAAEy7B,iBAAiBz7B,EAAE07B,cAAcC,eAAe,KAAKz8B,IAAIc,EAAEY,KAAK1B,EAAE,CACzV,SAAS+8B,GAAGj8B,EAAEjB,EAAEG,GAAM,WAAWH,GAAGs8B,EAAGr7B,EAAEm8B,iBAAiBn8B,IAAE,MAAMd,EAAEc,EAAEiyB,aAAa,GAAGjyB,EAAE07B,cAAcG,aAAa77B,EAAEiyB,eAAe,GAAG/yB,IAAIc,EAAEiyB,aAAa,GAAG/yB,GAAE,CAAC,IAAIk9B,GAAGj7B,MAAMqd,QAC7K,SAAS6d,GAAGr8B,EAAEjB,EAAEG,EAAEC,GAAe,GAAZa,EAAEA,EAAEowB,QAAWrxB,EAAE,CAACA,EAAE,CAAC,EAAE,IAAI,IAAIK,EAAE,EAAEA,EAAEF,EAAEgC,OAAO9B,IAAIL,EAAE,IAAIG,EAAEE,KAAI,EAAG,IAAIF,EAAE,EAAEA,EAAEc,EAAEkB,OAAOhC,IAAIE,EAAEL,EAAE0V,eAAe,IAAIzU,EAAEd,GAAG6U,OAAO/T,EAAEd,GAAGo9B,WAAWl9B,IAAIY,EAAEd,GAAGo9B,SAASl9B,GAAGA,GAAGD,IAAIa,EAAEd,GAAGq9B,iBAAgB,EAAG,KAAK,CAAmB,IAAlBr9B,EAAE,GAAGu7B,EAAGv7B,GAAGH,EAAE,KAASK,EAAE,EAAEA,EAAEY,EAAEkB,OAAO9B,IAAI,CAAC,GAAGY,EAAEZ,GAAG2U,QAAQ7U,EAAiD,OAA9Cc,EAAEZ,GAAGk9B,UAAS,OAAGn9B,IAAIa,EAAEZ,GAAGm9B,iBAAgB,IAAW,OAAOx9B,GAAGiB,EAAEZ,GAAGo9B,WAAWz9B,EAAEiB,EAAEZ,GAAG,CAAC,OAAOL,IAAIA,EAAEu9B,UAAS,EAAG,CAAC,CACxY,SAASG,GAAGz8B,EAAEjB,GAAG,GAAG,MAAMA,EAAE29B,wBAAwB,MAAMlzB,MAAM5J,EAAE,KAAK,OAAO2I,EAAE,CAAC,EAAExJ,EAAE,CAACgV,WAAM,EAAOke,kBAAa,EAAO0K,SAAS,GAAG38B,EAAE07B,cAAcG,cAAc,CAAC,SAASe,GAAG58B,EAAEjB,GAAG,IAAIG,EAAEH,EAAEgV,MAAM,GAAG,MAAM7U,EAAE,CAA+B,GAA9BA,EAAEH,EAAE49B,SAAS59B,EAAEA,EAAEkzB,aAAgB,MAAM/yB,EAAE,CAAC,GAAG,MAAMH,EAAE,MAAMyK,MAAM5J,EAAE,KAAK,GAAGw8B,GAAGl9B,GAAG,CAAC,GAAG,EAAEA,EAAEgC,OAAO,MAAMsI,MAAM5J,EAAE,KAAKV,EAAEA,EAAE,EAAE,CAACH,EAAEG,CAAC,CAAC,MAAMH,IAAIA,EAAE,IAAIG,EAAEH,CAAC,CAACiB,EAAE07B,cAAc,CAACG,aAAapB,EAAGv7B,GAAG,CACnY,SAAS29B,GAAG78B,EAAEjB,GAAG,IAAIG,EAAEu7B,EAAG17B,EAAEgV,OAAO5U,EAAEs7B,EAAG17B,EAAEkzB,cAAc,MAAM/yB,KAAIA,EAAE,GAAGA,KAAMc,EAAE+T,QAAQ/T,EAAE+T,MAAM7U,GAAG,MAAMH,EAAEkzB,cAAcjyB,EAAEiyB,eAAe/yB,IAAIc,EAAEiyB,aAAa/yB,IAAI,MAAMC,IAAIa,EAAEiyB,aAAa,GAAG9yB,EAAE,CAAC,SAAS29B,GAAG98B,GAAG,IAAIjB,EAAEiB,EAAE+8B,YAAYh+B,IAAIiB,EAAE07B,cAAcG,cAAc,KAAK98B,GAAG,OAAOA,IAAIiB,EAAE+T,MAAMhV,EAAE,CAAC,SAASi+B,GAAGh9B,GAAG,OAAOA,GAAG,IAAK,MAAM,MAAM,6BAA6B,IAAK,OAAO,MAAM,qCAAqC,QAAQ,MAAM,+BAA+B,CAC7c,SAASi9B,GAAGj9B,EAAEjB,GAAG,OAAO,MAAMiB,GAAG,iCAAiCA,EAAEg9B,GAAGj+B,GAAG,+BAA+BiB,GAAG,kBAAkBjB,EAAE,+BAA+BiB,CAAC,CAChK,IAAIk9B,GAAel9B,GAAZm9B,IAAYn9B,GAAsJ,SAASA,EAAEjB,GAAG,GAAG,+BAA+BiB,EAAEo9B,cAAc,cAAcp9B,EAAEA,EAAEq9B,UAAUt+B,MAAM,CAA2F,KAA1Fm+B,GAAGA,IAAIlG,SAASC,cAAc,QAAUoG,UAAU,QAAQt+B,EAAEyG,UAAUT,WAAW,SAAahG,EAAEm+B,GAAGI,WAAWt9B,EAAEs9B,YAAYt9B,EAAEu9B,YAAYv9B,EAAEs9B,YAAY,KAAKv+B,EAAEu+B,YAAYt9B,EAAEw9B,YAAYz+B,EAAEu+B,WAAW,CAAC,EAAvb,qBAAqBG,OAAOA,MAAMC,wBAAwB,SAAS3+B,EAAEG,EAAEC,EAAEC,GAAGq+B,MAAMC,yBAAwB,WAAW,OAAO19B,GAAEjB,EAAEG,EAAM,GAAE,EAAEc,IACtK,SAAS29B,GAAG39B,EAAEjB,GAAG,GAAGA,EAAE,CAAC,IAAIG,EAAEc,EAAEs9B,WAAW,GAAGp+B,GAAGA,IAAIc,EAAE49B,WAAW,IAAI1+B,EAAEquB,SAAwB,YAAdruB,EAAE2+B,UAAU9+B,EAAS,CAACiB,EAAE+8B,YAAYh+B,CAAC,CACtH,IAAI++B,GAAG,CAACC,yBAAwB,EAAGC,aAAY,EAAGC,mBAAkB,EAAGC,kBAAiB,EAAGC,kBAAiB,EAAGC,SAAQ,EAAGC,cAAa,EAAGC,iBAAgB,EAAGC,aAAY,EAAGC,SAAQ,EAAGC,MAAK,EAAGC,UAAS,EAAGC,cAAa,EAAGC,YAAW,EAAGC,cAAa,EAAGC,WAAU,EAAGC,UAAS,EAAGC,SAAQ,EAAGC,YAAW,EAAGC,aAAY,EAAGC,cAAa,EAAGC,YAAW,EAAGC,eAAc,EAAGC,gBAAe,EAAGC,iBAAgB,EAAGC,YAAW,EAAGC,WAAU,EAAGC,YAAW,EAAGC,SAAQ,EAAGC,OAAM,EAAGC,SAAQ,EAAGC,SAAQ,EAAGC,QAAO,EAAGC,QAAO,EAClfC,MAAK,EAAGC,aAAY,EAAGC,cAAa,EAAGC,aAAY,EAAGC,iBAAgB,EAAGC,kBAAiB,EAAGC,kBAAiB,EAAGC,eAAc,EAAGC,aAAY,GAAIC,GAAG,CAAC,SAAS,KAAK,MAAM,KAA6H,SAASC,GAAG3gC,EAAEjB,EAAEG,GAAG,OAAO,MAAMH,GAAG,mBAAmBA,GAAG,KAAKA,EAAE,GAAGG,GAAG,kBAAkBH,GAAG,IAAIA,GAAG++B,GAAGrpB,eAAezU,IAAI89B,GAAG99B,IAAI,GAAGjB,GAAG86B,OAAO96B,EAAE,IAAI,CACzb,SAAS6hC,GAAG5gC,EAAEjB,GAAa,IAAI,IAAIG,KAAlBc,EAAEA,EAAE6gC,MAAmB9hC,EAAE,GAAGA,EAAE0V,eAAevV,GAAG,CAAC,IAAIC,EAAE,IAAID,EAAEmJ,QAAQ,MAAMjJ,EAAEuhC,GAAGzhC,EAAEH,EAAEG,GAAGC,GAAG,UAAUD,IAAIA,EAAE,YAAYC,EAAEa,EAAE8gC,YAAY5hC,EAAEE,GAAGY,EAAEd,GAAGE,CAAC,CAAC,CADYwV,OAAO0E,KAAKwkB,IAAI72B,SAAQ,SAASjH,GAAG0gC,GAAGz5B,SAAQ,SAASlI,GAAGA,EAAEA,EAAEiB,EAAEiT,OAAO,GAAGjJ,cAAchK,EAAE0D,UAAU,GAAGo6B,GAAG/+B,GAAG++B,GAAG99B,EAAE,GAAE,IAChI,IAAI+gC,GAAGx4B,EAAE,CAACy4B,UAAS,GAAI,CAACC,MAAK,EAAG5xB,MAAK,EAAG6xB,IAAG,EAAGC,KAAI,EAAGC,OAAM,EAAGC,IAAG,EAAGC,KAAI,EAAGC,OAAM,EAAGC,QAAO,EAAGC,MAAK,EAAGC,MAAK,EAAGC,OAAM,EAAG/e,QAAO,EAAGgf,OAAM,EAAGC,KAAI,IAClT,SAASC,GAAG9hC,EAAEjB,GAAG,GAAGA,EAAE,CAAC,GAAGgiC,GAAG/gC,KAAK,MAAMjB,EAAE49B,UAAU,MAAM59B,EAAE29B,yBAAyB,MAAMlzB,MAAM5J,EAAE,IAAII,IAAI,GAAG,MAAMjB,EAAE29B,wBAAwB,CAAC,GAAG,MAAM39B,EAAE49B,SAAS,MAAMnzB,MAAM5J,EAAE,KAAK,GAAG,kBAAkBb,EAAE29B,2BAA2B,WAAW39B,EAAE29B,yBAAyB,MAAMlzB,MAAM5J,EAAE,IAAK,CAAC,GAAG,MAAMb,EAAE8hC,OAAO,kBAAkB9hC,EAAE8hC,MAAM,MAAMr3B,MAAM5J,EAAE,IAAK,CAAC,CAClW,SAASmiC,GAAG/hC,EAAEjB,GAAG,IAAI,IAAIiB,EAAEqI,QAAQ,KAAK,MAAM,kBAAkBtJ,EAAEijC,GAAG,OAAOhiC,GAAG,IAAK,iBAAiB,IAAK,gBAAgB,IAAK,YAAY,IAAK,gBAAgB,IAAK,gBAAgB,IAAK,mBAAmB,IAAK,iBAAiB,IAAK,gBAAgB,OAAM,EAAG,QAAQ,OAAM,EAAG,CAAC,IAAIiiC,GAAG,KAAK,SAASC,GAAGliC,GAA6F,OAA1FA,EAAEA,EAAEmiC,QAAQniC,EAAEoiC,YAAYrL,QAASsL,0BAA0BriC,EAAEA,EAAEqiC,yBAAgC,IAAIriC,EAAEutB,SAASvtB,EAAEsiC,WAAWtiC,CAAC,CAAC,IAAIuiC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KACpc,SAASC,GAAG1iC,GAAG,GAAGA,EAAE2iC,GAAG3iC,GAAG,CAAC,GAAG,oBAAoBuiC,GAAG,MAAM/4B,MAAM5J,EAAE,MAAM,IAAIb,EAAEiB,EAAE4iC,UAAU7jC,IAAIA,EAAE8jC,GAAG9jC,GAAGwjC,GAAGviC,EAAE4iC,UAAU5iC,EAAEG,KAAKpB,GAAG,CAAC,CAAC,SAAS+jC,GAAG9iC,GAAGwiC,GAAGC,GAAGA,GAAGh2B,KAAKzM,GAAGyiC,GAAG,CAACziC,GAAGwiC,GAAGxiC,CAAC,CAAC,SAAS+iC,KAAK,GAAGP,GAAG,CAAC,IAAIxiC,EAAEwiC,GAAGzjC,EAAE0jC,GAAoB,GAAjBA,GAAGD,GAAG,KAAKE,GAAG1iC,GAAMjB,EAAE,IAAIiB,EAAE,EAAEA,EAAEjB,EAAEmC,OAAOlB,IAAI0iC,GAAG3jC,EAAEiB,GAAG,CAAC,CAAC,SAASgjC,GAAGhjC,EAAEjB,GAAG,OAAOiB,EAAEjB,EAAE,CAAC,SAASkkC,KAAK,CAAC,IAAIC,IAAG,EAAG,SAASC,GAAGnjC,EAAEjB,EAAEG,GAAG,GAAGgkC,GAAG,OAAOljC,EAAEjB,EAAEG,GAAGgkC,IAAG,EAAG,IAAI,OAAOF,GAAGhjC,EAAEjB,EAAEG,EAAE,CAAC,QAAWgkC,IAAG,GAAG,OAAOV,IAAI,OAAOC,MAAGQ,KAAKF,KAAI,CAAC,CAChb,SAASK,GAAGpjC,EAAEjB,GAAG,IAAIG,EAAEc,EAAE4iC,UAAU,GAAG,OAAO1jC,EAAE,OAAO,KAAK,IAAIC,EAAE0jC,GAAG3jC,GAAG,GAAG,OAAOC,EAAE,OAAO,KAAKD,EAAEC,EAAEJ,GAAGiB,EAAE,OAAOjB,GAAG,IAAK,UAAU,IAAK,iBAAiB,IAAK,gBAAgB,IAAK,uBAAuB,IAAK,cAAc,IAAK,qBAAqB,IAAK,cAAc,IAAK,qBAAqB,IAAK,YAAY,IAAK,mBAAmB,IAAK,gBAAgBI,GAAGA,EAAEq9B,YAAqBr9B,IAAI,YAAba,EAAEA,EAAEG,OAAuB,UAAUH,GAAG,WAAWA,GAAG,aAAaA,IAAIA,GAAGb,EAAE,MAAMa,EAAE,QAAQA,GAAE,EAAG,GAAGA,EAAE,OAAO,KAAK,GAAGd,GAAG,oBACleA,EAAE,MAAMsK,MAAM5J,EAAE,IAAIb,SAASG,IAAI,OAAOA,CAAC,CAAC,IAAImkC,IAAG,EAAG,GAAGvM,EAAG,IAAI,IAAIwM,GAAG,CAAC,EAAE1uB,OAAOgE,eAAe0qB,GAAG,UAAU,CAACp9B,IAAI,WAAWm9B,IAAG,CAAE,IAAItM,OAAOwM,iBAAiB,OAAOD,GAAGA,IAAIvM,OAAOyM,oBAAoB,OAAOF,GAAGA,GAAG,CAAC,MAAMtjC,IAAGqjC,IAAG,CAAE,CAAC,SAASI,GAAGzjC,EAAEjB,EAAEG,EAAEC,EAAEC,EAAEC,EAAEC,EAAEC,EAAEC,GAAG,IAAIC,EAAE0B,MAAMiC,UAAUwC,MAAMwE,KAAK1H,UAAU,GAAG,IAAI3D,EAAE4G,MAAMzG,EAAEO,EAAE,CAAC,MAAMC,GAAGwD,KAAKwgC,QAAQhkC,EAAE,CAAC,CAAC,IAAIikC,IAAG,EAAGC,GAAG,KAAKC,IAAG,EAAGC,GAAG,KAAKC,GAAG,CAACL,QAAQ,SAAS1jC,GAAG2jC,IAAG,EAAGC,GAAG5jC,CAAC,GAAG,SAASgkC,GAAGhkC,EAAEjB,EAAEG,EAAEC,EAAEC,EAAEC,EAAEC,EAAEC,EAAEC,GAAGmkC,IAAG,EAAGC,GAAG,KAAKH,GAAG99B,MAAMo+B,GAAGrhC,UAAU,CACjW,SAASuhC,GAAGjkC,GAAG,IAAIjB,EAAEiB,EAAEd,EAAEc,EAAE,GAAGA,EAAEkkC,UAAU,KAAKnlC,EAAEolC,QAAQplC,EAAEA,EAAEolC,WAAW,CAACnkC,EAAEjB,EAAE,GAAO,KAAa,MAAjBA,EAAEiB,GAASokC,SAAcllC,EAAEH,EAAEolC,QAAQnkC,EAAEjB,EAAEolC,aAAankC,EAAE,CAAC,OAAO,IAAIjB,EAAE4qB,IAAIzqB,EAAE,IAAI,CAAC,SAASmlC,GAAGrkC,GAAG,GAAG,KAAKA,EAAE2pB,IAAI,CAAC,IAAI5qB,EAAEiB,EAAEskC,cAAsE,GAAxD,OAAOvlC,IAAkB,QAAdiB,EAAEA,EAAEkkC,aAAqBnlC,EAAEiB,EAAEskC,gBAAmB,OAAOvlC,EAAE,OAAOA,EAAEwlC,UAAU,CAAC,OAAO,IAAI,CAAC,SAASC,GAAGxkC,GAAG,GAAGikC,GAAGjkC,KAAKA,EAAE,MAAMwJ,MAAM5J,EAAE,KAAM,CAE1S,SAAS6kC,GAAGzkC,GAAW,OAAO,QAAfA,EADtN,SAAYA,GAAG,IAAIjB,EAAEiB,EAAEkkC,UAAU,IAAInlC,EAAE,CAAS,GAAG,QAAXA,EAAEklC,GAAGjkC,IAAe,MAAMwJ,MAAM5J,EAAE,MAAM,OAAOb,IAAIiB,EAAE,KAAKA,CAAC,CAAC,IAAI,IAAId,EAAEc,EAAEb,EAAEJ,IAAI,CAAC,IAAIK,EAAEF,EAAEilC,OAAO,GAAG,OAAO/kC,EAAE,MAAM,IAAIC,EAAED,EAAE8kC,UAAU,GAAG,OAAO7kC,EAAE,CAAY,GAAG,QAAdF,EAAEC,EAAE+kC,QAAmB,CAACjlC,EAAEC,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAGC,EAAEslC,QAAQrlC,EAAEqlC,MAAM,CAAC,IAAIrlC,EAAED,EAAEslC,MAAMrlC,GAAG,CAAC,GAAGA,IAAIH,EAAE,OAAOslC,GAAGplC,GAAGY,EAAE,GAAGX,IAAIF,EAAE,OAAOqlC,GAAGplC,GAAGL,EAAEM,EAAEA,EAAEslC,OAAO,CAAC,MAAMn7B,MAAM5J,EAAE,KAAM,CAAC,GAAGV,EAAEilC,SAAShlC,EAAEglC,OAAOjlC,EAAEE,EAAED,EAAEE,MAAM,CAAC,IAAI,IAAIC,GAAE,EAAGC,EAAEH,EAAEslC,MAAMnlC,GAAG,CAAC,GAAGA,IAAIL,EAAE,CAACI,GAAE,EAAGJ,EAAEE,EAAED,EAAEE,EAAE,KAAK,CAAC,GAAGE,IAAIJ,EAAE,CAACG,GAAE,EAAGH,EAAEC,EAAEF,EAAEG,EAAE,KAAK,CAACE,EAAEA,EAAEolC,OAAO,CAAC,IAAIrlC,EAAE,CAAC,IAAIC,EAAEF,EAAEqlC,MAAMnlC,GAAG,CAAC,GAAGA,IAC5fL,EAAE,CAACI,GAAE,EAAGJ,EAAEG,EAAEF,EAAEC,EAAE,KAAK,CAAC,GAAGG,IAAIJ,EAAE,CAACG,GAAE,EAAGH,EAAEE,EAAEH,EAAEE,EAAE,KAAK,CAACG,EAAEA,EAAEolC,OAAO,CAAC,IAAIrlC,EAAE,MAAMkK,MAAM5J,EAAE,KAAM,CAAC,CAAC,GAAGV,EAAEglC,YAAY/kC,EAAE,MAAMqK,MAAM5J,EAAE,KAAM,CAAC,GAAG,IAAIV,EAAEyqB,IAAI,MAAMngB,MAAM5J,EAAE,MAAM,OAAOV,EAAE0jC,UAAUljB,UAAUxgB,EAAEc,EAAEjB,CAAC,CAAkB6lC,CAAG5kC,IAAmB6kC,GAAG7kC,GAAG,IAAI,CAAC,SAAS6kC,GAAG7kC,GAAG,GAAG,IAAIA,EAAE2pB,KAAK,IAAI3pB,EAAE2pB,IAAI,OAAO3pB,EAAE,IAAIA,EAAEA,EAAE0kC,MAAM,OAAO1kC,GAAG,CAAC,IAAIjB,EAAE8lC,GAAG7kC,GAAG,GAAG,OAAOjB,EAAE,OAAOA,EAAEiB,EAAEA,EAAE2kC,OAAO,CAAC,OAAO,IAAI,CAC1X,IAAIG,GAAGtO,EAAGuO,0BAA0BC,GAAGxO,EAAGyO,wBAAwBC,GAAG1O,EAAG2O,qBAAqBC,GAAG5O,EAAG6O,sBAAsBC,GAAE9O,EAAG+O,aAAaC,GAAGhP,EAAGiP,iCAAiCC,GAAGlP,EAAGmP,2BAA2BC,GAAGpP,EAAGqP,8BAA8BC,GAAGtP,EAAGuP,wBAAwBC,GAAGxP,EAAGyP,qBAAqBC,GAAG1P,EAAG2P,sBAAsBC,GAAG,KAAKC,GAAG,KACvV,IAAIC,GAAG/kC,KAAKglC,MAAMhlC,KAAKglC,MAAiC,SAAYvmC,GAAU,OAAPA,KAAK,EAAS,IAAIA,EAAE,GAAG,IAAIwmC,GAAGxmC,GAAGymC,GAAG,GAAG,CAAC,EAA/ED,GAAGjlC,KAAK6N,IAAIq3B,GAAGllC,KAAKmlC,IAA4D,IAAIC,GAAG,GAAGC,GAAG,QAC7H,SAASC,GAAG7mC,GAAG,OAAOA,GAAGA,GAAG,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,QAAQ,KAAK,QAAQ,OAAS,QAAFA,EAAU,KAAK,QAAQ,KAAK,QAAQ,KAAK,SAAS,KAAK,SAAS,KAAK,SAAS,OAAS,UAAFA,EAAY,KAAK,UAAU,OAAO,UAAU,KAAK,UAAU,OAAO,UAAU,KAAK,UAAU,OAAO,UAAU,KAAK,WAAW,OAAO,WACzgB,QAAQ,OAAOA,EAAE,CAAC,SAAS8mC,GAAG9mC,EAAEjB,GAAG,IAAIG,EAAEc,EAAE+mC,aAAa,GAAG,IAAI7nC,EAAE,OAAO,EAAE,IAAIC,EAAE,EAAEC,EAAEY,EAAEgnC,eAAe3nC,EAAEW,EAAEinC,YAAY3nC,EAAI,UAAFJ,EAAY,GAAG,IAAII,EAAE,CAAC,IAAIC,EAAED,GAAGF,EAAE,IAAIG,EAAEJ,EAAE0nC,GAAGtnC,GAAS,KAALF,GAAGC,KAAUH,EAAE0nC,GAAGxnC,GAAI,MAAa,KAAPC,EAAEJ,GAAGE,GAAQD,EAAE0nC,GAAGvnC,GAAG,IAAID,IAAIF,EAAE0nC,GAAGxnC,IAAI,GAAG,IAAIF,EAAE,OAAO,EAAE,GAAG,IAAIJ,GAAGA,IAAII,GAAG,KAAKJ,EAAEK,MAAKA,EAAED,GAAGA,KAAEE,EAAEN,GAAGA,IAAQ,KAAKK,GAAG,KAAO,QAAFC,IAAY,OAAON,EAA0C,GAAxC,KAAO,EAAFI,KAAOA,GAAK,GAAFD,GAA4B,KAAtBH,EAAEiB,EAAEknC,gBAAwB,IAAIlnC,EAAEA,EAAEmnC,cAAcpoC,GAAGI,EAAE,EAAEJ,GAAcK,EAAE,IAAbF,EAAE,GAAGonC,GAAGvnC,IAAUI,GAAGa,EAAEd,GAAGH,IAAIK,EAAE,OAAOD,CAAC,CACvc,SAASioC,GAAGpnC,EAAEjB,GAAG,OAAOiB,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAOjB,EAAE,IAAI,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,QAAQ,KAAK,QAAQ,OAAOA,EAAE,IAAuJ,QAAQ,OAAO,EAAE,CACrN,SAASsoC,GAAGrnC,GAAgC,OAAO,KAApCA,GAAkB,WAAhBA,EAAE+mC,cAAsC/mC,EAAI,WAAFA,EAAa,WAAW,CAAC,CAAC,SAASsnC,KAAK,IAAItnC,EAAE2mC,GAAoC,OAA1B,KAAQ,SAAfA,KAAK,MAAqBA,GAAG,IAAW3mC,CAAC,CAAC,SAASunC,GAAGvnC,GAAG,IAAI,IAAIjB,EAAE,GAAGG,EAAE,EAAE,GAAGA,EAAEA,IAAIH,EAAE0N,KAAKzM,GAAG,OAAOjB,CAAC,CAC3a,SAASyoC,GAAGxnC,EAAEjB,EAAEG,GAAGc,EAAE+mC,cAAchoC,EAAE,YAAYA,IAAIiB,EAAEgnC,eAAe,EAAEhnC,EAAEinC,YAAY,IAAGjnC,EAAEA,EAAEynC,YAAW1oC,EAAE,GAAGunC,GAAGvnC,IAAQG,CAAC,CACzH,SAASwoC,GAAG1nC,EAAEjB,GAAG,IAAIG,EAAEc,EAAEknC,gBAAgBnoC,EAAE,IAAIiB,EAAEA,EAAEmnC,cAAcjoC,GAAG,CAAC,IAAIC,EAAE,GAAGmnC,GAAGpnC,GAAGE,EAAE,GAAGD,EAAEC,EAAEL,EAAEiB,EAAEb,GAAGJ,IAAIiB,EAAEb,IAAIJ,GAAGG,IAAIE,CAAC,CAAC,CAAC,IAAIuoC,GAAE,EAAE,SAASC,GAAG5nC,GAAS,OAAO,GAAbA,IAAIA,GAAa,EAAEA,EAAE,KAAO,UAAFA,GAAa,GAAG,UAAU,EAAE,CAAC,CAAC,IAAI6nC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,IAAG,EAAGC,GAAG,GAAGC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,IAAIjsB,IAAIksB,GAAG,IAAIlsB,IAAImsB,GAAG,GAAGC,GAAG,6PAA6P5nC,MAAM,KAChiB,SAAS6nC,GAAG3oC,EAAEjB,GAAG,OAAOiB,GAAG,IAAK,UAAU,IAAK,WAAWooC,GAAG,KAAK,MAAM,IAAK,YAAY,IAAK,YAAYC,GAAG,KAAK,MAAM,IAAK,YAAY,IAAK,WAAWC,GAAG,KAAK,MAAM,IAAK,cAAc,IAAK,aAAaC,GAAGK,OAAO7pC,EAAE8pC,WAAW,MAAM,IAAK,oBAAoB,IAAK,qBAAqBL,GAAGI,OAAO7pC,EAAE8pC,WAAW,CACnT,SAASC,GAAG9oC,EAAEjB,EAAEG,EAAEC,EAAEC,EAAEC,GAAG,OAAG,OAAOW,GAAGA,EAAE+oC,cAAc1pC,GAASW,EAAE,CAACgpC,UAAUjqC,EAAEkqC,aAAa/pC,EAAEgqC,iBAAiB/pC,EAAE4pC,YAAY1pC,EAAE8pC,iBAAiB,CAAC/pC,IAAI,OAAOL,IAAY,QAARA,EAAE4jC,GAAG5jC,KAAa+oC,GAAG/oC,IAAIiB,IAAEA,EAAEkpC,kBAAkB/pC,EAAEJ,EAAEiB,EAAEmpC,iBAAiB,OAAO/pC,IAAI,IAAIL,EAAEsJ,QAAQjJ,IAAIL,EAAE0N,KAAKrN,GAAUY,EAAC,CAEpR,SAASopC,GAAGppC,GAAG,IAAIjB,EAAEsqC,GAAGrpC,EAAEmiC,QAAQ,GAAG,OAAOpjC,EAAE,CAAC,IAAIG,EAAE+kC,GAAGllC,GAAG,GAAG,OAAOG,EAAE,GAAW,MAARH,EAAEG,EAAEyqB,MAAY,GAAW,QAAR5qB,EAAEslC,GAAGnlC,IAA4D,OAA/Cc,EAAEgpC,UAAUjqC,OAAEkpC,GAAGjoC,EAAEspC,UAAS,WAAWvB,GAAG7oC,EAAE,SAAgB,GAAG,IAAIH,GAAGG,EAAE0jC,UAAUljB,QAAQ4kB,cAAciF,aAAmE,YAArDvpC,EAAEgpC,UAAU,IAAI9pC,EAAEyqB,IAAIzqB,EAAE0jC,UAAU4G,cAAc,KAAY,CAACxpC,EAAEgpC,UAAU,IAAI,CAClT,SAASS,GAAGzpC,GAAG,GAAG,OAAOA,EAAEgpC,UAAU,OAAM,EAAG,IAAI,IAAIjqC,EAAEiB,EAAEmpC,iBAAiB,EAAEpqC,EAAEmC,QAAQ,CAAC,IAAIhC,EAAEwqC,GAAG1pC,EAAEipC,aAAajpC,EAAEkpC,iBAAiBnqC,EAAE,GAAGiB,EAAE+oC,aAAa,GAAG,OAAO7pC,EAAiG,OAAe,QAARH,EAAE4jC,GAAGzjC,KAAa4oC,GAAG/oC,GAAGiB,EAAEgpC,UAAU9pC,GAAE,EAA3H,IAAIC,EAAE,IAAtBD,EAAEc,EAAE+oC,aAAwBz8B,YAAYpN,EAAEiB,KAAKjB,GAAG+iC,GAAG9iC,EAAED,EAAEijC,OAAOwH,cAAcxqC,GAAG8iC,GAAG,KAA0DljC,EAAE0R,OAAO,CAAC,OAAM,CAAE,CAAC,SAASm5B,GAAG5pC,EAAEjB,EAAEG,GAAGuqC,GAAGzpC,IAAId,EAAE0pC,OAAO7pC,EAAE,CAAC,SAAS8qC,KAAK3B,IAAG,EAAG,OAAOE,IAAIqB,GAAGrB,MAAMA,GAAG,MAAM,OAAOC,IAAIoB,GAAGpB,MAAMA,GAAG,MAAM,OAAOC,IAAImB,GAAGnB,MAAMA,GAAG,MAAMC,GAAGthC,QAAQ2iC,IAAIpB,GAAGvhC,QAAQ2iC,GAAG,CACnf,SAASE,GAAG9pC,EAAEjB,GAAGiB,EAAEgpC,YAAYjqC,IAAIiB,EAAEgpC,UAAU,KAAKd,KAAKA,IAAG,EAAG1R,EAAGuO,0BAA0BvO,EAAGuP,wBAAwB8D,KAAK,CAC5H,SAASE,GAAG/pC,GAAG,SAASjB,EAAEA,GAAG,OAAO+qC,GAAG/qC,EAAEiB,EAAE,CAAC,GAAG,EAAEmoC,GAAGjnC,OAAO,CAAC4oC,GAAG3B,GAAG,GAAGnoC,GAAG,IAAI,IAAId,EAAE,EAAEA,EAAEipC,GAAGjnC,OAAOhC,IAAI,CAAC,IAAIC,EAAEgpC,GAAGjpC,GAAGC,EAAE6pC,YAAYhpC,IAAIb,EAAE6pC,UAAU,KAAK,CAAC,CAAyF,IAAxF,OAAOZ,IAAI0B,GAAG1B,GAAGpoC,GAAG,OAAOqoC,IAAIyB,GAAGzB,GAAGroC,GAAG,OAAOsoC,IAAIwB,GAAGxB,GAAGtoC,GAAGuoC,GAAGthC,QAAQlI,GAAGypC,GAAGvhC,QAAQlI,GAAOG,EAAE,EAAEA,EAAEupC,GAAGvnC,OAAOhC,KAAIC,EAAEspC,GAAGvpC,IAAK8pC,YAAYhpC,IAAIb,EAAE6pC,UAAU,MAAM,KAAK,EAAEP,GAAGvnC,QAAiB,QAARhC,EAAEupC,GAAG,IAAYO,WAAYI,GAAGlqC,GAAG,OAAOA,EAAE8pC,WAAWP,GAAGh4B,OAAO,CAAC,IAAIu5B,GAAGxR,EAAGyR,wBAAwBC,IAAG,EAC5a,SAASC,GAAGnqC,EAAEjB,EAAEG,EAAEC,GAAG,IAAIC,EAAEuoC,GAAEtoC,EAAE2qC,GAAGI,WAAWJ,GAAGI,WAAW,KAAK,IAAIzC,GAAE,EAAE0C,GAAGrqC,EAAEjB,EAAEG,EAAEC,EAAE,CAAC,QAAQwoC,GAAEvoC,EAAE4qC,GAAGI,WAAW/qC,CAAC,CAAC,CAAC,SAASirC,GAAGtqC,EAAEjB,EAAEG,EAAEC,GAAG,IAAIC,EAAEuoC,GAAEtoC,EAAE2qC,GAAGI,WAAWJ,GAAGI,WAAW,KAAK,IAAIzC,GAAE,EAAE0C,GAAGrqC,EAAEjB,EAAEG,EAAEC,EAAE,CAAC,QAAQwoC,GAAEvoC,EAAE4qC,GAAGI,WAAW/qC,CAAC,CAAC,CACjO,SAASgrC,GAAGrqC,EAAEjB,EAAEG,EAAEC,GAAG,GAAG+qC,GAAG,CAAC,IAAI9qC,EAAEsqC,GAAG1pC,EAAEjB,EAAEG,EAAEC,GAAG,GAAG,OAAOC,EAAEmrC,GAAGvqC,EAAEjB,EAAEI,EAAEqrC,GAAGtrC,GAAGypC,GAAG3oC,EAAEb,QAAQ,GANtF,SAAYa,EAAEjB,EAAEG,EAAEC,EAAEC,GAAG,OAAOL,GAAG,IAAK,UAAU,OAAOqpC,GAAGU,GAAGV,GAAGpoC,EAAEjB,EAAEG,EAAEC,EAAEC,IAAG,EAAG,IAAK,YAAY,OAAOipC,GAAGS,GAAGT,GAAGroC,EAAEjB,EAAEG,EAAEC,EAAEC,IAAG,EAAG,IAAK,YAAY,OAAOkpC,GAAGQ,GAAGR,GAAGtoC,EAAEjB,EAAEG,EAAEC,EAAEC,IAAG,EAAG,IAAK,cAAc,IAAIC,EAAED,EAAEypC,UAAkD,OAAxCN,GAAGjjC,IAAIjG,EAAEypC,GAAGP,GAAGriC,IAAI7G,IAAI,KAAKW,EAAEjB,EAAEG,EAAEC,EAAEC,KAAU,EAAG,IAAK,oBAAoB,OAAOC,EAAED,EAAEypC,UAAUL,GAAGljC,IAAIjG,EAAEypC,GAAGN,GAAGtiC,IAAI7G,IAAI,KAAKW,EAAEjB,EAAEG,EAAEC,EAAEC,KAAI,EAAG,OAAM,CAAE,CAM1QqrC,CAAGrrC,EAAEY,EAAEjB,EAAEG,EAAEC,GAAGA,EAAEurC,uBAAuB,GAAG/B,GAAG3oC,EAAEb,GAAK,EAAFJ,IAAM,EAAE2pC,GAAGrgC,QAAQrI,GAAG,CAAC,KAAK,OAAOZ,GAAG,CAAC,IAAIC,EAAEsjC,GAAGvjC,GAA0D,GAAvD,OAAOC,GAAGwoC,GAAGxoC,GAAiB,QAAdA,EAAEqqC,GAAG1pC,EAAEjB,EAAEG,EAAEC,KAAaorC,GAAGvqC,EAAEjB,EAAEI,EAAEqrC,GAAGtrC,GAAMG,IAAID,EAAE,MAAMA,EAAEC,CAAC,CAAC,OAAOD,GAAGD,EAAEurC,iBAAiB,MAAMH,GAAGvqC,EAAEjB,EAAEI,EAAE,KAAKD,EAAE,CAAC,CAAC,IAAIsrC,GAAG,KACpU,SAASd,GAAG1pC,EAAEjB,EAAEG,EAAEC,GAA2B,GAAxBqrC,GAAG,KAAwB,QAAXxqC,EAAEqpC,GAAVrpC,EAAEkiC,GAAG/iC,KAAuB,GAAW,QAARJ,EAAEklC,GAAGjkC,IAAYA,EAAE,UAAU,GAAW,MAARd,EAAEH,EAAE4qB,KAAW,CAAS,GAAG,QAAX3pB,EAAEqkC,GAAGtlC,IAAe,OAAOiB,EAAEA,EAAE,IAAI,MAAM,GAAG,IAAId,EAAE,CAAC,GAAGH,EAAE6jC,UAAUljB,QAAQ4kB,cAAciF,aAAa,OAAO,IAAIxqC,EAAE4qB,IAAI5qB,EAAE6jC,UAAU4G,cAAc,KAAKxpC,EAAE,IAAI,MAAMjB,IAAIiB,IAAIA,EAAE,MAAW,OAALwqC,GAAGxqC,EAAS,IAAI,CAC7S,SAAS2qC,GAAG3qC,GAAG,OAAOA,GAAG,IAAK,SAAS,IAAK,QAAQ,IAAK,QAAQ,IAAK,cAAc,IAAK,OAAO,IAAK,MAAM,IAAK,WAAW,IAAK,WAAW,IAAK,UAAU,IAAK,YAAY,IAAK,OAAO,IAAK,UAAU,IAAK,WAAW,IAAK,QAAQ,IAAK,UAAU,IAAK,UAAU,IAAK,WAAW,IAAK,QAAQ,IAAK,YAAY,IAAK,UAAU,IAAK,QAAQ,IAAK,QAAQ,IAAK,OAAO,IAAK,gBAAgB,IAAK,cAAc,IAAK,YAAY,IAAK,aAAa,IAAK,QAAQ,IAAK,SAAS,IAAK,SAAS,IAAK,SAAS,IAAK,cAAc,IAAK,WAAW,IAAK,aAAa,IAAK,eAAe,IAAK,SAAS,IAAK,kBAAkB,IAAK,YAAY,IAAK,mBAAmB,IAAK,iBAAiB,IAAK,oBAAoB,IAAK,aAAa,IAAK,YAAY,IAAK,cAAc,IAAK,OAAO,IAAK,mBAAmB,IAAK,QAAQ,IAAK,aAAa,IAAK,WAAW,IAAK,SAAS,IAAK,cAAc,OAAO,EAAE,IAAK,OAAO,IAAK,YAAY,IAAK,WAAW,IAAK,YAAY,IAAK,WAAW,IAAK,YAAY,IAAK,WAAW,IAAK,YAAY,IAAK,cAAc,IAAK,aAAa,IAAK,cAAc,IAAK,SAAS,IAAK,SAAS,IAAK,YAAY,IAAK,QAAQ,IAAK,aAAa,IAAK,aAAa,IAAK,eAAe,IAAK,eAAe,OAAO,EACpqC,IAAK,UAAU,OAAOwlC,MAAM,KAAKE,GAAG,OAAO,EAAE,KAAKE,GAAG,OAAO,EAAE,KAAKE,GAAG,KAAKE,GAAG,OAAO,GAAG,KAAKE,GAAG,OAAO,UAAU,QAAQ,OAAO,GAAG,QAAQ,OAAO,GAAG,CAAC,IAAI0E,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAK,SAASC,KAAK,GAAGD,GAAG,OAAOA,GAAG,IAAI9qC,EAAkBb,EAAhBJ,EAAE8rC,GAAG3rC,EAAEH,EAAEmC,OAAS9B,EAAE,UAAUwrC,GAAGA,GAAG72B,MAAM62B,GAAG7N,YAAY19B,EAAED,EAAE8B,OAAO,IAAIlB,EAAE,EAAEA,EAAEd,GAAGH,EAAEiB,KAAKZ,EAAEY,GAAGA,KAAK,IAAIV,EAAEJ,EAAEc,EAAE,IAAIb,EAAE,EAAEA,GAAGG,GAAGP,EAAEG,EAAEC,KAAKC,EAAEC,EAAEF,GAAGA,KAAK,OAAO2rC,GAAG1rC,EAAEwG,MAAM5F,EAAE,EAAEb,EAAE,EAAEA,OAAE,EAAO,CACxY,SAAS6rC,GAAGhrC,GAAG,IAAIjB,EAAEiB,EAAEirC,QAA+E,MAAvE,aAAajrC,EAAgB,KAAbA,EAAEA,EAAEkrC,WAAgB,KAAKnsC,IAAIiB,EAAE,IAAKA,EAAEjB,EAAE,KAAKiB,IAAIA,EAAE,IAAW,IAAIA,GAAG,KAAKA,EAAEA,EAAE,CAAC,CAAC,SAASmrC,KAAK,OAAM,CAAE,CAAC,SAASl5B,KAAK,OAAM,CAAE,CAC5K,SAASoB,GAAGrT,GAAG,SAASjB,EAAEA,EAAEI,EAAEC,EAAEC,EAAEC,GAA6G,IAAI,IAAIJ,KAAlHgE,KAAKkoC,WAAWrsC,EAAEmE,KAAKmoC,YAAYjsC,EAAE8D,KAAK/C,KAAKhB,EAAE+D,KAAK6lC,YAAY1pC,EAAE6D,KAAKi/B,OAAO7iC,EAAE4D,KAAKooC,cAAc,KAAkBtrC,EAAEA,EAAEyU,eAAevV,KAAKH,EAAEiB,EAAEd,GAAGgE,KAAKhE,GAAGH,EAAEA,EAAEM,GAAGA,EAAEH,IAAgI,OAA5HgE,KAAKqoC,oBAAoB,MAAMlsC,EAAEmsC,iBAAiBnsC,EAAEmsC,kBAAiB,IAAKnsC,EAAEosC,aAAaN,GAAGl5B,GAAG/O,KAAKwoC,qBAAqBz5B,GAAU/O,IAAI,CAC9E,OAD+EqF,EAAExJ,EAAEqE,UAAU,CAACuoC,eAAe,WAAWzoC,KAAKsoC,kBAAiB,EAAG,IAAIxrC,EAAEkD,KAAK6lC,YAAY/oC,IAAIA,EAAE2rC,eAAe3rC,EAAE2rC,iBAAiB,mBAAmB3rC,EAAEyrC,cAC7ezrC,EAAEyrC,aAAY,GAAIvoC,KAAKqoC,mBAAmBJ,GAAG,EAAET,gBAAgB,WAAW,IAAI1qC,EAAEkD,KAAK6lC,YAAY/oC,IAAIA,EAAE0qC,gBAAgB1qC,EAAE0qC,kBAAkB,mBAAmB1qC,EAAE4rC,eAAe5rC,EAAE4rC,cAAa,GAAI1oC,KAAKwoC,qBAAqBP,GAAG,EAAEU,QAAQ,WAAW,EAAEC,aAAaX,KAAYpsC,CAAC,CACjR,IAAoLgtC,GAAG5/B,GAAGC,GAAtL+D,GAAG,CAAC67B,WAAW,EAAEC,QAAQ,EAAEC,WAAW,EAAEC,UAAU,SAASnsC,GAAG,OAAOA,EAAEmsC,WAAW7oC,KAAKgrB,KAAK,EAAEkd,iBAAiB,EAAEY,UAAU,GAAGC,GAAGh5B,GAAGlD,IAAIm8B,GAAG/jC,EAAE,CAAC,EAAE4H,GAAG,CAACo8B,KAAK,EAAEC,OAAO,IAAIC,GAAGp5B,GAAGi5B,IAAaI,GAAGnkC,EAAE,CAAC,EAAE+jC,GAAG,CAACK,QAAQ,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,MAAM,EAAEC,QAAQ,EAAEC,SAAS,EAAEC,OAAO,EAAEC,QAAQ,EAAEC,iBAAiBC,GAAGC,OAAO,EAAEC,QAAQ,EAAEC,cAAc,SAASztC,GAAG,YAAO,IAASA,EAAEytC,cAAcztC,EAAE0tC,cAAc1tC,EAAEoiC,WAAWpiC,EAAE2tC,UAAU3tC,EAAE0tC,YAAY1tC,EAAEytC,aAAa,EAAEG,UAAU,SAAS5tC,GAAG,MAAG,cAC3eA,EAASA,EAAE4tC,WAAU5tC,IAAIoM,KAAKA,IAAI,cAAcpM,EAAEG,MAAM4rC,GAAG/rC,EAAE2sC,QAAQvgC,GAAGugC,QAAQxgC,GAAGnM,EAAE4sC,QAAQxgC,GAAGwgC,SAASzgC,GAAG4/B,GAAG,EAAE3/B,GAAGpM,GAAU+rC,GAAE,EAAE8B,UAAU,SAAS7tC,GAAG,MAAM,cAAcA,EAAEA,EAAE6tC,UAAU1hC,EAAE,IAAI2hC,GAAGz6B,GAAGq5B,IAAiCqB,GAAG16B,GAA7B9K,EAAE,CAAC,EAAEmkC,GAAG,CAACsB,aAAa,KAA4CC,GAAG56B,GAA9B9K,EAAE,CAAC,EAAE+jC,GAAG,CAACmB,cAAc,KAA0ES,GAAG76B,GAA5D9K,EAAE,CAAC,EAAE4H,GAAG,CAACg+B,cAAc,EAAEC,YAAY,EAAEC,cAAc,KAAcC,GAAG/lC,EAAE,CAAC,EAAE4H,GAAG,CAACo+B,cAAc,SAASvuC,GAAG,MAAM,kBAAkBA,EAAEA,EAAEuuC,cAAcxX,OAAOwX,aAAa,IAAIC,GAAGn7B,GAAGi7B,IAAyBG,GAAGp7B,GAArB9K,EAAE,CAAC,EAAE4H,GAAG,CAACuN,KAAK,KAAcgxB,GAAG,CAACC,IAAI,SACxfC,SAAS,IAAIC,KAAK,YAAYC,GAAG,UAAUC,MAAM,aAAaC,KAAK,YAAYC,IAAI,SAASC,IAAI,KAAKC,KAAK,cAAcC,KAAK,cAAcC,OAAO,aAAaC,gBAAgB,gBAAgBC,GAAG,CAAC,EAAE,YAAY,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,GAAG,IAAI,GAAG,SAAS,GAAG,WAAW,GAAG,MAAM,GAAG,OAAO,GAAG,YAAY,GAAG,UAAU,GAAG,aAAa,GAAG,YAAY,GAAG,SAAS,GAAG,SAAS,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KACtf,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,UAAU,IAAI,aAAa,IAAI,QAAQC,GAAG,CAACC,IAAI,SAASC,QAAQ,UAAUC,KAAK,UAAUC,MAAM,YAAY,SAASC,GAAG7vC,GAAG,IAAIjB,EAAEmE,KAAK6lC,YAAY,OAAOhqC,EAAEsuC,iBAAiBtuC,EAAEsuC,iBAAiBrtC,MAAIA,EAAEwvC,GAAGxvC,OAAMjB,EAAEiB,EAAK,CAAC,SAASstC,KAAK,OAAOuC,EAAE,CAChS,IAAIC,GAAGvnC,EAAE,CAAC,EAAE+jC,GAAG,CAAC7yB,IAAI,SAASzZ,GAAG,GAAGA,EAAEyZ,IAAI,CAAC,IAAI1a,EAAE2vC,GAAG1uC,EAAEyZ,MAAMzZ,EAAEyZ,IAAI,GAAG,iBAAiB1a,EAAE,OAAOA,CAAC,CAAC,MAAM,aAAaiB,EAAEG,KAAc,MAARH,EAAEgrC,GAAGhrC,IAAU,QAAQiB,OAAO8uC,aAAa/vC,GAAI,YAAYA,EAAEG,MAAM,UAAUH,EAAEG,KAAKovC,GAAGvvC,EAAEirC,UAAU,eAAe,EAAE,EAAE+E,KAAK,EAAE/a,SAAS,EAAEgY,QAAQ,EAAEC,SAAS,EAAEC,OAAO,EAAEC,QAAQ,EAAE6C,OAAO,EAAEttC,OAAO,EAAE0qC,iBAAiBC,GAAGpC,SAAS,SAASlrC,GAAG,MAAM,aAAaA,EAAEG,KAAK6qC,GAAGhrC,GAAG,CAAC,EAAEirC,QAAQ,SAASjrC,GAAG,MAAM,YAAYA,EAAEG,MAAM,UAAUH,EAAEG,KAAKH,EAAEirC,QAAQ,CAAC,EAAEiF,MAAM,SAASlwC,GAAG,MAAM,aAC7eA,EAAEG,KAAK6qC,GAAGhrC,GAAG,YAAYA,EAAEG,MAAM,UAAUH,EAAEG,KAAKH,EAAEirC,QAAQ,CAAC,IAAIkF,GAAG98B,GAAGy8B,IAAiIM,GAAG/8B,GAA7H9K,EAAE,CAAC,EAAEmkC,GAAG,CAAC7D,UAAU,EAAEwH,MAAM,EAAEC,OAAO,EAAEC,SAAS,EAAEC,mBAAmB,EAAEC,MAAM,EAAEC,MAAM,EAAEC,MAAM,EAAEC,YAAY,EAAEC,UAAU,KAAmIC,GAAGz9B,GAArH9K,EAAE,CAAC,EAAE+jC,GAAG,CAACyE,QAAQ,EAAEC,cAAc,EAAEC,eAAe,EAAE9D,OAAO,EAAEC,QAAQ,EAAEH,QAAQ,EAAEC,SAAS,EAAEG,iBAAiBC,MAA0E4D,GAAG79B,GAA3D9K,EAAE,CAAC,EAAE4H,GAAG,CAACunB,aAAa,EAAE0W,YAAY,EAAEC,cAAc,KAAc8C,GAAG5oC,EAAE,CAAC,EAAEmkC,GAAG,CAAC0E,OAAO,SAASpxC,GAAG,MAAM,WAAWA,EAAEA,EAAEoxC,OAAO,gBAAgBpxC,GAAGA,EAAEqxC,YAAY,CAAC,EACnfC,OAAO,SAAStxC,GAAG,MAAM,WAAWA,EAAEA,EAAEsxC,OAAO,gBAAgBtxC,GAAGA,EAAEuxC,YAAY,eAAevxC,GAAGA,EAAEwxC,WAAW,CAAC,EAAEC,OAAO,EAAEC,UAAU,IAAIC,GAAGt+B,GAAG89B,IAAI9tC,GAAG,CAAC,EAAE,GAAG,GAAG,IAAIuuC,GAAG9a,GAAI,qBAAqBC,OAAO8a,GAAG,KAAK/a,GAAI,iBAAiBE,WAAW6a,GAAG7a,SAAS8a,cAAc,IAAIC,GAAGjb,GAAI,cAAcC,SAAS8a,GAAGG,GAAGlb,KAAM8a,IAAIC,IAAI,EAAEA,IAAI,IAAIA,IAAIx7B,GAAGpV,OAAO8uC,aAAa,IAAIkC,IAAG,EAC1W,SAASC,GAAGlyC,EAAEjB,GAAG,OAAOiB,GAAG,IAAK,QAAQ,OAAO,IAAIqD,GAAGgF,QAAQtJ,EAAEksC,SAAS,IAAK,UAAU,OAAO,MAAMlsC,EAAEksC,QAAQ,IAAK,WAAW,IAAK,YAAY,IAAK,WAAW,OAAM,EAAG,QAAQ,OAAM,EAAG,CAAC,SAASkH,GAAGnyC,GAAc,MAAM,kBAAjBA,EAAEA,EAAEwsC,SAAkC,SAASxsC,EAAEA,EAAE0d,KAAK,IAAI,CAAC,IAAI00B,IAAG,EAE9Q,IAAIC,GAAG,CAACC,OAAM,EAAG5wC,MAAK,EAAG6wC,UAAS,EAAG,kBAAiB,EAAGC,OAAM,EAAG5wC,OAAM,EAAGstB,QAAO,EAAGujB,UAAS,EAAGlf,OAAM,EAAGpgB,QAAO,EAAGu/B,KAAI,EAAGC,MAAK,EAAG7hB,MAAK,EAAG8hB,KAAI,EAAGlrC,MAAK,GAAI,SAASmrC,GAAG7yC,GAAG,IAAIjB,EAAEiB,GAAGA,EAAE26B,UAAU36B,EAAE26B,SAASv4B,cAAc,MAAM,UAAUrD,IAAIszC,GAAGryC,EAAEG,MAAM,aAAapB,CAAO,CAAC,SAAS+zC,GAAG9yC,EAAEjB,EAAEG,EAAEC,GAAG2jC,GAAG3jC,GAAsB,GAAnBJ,EAAEg0C,GAAGh0C,EAAE,aAAgBmC,SAAShC,EAAE,IAAImtC,GAAG,WAAW,SAAS,KAAKntC,EAAEC,GAAGa,EAAEyM,KAAK,CAAC4I,MAAMnW,EAAEiX,UAAUpX,IAAI,CAAC,IAAIi0C,GAAG,KAAKC,GAAG,KAAK,SAASC,GAAGlzC,GAAGmzC,GAAGnzC,EAAE,EAAE,CAAC,SAASozC,GAAGpzC,GAAe,GAAGm7B,EAATkY,GAAGrzC,IAAY,OAAOA,CAAC,CACpe,SAASszC,GAAGtzC,EAAEjB,GAAG,GAAG,WAAWiB,EAAE,OAAOjB,CAAC,CAAC,IAAIw0C,IAAG,EAAG,GAAGzc,EAAG,CAAC,IAAItjB,GAAG,GAAGsjB,EAAG,CAAC,IAAI0c,GAAG,YAAYxc,SAAS,IAAIwc,GAAG,CAAC,IAAIC,GAAGzc,SAASC,cAAc,OAAOwc,GAAGpb,aAAa,UAAU,WAAWmb,GAAG,oBAAoBC,GAAGC,OAAO,CAAClgC,GAAGggC,EAAE,MAAMhgC,IAAG,EAAG+/B,GAAG//B,MAAMwjB,SAAS8a,cAAc,EAAE9a,SAAS8a,aAAa,CAAC,SAAS6B,KAAKX,KAAKA,GAAGY,YAAY,mBAAmBC,IAAIZ,GAAGD,GAAG,KAAK,CAAC,SAASa,GAAG7zC,GAAG,GAAG,UAAUA,EAAE03B,cAAc0b,GAAGH,IAAI,CAAC,IAAIl0C,EAAE,GAAG+zC,GAAG/zC,EAAEk0C,GAAGjzC,EAAEkiC,GAAGliC,IAAImjC,GAAG+P,GAAGn0C,EAAE,CAAC,CAC/b,SAAS+0C,GAAG9zC,EAAEjB,EAAEG,GAAG,YAAYc,GAAG2zC,KAAUV,GAAG/zC,GAAR8zC,GAAGj0C,GAAUg1C,YAAY,mBAAmBF,KAAK,aAAa7zC,GAAG2zC,IAAI,CAAC,SAASK,GAAGh0C,GAAG,GAAG,oBAAoBA,GAAG,UAAUA,GAAG,YAAYA,EAAE,OAAOozC,GAAGH,GAAG,CAAC,SAASgB,GAAGj0C,EAAEjB,GAAG,GAAG,UAAUiB,EAAE,OAAOozC,GAAGr0C,EAAE,CAAC,SAASm1C,GAAGl0C,EAAEjB,GAAG,GAAG,UAAUiB,GAAG,WAAWA,EAAE,OAAOozC,GAAGr0C,EAAE,CAAiE,IAAIo1C,GAAG,oBAAoBv/B,OAAOotB,GAAGptB,OAAOotB,GAA5G,SAAYhiC,EAAEjB,GAAG,OAAOiB,IAAIjB,IAAI,IAAIiB,GAAG,EAAEA,IAAI,EAAEjB,IAAIiB,IAAIA,GAAGjB,IAAIA,CAAC,EACtW,SAASq1C,GAAGp0C,EAAEjB,GAAG,GAAGo1C,GAAGn0C,EAAEjB,GAAG,OAAM,EAAG,GAAG,kBAAkBiB,GAAG,OAAOA,GAAG,kBAAkBjB,GAAG,OAAOA,EAAE,OAAM,EAAG,IAAIG,EAAE0V,OAAO0E,KAAKtZ,GAAGb,EAAEyV,OAAO0E,KAAKva,GAAG,GAAGG,EAAEgC,SAAS/B,EAAE+B,OAAO,OAAM,EAAG,IAAI/B,EAAE,EAAEA,EAAED,EAAEgC,OAAO/B,IAAI,CAAC,IAAIC,EAAEF,EAAEC,GAAG,IAAI+3B,EAAG9sB,KAAKrL,EAAEK,KAAK+0C,GAAGn0C,EAAEZ,GAAGL,EAAEK,IAAI,OAAM,CAAE,CAAC,OAAM,CAAE,CAAC,SAASi1C,GAAGr0C,GAAG,KAAKA,GAAGA,EAAEs9B,YAAYt9B,EAAEA,EAAEs9B,WAAW,OAAOt9B,CAAC,CACtU,SAASs0C,GAAGt0C,EAAEjB,GAAG,IAAwBI,EAApBD,EAAEm1C,GAAGr0C,GAAO,IAAJA,EAAE,EAAYd,GAAG,CAAC,GAAG,IAAIA,EAAEquB,SAAS,CAA0B,GAAzBpuB,EAAEa,EAAEd,EAAE69B,YAAY77B,OAAUlB,GAAGjB,GAAGI,GAAGJ,EAAE,MAAM,CAACg3B,KAAK72B,EAAEkJ,OAAOrJ,EAAEiB,GAAGA,EAAEb,CAAC,CAACa,EAAE,CAAC,KAAKd,GAAG,CAAC,GAAGA,EAAEq1C,YAAY,CAACr1C,EAAEA,EAAEq1C,YAAY,MAAMv0C,CAAC,CAACd,EAAEA,EAAEojC,UAAU,CAACpjC,OAAE,CAAM,CAACA,EAAEm1C,GAAGn1C,EAAE,CAAC,CAAC,SAASs1C,GAAGx0C,EAAEjB,GAAG,SAAOiB,IAAGjB,KAAEiB,IAAIjB,KAAKiB,GAAG,IAAIA,EAAEutB,YAAYxuB,GAAG,IAAIA,EAAEwuB,SAASinB,GAAGx0C,EAAEjB,EAAEujC,YAAY,aAAatiC,EAAEA,EAAEy0C,SAAS11C,KAAGiB,EAAE00C,4BAAwD,GAA7B10C,EAAE00C,wBAAwB31C,KAAY,CAC9Z,SAAS41C,KAAK,IAAI,IAAI30C,EAAE+2B,OAAOh4B,EAAEs8B,IAAKt8B,aAAaiB,EAAE40C,mBAAmB,CAAC,IAAI,IAAI11C,EAAE,kBAAkBH,EAAE81C,cAAc5f,SAAS6f,IAAI,CAAC,MAAM31C,GAAGD,GAAE,CAAE,CAAC,IAAGA,EAAyB,MAAMH,EAAEs8B,GAA/Br7B,EAAEjB,EAAE81C,eAAgC7d,SAAS,CAAC,OAAOj4B,CAAC,CAAC,SAASg2C,GAAG/0C,GAAG,IAAIjB,EAAEiB,GAAGA,EAAE26B,UAAU36B,EAAE26B,SAASv4B,cAAc,OAAOrD,IAAI,UAAUA,IAAI,SAASiB,EAAEG,MAAM,WAAWH,EAAEG,MAAM,QAAQH,EAAEG,MAAM,QAAQH,EAAEG,MAAM,aAAaH,EAAEG,OAAO,aAAapB,GAAG,SAASiB,EAAEg1C,gBAAgB,CACxa,SAASC,GAAGj1C,GAAG,IAAIjB,EAAE41C,KAAKz1C,EAAEc,EAAEk1C,YAAY/1C,EAAEa,EAAEm1C,eAAe,GAAGp2C,IAAIG,GAAGA,GAAGA,EAAEi9B,eAAeqY,GAAGt1C,EAAEi9B,cAAciZ,gBAAgBl2C,GAAG,CAAC,GAAG,OAAOC,GAAG41C,GAAG71C,GAAG,GAAGH,EAAEI,EAAEomB,WAAc,KAARvlB,EAAEb,EAAEqmB,OAAiBxlB,EAAEjB,GAAG,mBAAmBG,EAAEA,EAAEm2C,eAAet2C,EAAEG,EAAEo2C,aAAa/zC,KAAKyE,IAAIhG,EAAEd,EAAE6U,MAAM7S,aAAa,IAAGlB,GAAGjB,EAAEG,EAAEi9B,eAAenF,WAAWj4B,EAAEw2C,aAAaxe,QAASye,aAAa,CAACx1C,EAAEA,EAAEw1C,eAAe,IAAIp2C,EAAEF,EAAE69B,YAAY77B,OAAO7B,EAAEkC,KAAKyE,IAAI7G,EAAEomB,MAAMnmB,GAAGD,OAAE,IAASA,EAAEqmB,IAAInmB,EAAEkC,KAAKyE,IAAI7G,EAAEqmB,IAAIpmB,IAAIY,EAAEkH,QAAQ7H,EAAEF,IAAIC,EAAED,EAAEA,EAAEE,EAAEA,EAAED,GAAGA,EAAEk1C,GAAGp1C,EAAEG,GAAG,IAAIC,EAAEg1C,GAAGp1C,EACvfC,GAAGC,GAAGE,IAAI,IAAIU,EAAEy1C,YAAYz1C,EAAE01C,aAAat2C,EAAE22B,MAAM/1B,EAAE21C,eAAev2C,EAAEgJ,QAAQpI,EAAE41C,YAAYt2C,EAAEy2B,MAAM/1B,EAAE61C,cAAcv2C,EAAE8I,WAAUrJ,EAAEA,EAAEy0B,eAAgBsiB,SAAS12C,EAAE22B,KAAK32B,EAAEgJ,QAAQpI,EAAE+1C,kBAAkB12C,EAAEF,GAAGa,EAAEg2C,SAASj3C,GAAGiB,EAAEkH,OAAO5H,EAAEy2B,KAAKz2B,EAAE8I,UAAUrJ,EAAEk3C,OAAO32C,EAAEy2B,KAAKz2B,EAAE8I,QAAQpI,EAAEg2C,SAASj3C,IAAI,CAAM,IAALA,EAAE,GAAOiB,EAAEd,EAAEc,EAAEA,EAAEsiC,YAAY,IAAItiC,EAAEutB,UAAUxuB,EAAE0N,KAAK,CAACmpB,QAAQ51B,EAAEk2C,KAAKl2C,EAAEm2C,WAAWC,IAAIp2C,EAAEq2C,YAAmD,IAAvC,oBAAoBn3C,EAAEo3C,OAAOp3C,EAAEo3C,QAAYp3C,EAAE,EAAEA,EAAEH,EAAEmC,OAAOhC,KAAIc,EAAEjB,EAAEG,IAAK02B,QAAQugB,WAAWn2C,EAAEk2C,KAAKl2C,EAAE41B,QAAQygB,UAAUr2C,EAAEo2C,GAAG,CAAC,CACzf,IAAIG,GAAGzf,GAAI,iBAAiBE,UAAU,IAAIA,SAAS8a,aAAa0E,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,IAAG,EAC3F,SAASC,GAAG52C,EAAEjB,EAAEG,GAAG,IAAIC,EAAED,EAAE63B,SAAS73B,EAAEA,EAAE83B,SAAS,IAAI93B,EAAEquB,SAASruB,EAAEA,EAAEi9B,cAAcwa,IAAI,MAAMH,IAAIA,KAAKnb,EAAGl8B,KAAU,mBAALA,EAAEq3C,KAAyBzB,GAAG51C,GAAGA,EAAE,CAAComB,MAAMpmB,EAAEk2C,eAAe7vB,IAAIrmB,EAAEm2C,cAAuFn2C,EAAE,CAACu2C,YAA3Ev2C,GAAGA,EAAEg9B,eAAeh9B,EAAEg9B,cAAcoZ,aAAaxe,QAAQye,gBAA+BE,WAAWC,aAAax2C,EAAEw2C,aAAaC,UAAUz2C,EAAEy2C,UAAUC,YAAY12C,EAAE02C,aAAca,IAAItC,GAAGsC,GAAGv3C,KAAKu3C,GAAGv3C,EAAsB,GAApBA,EAAE4zC,GAAG0D,GAAG,aAAgBv1C,SAASnC,EAAE,IAAIstC,GAAG,WAAW,SAAS,KAAKttC,EAAEG,GAAGc,EAAEyM,KAAK,CAAC4I,MAAMtW,EAAEoX,UAAUhX,IAAIJ,EAAEojC,OAAOqU,KAAK,CACtf,SAASK,GAAG72C,EAAEjB,GAAG,IAAIG,EAAE,CAAC,EAAiF,OAA/EA,EAAEc,EAAEoC,eAAerD,EAAEqD,cAAclD,EAAE,SAASc,GAAG,SAASjB,EAAEG,EAAE,MAAMc,GAAG,MAAMjB,EAASG,CAAC,CAAC,IAAI43C,GAAG,CAACC,aAAaF,GAAG,YAAY,gBAAgBG,mBAAmBH,GAAG,YAAY,sBAAsBI,eAAeJ,GAAG,YAAY,kBAAkBK,cAAcL,GAAG,aAAa,kBAAkBM,GAAG,CAAC,EAAEC,GAAG,CAAC,EACpF,SAASC,GAAGr3C,GAAG,GAAGm3C,GAAGn3C,GAAG,OAAOm3C,GAAGn3C,GAAG,IAAI82C,GAAG92C,GAAG,OAAOA,EAAE,IAAYd,EAARH,EAAE+3C,GAAG92C,GAAK,IAAId,KAAKH,EAAE,GAAGA,EAAE0V,eAAevV,IAAIA,KAAKk4C,GAAG,OAAOD,GAAGn3C,GAAGjB,EAAEG,GAAG,OAAOc,CAAC,CAA/X82B,IAAKsgB,GAAGpgB,SAASC,cAAc,OAAO4J,MAAM,mBAAmB9J,gBAAgB+f,GAAGC,aAAaO,iBAAiBR,GAAGE,mBAAmBM,iBAAiBR,GAAGG,eAAeK,WAAW,oBAAoBvgB,eAAe+f,GAAGI,cAAc9M,YAAwJ,IAAImN,GAAGF,GAAG,gBAAgBG,GAAGH,GAAG,sBAAsBI,GAAGJ,GAAG,kBAAkBK,GAAGL,GAAG,iBAAiBM,GAAG,IAAIr7B,IAAIs7B,GAAG,smBAAsmB92C,MAAM,KAC/lC,SAAS+2C,GAAG73C,EAAEjB,GAAG44C,GAAGryC,IAAItF,EAAEjB,GAAG63B,EAAG73B,EAAE,CAACiB,GAAG,CAAC,IAAI,IAAI83C,GAAG,EAAEA,GAAGF,GAAG12C,OAAO42C,KAAK,CAAC,IAAIC,GAAGH,GAAGE,IAA2DD,GAApDE,GAAG31C,cAAuD,MAAtC21C,GAAG,GAAG/tC,cAAc+tC,GAAGnyC,MAAM,IAAiB,CAACiyC,GAAGN,GAAG,kBAAkBM,GAAGL,GAAG,wBAAwBK,GAAGJ,GAAG,oBAAoBI,GAAG,WAAW,iBAAiBA,GAAG,UAAU,WAAWA,GAAG,WAAW,UAAUA,GAAGH,GAAG,mBAAmB7gB,EAAG,eAAe,CAAC,WAAW,cAAcA,EAAG,eAAe,CAAC,WAAW,cAAcA,EAAG,iBAAiB,CAAC,aAAa,gBAC7cA,EAAG,iBAAiB,CAAC,aAAa,gBAAgBD,EAAG,WAAW,oEAAoE91B,MAAM,MAAM81B,EAAG,WAAW,uFAAuF91B,MAAM,MAAM81B,EAAG,gBAAgB,CAAC,iBAAiB,WAAW,YAAY,UAAUA,EAAG,mBAAmB,2DAA2D91B,MAAM,MAAM81B,EAAG,qBAAqB,6DAA6D91B,MAAM,MAC/f81B,EAAG,sBAAsB,8DAA8D91B,MAAM,MAAM,IAAIk3C,GAAG,6NAA6Nl3C,MAAM,KAAKm3C,GAAG,IAAIn7B,IAAI,0CAA0Chc,MAAM,KAAKwH,OAAO0vC,KACzZ,SAASE,GAAGl4C,EAAEjB,EAAEG,GAAG,IAAIC,EAAEa,EAAEG,MAAM,gBAAgBH,EAAEsrC,cAAcpsC,EAlDjE,SAAYc,EAAEjB,EAAEG,EAAEC,EAAEC,EAAEC,EAAEC,EAAEC,EAAEC,GAA4B,GAAzBwkC,GAAGr+B,MAAMzC,KAAKR,WAAcihC,GAAG,CAAC,IAAGA,GAAgC,MAAMn6B,MAAM5J,EAAE,MAA1C,IAAIH,EAAEmkC,GAAGD,IAAG,EAAGC,GAAG,KAA8BC,KAAKA,IAAG,EAAGC,GAAGrkC,EAAE,CAAC,CAkDpE04C,CAAGh5C,EAAEJ,OAAE,EAAOiB,GAAGA,EAAEsrC,cAAc,IAAI,CACxG,SAAS6H,GAAGnzC,EAAEjB,GAAGA,EAAE,KAAO,EAAFA,GAAK,IAAI,IAAIG,EAAE,EAAEA,EAAEc,EAAEkB,OAAOhC,IAAI,CAAC,IAAIC,EAAEa,EAAEd,GAAGE,EAAED,EAAEkW,MAAMlW,EAAEA,EAAEgX,UAAUnW,EAAE,CAAC,IAAIX,OAAE,EAAO,GAAGN,EAAE,IAAI,IAAIO,EAAEH,EAAE+B,OAAO,EAAE,GAAG5B,EAAEA,IAAI,CAAC,IAAIC,EAAEJ,EAAEG,GAAGE,EAAED,EAAE64C,SAAS34C,EAAEF,EAAE+rC,cAA2B,GAAb/rC,EAAEA,EAAEgW,SAAY/V,IAAIH,GAAGD,EAAEssC,uBAAuB,MAAM1rC,EAAEk4C,GAAG94C,EAAEG,EAAEE,GAAGJ,EAAEG,CAAC,MAAM,IAAIF,EAAE,EAAEA,EAAEH,EAAE+B,OAAO5B,IAAI,CAAoD,GAA5CE,GAAPD,EAAEJ,EAAEG,IAAO84C,SAAS34C,EAAEF,EAAE+rC,cAAc/rC,EAAEA,EAAEgW,SAAY/V,IAAIH,GAAGD,EAAEssC,uBAAuB,MAAM1rC,EAAEk4C,GAAG94C,EAAEG,EAAEE,GAAGJ,EAAEG,CAAC,CAAC,CAAC,CAAC,GAAGqkC,GAAG,MAAM7jC,EAAE8jC,GAAGD,IAAG,EAAGC,GAAG,KAAK9jC,CAAE,CAC5a,SAASiC,GAAEjC,EAAEjB,GAAG,IAAIG,EAAEH,EAAEs5C,SAAI,IAASn5C,IAAIA,EAAEH,EAAEs5C,IAAI,IAAIv7B,KAAK,IAAI3d,EAAEa,EAAE,WAAWd,EAAEyV,IAAIxV,KAAKm5C,GAAGv5C,EAAEiB,EAAE,GAAE,GAAId,EAAE4C,IAAI3C,GAAG,CAAC,SAASo5C,GAAGv4C,EAAEjB,EAAEG,GAAG,IAAIC,EAAE,EAAEJ,IAAII,GAAG,GAAGm5C,GAAGp5C,EAAEc,EAAEb,EAAEJ,EAAE,CAAC,IAAIy5C,GAAG,kBAAkBj3C,KAAKk3C,SAAS1zC,SAAS,IAAIa,MAAM,GAAG,SAAS8yC,GAAG14C,GAAG,IAAIA,EAAEw4C,IAAI,CAACx4C,EAAEw4C,KAAI,EAAG9hB,EAAGzvB,SAAQ,SAASlI,GAAG,oBAAoBA,IAAIk5C,GAAGtjC,IAAI5V,IAAIw5C,GAAGx5C,GAAE,EAAGiB,GAAGu4C,GAAGx5C,GAAE,EAAGiB,GAAG,IAAG,IAAIjB,EAAE,IAAIiB,EAAEutB,SAASvtB,EAAEA,EAAEm8B,cAAc,OAAOp9B,GAAGA,EAAEy5C,MAAMz5C,EAAEy5C,KAAI,EAAGD,GAAG,mBAAkB,EAAGx5C,GAAG,CAAC,CACjb,SAASu5C,GAAGt4C,EAAEjB,EAAEG,EAAEC,GAAG,OAAOwrC,GAAG5rC,IAAI,KAAK,EAAE,IAAIK,EAAE+qC,GAAG,MAAM,KAAK,EAAE/qC,EAAEkrC,GAAG,MAAM,QAAQlrC,EAAEirC,GAAGnrC,EAAEE,EAAEmI,KAAK,KAAKxI,EAAEG,EAAEc,GAAGZ,OAAE,GAAQikC,IAAI,eAAetkC,GAAG,cAAcA,GAAG,UAAUA,IAAIK,GAAE,GAAID,OAAE,IAASC,EAAEY,EAAEujC,iBAAiBxkC,EAAEG,EAAE,CAACy5C,SAAQ,EAAGC,QAAQx5C,IAAIY,EAAEujC,iBAAiBxkC,EAAEG,GAAE,QAAI,IAASE,EAAEY,EAAEujC,iBAAiBxkC,EAAEG,EAAE,CAAC05C,QAAQx5C,IAAIY,EAAEujC,iBAAiBxkC,EAAEG,GAAE,EAAG,CAClV,SAASqrC,GAAGvqC,EAAEjB,EAAEG,EAAEC,EAAEC,GAAG,IAAIC,EAAEF,EAAE,GAAG,KAAO,EAAFJ,IAAM,KAAO,EAAFA,IAAM,OAAOI,EAAEa,EAAE,OAAO,CAAC,GAAG,OAAOb,EAAE,OAAO,IAAIG,EAAEH,EAAEwqB,IAAI,GAAG,IAAIrqB,GAAG,IAAIA,EAAE,CAAC,IAAIC,EAAEJ,EAAEyjC,UAAU4G,cAAc,GAAGjqC,IAAIH,GAAG,IAAIG,EAAEguB,UAAUhuB,EAAE+iC,aAAaljC,EAAE,MAAM,GAAG,IAAIE,EAAE,IAAIA,EAAEH,EAAEglC,OAAO,OAAO7kC,GAAG,CAAC,IAAIE,EAAEF,EAAEqqB,IAAI,IAAG,IAAInqB,GAAG,IAAIA,MAAKA,EAAEF,EAAEsjC,UAAU4G,iBAAkBpqC,GAAG,IAAII,EAAE+tB,UAAU/tB,EAAE8iC,aAAaljC,GAAE,OAAOE,EAAEA,EAAE6kC,MAAM,CAAC,KAAK,OAAO5kC,GAAG,CAAS,GAAG,QAAXD,EAAE+pC,GAAG9pC,IAAe,OAAe,GAAG,KAAXC,EAAEF,EAAEqqB,MAAc,IAAInqB,EAAE,CAACL,EAAEE,EAAEC,EAAE,SAASU,CAAC,CAACT,EAAEA,EAAE+iC,UAAU,CAAC,CAACnjC,EAAEA,EAAEglC,MAAM,CAAChB,IAAG,WAAW,IAAIhkC,EAAEE,EAAED,EAAE8iC,GAAGhjC,GAAGI,EAAE,GACpfU,EAAE,CAAC,IAAIT,EAAEo4C,GAAGzxC,IAAIlG,GAAG,QAAG,IAAST,EAAE,CAAC,IAAIC,EAAE6sC,GAAG1sC,EAAEK,EAAE,OAAOA,GAAG,IAAK,WAAW,GAAG,IAAIgrC,GAAG9rC,GAAG,MAAMc,EAAE,IAAK,UAAU,IAAK,QAAQR,EAAE2wC,GAAG,MAAM,IAAK,UAAUxwC,EAAE,QAAQH,EAAEyuC,GAAG,MAAM,IAAK,WAAWtuC,EAAE,OAAOH,EAAEyuC,GAAG,MAAM,IAAK,aAAa,IAAK,YAAYzuC,EAAEyuC,GAAG,MAAM,IAAK,QAAQ,GAAG,IAAI/uC,EAAEquC,OAAO,MAAMvtC,EAAE,IAAK,WAAW,IAAK,WAAW,IAAK,YAAY,IAAK,YAAY,IAAK,UAAU,IAAK,WAAW,IAAK,YAAY,IAAK,cAAcR,EAAEsuC,GAAG,MAAM,IAAK,OAAO,IAAK,UAAU,IAAK,YAAY,IAAK,WAAW,IAAK,YAAY,IAAK,WAAW,IAAK,YAAY,IAAK,OAAOtuC,EAC1iBuuC,GAAG,MAAM,IAAK,cAAc,IAAK,WAAW,IAAK,YAAY,IAAK,aAAavuC,EAAEsxC,GAAG,MAAM,KAAKyG,GAAG,KAAKC,GAAG,KAAKC,GAAGj4C,EAAE0uC,GAAG,MAAM,KAAKwJ,GAAGl4C,EAAE0xC,GAAG,MAAM,IAAK,SAAS1xC,EAAEitC,GAAG,MAAM,IAAK,QAAQjtC,EAAEmyC,GAAG,MAAM,IAAK,OAAO,IAAK,MAAM,IAAK,QAAQnyC,EAAEgvC,GAAG,MAAM,IAAK,oBAAoB,IAAK,qBAAqB,IAAK,gBAAgB,IAAK,cAAc,IAAK,cAAc,IAAK,aAAa,IAAK,cAAc,IAAK,YAAYhvC,EAAE4wC,GAAG,IAAItwC,EAAE,KAAO,EAAFf,GAAK85C,GAAG/4C,GAAG,WAAWE,EAAE+C,EAAEjD,EAAE,OAAOP,EAAEA,EAAE,UAAU,KAAKA,EAAEO,EAAE,GAAG,IAAI,IAAQhB,EAAJkD,EAAE7C,EAAI,OAC/e6C,GAAG,CAAK,IAAI82C,GAARh6C,EAAEkD,GAAU4gC,UAAsF,GAA5E,IAAI9jC,EAAE6qB,KAAK,OAAOmvB,IAAIh6C,EAAEg6C,EAAE,OAAO/1C,IAAc,OAAV+1C,EAAE1V,GAAGphC,EAAEe,KAAYjD,EAAE2M,KAAKssC,GAAG/2C,EAAE82C,EAAEh6C,MAAS+5C,EAAE,MAAM72C,EAAEA,EAAEmiC,MAAM,CAAC,EAAErkC,EAAEoB,SAAS3B,EAAE,IAAIC,EAAED,EAAEI,EAAE,KAAKT,EAAEE,GAAGE,EAAEmN,KAAK,CAAC4I,MAAM9V,EAAE4W,UAAUrW,IAAI,CAAC,CAAC,GAAG,KAAO,EAAFf,GAAK,CAA4E,GAAnCS,EAAE,aAAaQ,GAAG,eAAeA,KAAtET,EAAE,cAAcS,GAAG,gBAAgBA,IAA2Cd,IAAI+iC,MAAKtiC,EAAET,EAAEuuC,eAAevuC,EAAEwuC,eAAerE,GAAG1pC,KAAIA,EAAEq5C,OAAgBx5C,GAAGD,KAAGA,EAAEH,EAAE23B,SAAS33B,EAAEA,GAAGG,EAAEH,EAAE+8B,eAAe58B,EAAEg2C,aAAah2C,EAAE05C,aAAaliB,OAAUv3B,GAAqCA,EAAEL,EAAiB,QAAfQ,GAAnCA,EAAET,EAAEuuC,eAAevuC,EAAEyuC,WAAkBtE,GAAG1pC,GAAG,QAC9dA,KAARk5C,EAAE5U,GAAGtkC,KAAU,IAAIA,EAAEgqB,KAAK,IAAIhqB,EAAEgqB,OAAKhqB,EAAE,QAAUH,EAAE,KAAKG,EAAER,GAAKK,IAAIG,GAAE,CAAgU,GAA/TG,EAAEguC,GAAGgL,EAAE,eAAe/1C,EAAE,eAAef,EAAE,QAAW,eAAehC,GAAG,gBAAgBA,IAAEF,EAAEswC,GAAG0I,EAAE,iBAAiB/1C,EAAE,iBAAiBf,EAAE,WAAU62C,EAAE,MAAMr5C,EAAED,EAAE8zC,GAAG7zC,GAAGV,EAAE,MAAMa,EAAEJ,EAAE8zC,GAAG1zC,IAAGJ,EAAE,IAAIO,EAAEg5C,EAAE92C,EAAE,QAAQxC,EAAEN,EAAEE,IAAK+iC,OAAO0W,EAAEt5C,EAAEkuC,cAAc3uC,EAAEg6C,EAAE,KAAKzP,GAAGjqC,KAAKD,KAAIW,EAAE,IAAIA,EAAEiD,EAAEf,EAAE,QAAQrC,EAAET,EAAEE,IAAK+iC,OAAOrjC,EAAEgB,EAAE2tC,cAAcoL,EAAEC,EAAEh5C,GAAG+4C,EAAEC,EAAKt5C,GAAGG,EAAEZ,EAAE,CAAa,IAARgE,EAAEpD,EAAEqC,EAAE,EAAMlD,EAAhBgB,EAAEN,EAAkBV,EAAEA,EAAEo6C,GAAGp6C,GAAGkD,IAAQ,IAAJlD,EAAE,EAAMg6C,EAAE/1C,EAAE+1C,EAAEA,EAAEI,GAAGJ,GAAGh6C,IAAI,KAAK,EAAEkD,EAAElD,GAAGgB,EAAEo5C,GAAGp5C,GAAGkC,IAAI,KAAK,EAAElD,EAAEkD,GAAGe,EACpfm2C,GAAGn2C,GAAGjE,IAAI,KAAKkD,KAAK,CAAC,GAAGlC,IAAIiD,GAAG,OAAOA,GAAGjD,IAAIiD,EAAEmhC,UAAU,MAAMnlC,EAAEe,EAAEo5C,GAAGp5C,GAAGiD,EAAEm2C,GAAGn2C,EAAE,CAACjD,EAAE,IAAI,MAAMA,EAAE,KAAK,OAAON,GAAG25C,GAAG75C,EAAEC,EAAEC,EAAEM,GAAE,GAAI,OAAOH,GAAG,OAAOk5C,GAAGM,GAAG75C,EAAEu5C,EAAEl5C,EAAEG,GAAE,EAAG,CAA8D,GAAG,YAA1CN,GAAjBD,EAAEJ,EAAEk0C,GAAGl0C,GAAG43B,QAAW4D,UAAUp7B,EAAEo7B,SAASv4B,gBAA+B,UAAU5C,GAAG,SAASD,EAAEY,KAAK,IAAIi5C,EAAG9F,QAAQ,GAAGT,GAAGtzC,GAAG,GAAGg0C,GAAG6F,EAAGlF,OAAO,CAACkF,EAAGpF,GAAG,IAAIqF,EAAGvF,EAAE,MAAMt0C,EAAED,EAAEo7B,WAAW,UAAUn7B,EAAE4C,gBAAgB,aAAa7C,EAAEY,MAAM,UAAUZ,EAAEY,QAAQi5C,EAAGnF,IACrV,OAD4VmF,IAAKA,EAAGA,EAAGp5C,EAAEb,IAAK2zC,GAAGxzC,EAAE85C,EAAGl6C,EAAEE,IAAWi6C,GAAIA,EAAGr5C,EAAET,EAAEJ,GAAG,aAAaa,IAAIq5C,EAAG95C,EAAEm8B,gBAClf2d,EAAGvd,YAAY,WAAWv8B,EAAEY,MAAM87B,GAAG18B,EAAE,SAASA,EAAEwU,QAAOslC,EAAGl6C,EAAEk0C,GAAGl0C,GAAG43B,OAAc/2B,GAAG,IAAK,WAAa6yC,GAAGwG,IAAK,SAASA,EAAGrE,mBAAgBwB,GAAG6C,EAAG5C,GAAGt3C,EAAEu3C,GAAG,MAAK,MAAM,IAAK,WAAWA,GAAGD,GAAGD,GAAG,KAAK,MAAM,IAAK,YAAYG,IAAG,EAAG,MAAM,IAAK,cAAc,IAAK,UAAU,IAAK,UAAUA,IAAG,EAAGC,GAAGt3C,EAAEJ,EAAEE,GAAG,MAAM,IAAK,kBAAkB,GAAGm3C,GAAG,MAAM,IAAK,UAAU,IAAK,QAAQK,GAAGt3C,EAAEJ,EAAEE,GAAG,IAAIk6C,EAAG,GAAG1H,GAAG7yC,EAAE,CAAC,OAAOiB,GAAG,IAAK,mBAAmB,IAAIu5C,EAAG,qBAAqB,MAAMx6C,EAAE,IAAK,iBAAiBw6C,EAAG,mBACpe,MAAMx6C,EAAE,IAAK,oBAAoBw6C,EAAG,sBAAsB,MAAMx6C,EAAEw6C,OAAG,CAAM,MAAMnH,GAAGF,GAAGlyC,EAAEd,KAAKq6C,EAAG,oBAAoB,YAAYv5C,GAAG,MAAMd,EAAE+rC,UAAUsO,EAAG,sBAAsBA,IAAKvH,IAAI,OAAO9yC,EAAEyD,SAASyvC,IAAI,uBAAuBmH,EAAG,qBAAqBA,GAAInH,KAAKkH,EAAGvO,OAAYF,GAAG,UAARD,GAAGxrC,GAAkBwrC,GAAG72B,MAAM62B,GAAG7N,YAAYqV,IAAG,IAAiB,GAAZiH,EAAGtG,GAAG5zC,EAAEo6C,IAASr4C,SAASq4C,EAAG,IAAI9K,GAAG8K,EAAGv5C,EAAE,KAAKd,EAAEE,GAAGE,EAAEmN,KAAK,CAAC4I,MAAMkkC,EAAGpjC,UAAUkjC,IAAKC,EAAGC,EAAG77B,KAAK47B,EAAa,QAATA,EAAGnH,GAAGjzC,MAAeq6C,EAAG77B,KAAK47B,MAAUA,EAAGvH,GA5BhM,SAAY/xC,EAAEjB,GAAG,OAAOiB,GAAG,IAAK,iBAAiB,OAAOmyC,GAAGpzC,GAAG,IAAK,WAAW,OAAG,KAAKA,EAAEmxC,MAAa,MAAK+B,IAAG,EAAU57B,IAAG,IAAK,YAAY,OAAOrW,EAAEjB,EAAE2e,QAASrH,IAAI47B,GAAG,KAAKjyC,EAAE,QAAQ,OAAO,KAAK,CA4BEw5C,CAAGx5C,EAAEd,GA3Bzd,SAAYc,EAAEjB,GAAG,GAAGqzC,GAAG,MAAM,mBAAmBpyC,IAAI4xC,IAAIM,GAAGlyC,EAAEjB,IAAIiB,EAAE+qC,KAAKD,GAAGD,GAAGD,GAAG,KAAKwH,IAAG,EAAGpyC,GAAG,KAAK,OAAOA,GAAG,IAAK,QAAgQ,QAAQ,OAAO,KAA3P,IAAK,WAAW,KAAKjB,EAAEkuC,SAASluC,EAAEouC,QAAQpuC,EAAEquC,UAAUruC,EAAEkuC,SAASluC,EAAEouC,OAAO,CAAC,GAAGpuC,EAAE06C,MAAM,EAAE16C,EAAE06C,KAAKv4C,OAAO,OAAOnC,EAAE06C,KAAK,GAAG16C,EAAEmxC,MAAM,OAAOjvC,OAAO8uC,aAAahxC,EAAEmxC,MAAM,CAAC,OAAO,KAAK,IAAK,iBAAiB,OAAO8B,IAAI,OAAOjzC,EAAE4D,OAAO,KAAK5D,EAAE2e,KAAyB,CA2BqFg8B,CAAG15C,EAAEd,MACje,GADoeC,EAAE4zC,GAAG5zC,EAAE,kBACve+B,SAAS9B,EAAE,IAAIqvC,GAAG,gBAAgB,cAAc,KAAKvvC,EAAEE,GAAGE,EAAEmN,KAAK,CAAC4I,MAAMjW,EAAE+W,UAAUhX,IAAIC,EAAEse,KAAK47B,GAAG,CAACnG,GAAG7zC,EAAEP,EAAE,GAAE,CAAC,SAASg6C,GAAG/4C,EAAEjB,EAAEG,GAAG,MAAM,CAACk5C,SAASp4C,EAAEuV,SAASxW,EAAEusC,cAAcpsC,EAAE,CAAC,SAAS6zC,GAAG/yC,EAAEjB,GAAG,IAAI,IAAIG,EAAEH,EAAE,UAAUI,EAAE,GAAG,OAAOa,GAAG,CAAC,IAAIZ,EAAEY,EAAEX,EAAED,EAAEwjC,UAAU,IAAIxjC,EAAEuqB,KAAK,OAAOtqB,IAAID,EAAEC,EAAY,OAAVA,EAAE+jC,GAAGpjC,EAAEd,KAAYC,EAAEuN,QAAQqsC,GAAG/4C,EAAEX,EAAED,IAAc,OAAVC,EAAE+jC,GAAGpjC,EAAEjB,KAAYI,EAAEsN,KAAKssC,GAAG/4C,EAAEX,EAAED,KAAKY,EAAEA,EAAEmkC,MAAM,CAAC,OAAOhlC,CAAC,CAAC,SAAS+5C,GAAGl5C,GAAG,GAAG,OAAOA,EAAE,OAAO,KAAK,GAAGA,EAAEA,EAAEmkC,aAAankC,GAAG,IAAIA,EAAE2pB,KAAK,OAAO3pB,GAAI,IAAI,CACnd,SAASm5C,GAAGn5C,EAAEjB,EAAEG,EAAEC,EAAEC,GAAG,IAAI,IAAIC,EAAEN,EAAEqsC,WAAW9rC,EAAE,GAAG,OAAOJ,GAAGA,IAAIC,GAAG,CAAC,IAAII,EAAEL,EAAEM,EAAED,EAAE2kC,UAAUzkC,EAAEF,EAAEqjC,UAAU,GAAG,OAAOpjC,GAAGA,IAAIL,EAAE,MAAM,IAAII,EAAEoqB,KAAK,OAAOlqB,IAAIF,EAAEE,EAAEL,EAAa,OAAVI,EAAE4jC,GAAGlkC,EAAEG,KAAYC,EAAEoN,QAAQqsC,GAAG75C,EAAEM,EAAED,IAAKH,GAAc,OAAVI,EAAE4jC,GAAGlkC,EAAEG,KAAYC,EAAEmN,KAAKssC,GAAG75C,EAAEM,EAAED,KAAML,EAAEA,EAAEilC,MAAM,CAAC,IAAI7kC,EAAE4B,QAAQlB,EAAEyM,KAAK,CAAC4I,MAAMtW,EAAEoX,UAAU7W,GAAG,CAAC,IAAIq6C,GAAG,SAASC,GAAG,iBAAiB,SAASC,GAAG75C,GAAG,OAAO,kBAAkBA,EAAEA,EAAE,GAAGA,GAAGqC,QAAQs3C,GAAG,MAAMt3C,QAAQu3C,GAAG,GAAG,CAAC,SAASE,GAAG95C,EAAEjB,EAAEG,GAAW,GAARH,EAAE86C,GAAG96C,GAAM86C,GAAG75C,KAAKjB,GAAGG,EAAE,MAAMsK,MAAM5J,EAAE,KAAM,CAAC,SAASm6C,KAAK,CAC9e,IAAIC,GAAG,KAAKC,GAAG,KAAK,SAASC,GAAGl6C,EAAEjB,GAAG,MAAM,aAAaiB,GAAG,aAAaA,GAAG,kBAAkBjB,EAAE49B,UAAU,kBAAkB59B,EAAE49B,UAAU,kBAAkB59B,EAAE29B,yBAAyB,OAAO39B,EAAE29B,yBAAyB,MAAM39B,EAAE29B,wBAAwByd,MAAM,CAC5P,IAAIC,GAAG,oBAAoBjpB,WAAWA,gBAAW,EAAOkpB,GAAG,oBAAoB5oB,aAAaA,kBAAa,EAAO6oB,GAAG,oBAAoBz9B,QAAQA,aAAQ,EAAO09B,GAAG,oBAAoBC,eAAeA,eAAe,qBAAqBF,GAAG,SAASt6C,GAAG,OAAOs6C,GAAGjuB,QAAQ,MAAMouB,KAAKz6C,GAAG06C,MAAMC,GAAG,EAAEP,GAAG,SAASO,GAAG36C,GAAGmxB,YAAW,WAAW,MAAMnxB,CAAE,GAAE,CACpV,SAAS46C,GAAG56C,EAAEjB,GAAG,IAAIG,EAAEH,EAAEI,EAAE,EAAE,EAAE,CAAC,IAAIC,EAAEF,EAAEq1C,YAA6B,GAAjBv0C,EAAEu9B,YAAYr+B,GAAME,GAAG,IAAIA,EAAEmuB,SAAS,GAAY,QAATruB,EAAEE,EAAEse,MAAc,CAAC,GAAG,IAAIve,EAA0B,OAAvBa,EAAEu9B,YAAYn+B,QAAG2qC,GAAGhrC,GAAUI,GAAG,KAAK,MAAMD,GAAG,OAAOA,GAAG,OAAOA,GAAGC,IAAID,EAAEE,CAAC,OAAOF,GAAG6qC,GAAGhrC,EAAE,CAAC,SAAS87C,GAAG76C,GAAG,KAAK,MAAMA,EAAEA,EAAEA,EAAEu0C,YAAY,CAAC,IAAIx1C,EAAEiB,EAAEutB,SAAS,GAAG,IAAIxuB,GAAG,IAAIA,EAAE,MAAM,GAAG,IAAIA,EAAE,CAAU,GAAG,OAAZA,EAAEiB,EAAE0d,OAAiB,OAAO3e,GAAG,OAAOA,EAAE,MAAM,GAAG,OAAOA,EAAE,OAAO,IAAI,CAAC,CAAC,OAAOiB,CAAC,CACjY,SAAS86C,GAAG96C,GAAGA,EAAEA,EAAE+6C,gBAAgB,IAAI,IAAIh8C,EAAE,EAAEiB,GAAG,CAAC,GAAG,IAAIA,EAAEutB,SAAS,CAAC,IAAIruB,EAAEc,EAAE0d,KAAK,GAAG,MAAMxe,GAAG,OAAOA,GAAG,OAAOA,EAAE,CAAC,GAAG,IAAIH,EAAE,OAAOiB,EAAEjB,GAAG,KAAK,OAAOG,GAAGH,GAAG,CAACiB,EAAEA,EAAE+6C,eAAe,CAAC,OAAO,IAAI,CAAC,IAAIC,GAAGz5C,KAAKk3C,SAAS1zC,SAAS,IAAIa,MAAM,GAAGq1C,GAAG,gBAAgBD,GAAGE,GAAG,gBAAgBF,GAAGhC,GAAG,oBAAoBgC,GAAG3C,GAAG,iBAAiB2C,GAAGG,GAAG,oBAAoBH,GAAGI,GAAG,kBAAkBJ,GAClX,SAAS3R,GAAGrpC,GAAG,IAAIjB,EAAEiB,EAAEi7C,IAAI,GAAGl8C,EAAE,OAAOA,EAAE,IAAI,IAAIG,EAAEc,EAAEsiC,WAAWpjC,GAAG,CAAC,GAAGH,EAAEG,EAAE85C,KAAK95C,EAAE+7C,IAAI,CAAe,GAAd/7C,EAAEH,EAAEmlC,UAAa,OAAOnlC,EAAE2lC,OAAO,OAAOxlC,GAAG,OAAOA,EAAEwlC,MAAM,IAAI1kC,EAAE86C,GAAG96C,GAAG,OAAOA,GAAG,CAAC,GAAGd,EAAEc,EAAEi7C,IAAI,OAAO/7C,EAAEc,EAAE86C,GAAG96C,EAAE,CAAC,OAAOjB,CAAC,CAAKG,GAAJc,EAAEd,GAAMojC,UAAU,CAAC,OAAO,IAAI,CAAC,SAASK,GAAG3iC,GAAkB,QAAfA,EAAEA,EAAEi7C,KAAKj7C,EAAEg5C,MAAc,IAAIh5C,EAAE2pB,KAAK,IAAI3pB,EAAE2pB,KAAK,KAAK3pB,EAAE2pB,KAAK,IAAI3pB,EAAE2pB,IAAI,KAAK3pB,CAAC,CAAC,SAASqzC,GAAGrzC,GAAG,GAAG,IAAIA,EAAE2pB,KAAK,IAAI3pB,EAAE2pB,IAAI,OAAO3pB,EAAE4iC,UAAU,MAAMp5B,MAAM5J,EAAE,IAAK,CAAC,SAASijC,GAAG7iC,GAAG,OAAOA,EAAEk7C,KAAK,IAAI,CAAC,IAAIG,GAAG,GAAGC,IAAI,EAAE,SAASC,GAAGv7C,GAAG,MAAM,CAAC0f,QAAQ1f,EAAE,CACve,SAASw7C,GAAEx7C,GAAG,EAAEs7C,KAAKt7C,EAAE0f,QAAQ27B,GAAGC,IAAID,GAAGC,IAAI,KAAKA,KAAK,CAAC,SAASG,GAAEz7C,EAAEjB,GAAGu8C,KAAKD,GAAGC,IAAIt7C,EAAE0f,QAAQ1f,EAAE0f,QAAQ3gB,CAAC,CAAC,IAAI28C,GAAG,CAAC,EAAE5yC,GAAEyyC,GAAGG,IAAIC,GAAGJ,IAAG,GAAIK,GAAGF,GAAG,SAASG,GAAG77C,EAAEjB,GAAG,IAAIG,EAAEc,EAAEG,KAAKqX,aAAa,IAAItY,EAAE,OAAOw8C,GAAG,IAAIv8C,EAAEa,EAAE4iC,UAAU,GAAGzjC,GAAGA,EAAE28C,8CAA8C/8C,EAAE,OAAOI,EAAE48C,0CAA0C,IAAS18C,EAALD,EAAE,CAAC,EAAI,IAAIC,KAAKH,EAAEE,EAAEC,GAAGN,EAAEM,GAAoH,OAAjHF,KAAIa,EAAEA,EAAE4iC,WAAYkZ,4CAA4C/8C,EAAEiB,EAAE+7C,0CAA0C38C,GAAUA,CAAC,CAC9d,SAAS48C,GAAGh8C,GAAyB,OAAO,QAA7BA,EAAEA,EAAEsX,yBAAmC,IAAStX,CAAC,CAAC,SAASi8C,KAAKT,GAAEG,IAAIH,GAAE1yC,GAAE,CAAC,SAASozC,GAAGl8C,EAAEjB,EAAEG,GAAG,GAAG4J,GAAE4W,UAAUg8B,GAAG,MAAMlyC,MAAM5J,EAAE,MAAM67C,GAAE3yC,GAAE/J,GAAG08C,GAAEE,GAAGz8C,EAAE,CAAC,SAASi9C,GAAGn8C,EAAEjB,EAAEG,GAAG,IAAIC,EAAEa,EAAE4iC,UAAgC,GAAtB7jC,EAAEA,EAAEuY,kBAAqB,oBAAoBnY,EAAEi9C,gBAAgB,OAAOl9C,EAAwB,IAAI,IAAIE,KAA9BD,EAAEA,EAAEi9C,kBAAiC,KAAKh9C,KAAKL,GAAG,MAAMyK,MAAM5J,EAAE,IAAI46B,EAAGx6B,IAAI,UAAUZ,IAAI,OAAOmJ,EAAE,CAAC,EAAErJ,EAAEC,EAAE,CACxX,SAASk9C,GAAGr8C,GAA2G,OAAxGA,GAAGA,EAAEA,EAAE4iC,YAAY5iC,EAAEs8C,2CAA2CZ,GAAGE,GAAG9yC,GAAE4W,QAAQ+7B,GAAE3yC,GAAE9I,GAAGy7C,GAAEE,GAAGA,GAAGj8B,UAAe,CAAE,CAAC,SAAS68B,GAAGv8C,EAAEjB,EAAEG,GAAG,IAAIC,EAAEa,EAAE4iC,UAAU,IAAIzjC,EAAE,MAAMqK,MAAM5J,EAAE,MAAMV,GAAGc,EAAEm8C,GAAGn8C,EAAEjB,EAAE68C,IAAIz8C,EAAEm9C,0CAA0Ct8C,EAAEw7C,GAAEG,IAAIH,GAAE1yC,IAAG2yC,GAAE3yC,GAAE9I,IAAIw7C,GAAEG,IAAIF,GAAEE,GAAGz8C,EAAE,CAAC,IAAIs9C,GAAG,KAAKC,IAAG,EAAGC,IAAG,EAAG,SAASC,GAAG38C,GAAG,OAAOw8C,GAAGA,GAAG,CAACx8C,GAAGw8C,GAAG/vC,KAAKzM,EAAE,CAChW,SAAS48C,KAAK,IAAIF,IAAI,OAAOF,GAAG,CAACE,IAAG,EAAG,IAAI18C,EAAE,EAAEjB,EAAE4oC,GAAE,IAAI,IAAIzoC,EAAEs9C,GAAG,IAAI7U,GAAE,EAAE3nC,EAAEd,EAAEgC,OAAOlB,IAAI,CAAC,IAAIb,EAAED,EAAEc,GAAG,GAAGb,EAAEA,GAAE,SAAU,OAAOA,EAAE,CAACq9C,GAAG,KAAKC,IAAG,CAAE,CAAC,MAAMr9C,GAAG,MAAM,OAAOo9C,KAAKA,GAAGA,GAAG52C,MAAM5F,EAAE,IAAI8kC,GAAGY,GAAGkX,IAAIx9C,CAAE,CAAC,QAAQuoC,GAAE5oC,EAAE29C,IAAG,CAAE,CAAC,CAAC,OAAO,IAAI,CAAC,IAAIG,GAAG,GAAGC,GAAG,EAAEC,GAAG,KAAKC,GAAG,EAAEC,GAAG,GAAGC,GAAG,EAAEC,GAAG,KAAKC,GAAG,EAAEC,GAAG,GAAG,SAASC,GAAGt9C,EAAEjB,GAAG89C,GAAGC,MAAME,GAAGH,GAAGC,MAAMC,GAAGA,GAAG/8C,EAAEg9C,GAAGj+C,CAAC,CACjV,SAASw+C,GAAGv9C,EAAEjB,EAAEG,GAAG+9C,GAAGC,MAAME,GAAGH,GAAGC,MAAMG,GAAGJ,GAAGC,MAAMC,GAAGA,GAAGn9C,EAAE,IAAIb,EAAEi+C,GAAGp9C,EAAEq9C,GAAG,IAAIj+C,EAAE,GAAGknC,GAAGnnC,GAAG,EAAEA,KAAK,GAAGC,GAAGF,GAAG,EAAE,IAAIG,EAAE,GAAGinC,GAAGvnC,GAAGK,EAAE,GAAG,GAAGC,EAAE,CAAC,IAAIC,EAAEF,EAAEA,EAAE,EAAEC,GAAGF,GAAG,GAAGG,GAAG,GAAGyF,SAAS,IAAI5F,IAAIG,EAAEF,GAAGE,EAAE89C,GAAG,GAAG,GAAG9W,GAAGvnC,GAAGK,EAAEF,GAAGE,EAAED,EAAEk+C,GAAGh+C,EAAEW,CAAC,MAAMo9C,GAAG,GAAG/9C,EAAEH,GAAGE,EAAED,EAAEk+C,GAAGr9C,CAAC,CAAC,SAASw9C,GAAGx9C,GAAG,OAAOA,EAAEmkC,SAASmZ,GAAGt9C,EAAE,GAAGu9C,GAAGv9C,EAAE,EAAE,GAAG,CAAC,SAASy9C,GAAGz9C,GAAG,KAAKA,IAAI+8C,IAAIA,GAAGF,KAAKC,IAAID,GAAGC,IAAI,KAAKE,GAAGH,KAAKC,IAAID,GAAGC,IAAI,KAAK,KAAK98C,IAAIm9C,IAAIA,GAAGF,KAAKC,IAAID,GAAGC,IAAI,KAAKG,GAAGJ,KAAKC,IAAID,GAAGC,IAAI,KAAKE,GAAGH,KAAKC,IAAID,GAAGC,IAAI,IAAI,CAAC,IAAIQ,GAAG,KAAKC,GAAG,KAAKC,IAAE,EAAGC,GAAG,KACje,SAASC,GAAG99C,EAAEjB,GAAG,IAAIG,EAAE6+C,GAAG,EAAE,KAAK,KAAK,GAAG7+C,EAAE22B,YAAY,UAAU32B,EAAE0jC,UAAU7jC,EAAEG,EAAEilC,OAAOnkC,EAAgB,QAAdjB,EAAEiB,EAAEg+C,YAAoBh+C,EAAEg+C,UAAU,CAAC9+C,GAAGc,EAAEokC,OAAO,IAAIrlC,EAAE0N,KAAKvN,EAAE,CACxJ,SAAS++C,GAAGj+C,EAAEjB,GAAG,OAAOiB,EAAE2pB,KAAK,KAAK,EAAE,IAAIzqB,EAAEc,EAAEG,KAAyE,OAAO,QAA3EpB,EAAE,IAAIA,EAAEwuB,UAAUruB,EAAEkD,gBAAgBrD,EAAE47B,SAASv4B,cAAc,KAAKrD,KAAmBiB,EAAE4iC,UAAU7jC,EAAE2+C,GAAG19C,EAAE29C,GAAG9C,GAAG97C,EAAEu+B,aAAY,GAAO,KAAK,EAAE,OAAoD,QAA7Cv+B,EAAE,KAAKiB,EAAEk+C,cAAc,IAAIn/C,EAAEwuB,SAAS,KAAKxuB,KAAYiB,EAAE4iC,UAAU7jC,EAAE2+C,GAAG19C,EAAE29C,GAAG,MAAK,GAAO,KAAK,GAAG,OAA+B,QAAxB5+C,EAAE,IAAIA,EAAEwuB,SAAS,KAAKxuB,KAAYG,EAAE,OAAOi+C,GAAG,CAAC3S,GAAG4S,GAAGe,SAASd,IAAI,KAAKr9C,EAAEskC,cAAc,CAACC,WAAWxlC,EAAEq/C,YAAYl/C,EAAEm/C,UAAU,aAAYn/C,EAAE6+C,GAAG,GAAG,KAAK,KAAK,IAAKnb,UAAU7jC,EAAEG,EAAEilC,OAAOnkC,EAAEA,EAAE0kC,MAAMxlC,EAAEw+C,GAAG19C,EAAE29C,GAClf,MAAK,GAAO,QAAQ,OAAM,EAAG,CAAC,SAASW,GAAGt+C,GAAG,OAAO,KAAY,EAAPA,EAAEu+C,OAAS,KAAa,IAARv+C,EAAEokC,MAAU,CAAC,SAASoa,GAAGx+C,GAAG,GAAG49C,GAAE,CAAC,IAAI7+C,EAAE4+C,GAAG,GAAG5+C,EAAE,CAAC,IAAIG,EAAEH,EAAE,IAAIk/C,GAAGj+C,EAAEjB,GAAG,CAAC,GAAGu/C,GAAGt+C,GAAG,MAAMwJ,MAAM5J,EAAE,MAAMb,EAAE87C,GAAG37C,EAAEq1C,aAAa,IAAIp1C,EAAEu+C,GAAG3+C,GAAGk/C,GAAGj+C,EAAEjB,GAAG++C,GAAG3+C,EAAED,IAAIc,EAAEokC,OAAe,KAATpkC,EAAEokC,MAAY,EAAEwZ,IAAE,EAAGF,GAAG19C,EAAE,CAAC,KAAK,CAAC,GAAGs+C,GAAGt+C,GAAG,MAAMwJ,MAAM5J,EAAE,MAAMI,EAAEokC,OAAe,KAATpkC,EAAEokC,MAAY,EAAEwZ,IAAE,EAAGF,GAAG19C,CAAC,CAAC,CAAC,CAAC,SAASy+C,GAAGz+C,GAAG,IAAIA,EAAEA,EAAEmkC,OAAO,OAAOnkC,GAAG,IAAIA,EAAE2pB,KAAK,IAAI3pB,EAAE2pB,KAAK,KAAK3pB,EAAE2pB,KAAK3pB,EAAEA,EAAEmkC,OAAOuZ,GAAG19C,CAAC,CACha,SAAS0+C,GAAG1+C,GAAG,GAAGA,IAAI09C,GAAG,OAAM,EAAG,IAAIE,GAAE,OAAOa,GAAGz+C,GAAG49C,IAAE,GAAG,EAAG,IAAI7+C,EAAkG,IAA/FA,EAAE,IAAIiB,EAAE2pB,QAAQ5qB,EAAE,IAAIiB,EAAE2pB,OAAgB5qB,EAAE,UAAXA,EAAEiB,EAAEG,OAAmB,SAASpB,IAAIm7C,GAAGl6C,EAAEG,KAAKH,EAAE2+C,gBAAmB5/C,IAAIA,EAAE4+C,IAAI,CAAC,GAAGW,GAAGt+C,GAAG,MAAM4+C,KAAKp1C,MAAM5J,EAAE,MAAM,KAAKb,GAAG++C,GAAG99C,EAAEjB,GAAGA,EAAE87C,GAAG97C,EAAEw1C,YAAY,CAAO,GAANkK,GAAGz+C,GAAM,KAAKA,EAAE2pB,IAAI,CAAgD,KAA7B3pB,EAAE,QAApBA,EAAEA,EAAEskC,eAAyBtkC,EAAEukC,WAAW,MAAW,MAAM/6B,MAAM5J,EAAE,MAAMI,EAAE,CAAiB,IAAhBA,EAAEA,EAAEu0C,YAAgBx1C,EAAE,EAAEiB,GAAG,CAAC,GAAG,IAAIA,EAAEutB,SAAS,CAAC,IAAIruB,EAAEc,EAAE0d,KAAK,GAAG,OAAOxe,EAAE,CAAC,GAAG,IAAIH,EAAE,CAAC4+C,GAAG9C,GAAG76C,EAAEu0C,aAAa,MAAMv0C,CAAC,CAACjB,GAAG,KAAK,MAAMG,GAAG,OAAOA,GAAG,OAAOA,GAAGH,GAAG,CAACiB,EAAEA,EAAEu0C,WAAW,CAACoJ,GACjgB,IAAI,CAAC,MAAMA,GAAGD,GAAG7C,GAAG76C,EAAE4iC,UAAU2R,aAAa,KAAK,OAAM,CAAE,CAAC,SAASqK,KAAK,IAAI,IAAI5+C,EAAE29C,GAAG39C,GAAGA,EAAE66C,GAAG76C,EAAEu0C,YAAY,CAAC,SAASsK,KAAKlB,GAAGD,GAAG,KAAKE,IAAE,CAAE,CAAC,SAASkB,GAAG9+C,GAAG,OAAO69C,GAAGA,GAAG,CAAC79C,GAAG69C,GAAGpxC,KAAKzM,EAAE,CAAC,IAAI++C,GAAGvmB,EAAGyR,wBAChM,SAAS+U,GAAGh/C,EAAEjB,EAAEG,GAAW,GAAG,QAAXc,EAAEd,EAAE+/C,MAAiB,oBAAoBj/C,GAAG,kBAAkBA,EAAE,CAAC,GAAGd,EAAEggD,OAAO,CAAY,GAAXhgD,EAAEA,EAAEggD,OAAY,CAAC,GAAG,IAAIhgD,EAAEyqB,IAAI,MAAMngB,MAAM5J,EAAE,MAAM,IAAIT,EAAED,EAAE0jC,SAAS,CAAC,IAAIzjC,EAAE,MAAMqK,MAAM5J,EAAE,IAAII,IAAI,IAAIZ,EAAED,EAAEE,EAAE,GAAGW,EAAE,OAAG,OAAOjB,GAAG,OAAOA,EAAEkgD,KAAK,oBAAoBlgD,EAAEkgD,KAAKlgD,EAAEkgD,IAAIE,aAAa9/C,EAASN,EAAEkgD,KAAIlgD,EAAE,SAASiB,GAAG,IAAIjB,EAAEK,EAAEggD,KAAK,OAAOp/C,SAASjB,EAAEM,GAAGN,EAAEM,GAAGW,CAAC,EAAEjB,EAAEogD,WAAW9/C,EAASN,EAAC,CAAC,GAAG,kBAAkBiB,EAAE,MAAMwJ,MAAM5J,EAAE,MAAM,IAAIV,EAAEggD,OAAO,MAAM11C,MAAM5J,EAAE,IAAII,GAAI,CAAC,OAAOA,CAAC,CAC/c,SAASq/C,GAAGr/C,EAAEjB,GAAuC,MAApCiB,EAAE4U,OAAOxR,UAAU2B,SAASqF,KAAKrL,GAASyK,MAAM5J,EAAE,GAAG,oBAAoBI,EAAE,qBAAqB4U,OAAO0E,KAAKva,GAAGqC,KAAK,MAAM,IAAIpB,GAAI,CAAC,SAASs/C,GAAGt/C,GAAiB,OAAOjB,EAAfiB,EAAEu6B,OAAev6B,EAAEs6B,SAAS,CACrM,SAASilB,GAAGv/C,GAAG,SAASjB,EAAEA,EAAEG,GAAG,GAAGc,EAAE,CAAC,IAAIb,EAAEJ,EAAEi/C,UAAU,OAAO7+C,GAAGJ,EAAEi/C,UAAU,CAAC9+C,GAAGH,EAAEqlC,OAAO,IAAIjlC,EAAEsN,KAAKvN,EAAE,CAAC,CAAC,SAASA,EAAEA,EAAEC,GAAG,IAAIa,EAAE,OAAO,KAAK,KAAK,OAAOb,GAAGJ,EAAEG,EAAEC,GAAGA,EAAEA,EAAEwlC,QAAQ,OAAO,IAAI,CAAC,SAASxlC,EAAEa,EAAEjB,GAAG,IAAIiB,EAAE,IAAIsc,IAAI,OAAOvd,GAAG,OAAOA,EAAE0a,IAAIzZ,EAAEsF,IAAIvG,EAAE0a,IAAI1a,GAAGiB,EAAEsF,IAAIvG,EAAE8c,MAAM9c,GAAGA,EAAEA,EAAE4lC,QAAQ,OAAO3kC,CAAC,CAAC,SAASZ,EAAEY,EAAEjB,GAAsC,OAAnCiB,EAAEw/C,GAAGx/C,EAAEjB,IAAK8c,MAAM,EAAE7b,EAAE2kC,QAAQ,KAAY3kC,CAAC,CAAC,SAASX,EAAEN,EAAEG,EAAEC,GAAa,OAAVJ,EAAE8c,MAAM1c,EAAMa,EAA6C,QAAjBb,EAAEJ,EAAEmlC,YAA6B/kC,EAAEA,EAAE0c,OAAQ3c,GAAGH,EAAEqlC,OAAO,EAAEllC,GAAGC,GAAEJ,EAAEqlC,OAAO,EAASllC,IAArGH,EAAEqlC,OAAO,QAAQllC,EAAqF,CAAC,SAASI,EAAEP,GACzd,OAD4diB,GAC7f,OAAOjB,EAAEmlC,YAAYnlC,EAAEqlC,OAAO,GAAUrlC,CAAC,CAAC,SAASQ,EAAES,EAAEjB,EAAEG,EAAEC,GAAG,OAAG,OAAOJ,GAAG,IAAIA,EAAE4qB,MAAW5qB,EAAE0gD,GAAGvgD,EAAEc,EAAEu+C,KAAKp/C,IAAKglC,OAAOnkC,EAAEjB,KAAEA,EAAEK,EAAEL,EAAEG,IAAKilC,OAAOnkC,EAASjB,EAAC,CAAC,SAASS,EAAEQ,EAAEjB,EAAEG,EAAEC,GAAG,IAAIE,EAAEH,EAAEiB,KAAK,OAAGd,IAAIu5B,EAAUl5B,EAAEM,EAAEjB,EAAEG,EAAEgpB,MAAMyU,SAASx9B,EAAED,EAAEua,KAAQ,OAAO1a,IAAIA,EAAE82B,cAAcx2B,GAAG,kBAAkBA,GAAG,OAAOA,GAAGA,EAAEa,WAAWm5B,GAAIimB,GAAGjgD,KAAKN,EAAEoB,QAAahB,EAAEC,EAAEL,EAAEG,EAAEgpB,QAAS+2B,IAAID,GAAGh/C,EAAEjB,EAAEG,GAAGC,EAAEglC,OAAOnkC,EAAEb,KAAEA,EAAEugD,GAAGxgD,EAAEiB,KAAKjB,EAAEua,IAAIva,EAAEgpB,MAAM,KAAKloB,EAAEu+C,KAAKp/C,IAAK8/C,IAAID,GAAGh/C,EAAEjB,EAAEG,GAAGC,EAAEglC,OAAOnkC,EAASb,EAAC,CAAC,SAASM,EAAEO,EAAEjB,EAAEG,EAAEC,GAAG,OAAG,OAAOJ,GAAG,IAAIA,EAAE4qB,KACjf5qB,EAAE6jC,UAAU4G,gBAAgBtqC,EAAEsqC,eAAezqC,EAAE6jC,UAAU+c,iBAAiBzgD,EAAEygD,iBAAsB5gD,EAAE6gD,GAAG1gD,EAAEc,EAAEu+C,KAAKp/C,IAAKglC,OAAOnkC,EAAEjB,KAAEA,EAAEK,EAAEL,EAAEG,EAAEy9B,UAAU,KAAMwH,OAAOnkC,EAASjB,EAAC,CAAC,SAASW,EAAEM,EAAEjB,EAAEG,EAAEC,EAAEE,GAAG,OAAG,OAAON,GAAG,IAAIA,EAAE4qB,MAAW5qB,EAAE8gD,GAAG3gD,EAAEc,EAAEu+C,KAAKp/C,EAAEE,IAAK8kC,OAAOnkC,EAAEjB,KAAEA,EAAEK,EAAEL,EAAEG,IAAKilC,OAAOnkC,EAASjB,EAAC,CAAC,SAASc,EAAEG,EAAEjB,EAAEG,GAAG,GAAG,kBAAkBH,GAAG,KAAKA,GAAG,kBAAkBA,EAAE,OAAOA,EAAE0gD,GAAG,GAAG1gD,EAAEiB,EAAEu+C,KAAKr/C,IAAKilC,OAAOnkC,EAAEjB,EAAE,GAAG,kBAAkBA,GAAG,OAAOA,EAAE,CAAC,OAAOA,EAAEmB,UAAU,KAAKw4B,EAAG,OAAOx5B,EAAEwgD,GAAG3gD,EAAEoB,KAAKpB,EAAE0a,IAAI1a,EAAEmpB,MAAM,KAAKloB,EAAEu+C,KAAKr/C,IACjf+/C,IAAID,GAAGh/C,EAAE,KAAKjB,GAAGG,EAAEilC,OAAOnkC,EAAEd,EAAE,KAAKy5B,EAAG,OAAO55B,EAAE6gD,GAAG7gD,EAAEiB,EAAEu+C,KAAKr/C,IAAKilC,OAAOnkC,EAAEjB,EAAE,KAAKs6B,EAAiB,OAAOx5B,EAAEG,GAAEb,EAAnBJ,EAAEw7B,OAAmBx7B,EAAEu7B,UAAUp7B,GAAG,GAAGk9B,GAAGr9B,IAAI06B,EAAG16B,GAAG,OAAOA,EAAE8gD,GAAG9gD,EAAEiB,EAAEu+C,KAAKr/C,EAAE,OAAQilC,OAAOnkC,EAAEjB,EAAEsgD,GAAGr/C,EAAEjB,EAAE,CAAC,OAAO,IAAI,CAAC,SAASkB,EAAED,EAAEjB,EAAEG,EAAEC,GAAG,IAAIC,EAAE,OAAOL,EAAEA,EAAE0a,IAAI,KAAK,GAAG,kBAAkBva,GAAG,KAAKA,GAAG,kBAAkBA,EAAE,OAAO,OAAOE,EAAE,KAAKG,EAAES,EAAEjB,EAAE,GAAGG,EAAEC,GAAG,GAAG,kBAAkBD,GAAG,OAAOA,EAAE,CAAC,OAAOA,EAAEgB,UAAU,KAAKw4B,EAAG,OAAOx5B,EAAEua,MAAMra,EAAEI,EAAEQ,EAAEjB,EAAEG,EAAEC,GAAG,KAAK,KAAKw5B,EAAG,OAAOz5B,EAAEua,MAAMra,EAAEK,EAAEO,EAAEjB,EAAEG,EAAEC,GAAG,KAAK,KAAKk6B,EAAG,OAAiBp5B,EAAED,EACpfjB,GADweK,EAAEF,EAAEq7B,OACxer7B,EAAEo7B,UAAUn7B,GAAG,GAAGi9B,GAAGl9B,IAAIu6B,EAAGv6B,GAAG,OAAO,OAAOE,EAAE,KAAKM,EAAEM,EAAEjB,EAAEG,EAAEC,EAAE,MAAMkgD,GAAGr/C,EAAEd,EAAE,CAAC,OAAO,IAAI,CAAC,SAASwB,EAAEV,EAAEjB,EAAEG,EAAEC,EAAEC,GAAG,GAAG,kBAAkBD,GAAG,KAAKA,GAAG,kBAAkBA,EAAE,OAAwBI,EAAER,EAAnBiB,EAAEA,EAAEkG,IAAIhH,IAAI,KAAW,GAAGC,EAAEC,GAAG,GAAG,kBAAkBD,GAAG,OAAOA,EAAE,CAAC,OAAOA,EAAEe,UAAU,KAAKw4B,EAAG,OAA2Cl5B,EAAET,EAAtCiB,EAAEA,EAAEkG,IAAI,OAAO/G,EAAEsa,IAAIva,EAAEC,EAAEsa,MAAM,KAAWta,EAAEC,GAAG,KAAKu5B,EAAG,OAA2Cl5B,EAAEV,EAAtCiB,EAAEA,EAAEkG,IAAI,OAAO/G,EAAEsa,IAAIva,EAAEC,EAAEsa,MAAM,KAAWta,EAAEC,GAAG,KAAKi6B,EAAiB,OAAO34B,EAAEV,EAAEjB,EAAEG,GAAEG,EAAvBF,EAAEo7B,OAAuBp7B,EAAEm7B,UAAUl7B,GAAG,GAAGg9B,GAAGj9B,IAAIs6B,EAAGt6B,GAAG,OAAwBO,EAAEX,EAAnBiB,EAAEA,EAAEkG,IAAIhH,IAAI,KAAWC,EAAEC,EAAE,MAAMigD,GAAGtgD,EAAEI,EAAE,CAAC,OAAO,IAAI,CAC9f,SAASQ,EAAEP,EAAEE,EAAEC,EAAEC,GAAG,IAAI,IAAIC,EAAE,KAAKC,EAAE,KAAKZ,EAAEQ,EAAE0C,EAAE1C,EAAE,EAAEyD,EAAE,KAAK,OAAOjE,GAAGkD,EAAEzC,EAAE2B,OAAOc,IAAI,CAAClD,EAAE+c,MAAM7Z,GAAGe,EAAEjE,EAAEA,EAAE,MAAMiE,EAAEjE,EAAE6lC,QAAQ,IAAIhlC,EAAEM,EAAEb,EAAEN,EAAES,EAAEyC,GAAGxC,GAAG,GAAG,OAAOG,EAAE,CAAC,OAAOb,IAAIA,EAAEiE,GAAG,KAAK,CAAC/C,GAAGlB,GAAG,OAAOa,EAAEukC,WAAWnlC,EAAEK,EAAEN,GAAGQ,EAAED,EAAEM,EAAEL,EAAE0C,GAAG,OAAOtC,EAAED,EAAEE,EAAED,EAAEilC,QAAQhlC,EAAED,EAAEC,EAAEb,EAAEiE,CAAC,CAAC,GAAGf,IAAIzC,EAAE2B,OAAO,OAAOhC,EAAEE,EAAEN,GAAG8+C,IAAGN,GAAGl+C,EAAE4C,GAAGvC,EAAE,GAAG,OAAOX,EAAE,CAAC,KAAKkD,EAAEzC,EAAE2B,OAAOc,IAAkB,QAAdlD,EAAEe,EAAET,EAAEG,EAAEyC,GAAGxC,MAAcF,EAAED,EAAEP,EAAEQ,EAAE0C,GAAG,OAAOtC,EAAED,EAAEX,EAAEY,EAAEilC,QAAQ7lC,EAAEY,EAAEZ,GAAc,OAAX8+C,IAAGN,GAAGl+C,EAAE4C,GAAUvC,CAAC,CAAC,IAAIX,EAAEK,EAAEC,EAAEN,GAAGkD,EAAEzC,EAAE2B,OAAOc,IAAsB,QAAlBe,EAAErC,EAAE5B,EAAEM,EAAE4C,EAAEzC,EAAEyC,GAAGxC,MAAcQ,GAAG,OAAO+C,EAAEmhC,WAAWplC,EAAE8pC,OAAO,OACvf7lC,EAAE0W,IAAIzX,EAAEe,EAAE0W,KAAKna,EAAED,EAAE0D,EAAEzD,EAAE0C,GAAG,OAAOtC,EAAED,EAAEsD,EAAErD,EAAEilC,QAAQ5hC,EAAErD,EAAEqD,GAAuD,OAApD/C,GAAGlB,EAAEmI,SAAQ,SAASjH,GAAG,OAAOjB,EAAEK,EAAEY,EAAE,IAAG49C,IAAGN,GAAGl+C,EAAE4C,GAAUvC,CAAC,CAAC,SAASK,EAAEV,EAAEE,EAAEC,EAAEC,GAAG,IAAIC,EAAEg6B,EAAGl6B,GAAG,GAAG,oBAAoBE,EAAE,MAAM+J,MAAM5J,EAAE,MAAkB,GAAG,OAAfL,EAAEE,EAAE2K,KAAK7K,IAAc,MAAMiK,MAAM5J,EAAE,MAAM,IAAI,IAAId,EAAEW,EAAE,KAAKC,EAAEJ,EAAE0C,EAAE1C,EAAE,EAAEyD,EAAE,KAAKpD,EAAEJ,EAAEugD,OAAO,OAAOpgD,IAAIC,EAAEogD,KAAK/9C,IAAIrC,EAAEJ,EAAEugD,OAAO,CAACpgD,EAAEmc,MAAM7Z,GAAGe,EAAErD,EAAEA,EAAE,MAAMqD,EAAErD,EAAEilC,QAAQ,IAAI7kC,EAAEG,EAAEb,EAAEM,EAAEC,EAAEoU,MAAMvU,GAAG,GAAG,OAAOM,EAAE,CAAC,OAAOJ,IAAIA,EAAEqD,GAAG,KAAK,CAAC/C,GAAGN,GAAG,OAAOI,EAAEokC,WAAWnlC,EAAEK,EAAEM,GAAGJ,EAAED,EAAES,EAAER,EAAE0C,GAAG,OAAOlD,EAAEW,EAAEK,EAAEhB,EAAE6lC,QAAQ7kC,EAAEhB,EAAEgB,EAAEJ,EAAEqD,CAAC,CAAC,GAAGpD,EAAEogD,KAAK,OAAO7gD,EAAEE,EACzfM,GAAGk+C,IAAGN,GAAGl+C,EAAE4C,GAAGvC,EAAE,GAAG,OAAOC,EAAE,CAAC,MAAMC,EAAEogD,KAAK/9C,IAAIrC,EAAEJ,EAAEugD,OAAwB,QAAjBngD,EAAEE,EAAET,EAAEO,EAAEoU,MAAMvU,MAAcF,EAAED,EAAEM,EAAEL,EAAE0C,GAAG,OAAOlD,EAAEW,EAAEE,EAAEb,EAAE6lC,QAAQhlC,EAAEb,EAAEa,GAAc,OAAXi+C,IAAGN,GAAGl+C,EAAE4C,GAAUvC,CAAC,CAAC,IAAIC,EAAEP,EAAEC,EAAEM,IAAIC,EAAEogD,KAAK/9C,IAAIrC,EAAEJ,EAAEugD,OAA4B,QAArBngD,EAAEe,EAAEhB,EAAEN,EAAE4C,EAAErC,EAAEoU,MAAMvU,MAAcQ,GAAG,OAAOL,EAAEukC,WAAWxkC,EAAEkpC,OAAO,OAAOjpC,EAAE8Z,IAAIzX,EAAErC,EAAE8Z,KAAKna,EAAED,EAAEM,EAAEL,EAAE0C,GAAG,OAAOlD,EAAEW,EAAEE,EAAEb,EAAE6lC,QAAQhlC,EAAEb,EAAEa,GAAuD,OAApDK,GAAGN,EAAEuH,SAAQ,SAASjH,GAAG,OAAOjB,EAAEK,EAAEY,EAAE,IAAG49C,IAAGN,GAAGl+C,EAAE4C,GAAUvC,CAAC,CAG3T,OAH4T,SAASo5C,EAAE74C,EAAEb,EAAEE,EAAEE,GAAkF,GAA/E,kBAAkBF,GAAG,OAAOA,GAAGA,EAAEc,OAAOy4B,GAAI,OAAOv5B,EAAEoa,MAAMpa,EAAEA,EAAE6oB,MAAMyU,UAAa,kBAAkBt9B,GAAG,OAAOA,EAAE,CAAC,OAAOA,EAAEa,UAAU,KAAKw4B,EAAG14B,EAAE,CAAC,IAAI,IAAIR,EAC7hBH,EAAEoa,IAAIha,EAAEN,EAAE,OAAOM,GAAG,CAAC,GAAGA,EAAEga,MAAMja,EAAE,CAAU,IAATA,EAAEH,EAAEc,QAAYy4B,GAAI,GAAG,IAAIn5B,EAAEkqB,IAAI,CAACzqB,EAAEc,EAAEP,EAAEklC,UAASxlC,EAAEC,EAAEK,EAAEJ,EAAE6oB,MAAMyU,WAAYwH,OAAOnkC,EAAEA,EAAEb,EAAE,MAAMa,CAAC,OAAO,GAAGP,EAAEo2B,cAAcr2B,GAAG,kBAAkBA,GAAG,OAAOA,GAAGA,EAAEU,WAAWm5B,GAAIimB,GAAG9/C,KAAKC,EAAEU,KAAK,CAACjB,EAAEc,EAAEP,EAAEklC,UAASxlC,EAAEC,EAAEK,EAAEJ,EAAE6oB,QAAS+2B,IAAID,GAAGh/C,EAAEP,EAAEJ,GAAGF,EAAEglC,OAAOnkC,EAAEA,EAAEb,EAAE,MAAMa,CAAC,CAACd,EAAEc,EAAEP,GAAG,KAAK,CAAMV,EAAEiB,EAAEP,GAAGA,EAAEA,EAAEklC,OAAO,CAACtlC,EAAEc,OAAOy4B,IAAIz5B,EAAE0gD,GAAGxgD,EAAE6oB,MAAMyU,SAAS38B,EAAEu+C,KAAKh/C,EAAEF,EAAEoa,MAAO0qB,OAAOnkC,EAAEA,EAAEb,KAAII,EAAEmgD,GAAGrgD,EAAEc,KAAKd,EAAEoa,IAAIpa,EAAE6oB,MAAM,KAAKloB,EAAEu+C,KAAKh/C,IAAK0/C,IAAID,GAAGh/C,EAAEb,EAAEE,GAAGE,EAAE4kC,OAAOnkC,EAAEA,EAAET,EAAE,CAAC,OAAOD,EAAEU,GAAG,KAAK24B,EAAG34B,EAAE,CAAC,IAAIP,EAAEJ,EAAEoa,IAAI,OACzfta,GAAG,CAAC,GAAGA,EAAEsa,MAAMha,EAAC,CAAC,GAAG,IAAIN,EAAEwqB,KAAKxqB,EAAEyjC,UAAU4G,gBAAgBnqC,EAAEmqC,eAAerqC,EAAEyjC,UAAU+c,iBAAiBtgD,EAAEsgD,eAAe,CAACzgD,EAAEc,EAAEb,EAAEwlC,UAASxlC,EAAEC,EAAED,EAAEE,EAAEs9B,UAAU,KAAMwH,OAAOnkC,EAAEA,EAAEb,EAAE,MAAMa,CAAC,CAAMd,EAAEc,EAAEb,GAAG,KAAM,CAAKJ,EAAEiB,EAAEb,GAAGA,EAAEA,EAAEwlC,OAAO,EAACxlC,EAAEygD,GAAGvgD,EAAEW,EAAEu+C,KAAKh/C,IAAK4kC,OAAOnkC,EAAEA,EAAEb,CAAC,CAAC,OAAOG,EAAEU,GAAG,KAAKq5B,EAAG,OAAiBwf,EAAE74C,EAAEb,GAAdM,EAAEJ,EAAEk7B,OAAcl7B,EAAEi7B,UAAU/6B,GAAG,GAAG68B,GAAG/8B,GAAG,OAAOM,EAAEK,EAAEb,EAAEE,EAAEE,GAAG,GAAGk6B,EAAGp6B,GAAG,OAAOS,EAAEE,EAAEb,EAAEE,EAAEE,GAAG8/C,GAAGr/C,EAAEX,EAAE,CAAC,MAAM,kBAAkBA,GAAG,KAAKA,GAAG,kBAAkBA,GAAGA,EAAE,GAAGA,EAAE,OAAOF,GAAG,IAAIA,EAAEwqB,KAAKzqB,EAAEc,EAAEb,EAAEwlC,UAASxlC,EAAEC,EAAED,EAAEE,IAAK8kC,OAAOnkC,EAAEA,EAAEb,IACnfD,EAAEc,EAAEb,IAAGA,EAAEsgD,GAAGpgD,EAAEW,EAAEu+C,KAAKh/C,IAAK4kC,OAAOnkC,EAAEA,EAAEb,GAAGG,EAAEU,IAAId,EAAEc,EAAEb,EAAE,CAAS,CAAC,IAAI6gD,GAAGT,IAAG,GAAIU,GAAGV,IAAG,GAAIW,GAAG3E,GAAG,MAAM4E,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAK,SAASh7C,KAAKg7C,GAAGD,GAAGD,GAAG,IAAI,CAAC,SAASG,GAAGtgD,GAAG,IAAIjB,EAAEmhD,GAAGxgC,QAAQ87B,GAAE0E,IAAIlgD,EAAEugD,cAAcxhD,CAAC,CAAC,SAASyhD,GAAGxgD,EAAEjB,EAAEG,GAAG,KAAK,OAAOc,GAAG,CAAC,IAAIb,EAAEa,EAAEkkC,UAA+H,IAApHlkC,EAAEygD,WAAW1hD,KAAKA,GAAGiB,EAAEygD,YAAY1hD,EAAE,OAAOI,IAAIA,EAAEshD,YAAY1hD,IAAI,OAAOI,IAAIA,EAAEshD,WAAW1hD,KAAKA,IAAII,EAAEshD,YAAY1hD,GAAMiB,IAAId,EAAE,MAAMc,EAAEA,EAAEmkC,MAAM,CAAC,CACnZ,SAASuc,GAAG1gD,EAAEjB,GAAGohD,GAAGngD,EAAEqgD,GAAGD,GAAG,KAAsB,QAAjBpgD,EAAEA,EAAE2gD,eAAuB,OAAO3gD,EAAE4gD,eAAe,KAAK5gD,EAAE6gD,MAAM9hD,KAAK+hD,IAAG,GAAI9gD,EAAE4gD,aAAa,KAAK,CAAC,SAASG,GAAG/gD,GAAG,IAAIjB,EAAEiB,EAAEugD,cAAc,GAAGF,KAAKrgD,EAAE,GAAGA,EAAE,CAACiV,QAAQjV,EAAEghD,cAAcjiD,EAAE+gD,KAAK,MAAM,OAAOM,GAAG,CAAC,GAAG,OAAOD,GAAG,MAAM32C,MAAM5J,EAAE,MAAMwgD,GAAGpgD,EAAEmgD,GAAGQ,aAAa,CAACE,MAAM,EAAED,aAAa5gD,EAAE,MAAMogD,GAAGA,GAAGN,KAAK9/C,EAAE,OAAOjB,CAAC,CAAC,IAAIkiD,GAAG,KAAK,SAASC,GAAGlhD,GAAG,OAAOihD,GAAGA,GAAG,CAACjhD,GAAGihD,GAAGx0C,KAAKzM,EAAE,CACvY,SAASgJ,GAAGhJ,EAAEjB,EAAEG,EAAEC,GAAG,IAAIC,EAAEL,EAAEoiD,YAA+E,OAAnE,OAAO/hD,GAAGF,EAAE4gD,KAAK5gD,EAAEgiD,GAAGniD,KAAKG,EAAE4gD,KAAK1gD,EAAE0gD,KAAK1gD,EAAE0gD,KAAK5gD,GAAGH,EAAEoiD,YAAYjiD,EAASkiD,GAAGphD,EAAEb,EAAE,CAAC,SAASiiD,GAAGphD,EAAEjB,GAAGiB,EAAE6gD,OAAO9hD,EAAE,IAAIG,EAAEc,EAAEkkC,UAAqC,IAA3B,OAAOhlC,IAAIA,EAAE2hD,OAAO9hD,GAAGG,EAAEc,EAAMA,EAAEA,EAAEmkC,OAAO,OAAOnkC,GAAGA,EAAEygD,YAAY1hD,EAAgB,QAAdG,EAAEc,EAAEkkC,aAAqBhlC,EAAEuhD,YAAY1hD,GAAGG,EAAEc,EAAEA,EAAEA,EAAEmkC,OAAO,OAAO,IAAIjlC,EAAEyqB,IAAIzqB,EAAE0jC,UAAU,IAAI,CAAC,IAAIye,IAAG,EAAG,SAASC,GAAGthD,GAAGA,EAAEuhD,YAAY,CAACC,UAAUxhD,EAAEskC,cAAcmd,gBAAgB,KAAKC,eAAe,KAAKC,OAAO,CAACC,QAAQ,KAAKT,YAAY,KAAKN,MAAM,GAAGgB,QAAQ,KAAK,CAC/e,SAASC,GAAG9hD,EAAEjB,GAAGiB,EAAEA,EAAEuhD,YAAYxiD,EAAEwiD,cAAcvhD,IAAIjB,EAAEwiD,YAAY,CAACC,UAAUxhD,EAAEwhD,UAAUC,gBAAgBzhD,EAAEyhD,gBAAgBC,eAAe1hD,EAAE0hD,eAAeC,OAAO3hD,EAAE2hD,OAAOE,QAAQ7hD,EAAE6hD,SAAS,CAAC,SAASE,GAAG/hD,EAAEjB,GAAG,MAAM,CAACijD,UAAUhiD,EAAEiiD,KAAKljD,EAAE4qB,IAAI,EAAEu4B,QAAQ,KAAKC,SAAS,KAAKrC,KAAK,KAAK,CACtR,SAASsC,GAAGpiD,EAAEjB,EAAEG,GAAG,IAAIC,EAAEa,EAAEuhD,YAAY,GAAG,OAAOpiD,EAAE,OAAO,KAAgB,GAAXA,EAAEA,EAAEwiD,OAAU,KAAO,EAAFU,IAAK,CAAC,IAAIjjD,EAAED,EAAEyiD,QAA+D,OAAvD,OAAOxiD,EAAEL,EAAE+gD,KAAK/gD,GAAGA,EAAE+gD,KAAK1gD,EAAE0gD,KAAK1gD,EAAE0gD,KAAK/gD,GAAGI,EAAEyiD,QAAQ7iD,EAASqiD,GAAGphD,EAAEd,EAAE,CAAoF,OAAnE,QAAhBE,EAAED,EAAEgiD,cAAsBpiD,EAAE+gD,KAAK/gD,EAAEmiD,GAAG/hD,KAAKJ,EAAE+gD,KAAK1gD,EAAE0gD,KAAK1gD,EAAE0gD,KAAK/gD,GAAGI,EAAEgiD,YAAYpiD,EAASqiD,GAAGphD,EAAEd,EAAE,CAAC,SAASojD,GAAGtiD,EAAEjB,EAAEG,GAAmB,GAAG,QAAnBH,EAAEA,EAAEwiD,eAA0BxiD,EAAEA,EAAE4iD,OAAO,KAAO,QAAFziD,IAAY,CAAC,IAAIC,EAAEJ,EAAE8hD,MAAwB3hD,GAAlBC,GAAGa,EAAE+mC,aAAkBhoC,EAAE8hD,MAAM3hD,EAAEwoC,GAAG1nC,EAAEd,EAAE,CAAC,CACrZ,SAASqjD,GAAGviD,EAAEjB,GAAG,IAAIG,EAAEc,EAAEuhD,YAAYpiD,EAAEa,EAAEkkC,UAAU,GAAG,OAAO/kC,GAAoBD,KAAhBC,EAAEA,EAAEoiD,aAAmB,CAAC,IAAIniD,EAAE,KAAKC,EAAE,KAAyB,GAAG,QAAvBH,EAAEA,EAAEuiD,iBAA4B,CAAC,EAAE,CAAC,IAAIniD,EAAE,CAAC0iD,UAAU9iD,EAAE8iD,UAAUC,KAAK/iD,EAAE+iD,KAAKt4B,IAAIzqB,EAAEyqB,IAAIu4B,QAAQhjD,EAAEgjD,QAAQC,SAASjjD,EAAEijD,SAASrC,KAAK,MAAM,OAAOzgD,EAAED,EAAEC,EAAEC,EAAED,EAAEA,EAAEygD,KAAKxgD,EAAEJ,EAAEA,EAAE4gD,IAAI,OAAO,OAAO5gD,GAAG,OAAOG,EAAED,EAAEC,EAAEN,EAAEM,EAAEA,EAAEygD,KAAK/gD,CAAC,MAAMK,EAAEC,EAAEN,EAAiH,OAA/GG,EAAE,CAACsiD,UAAUriD,EAAEqiD,UAAUC,gBAAgBriD,EAAEsiD,eAAeriD,EAAEsiD,OAAOxiD,EAAEwiD,OAAOE,QAAQ1iD,EAAE0iD,cAAS7hD,EAAEuhD,YAAYriD,EAAQ,CAAoB,QAAnBc,EAAEd,EAAEwiD,gBAAwBxiD,EAAEuiD,gBAAgB1iD,EAAEiB,EAAE8/C,KACnf/gD,EAAEG,EAAEwiD,eAAe3iD,CAAC,CACpB,SAASyjD,GAAGxiD,EAAEjB,EAAEG,EAAEC,GAAG,IAAIC,EAAEY,EAAEuhD,YAAYF,IAAG,EAAG,IAAIhiD,EAAED,EAAEqiD,gBAAgBniD,EAAEF,EAAEsiD,eAAeniD,EAAEH,EAAEuiD,OAAOC,QAAQ,GAAG,OAAOriD,EAAE,CAACH,EAAEuiD,OAAOC,QAAQ,KAAK,IAAIpiD,EAAED,EAAEE,EAAED,EAAEsgD,KAAKtgD,EAAEsgD,KAAK,KAAK,OAAOxgD,EAAED,EAAEI,EAAEH,EAAEwgD,KAAKrgD,EAAEH,EAAEE,EAAE,IAAIE,EAAEM,EAAEkkC,UAAU,OAAOxkC,KAAoBH,GAAhBG,EAAEA,EAAE6hD,aAAgBG,kBAAmBpiD,IAAI,OAAOC,EAAEG,EAAE+hD,gBAAgBhiD,EAAEF,EAAEugD,KAAKrgD,EAAEC,EAAEgiD,eAAeliD,GAAG,CAAC,GAAG,OAAOH,EAAE,CAAC,IAAIQ,EAAET,EAAEoiD,UAA6B,IAAnBliD,EAAE,EAAEI,EAAED,EAAED,EAAE,KAAKD,EAAEF,IAAI,CAAC,IAAIY,EAAEV,EAAE0iD,KAAKvhD,EAAEnB,EAAEyiD,UAAU,IAAI7iD,EAAEc,KAAKA,EAAE,CAAC,OAAOP,IAAIA,EAAEA,EAAEogD,KAAK,CAACkC,UAAUthD,EAAEuhD,KAAK,EAAEt4B,IAAIpqB,EAAEoqB,IAAIu4B,QAAQ3iD,EAAE2iD,QAAQC,SAAS5iD,EAAE4iD,SACvfrC,KAAK,OAAO9/C,EAAE,CAAC,IAAIL,EAAEK,EAAEF,EAAEP,EAAU,OAARU,EAAElB,EAAE2B,EAAExB,EAASY,EAAE6pB,KAAK,KAAK,EAAc,GAAG,oBAAfhqB,EAAEG,EAAEoiD,SAAiC,CAACriD,EAAEF,EAAEyK,KAAK1J,EAAEb,EAAEI,GAAG,MAAMD,CAAC,CAACH,EAAEF,EAAE,MAAMK,EAAE,KAAK,EAAEL,EAAEykC,OAAe,MAATzkC,EAAEykC,MAAa,IAAI,KAAK,EAAsD,GAAG,QAA3CnkC,EAAE,oBAAdN,EAAEG,EAAEoiD,SAAgCviD,EAAEyK,KAAK1J,EAAEb,EAAEI,GAAGN,SAAe,IAASM,EAAE,MAAMD,EAAEH,EAAE0I,EAAE,CAAC,EAAE1I,EAAEI,GAAG,MAAMD,EAAE,KAAK,EAAEqhD,IAAG,EAAG,CAAC,OAAO9hD,EAAE4iD,UAAU,IAAI5iD,EAAE0iD,OAAOjiD,EAAEokC,OAAO,GAAe,QAAZnkC,EAAEb,EAAEyiD,SAAiBziD,EAAEyiD,QAAQ,CAACtiD,GAAGU,EAAEwM,KAAKlN,GAAG,MAAMmB,EAAE,CAACshD,UAAUthD,EAAEuhD,KAAKhiD,EAAE0pB,IAAIpqB,EAAEoqB,IAAIu4B,QAAQ3iD,EAAE2iD,QAAQC,SAAS5iD,EAAE4iD,SAASrC,KAAK,MAAM,OAAOpgD,GAAGD,EAAEC,EAAEgB,EAAElB,EAAEK,GAAGH,EAAEA,EAAEogD,KAAKp/C,EAAEpB,GAAGW,EAC3e,GAAG,QAAZV,EAAEA,EAAEugD,MAAiB,IAAsB,QAAnBvgD,EAAEH,EAAEuiD,OAAOC,SAAiB,MAAeriD,GAAJU,EAAEV,GAAMugD,KAAK7/C,EAAE6/C,KAAK,KAAK1gD,EAAEsiD,eAAezhD,EAAEb,EAAEuiD,OAAOC,QAAQ,IAAI,EAAsG,GAA5F,OAAOliD,IAAIF,EAAEK,GAAGT,EAAEoiD,UAAUhiD,EAAEJ,EAAEqiD,gBAAgBhiD,EAAEL,EAAEsiD,eAAehiD,EAA4B,QAA1BX,EAAEK,EAAEuiD,OAAOR,aAAwB,CAAC/hD,EAAEL,EAAE,GAAGO,GAAGF,EAAE6iD,KAAK7iD,EAAEA,EAAE0gD,WAAW1gD,IAAIL,EAAE,MAAM,OAAOM,IAAID,EAAEuiD,OAAOd,MAAM,GAAG4B,IAAInjD,EAAEU,EAAE6gD,MAAMvhD,EAAEU,EAAEskC,cAAczkC,CAAC,CAAC,CAC9V,SAAS6iD,GAAG1iD,EAAEjB,EAAEG,GAA8B,GAA3Bc,EAAEjB,EAAE8iD,QAAQ9iD,EAAE8iD,QAAQ,KAAQ,OAAO7hD,EAAE,IAAIjB,EAAE,EAAEA,EAAEiB,EAAEkB,OAAOnC,IAAI,CAAC,IAAII,EAAEa,EAAEjB,GAAGK,EAAED,EAAEgjD,SAAS,GAAG,OAAO/iD,EAAE,CAAqB,GAApBD,EAAEgjD,SAAS,KAAKhjD,EAAED,EAAK,oBAAoBE,EAAE,MAAMoK,MAAM5J,EAAE,IAAIR,IAAIA,EAAEgL,KAAKjL,EAAE,CAAC,CAAC,CAAC,IAAIwjD,GAAG,CAAC,EAAEC,GAAGrH,GAAGoH,IAAIE,GAAGtH,GAAGoH,IAAIG,GAAGvH,GAAGoH,IAAI,SAASI,GAAG/iD,GAAG,GAAGA,IAAI2iD,GAAG,MAAMn5C,MAAM5J,EAAE,MAAM,OAAOI,CAAC,CACnS,SAASgjD,GAAGhjD,EAAEjB,GAAyC,OAAtC08C,GAAEqH,GAAG/jD,GAAG08C,GAAEoH,GAAG7iD,GAAGy7C,GAAEmH,GAAGD,IAAI3iD,EAAEjB,EAAEwuB,UAAmB,KAAK,EAAE,KAAK,GAAGxuB,GAAGA,EAAEA,EAAEq2C,iBAAiBr2C,EAAEq+B,aAAaH,GAAG,KAAK,IAAI,MAAM,QAAkEl+B,EAAEk+B,GAArCl+B,GAAvBiB,EAAE,IAAIA,EAAEjB,EAAEujC,WAAWvjC,GAAMq+B,cAAc,KAAKp9B,EAAEA,EAAEijD,SAAkBzH,GAAEoH,IAAInH,GAAEmH,GAAG7jD,EAAE,CAAC,SAASmkD,KAAK1H,GAAEoH,IAAIpH,GAAEqH,IAAIrH,GAAEsH,GAAG,CAAC,SAASK,GAAGnjD,GAAG+iD,GAAGD,GAAGpjC,SAAS,IAAI3gB,EAAEgkD,GAAGH,GAAGljC,SAAaxgB,EAAE+9B,GAAGl+B,EAAEiB,EAAEG,MAAMpB,IAAIG,IAAIu8C,GAAEoH,GAAG7iD,GAAGy7C,GAAEmH,GAAG1jD,GAAG,CAAC,SAASkkD,GAAGpjD,GAAG6iD,GAAGnjC,UAAU1f,IAAIw7C,GAAEoH,IAAIpH,GAAEqH,IAAI,CAAC,IAAI96C,GAAEwzC,GAAG,GACxZ,SAAS8H,GAAGrjD,GAAG,IAAI,IAAIjB,EAAEiB,EAAE,OAAOjB,GAAG,CAAC,GAAG,KAAKA,EAAE4qB,IAAI,CAAC,IAAIzqB,EAAEH,EAAEulC,cAAc,GAAG,OAAOplC,IAAmB,QAAfA,EAAEA,EAAEqlC,aAAqB,OAAOrlC,EAAEwe,MAAM,OAAOxe,EAAEwe,MAAM,OAAO3e,CAAC,MAAM,GAAG,KAAKA,EAAE4qB,UAAK,IAAS5qB,EAAE4/C,cAAc2E,aAAa,GAAG,KAAa,IAARvkD,EAAEqlC,OAAW,OAAOrlC,OAAO,GAAG,OAAOA,EAAE2lC,MAAM,CAAC3lC,EAAE2lC,MAAMP,OAAOplC,EAAEA,EAAEA,EAAE2lC,MAAM,QAAQ,CAAC,GAAG3lC,IAAIiB,EAAE,MAAM,KAAK,OAAOjB,EAAE4lC,SAAS,CAAC,GAAG,OAAO5lC,EAAEolC,QAAQplC,EAAEolC,SAASnkC,EAAE,OAAO,KAAKjB,EAAEA,EAAEolC,MAAM,CAACplC,EAAE4lC,QAAQR,OAAOplC,EAAEolC,OAAOplC,EAAEA,EAAE4lC,OAAO,CAAC,OAAO,IAAI,CAAC,IAAI4e,GAAG,GACrc,SAASC,KAAK,IAAI,IAAIxjD,EAAE,EAAEA,EAAEujD,GAAGriD,OAAOlB,IAAIujD,GAAGvjD,GAAGyjD,8BAA8B,KAAKF,GAAGriD,OAAO,CAAC,CAAC,IAAIwiD,GAAGlrB,EAAGmrB,uBAAuBC,GAAGprB,EAAGyR,wBAAwB4Z,GAAG,EAAEljD,GAAE,KAAKmjD,GAAE,KAAKthD,GAAE,KAAKuhD,IAAG,EAAGC,IAAG,EAAGC,GAAG,EAAEC,GAAG,EAAE,SAASl4C,KAAI,MAAMxC,MAAM5J,EAAE,KAAM,CAAC,SAASukD,GAAGnkD,EAAEjB,GAAG,GAAG,OAAOA,EAAE,OAAM,EAAG,IAAI,IAAIG,EAAE,EAAEA,EAAEH,EAAEmC,QAAQhC,EAAEc,EAAEkB,OAAOhC,IAAI,IAAIi1C,GAAGn0C,EAAEd,GAAGH,EAAEG,IAAI,OAAM,EAAG,OAAM,CAAE,CAChW,SAASklD,GAAGpkD,EAAEjB,EAAEG,EAAEC,EAAEC,EAAEC,GAAyH,GAAtHwkD,GAAGxkD,EAAEsB,GAAE5B,EAAEA,EAAEulC,cAAc,KAAKvlC,EAAEwiD,YAAY,KAAKxiD,EAAE8hD,MAAM,EAAE6C,GAAGhkC,QAAQ,OAAO1f,GAAG,OAAOA,EAAEskC,cAAc+f,GAAGC,GAAGtkD,EAAEd,EAAEC,EAAEC,GAAM4kD,GAAG,CAAC3kD,EAAE,EAAE,EAAE,CAAY,GAAX2kD,IAAG,EAAGC,GAAG,EAAK,IAAI5kD,EAAE,MAAMmK,MAAM5J,EAAE,MAAMP,GAAG,EAAEmD,GAAEshD,GAAE,KAAK/kD,EAAEwiD,YAAY,KAAKmC,GAAGhkC,QAAQ6kC,GAAGvkD,EAAEd,EAAEC,EAAEC,EAAE,OAAO4kD,GAAG,CAA+D,GAA9DN,GAAGhkC,QAAQ8kC,GAAGzlD,EAAE,OAAO+kD,IAAG,OAAOA,GAAEhE,KAAK+D,GAAG,EAAErhD,GAAEshD,GAAEnjD,GAAE,KAAKojD,IAAG,EAAMhlD,EAAE,MAAMyK,MAAM5J,EAAE,MAAM,OAAOI,CAAC,CAAC,SAASykD,KAAK,IAAIzkD,EAAE,IAAIikD,GAAQ,OAALA,GAAG,EAASjkD,CAAC,CAC/Y,SAAS0kD,KAAK,IAAI1kD,EAAE,CAACskC,cAAc,KAAKkd,UAAU,KAAKmD,UAAU,KAAKC,MAAM,KAAK9E,KAAK,MAA8C,OAAxC,OAAOt9C,GAAE7B,GAAE2jC,cAAc9hC,GAAExC,EAAEwC,GAAEA,GAAEs9C,KAAK9/C,EAASwC,EAAC,CAAC,SAASqiD,KAAK,GAAG,OAAOf,GAAE,CAAC,IAAI9jD,EAAEW,GAAEujC,UAAUlkC,EAAE,OAAOA,EAAEA,EAAEskC,cAAc,IAAI,MAAMtkC,EAAE8jD,GAAEhE,KAAK,IAAI/gD,EAAE,OAAOyD,GAAE7B,GAAE2jC,cAAc9hC,GAAEs9C,KAAK,GAAG,OAAO/gD,EAAEyD,GAAEzD,EAAE+kD,GAAE9jD,MAAM,CAAC,GAAG,OAAOA,EAAE,MAAMwJ,MAAM5J,EAAE,MAAUI,EAAE,CAACskC,eAAPwf,GAAE9jD,GAAqBskC,cAAckd,UAAUsC,GAAEtC,UAAUmD,UAAUb,GAAEa,UAAUC,MAAMd,GAAEc,MAAM9E,KAAK,MAAM,OAAOt9C,GAAE7B,GAAE2jC,cAAc9hC,GAAExC,EAAEwC,GAAEA,GAAEs9C,KAAK9/C,CAAC,CAAC,OAAOwC,EAAC,CACje,SAASsiD,GAAG9kD,EAAEjB,GAAG,MAAM,oBAAoBA,EAAEA,EAAEiB,GAAGjB,CAAC,CACnD,SAASgmD,GAAG/kD,GAAG,IAAIjB,EAAE8lD,KAAK3lD,EAAEH,EAAE6lD,MAAM,GAAG,OAAO1lD,EAAE,MAAMsK,MAAM5J,EAAE,MAAMV,EAAE8lD,oBAAoBhlD,EAAE,IAAIb,EAAE2kD,GAAE1kD,EAAED,EAAEwlD,UAAUtlD,EAAEH,EAAE0iD,QAAQ,GAAG,OAAOviD,EAAE,CAAC,GAAG,OAAOD,EAAE,CAAC,IAAIE,EAAEF,EAAE0gD,KAAK1gD,EAAE0gD,KAAKzgD,EAAEygD,KAAKzgD,EAAEygD,KAAKxgD,CAAC,CAACH,EAAEwlD,UAAUvlD,EAAEC,EAAEH,EAAE0iD,QAAQ,IAAI,CAAC,GAAG,OAAOxiD,EAAE,CAACC,EAAED,EAAE0gD,KAAK3gD,EAAEA,EAAEqiD,UAAU,IAAIjiD,EAAED,EAAE,KAAKE,EAAE,KAAKC,EAAEJ,EAAE,EAAE,CAAC,IAAIK,EAAED,EAAEwiD,KAAK,IAAI4B,GAAGnkD,KAAKA,EAAE,OAAOF,IAAIA,EAAEA,EAAEsgD,KAAK,CAACmC,KAAK,EAAEgD,OAAOxlD,EAAEwlD,OAAOC,cAAczlD,EAAEylD,cAAcC,WAAW1lD,EAAE0lD,WAAWrF,KAAK,OAAO3gD,EAAEM,EAAEylD,cAAczlD,EAAE0lD,WAAWnlD,EAAEb,EAAEM,EAAEwlD,YAAY,CAAC,IAAIplD,EAAE,CAACoiD,KAAKviD,EAAEulD,OAAOxlD,EAAEwlD,OAAOC,cAAczlD,EAAEylD,cACngBC,WAAW1lD,EAAE0lD,WAAWrF,KAAK,MAAM,OAAOtgD,GAAGD,EAAEC,EAAEK,EAAEP,EAAEH,GAAGK,EAAEA,EAAEsgD,KAAKjgD,EAAEc,GAAEkgD,OAAOnhD,EAAE+iD,IAAI/iD,CAAC,CAACD,EAAEA,EAAEqgD,IAAI,OAAO,OAAOrgD,GAAGA,IAAIJ,GAAG,OAAOG,EAAEF,EAAEH,EAAEK,EAAEsgD,KAAKvgD,EAAE40C,GAAGh1C,EAAEJ,EAAEulC,iBAAiBwc,IAAG,GAAI/hD,EAAEulC,cAAcnlC,EAAEJ,EAAEyiD,UAAUliD,EAAEP,EAAE4lD,UAAUnlD,EAAEN,EAAEkmD,kBAAkBjmD,CAAC,CAAiB,GAAG,QAAnBa,EAAEd,EAAEiiD,aAAwB,CAAC/hD,EAAEY,EAAE,GAAGX,EAAED,EAAE6iD,KAAKthD,GAAEkgD,OAAOxhD,EAAEojD,IAAIpjD,EAAED,EAAEA,EAAE0gD,WAAW1gD,IAAIY,EAAE,MAAM,OAAOZ,IAAIF,EAAE2hD,MAAM,GAAG,MAAM,CAAC9hD,EAAEulC,cAAcplC,EAAEmmD,SAAS,CAC9X,SAASC,GAAGtlD,GAAG,IAAIjB,EAAE8lD,KAAK3lD,EAAEH,EAAE6lD,MAAM,GAAG,OAAO1lD,EAAE,MAAMsK,MAAM5J,EAAE,MAAMV,EAAE8lD,oBAAoBhlD,EAAE,IAAIb,EAAED,EAAEmmD,SAASjmD,EAAEF,EAAE0iD,QAAQviD,EAAEN,EAAEulC,cAAc,GAAG,OAAOllC,EAAE,CAACF,EAAE0iD,QAAQ,KAAK,IAAItiD,EAAEF,EAAEA,EAAE0gD,KAAK,GAAGzgD,EAAEW,EAAEX,EAAEC,EAAE2lD,QAAQ3lD,EAAEA,EAAEwgD,WAAWxgD,IAAIF,GAAG+0C,GAAG90C,EAAEN,EAAEulC,iBAAiBwc,IAAG,GAAI/hD,EAAEulC,cAAcjlC,EAAE,OAAON,EAAE4lD,YAAY5lD,EAAEyiD,UAAUniD,GAAGH,EAAEkmD,kBAAkB/lD,CAAC,CAAC,MAAM,CAACA,EAAEF,EAAE,CAAC,SAASomD,KAAK,CACpW,SAASC,GAAGxlD,EAAEjB,GAAG,IAAIG,EAAEyB,GAAExB,EAAE0lD,KAAKzlD,EAAEL,IAAIM,GAAG80C,GAAGh1C,EAAEmlC,cAAcllC,GAAsE,GAAnEC,IAAIF,EAAEmlC,cAAcllC,EAAE0hD,IAAG,GAAI3hD,EAAEA,EAAEylD,MAAMa,GAAGC,GAAGn+C,KAAK,KAAKrI,EAAEC,EAAEa,GAAG,CAACA,IAAOb,EAAEwmD,cAAc5mD,GAAGM,GAAG,OAAOmD,IAAuB,EAApBA,GAAE8hC,cAAc3a,IAAM,CAAuD,GAAtDzqB,EAAEklC,OAAO,KAAKwhB,GAAG,EAAEC,GAAGt+C,KAAK,KAAKrI,EAAEC,EAAEC,EAAEL,QAAG,EAAO,MAAS,OAAOoD,GAAE,MAAMqH,MAAM5J,EAAE,MAAM,KAAQ,GAAHikD,KAAQiC,GAAG5mD,EAAEH,EAAEK,EAAE,CAAC,OAAOA,CAAC,CAAC,SAAS0mD,GAAG9lD,EAAEjB,EAAEG,GAAGc,EAAEokC,OAAO,MAAMpkC,EAAE,CAAC2lD,YAAY5mD,EAAEgV,MAAM7U,GAAmB,QAAhBH,EAAE4B,GAAE4gD,cAAsBxiD,EAAE,CAACgnD,WAAW,KAAKC,OAAO,MAAMrlD,GAAE4gD,YAAYxiD,EAAEA,EAAEinD,OAAO,CAAChmD,IAAgB,QAAXd,EAAEH,EAAEinD,QAAgBjnD,EAAEinD,OAAO,CAAChmD,GAAGd,EAAEuN,KAAKzM,EAAG,CAClf,SAAS6lD,GAAG7lD,EAAEjB,EAAEG,EAAEC,GAAGJ,EAAEgV,MAAM7U,EAAEH,EAAE4mD,YAAYxmD,EAAE8mD,GAAGlnD,IAAImnD,GAAGlmD,EAAE,CAAC,SAAS0lD,GAAG1lD,EAAEjB,EAAEG,GAAG,OAAOA,GAAE,WAAW+mD,GAAGlnD,IAAImnD,GAAGlmD,EAAE,GAAE,CAAC,SAASimD,GAAGjmD,GAAG,IAAIjB,EAAEiB,EAAE2lD,YAAY3lD,EAAEA,EAAE+T,MAAM,IAAI,IAAI7U,EAAEH,IAAI,OAAOo1C,GAAGn0C,EAAEd,EAAE,CAAC,MAAMC,GAAG,OAAM,CAAE,CAAC,CAAC,SAAS+mD,GAAGlmD,GAAG,IAAIjB,EAAEqiD,GAAGphD,EAAE,GAAG,OAAOjB,GAAGonD,GAAGpnD,EAAEiB,EAAE,GAAG,EAAE,CAClQ,SAASomD,GAAGpmD,GAAG,IAAIjB,EAAE2lD,KAA8M,MAAzM,oBAAoB1kD,IAAIA,EAAEA,KAAKjB,EAAEulC,cAAcvlC,EAAEyiD,UAAUxhD,EAAEA,EAAE,CAAC4hD,QAAQ,KAAKT,YAAY,KAAKN,MAAM,EAAEwE,SAAS,KAAKL,oBAAoBF,GAAGM,kBAAkBplD,GAAGjB,EAAE6lD,MAAM5kD,EAAEA,EAAEA,EAAEqlD,SAASgB,GAAG9+C,KAAK,KAAK5G,GAAEX,GAAS,CAACjB,EAAEulC,cAActkC,EAAE,CAC5P,SAAS4lD,GAAG5lD,EAAEjB,EAAEG,EAAEC,GAA8O,OAA3Oa,EAAE,CAAC2pB,IAAI3pB,EAAE6V,OAAO9W,EAAEunD,QAAQpnD,EAAEqnD,KAAKpnD,EAAE2gD,KAAK,MAAsB,QAAhB/gD,EAAE4B,GAAE4gD,cAAsBxiD,EAAE,CAACgnD,WAAW,KAAKC,OAAO,MAAMrlD,GAAE4gD,YAAYxiD,EAAEA,EAAEgnD,WAAW/lD,EAAE8/C,KAAK9/C,GAAmB,QAAfd,EAAEH,EAAEgnD,YAAoBhnD,EAAEgnD,WAAW/lD,EAAE8/C,KAAK9/C,GAAGb,EAAED,EAAE4gD,KAAK5gD,EAAE4gD,KAAK9/C,EAAEA,EAAE8/C,KAAK3gD,EAAEJ,EAAEgnD,WAAW/lD,GAAWA,CAAC,CAAC,SAASwmD,KAAK,OAAO3B,KAAKvgB,aAAa,CAAC,SAASmiB,GAAGzmD,EAAEjB,EAAEG,EAAEC,GAAG,IAAIC,EAAEslD,KAAK/jD,GAAEyjC,OAAOpkC,EAAEZ,EAAEklC,cAAcshB,GAAG,EAAE7mD,EAAEG,OAAE,OAAO,IAASC,EAAE,KAAKA,EAAE,CAC9Y,SAASunD,GAAG1mD,EAAEjB,EAAEG,EAAEC,GAAG,IAAIC,EAAEylD,KAAK1lD,OAAE,IAASA,EAAE,KAAKA,EAAE,IAAIE,OAAE,EAAO,GAAG,OAAOykD,GAAE,CAAC,IAAIxkD,EAAEwkD,GAAExf,cAA0B,GAAZjlC,EAAEC,EAAEgnD,QAAW,OAAOnnD,GAAGglD,GAAGhlD,EAAEG,EAAEinD,MAAmC,YAA5BnnD,EAAEklC,cAAcshB,GAAG7mD,EAAEG,EAAEG,EAAEF,GAAU,CAACwB,GAAEyjC,OAAOpkC,EAAEZ,EAAEklC,cAAcshB,GAAG,EAAE7mD,EAAEG,EAAEG,EAAEF,EAAE,CAAC,SAASwnD,GAAG3mD,EAAEjB,GAAG,OAAO0nD,GAAG,QAAQ,EAAEzmD,EAAEjB,EAAE,CAAC,SAAS0mD,GAAGzlD,EAAEjB,GAAG,OAAO2nD,GAAG,KAAK,EAAE1mD,EAAEjB,EAAE,CAAC,SAAS6nD,GAAG5mD,EAAEjB,GAAG,OAAO2nD,GAAG,EAAE,EAAE1mD,EAAEjB,EAAE,CAAC,SAAS8nD,GAAG7mD,EAAEjB,GAAG,OAAO2nD,GAAG,EAAE,EAAE1mD,EAAEjB,EAAE,CAChX,SAAS+nD,GAAG9mD,EAAEjB,GAAG,MAAG,oBAAoBA,GAASiB,EAAEA,IAAIjB,EAAEiB,GAAG,WAAWjB,EAAE,KAAK,GAAK,OAAOA,QAAG,IAASA,GAASiB,EAAEA,IAAIjB,EAAE2gB,QAAQ1f,EAAE,WAAWjB,EAAE2gB,QAAQ,IAAI,QAA1E,CAA2E,CAAC,SAASqnC,GAAG/mD,EAAEjB,EAAEG,GAA6C,OAA1CA,EAAE,OAAOA,QAAG,IAASA,EAAEA,EAAEoJ,OAAO,CAACtI,IAAI,KAAY0mD,GAAG,EAAE,EAAEI,GAAGv/C,KAAK,KAAKxI,EAAEiB,GAAGd,EAAE,CAAC,SAAS8nD,KAAK,CAAC,SAASC,GAAGjnD,EAAEjB,GAAG,IAAIG,EAAE2lD,KAAK9lD,OAAE,IAASA,EAAE,KAAKA,EAAE,IAAII,EAAED,EAAEolC,cAAc,OAAG,OAAOnlC,GAAG,OAAOJ,GAAGolD,GAAGplD,EAAEI,EAAE,IAAWA,EAAE,IAAGD,EAAEolC,cAAc,CAACtkC,EAAEjB,GAAUiB,EAAC,CAC7Z,SAASknD,GAAGlnD,EAAEjB,GAAG,IAAIG,EAAE2lD,KAAK9lD,OAAE,IAASA,EAAE,KAAKA,EAAE,IAAII,EAAED,EAAEolC,cAAc,OAAG,OAAOnlC,GAAG,OAAOJ,GAAGolD,GAAGplD,EAAEI,EAAE,IAAWA,EAAE,IAAGa,EAAEA,IAAId,EAAEolC,cAAc,CAACtkC,EAAEjB,GAAUiB,EAAC,CAAC,SAASmnD,GAAGnnD,EAAEjB,EAAEG,GAAG,OAAG,KAAQ,GAAH2kD,KAAc7jD,EAAEwhD,YAAYxhD,EAAEwhD,WAAU,EAAGV,IAAG,GAAI9gD,EAAEskC,cAAcplC,IAAEi1C,GAAGj1C,EAAEH,KAAKG,EAAEooC,KAAK3mC,GAAEkgD,OAAO3hD,EAAEujD,IAAIvjD,EAAEc,EAAEwhD,WAAU,GAAWziD,EAAC,CAAC,SAASqoD,GAAGpnD,EAAEjB,GAAG,IAAIG,EAAEyoC,GAAEA,GAAE,IAAIzoC,GAAG,EAAEA,EAAEA,EAAE,EAAEc,GAAE,GAAI,IAAIb,EAAEykD,GAAGxZ,WAAWwZ,GAAGxZ,WAAW,CAAC,EAAE,IAAIpqC,GAAE,GAAIjB,GAAG,CAAC,QAAQ4oC,GAAEzoC,EAAE0kD,GAAGxZ,WAAWjrC,CAAC,CAAC,CAAC,SAASkoD,KAAK,OAAOxC,KAAKvgB,aAAa,CAC1d,SAASjyB,GAAGrS,EAAEjB,EAAEG,GAAG,IAAIC,EAAEmoD,GAAGtnD,GAAkE,GAA/Dd,EAAE,CAAC+iD,KAAK9iD,EAAE8lD,OAAO/lD,EAAEgmD,eAAc,EAAGC,WAAW,KAAKrF,KAAK,MAASyH,GAAGvnD,GAAGwnD,GAAGzoD,EAAEG,QAAQ,GAAiB,QAAdA,EAAE8J,GAAGhJ,EAAEjB,EAAEG,EAAEC,IAAY,CAAWgnD,GAAGjnD,EAAEc,EAAEb,EAAXsoD,MAAgBC,GAAGxoD,EAAEH,EAAEI,EAAE,CAAC,CAC/K,SAASknD,GAAGrmD,EAAEjB,EAAEG,GAAG,IAAIC,EAAEmoD,GAAGtnD,GAAGZ,EAAE,CAAC6iD,KAAK9iD,EAAE8lD,OAAO/lD,EAAEgmD,eAAc,EAAGC,WAAW,KAAKrF,KAAK,MAAM,GAAGyH,GAAGvnD,GAAGwnD,GAAGzoD,EAAEK,OAAO,CAAC,IAAIC,EAAEW,EAAEkkC,UAAU,GAAG,IAAIlkC,EAAE6gD,QAAQ,OAAOxhD,GAAG,IAAIA,EAAEwhD,QAAiC,QAAxBxhD,EAAEN,EAAEimD,qBAA8B,IAAI,IAAI1lD,EAAEP,EAAEqmD,kBAAkB7lD,EAAEF,EAAEC,EAAEJ,GAAqC,GAAlCE,EAAE8lD,eAAc,EAAG9lD,EAAE+lD,WAAW5lD,EAAK40C,GAAG50C,EAAED,GAAG,CAAC,IAAIE,EAAET,EAAEoiD,YAA+E,OAAnE,OAAO3hD,GAAGJ,EAAE0gD,KAAK1gD,EAAE8hD,GAAGniD,KAAKK,EAAE0gD,KAAKtgD,EAAEsgD,KAAKtgD,EAAEsgD,KAAK1gD,QAAGL,EAAEoiD,YAAY/hD,EAAQ,CAAC,CAAC,MAAMK,GAAG,CAAwB,QAAdP,EAAE8J,GAAGhJ,EAAEjB,EAAEK,EAAED,MAAoBgnD,GAAGjnD,EAAEc,EAAEb,EAAbC,EAAEqoD,MAAgBC,GAAGxoD,EAAEH,EAAEI,GAAG,CAAC,CAC/c,SAASooD,GAAGvnD,GAAG,IAAIjB,EAAEiB,EAAEkkC,UAAU,OAAOlkC,IAAIW,IAAG,OAAO5B,GAAGA,IAAI4B,EAAC,CAAC,SAAS6mD,GAAGxnD,EAAEjB,GAAGilD,GAAGD,IAAG,EAAG,IAAI7kD,EAAEc,EAAE4hD,QAAQ,OAAO1iD,EAAEH,EAAE+gD,KAAK/gD,GAAGA,EAAE+gD,KAAK5gD,EAAE4gD,KAAK5gD,EAAE4gD,KAAK/gD,GAAGiB,EAAE4hD,QAAQ7iD,CAAC,CAAC,SAAS2oD,GAAG1nD,EAAEjB,EAAEG,GAAG,GAAG,KAAO,QAAFA,GAAW,CAAC,IAAIC,EAAEJ,EAAE8hD,MAAwB3hD,GAAlBC,GAAGa,EAAE+mC,aAAkBhoC,EAAE8hD,MAAM3hD,EAAEwoC,GAAG1nC,EAAEd,EAAE,CAAC,CAC9P,IAAIslD,GAAG,CAACmD,YAAY5G,GAAG6G,YAAY57C,GAAE67C,WAAW77C,GAAE87C,UAAU97C,GAAE+7C,oBAAoB/7C,GAAEg8C,mBAAmBh8C,GAAEi8C,gBAAgBj8C,GAAEk8C,QAAQl8C,GAAEm8C,WAAWn8C,GAAEo8C,OAAOp8C,GAAEq8C,SAASr8C,GAAEs8C,cAAct8C,GAAEu8C,iBAAiBv8C,GAAEw8C,cAAcx8C,GAAEy8C,iBAAiBz8C,GAAE08C,qBAAqB18C,GAAE28C,MAAM38C,GAAE48C,0BAAyB,GAAIvE,GAAG,CAACsD,YAAY5G,GAAG6G,YAAY,SAAS5nD,EAAEjB,GAA4C,OAAzC2lD,KAAKpgB,cAAc,CAACtkC,OAAE,IAASjB,EAAE,KAAKA,GAAUiB,CAAC,EAAE6nD,WAAW9G,GAAG+G,UAAUnB,GAAGoB,oBAAoB,SAAS/nD,EAAEjB,EAAEG,GAA6C,OAA1CA,EAAE,OAAOA,QAAG,IAASA,EAAEA,EAAEoJ,OAAO,CAACtI,IAAI,KAAYymD,GAAG,QAC3f,EAAEK,GAAGv/C,KAAK,KAAKxI,EAAEiB,GAAGd,EAAE,EAAE+oD,gBAAgB,SAASjoD,EAAEjB,GAAG,OAAO0nD,GAAG,QAAQ,EAAEzmD,EAAEjB,EAAE,EAAEipD,mBAAmB,SAAShoD,EAAEjB,GAAG,OAAO0nD,GAAG,EAAE,EAAEzmD,EAAEjB,EAAE,EAAEmpD,QAAQ,SAASloD,EAAEjB,GAAG,IAAIG,EAAEwlD,KAAqD,OAAhD3lD,OAAE,IAASA,EAAE,KAAKA,EAAEiB,EAAEA,IAAId,EAAEolC,cAAc,CAACtkC,EAAEjB,GAAUiB,CAAC,EAAEmoD,WAAW,SAASnoD,EAAEjB,EAAEG,GAAG,IAAIC,EAAEulD,KAAkM,OAA7L3lD,OAAE,IAASG,EAAEA,EAAEH,GAAGA,EAAEI,EAAEmlC,cAAcnlC,EAAEqiD,UAAUziD,EAAEiB,EAAE,CAAC4hD,QAAQ,KAAKT,YAAY,KAAKN,MAAM,EAAEwE,SAAS,KAAKL,oBAAoBhlD,EAAEolD,kBAAkBrmD,GAAGI,EAAEylD,MAAM5kD,EAAEA,EAAEA,EAAEqlD,SAAShzC,GAAG9K,KAAK,KAAK5G,GAAEX,GAAS,CAACb,EAAEmlC,cAActkC,EAAE,EAAEooD,OAAO,SAASpoD,GAC3d,OAAdA,EAAE,CAAC0f,QAAQ1f,GAAhB0kD,KAA4BpgB,cAActkC,CAAC,EAAEqoD,SAASjC,GAAGkC,cAActB,GAAGuB,iBAAiB,SAASvoD,GAAG,OAAO0kD,KAAKpgB,cAActkC,CAAC,EAAEwoD,cAAc,WAAW,IAAIxoD,EAAEomD,IAAG,GAAIrnD,EAAEiB,EAAE,GAA6C,OAA1CA,EAAEonD,GAAG7/C,KAAK,KAAKvH,EAAE,IAAI0kD,KAAKpgB,cAActkC,EAAQ,CAACjB,EAAEiB,EAAE,EAAEyoD,iBAAiB,WAAW,EAAEC,qBAAqB,SAAS1oD,EAAEjB,EAAEG,GAAG,IAAIC,EAAEwB,GAAEvB,EAAEslD,KAAK,GAAG9G,GAAE,CAAC,QAAG,IAAS1+C,EAAE,MAAMsK,MAAM5J,EAAE,MAAMV,EAAEA,GAAG,KAAK,CAAO,GAANA,EAAEH,IAAO,OAAOoD,GAAE,MAAMqH,MAAM5J,EAAE,MAAM,KAAQ,GAAHikD,KAAQiC,GAAG3mD,EAAEJ,EAAEG,EAAE,CAACE,EAAEklC,cAAcplC,EAAE,IAAIG,EAAE,CAAC0U,MAAM7U,EAAEymD,YAAY5mD,GACvZ,OAD0ZK,EAAEwlD,MAAMvlD,EAAEsnD,GAAGjB,GAAGn+C,KAAK,KAAKpI,EACpfE,EAAEW,GAAG,CAACA,IAAIb,EAAEilC,OAAO,KAAKwhB,GAAG,EAAEC,GAAGt+C,KAAK,KAAKpI,EAAEE,EAAEH,EAAEH,QAAG,EAAO,MAAaG,CAAC,EAAEypD,MAAM,WAAW,IAAI3oD,EAAE0kD,KAAK3lD,EAAEoD,GAAE0mD,iBAAiB,GAAGjL,GAAE,CAAC,IAAI1+C,EAAEm+C,GAAkDt+C,EAAE,IAAIA,EAAE,KAA9CG,GAAHk+C,KAAU,GAAG,GAAG9W,GAAhB8W,IAAsB,IAAIr4C,SAAS,IAAI7F,GAAuB,GAAPA,EAAE+kD,QAAWllD,GAAG,IAAIG,EAAE6F,SAAS,KAAKhG,GAAG,GAAG,MAAaA,EAAE,IAAIA,EAAE,KAAfG,EAAEglD,MAAmBn/C,SAAS,IAAI,IAAI,OAAO/E,EAAEskC,cAAcvlC,CAAC,EAAE6pD,0BAAyB,GAAItE,GAAG,CAACqD,YAAY5G,GAAG6G,YAAYX,GAAGY,WAAW9G,GAAG+G,UAAUrC,GAAGsC,oBAAoBhB,GAAGiB,mBAAmBpB,GAAGqB,gBAAgBpB,GAAGqB,QAAQhB,GAAGiB,WAAWpD,GAAGqD,OAAO5B,GAAG6B,SAAS,WAAW,OAAOtD,GAAGD,GAAG,EACrhBwD,cAActB,GAAGuB,iBAAiB,SAASvoD,GAAc,OAAOmnD,GAAZtC,KAAiBf,GAAExf,cAActkC,EAAE,EAAEwoD,cAAc,WAAgD,MAAM,CAArCzD,GAAGD,IAAI,GAAKD,KAAKvgB,cAAyB,EAAEmkB,iBAAiBlD,GAAGmD,qBAAqBlD,GAAGmD,MAAMtB,GAAGuB,0BAAyB,GAAIrE,GAAG,CAACoD,YAAY5G,GAAG6G,YAAYX,GAAGY,WAAW9G,GAAG+G,UAAUrC,GAAGsC,oBAAoBhB,GAAGiB,mBAAmBpB,GAAGqB,gBAAgBpB,GAAGqB,QAAQhB,GAAGiB,WAAW7C,GAAG8C,OAAO5B,GAAG6B,SAAS,WAAW,OAAO/C,GAAGR,GAAG,EAAEwD,cAActB,GAAGuB,iBAAiB,SAASvoD,GAAG,IAAIjB,EAAE8lD,KAAK,OAAO,OACzff,GAAE/kD,EAAEulC,cAActkC,EAAEmnD,GAAGpoD,EAAE+kD,GAAExf,cAActkC,EAAE,EAAEwoD,cAAc,WAAgD,MAAM,CAArClD,GAAGR,IAAI,GAAKD,KAAKvgB,cAAyB,EAAEmkB,iBAAiBlD,GAAGmD,qBAAqBlD,GAAGmD,MAAMtB,GAAGuB,0BAAyB,GAAI,SAASE,GAAG9oD,EAAEjB,GAAG,GAAGiB,GAAGA,EAAEyX,aAAa,CAA4B,IAAI,IAAIvY,KAAnCH,EAAEwJ,EAAE,CAAC,EAAExJ,GAAGiB,EAAEA,EAAEyX,kBAA4B,IAAS1Y,EAAEG,KAAKH,EAAEG,GAAGc,EAAEd,IAAI,OAAOH,CAAC,CAAC,OAAOA,CAAC,CAAC,SAASgqD,GAAG/oD,EAAEjB,EAAEG,EAAEC,GAA8BD,EAAE,QAAXA,EAAEA,EAAEC,EAAtBJ,EAAEiB,EAAEskC,sBAAmC,IAASplC,EAAEH,EAAEwJ,EAAE,CAAC,EAAExJ,EAAEG,GAAGc,EAAEskC,cAAcplC,EAAE,IAAIc,EAAE6gD,QAAQ7gD,EAAEuhD,YAAYC,UAAUtiD,EAAE,CACrd,IAAI8pD,GAAG,CAACC,UAAU,SAASjpD,GAAG,SAAOA,EAAEA,EAAEkpD,kBAAiBjlB,GAAGjkC,KAAKA,CAAI,EAAEmpD,gBAAgB,SAASnpD,EAAEjB,EAAEG,GAAGc,EAAEA,EAAEkpD,gBAAgB,IAAI/pD,EAAEsoD,KAAIroD,EAAEkoD,GAAGtnD,GAAGX,EAAE0iD,GAAG5iD,EAAEC,GAAGC,EAAE6iD,QAAQnjD,OAAE,IAASG,GAAG,OAAOA,IAAIG,EAAE8iD,SAASjjD,GAAe,QAAZH,EAAEqjD,GAAGpiD,EAAEX,EAAED,MAAc+mD,GAAGpnD,EAAEiB,EAAEZ,EAAED,GAAGmjD,GAAGvjD,EAAEiB,EAAEZ,GAAG,EAAEgqD,oBAAoB,SAASppD,EAAEjB,EAAEG,GAAGc,EAAEA,EAAEkpD,gBAAgB,IAAI/pD,EAAEsoD,KAAIroD,EAAEkoD,GAAGtnD,GAAGX,EAAE0iD,GAAG5iD,EAAEC,GAAGC,EAAEsqB,IAAI,EAAEtqB,EAAE6iD,QAAQnjD,OAAE,IAASG,GAAG,OAAOA,IAAIG,EAAE8iD,SAASjjD,GAAe,QAAZH,EAAEqjD,GAAGpiD,EAAEX,EAAED,MAAc+mD,GAAGpnD,EAAEiB,EAAEZ,EAAED,GAAGmjD,GAAGvjD,EAAEiB,EAAEZ,GAAG,EAAEiqD,mBAAmB,SAASrpD,EAAEjB,GAAGiB,EAAEA,EAAEkpD,gBAAgB,IAAIhqD,EAAEuoD,KAAItoD,EACnfmoD,GAAGtnD,GAAGZ,EAAE2iD,GAAG7iD,EAAEC,GAAGC,EAAEuqB,IAAI,OAAE,IAAS5qB,GAAG,OAAOA,IAAIK,EAAE+iD,SAASpjD,GAAe,QAAZA,EAAEqjD,GAAGpiD,EAAEZ,EAAED,MAAcgnD,GAAGpnD,EAAEiB,EAAEb,EAAED,GAAGojD,GAAGvjD,EAAEiB,EAAEb,GAAG,GAAG,SAASmqD,GAAGtpD,EAAEjB,EAAEG,EAAEC,EAAEC,EAAEC,EAAEC,GAAiB,MAAM,oBAApBU,EAAEA,EAAE4iC,WAAsC2mB,sBAAsBvpD,EAAEupD,sBAAsBpqD,EAAEE,EAAEC,IAAGP,EAAEqE,YAAWrE,EAAEqE,UAAUomD,wBAAsBpV,GAAGl1C,EAAEC,KAAKi1C,GAAGh1C,EAAEC,GAAK,CAC1S,SAASoqD,GAAGzpD,EAAEjB,EAAEG,GAAG,IAAIC,GAAE,EAAGC,EAAEs8C,GAAOr8C,EAAEN,EAAEwY,YAA2W,MAA/V,kBAAkBlY,GAAG,OAAOA,EAAEA,EAAE0hD,GAAG1hD,IAAID,EAAE48C,GAAGj9C,GAAG68C,GAAG9yC,GAAE4W,QAAyBrgB,GAAGF,EAAE,QAAtBA,EAAEJ,EAAEyY,oBAA4B,IAASrY,GAAG08C,GAAG77C,EAAEZ,GAAGs8C,IAAI38C,EAAE,IAAIA,EAAEG,EAAEG,GAAGW,EAAEskC,cAAc,OAAOvlC,EAAE2qD,YAAO,IAAS3qD,EAAE2qD,MAAM3qD,EAAE2qD,MAAM,KAAK3qD,EAAE4qD,QAAQX,GAAGhpD,EAAE4iC,UAAU7jC,EAAEA,EAAEmqD,gBAAgBlpD,EAAEb,KAAIa,EAAEA,EAAE4iC,WAAYkZ,4CAA4C18C,EAAEY,EAAE+7C,0CAA0C18C,GAAUN,CAAC,CAC5Z,SAAS6qD,GAAG5pD,EAAEjB,EAAEG,EAAEC,GAAGa,EAAEjB,EAAE2qD,MAAM,oBAAoB3qD,EAAE8qD,2BAA2B9qD,EAAE8qD,0BAA0B3qD,EAAEC,GAAG,oBAAoBJ,EAAE+qD,kCAAkC/qD,EAAE+qD,iCAAiC5qD,EAAEC,GAAGJ,EAAE2qD,QAAQ1pD,GAAGgpD,GAAGI,oBAAoBrqD,EAAEA,EAAE2qD,MAAM,KAAK,CACpQ,SAASK,GAAG/pD,EAAEjB,EAAEG,EAAEC,GAAG,IAAIC,EAAEY,EAAE4iC,UAAUxjC,EAAE8oB,MAAMhpB,EAAEE,EAAEsqD,MAAM1pD,EAAEskC,cAAcllC,EAAEggD,KAAK,CAAC,EAAEkC,GAAGthD,GAAG,IAAIX,EAAEN,EAAEwY,YAAY,kBAAkBlY,GAAG,OAAOA,EAAED,EAAE6V,QAAQ8rC,GAAG1hD,IAAIA,EAAE28C,GAAGj9C,GAAG68C,GAAG9yC,GAAE4W,QAAQtgB,EAAE6V,QAAQ4mC,GAAG77C,EAAEX,IAAID,EAAEsqD,MAAM1pD,EAAEskC,cAA2C,oBAA7BjlC,EAAEN,EAAE8Y,4BAAiDkxC,GAAG/oD,EAAEjB,EAAEM,EAAEH,GAAGE,EAAEsqD,MAAM1pD,EAAEskC,eAAe,oBAAoBvlC,EAAE8Y,0BAA0B,oBAAoBzY,EAAE4qD,yBAAyB,oBAAoB5qD,EAAE6qD,2BAA2B,oBAAoB7qD,EAAE8qD,qBAAqBnrD,EAAEK,EAAEsqD,MACrf,oBAAoBtqD,EAAE8qD,oBAAoB9qD,EAAE8qD,qBAAqB,oBAAoB9qD,EAAE6qD,2BAA2B7qD,EAAE6qD,4BAA4BlrD,IAAIK,EAAEsqD,OAAOV,GAAGI,oBAAoBhqD,EAAEA,EAAEsqD,MAAM,MAAMlH,GAAGxiD,EAAEd,EAAEE,EAAED,GAAGC,EAAEsqD,MAAM1pD,EAAEskC,eAAe,oBAAoBllC,EAAE+qD,oBAAoBnqD,EAAEokC,OAAO,QAAQ,CAAC,SAASgmB,GAAGpqD,EAAEjB,GAAG,IAAI,IAAIG,EAAE,GAAGC,EAAEJ,EAAE,GAAGG,GAAGi7B,EAAGh7B,GAAGA,EAAEA,EAAEglC,aAAahlC,GAAG,IAAIC,EAAEF,CAAC,CAAC,MAAMG,GAAGD,EAAE,6BAA6BC,EAAE0qB,QAAQ,KAAK1qB,EAAEmiB,KAAK,CAAC,MAAM,CAACzN,MAAM/T,EAAE4iB,OAAO7jB,EAAEyiB,MAAMpiB,EAAEirD,OAAO,KAAK,CAC1d,SAASC,GAAGtqD,EAAEjB,EAAEG,GAAG,MAAM,CAAC6U,MAAM/T,EAAE4iB,OAAO,KAAKpB,MAAM,MAAMtiB,EAAEA,EAAE,KAAKmrD,OAAO,MAAMtrD,EAAEA,EAAE,KAAK,CAAC,SAASwrD,GAAGvqD,EAAEjB,GAAG,IAAIyrD,QAAQC,MAAM1rD,EAAEgV,MAAM,CAAC,MAAM7U,GAAGiyB,YAAW,WAAW,MAAMjyB,CAAE,GAAE,CAAC,CAAC,IAAIwrD,GAAG,oBAAoB7sC,QAAQA,QAAQvB,IAAI,SAASquC,GAAG3qD,EAAEjB,EAAEG,IAAGA,EAAE6iD,IAAI,EAAE7iD,IAAKyqB,IAAI,EAAEzqB,EAAEgjD,QAAQ,CAACtsB,QAAQ,MAAM,IAAIz2B,EAAEJ,EAAEgV,MAAsD,OAAhD7U,EAAEijD,SAAS,WAAWyI,KAAKA,IAAG,EAAGC,GAAG1rD,GAAGorD,GAAGvqD,EAAEjB,EAAE,EAASG,CAAC,CACrW,SAAS4rD,GAAG9qD,EAAEjB,EAAEG,IAAGA,EAAE6iD,IAAI,EAAE7iD,IAAKyqB,IAAI,EAAE,IAAIxqB,EAAEa,EAAEG,KAAKyX,yBAAyB,GAAG,oBAAoBzY,EAAE,CAAC,IAAIC,EAAEL,EAAEgV,MAAM7U,EAAEgjD,QAAQ,WAAW,OAAO/iD,EAAEC,EAAE,EAAEF,EAAEijD,SAAS,WAAWoI,GAAGvqD,EAAEjB,EAAE,CAAC,CAAC,IAAIM,EAAEW,EAAE4iC,UAA8O,OAApO,OAAOvjC,GAAG,oBAAoBA,EAAE0rD,oBAAoB7rD,EAAEijD,SAAS,WAAWoI,GAAGvqD,EAAEjB,GAAG,oBAAoBI,IAAI,OAAO6rD,GAAGA,GAAG,IAAIluC,IAAI,CAAC5Z,OAAO8nD,GAAGlpD,IAAIoB,OAAO,IAAIhE,EAAEH,EAAEyiB,MAAMte,KAAK6nD,kBAAkBhsD,EAAEgV,MAAM,CAACk3C,eAAe,OAAO/rD,EAAEA,EAAE,IAAI,GAAUA,CAAC,CACnb,SAASgsD,GAAGlrD,EAAEjB,EAAEG,GAAG,IAAIC,EAAEa,EAAEmrD,UAAU,GAAG,OAAOhsD,EAAE,CAACA,EAAEa,EAAEmrD,UAAU,IAAIT,GAAG,IAAItrD,EAAE,IAAI0d,IAAI3d,EAAEmG,IAAIvG,EAAEK,EAAE,WAAiB,KAAXA,EAAED,EAAE+G,IAAInH,MAAgBK,EAAE,IAAI0d,IAAI3d,EAAEmG,IAAIvG,EAAEK,IAAIA,EAAEuV,IAAIzV,KAAKE,EAAE0C,IAAI5C,GAAGc,EAAEorD,GAAG7jD,KAAK,KAAKvH,EAAEjB,EAAEG,GAAGH,EAAE07C,KAAKz6C,EAAEA,GAAG,CAAC,SAASqrD,GAAGrrD,GAAG,EAAE,CAAC,IAAIjB,EAA4E,IAAvEA,EAAE,KAAKiB,EAAE2pB,OAAsB5qB,EAAE,QAApBA,EAAEiB,EAAEskC,gBAAyB,OAAOvlC,EAAEwlC,YAAuBxlC,EAAE,OAAOiB,EAAEA,EAAEA,EAAEmkC,MAAM,OAAO,OAAOnkC,GAAG,OAAO,IAAI,CAChW,SAASsrD,GAAGtrD,EAAEjB,EAAEG,EAAEC,EAAEC,GAAG,OAAG,KAAY,EAAPY,EAAEu+C,OAAev+C,IAAIjB,EAAEiB,EAAEokC,OAAO,OAAOpkC,EAAEokC,OAAO,IAAIllC,EAAEklC,OAAO,OAAOllC,EAAEklC,QAAQ,MAAM,IAAIllC,EAAEyqB,MAAM,OAAOzqB,EAAEglC,UAAUhlC,EAAEyqB,IAAI,KAAI5qB,EAAEgjD,IAAI,EAAE,IAAKp4B,IAAI,EAAEy4B,GAAGljD,EAAEH,EAAE,KAAKG,EAAE2hD,OAAO,GAAG7gD,IAAEA,EAAEokC,OAAO,MAAMpkC,EAAE6gD,MAAMzhD,EAASY,EAAC,CAAC,IAAIurD,GAAG/yB,EAAGgzB,kBAAkB1K,IAAG,EAAG,SAAS2K,GAAGzrD,EAAEjB,EAAEG,EAAEC,GAAGJ,EAAE2lC,MAAM,OAAO1kC,EAAEigD,GAAGlhD,EAAE,KAAKG,EAAEC,GAAG6gD,GAAGjhD,EAAEiB,EAAE0kC,MAAMxlC,EAAEC,EAAE,CACnV,SAASusD,GAAG1rD,EAAEjB,EAAEG,EAAEC,EAAEC,GAAGF,EAAEA,EAAEwZ,OAAO,IAAIrZ,EAAEN,EAAEkgD,IAAqC,OAAjCyB,GAAG3hD,EAAEK,GAAGD,EAAEilD,GAAGpkD,EAAEjB,EAAEG,EAAEC,EAAEE,EAAED,GAAGF,EAAEulD,KAAQ,OAAOzkD,GAAI8gD,IAA2ElD,IAAG1+C,GAAGs+C,GAAGz+C,GAAGA,EAAEqlC,OAAO,EAAEqnB,GAAGzrD,EAAEjB,EAAEI,EAAEC,GAAUL,EAAE2lC,QAA7G3lC,EAAEwiD,YAAYvhD,EAAEuhD,YAAYxiD,EAAEqlC,QAAQ,KAAKpkC,EAAE6gD,QAAQzhD,EAAEusD,GAAG3rD,EAAEjB,EAAEK,GAAoD,CACzN,SAAS+H,GAAGnH,EAAEjB,EAAEG,EAAEC,EAAEC,GAAG,GAAG,OAAOY,EAAE,CAAC,IAAIX,EAAEH,EAAEiB,KAAK,MAAG,oBAAoBd,GAAIusD,GAAGvsD,SAAI,IAASA,EAAEoY,cAAc,OAAOvY,EAAE0S,cAAS,IAAS1S,EAAEuY,eAAoDzX,EAAE0/C,GAAGxgD,EAAEiB,KAAK,KAAKhB,EAAEJ,EAAEA,EAAEw/C,KAAKn/C,IAAK6/C,IAAIlgD,EAAEkgD,IAAIj/C,EAAEmkC,OAAOplC,EAASA,EAAE2lC,MAAM1kC,IAArGjB,EAAE4qB,IAAI,GAAG5qB,EAAEoB,KAAKd,EAAEwsD,GAAG7rD,EAAEjB,EAAEM,EAAEF,EAAEC,GAAyE,CAAW,GAAVC,EAAEW,EAAE0kC,MAAS,KAAK1kC,EAAE6gD,MAAMzhD,GAAG,CAAC,IAAIE,EAAED,EAAEs/C,cAA0C,IAAhBz/C,EAAE,QAAdA,EAAEA,EAAE0S,SAAmB1S,EAAEk1C,IAAQ90C,EAAEH,IAAIa,EAAEi/C,MAAMlgD,EAAEkgD,IAAI,OAAO0M,GAAG3rD,EAAEjB,EAAEK,EAAE,CAA6C,OAA5CL,EAAEqlC,OAAO,GAAEpkC,EAAEw/C,GAAGngD,EAAEF,IAAK8/C,IAAIlgD,EAAEkgD,IAAIj/C,EAAEmkC,OAAOplC,EAASA,EAAE2lC,MAAM1kC,CAAC,CAC1b,SAAS6rD,GAAG7rD,EAAEjB,EAAEG,EAAEC,EAAEC,GAAG,GAAG,OAAOY,EAAE,CAAC,IAAIX,EAAEW,EAAE2+C,cAAc,GAAGvK,GAAG/0C,EAAEF,IAAIa,EAAEi/C,MAAMlgD,EAAEkgD,IAAI,IAAG6B,IAAG,EAAG/hD,EAAEm/C,aAAa/+C,EAAEE,EAAE,KAAKW,EAAE6gD,MAAMzhD,GAAsC,OAAOL,EAAE8hD,MAAM7gD,EAAE6gD,MAAM8K,GAAG3rD,EAAEjB,EAAEK,GAAjE,KAAa,OAARY,EAAEokC,SAAgB0c,IAAG,EAAyC,EAAC,OAAOgL,GAAG9rD,EAAEjB,EAAEG,EAAEC,EAAEC,EAAE,CACxN,SAAS2sD,GAAG/rD,EAAEjB,EAAEG,GAAG,IAAIC,EAAEJ,EAAEm/C,aAAa9+C,EAAED,EAAEw9B,SAASt9B,EAAE,OAAOW,EAAEA,EAAEskC,cAAc,KAAK,GAAG,WAAWnlC,EAAEo/C,KAAK,GAAG,KAAY,EAAPx/C,EAAEw/C,MAAQx/C,EAAEulC,cAAc,CAAC0nB,UAAU,EAAEC,UAAU,KAAKC,YAAY,MAAMzQ,GAAE0Q,GAAGC,IAAIA,IAAIltD,MAAM,CAAC,GAAG,KAAO,WAAFA,GAAc,OAAOc,EAAE,OAAOX,EAAEA,EAAE2sD,UAAU9sD,EAAEA,EAAEH,EAAE8hD,MAAM9hD,EAAE0hD,WAAW,WAAW1hD,EAAEulC,cAAc,CAAC0nB,UAAUhsD,EAAEisD,UAAU,KAAKC,YAAY,MAAMntD,EAAEwiD,YAAY,KAAK9F,GAAE0Q,GAAGC,IAAIA,IAAIpsD,EAAE,KAAKjB,EAAEulC,cAAc,CAAC0nB,UAAU,EAAEC,UAAU,KAAKC,YAAY,MAAM/sD,EAAE,OAAOE,EAAEA,EAAE2sD,UAAU9sD,EAAEu8C,GAAE0Q,GAAGC,IAAIA,IAAIjtD,CAAC,MAAM,OACtfE,GAAGF,EAAEE,EAAE2sD,UAAU9sD,EAAEH,EAAEulC,cAAc,MAAMnlC,EAAED,EAAEu8C,GAAE0Q,GAAGC,IAAIA,IAAIjtD,EAAc,OAAZssD,GAAGzrD,EAAEjB,EAAEK,EAAEF,GAAUH,EAAE2lC,KAAK,CAAC,SAAS2nB,GAAGrsD,EAAEjB,GAAG,IAAIG,EAAEH,EAAEkgD,KAAO,OAAOj/C,GAAG,OAAOd,GAAG,OAAOc,GAAGA,EAAEi/C,MAAM//C,KAAEH,EAAEqlC,OAAO,IAAIrlC,EAAEqlC,OAAO,QAAO,CAAC,SAAS0nB,GAAG9rD,EAAEjB,EAAEG,EAAEC,EAAEC,GAAG,IAAIC,EAAE28C,GAAG98C,GAAG08C,GAAG9yC,GAAE4W,QAAmD,OAA3CrgB,EAAEw8C,GAAG98C,EAAEM,GAAGqhD,GAAG3hD,EAAEK,GAAGF,EAAEklD,GAAGpkD,EAAEjB,EAAEG,EAAEC,EAAEE,EAAED,GAAGD,EAAEslD,KAAQ,OAAOzkD,GAAI8gD,IAA2ElD,IAAGz+C,GAAGq+C,GAAGz+C,GAAGA,EAAEqlC,OAAO,EAAEqnB,GAAGzrD,EAAEjB,EAAEG,EAAEE,GAAUL,EAAE2lC,QAA7G3lC,EAAEwiD,YAAYvhD,EAAEuhD,YAAYxiD,EAAEqlC,QAAQ,KAAKpkC,EAAE6gD,QAAQzhD,EAAEusD,GAAG3rD,EAAEjB,EAAEK,GAAoD,CACla,SAASktD,GAAGtsD,EAAEjB,EAAEG,EAAEC,EAAEC,GAAG,GAAG48C,GAAG98C,GAAG,CAAC,IAAIG,GAAE,EAAGg9C,GAAGt9C,EAAE,MAAMM,GAAE,EAAW,GAARqhD,GAAG3hD,EAAEK,GAAM,OAAOL,EAAE6jC,UAAU2pB,GAAGvsD,EAAEjB,GAAG0qD,GAAG1qD,EAAEG,EAAEC,GAAG4qD,GAAGhrD,EAAEG,EAAEC,EAAEC,GAAGD,GAAE,OAAQ,GAAG,OAAOa,EAAE,CAAC,IAAIV,EAAEP,EAAE6jC,UAAUrjC,EAAER,EAAE4/C,cAAcr/C,EAAE4oB,MAAM3oB,EAAE,IAAIC,EAAEF,EAAE2V,QAAQxV,EAAEP,EAAEqY,YAAY,kBAAkB9X,GAAG,OAAOA,EAAEA,EAAEshD,GAAGthD,GAAyBA,EAAEo8C,GAAG98C,EAA1BU,EAAEu8C,GAAG98C,GAAG08C,GAAG9yC,GAAE4W,SAAmB,IAAIhgB,EAAER,EAAE2Y,yBAAyBhY,EAAE,oBAAoBH,GAAG,oBAAoBJ,EAAE0qD,wBAAwBnqD,GAAG,oBAAoBP,EAAEwqD,kCAAkC,oBAAoBxqD,EAAEuqD,4BAC1dtqD,IAAIJ,GAAGK,IAAIC,IAAImqD,GAAG7qD,EAAEO,EAAEH,EAAEM,GAAG4hD,IAAG,EAAG,IAAIphD,EAAElB,EAAEulC,cAAchlC,EAAEoqD,MAAMzpD,EAAEuiD,GAAGzjD,EAAEI,EAAEG,EAAEF,GAAGI,EAAET,EAAEulC,cAAc/kC,IAAIJ,GAAGc,IAAIT,GAAGm8C,GAAGj8B,SAAS2hC,IAAI,oBAAoB3hD,IAAIqpD,GAAGhqD,EAAEG,EAAEQ,EAAEP,GAAGK,EAAET,EAAEulC,gBAAgB/kC,EAAE8hD,IAAIiI,GAAGvqD,EAAEG,EAAEK,EAAEJ,EAAEc,EAAET,EAAEC,KAAKI,GAAG,oBAAoBP,EAAE2qD,2BAA2B,oBAAoB3qD,EAAE4qD,qBAAqB,oBAAoB5qD,EAAE4qD,oBAAoB5qD,EAAE4qD,qBAAqB,oBAAoB5qD,EAAE2qD,2BAA2B3qD,EAAE2qD,6BAA6B,oBAAoB3qD,EAAE6qD,oBAAoBprD,EAAEqlC,OAAO,WAClf,oBAAoB9kC,EAAE6qD,oBAAoBprD,EAAEqlC,OAAO,SAASrlC,EAAE4/C,cAAcx/C,EAAEJ,EAAEulC,cAAc9kC,GAAGF,EAAE4oB,MAAM/oB,EAAEG,EAAEoqD,MAAMlqD,EAAEF,EAAE2V,QAAQxV,EAAEN,EAAEI,IAAI,oBAAoBD,EAAE6qD,oBAAoBprD,EAAEqlC,OAAO,SAASjlC,GAAE,EAAG,KAAK,CAACG,EAAEP,EAAE6jC,UAAUkf,GAAG9hD,EAAEjB,GAAGQ,EAAER,EAAE4/C,cAAcl/C,EAAEV,EAAEoB,OAAOpB,EAAE82B,YAAYt2B,EAAEupD,GAAG/pD,EAAEoB,KAAKZ,GAAGD,EAAE4oB,MAAMzoB,EAAEI,EAAEd,EAAEm/C,aAAaj+C,EAAEX,EAAE2V,QAAwB,kBAAhBzV,EAAEN,EAAEqY,cAAiC,OAAO/X,EAAEA,EAAEuhD,GAAGvhD,GAAyBA,EAAEq8C,GAAG98C,EAA1BS,EAAEw8C,GAAG98C,GAAG08C,GAAG9yC,GAAE4W,SAAmB,IAAIhf,EAAExB,EAAE2Y,0BAA0BnY,EAAE,oBAAoBgB,GAAG,oBAAoBpB,EAAE0qD,0BAC9e,oBAAoB1qD,EAAEwqD,kCAAkC,oBAAoBxqD,EAAEuqD,4BAA4BtqD,IAAIM,GAAGI,IAAIT,IAAIoqD,GAAG7qD,EAAEO,EAAEH,EAAEK,GAAG6hD,IAAG,EAAGphD,EAAElB,EAAEulC,cAAchlC,EAAEoqD,MAAMzpD,EAAEuiD,GAAGzjD,EAAEI,EAAEG,EAAEF,GAAG,IAAIO,EAAEZ,EAAEulC,cAAc/kC,IAAIM,GAAGI,IAAIN,GAAGg8C,GAAGj8B,SAAS2hC,IAAI,oBAAoB3gD,IAAIqoD,GAAGhqD,EAAEG,EAAEwB,EAAEvB,GAAGQ,EAAEZ,EAAEulC,gBAAgB7kC,EAAE4hD,IAAIiI,GAAGvqD,EAAEG,EAAEO,EAAEN,EAAEc,EAAEN,EAAEH,KAAI,IAAKE,GAAG,oBAAoBJ,EAAEktD,4BAA4B,oBAAoBltD,EAAEmtD,sBAAsB,oBAAoBntD,EAAEmtD,qBAAqBntD,EAAEmtD,oBAAoBttD,EAAEQ,EAAEH,GAAG,oBAAoBF,EAAEktD,4BAC5fltD,EAAEktD,2BAA2BrtD,EAAEQ,EAAEH,IAAI,oBAAoBF,EAAEotD,qBAAqB3tD,EAAEqlC,OAAO,GAAG,oBAAoB9kC,EAAE0qD,0BAA0BjrD,EAAEqlC,OAAO,QAAQ,oBAAoB9kC,EAAEotD,oBAAoBntD,IAAIS,EAAE2+C,eAAe1+C,IAAID,EAAEskC,gBAAgBvlC,EAAEqlC,OAAO,GAAG,oBAAoB9kC,EAAE0qD,yBAAyBzqD,IAAIS,EAAE2+C,eAAe1+C,IAAID,EAAEskC,gBAAgBvlC,EAAEqlC,OAAO,MAAMrlC,EAAE4/C,cAAcx/C,EAAEJ,EAAEulC,cAAc3kC,GAAGL,EAAE4oB,MAAM/oB,EAAEG,EAAEoqD,MAAM/pD,EAAEL,EAAE2V,QAAQzV,EAAEL,EAAEM,IAAI,oBAAoBH,EAAEotD,oBAAoBntD,IAAIS,EAAE2+C,eAAe1+C,IACjfD,EAAEskC,gBAAgBvlC,EAAEqlC,OAAO,GAAG,oBAAoB9kC,EAAE0qD,yBAAyBzqD,IAAIS,EAAE2+C,eAAe1+C,IAAID,EAAEskC,gBAAgBvlC,EAAEqlC,OAAO,MAAMjlC,GAAE,EAAG,CAAC,OAAOwtD,GAAG3sD,EAAEjB,EAAEG,EAAEC,EAAEE,EAAED,EAAE,CACnK,SAASutD,GAAG3sD,EAAEjB,EAAEG,EAAEC,EAAEC,EAAEC,GAAGgtD,GAAGrsD,EAAEjB,GAAG,IAAIO,EAAE,KAAa,IAARP,EAAEqlC,OAAW,IAAIjlC,IAAIG,EAAE,OAAOF,GAAGm9C,GAAGx9C,EAAEG,GAAE,GAAIysD,GAAG3rD,EAAEjB,EAAEM,GAAGF,EAAEJ,EAAE6jC,UAAU2oB,GAAG7rC,QAAQ3gB,EAAE,IAAIQ,EAAED,GAAG,oBAAoBJ,EAAE0Y,yBAAyB,KAAKzY,EAAEuZ,SAAwI,OAA/H3Z,EAAEqlC,OAAO,EAAE,OAAOpkC,GAAGV,GAAGP,EAAE2lC,MAAMsb,GAAGjhD,EAAEiB,EAAE0kC,MAAM,KAAKrlC,GAAGN,EAAE2lC,MAAMsb,GAAGjhD,EAAE,KAAKQ,EAAEF,IAAIosD,GAAGzrD,EAAEjB,EAAEQ,EAAEF,GAAGN,EAAEulC,cAAcnlC,EAAEuqD,MAAMtqD,GAAGm9C,GAAGx9C,EAAEG,GAAE,GAAWH,EAAE2lC,KAAK,CAAC,SAASkoB,GAAG5sD,GAAG,IAAIjB,EAAEiB,EAAE4iC,UAAU7jC,EAAE8tD,eAAe3Q,GAAGl8C,EAAEjB,EAAE8tD,eAAe9tD,EAAE8tD,iBAAiB9tD,EAAEkW,SAASlW,EAAEkW,SAASinC,GAAGl8C,EAAEjB,EAAEkW,SAAQ,GAAI+tC,GAAGhjD,EAAEjB,EAAEyqC,cAAc,CAC5e,SAASsjB,GAAG9sD,EAAEjB,EAAEG,EAAEC,EAAEC,GAAuC,OAApCy/C,KAAKC,GAAG1/C,GAAGL,EAAEqlC,OAAO,IAAIqnB,GAAGzrD,EAAEjB,EAAEG,EAAEC,GAAUJ,EAAE2lC,KAAK,CAAC,IAaqLqoB,GAAGC,GAAGC,GAAGC,GAb1LC,GAAG,CAAC5oB,WAAW,KAAK6Z,YAAY,KAAKC,UAAU,GAAG,SAAS+O,GAAGptD,GAAG,MAAM,CAACgsD,UAAUhsD,EAAEisD,UAAU,KAAKC,YAAY,KAAK,CAClM,SAASmB,GAAGrtD,EAAEjB,EAAEG,GAAG,IAA0DK,EAAtDJ,EAAEJ,EAAEm/C,aAAa9+C,EAAE2I,GAAE2X,QAAQrgB,GAAE,EAAGC,EAAE,KAAa,IAARP,EAAEqlC,OAAqJ,IAAvI7kC,EAAED,KAAKC,GAAE,OAAOS,GAAG,OAAOA,EAAEskC,gBAAiB,KAAO,EAAFllC,IAASG,GAAEF,GAAE,EAAGN,EAAEqlC,QAAQ,KAAY,OAAOpkC,GAAG,OAAOA,EAAEskC,gBAAcllC,GAAG,GAAEq8C,GAAE1zC,GAAI,EAAF3I,GAAQ,OAAOY,EAA2B,OAAxBw+C,GAAGz/C,GAAwB,QAArBiB,EAAEjB,EAAEulC,gBAA2C,QAAftkC,EAAEA,EAAEukC,aAA4B,KAAY,EAAPxlC,EAAEw/C,MAAQx/C,EAAE8hD,MAAM,EAAE,OAAO7gD,EAAE0d,KAAK3e,EAAE8hD,MAAM,EAAE9hD,EAAE8hD,MAAM,WAAW,OAAKvhD,EAAEH,EAAEw9B,SAAS38B,EAAEb,EAAEmuD,SAAgBjuD,GAAGF,EAAEJ,EAAEw/C,KAAKl/C,EAAEN,EAAE2lC,MAAMplC,EAAE,CAACi/C,KAAK,SAAS5hB,SAASr9B,GAAG,KAAO,EAAFH,IAAM,OAAOE,GAAGA,EAAEohD,WAAW,EAAEphD,EAAE6+C,aAC7e5+C,GAAGD,EAAEkuD,GAAGjuD,EAAEH,EAAE,EAAE,MAAMa,EAAE6/C,GAAG7/C,EAAEb,EAAED,EAAE,MAAMG,EAAE8kC,OAAOplC,EAAEiB,EAAEmkC,OAAOplC,EAAEM,EAAEslC,QAAQ3kC,EAAEjB,EAAE2lC,MAAMrlC,EAAEN,EAAE2lC,MAAMJ,cAAc8oB,GAAGluD,GAAGH,EAAEulC,cAAc6oB,GAAGntD,GAAGwtD,GAAGzuD,EAAEO,IAAqB,GAAG,QAArBF,EAAEY,EAAEskC,gBAA2C,QAAf/kC,EAAEH,EAAEmlC,YAAqB,OAGpM,SAAYvkC,EAAEjB,EAAEG,EAAEC,EAAEC,EAAEC,EAAEC,GAAG,GAAGJ,EAAG,OAAW,IAARH,EAAEqlC,OAAiBrlC,EAAEqlC,QAAQ,IAAwBqpB,GAAGztD,EAAEjB,EAAEO,EAA3BH,EAAEmrD,GAAG9gD,MAAM5J,EAAE,SAAsB,OAAOb,EAAEulC,eAAqBvlC,EAAE2lC,MAAM1kC,EAAE0kC,MAAM3lC,EAAEqlC,OAAO,IAAI,OAAK/kC,EAAEF,EAAEmuD,SAASluD,EAAEL,EAAEw/C,KAAKp/C,EAAEouD,GAAG,CAAChP,KAAK,UAAU5hB,SAASx9B,EAAEw9B,UAAUv9B,EAAE,EAAE,OAAMC,EAAEwgD,GAAGxgD,EAAED,EAAEE,EAAE,OAAQ8kC,OAAO,EAAEjlC,EAAEglC,OAAOplC,EAAEM,EAAE8kC,OAAOplC,EAAEI,EAAEwlC,QAAQtlC,EAAEN,EAAE2lC,MAAMvlC,EAAE,KAAY,EAAPJ,EAAEw/C,OAASyB,GAAGjhD,EAAEiB,EAAE0kC,MAAM,KAAKplC,GAAGP,EAAE2lC,MAAMJ,cAAc8oB,GAAG9tD,GAAGP,EAAEulC,cAAc6oB,GAAU9tD,GAAE,GAAG,KAAY,EAAPN,EAAEw/C,MAAQ,OAAOkP,GAAGztD,EAAEjB,EAAEO,EAAE,MAAM,GAAG,OAAOF,EAAEse,KAAK,CAChd,GADidve,EAAEC,EAAEm1C,aAAan1C,EAAEm1C,YAAYmZ,QAC3e,IAAInuD,EAAEJ,EAAEwuD,KAA0C,OAArCxuD,EAAEI,EAA0CkuD,GAAGztD,EAAEjB,EAAEO,EAA/BH,EAAEmrD,GAAlBjrD,EAAEmK,MAAM5J,EAAE,MAAaT,OAAE,GAA0B,CAAwB,GAAvBI,EAAE,KAAKD,EAAEU,EAAEygD,YAAeK,IAAIvhD,EAAE,CAAK,GAAG,QAAPJ,EAAEgD,IAAc,CAAC,OAAO7C,GAAGA,GAAG,KAAK,EAAEF,EAAE,EAAE,MAAM,KAAK,GAAGA,EAAE,EAAE,MAAM,KAAK,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,SAAS,KAAK,SAAS,KAAK,SAASA,EAAE,GAAG,MAAM,KAAK,UAAUA,EAAE,UAAU,MAAM,QAAQA,EAAE,EAChd,KADkdA,EAAE,KAAKA,GAAGD,EAAE6nC,eAAe1nC,IAAI,EAAEF,IAC5eA,IAAIC,EAAEg/C,YAAYh/C,EAAEg/C,UAAUj/C,EAAEgiD,GAAGphD,EAAEZ,GAAG+mD,GAAGhnD,EAAEa,EAAEZ,GAAG,GAAG,CAA0B,OAAzBwuD,KAAgCH,GAAGztD,EAAEjB,EAAEO,EAAlCH,EAAEmrD,GAAG9gD,MAAM5J,EAAE,OAAyB,CAAC,MAAG,OAAOR,EAAEse,MAAY3e,EAAEqlC,OAAO,IAAIrlC,EAAE2lC,MAAM1kC,EAAE0kC,MAAM3lC,EAAE8uD,GAAGtmD,KAAK,KAAKvH,GAAGZ,EAAE0uD,YAAY/uD,EAAE,OAAKiB,EAAEX,EAAE++C,YAAYT,GAAG9C,GAAGz7C,EAAEm1C,aAAamJ,GAAG3+C,EAAE6+C,IAAE,EAAGC,GAAG,KAAK,OAAO79C,IAAIi9C,GAAGC,MAAME,GAAGH,GAAGC,MAAMG,GAAGJ,GAAGC,MAAMC,GAAGC,GAAGp9C,EAAEwqC,GAAG6S,GAAGr9C,EAAEm+C,SAAShB,GAAGp+C,GAAGA,EAAEyuD,GAAGzuD,EAAEI,EAAEw9B,UAAU59B,EAAEqlC,OAAO,KAAYrlC,EAAC,CALrKgvD,CAAG/tD,EAAEjB,EAAEO,EAAEH,EAAEI,EAAEH,EAAEF,GAAG,GAAGG,EAAE,CAACA,EAAEF,EAAEmuD,SAAShuD,EAAEP,EAAEw/C,KAAeh/C,GAAVH,EAAEY,EAAE0kC,OAAUC,QAAQ,IAAInlC,EAAE,CAAC++C,KAAK,SAAS5hB,SAASx9B,EAAEw9B,UAChF,OAD0F,KAAO,EAAFr9B,IAAMP,EAAE2lC,QAAQtlC,IAAGD,EAAEJ,EAAE2lC,OAAQ+b,WAAW,EAAEthD,EAAE++C,aAAa1+C,EAAET,EAAEi/C,UAAU,OAAO7+C,EAAEqgD,GAAGpgD,EAAEI,IAAKwuD,aAA4B,SAAf5uD,EAAE4uD,aAAuB,OAAOzuD,EAAEF,EAAEmgD,GAAGjgD,EAAEF,IAAIA,EAAEwgD,GAAGxgD,EAAEC,EAAEJ,EAAE,OAAQklC,OAAO,EAAG/kC,EAAE8kC,OACnfplC,EAAEI,EAAEglC,OAAOplC,EAAEI,EAAEwlC,QAAQtlC,EAAEN,EAAE2lC,MAAMvlC,EAAEA,EAAEE,EAAEA,EAAEN,EAAE2lC,MAA8BplC,EAAE,QAA1BA,EAAEU,EAAE0kC,MAAMJ,eAAyB8oB,GAAGluD,GAAG,CAAC8sD,UAAU1sD,EAAE0sD,UAAU9sD,EAAE+sD,UAAU,KAAKC,YAAY5sD,EAAE4sD,aAAa7sD,EAAEilC,cAAchlC,EAAED,EAAEohD,WAAWzgD,EAAEygD,YAAYvhD,EAAEH,EAAEulC,cAAc6oB,GAAUhuD,CAAC,CAAoO,OAAzNa,GAAVX,EAAEW,EAAE0kC,OAAUC,QAAQxlC,EAAEqgD,GAAGngD,EAAE,CAACk/C,KAAK,UAAU5hB,SAASx9B,EAAEw9B,WAAW,KAAY,EAAP59B,EAAEw/C,QAAUp/C,EAAE0hD,MAAM3hD,GAAGC,EAAEglC,OAAOplC,EAAEI,EAAEwlC,QAAQ,KAAK,OAAO3kC,IAAkB,QAAdd,EAAEH,EAAEi/C,YAAoBj/C,EAAEi/C,UAAU,CAACh+C,GAAGjB,EAAEqlC,OAAO,IAAIllC,EAAEuN,KAAKzM,IAAIjB,EAAE2lC,MAAMvlC,EAAEJ,EAAEulC,cAAc,KAAYnlC,CAAC,CACnd,SAASquD,GAAGxtD,EAAEjB,GAA8D,OAA3DA,EAAEwuD,GAAG,CAAChP,KAAK,UAAU5hB,SAAS59B,GAAGiB,EAAEu+C,KAAK,EAAE,OAAQpa,OAAOnkC,EAASA,EAAE0kC,MAAM3lC,CAAC,CAAC,SAAS0uD,GAAGztD,EAAEjB,EAAEG,EAAEC,GAAwG,OAArG,OAAOA,GAAG2/C,GAAG3/C,GAAG6gD,GAAGjhD,EAAEiB,EAAE0kC,MAAM,KAAKxlC,IAAGc,EAAEwtD,GAAGzuD,EAAEA,EAAEm/C,aAAavhB,WAAYyH,OAAO,EAAErlC,EAAEulC,cAAc,KAAYtkC,CAAC,CAGkJ,SAASiuD,GAAGjuD,EAAEjB,EAAEG,GAAGc,EAAE6gD,OAAO9hD,EAAE,IAAII,EAAEa,EAAEkkC,UAAU,OAAO/kC,IAAIA,EAAE0hD,OAAO9hD,GAAGyhD,GAAGxgD,EAAEmkC,OAAOplC,EAAEG,EAAE,CACxc,SAASgvD,GAAGluD,EAAEjB,EAAEG,EAAEC,EAAEC,GAAG,IAAIC,EAAEW,EAAEskC,cAAc,OAAOjlC,EAAEW,EAAEskC,cAAc,CAAC6pB,YAAYpvD,EAAEqvD,UAAU,KAAKC,mBAAmB,EAAEC,KAAKnvD,EAAEovD,KAAKrvD,EAAEsvD,SAASpvD,IAAIC,EAAE8uD,YAAYpvD,EAAEM,EAAE+uD,UAAU,KAAK/uD,EAAEgvD,mBAAmB,EAAEhvD,EAAEivD,KAAKnvD,EAAEE,EAAEkvD,KAAKrvD,EAAEG,EAAEmvD,SAASpvD,EAAE,CAC3O,SAASqvD,GAAGzuD,EAAEjB,EAAEG,GAAG,IAAIC,EAAEJ,EAAEm/C,aAAa9+C,EAAED,EAAEmkD,YAAYjkD,EAAEF,EAAEovD,KAAsC,GAAjC9C,GAAGzrD,EAAEjB,EAAEI,EAAEw9B,SAASz9B,GAAkB,KAAO,GAAtBC,EAAE4I,GAAE2X,UAAqBvgB,EAAI,EAAFA,EAAI,EAAEJ,EAAEqlC,OAAO,QAAQ,CAAC,GAAG,OAAOpkC,GAAG,KAAa,IAARA,EAAEokC,OAAWpkC,EAAE,IAAIA,EAAEjB,EAAE2lC,MAAM,OAAO1kC,GAAG,CAAC,GAAG,KAAKA,EAAE2pB,IAAI,OAAO3pB,EAAEskC,eAAe2pB,GAAGjuD,EAAEd,EAAEH,QAAQ,GAAG,KAAKiB,EAAE2pB,IAAIskC,GAAGjuD,EAAEd,EAAEH,QAAQ,GAAG,OAAOiB,EAAE0kC,MAAM,CAAC1kC,EAAE0kC,MAAMP,OAAOnkC,EAAEA,EAAEA,EAAE0kC,MAAM,QAAQ,CAAC,GAAG1kC,IAAIjB,EAAE,MAAMiB,EAAE,KAAK,OAAOA,EAAE2kC,SAAS,CAAC,GAAG,OAAO3kC,EAAEmkC,QAAQnkC,EAAEmkC,SAASplC,EAAE,MAAMiB,EAAEA,EAAEA,EAAEmkC,MAAM,CAACnkC,EAAE2kC,QAAQR,OAAOnkC,EAAEmkC,OAAOnkC,EAAEA,EAAE2kC,OAAO,CAACxlC,GAAG,CAAC,CAAQ,GAAPs8C,GAAE1zC,GAAE5I,GAAM,KAAY,EAAPJ,EAAEw/C,MAAQx/C,EAAEulC,cAC/e,UAAU,OAAOllC,GAAG,IAAK,WAAqB,IAAVF,EAAEH,EAAE2lC,MAAUtlC,EAAE,KAAK,OAAOF,GAAiB,QAAdc,EAAEd,EAAEglC,YAAoB,OAAOmf,GAAGrjD,KAAKZ,EAAEF,GAAGA,EAAEA,EAAEylC,QAAY,QAAJzlC,EAAEE,IAAYA,EAAEL,EAAE2lC,MAAM3lC,EAAE2lC,MAAM,OAAOtlC,EAAEF,EAAEylC,QAAQzlC,EAAEylC,QAAQ,MAAMupB,GAAGnvD,GAAE,EAAGK,EAAEF,EAAEG,GAAG,MAAM,IAAK,YAA6B,IAAjBH,EAAE,KAAKE,EAAEL,EAAE2lC,MAAU3lC,EAAE2lC,MAAM,KAAK,OAAOtlC,GAAG,CAAe,GAAG,QAAjBY,EAAEZ,EAAE8kC,YAAuB,OAAOmf,GAAGrjD,GAAG,CAACjB,EAAE2lC,MAAMtlC,EAAE,KAAK,CAACY,EAAEZ,EAAEulC,QAAQvlC,EAAEulC,QAAQzlC,EAAEA,EAAEE,EAAEA,EAAEY,CAAC,CAACkuD,GAAGnvD,GAAE,EAAGG,EAAE,KAAKG,GAAG,MAAM,IAAK,WAAW6uD,GAAGnvD,GAAE,EAAG,KAAK,UAAK,GAAQ,MAAM,QAAQA,EAAEulC,cAAc,KAAK,OAAOvlC,EAAE2lC,KAAK,CAC7d,SAAS6nB,GAAGvsD,EAAEjB,GAAG,KAAY,EAAPA,EAAEw/C,OAAS,OAAOv+C,IAAIA,EAAEkkC,UAAU,KAAKnlC,EAAEmlC,UAAU,KAAKnlC,EAAEqlC,OAAO,EAAE,CAAC,SAASunB,GAAG3rD,EAAEjB,EAAEG,GAAyD,GAAtD,OAAOc,IAAIjB,EAAE4hD,aAAa3gD,EAAE2gD,cAAc8B,IAAI1jD,EAAE8hD,MAAS,KAAK3hD,EAAEH,EAAE0hD,YAAY,OAAO,KAAK,GAAG,OAAOzgD,GAAGjB,EAAE2lC,QAAQ1kC,EAAE0kC,MAAM,MAAMl7B,MAAM5J,EAAE,MAAM,GAAG,OAAOb,EAAE2lC,MAAM,CAA4C,IAAjCxlC,EAAEsgD,GAAZx/C,EAAEjB,EAAE2lC,MAAa1kC,EAAEk+C,cAAcn/C,EAAE2lC,MAAMxlC,EAAMA,EAAEilC,OAAOplC,EAAE,OAAOiB,EAAE2kC,SAAS3kC,EAAEA,EAAE2kC,SAAQzlC,EAAEA,EAAEylC,QAAQ6a,GAAGx/C,EAAEA,EAAEk+C,eAAgB/Z,OAAOplC,EAAEG,EAAEylC,QAAQ,IAAI,CAAC,OAAO5lC,EAAE2lC,KAAK,CAO9a,SAASgqB,GAAG1uD,EAAEjB,GAAG,IAAI6+C,GAAE,OAAO59C,EAAEwuD,UAAU,IAAK,SAASzvD,EAAEiB,EAAEuuD,KAAK,IAAI,IAAIrvD,EAAE,KAAK,OAAOH,GAAG,OAAOA,EAAEmlC,YAAYhlC,EAAEH,GAAGA,EAAEA,EAAE4lC,QAAQ,OAAOzlC,EAAEc,EAAEuuD,KAAK,KAAKrvD,EAAEylC,QAAQ,KAAK,MAAM,IAAK,YAAYzlC,EAAEc,EAAEuuD,KAAK,IAAI,IAAIpvD,EAAE,KAAK,OAAOD,GAAG,OAAOA,EAAEglC,YAAY/kC,EAAED,GAAGA,EAAEA,EAAEylC,QAAQ,OAAOxlC,EAAEJ,GAAG,OAAOiB,EAAEuuD,KAAKvuD,EAAEuuD,KAAK,KAAKvuD,EAAEuuD,KAAK5pB,QAAQ,KAAKxlC,EAAEwlC,QAAQ,KAAK,CAC5U,SAASriC,GAAEtC,GAAG,IAAIjB,EAAE,OAAOiB,EAAEkkC,WAAWlkC,EAAEkkC,UAAUQ,QAAQ1kC,EAAE0kC,MAAMxlC,EAAE,EAAEC,EAAE,EAAE,GAAGJ,EAAE,IAAI,IAAIK,EAAEY,EAAE0kC,MAAM,OAAOtlC,GAAGF,GAAGE,EAAEyhD,MAAMzhD,EAAEqhD,WAAWthD,GAAkB,SAAfC,EAAE4uD,aAAsB7uD,GAAW,SAARC,EAAEglC,MAAehlC,EAAE+kC,OAAOnkC,EAAEZ,EAAEA,EAAEulC,aAAa,IAAIvlC,EAAEY,EAAE0kC,MAAM,OAAOtlC,GAAGF,GAAGE,EAAEyhD,MAAMzhD,EAAEqhD,WAAWthD,GAAGC,EAAE4uD,aAAa7uD,GAAGC,EAAEglC,MAAMhlC,EAAE+kC,OAAOnkC,EAAEZ,EAAEA,EAAEulC,QAAyC,OAAjC3kC,EAAEguD,cAAc7uD,EAAEa,EAAEygD,WAAWvhD,EAASH,CAAC,CAC7V,SAAS4vD,GAAG3uD,EAAEjB,EAAEG,GAAG,IAAIC,EAAEJ,EAAEm/C,aAAmB,OAANT,GAAG1+C,GAAUA,EAAE4qB,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,GAAG,OAAOrnB,GAAEvD,GAAG,KAAK,KAAK,EAUtD,KAAK,GAAG,OAAOi9C,GAAGj9C,EAAEoB,OAAO87C,KAAK35C,GAAEvD,GAAG,KAVqD,KAAK,EAA2Q,OAAzQI,EAAEJ,EAAE6jC,UAAUsgB,KAAK1H,GAAEG,IAAIH,GAAE1yC,IAAG06C,KAAKrkD,EAAE0tD,iBAAiB1tD,EAAE8V,QAAQ9V,EAAE0tD,eAAe1tD,EAAE0tD,eAAe,MAAS,OAAO7sD,GAAG,OAAOA,EAAE0kC,QAAMga,GAAG3/C,GAAGA,EAAEqlC,OAAO,EAAE,OAAOpkC,GAAGA,EAAEskC,cAAciF,cAAc,KAAa,IAARxqC,EAAEqlC,SAAarlC,EAAEqlC,OAAO,KAAK,OAAOyZ,KAAK+Q,GAAG/Q,IAAIA,GAAG,QAAOmP,GAAGhtD,EAAEjB,GAAGuD,GAAEvD,GAAU,KAAK,KAAK,EAAEqkD,GAAGrkD,GAAG,IAAIK,EAAE2jD,GAAGD,GAAGpjC,SAC7e,GAATxgB,EAAEH,EAAEoB,KAAQ,OAAOH,GAAG,MAAMjB,EAAE6jC,UAAUqqB,GAAGjtD,EAAEjB,EAAEG,EAAEC,EAAEC,GAAGY,EAAEi/C,MAAMlgD,EAAEkgD,MAAMlgD,EAAEqlC,OAAO,IAAIrlC,EAAEqlC,OAAO,aAAa,CAAC,IAAIjlC,EAAE,CAAC,GAAG,OAAOJ,EAAE6jC,UAAU,MAAMp5B,MAAM5J,EAAE,MAAW,OAAL0C,GAAEvD,GAAU,IAAI,CAAkB,GAAjBiB,EAAE+iD,GAAGH,GAAGljC,SAAYg/B,GAAG3/C,GAAG,CAACI,EAAEJ,EAAE6jC,UAAU1jC,EAAEH,EAAEoB,KAAK,IAAId,EAAEN,EAAE4/C,cAA+C,OAAjCx/C,EAAE87C,IAAIl8C,EAAEI,EAAE+7C,IAAI77C,EAAEW,EAAE,KAAY,EAAPjB,EAAEw/C,MAAer/C,GAAG,IAAK,SAAS+C,GAAE,SAAS9C,GAAG8C,GAAE,QAAQ9C,GAAG,MAAM,IAAK,SAAS,IAAK,SAAS,IAAK,QAAQ8C,GAAE,OAAO9C,GAAG,MAAM,IAAK,QAAQ,IAAK,QAAQ,IAAIC,EAAE,EAAEA,EAAE44C,GAAG92C,OAAO9B,IAAI6C,GAAE+1C,GAAG54C,GAAGD,GAAG,MAAM,IAAK,SAAS8C,GAAE,QAAQ9C,GAAG,MAAM,IAAK,MAAM,IAAK,QAAQ,IAAK,OAAO8C,GAAE,QACnhB9C,GAAG8C,GAAE,OAAO9C,GAAG,MAAM,IAAK,UAAU8C,GAAE,SAAS9C,GAAG,MAAM,IAAK,QAAQy8B,EAAGz8B,EAAEE,GAAG4C,GAAE,UAAU9C,GAAG,MAAM,IAAK,SAASA,EAAEu8B,cAAc,CAACmzB,cAAcxvD,EAAEyvD,UAAU7sD,GAAE,UAAU9C,GAAG,MAAM,IAAK,WAAWy9B,GAAGz9B,EAAEE,GAAG4C,GAAE,UAAU9C,GAAkB,IAAI,IAAIG,KAAvBwiC,GAAG5iC,EAAEG,GAAGD,EAAE,KAAkBC,EAAE,GAAGA,EAAEoV,eAAenV,GAAG,CAAC,IAAIC,EAAEF,EAAEC,GAAG,aAAaA,EAAE,kBAAkBC,EAAEJ,EAAE49B,cAAcx9B,KAAI,IAAKF,EAAE0vD,0BAA0BjV,GAAG36C,EAAE49B,YAAYx9B,EAAES,GAAGZ,EAAE,CAAC,WAAWG,IAAI,kBAAkBA,GAAGJ,EAAE49B,cAAc,GAAGx9B,KAAI,IAAKF,EAAE0vD,0BAA0BjV,GAAG36C,EAAE49B,YAC1ex9B,EAAES,GAAGZ,EAAE,CAAC,WAAW,GAAGG,IAAIo3B,EAAGliB,eAAenV,IAAI,MAAMC,GAAG,aAAaD,GAAG2C,GAAE,SAAS9C,EAAE,CAAC,OAAOD,GAAG,IAAK,QAAQ07B,EAAGz7B,GAAG+8B,EAAG/8B,EAAEE,GAAE,GAAI,MAAM,IAAK,WAAWu7B,EAAGz7B,GAAG29B,GAAG39B,GAAG,MAAM,IAAK,SAAS,IAAK,SAAS,MAAM,QAAQ,oBAAoBE,EAAE2vD,UAAU7vD,EAAE8vD,QAAQlV,IAAI56C,EAAEC,EAAEL,EAAEwiD,YAAYpiD,EAAE,OAAOA,IAAIJ,EAAEqlC,OAAO,EAAE,KAAK,CAAC9kC,EAAE,IAAIF,EAAEmuB,SAASnuB,EAAEA,EAAE+8B,cAAc,iCAAiCn8B,IAAIA,EAAEg9B,GAAG99B,IAAI,iCAAiCc,EAAE,WAAWd,IAAGc,EAAEV,EAAE23B,cAAc,QAASoG,UAAU,qBAAuBr9B,EAAEA,EAAEu9B,YAAYv9B,EAAEs9B,aAC/f,kBAAkBn+B,EAAE6iC,GAAGhiC,EAAEV,EAAE23B,cAAc/3B,EAAE,CAAC8iC,GAAG7iC,EAAE6iC,MAAMhiC,EAAEV,EAAE23B,cAAc/3B,GAAG,WAAWA,IAAII,EAAEU,EAAEb,EAAE2vD,SAASxvD,EAAEwvD,UAAS,EAAG3vD,EAAEwe,OAAOre,EAAEqe,KAAKxe,EAAEwe,QAAQ3d,EAAEV,EAAE4vD,gBAAgBlvD,EAAEd,GAAGc,EAAEi7C,IAAIl8C,EAAEiB,EAAEk7C,IAAI/7C,EAAE4tD,GAAG/sD,EAAEjB,GAAE,GAAG,GAAIA,EAAE6jC,UAAU5iC,EAAEA,EAAE,CAAW,OAAVV,EAAEyiC,GAAG7iC,EAAEC,GAAUD,GAAG,IAAK,SAAS+C,GAAE,SAASjC,GAAGiC,GAAE,QAAQjC,GAAGZ,EAAED,EAAE,MAAM,IAAK,SAAS,IAAK,SAAS,IAAK,QAAQ8C,GAAE,OAAOjC,GAAGZ,EAAED,EAAE,MAAM,IAAK,QAAQ,IAAK,QAAQ,IAAIC,EAAE,EAAEA,EAAE44C,GAAG92C,OAAO9B,IAAI6C,GAAE+1C,GAAG54C,GAAGY,GAAGZ,EAAED,EAAE,MAAM,IAAK,SAAS8C,GAAE,QAAQjC,GAAGZ,EAAED,EAAE,MAAM,IAAK,MAAM,IAAK,QAAQ,IAAK,OAAO8C,GAAE,QAClfjC,GAAGiC,GAAE,OAAOjC,GAAGZ,EAAED,EAAE,MAAM,IAAK,UAAU8C,GAAE,SAASjC,GAAGZ,EAAED,EAAE,MAAM,IAAK,QAAQy8B,EAAG57B,EAAEb,GAAGC,EAAEo8B,EAAGx7B,EAAEb,GAAG8C,GAAE,UAAUjC,GAAG,MAAM,IAAK,SAAiL,QAAQZ,EAAED,QAAxK,IAAK,SAASa,EAAE07B,cAAc,CAACmzB,cAAc1vD,EAAE2vD,UAAU1vD,EAAEmJ,EAAE,CAAC,EAAEpJ,EAAE,CAAC4U,WAAM,IAAS9R,GAAE,UAAUjC,GAAG,MAAM,IAAK,WAAW48B,GAAG58B,EAAEb,GAAGC,EAAEq9B,GAAGz8B,EAAEb,GAAG8C,GAAE,UAAUjC,GAAiC,IAAIX,KAAhByiC,GAAG5iC,EAAEE,GAAGG,EAAEH,EAAa,GAAGG,EAAEkV,eAAepV,GAAG,CAAC,IAAIG,EAAED,EAAEF,GAAG,UAAUA,EAAEuhC,GAAG5gC,EAAER,GAAG,4BAA4BH,EAAuB,OAApBG,EAAEA,EAAEA,EAAE26C,YAAO,IAAgBhd,GAAGn9B,EAAER,GAAI,aAAaH,EAAE,kBAAkBG,GAAG,aAC7eN,GAAG,KAAKM,IAAIm+B,GAAG39B,EAAER,GAAG,kBAAkBA,GAAGm+B,GAAG39B,EAAE,GAAGR,GAAG,mCAAmCH,GAAG,6BAA6BA,GAAG,cAAcA,IAAIs3B,EAAGliB,eAAepV,GAAG,MAAMG,GAAG,aAAaH,GAAG4C,GAAE,SAASjC,GAAG,MAAMR,GAAGu4B,EAAG/3B,EAAEX,EAAEG,EAAEF,GAAG,CAAC,OAAOJ,GAAG,IAAK,QAAQ07B,EAAG56B,GAAGk8B,EAAGl8B,EAAEb,GAAE,GAAI,MAAM,IAAK,WAAWy7B,EAAG56B,GAAG88B,GAAG98B,GAAG,MAAM,IAAK,SAAS,MAAMb,EAAE4U,OAAO/T,EAAEq4B,aAAa,QAAQ,GAAGoC,EAAGt7B,EAAE4U,QAAQ,MAAM,IAAK,SAAS/T,EAAE8uD,WAAW3vD,EAAE2vD,SAAmB,OAAVzvD,EAAEF,EAAE4U,OAAcsoB,GAAGr8B,IAAIb,EAAE2vD,SAASzvD,GAAE,GAAI,MAAMF,EAAE8yB,cAAcoK,GAAGr8B,IAAIb,EAAE2vD,SAAS3vD,EAAE8yB,cAClf,GAAI,MAAM,QAAQ,oBAAoB7yB,EAAE4vD,UAAUhvD,EAAEivD,QAAQlV,IAAI,OAAO76C,GAAG,IAAK,SAAS,IAAK,QAAQ,IAAK,SAAS,IAAK,WAAWC,IAAIA,EAAEgwD,UAAU,MAAMnvD,EAAE,IAAK,MAAMb,GAAE,EAAG,MAAMa,EAAE,QAAQb,GAAE,EAAG,CAACA,IAAIJ,EAAEqlC,OAAO,EAAE,CAAC,OAAOrlC,EAAEkgD,MAAMlgD,EAAEqlC,OAAO,IAAIrlC,EAAEqlC,OAAO,QAAQ,CAAM,OAAL9hC,GAAEvD,GAAU,KAAK,KAAK,EAAE,GAAGiB,GAAG,MAAMjB,EAAE6jC,UAAUsqB,GAAGltD,EAAEjB,EAAEiB,EAAE2+C,cAAcx/C,OAAO,CAAC,GAAG,kBAAkBA,GAAG,OAAOJ,EAAE6jC,UAAU,MAAMp5B,MAAM5J,EAAE,MAAsC,GAAhCV,EAAE6jD,GAAGD,GAAGpjC,SAASqjC,GAAGH,GAAGljC,SAAYg/B,GAAG3/C,GAAG,CAAyC,GAAxCI,EAAEJ,EAAE6jC,UAAU1jC,EAAEH,EAAE4/C,cAAcx/C,EAAE87C,IAAIl8C,GAAKM,EAAEF,EAAE0+B,YAAY3+B,IAC/e,QADofc,EACvf09C,IAAY,OAAO19C,EAAE2pB,KAAK,KAAK,EAAEmwB,GAAG36C,EAAE0+B,UAAU3+B,EAAE,KAAY,EAAPc,EAAEu+C,OAAS,MAAM,KAAK,GAAE,IAAKv+C,EAAE2+C,cAAcoQ,0BAA0BjV,GAAG36C,EAAE0+B,UAAU3+B,EAAE,KAAY,EAAPc,EAAEu+C,OAASl/C,IAAIN,EAAEqlC,OAAO,EAAE,MAAMjlC,GAAG,IAAID,EAAEquB,SAASruB,EAAEA,EAAEi9B,eAAeizB,eAAejwD,IAAK87C,IAAIl8C,EAAEA,EAAE6jC,UAAUzjC,CAAC,CAAM,OAALmD,GAAEvD,GAAU,KAAK,KAAK,GAA0B,GAAvBy8C,GAAEzzC,IAAG5I,EAAEJ,EAAEulC,cAAiB,OAAOtkC,GAAG,OAAOA,EAAEskC,eAAe,OAAOtkC,EAAEskC,cAAcC,WAAW,CAAC,GAAGqZ,IAAG,OAAOD,IAAI,KAAY,EAAP5+C,EAAEw/C,OAAS,KAAa,IAARx/C,EAAEqlC,OAAWwa,KAAKC,KAAK9/C,EAAEqlC,OAAO,MAAM/kC,GAAE,OAAQ,GAAGA,EAAEq/C,GAAG3/C,GAAG,OAAOI,GAAG,OAAOA,EAAEolC,WAAW,CAAC,GAAG,OAC5fvkC,EAAE,CAAC,IAAIX,EAAE,MAAMmK,MAAM5J,EAAE,MAAqD,KAA7BP,EAAE,QAApBA,EAAEN,EAAEulC,eAAyBjlC,EAAEklC,WAAW,MAAW,MAAM/6B,MAAM5J,EAAE,MAAMP,EAAE47C,IAAIl8C,CAAC,MAAM8/C,KAAK,KAAa,IAAR9/C,EAAEqlC,SAAarlC,EAAEulC,cAAc,MAAMvlC,EAAEqlC,OAAO,EAAE9hC,GAAEvD,GAAGM,GAAE,CAAE,MAAM,OAAOw+C,KAAK+Q,GAAG/Q,IAAIA,GAAG,MAAMx+C,GAAE,EAAG,IAAIA,EAAE,OAAe,MAARN,EAAEqlC,MAAYrlC,EAAE,IAAI,CAAC,OAAG,KAAa,IAARA,EAAEqlC,QAAkBrlC,EAAE8hD,MAAM3hD,EAAEH,KAAEI,EAAE,OAAOA,MAAO,OAAOa,GAAG,OAAOA,EAAEskC,gBAAgBnlC,IAAIJ,EAAE2lC,MAAMN,OAAO,KAAK,KAAY,EAAPrlC,EAAEw/C,QAAU,OAAOv+C,GAAG,KAAe,EAAV+H,GAAE2X,SAAW,IAAI2vC,KAAIA,GAAE,GAAGzB,OAAO,OAAO7uD,EAAEwiD,cAAcxiD,EAAEqlC,OAAO,GAAG9hC,GAAEvD,GAAU,MAAK,KAAK,EAAE,OAAOmkD,KACrf8J,GAAGhtD,EAAEjB,GAAG,OAAOiB,GAAG04C,GAAG35C,EAAE6jC,UAAU4G,eAAelnC,GAAEvD,GAAG,KAAK,KAAK,GAAG,OAAOuhD,GAAGvhD,EAAEoB,KAAKk6B,UAAU/3B,GAAEvD,GAAG,KAA+C,KAAK,GAA0B,GAAvBy8C,GAAEzzC,IAAwB,QAArB1I,EAAEN,EAAEulC,eAA0B,OAAOhiC,GAAEvD,GAAG,KAAuC,GAAlCI,EAAE,KAAa,IAARJ,EAAEqlC,OAA4B,QAAjB9kC,EAAED,EAAE+uD,WAAsB,GAAGjvD,EAAEuvD,GAAGrvD,GAAE,OAAQ,CAAC,GAAG,IAAIgwD,IAAG,OAAOrvD,GAAG,KAAa,IAARA,EAAEokC,OAAW,IAAIpkC,EAAEjB,EAAE2lC,MAAM,OAAO1kC,GAAG,CAAS,GAAG,QAAXV,EAAE+jD,GAAGrjD,IAAe,CAAmG,IAAlGjB,EAAEqlC,OAAO,IAAIsqB,GAAGrvD,GAAE,GAAoB,QAAhBF,EAAEG,EAAEiiD,eAAuBxiD,EAAEwiD,YAAYpiD,EAAEJ,EAAEqlC,OAAO,GAAGrlC,EAAEivD,aAAa,EAAE7uD,EAAED,EAAMA,EAAEH,EAAE2lC,MAAM,OAAOxlC,GAAOc,EAAEb,GAANE,EAAEH,GAAQklC,OAAO,SAC/d,QAAd9kC,EAAED,EAAE6kC,YAAoB7kC,EAAEohD,WAAW,EAAEphD,EAAEwhD,MAAM7gD,EAAEX,EAAEqlC,MAAM,KAAKrlC,EAAE2uD,aAAa,EAAE3uD,EAAEs/C,cAAc,KAAKt/C,EAAEilC,cAAc,KAAKjlC,EAAEkiD,YAAY,KAAKliD,EAAEshD,aAAa,KAAKthD,EAAEujC,UAAU,OAAOvjC,EAAEohD,WAAWnhD,EAAEmhD,WAAWphD,EAAEwhD,MAAMvhD,EAAEuhD,MAAMxhD,EAAEqlC,MAAMplC,EAAEolC,MAAMrlC,EAAE2uD,aAAa,EAAE3uD,EAAE2+C,UAAU,KAAK3+C,EAAEs/C,cAAcr/C,EAAEq/C,cAAct/C,EAAEilC,cAAchlC,EAAEglC,cAAcjlC,EAAEkiD,YAAYjiD,EAAEiiD,YAAYliD,EAAEc,KAAKb,EAAEa,KAAKH,EAAEV,EAAEqhD,aAAathD,EAAEshD,aAAa,OAAO3gD,EAAE,KAAK,CAAC6gD,MAAM7gD,EAAE6gD,MAAMD,aAAa5gD,EAAE4gD,eAAe1hD,EAAEA,EAAEylC,QAA2B,OAAnB8W,GAAE1zC,GAAY,EAAVA,GAAE2X,QAAU,GAAU3gB,EAAE2lC,KAAK,CAAC1kC,EAClgBA,EAAE2kC,OAAO,CAAC,OAAOtlC,EAAEkvD,MAAMjpB,KAAIgqB,KAAKvwD,EAAEqlC,OAAO,IAAIjlC,GAAE,EAAGuvD,GAAGrvD,GAAE,GAAIN,EAAE8hD,MAAM,QAAQ,KAAK,CAAC,IAAI1hD,EAAE,GAAW,QAARa,EAAEqjD,GAAG/jD,KAAa,GAAGP,EAAEqlC,OAAO,IAAIjlC,GAAE,EAAmB,QAAhBD,EAAEc,EAAEuhD,eAAuBxiD,EAAEwiD,YAAYriD,EAAEH,EAAEqlC,OAAO,GAAGsqB,GAAGrvD,GAAE,GAAI,OAAOA,EAAEkvD,MAAM,WAAWlvD,EAAEmvD,WAAWlvD,EAAE4kC,YAAY0Z,GAAE,OAAOt7C,GAAEvD,GAAG,UAAU,EAAEumC,KAAIjmC,EAAEgvD,mBAAmBiB,IAAI,aAAapwD,IAAIH,EAAEqlC,OAAO,IAAIjlC,GAAE,EAAGuvD,GAAGrvD,GAAE,GAAIN,EAAE8hD,MAAM,SAASxhD,EAAE8uD,aAAa7uD,EAAEqlC,QAAQ5lC,EAAE2lC,MAAM3lC,EAAE2lC,MAAMplC,IAAa,QAATJ,EAAEG,EAAEivD,MAAcpvD,EAAEylC,QAAQrlC,EAAEP,EAAE2lC,MAAMplC,EAAED,EAAEivD,KAAKhvD,EAAE,CAAC,OAAG,OAAOD,EAAEkvD,MAAYxvD,EAAEM,EAAEkvD,KAAKlvD,EAAE+uD,UAC9ervD,EAAEM,EAAEkvD,KAAKxvD,EAAE4lC,QAAQtlC,EAAEgvD,mBAAmB/oB,KAAIvmC,EAAE4lC,QAAQ,KAAKzlC,EAAE6I,GAAE2X,QAAQ+7B,GAAE1zC,GAAE5I,EAAI,EAAFD,EAAI,EAAI,EAAFA,GAAKH,IAAEuD,GAAEvD,GAAU,MAAK,KAAK,GAAG,KAAK,GAAG,OAAOwwD,KAAKpwD,EAAE,OAAOJ,EAAEulC,cAAc,OAAOtkC,GAAG,OAAOA,EAAEskC,gBAAgBnlC,IAAIJ,EAAEqlC,OAAO,MAAMjlC,GAAG,KAAY,EAAPJ,EAAEw/C,MAAQ,KAAQ,WAAH6N,MAAiB9pD,GAAEvD,GAAkB,EAAfA,EAAEivD,eAAiBjvD,EAAEqlC,OAAO,OAAO9hC,GAAEvD,GAAG,KAAK,KAAK,GAAe,KAAK,GAAG,OAAO,KAAK,MAAMyK,MAAM5J,EAAE,IAAIb,EAAE4qB,KAAM,CAClX,SAAS6lC,GAAGxvD,EAAEjB,GAAS,OAAN0+C,GAAG1+C,GAAUA,EAAE4qB,KAAK,KAAK,EAAE,OAAOqyB,GAAGj9C,EAAEoB,OAAO87C,KAAiB,OAAZj8C,EAAEjB,EAAEqlC,QAAerlC,EAAEqlC,OAAS,MAAHpkC,EAAS,IAAIjB,GAAG,KAAK,KAAK,EAAE,OAAOmkD,KAAK1H,GAAEG,IAAIH,GAAE1yC,IAAG06C,KAAe,KAAO,OAAjBxjD,EAAEjB,EAAEqlC,SAAqB,KAAO,IAAFpkC,IAAQjB,EAAEqlC,OAAS,MAAHpkC,EAAS,IAAIjB,GAAG,KAAK,KAAK,EAAE,OAAOqkD,GAAGrkD,GAAG,KAAK,KAAK,GAA0B,GAAvBy8C,GAAEzzC,IAAwB,QAArB/H,EAAEjB,EAAEulC,gBAA2B,OAAOtkC,EAAEukC,WAAW,CAAC,GAAG,OAAOxlC,EAAEmlC,UAAU,MAAM16B,MAAM5J,EAAE,MAAMi/C,IAAI,CAAW,OAAS,OAAnB7+C,EAAEjB,EAAEqlC,QAAsBrlC,EAAEqlC,OAAS,MAAHpkC,EAAS,IAAIjB,GAAG,KAAK,KAAK,GAAG,OAAOy8C,GAAEzzC,IAAG,KAAK,KAAK,EAAE,OAAOm7C,KAAK,KAAK,KAAK,GAAG,OAAO5C,GAAGvhD,EAAEoB,KAAKk6B,UAAU,KAAK,KAAK,GAAG,KAAK,GAAG,OAAOk1B,KAC1gB,KAAyB,QAAQ,OAAO,KAAK,CArB7CxC,GAAG,SAAS/sD,EAAEjB,GAAG,IAAI,IAAIG,EAAEH,EAAE2lC,MAAM,OAAOxlC,GAAG,CAAC,GAAG,IAAIA,EAAEyqB,KAAK,IAAIzqB,EAAEyqB,IAAI3pB,EAAEw9B,YAAYt+B,EAAE0jC,gBAAgB,GAAG,IAAI1jC,EAAEyqB,KAAK,OAAOzqB,EAAEwlC,MAAM,CAACxlC,EAAEwlC,MAAMP,OAAOjlC,EAAEA,EAAEA,EAAEwlC,MAAM,QAAQ,CAAC,GAAGxlC,IAAIH,EAAE,MAAM,KAAK,OAAOG,EAAEylC,SAAS,CAAC,GAAG,OAAOzlC,EAAEilC,QAAQjlC,EAAEilC,SAASplC,EAAE,OAAOG,EAAEA,EAAEilC,MAAM,CAACjlC,EAAEylC,QAAQR,OAAOjlC,EAAEilC,OAAOjlC,EAAEA,EAAEylC,OAAO,CAAC,EAAEqoB,GAAG,WAAW,EACxTC,GAAG,SAASjtD,EAAEjB,EAAEG,EAAEC,GAAG,IAAIC,EAAEY,EAAE2+C,cAAc,GAAGv/C,IAAID,EAAE,CAACa,EAAEjB,EAAE6jC,UAAUmgB,GAAGH,GAAGljC,SAAS,IAA4RpgB,EAAxRD,EAAE,KAAK,OAAOH,GAAG,IAAK,QAAQE,EAAEo8B,EAAGx7B,EAAEZ,GAAGD,EAAEq8B,EAAGx7B,EAAEb,GAAGE,EAAE,GAAG,MAAM,IAAK,SAASD,EAAEmJ,EAAE,CAAC,EAAEnJ,EAAE,CAAC2U,WAAM,IAAS5U,EAAEoJ,EAAE,CAAC,EAAEpJ,EAAE,CAAC4U,WAAM,IAAS1U,EAAE,GAAG,MAAM,IAAK,WAAWD,EAAEq9B,GAAGz8B,EAAEZ,GAAGD,EAAEs9B,GAAGz8B,EAAEb,GAAGE,EAAE,GAAG,MAAM,QAAQ,oBAAoBD,EAAE4vD,SAAS,oBAAoB7vD,EAAE6vD,UAAUhvD,EAAEivD,QAAQlV,IAAyB,IAAIt6C,KAAzBqiC,GAAG5iC,EAAEC,GAASD,EAAE,KAAcE,EAAE,IAAID,EAAEsV,eAAehV,IAAIL,EAAEqV,eAAehV,IAAI,MAAML,EAAEK,GAAG,GAAG,UAAUA,EAAE,CAAC,IAAIF,EAAEH,EAAEK,GAAG,IAAIH,KAAKC,EAAEA,EAAEkV,eAAenV,KACjfJ,IAAIA,EAAE,CAAC,GAAGA,EAAEI,GAAG,GAAG,KAAK,4BAA4BG,GAAG,aAAaA,GAAG,mCAAmCA,GAAG,6BAA6BA,GAAG,cAAcA,IAAIk3B,EAAGliB,eAAehV,GAAGJ,IAAIA,EAAE,KAAKA,EAAEA,GAAG,IAAIoN,KAAKhN,EAAE,OAAO,IAAIA,KAAKN,EAAE,CAAC,IAAIK,EAAEL,EAAEM,GAAyB,GAAtBF,EAAE,MAAMH,EAAEA,EAAEK,QAAG,EAAUN,EAAEsV,eAAehV,IAAID,IAAID,IAAI,MAAMC,GAAG,MAAMD,GAAG,GAAG,UAAUE,EAAE,GAAGF,EAAE,CAAC,IAAID,KAAKC,GAAGA,EAAEkV,eAAenV,IAAIE,GAAGA,EAAEiV,eAAenV,KAAKJ,IAAIA,EAAE,CAAC,GAAGA,EAAEI,GAAG,IAAI,IAAIA,KAAKE,EAAEA,EAAEiV,eAAenV,IAAIC,EAAED,KAAKE,EAAEF,KAAKJ,IAAIA,EAAE,CAAC,GAAGA,EAAEI,GAAGE,EAAEF,GAAG,MAAMJ,IAAIG,IAAIA,EAAE,IAAIA,EAAEoN,KAAKhN,EACpfP,IAAIA,EAAEM,MAAM,4BAA4BC,GAAGD,EAAEA,EAAEA,EAAE26C,YAAO,EAAO56C,EAAEA,EAAEA,EAAE46C,YAAO,EAAO,MAAM36C,GAAGD,IAAIC,IAAIH,EAAEA,GAAG,IAAIoN,KAAKhN,EAAED,IAAI,aAAaC,EAAE,kBAAkBD,GAAG,kBAAkBA,IAAIH,EAAEA,GAAG,IAAIoN,KAAKhN,EAAE,GAAGD,GAAG,mCAAmCC,GAAG,6BAA6BA,IAAIk3B,EAAGliB,eAAehV,IAAI,MAAMD,GAAG,aAAaC,GAAGwC,GAAE,SAASjC,GAAGX,GAAGE,IAAIC,IAAIH,EAAE,MAAMA,EAAEA,GAAG,IAAIoN,KAAKhN,EAAED,GAAG,CAACN,IAAIG,EAAEA,GAAG,IAAIoN,KAAK,QAAQvN,GAAG,IAAIO,EAAEJ,GAAKN,EAAEwiD,YAAY9hD,KAAEV,EAAEqlC,OAAO,EAAC,CAAC,EAAE8oB,GAAG,SAASltD,EAAEjB,EAAEG,EAAEC,GAAGD,IAAIC,IAAIJ,EAAEqlC,OAAO,EAAE,EAkBlb,IAAIqrB,IAAG,EAAGC,IAAE,EAAGC,GAAG,oBAAoBC,QAAQA,QAAQ9yC,IAAI+yC,GAAE,KAAK,SAASC,GAAG9vD,EAAEjB,GAAG,IAAIG,EAAEc,EAAEi/C,IAAI,GAAG,OAAO//C,EAAE,GAAG,oBAAoBA,EAAE,IAAIA,EAAE,KAAK,CAAC,MAAMC,GAAG4wD,GAAE/vD,EAAEjB,EAAEI,EAAE,MAAMD,EAAEwgB,QAAQ,IAAI,CAAC,SAASswC,GAAGhwD,EAAEjB,EAAEG,GAAG,IAAIA,GAAG,CAAC,MAAMC,GAAG4wD,GAAE/vD,EAAEjB,EAAEI,EAAE,CAAC,CAAC,IAAI8wD,IAAG,EAIxR,SAASC,GAAGlwD,EAAEjB,EAAEG,GAAG,IAAIC,EAAEJ,EAAEwiD,YAAyC,GAAG,QAAhCpiD,EAAE,OAAOA,EAAEA,EAAE4mD,WAAW,MAAiB,CAAC,IAAI3mD,EAAED,EAAEA,EAAE2gD,KAAK,EAAE,CAAC,IAAI1gD,EAAEuqB,IAAI3pB,KAAKA,EAAE,CAAC,IAAIX,EAAED,EAAEknD,QAAQlnD,EAAEknD,aAAQ,OAAO,IAASjnD,GAAG2wD,GAAGjxD,EAAEG,EAAEG,EAAE,CAACD,EAAEA,EAAE0gD,IAAI,OAAO1gD,IAAID,EAAE,CAAC,CAAC,SAASgxD,GAAGnwD,EAAEjB,GAAgD,GAAG,QAAhCA,EAAE,QAAlBA,EAAEA,EAAEwiD,aAAuBxiD,EAAEgnD,WAAW,MAAiB,CAAC,IAAI7mD,EAAEH,EAAEA,EAAE+gD,KAAK,EAAE,CAAC,IAAI5gD,EAAEyqB,IAAI3pB,KAAKA,EAAE,CAAC,IAAIb,EAAED,EAAE2W,OAAO3W,EAAEonD,QAAQnnD,GAAG,CAACD,EAAEA,EAAE4gD,IAAI,OAAO5gD,IAAIH,EAAE,CAAC,CAAC,SAASqxD,GAAGpwD,GAAG,IAAIjB,EAAEiB,EAAEi/C,IAAI,GAAG,OAAOlgD,EAAE,CAAC,IAAIG,EAAEc,EAAE4iC,UAAiB5iC,EAAE2pB,IAA8B3pB,EAAEd,EAAE,oBAAoBH,EAAEA,EAAEiB,GAAGjB,EAAE2gB,QAAQ1f,CAAC,CAAC,CAClf,SAASqwD,GAAGrwD,GAAG,IAAIjB,EAAEiB,EAAEkkC,UAAU,OAAOnlC,IAAIiB,EAAEkkC,UAAU,KAAKmsB,GAAGtxD,IAAIiB,EAAE0kC,MAAM,KAAK1kC,EAAEg+C,UAAU,KAAKh+C,EAAE2kC,QAAQ,KAAK,IAAI3kC,EAAE2pB,MAAoB,QAAd5qB,EAAEiB,EAAE4iC,oBAA4B7jC,EAAEk8C,WAAWl8C,EAAEm8C,WAAWn8C,EAAEs5C,WAAWt5C,EAAEo8C,WAAWp8C,EAAEq8C,MAAMp7C,EAAE4iC,UAAU,KAAK5iC,EAAEmkC,OAAO,KAAKnkC,EAAE2gD,aAAa,KAAK3gD,EAAE2+C,cAAc,KAAK3+C,EAAEskC,cAAc,KAAKtkC,EAAEk+C,aAAa,KAAKl+C,EAAE4iC,UAAU,KAAK5iC,EAAEuhD,YAAY,IAAI,CAAC,SAAS+O,GAAGtwD,GAAG,OAAO,IAAIA,EAAE2pB,KAAK,IAAI3pB,EAAE2pB,KAAK,IAAI3pB,EAAE2pB,GAAG,CACna,SAAS4mC,GAAGvwD,GAAGA,EAAE,OAAO,CAAC,KAAK,OAAOA,EAAE2kC,SAAS,CAAC,GAAG,OAAO3kC,EAAEmkC,QAAQmsB,GAAGtwD,EAAEmkC,QAAQ,OAAO,KAAKnkC,EAAEA,EAAEmkC,MAAM,CAA2B,IAA1BnkC,EAAE2kC,QAAQR,OAAOnkC,EAAEmkC,OAAWnkC,EAAEA,EAAE2kC,QAAQ,IAAI3kC,EAAE2pB,KAAK,IAAI3pB,EAAE2pB,KAAK,KAAK3pB,EAAE2pB,KAAK,CAAC,GAAW,EAAR3pB,EAAEokC,MAAQ,SAASpkC,EAAE,GAAG,OAAOA,EAAE0kC,OAAO,IAAI1kC,EAAE2pB,IAAI,SAAS3pB,EAAOA,EAAE0kC,MAAMP,OAAOnkC,EAAEA,EAAEA,EAAE0kC,KAAK,CAAC,KAAa,EAAR1kC,EAAEokC,OAAS,OAAOpkC,EAAE4iC,SAAS,CAAC,CACzT,SAAS4tB,GAAGxwD,EAAEjB,EAAEG,GAAG,IAAIC,EAAEa,EAAE2pB,IAAI,GAAG,IAAIxqB,GAAG,IAAIA,EAAEa,EAAEA,EAAE4iC,UAAU7jC,EAAE,IAAIG,EAAEquB,SAASruB,EAAEojC,WAAWmuB,aAAazwD,EAAEjB,GAAGG,EAAEuxD,aAAazwD,EAAEjB,IAAI,IAAIG,EAAEquB,UAAUxuB,EAAEG,EAAEojC,YAAamuB,aAAazwD,EAAEd,IAAKH,EAAEG,GAAIs+B,YAAYx9B,GAA4B,QAAxBd,EAAEA,EAAEwxD,2BAA8B,IAASxxD,GAAG,OAAOH,EAAEkwD,UAAUlwD,EAAEkwD,QAAQlV,UAAU,GAAG,IAAI56C,GAAc,QAAVa,EAAEA,EAAE0kC,OAAgB,IAAI8rB,GAAGxwD,EAAEjB,EAAEG,GAAGc,EAAEA,EAAE2kC,QAAQ,OAAO3kC,GAAGwwD,GAAGxwD,EAAEjB,EAAEG,GAAGc,EAAEA,EAAE2kC,OAAO,CAC1X,SAASgsB,GAAG3wD,EAAEjB,EAAEG,GAAG,IAAIC,EAAEa,EAAE2pB,IAAI,GAAG,IAAIxqB,GAAG,IAAIA,EAAEa,EAAEA,EAAE4iC,UAAU7jC,EAAEG,EAAEuxD,aAAazwD,EAAEjB,GAAGG,EAAEs+B,YAAYx9B,QAAQ,GAAG,IAAIb,GAAc,QAAVa,EAAEA,EAAE0kC,OAAgB,IAAIisB,GAAG3wD,EAAEjB,EAAEG,GAAGc,EAAEA,EAAE2kC,QAAQ,OAAO3kC,GAAG2wD,GAAG3wD,EAAEjB,EAAEG,GAAGc,EAAEA,EAAE2kC,OAAO,CAAC,IAAIisB,GAAE,KAAKC,IAAG,EAAG,SAASC,GAAG9wD,EAAEjB,EAAEG,GAAG,IAAIA,EAAEA,EAAEwlC,MAAM,OAAOxlC,GAAG6xD,GAAG/wD,EAAEjB,EAAEG,GAAGA,EAAEA,EAAEylC,OAAO,CACnR,SAASosB,GAAG/wD,EAAEjB,EAAEG,GAAG,GAAGmnC,IAAI,oBAAoBA,GAAG2qB,qBAAqB,IAAI3qB,GAAG2qB,qBAAqB5qB,GAAGlnC,EAAE,CAAC,MAAMK,GAAG,CAAC,OAAOL,EAAEyqB,KAAK,KAAK,EAAE+lC,IAAGI,GAAG5wD,EAAEH,GAAG,KAAK,EAAE,IAAII,EAAEyxD,GAAExxD,EAAEyxD,GAAGD,GAAE,KAAKE,GAAG9wD,EAAEjB,EAAEG,GAAO2xD,GAAGzxD,EAAE,QAATwxD,GAAEzxD,KAAkB0xD,IAAI7wD,EAAE4wD,GAAE1xD,EAAEA,EAAE0jC,UAAU,IAAI5iC,EAAEutB,SAASvtB,EAAEsiC,WAAW/E,YAAYr+B,GAAGc,EAAEu9B,YAAYr+B,IAAI0xD,GAAErzB,YAAYr+B,EAAE0jC,YAAY,MAAM,KAAK,GAAG,OAAOguB,KAAIC,IAAI7wD,EAAE4wD,GAAE1xD,EAAEA,EAAE0jC,UAAU,IAAI5iC,EAAEutB,SAASqtB,GAAG56C,EAAEsiC,WAAWpjC,GAAG,IAAIc,EAAEutB,UAAUqtB,GAAG56C,EAAEd,GAAG6qC,GAAG/pC,IAAI46C,GAAGgW,GAAE1xD,EAAE0jC,YAAY,MAAM,KAAK,EAAEzjC,EAAEyxD,GAAExxD,EAAEyxD,GAAGD,GAAE1xD,EAAE0jC,UAAU4G,cAAcqnB,IAAG,EAClfC,GAAG9wD,EAAEjB,EAAEG,GAAG0xD,GAAEzxD,EAAE0xD,GAAGzxD,EAAE,MAAM,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,IAAIswD,KAAoB,QAAhBvwD,EAAED,EAAEqiD,cAAsC,QAAfpiD,EAAEA,EAAE4mD,aAAsB,CAAC3mD,EAAED,EAAEA,EAAE2gD,KAAK,EAAE,CAAC,IAAIzgD,EAAED,EAAEE,EAAED,EAAEinD,QAAQjnD,EAAEA,EAAEsqB,SAAI,IAASrqB,IAAI,KAAO,EAAFD,IAAe,KAAO,EAAFA,KAAf2wD,GAAG9wD,EAAEH,EAAEO,GAAyBF,EAAEA,EAAE0gD,IAAI,OAAO1gD,IAAID,EAAE,CAAC2xD,GAAG9wD,EAAEjB,EAAEG,GAAG,MAAM,KAAK,EAAE,IAAIwwD,KAAII,GAAG5wD,EAAEH,GAAiB,oBAAdI,EAAED,EAAE0jC,WAAgCquB,sBAAsB,IAAI9xD,EAAE+oB,MAAMhpB,EAAEy/C,cAAcx/C,EAAEuqD,MAAMxqD,EAAEolC,cAAcnlC,EAAE8xD,sBAAsB,CAAC,MAAM1xD,GAAGwwD,GAAE7wD,EAAEH,EAAEQ,EAAE,CAACuxD,GAAG9wD,EAAEjB,EAAEG,GAAG,MAAM,KAAK,GAAG4xD,GAAG9wD,EAAEjB,EAAEG,GAAG,MAAM,KAAK,GAAU,EAAPA,EAAEq/C,MAAQmR,IAAGvwD,EAAEuwD,KAAI,OAChfxwD,EAAEolC,cAAcwsB,GAAG9wD,EAAEjB,EAAEG,GAAGwwD,GAAEvwD,GAAG2xD,GAAG9wD,EAAEjB,EAAEG,GAAG,MAAM,QAAQ4xD,GAAG9wD,EAAEjB,EAAEG,GAAG,CAAC,SAASgyD,GAAGlxD,GAAG,IAAIjB,EAAEiB,EAAEuhD,YAAY,GAAG,OAAOxiD,EAAE,CAACiB,EAAEuhD,YAAY,KAAK,IAAIriD,EAAEc,EAAE4iC,UAAU,OAAO1jC,IAAIA,EAAEc,EAAE4iC,UAAU,IAAI+sB,IAAI5wD,EAAEkI,SAAQ,SAASlI,GAAG,IAAII,EAAEgyD,GAAG5pD,KAAK,KAAKvH,EAAEjB,GAAGG,EAAEyV,IAAI5V,KAAKG,EAAE4C,IAAI/C,GAAGA,EAAE07C,KAAKt7C,EAAEA,GAAG,GAAE,CAAC,CACzQ,SAASiyD,GAAGpxD,EAAEjB,GAAG,IAAIG,EAAEH,EAAEi/C,UAAU,GAAG,OAAO9+C,EAAE,IAAI,IAAIC,EAAE,EAAEA,EAAED,EAAEgC,OAAO/B,IAAI,CAAC,IAAIC,EAAEF,EAAEC,GAAG,IAAI,IAAIE,EAAEW,EAAEV,EAAEP,EAAEQ,EAAED,EAAEU,EAAE,KAAK,OAAOT,GAAG,CAAC,OAAOA,EAAEoqB,KAAK,KAAK,EAAEinC,GAAErxD,EAAEqjC,UAAUiuB,IAAG,EAAG,MAAM7wD,EAAE,KAAK,EAA4C,KAAK,EAAE4wD,GAAErxD,EAAEqjC,UAAU4G,cAAcqnB,IAAG,EAAG,MAAM7wD,EAAET,EAAEA,EAAE4kC,MAAM,CAAC,GAAG,OAAOysB,GAAE,MAAMpnD,MAAM5J,EAAE,MAAMmxD,GAAG1xD,EAAEC,EAAEF,GAAGwxD,GAAE,KAAKC,IAAG,EAAG,IAAIrxD,EAAEJ,EAAE8kC,UAAU,OAAO1kC,IAAIA,EAAE2kC,OAAO,MAAM/kC,EAAE+kC,OAAO,IAAI,CAAC,MAAM1kC,GAAGswD,GAAE3wD,EAAEL,EAAEU,EAAE,CAAC,CAAC,GAAkB,MAAfV,EAAEivD,aAAmB,IAAIjvD,EAAEA,EAAE2lC,MAAM,OAAO3lC,GAAGsyD,GAAGtyD,EAAEiB,GAAGjB,EAAEA,EAAE4lC,OAAO,CACje,SAAS0sB,GAAGrxD,EAAEjB,GAAG,IAAIG,EAAEc,EAAEkkC,UAAU/kC,EAAEa,EAAEokC,MAAM,OAAOpkC,EAAE2pB,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAiB,GAAdynC,GAAGryD,EAAEiB,GAAGsxD,GAAGtxD,GAAQ,EAAFb,EAAI,CAAC,IAAI+wD,GAAG,EAAElwD,EAAEA,EAAEmkC,QAAQgsB,GAAG,EAAEnwD,EAAE,CAAC,MAAMF,GAAGiwD,GAAE/vD,EAAEA,EAAEmkC,OAAOrkC,EAAE,CAAC,IAAIowD,GAAG,EAAElwD,EAAEA,EAAEmkC,OAAO,CAAC,MAAMrkC,GAAGiwD,GAAE/vD,EAAEA,EAAEmkC,OAAOrkC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAEsxD,GAAGryD,EAAEiB,GAAGsxD,GAAGtxD,GAAK,IAAFb,GAAO,OAAOD,GAAG4wD,GAAG5wD,EAAEA,EAAEilC,QAAQ,MAAM,KAAK,EAAgD,GAA9CitB,GAAGryD,EAAEiB,GAAGsxD,GAAGtxD,GAAK,IAAFb,GAAO,OAAOD,GAAG4wD,GAAG5wD,EAAEA,EAAEilC,QAAmB,GAARnkC,EAAEokC,MAAS,CAAC,IAAIhlC,EAAEY,EAAE4iC,UAAU,IAAIjF,GAAGv+B,EAAE,GAAG,CAAC,MAAMU,GAAGiwD,GAAE/vD,EAAEA,EAAEmkC,OAAOrkC,EAAE,CAAC,CAAC,GAAK,EAAFX,GAAoB,OAAdC,EAAEY,EAAE4iC,WAAmB,CAAC,IAAIvjC,EAAEW,EAAE2+C,cAAcr/C,EAAE,OAAOJ,EAAEA,EAAEy/C,cAAct/C,EAAEE,EAAES,EAAEG,KAAKX,EAAEQ,EAAEuhD,YACje,GAAnBvhD,EAAEuhD,YAAY,KAAQ,OAAO/hD,EAAE,IAAI,UAAUD,GAAG,UAAUF,EAAEc,MAAM,MAAMd,EAAEuB,MAAMm7B,EAAG38B,EAAEC,GAAG0iC,GAAGxiC,EAAED,GAAG,IAAIG,EAAEsiC,GAAGxiC,EAAEF,GAAG,IAAIC,EAAE,EAAEA,EAAEE,EAAE0B,OAAO5B,GAAG,EAAE,CAAC,IAAII,EAAEF,EAAEF,GAAGO,EAAEL,EAAEF,EAAE,GAAG,UAAUI,EAAEkhC,GAAGxhC,EAAES,GAAG,4BAA4BH,EAAEy9B,GAAG/9B,EAAES,GAAG,aAAaH,EAAEi+B,GAAGv+B,EAAES,GAAGk4B,EAAG34B,EAAEM,EAAEG,EAAEJ,EAAE,CAAC,OAAOF,GAAG,IAAK,QAAQy8B,EAAG58B,EAAEC,GAAG,MAAM,IAAK,WAAWw9B,GAAGz9B,EAAEC,GAAG,MAAM,IAAK,SAAS,IAAIY,EAAEb,EAAEs8B,cAAcmzB,YAAYzvD,EAAEs8B,cAAcmzB,cAAcxvD,EAAEyvD,SAAS,IAAIpuD,EAAErB,EAAE0U,MAAM,MAAMrT,EAAE27B,GAAGj9B,IAAIC,EAAEyvD,SAASpuD,GAAE,GAAIT,MAAMZ,EAAEyvD,WAAW,MAAMzvD,EAAE4yB,aAAaoK,GAAGj9B,IAAIC,EAAEyvD,SACnfzvD,EAAE4yB,cAAa,GAAIoK,GAAGj9B,IAAIC,EAAEyvD,SAASzvD,EAAEyvD,SAAS,GAAG,IAAG,IAAK1vD,EAAE87C,IAAI77C,CAAC,CAAC,MAAMS,GAAGiwD,GAAE/vD,EAAEA,EAAEmkC,OAAOrkC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAgB,GAAdsxD,GAAGryD,EAAEiB,GAAGsxD,GAAGtxD,GAAQ,EAAFb,EAAI,CAAC,GAAG,OAAOa,EAAE4iC,UAAU,MAAMp5B,MAAM5J,EAAE,MAAMR,EAAEY,EAAE4iC,UAAUvjC,EAAEW,EAAE2+C,cAAc,IAAIv/C,EAAEy+B,UAAUx+B,CAAC,CAAC,MAAMS,GAAGiwD,GAAE/vD,EAAEA,EAAEmkC,OAAOrkC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAgB,GAAdsxD,GAAGryD,EAAEiB,GAAGsxD,GAAGtxD,GAAQ,EAAFb,GAAK,OAAOD,GAAGA,EAAEolC,cAAciF,aAAa,IAAIQ,GAAGhrC,EAAEyqC,cAAc,CAAC,MAAM1pC,GAAGiwD,GAAE/vD,EAAEA,EAAEmkC,OAAOrkC,EAAE,CAAC,MAAM,KAAK,EAG4G,QAAQsxD,GAAGryD,EACnfiB,GAAGsxD,GAAGtxD,SAJ4Y,KAAK,GAAGoxD,GAAGryD,EAAEiB,GAAGsxD,GAAGtxD,GAAqB,MAAlBZ,EAAEY,EAAE0kC,OAAQN,QAAa/kC,EAAE,OAAOD,EAAEklC,cAAcllC,EAAEwjC,UAAU2uB,SAASlyD,GAAGA,GAClf,OAAOD,EAAE8kC,WAAW,OAAO9kC,EAAE8kC,UAAUI,gBAAgBktB,GAAGlsB,OAAQ,EAAFnmC,GAAK+xD,GAAGlxD,GAAG,MAAM,KAAK,GAAsF,GAAnFN,EAAE,OAAOR,GAAG,OAAOA,EAAEolC,cAAqB,EAAPtkC,EAAEu+C,MAAQmR,IAAGjwD,EAAEiwD,KAAIhwD,EAAE0xD,GAAGryD,EAAEiB,GAAG0vD,GAAEjwD,GAAG2xD,GAAGryD,EAAEiB,GAAGsxD,GAAGtxD,GAAQ,KAAFb,EAAO,CAA0B,GAAzBM,EAAE,OAAOO,EAAEskC,eAAkBtkC,EAAE4iC,UAAU2uB,SAAS9xD,KAAKC,GAAG,KAAY,EAAPM,EAAEu+C,MAAQ,IAAIsR,GAAE7vD,EAAEN,EAAEM,EAAE0kC,MAAM,OAAOhlC,GAAG,CAAC,IAAIG,EAAEgwD,GAAEnwD,EAAE,OAAOmwD,IAAG,CAAe,OAAVnvD,GAAJT,EAAE4vD,IAAMnrB,MAAazkC,EAAE0pB,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAGumC,GAAG,EAAEjwD,EAAEA,EAAEkkC,QAAQ,MAAM,KAAK,EAAE2rB,GAAG7vD,EAAEA,EAAEkkC,QAAQ,IAAIxkC,EAAEM,EAAE2iC,UAAU,GAAG,oBAAoBjjC,EAAEsxD,qBAAqB,CAAC9xD,EAAEc,EAAEf,EAAEe,EAAEkkC,OAAO,IAAIplC,EAAEI,EAAEQ,EAAEuoB,MACpfnpB,EAAE4/C,cAAch/C,EAAE+pD,MAAM3qD,EAAEulC,cAAc3kC,EAAEsxD,sBAAsB,CAAC,MAAMnxD,GAAGiwD,GAAE5wD,EAAED,EAAEY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAEgwD,GAAG7vD,EAAEA,EAAEkkC,QAAQ,MAAM,KAAK,GAAG,GAAG,OAAOlkC,EAAEqkC,cAAc,CAACmtB,GAAG5xD,GAAG,QAAQ,EAAE,OAAOa,GAAGA,EAAEyjC,OAAOlkC,EAAE4vD,GAAEnvD,GAAG+wD,GAAG5xD,EAAE,CAACH,EAAEA,EAAEilC,OAAO,CAAC3kC,EAAE,IAAIN,EAAE,KAAKG,EAAEG,IAAI,CAAC,GAAG,IAAIH,EAAE8pB,KAAK,GAAG,OAAOjqB,EAAE,CAACA,EAAEG,EAAE,IAAIT,EAAES,EAAE+iC,UAAUnjC,EAAa,oBAAVJ,EAAED,EAAEyhC,OAA4BC,YAAYzhC,EAAEyhC,YAAY,UAAU,OAAO,aAAazhC,EAAEqyD,QAAQ,QAASnyD,EAAEM,EAAE+iC,UAAkCtjC,OAAE,KAA1BE,EAAEK,EAAE8+C,cAAc9d,QAAoB,OAAOrhC,GAAGA,EAAEiV,eAAe,WAAWjV,EAAEkyD,QAAQ,KAAKnyD,EAAEshC,MAAM6wB,QACzf/wB,GAAG,UAAUrhC,GAAG,CAAC,MAAMQ,GAAGiwD,GAAE/vD,EAAEA,EAAEmkC,OAAOrkC,EAAE,CAAC,OAAO,GAAG,IAAID,EAAE8pB,KAAK,GAAG,OAAOjqB,EAAE,IAAIG,EAAE+iC,UAAU/E,UAAUp+B,EAAE,GAAGI,EAAE8+C,aAAa,CAAC,MAAM7+C,GAAGiwD,GAAE/vD,EAAEA,EAAEmkC,OAAOrkC,EAAE,OAAO,IAAI,KAAKD,EAAE8pB,KAAK,KAAK9pB,EAAE8pB,KAAK,OAAO9pB,EAAEykC,eAAezkC,IAAIG,IAAI,OAAOH,EAAE6kC,MAAM,CAAC7kC,EAAE6kC,MAAMP,OAAOtkC,EAAEA,EAAEA,EAAE6kC,MAAM,QAAQ,CAAC,GAAG7kC,IAAIG,EAAE,MAAMA,EAAE,KAAK,OAAOH,EAAE8kC,SAAS,CAAC,GAAG,OAAO9kC,EAAEskC,QAAQtkC,EAAEskC,SAASnkC,EAAE,MAAMA,EAAEN,IAAIG,IAAIH,EAAE,MAAMG,EAAEA,EAAEskC,MAAM,CAACzkC,IAAIG,IAAIH,EAAE,MAAMG,EAAE8kC,QAAQR,OAAOtkC,EAAEskC,OAAOtkC,EAAEA,EAAE8kC,OAAO,CAAC,CAAC,MAAM,KAAK,GAAGysB,GAAGryD,EAAEiB,GAAGsxD,GAAGtxD,GAAK,EAAFb,GAAK+xD,GAAGlxD,GAAS,KAAK,IACtd,CAAC,SAASsxD,GAAGtxD,GAAG,IAAIjB,EAAEiB,EAAEokC,MAAM,GAAK,EAAFrlC,EAAI,CAAC,IAAIiB,EAAE,CAAC,IAAI,IAAId,EAAEc,EAAEmkC,OAAO,OAAOjlC,GAAG,CAAC,GAAGoxD,GAAGpxD,GAAG,CAAC,IAAIC,EAAED,EAAE,MAAMc,CAAC,CAACd,EAAEA,EAAEilC,MAAM,CAAC,MAAM36B,MAAM5J,EAAE,KAAM,CAAC,OAAOT,EAAEwqB,KAAK,KAAK,EAAE,IAAIvqB,EAAED,EAAEyjC,UAAkB,GAARzjC,EAAEilC,QAAWzG,GAAGv+B,EAAE,IAAID,EAAEilC,QAAQ,IAAgBusB,GAAG3wD,EAATuwD,GAAGvwD,GAAUZ,GAAG,MAAM,KAAK,EAAE,KAAK,EAAE,IAAIE,EAAEH,EAAEyjC,UAAU4G,cAAsBgnB,GAAGxwD,EAATuwD,GAAGvwD,GAAUV,GAAG,MAAM,QAAQ,MAAMkK,MAAM5J,EAAE,MAAO,CAAC,MAAMJ,GAAGuwD,GAAE/vD,EAAEA,EAAEmkC,OAAO3kC,EAAE,CAACQ,EAAEokC,QAAQ,CAAC,CAAG,KAAFrlC,IAASiB,EAAEokC,QAAQ,KAAK,CAAC,SAASutB,GAAG3xD,EAAEjB,EAAEG,GAAG2wD,GAAE7vD,EAAE4xD,GAAG5xD,EAAEjB,EAAEG,EAAE,CACvb,SAAS0yD,GAAG5xD,EAAEjB,EAAEG,GAAG,IAAI,IAAIC,EAAE,KAAY,EAAPa,EAAEu+C,MAAQ,OAAOsR,IAAG,CAAC,IAAIzwD,EAAEywD,GAAExwD,EAAED,EAAEslC,MAAM,GAAG,KAAKtlC,EAAEuqB,KAAKxqB,EAAE,CAAC,IAAIG,EAAE,OAAOF,EAAEklC,eAAemrB,GAAG,IAAInwD,EAAE,CAAC,IAAIC,EAAEH,EAAE8kC,UAAU1kC,EAAE,OAAOD,GAAG,OAAOA,EAAE+kC,eAAeorB,GAAEnwD,EAAEkwD,GAAG,IAAIhwD,EAAEiwD,GAAO,GAALD,GAAGnwD,GAAMowD,GAAElwD,KAAKC,EAAE,IAAIowD,GAAEzwD,EAAE,OAAOywD,IAAOrwD,GAAJF,EAAEuwD,IAAMnrB,MAAM,KAAKplC,EAAEqqB,KAAK,OAAOrqB,EAAEglC,cAAcutB,GAAGzyD,GAAG,OAAOI,GAAGA,EAAE2kC,OAAO7kC,EAAEuwD,GAAErwD,GAAGqyD,GAAGzyD,GAAG,KAAK,OAAOC,GAAGwwD,GAAExwD,EAAEuyD,GAAGvyD,EAAEN,EAAEG,GAAGG,EAAEA,EAAEslC,QAAQkrB,GAAEzwD,EAAEqwD,GAAGlwD,EAAEmwD,GAAEjwD,CAAC,CAACqyD,GAAG9xD,EAAM,MAAM,KAAoB,KAAfZ,EAAE4uD,eAAoB,OAAO3uD,GAAGA,EAAE8kC,OAAO/kC,EAAEywD,GAAExwD,GAAGyyD,GAAG9xD,EAAM,CAAC,CACvc,SAAS8xD,GAAG9xD,GAAG,KAAK,OAAO6vD,IAAG,CAAC,IAAI9wD,EAAE8wD,GAAE,GAAG,KAAa,KAAR9wD,EAAEqlC,OAAY,CAAC,IAAIllC,EAAEH,EAAEmlC,UAAU,IAAI,GAAG,KAAa,KAARnlC,EAAEqlC,OAAY,OAAOrlC,EAAE4qB,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG+lC,IAAGS,GAAG,EAAEpxD,GAAG,MAAM,KAAK,EAAE,IAAII,EAAEJ,EAAE6jC,UAAU,GAAW,EAAR7jC,EAAEqlC,QAAUsrB,GAAE,GAAG,OAAOxwD,EAAEC,EAAEgrD,wBAAwB,CAAC,IAAI/qD,EAAEL,EAAE82B,cAAc92B,EAAEoB,KAAKjB,EAAEy/C,cAAcmK,GAAG/pD,EAAEoB,KAAKjB,EAAEy/C,eAAex/C,EAAEutD,mBAAmBttD,EAAEF,EAAEolC,cAAcnlC,EAAE4yD,oCAAoC,CAAC,IAAI1yD,EAAEN,EAAEwiD,YAAY,OAAOliD,GAAGqjD,GAAG3jD,EAAEM,EAAEF,GAAG,MAAM,KAAK,EAAE,IAAIG,EAAEP,EAAEwiD,YAAY,GAAG,OAAOjiD,EAAE,CAAQ,GAAPJ,EAAE,KAAQ,OAAOH,EAAE2lC,MAAM,OAAO3lC,EAAE2lC,MAAM/a,KAAK,KAAK,EACvf,KAAK,EAAEzqB,EAAEH,EAAE2lC,MAAM9B,UAAU8f,GAAG3jD,EAAEO,EAAEJ,EAAE,CAAC,MAAM,KAAK,EAAE,IAAIK,EAAER,EAAE6jC,UAAU,GAAG,OAAO1jC,GAAW,EAARH,EAAEqlC,MAAQ,CAACllC,EAAEK,EAAE,IAAIC,EAAET,EAAE4/C,cAAc,OAAO5/C,EAAEoB,MAAM,IAAK,SAAS,IAAK,QAAQ,IAAK,SAAS,IAAK,WAAWX,EAAE2vD,WAAWjwD,EAAEo3C,QAAQ,MAAM,IAAK,MAAM92C,EAAEwyD,MAAM9yD,EAAE8yD,IAAIxyD,EAAEwyD,KAAK,CAAC,MAAM,KAAK,EAAQ,KAAK,EAAQ,KAAK,GAAyJ,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,MAAhM,KAAK,GAAG,GAAG,OAAOjzD,EAAEulC,cAAc,CAAC,IAAI7kC,EAAEV,EAAEmlC,UAAU,GAAG,OAAOzkC,EAAE,CAAC,IAAIC,EAAED,EAAE6kC,cAAc,GAAG,OAAO5kC,EAAE,CAAC,IAAIG,EAAEH,EAAE6kC,WAAW,OAAO1kC,GAAGkqC,GAAGlqC,EAAE,CAAC,CAAC,CAAC,MAC5c,QAAQ,MAAM2J,MAAM5J,EAAE,MAAO8vD,IAAW,IAAR3wD,EAAEqlC,OAAWgsB,GAAGrxD,EAAE,CAAC,MAAMkB,GAAG8vD,GAAEhxD,EAAEA,EAAEolC,OAAOlkC,EAAE,CAAC,CAAC,GAAGlB,IAAIiB,EAAE,CAAC6vD,GAAE,KAAK,KAAK,CAAa,GAAG,QAAf3wD,EAAEH,EAAE4lC,SAAoB,CAACzlC,EAAEilC,OAAOplC,EAAEolC,OAAO0rB,GAAE3wD,EAAE,KAAK,CAAC2wD,GAAE9wD,EAAEolC,MAAM,CAAC,CAAC,SAASstB,GAAGzxD,GAAG,KAAK,OAAO6vD,IAAG,CAAC,IAAI9wD,EAAE8wD,GAAE,GAAG9wD,IAAIiB,EAAE,CAAC6vD,GAAE,KAAK,KAAK,CAAC,IAAI3wD,EAAEH,EAAE4lC,QAAQ,GAAG,OAAOzlC,EAAE,CAACA,EAAEilC,OAAOplC,EAAEolC,OAAO0rB,GAAE3wD,EAAE,KAAK,CAAC2wD,GAAE9wD,EAAEolC,MAAM,CAAC,CACvS,SAAS0tB,GAAG7xD,GAAG,KAAK,OAAO6vD,IAAG,CAAC,IAAI9wD,EAAE8wD,GAAE,IAAI,OAAO9wD,EAAE4qB,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,IAAIzqB,EAAEH,EAAEolC,OAAO,IAAIgsB,GAAG,EAAEpxD,EAAE,CAAC,MAAMS,GAAGuwD,GAAEhxD,EAAEG,EAAEM,EAAE,CAAC,MAAM,KAAK,EAAE,IAAIL,EAAEJ,EAAE6jC,UAAU,GAAG,oBAAoBzjC,EAAEgrD,kBAAkB,CAAC,IAAI/qD,EAAEL,EAAEolC,OAAO,IAAIhlC,EAAEgrD,mBAAmB,CAAC,MAAM3qD,GAAGuwD,GAAEhxD,EAAEK,EAAEI,EAAE,CAAC,CAAC,IAAIH,EAAEN,EAAEolC,OAAO,IAAIisB,GAAGrxD,EAAE,CAAC,MAAMS,GAAGuwD,GAAEhxD,EAAEM,EAAEG,EAAE,CAAC,MAAM,KAAK,EAAE,IAAIF,EAAEP,EAAEolC,OAAO,IAAIisB,GAAGrxD,EAAE,CAAC,MAAMS,GAAGuwD,GAAEhxD,EAAEO,EAAEE,EAAE,EAAE,CAAC,MAAMA,GAAGuwD,GAAEhxD,EAAEA,EAAEolC,OAAO3kC,EAAE,CAAC,GAAGT,IAAIiB,EAAE,CAAC6vD,GAAE,KAAK,KAAK,CAAC,IAAItwD,EAAER,EAAE4lC,QAAQ,GAAG,OAAOplC,EAAE,CAACA,EAAE4kC,OAAOplC,EAAEolC,OAAO0rB,GAAEtwD,EAAE,KAAK,CAACswD,GAAE9wD,EAAEolC,MAAM,CAAC,CAC7d,IAwBkN8tB,GAxB9MC,GAAG3wD,KAAKQ,KAAKowD,GAAG35B,EAAGmrB,uBAAuByO,GAAG55B,EAAGgzB,kBAAkB6G,GAAG75B,EAAGyR,wBAAwBoY,GAAE,EAAElgD,GAAE,KAAKuH,GAAE,KAAKG,GAAE,EAAEuiD,GAAG,EAAED,GAAG5Q,GAAG,GAAG8T,GAAE,EAAEiD,GAAG,KAAK7P,GAAG,EAAE8P,GAAG,EAAEC,GAAG,EAAEC,GAAG,KAAKC,GAAG,KAAKlB,GAAG,EAAElC,GAAGqD,IAASC,GAAG,KAAKhI,IAAG,EAAGC,GAAG,KAAKG,GAAG,KAAK6H,IAAG,EAAGC,GAAG,KAAKC,GAAG,EAAEC,GAAG,EAAEC,GAAG,KAAKC,IAAI,EAAEC,GAAG,EAAE,SAAS1L,KAAI,OAAO,KAAO,EAAFpF,IAAK/c,MAAK,IAAI4tB,GAAGA,GAAGA,GAAG5tB,IAAG,CAChU,SAASgiB,GAAGtnD,GAAG,OAAG,KAAY,EAAPA,EAAEu+C,MAAe,EAAK,KAAO,EAAF8D,KAAM,IAAIx4C,GAASA,IAAGA,GAAK,OAAOk1C,GAAG3U,YAAkB,IAAI+oB,KAAKA,GAAG7rB,MAAM6rB,IAAU,KAAPnzD,EAAE2nC,IAAkB3nC,EAAiBA,OAAE,KAAjBA,EAAE+2B,OAAO1hB,OAAmB,GAAGs1B,GAAG3qC,EAAEG,KAAc,CAAC,SAASgmD,GAAGnmD,EAAEjB,EAAEG,EAAEC,GAAG,GAAG,GAAG6zD,GAAG,MAAMA,GAAG,EAAEC,GAAG,KAAKzpD,MAAM5J,EAAE,MAAM4nC,GAAGxnC,EAAEd,EAAEC,GAAM,KAAO,EAAFkjD,KAAMriD,IAAImC,KAAEnC,IAAImC,KAAI,KAAO,EAAFkgD,MAAOkQ,IAAIrzD,GAAG,IAAImwD,IAAG+D,GAAGpzD,EAAE6J,KAAIwpD,GAAGrzD,EAAEb,GAAG,IAAID,GAAG,IAAImjD,IAAG,KAAY,EAAPtjD,EAAEw/C,QAAU+Q,GAAGhqB,KAAI,IAAImX,IAAIG,MAAK,CAC1Y,SAASyW,GAAGrzD,EAAEjB,GAAG,IAAIG,EAAEc,EAAEszD,cA3MzB,SAAYtzD,EAAEjB,GAAG,IAAI,IAAIG,EAAEc,EAAEgnC,eAAe7nC,EAAEa,EAAEinC,YAAY7nC,EAAEY,EAAEuzD,gBAAgBl0D,EAAEW,EAAE+mC,aAAa,EAAE1nC,GAAG,CAAC,IAAIC,EAAE,GAAGgnC,GAAGjnC,GAAGE,EAAE,GAAGD,EAAEE,EAAEJ,EAAEE,IAAO,IAAIE,EAAM,KAAKD,EAAEL,IAAI,KAAKK,EAAEJ,KAAGC,EAAEE,GAAG8nC,GAAG7nC,EAAER,IAAQS,GAAGT,IAAIiB,EAAEwzD,cAAcj0D,GAAGF,IAAIE,CAAC,CAAC,CA2MnLk0D,CAAGzzD,EAAEjB,GAAG,IAAII,EAAE2nC,GAAG9mC,EAAEA,IAAImC,GAAE0H,GAAE,GAAG,GAAG,IAAI1K,EAAE,OAAOD,GAAG8lC,GAAG9lC,GAAGc,EAAEszD,aAAa,KAAKtzD,EAAE0zD,iBAAiB,OAAO,GAAG30D,EAAEI,GAAGA,EAAEa,EAAE0zD,mBAAmB30D,EAAE,CAAgB,GAAf,MAAMG,GAAG8lC,GAAG9lC,GAAM,IAAIH,EAAE,IAAIiB,EAAE2pB,IA5IsJ,SAAY3pB,GAAGy8C,IAAG,EAAGE,GAAG38C,EAAE,CA4I5K2zD,CAAGC,GAAGrsD,KAAK,KAAKvH,IAAI28C,GAAGiX,GAAGrsD,KAAK,KAAKvH,IAAIu6C,IAAG,WAAW,KAAO,EAAF8H,KAAMzF,IAAI,IAAG19C,EAAE,SAAS,CAAC,OAAO0oC,GAAGzoC,IAAI,KAAK,EAAED,EAAEwmC,GAAG,MAAM,KAAK,EAAExmC,EAAE0mC,GAAG,MAAM,KAAK,GAAwC,QAAQ1mC,EAAE4mC,SAApC,KAAK,UAAU5mC,EAAEgnC,GAAsBhnC,EAAE20D,GAAG30D,EAAE40D,GAAGvsD,KAAK,KAAKvH,GAAG,CAACA,EAAE0zD,iBAAiB30D,EAAEiB,EAAEszD,aAAap0D,CAAC,CAAC,CAC7c,SAAS40D,GAAG9zD,EAAEjB,GAAc,GAAXm0D,IAAI,EAAEC,GAAG,EAAK,KAAO,EAAF9Q,IAAK,MAAM74C,MAAM5J,EAAE,MAAM,IAAIV,EAAEc,EAAEszD,aAAa,GAAGS,MAAM/zD,EAAEszD,eAAep0D,EAAE,OAAO,KAAK,IAAIC,EAAE2nC,GAAG9mC,EAAEA,IAAImC,GAAE0H,GAAE,GAAG,GAAG,IAAI1K,EAAE,OAAO,KAAK,GAAG,KAAO,GAAFA,IAAO,KAAKA,EAAEa,EAAEwzD,eAAez0D,EAAEA,EAAEi1D,GAAGh0D,EAAEb,OAAO,CAACJ,EAAEI,EAAE,IAAIC,EAAEijD,GAAEA,IAAG,EAAE,IAAIhjD,EAAE40D,KAAgD,IAAxC9xD,KAAInC,GAAG6J,KAAI9K,IAAE6zD,GAAG,KAAKtD,GAAGhqB,KAAI,IAAI4uB,GAAGl0D,EAAEjB,UAAUo1D,KAAK,KAAK,CAAC,MAAM50D,GAAG60D,GAAGp0D,EAAET,EAAE,CAAU8F,KAAK8sD,GAAGzyC,QAAQrgB,EAAEgjD,GAAEjjD,EAAE,OAAOsK,GAAE3K,EAAE,GAAGoD,GAAE,KAAK0H,GAAE,EAAE9K,EAAEswD,GAAE,CAAC,GAAG,IAAItwD,EAAE,CAAyC,GAAxC,IAAIA,IAAY,KAARK,EAAEioC,GAAGrnC,MAAWb,EAAEC,EAAEL,EAAEs1D,GAAGr0D,EAAEZ,KAAQ,IAAIL,EAAE,MAAMG,EAAEozD,GAAG4B,GAAGl0D,EAAE,GAAGozD,GAAGpzD,EAAEb,GAAGk0D,GAAGrzD,EAAEslC,MAAKpmC,EAAE,GAAG,IAAIH,EAAEq0D,GAAGpzD,EAAEb,OAChf,CAAuB,GAAtBC,EAAEY,EAAE0f,QAAQwkB,UAAa,KAAO,GAAF/kC,KAGnC,SAAYa,GAAG,IAAI,IAAIjB,EAAEiB,IAAI,CAAC,GAAW,MAARjB,EAAEqlC,MAAY,CAAC,IAAIllC,EAAEH,EAAEwiD,YAAY,GAAG,OAAOriD,GAAe,QAAXA,EAAEA,EAAE8mD,QAAiB,IAAI,IAAI7mD,EAAE,EAAEA,EAAED,EAAEgC,OAAO/B,IAAI,CAAC,IAAIC,EAAEF,EAAEC,GAAGE,EAAED,EAAEumD,YAAYvmD,EAAEA,EAAE2U,MAAM,IAAI,IAAIogC,GAAG90C,IAAID,GAAG,OAAM,CAAE,CAAC,MAAME,GAAG,OAAM,CAAE,CAAC,CAAC,CAAW,GAAVJ,EAAEH,EAAE2lC,MAAwB,MAAf3lC,EAAEivD,cAAoB,OAAO9uD,EAAEA,EAAEilC,OAAOplC,EAAEA,EAAEG,MAAM,CAAC,GAAGH,IAAIiB,EAAE,MAAM,KAAK,OAAOjB,EAAE4lC,SAAS,CAAC,GAAG,OAAO5lC,EAAEolC,QAAQplC,EAAEolC,SAASnkC,EAAE,OAAM,EAAGjB,EAAEA,EAAEolC,MAAM,CAACplC,EAAE4lC,QAAQR,OAAOplC,EAAEolC,OAAOplC,EAAEA,EAAE4lC,OAAO,CAAC,CAAC,OAAM,CAAE,CAHvX2vB,CAAGl1D,KAAe,KAAVL,EAAEi1D,GAAGh0D,EAAEb,MAAmB,KAARE,EAAEgoC,GAAGrnC,MAAWb,EAAEE,EAAEN,EAAEs1D,GAAGr0D,EAAEX,KAAK,IAAIN,GAAG,MAAMG,EAAEozD,GAAG4B,GAAGl0D,EAAE,GAAGozD,GAAGpzD,EAAEb,GAAGk0D,GAAGrzD,EAAEslC,MAAKpmC,EAAqC,OAAnCc,EAAEu0D,aAAan1D,EAAEY,EAAEw0D,cAAcr1D,EAASJ,GAAG,KAAK,EAAE,KAAK,EAAE,MAAMyK,MAAM5J,EAAE,MAAM,KAAK,EAC8B,KAAK,EAAE60D,GAAGz0D,EAAE0yD,GAAGE,IAAI,MAD7B,KAAK,EAAU,GAARQ,GAAGpzD,EAAEb,IAAS,UAAFA,KAAeA,GAAiB,IAAbJ,EAAEyyD,GAAG,IAAIlsB,MAAU,CAAC,GAAG,IAAIwB,GAAG9mC,EAAE,GAAG,MAAyB,KAAnBZ,EAAEY,EAAEgnC,gBAAqB7nC,KAAKA,EAAE,CAACsoD,KAAIznD,EAAEinC,aAAajnC,EAAEgnC,eAAe5nC,EAAE,KAAK,CAACY,EAAE00D,cAActa,GAAGqa,GAAGltD,KAAK,KAAKvH,EAAE0yD,GAAGE,IAAI7zD,GAAG,KAAK,CAAC01D,GAAGz0D,EAAE0yD,GAAGE,IAAI,MAAM,KAAK,EAAU,GAARQ,GAAGpzD,EAAEb,IAAS,QAAFA,KAC9eA,EAAE,MAAqB,IAAfJ,EAAEiB,EAAEynC,WAAeroC,GAAG,EAAE,EAAED,GAAG,CAAC,IAAIG,EAAE,GAAGgnC,GAAGnnC,GAAGE,EAAE,GAAGC,GAAEA,EAAEP,EAAEO,IAAKF,IAAIA,EAAEE,GAAGH,IAAIE,CAAC,CAAqG,GAApGF,EAAEC,EAAqG,IAA3FD,GAAG,KAAXA,EAAEmmC,KAAInmC,GAAW,IAAI,IAAIA,EAAE,IAAI,KAAKA,EAAE,KAAK,KAAKA,EAAE,KAAK,IAAIA,EAAE,IAAI,KAAKA,EAAE,KAAK,KAAK+yD,GAAG/yD,EAAE,OAAOA,GAAU,CAACa,EAAE00D,cAActa,GAAGqa,GAAGltD,KAAK,KAAKvH,EAAE0yD,GAAGE,IAAIzzD,GAAG,KAAK,CAACs1D,GAAGz0D,EAAE0yD,GAAGE,IAAI,MAA+B,QAAQ,MAAMppD,MAAM5J,EAAE,MAAO,CAAC,CAAW,OAAVyzD,GAAGrzD,EAAEslC,MAAYtlC,EAAEszD,eAAep0D,EAAE40D,GAAGvsD,KAAK,KAAKvH,GAAG,IAAI,CACrX,SAASq0D,GAAGr0D,EAAEjB,GAAG,IAAIG,EAAEuzD,GAA2G,OAAxGzyD,EAAE0f,QAAQ4kB,cAAciF,eAAe2qB,GAAGl0D,EAAEjB,GAAGqlC,OAAO,KAAe,KAAVpkC,EAAEg0D,GAAGh0D,EAAEjB,MAAWA,EAAE2zD,GAAGA,GAAGxzD,EAAE,OAAOH,GAAG6vD,GAAG7vD,IAAWiB,CAAC,CAAC,SAAS4uD,GAAG5uD,GAAG,OAAO0yD,GAAGA,GAAG1yD,EAAE0yD,GAAGjmD,KAAK9G,MAAM+sD,GAAG1yD,EAAE,CAE5L,SAASozD,GAAGpzD,EAAEjB,GAAuD,IAApDA,IAAIyzD,GAAGzzD,IAAIwzD,GAAGvyD,EAAEgnC,gBAAgBjoC,EAAEiB,EAAEinC,cAAcloC,EAAMiB,EAAEA,EAAEuzD,gBAAgB,EAAEx0D,GAAG,CAAC,IAAIG,EAAE,GAAGonC,GAAGvnC,GAAGI,EAAE,GAAGD,EAAEc,EAAEd,IAAI,EAAEH,IAAII,CAAC,CAAC,CAAC,SAASy0D,GAAG5zD,GAAG,GAAG,KAAO,EAAFqiD,IAAK,MAAM74C,MAAM5J,EAAE,MAAMm0D,KAAK,IAAIh1D,EAAE+nC,GAAG9mC,EAAE,GAAG,GAAG,KAAO,EAAFjB,GAAK,OAAOs0D,GAAGrzD,EAAEslC,MAAK,KAAK,IAAIpmC,EAAE80D,GAAGh0D,EAAEjB,GAAG,GAAG,IAAIiB,EAAE2pB,KAAK,IAAIzqB,EAAE,CAAC,IAAIC,EAAEkoC,GAAGrnC,GAAG,IAAIb,IAAIJ,EAAEI,EAAED,EAAEm1D,GAAGr0D,EAAEb,GAAG,CAAC,GAAG,IAAID,EAAE,MAAMA,EAAEozD,GAAG4B,GAAGl0D,EAAE,GAAGozD,GAAGpzD,EAAEjB,GAAGs0D,GAAGrzD,EAAEslC,MAAKpmC,EAAE,GAAG,IAAIA,EAAE,MAAMsK,MAAM5J,EAAE,MAAiF,OAA3EI,EAAEu0D,aAAav0D,EAAE0f,QAAQwkB,UAAUlkC,EAAEw0D,cAAcz1D,EAAE01D,GAAGz0D,EAAE0yD,GAAGE,IAAIS,GAAGrzD,EAAEslC,MAAY,IAAI,CACvd,SAASqvB,GAAG30D,EAAEjB,GAAG,IAAIG,EAAEmjD,GAAEA,IAAG,EAAE,IAAI,OAAOriD,EAAEjB,EAAE,CAAC,QAAY,KAAJsjD,GAAEnjD,KAAUowD,GAAGhqB,KAAI,IAAImX,IAAIG,KAAK,CAAC,CAAC,SAASgY,GAAG50D,GAAG,OAAO8yD,IAAI,IAAIA,GAAGnpC,KAAK,KAAO,EAAF04B,KAAM0R,KAAK,IAAIh1D,EAAEsjD,GAAEA,IAAG,EAAE,IAAInjD,EAAEmzD,GAAGjoB,WAAWjrC,EAAEwoC,GAAE,IAAI,GAAG0qB,GAAGjoB,WAAW,KAAKzC,GAAE,EAAE3nC,EAAE,OAAOA,GAAG,CAAC,QAAQ2nC,GAAExoC,EAAEkzD,GAAGjoB,WAAWlrC,EAAM,KAAO,GAAXmjD,GAAEtjD,KAAa69C,IAAI,CAAC,CAAC,SAAS2S,KAAKnD,GAAGD,GAAGzsC,QAAQ87B,GAAE2Q,GAAG,CAChT,SAAS+H,GAAGl0D,EAAEjB,GAAGiB,EAAEu0D,aAAa,KAAKv0D,EAAEw0D,cAAc,EAAE,IAAIt1D,EAAEc,EAAE00D,cAAiD,IAAlC,IAAIx1D,IAAIc,EAAE00D,eAAe,EAAEra,GAAGn7C,IAAO,OAAOwK,GAAE,IAAIxK,EAAEwK,GAAEy6B,OAAO,OAAOjlC,GAAG,CAAC,IAAIC,EAAED,EAAQ,OAANu+C,GAAGt+C,GAAUA,EAAEwqB,KAAK,KAAK,EAA6B,QAA3BxqB,EAAEA,EAAEgB,KAAKmX,yBAA4B,IAASnY,GAAG88C,KAAK,MAAM,KAAK,EAAEiH,KAAK1H,GAAEG,IAAIH,GAAE1yC,IAAG06C,KAAK,MAAM,KAAK,EAAEJ,GAAGjkD,GAAG,MAAM,KAAK,EAAE+jD,KAAK,MAAM,KAAK,GAAc,KAAK,GAAG1H,GAAEzzC,IAAG,MAAM,KAAK,GAAGu4C,GAAGnhD,EAAEgB,KAAKk6B,UAAU,MAAM,KAAK,GAAG,KAAK,GAAGk1B,KAAKrwD,EAAEA,EAAEilC,MAAM,CAAqE,GAApEhiC,GAAEnC,EAAE0J,GAAE1J,EAAEw/C,GAAGx/C,EAAE0f,QAAQ,MAAM7V,GAAEuiD,GAAGrtD,EAAEswD,GAAE,EAAEiD,GAAG,KAAKE,GAAGD,GAAG9P,GAAG,EAAEiQ,GAAGD,GAAG,KAAQ,OAAOxR,GAAG,CAAC,IAAIliD,EAC1f,EAAEA,EAAEkiD,GAAG//C,OAAOnC,IAAI,GAA2B,QAAhBI,GAARD,EAAE+hD,GAAGliD,IAAOoiD,aAAqB,CAACjiD,EAAEiiD,YAAY,KAAK,IAAI/hD,EAAED,EAAE2gD,KAAKzgD,EAAEH,EAAE0iD,QAAQ,GAAG,OAAOviD,EAAE,CAAC,IAAIC,EAAED,EAAEygD,KAAKzgD,EAAEygD,KAAK1gD,EAAED,EAAE2gD,KAAKxgD,CAAC,CAACJ,EAAE0iD,QAAQziD,CAAC,CAAC8hD,GAAG,IAAI,CAAC,OAAOjhD,CAAC,CAC3K,SAASo0D,GAAGp0D,EAAEjB,GAAG,OAAE,CAAC,IAAIG,EAAEwK,GAAE,IAAuB,GAAnBrE,KAAKq+C,GAAGhkC,QAAQ8kC,GAAMT,GAAG,CAAC,IAAI,IAAI5kD,EAAEwB,GAAE2jC,cAAc,OAAOnlC,GAAG,CAAC,IAAIC,EAAED,EAAEylD,MAAM,OAAOxlD,IAAIA,EAAEwiD,QAAQ,MAAMziD,EAAEA,EAAE2gD,IAAI,CAACiE,IAAG,CAAE,CAA4C,GAA3CF,GAAG,EAAErhD,GAAEshD,GAAEnjD,GAAE,KAAKqjD,IAAG,EAAGC,GAAG,EAAEmO,GAAG1yC,QAAQ,KAAQ,OAAOxgB,GAAG,OAAOA,EAAEilC,OAAO,CAACkrB,GAAE,EAAEiD,GAAGvzD,EAAE2K,GAAE,KAAK,KAAK,CAAC1J,EAAE,CAAC,IAAIX,EAAEW,EAAEV,EAAEJ,EAAEilC,OAAO5kC,EAAEL,EAAEM,EAAET,EAAqB,GAAnBA,EAAE8K,GAAEtK,EAAE6kC,OAAO,MAAS,OAAO5kC,GAAG,kBAAkBA,GAAG,oBAAoBA,EAAEi7C,KAAK,CAAC,IAAIh7C,EAAED,EAAEE,EAAEH,EAAEM,EAAEH,EAAEiqB,IAAI,GAAG,KAAY,EAAPjqB,EAAE6+C,QAAU,IAAI1+C,GAAG,KAAKA,GAAG,KAAKA,GAAG,CAAC,IAAII,EAAEP,EAAEwkC,UAAUjkC,GAAGP,EAAE6hD,YAAYthD,EAAEshD,YAAY7hD,EAAE4kC,cAAcrkC,EAAEqkC,cACxe5kC,EAAEmhD,MAAM5gD,EAAE4gD,QAAQnhD,EAAE6hD,YAAY,KAAK7hD,EAAE4kC,cAAc,KAAK,CAAC,IAAI5jC,EAAE2qD,GAAG/rD,GAAG,GAAG,OAAOoB,EAAE,CAACA,EAAE0jC,QAAQ,IAAIknB,GAAG5qD,EAAEpB,EAAEC,EAAEF,EAAEN,GAAU,EAAP2B,EAAE69C,MAAQ2M,GAAG7rD,EAAEI,EAAEV,GAAOS,EAAEC,EAAE,IAAIE,GAAZZ,EAAE2B,GAAc6gD,YAAY,GAAG,OAAO5hD,EAAE,CAAC,IAAIG,EAAE,IAAIgd,IAAIhd,EAAEgC,IAAItC,GAAGT,EAAEwiD,YAAYzhD,CAAC,MAAMH,EAAEmC,IAAItC,GAAG,MAAMQ,CAAC,CAAM,GAAG,KAAO,EAAFjB,GAAK,CAACmsD,GAAG7rD,EAAEI,EAAEV,GAAG6uD,KAAK,MAAM5tD,CAAC,CAACR,EAAEgK,MAAM5J,EAAE,KAAM,MAAM,GAAGg+C,IAAU,EAAPr+C,EAAEg/C,KAAO,CAAC,IAAI1F,EAAEwS,GAAG/rD,GAAG,GAAG,OAAOu5C,EAAE,CAAC,KAAa,MAARA,EAAEzU,SAAeyU,EAAEzU,OAAO,KAAKknB,GAAGzS,EAAEv5C,EAAEC,EAAEF,EAAEN,GAAG+/C,GAAGsL,GAAG5qD,EAAED,IAAI,MAAMS,CAAC,CAAC,CAACX,EAAEG,EAAE4qD,GAAG5qD,EAAED,GAAG,IAAI8vD,KAAIA,GAAE,GAAG,OAAOoD,GAAGA,GAAG,CAACpzD,GAAGozD,GAAGhmD,KAAKpN,GAAGA,EAAEC,EAAE,EAAE,CAAC,OAAOD,EAAEsqB,KAAK,KAAK,EAAEtqB,EAAE+kC,OAAO,MACpfrlC,IAAIA,EAAEM,EAAEwhD,OAAO9hD,EAAkBwjD,GAAGljD,EAAbsrD,GAAGtrD,EAAEG,EAAET,IAAW,MAAMiB,EAAE,KAAK,EAAET,EAAEC,EAAE,IAAIwC,EAAE3C,EAAEc,KAAKrB,EAAEO,EAAEujC,UAAU,GAAG,KAAa,IAARvjC,EAAE+kC,SAAa,oBAAoBpiC,EAAE4V,0BAA0B,OAAO9Y,GAAG,oBAAoBA,EAAEisD,oBAAoB,OAAOC,KAAKA,GAAGr2C,IAAI7V,KAAK,CAACO,EAAE+kC,OAAO,MAAMrlC,IAAIA,EAAEM,EAAEwhD,OAAO9hD,EAAkBwjD,GAAGljD,EAAbyrD,GAAGzrD,EAAEE,EAAER,IAAW,MAAMiB,CAAC,EAAEX,EAAEA,EAAE8kC,MAAM,OAAO,OAAO9kC,EAAE,CAACw1D,GAAG31D,EAAE,CAAC,MAAMk6C,GAAIr6C,EAAEq6C,EAAG1vC,KAAIxK,GAAG,OAAOA,IAAIwK,GAAExK,EAAEA,EAAEilC,QAAQ,QAAQ,CAAC,KAAK,CAAS,CAAC,SAAS8vB,KAAK,IAAIj0D,EAAEmyD,GAAGzyC,QAAsB,OAAdyyC,GAAGzyC,QAAQ8kC,GAAU,OAAOxkD,EAAEwkD,GAAGxkD,CAAC,CACrd,SAAS4tD,KAAQ,IAAIyB,IAAG,IAAIA,IAAG,IAAIA,KAAEA,GAAE,GAAE,OAAOltD,IAAG,KAAQ,UAAHsgD,KAAe,KAAQ,UAAH8P,KAAea,GAAGjxD,GAAE0H,GAAE,CAAC,SAASmqD,GAAGh0D,EAAEjB,GAAG,IAAIG,EAAEmjD,GAAEA,IAAG,EAAE,IAAIljD,EAAE80D,KAAqC,IAA7B9xD,KAAInC,GAAG6J,KAAI9K,IAAE6zD,GAAG,KAAKsB,GAAGl0D,EAAEjB,UAAU+1D,KAAK,KAAK,CAAC,MAAM11D,GAAGg1D,GAAGp0D,EAAEZ,EAAE,CAAgC,GAAtBiG,KAAKg9C,GAAEnjD,EAAEizD,GAAGzyC,QAAQvgB,EAAK,OAAOuK,GAAE,MAAMF,MAAM5J,EAAE,MAAiB,OAAXuC,GAAE,KAAK0H,GAAE,EAASwlD,EAAC,CAAC,SAASyF,KAAK,KAAK,OAAOprD,IAAGqrD,GAAGrrD,GAAE,CAAC,SAASyqD,KAAK,KAAK,OAAOzqD,KAAIw7B,MAAM6vB,GAAGrrD,GAAE,CAAC,SAASqrD,GAAG/0D,GAAG,IAAIjB,EAAEkzD,GAAGjyD,EAAEkkC,UAAUlkC,EAAEosD,IAAIpsD,EAAE2+C,cAAc3+C,EAAEk+C,aAAa,OAAOn/C,EAAE81D,GAAG70D,GAAG0J,GAAE3K,EAAEqzD,GAAG1yC,QAAQ,IAAI,CAC1d,SAASm1C,GAAG70D,GAAG,IAAIjB,EAAEiB,EAAE,EAAE,CAAC,IAAId,EAAEH,EAAEmlC,UAAqB,GAAXlkC,EAAEjB,EAAEolC,OAAU,KAAa,MAARplC,EAAEqlC,QAAc,GAAgB,QAAbllC,EAAEyvD,GAAGzvD,EAAEH,EAAEqtD,KAAkB,YAAJ1iD,GAAExK,OAAc,CAAW,GAAG,QAAbA,EAAEswD,GAAGtwD,EAAEH,IAAmC,OAAnBG,EAAEklC,OAAO,WAAM16B,GAAExK,GAAS,GAAG,OAAOc,EAAmE,OAAXqvD,GAAE,OAAE3lD,GAAE,MAA5D1J,EAAEokC,OAAO,MAAMpkC,EAAEguD,aAAa,EAAEhuD,EAAEg+C,UAAU,IAA4B,CAAa,GAAG,QAAfj/C,EAAEA,EAAE4lC,SAAyB,YAAJj7B,GAAE3K,GAAS2K,GAAE3K,EAAEiB,CAAC,OAAO,OAAOjB,GAAG,IAAIswD,KAAIA,GAAE,EAAE,CAAC,SAASoF,GAAGz0D,EAAEjB,EAAEG,GAAG,IAAIC,EAAEwoC,GAAEvoC,EAAEizD,GAAGjoB,WAAW,IAAIioB,GAAGjoB,WAAW,KAAKzC,GAAE,EAC3Y,SAAY3nC,EAAEjB,EAAEG,EAAEC,GAAG,GAAG40D,WAAW,OAAOjB,IAAI,GAAG,KAAO,EAAFzQ,IAAK,MAAM74C,MAAM5J,EAAE,MAAMV,EAAEc,EAAEu0D,aAAa,IAAIn1D,EAAEY,EAAEw0D,cAAc,GAAG,OAAOt1D,EAAE,OAAO,KAA2C,GAAtCc,EAAEu0D,aAAa,KAAKv0D,EAAEw0D,cAAc,EAAKt1D,IAAIc,EAAE0f,QAAQ,MAAMlW,MAAM5J,EAAE,MAAMI,EAAEszD,aAAa,KAAKtzD,EAAE0zD,iBAAiB,EAAE,IAAIr0D,EAAEH,EAAE2hD,MAAM3hD,EAAEuhD,WAA8J,GAzNtT,SAAYzgD,EAAEjB,GAAG,IAAIG,EAAEc,EAAE+mC,cAAchoC,EAAEiB,EAAE+mC,aAAahoC,EAAEiB,EAAEgnC,eAAe,EAAEhnC,EAAEinC,YAAY,EAAEjnC,EAAEwzD,cAAcz0D,EAAEiB,EAAEg1D,kBAAkBj2D,EAAEiB,EAAEknC,gBAAgBnoC,EAAEA,EAAEiB,EAAEmnC,cAAc,IAAIhoC,EAAEa,EAAEynC,WAAW,IAAIznC,EAAEA,EAAEuzD,gBAAgB,EAAEr0D,GAAG,CAAC,IAAIE,EAAE,GAAGknC,GAAGpnC,GAAGG,EAAE,GAAGD,EAAEL,EAAEK,GAAG,EAAED,EAAEC,IAAI,EAAEY,EAAEZ,IAAI,EAAEF,IAAIG,CAAC,CAAC,CAyN5G41D,CAAGj1D,EAAEX,GAAGW,IAAImC,KAAIuH,GAAEvH,GAAE,KAAK0H,GAAE,GAAG,KAAoB,KAAf3K,EAAE8uD,eAAoB,KAAa,KAAR9uD,EAAEklC,QAAayuB,KAAKA,IAAG,EAAGgB,GAAG/tB,IAAG,WAAgB,OAALiuB,KAAY,IAAI,KAAI10D,EAAE,KAAa,MAARH,EAAEklC,OAAgB,KAAoB,MAAfllC,EAAE8uD,eAAqB3uD,EAAE,CAACA,EAAEgzD,GAAGjoB,WAAWioB,GAAGjoB,WAAW,KAChf,IAAI9qC,EAAEqoC,GAAEA,GAAE,EAAE,IAAIpoC,EAAE8iD,GAAEA,IAAG,EAAE+P,GAAG1yC,QAAQ,KA1CpC,SAAY1f,EAAEjB,GAAgB,GAAbi7C,GAAG9P,GAAa6K,GAAV/0C,EAAE20C,MAAc,CAAC,GAAG,mBAAmB30C,EAAE,IAAId,EAAE,CAACqmB,MAAMvlB,EAAEq1C,eAAe7vB,IAAIxlB,EAAEs1C,mBAAmBt1C,EAAE,CAA8C,IAAIb,GAAjDD,GAAGA,EAAEc,EAAEm8B,gBAAgBj9B,EAAEq2C,aAAaxe,QAAeye,cAAct2C,EAAEs2C,eAAe,GAAGr2C,GAAG,IAAIA,EAAEs2C,WAAW,CAACv2C,EAAEC,EAAEu2C,WAAW,IAAIt2C,EAAED,EAAEw2C,aAAat2C,EAAEF,EAAEy2C,UAAUz2C,EAAEA,EAAE02C,YAAY,IAAI32C,EAAEquB,SAASluB,EAAEkuB,QAAQ,CAAC,MAAMurB,GAAG55C,EAAE,KAAK,MAAMc,CAAC,CAAC,IAAIV,EAAE,EAAEC,GAAG,EAAEC,GAAG,EAAEC,EAAE,EAAEC,EAAE,EAAEG,EAAEG,EAAEC,EAAE,KAAKlB,EAAE,OAAO,CAAC,IAAI,IAAI2B,EAAKb,IAAIX,GAAG,IAAIE,GAAG,IAAIS,EAAE0tB,WAAWhuB,EAAED,EAAEF,GAAGS,IAAIR,GAAG,IAAIF,GAAG,IAAIU,EAAE0tB,WAAW/tB,EAAEF,EAAEH,GAAG,IAAIU,EAAE0tB,WAAWjuB,GACnfO,EAAEg+B,UAAU38B,QAAW,QAAQR,EAAEb,EAAEy9B,aAAkBr9B,EAAEJ,EAAEA,EAAEa,EAAE,OAAO,CAAC,GAAGb,IAAIG,EAAE,MAAMjB,EAA8C,GAA5CkB,IAAIf,KAAKO,IAAIL,IAAIG,EAAED,GAAGW,IAAIZ,KAAKK,IAAIP,IAAIK,EAAEF,GAAM,QAAQoB,EAAEb,EAAE00C,aAAa,MAAUt0C,GAAJJ,EAAEI,GAAMqiC,UAAU,CAACziC,EAAEa,CAAC,CAACxB,GAAG,IAAIK,IAAI,IAAIC,EAAE,KAAK,CAAC+lB,MAAMhmB,EAAEimB,IAAIhmB,EAAE,MAAMN,EAAE,IAAI,CAACA,EAAEA,GAAG,CAACqmB,MAAM,EAAEC,IAAI,EAAE,MAAMtmB,EAAE,KAA+C,IAA1C+6C,GAAG,CAAC/E,YAAYl1C,EAAEm1C,eAAej2C,GAAGgrC,IAAG,EAAO2lB,GAAE9wD,EAAE,OAAO8wD,IAAG,GAAO7vD,GAAJjB,EAAE8wD,IAAMnrB,MAAM,KAAoB,KAAf3lC,EAAEivD,eAAoB,OAAOhuD,EAAEA,EAAEmkC,OAAOplC,EAAE8wD,GAAE7vD,OAAO,KAAK,OAAO6vD,IAAG,CAAC9wD,EAAE8wD,GAAE,IAAI,IAAIlwD,EAAEZ,EAAEmlC,UAAU,GAAG,KAAa,KAARnlC,EAAEqlC,OAAY,OAAOrlC,EAAE4qB,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GACvK,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,MAA3W,KAAK,EAAE,GAAG,OAAOhqB,EAAE,CAAC,IAAIG,EAAEH,EAAEg/C,cAAc9F,EAAEl5C,EAAE2kC,cAAcvhC,EAAEhE,EAAE6jC,UAAU5gC,EAAEe,EAAEinD,wBAAwBjrD,EAAE82B,cAAc92B,EAAEoB,KAAKL,EAAEgpD,GAAG/pD,EAAEoB,KAAKL,GAAG+4C,GAAG91C,EAAEgvD,oCAAoC/vD,CAAC,CAAC,MAAM,KAAK,EAAE,IAAIlD,EAAEC,EAAE6jC,UAAU4G,cAAc,IAAI1qC,EAAEyuB,SAASzuB,EAAEi+B,YAAY,GAAG,IAAIj+B,EAAEyuB,UAAUzuB,EAAEs2C,iBAAiBt2C,EAAEy+B,YAAYz+B,EAAEs2C,iBAAiB,MAAyC,QAAQ,MAAM5rC,MAAM5J,EAAE,MAAO,CAAC,MAAMk5C,GAAGiX,GAAEhxD,EAAEA,EAAEolC,OAAO2U,EAAE,CAAa,GAAG,QAAf94C,EAAEjB,EAAE4lC,SAAoB,CAAC3kC,EAAEmkC,OAAOplC,EAAEolC,OAAO0rB,GAAE7vD,EAAE,KAAK,CAAC6vD,GAAE9wD,EAAEolC,MAAM,CAACxkC,EAAEswD,GAAGA,IAAG,CAAW,CAwCldiF,CAAGl1D,EAAEd,GAAGmyD,GAAGnyD,EAAEc,GAAGi1C,GAAGgF,IAAI/P,KAAK8P,GAAGC,GAAGD,GAAG,KAAKh6C,EAAE0f,QAAQxgB,EAAEyyD,GAAGzyD,EAAEc,EAAEZ,GAAGgmC,KAAKid,GAAE9iD,EAAEooC,GAAEroC,EAAE+yD,GAAGjoB,WAAW/qC,CAAC,MAAMW,EAAE0f,QAAQxgB,EAAsF,GAApF2zD,KAAKA,IAAG,EAAGC,GAAG9yD,EAAE+yD,GAAG3zD,GAAGC,EAAEW,EAAE+mC,aAAa,IAAI1nC,IAAI2rD,GAAG,MAhOmJ,SAAYhrD,GAAG,GAAGqmC,IAAI,oBAAoBA,GAAG8uB,kBAAkB,IAAI9uB,GAAG8uB,kBAAkB/uB,GAAGpmC,OAAE,EAAO,OAAuB,IAAhBA,EAAE0f,QAAQ0kB,OAAW,CAAC,MAAMrlC,GAAG,CAAC,CAgOxRq2D,CAAGl2D,EAAE0jC,WAAaywB,GAAGrzD,EAAEslC,MAAQ,OAAOvmC,EAAE,IAAII,EAAEa,EAAEq1D,mBAAmBn2D,EAAE,EAAEA,EAAEH,EAAEmC,OAAOhC,IAAIE,EAAEL,EAAEG,GAAGC,EAAEC,EAAE2U,MAAM,CAACk3C,eAAe7rD,EAAEoiB,MAAM6oC,OAAOjrD,EAAEirD,SAAS,GAAGO,GAAG,MAAMA,IAAG,EAAG5qD,EAAE6qD,GAAGA,GAAG,KAAK7qD,EAAE,KAAQ,EAAH+yD,KAAO,IAAI/yD,EAAE2pB,KAAKoqC,KAAK10D,EAAEW,EAAE+mC,aAAa,KAAO,EAAF1nC,GAAKW,IAAIizD,GAAGD,MAAMA,GAAG,EAAEC,GAAGjzD,GAAGgzD,GAAG,EAAEpW,IAAgB,CAFxF0Y,CAAGt1D,EAAEjB,EAAEG,EAAEC,EAAE,CAAC,QAAQkzD,GAAGjoB,WAAWhrC,EAAEuoC,GAAExoC,CAAC,CAAC,OAAO,IAAI,CAGhc,SAAS40D,KAAK,GAAG,OAAOjB,GAAG,CAAC,IAAI9yD,EAAE4nC,GAAGmrB,IAAIh0D,EAAEszD,GAAGjoB,WAAWlrC,EAAEyoC,GAAE,IAAmC,GAA/B0qB,GAAGjoB,WAAW,KAAKzC,GAAE,GAAG3nC,EAAE,GAAGA,EAAK,OAAO8yD,GAAG,IAAI3zD,GAAE,MAAO,CAAmB,GAAlBa,EAAE8yD,GAAGA,GAAG,KAAKC,GAAG,EAAK,KAAO,EAAF1Q,IAAK,MAAM74C,MAAM5J,EAAE,MAAM,IAAIR,EAAEijD,GAAO,IAALA,IAAG,EAAMwN,GAAE7vD,EAAE0f,QAAQ,OAAOmwC,IAAG,CAAC,IAAIxwD,EAAEwwD,GAAEvwD,EAAED,EAAEqlC,MAAM,GAAG,KAAa,GAARmrB,GAAEzrB,OAAU,CAAC,IAAI7kC,EAAEF,EAAE2+C,UAAU,GAAG,OAAOz+C,EAAE,CAAC,IAAI,IAAIC,EAAE,EAAEA,EAAED,EAAE2B,OAAO1B,IAAI,CAAC,IAAIC,EAAEF,EAAEC,GAAG,IAAIqwD,GAAEpwD,EAAE,OAAOowD,IAAG,CAAC,IAAInwD,EAAEmwD,GAAE,OAAOnwD,EAAEiqB,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAGumC,GAAG,EAAExwD,EAAEL,GAAG,IAAIQ,EAAEH,EAAEglC,MAAM,GAAG,OAAO7kC,EAAEA,EAAEskC,OAAOzkC,EAAEmwD,GAAEhwD,OAAO,KAAK,OAAOgwD,IAAG,CAAK,IAAI5vD,GAARP,EAAEmwD,IAAUlrB,QAAQjkC,EAAEhB,EAAEykC,OAAa,GAANksB,GAAG3wD,GAAMA,IACnfD,EAAE,CAACowD,GAAE,KAAK,KAAK,CAAC,GAAG,OAAO5vD,EAAE,CAACA,EAAEkkC,OAAOzjC,EAAEmvD,GAAE5vD,EAAE,KAAK,CAAC4vD,GAAEnvD,CAAC,CAAC,CAAC,CAAC,IAAIf,EAAEN,EAAE6kC,UAAU,GAAG,OAAOvkC,EAAE,CAAC,IAAIG,EAAEH,EAAE+kC,MAAM,GAAG,OAAO5kC,EAAE,CAACH,EAAE+kC,MAAM,KAAK,EAAE,CAAC,IAAImU,EAAE/4C,EAAE6kC,QAAQ7kC,EAAE6kC,QAAQ,KAAK7kC,EAAE+4C,CAAC,OAAO,OAAO/4C,EAAE,CAAC,CAAC+vD,GAAExwD,CAAC,CAAC,CAAC,GAAG,KAAoB,KAAfA,EAAE2uD,eAAoB,OAAO1uD,EAAEA,EAAE6kC,OAAO9kC,EAAEwwD,GAAEvwD,OAAOP,EAAE,KAAK,OAAO8wD,IAAG,CAAK,GAAG,KAAa,MAApBxwD,EAAEwwD,IAAYzrB,OAAY,OAAO/kC,EAAEsqB,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAGumC,GAAG,EAAE7wD,EAAEA,EAAE8kC,QAAQ,IAAIphC,EAAE1D,EAAEslC,QAAQ,GAAG,OAAO5hC,EAAE,CAACA,EAAEohC,OAAO9kC,EAAE8kC,OAAO0rB,GAAE9sD,EAAE,MAAMhE,CAAC,CAAC8wD,GAAExwD,EAAE8kC,MAAM,CAAC,CAAC,IAAIniC,EAAEhC,EAAE0f,QAAQ,IAAImwC,GAAE7tD,EAAE,OAAO6tD,IAAG,CAAK,IAAI/wD,GAARQ,EAAEuwD,IAAUnrB,MAAM,GAAG,KAAoB,KAAfplC,EAAE0uD,eAAoB,OAClflvD,EAAEA,EAAEqlC,OAAO7kC,EAAEuwD,GAAE/wD,OAAOC,EAAE,IAAIO,EAAE0C,EAAE,OAAO6tD,IAAG,CAAK,GAAG,KAAa,MAApBtwD,EAAEswD,IAAYzrB,OAAY,IAAI,OAAO7kC,EAAEoqB,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAGwmC,GAAG,EAAE5wD,GAAG,CAAC,MAAM65C,GAAI2W,GAAExwD,EAAEA,EAAE4kC,OAAOiV,EAAG,CAAC,GAAG75C,IAAID,EAAE,CAACuwD,GAAE,KAAK,MAAM9wD,CAAC,CAAC,IAAI+5C,EAAEv5C,EAAEolC,QAAQ,GAAG,OAAOmU,EAAE,CAACA,EAAE3U,OAAO5kC,EAAE4kC,OAAO0rB,GAAE/W,EAAE,MAAM/5C,CAAC,CAAC8wD,GAAEtwD,EAAE4kC,MAAM,CAAC,CAAU,GAATke,GAAEjjD,EAAEw9C,KAAQvW,IAAI,oBAAoBA,GAAGkvB,sBAAsB,IAAIlvB,GAAGkvB,sBAAsBnvB,GAAGpmC,EAAE,CAAC,MAAMo5C,GAAI,CAACj6C,GAAE,CAAE,CAAC,OAAOA,CAAC,CAAC,QAAQwoC,GAAEzoC,EAAEmzD,GAAGjoB,WAAWrrC,CAAC,CAAC,CAAC,OAAM,CAAE,CAAC,SAASy2D,GAAGx1D,EAAEjB,EAAEG,GAAyBc,EAAEoiD,GAAGpiD,EAAjBjB,EAAE4rD,GAAG3qD,EAAfjB,EAAEqrD,GAAGlrD,EAAEH,GAAY,GAAY,GAAGA,EAAE0oD,KAAI,OAAOznD,IAAIwnC,GAAGxnC,EAAE,EAAEjB,GAAGs0D,GAAGrzD,EAAEjB,GAAG,CACze,SAASgxD,GAAE/vD,EAAEjB,EAAEG,GAAG,GAAG,IAAIc,EAAE2pB,IAAI6rC,GAAGx1D,EAAEA,EAAEd,QAAQ,KAAK,OAAOH,GAAG,CAAC,GAAG,IAAIA,EAAE4qB,IAAI,CAAC6rC,GAAGz2D,EAAEiB,EAAEd,GAAG,KAAK,CAAM,GAAG,IAAIH,EAAE4qB,IAAI,CAAC,IAAIxqB,EAAEJ,EAAE6jC,UAAU,GAAG,oBAAoB7jC,EAAEoB,KAAKyX,0BAA0B,oBAAoBzY,EAAE4rD,oBAAoB,OAAOC,KAAKA,GAAGr2C,IAAIxV,IAAI,CAAuBJ,EAAEqjD,GAAGrjD,EAAjBiB,EAAE8qD,GAAG/rD,EAAfiB,EAAEoqD,GAAGlrD,EAAEc,GAAY,GAAY,GAAGA,EAAEynD,KAAI,OAAO1oD,IAAIyoC,GAAGzoC,EAAE,EAAEiB,GAAGqzD,GAAGt0D,EAAEiB,IAAI,KAAK,CAAC,CAACjB,EAAEA,EAAEolC,MAAM,CAAC,CACnV,SAASinB,GAAGprD,EAAEjB,EAAEG,GAAG,IAAIC,EAAEa,EAAEmrD,UAAU,OAAOhsD,GAAGA,EAAEypC,OAAO7pC,GAAGA,EAAE0oD,KAAIznD,EAAEinC,aAAajnC,EAAEgnC,eAAe9nC,EAAEiD,KAAInC,IAAI6J,GAAE3K,KAAKA,IAAI,IAAImwD,IAAG,IAAIA,KAAM,UAAFxlD,MAAeA,IAAG,IAAIy7B,KAAIksB,GAAG0C,GAAGl0D,EAAE,GAAGwyD,IAAItzD,GAAGm0D,GAAGrzD,EAAEjB,EAAE,CAAC,SAAS02D,GAAGz1D,EAAEjB,GAAG,IAAIA,IAAI,KAAY,EAAPiB,EAAEu+C,MAAQx/C,EAAE,GAAGA,EAAE6nC,GAAU,KAAQ,WAAfA,KAAK,MAAuBA,GAAG,WAAW,IAAI1nC,EAAEuoD,KAAc,QAAVznD,EAAEohD,GAAGphD,EAAEjB,MAAcyoC,GAAGxnC,EAAEjB,EAAEG,GAAGm0D,GAAGrzD,EAAEd,GAAG,CAAC,SAAS2uD,GAAG7tD,GAAG,IAAIjB,EAAEiB,EAAEskC,cAAcplC,EAAE,EAAE,OAAOH,IAAIG,EAAEH,EAAEs/C,WAAWoX,GAAGz1D,EAAEd,EAAE,CACjZ,SAASiyD,GAAGnxD,EAAEjB,GAAG,IAAIG,EAAE,EAAE,OAAOc,EAAE2pB,KAAK,KAAK,GAAG,IAAIxqB,EAAEa,EAAE4iC,UAAcxjC,EAAEY,EAAEskC,cAAc,OAAOllC,IAAIF,EAAEE,EAAEi/C,WAAW,MAAM,KAAK,GAAGl/C,EAAEa,EAAE4iC,UAAU,MAAM,QAAQ,MAAMp5B,MAAM5J,EAAE,MAAO,OAAOT,GAAGA,EAAEypC,OAAO7pC,GAAG02D,GAAGz1D,EAAEd,EAAE,CAQqK,SAAS20D,GAAG7zD,EAAEjB,GAAG,OAAO+lC,GAAG9kC,EAAEjB,EAAE,CACjZ,SAAS22D,GAAG11D,EAAEjB,EAAEG,EAAEC,GAAG+D,KAAKymB,IAAI3pB,EAAEkD,KAAKuW,IAAIva,EAAEgE,KAAKyhC,QAAQzhC,KAAKwhC,MAAMxhC,KAAKihC,OAAOjhC,KAAK0/B,UAAU1/B,KAAK/C,KAAK+C,KAAK2yB,YAAY,KAAK3yB,KAAK2Y,MAAM,EAAE3Y,KAAK+7C,IAAI,KAAK/7C,KAAKg7C,aAAan/C,EAAEmE,KAAKy9C,aAAaz9C,KAAKohC,cAAcphC,KAAKq+C,YAAYr+C,KAAKy7C,cAAc,KAAKz7C,KAAKq7C,KAAKp/C,EAAE+D,KAAK8qD,aAAa9qD,KAAKkhC,MAAM,EAAElhC,KAAK86C,UAAU,KAAK96C,KAAKu9C,WAAWv9C,KAAK29C,MAAM,EAAE39C,KAAKghC,UAAU,IAAI,CAAC,SAAS6Z,GAAG/9C,EAAEjB,EAAEG,EAAEC,GAAG,OAAO,IAAIu2D,GAAG11D,EAAEjB,EAAEG,EAAEC,EAAE,CAAC,SAASysD,GAAG5rD,GAAiB,UAAdA,EAAEA,EAAEoD,aAAuBpD,EAAE21D,iBAAiB,CAEpd,SAASnW,GAAGx/C,EAAEjB,GAAG,IAAIG,EAAEc,EAAEkkC,UACuB,OADb,OAAOhlC,IAAGA,EAAE6+C,GAAG/9C,EAAE2pB,IAAI5qB,EAAEiB,EAAEyZ,IAAIzZ,EAAEu+C,OAAQ1oB,YAAY71B,EAAE61B,YAAY32B,EAAEiB,KAAKH,EAAEG,KAAKjB,EAAE0jC,UAAU5iC,EAAE4iC,UAAU1jC,EAAEglC,UAAUlkC,EAAEA,EAAEkkC,UAAUhlC,IAAIA,EAAEg/C,aAAan/C,EAAEG,EAAEiB,KAAKH,EAAEG,KAAKjB,EAAEklC,MAAM,EAAEllC,EAAE8uD,aAAa,EAAE9uD,EAAE8+C,UAAU,MAAM9+C,EAAEklC,MAAc,SAARpkC,EAAEokC,MAAellC,EAAEuhD,WAAWzgD,EAAEygD,WAAWvhD,EAAE2hD,MAAM7gD,EAAE6gD,MAAM3hD,EAAEwlC,MAAM1kC,EAAE0kC,MAAMxlC,EAAEy/C,cAAc3+C,EAAE2+C,cAAcz/C,EAAEolC,cAActkC,EAAEskC,cAAcplC,EAAEqiD,YAAYvhD,EAAEuhD,YAAYxiD,EAAEiB,EAAE2gD,aAAazhD,EAAEyhD,aAAa,OAAO5hD,EAAE,KAAK,CAAC8hD,MAAM9hD,EAAE8hD,MAAMD,aAAa7hD,EAAE6hD,cAC/e1hD,EAAEylC,QAAQ3kC,EAAE2kC,QAAQzlC,EAAE2c,MAAM7b,EAAE6b,MAAM3c,EAAE+/C,IAAIj/C,EAAEi/C,IAAW//C,CAAC,CACxD,SAASwgD,GAAG1/C,EAAEjB,EAAEG,EAAEC,EAAEC,EAAEC,GAAG,IAAIC,EAAE,EAAM,GAAJH,EAAEa,EAAK,oBAAoBA,EAAE4rD,GAAG5rD,KAAKV,EAAE,QAAQ,GAAG,kBAAkBU,EAAEV,EAAE,OAAOU,EAAE,OAAOA,GAAG,KAAK44B,EAAG,OAAOinB,GAAG3gD,EAAEy9B,SAASv9B,EAAEC,EAAEN,GAAG,KAAK85B,EAAGv5B,EAAE,EAAEF,GAAG,EAAE,MAAM,KAAK05B,EAAG,OAAO94B,EAAE+9C,GAAG,GAAG7+C,EAAEH,EAAI,EAAFK,IAAOy2B,YAAYiD,EAAG94B,EAAE6gD,MAAMxhD,EAAEW,EAAE,KAAKk5B,EAAG,OAAOl5B,EAAE+9C,GAAG,GAAG7+C,EAAEH,EAAEK,IAAKy2B,YAAYqD,EAAGl5B,EAAE6gD,MAAMxhD,EAAEW,EAAE,KAAKm5B,EAAG,OAAOn5B,EAAE+9C,GAAG,GAAG7+C,EAAEH,EAAEK,IAAKy2B,YAAYsD,EAAGn5B,EAAE6gD,MAAMxhD,EAAEW,EAAE,KAAKs5B,EAAG,OAAOi0B,GAAGruD,EAAEE,EAAEC,EAAEN,GAAG,QAAQ,GAAG,kBAAkBiB,GAAG,OAAOA,EAAE,OAAOA,EAAEE,UAAU,KAAK64B,EAAGz5B,EAAE,GAAG,MAAMU,EAAE,KAAKg5B,EAAG15B,EAAE,EAAE,MAAMU,EAAE,KAAKi5B,EAAG35B,EAAE,GACpf,MAAMU,EAAE,KAAKo5B,EAAG95B,EAAE,GAAG,MAAMU,EAAE,KAAKq5B,EAAG/5B,EAAE,GAAGH,EAAE,KAAK,MAAMa,EAAE,MAAMwJ,MAAM5J,EAAE,IAAI,MAAMI,EAAEA,SAASA,EAAE,KAAuD,OAAjDjB,EAAEg/C,GAAGz+C,EAAEJ,EAAEH,EAAEK,IAAKy2B,YAAY71B,EAAEjB,EAAEoB,KAAKhB,EAAEJ,EAAE8hD,MAAMxhD,EAASN,CAAC,CAAC,SAAS8gD,GAAG7/C,EAAEjB,EAAEG,EAAEC,GAA2B,OAAxBa,EAAE+9C,GAAG,EAAE/9C,EAAEb,EAAEJ,IAAK8hD,MAAM3hD,EAASc,CAAC,CAAC,SAASutD,GAAGvtD,EAAEjB,EAAEG,EAAEC,GAAuE,OAApEa,EAAE+9C,GAAG,GAAG/9C,EAAEb,EAAEJ,IAAK82B,YAAYyD,EAAGt5B,EAAE6gD,MAAM3hD,EAAEc,EAAE4iC,UAAU,CAAC2uB,UAAS,GAAWvxD,CAAC,CAAC,SAASy/C,GAAGz/C,EAAEjB,EAAEG,GAA8B,OAA3Bc,EAAE+9C,GAAG,EAAE/9C,EAAE,KAAKjB,IAAK8hD,MAAM3hD,EAASc,CAAC,CAC5W,SAAS4/C,GAAG5/C,EAAEjB,EAAEG,GAA8J,OAA3JH,EAAEg/C,GAAG,EAAE,OAAO/9C,EAAE28B,SAAS38B,EAAE28B,SAAS,GAAG38B,EAAEyZ,IAAI1a,IAAK8hD,MAAM3hD,EAAEH,EAAE6jC,UAAU,CAAC4G,cAAcxpC,EAAEwpC,cAAcosB,gBAAgB,KAAKjW,eAAe3/C,EAAE2/C,gBAAuB5gD,CAAC,CACtL,SAAS82D,GAAG71D,EAAEjB,EAAEG,EAAEC,EAAEC,GAAG8D,KAAKymB,IAAI5qB,EAAEmE,KAAKsmC,cAAcxpC,EAAEkD,KAAKqxD,aAAarxD,KAAKioD,UAAUjoD,KAAKwc,QAAQxc,KAAK0yD,gBAAgB,KAAK1yD,KAAKwxD,eAAe,EAAExxD,KAAKowD,aAAapwD,KAAK2pD,eAAe3pD,KAAK+R,QAAQ,KAAK/R,KAAKwwD,iBAAiB,EAAExwD,KAAKukC,WAAWF,GAAG,GAAGrkC,KAAKqwD,gBAAgBhsB,IAAI,GAAGrkC,KAAKgkC,eAAehkC,KAAKsxD,cAActxD,KAAK8xD,iBAAiB9xD,KAAKswD,aAAatwD,KAAK+jC,YAAY/jC,KAAK8jC,eAAe9jC,KAAK6jC,aAAa,EAAE7jC,KAAKikC,cAAcI,GAAG,GAAGrkC,KAAK2lD,iBAAiB1pD,EAAE+D,KAAKmyD,mBAAmBj2D,EAAE8D,KAAK4yD,gCAC/e,IAAI,CAAC,SAASC,GAAG/1D,EAAEjB,EAAEG,EAAEC,EAAEC,EAAEC,EAAEC,EAAEC,EAAEC,GAAgN,OAA7MQ,EAAE,IAAI61D,GAAG71D,EAAEjB,EAAEG,EAAEK,EAAEC,GAAG,IAAIT,GAAGA,EAAE,GAAE,IAAKM,IAAIN,GAAG,IAAIA,EAAE,EAAEM,EAAE0+C,GAAG,EAAE,KAAK,KAAKh/C,GAAGiB,EAAE0f,QAAQrgB,EAAEA,EAAEujC,UAAU5iC,EAAEX,EAAEilC,cAAc,CAAC1O,QAAQz2B,EAAEoqC,aAAarqC,EAAE6nB,MAAM,KAAKmlC,YAAY,KAAK8J,0BAA0B,MAAM1U,GAAGjiD,GAAUW,CAAC,CACzP,SAASi2D,GAAGj2D,GAAG,IAAIA,EAAE,OAAO07C,GAAuB17C,EAAE,CAAC,GAAGikC,GAA1BjkC,EAAEA,EAAEkpD,mBAA8BlpD,GAAG,IAAIA,EAAE2pB,IAAI,MAAMngB,MAAM5J,EAAE,MAAM,IAAIb,EAAEiB,EAAE,EAAE,CAAC,OAAOjB,EAAE4qB,KAAK,KAAK,EAAE5qB,EAAEA,EAAE6jC,UAAU3tB,QAAQ,MAAMjV,EAAE,KAAK,EAAE,GAAGg8C,GAAGj9C,EAAEoB,MAAM,CAACpB,EAAEA,EAAE6jC,UAAU0Z,0CAA0C,MAAMt8C,CAAC,EAAEjB,EAAEA,EAAEolC,MAAM,OAAO,OAAOplC,GAAG,MAAMyK,MAAM5J,EAAE,KAAM,CAAC,GAAG,IAAII,EAAE2pB,IAAI,CAAC,IAAIzqB,EAAEc,EAAEG,KAAK,GAAG67C,GAAG98C,GAAG,OAAOi9C,GAAGn8C,EAAEd,EAAEH,EAAE,CAAC,OAAOA,CAAC,CACpW,SAASm3D,GAAGl2D,EAAEjB,EAAEG,EAAEC,EAAEC,EAAEC,EAAEC,EAAEC,EAAEC,GAAwK,OAArKQ,EAAE+1D,GAAG72D,EAAEC,GAAE,EAAGa,EAAEZ,EAAEC,EAAEC,EAAEC,EAAEC,IAAKyV,QAAQghD,GAAG,MAAM/2D,EAAEc,EAAE0f,SAAsBrgB,EAAE0iD,GAAhB5iD,EAAEsoD,KAAIroD,EAAEkoD,GAAGpoD,KAAeijD,cAAS,IAASpjD,GAAG,OAAOA,EAAEA,EAAE,KAAKqjD,GAAGljD,EAAEG,EAAED,GAAGY,EAAE0f,QAAQmhC,MAAMzhD,EAAEooC,GAAGxnC,EAAEZ,EAAED,GAAGk0D,GAAGrzD,EAAEb,GAAUa,CAAC,CAAC,SAASm2D,GAAGn2D,EAAEjB,EAAEG,EAAEC,GAAG,IAAIC,EAAEL,EAAE2gB,QAAQrgB,EAAEooD,KAAInoD,EAAEgoD,GAAGloD,GAAsL,OAAnLF,EAAE+2D,GAAG/2D,GAAG,OAAOH,EAAEkW,QAAQlW,EAAEkW,QAAQ/V,EAAEH,EAAE8tD,eAAe3tD,GAAEH,EAAEgjD,GAAG1iD,EAAEC,IAAK4iD,QAAQ,CAACtsB,QAAQ51B,GAAuB,QAApBb,OAAE,IAASA,EAAE,KAAKA,KAAaJ,EAAEojD,SAAShjD,GAAe,QAAZa,EAAEoiD,GAAGhjD,EAAEL,EAAEO,MAAc6mD,GAAGnmD,EAAEZ,EAAEE,EAAED,GAAGijD,GAAGtiD,EAAEZ,EAAEE,IAAWA,CAAC,CAC3b,SAAS82D,GAAGp2D,GAAe,OAAZA,EAAEA,EAAE0f,SAAcglB,OAAyB1kC,EAAE0kC,MAAM/a,IAAoD3pB,EAAE0kC,MAAM9B,WAAhF,IAA0F,CAAC,SAASyzB,GAAGr2D,EAAEjB,GAAqB,GAAG,QAArBiB,EAAEA,EAAEskC,gBAA2B,OAAOtkC,EAAEukC,WAAW,CAAC,IAAIrlC,EAAEc,EAAEq+C,UAAUr+C,EAAEq+C,UAAU,IAAIn/C,GAAGA,EAAEH,EAAEG,EAAEH,CAAC,CAAC,CAAC,SAASu3D,GAAGt2D,EAAEjB,GAAGs3D,GAAGr2D,EAAEjB,IAAIiB,EAAEA,EAAEkkC,YAAYmyB,GAAGr2D,EAAEjB,EAAE,CAnB7SkzD,GAAG,SAASjyD,EAAEjB,EAAEG,GAAG,GAAG,OAAOc,EAAE,GAAGA,EAAE2+C,gBAAgB5/C,EAAEm/C,cAAcvC,GAAGj8B,QAAQohC,IAAG,MAAO,CAAC,GAAG,KAAK9gD,EAAE6gD,MAAM3hD,IAAI,KAAa,IAARH,EAAEqlC,OAAW,OAAO0c,IAAG,EAzE1I,SAAY9gD,EAAEjB,EAAEG,GAAG,OAAOH,EAAE4qB,KAAK,KAAK,EAAEijC,GAAG7tD,GAAG8/C,KAAK,MAAM,KAAK,EAAEsE,GAAGpkD,GAAG,MAAM,KAAK,EAAEi9C,GAAGj9C,EAAEoB,OAAOk8C,GAAGt9C,GAAG,MAAM,KAAK,EAAEikD,GAAGjkD,EAAEA,EAAE6jC,UAAU4G,eAAe,MAAM,KAAK,GAAG,IAAIrqC,EAAEJ,EAAEoB,KAAKk6B,SAASj7B,EAAEL,EAAE4/C,cAAc5qC,MAAM0nC,GAAEyE,GAAG/gD,EAAEohD,eAAephD,EAAEohD,cAAcnhD,EAAE,MAAM,KAAK,GAAqB,GAAG,QAArBD,EAAEJ,EAAEulC,eAA2B,OAAG,OAAOnlC,EAAEolC,YAAkBkX,GAAE1zC,GAAY,EAAVA,GAAE2X,SAAW3gB,EAAEqlC,OAAO,IAAI,MAAQ,KAAKllC,EAAEH,EAAE2lC,MAAM+b,YAAmB4M,GAAGrtD,EAAEjB,EAAEG,IAAGu8C,GAAE1zC,GAAY,EAAVA,GAAE2X,SAA8B,QAAnB1f,EAAE2rD,GAAG3rD,EAAEjB,EAAEG,IAAmBc,EAAE2kC,QAAQ,MAAK8W,GAAE1zC,GAAY,EAAVA,GAAE2X,SAAW,MAAM,KAAK,GAC7d,GADgevgB,EAAE,KAAKD,EACrfH,EAAE0hD,YAAe,KAAa,IAARzgD,EAAEokC,OAAW,CAAC,GAAGjlC,EAAE,OAAOsvD,GAAGzuD,EAAEjB,EAAEG,GAAGH,EAAEqlC,OAAO,GAAG,CAA6F,GAA1E,QAAlBhlC,EAAEL,EAAEulC,iBAAyBllC,EAAEgvD,UAAU,KAAKhvD,EAAEmvD,KAAK,KAAKnvD,EAAE2mD,WAAW,MAAMtK,GAAE1zC,GAAEA,GAAE2X,SAAYvgB,EAAE,MAAW,OAAO,KAAK,KAAK,GAAG,KAAK,GAAG,OAAOJ,EAAE8hD,MAAM,EAAEkL,GAAG/rD,EAAEjB,EAAEG,GAAG,OAAOysD,GAAG3rD,EAAEjB,EAAEG,EAAE,CAwE7Gq3D,CAAGv2D,EAAEjB,EAAEG,GAAG4hD,GAAG,KAAa,OAAR9gD,EAAEokC,MAAmB,MAAM0c,IAAG,EAAGlD,IAAG,KAAa,QAAR7+C,EAAEqlC,QAAgBmZ,GAAGx+C,EAAEi+C,GAAGj+C,EAAE8c,OAAiB,OAAV9c,EAAE8hD,MAAM,EAAS9hD,EAAE4qB,KAAK,KAAK,EAAE,IAAIxqB,EAAEJ,EAAEoB,KAAKosD,GAAGvsD,EAAEjB,GAAGiB,EAAEjB,EAAEm/C,aAAa,IAAI9+C,EAAEy8C,GAAG98C,EAAE+J,GAAE4W,SAASghC,GAAG3hD,EAAEG,GAAGE,EAAEglD,GAAG,KAAKrlD,EAAEI,EAAEa,EAAEZ,EAAEF,GAAG,IAAIG,EAAEolD,KACvI,OAD4I1lD,EAAEqlC,OAAO,EAAE,kBAAkBhlC,GAAG,OAAOA,GAAG,oBAAoBA,EAAEsZ,aAAQ,IAAStZ,EAAEc,UAAUnB,EAAE4qB,IAAI,EAAE5qB,EAAEulC,cAAc,KAAKvlC,EAAEwiD,YAC1e,KAAKvF,GAAG78C,IAAIE,GAAE,EAAGg9C,GAAGt9C,IAAIM,GAAE,EAAGN,EAAEulC,cAAc,OAAOllC,EAAEsqD,YAAO,IAAStqD,EAAEsqD,MAAMtqD,EAAEsqD,MAAM,KAAKpI,GAAGviD,GAAGK,EAAEuqD,QAAQX,GAAGjqD,EAAE6jC,UAAUxjC,EAAEA,EAAE8pD,gBAAgBnqD,EAAEgrD,GAAGhrD,EAAEI,EAAEa,EAAEd,GAAGH,EAAE4tD,GAAG,KAAK5tD,EAAEI,GAAE,EAAGE,EAAEH,KAAKH,EAAE4qB,IAAI,EAAEi0B,IAAGv+C,GAAGm+C,GAAGz+C,GAAG0sD,GAAG,KAAK1sD,EAAEK,EAAEF,GAAGH,EAAEA,EAAE2lC,OAAc3lC,EAAE,KAAK,GAAGI,EAAEJ,EAAE82B,YAAY71B,EAAE,CAAqF,OAApFusD,GAAGvsD,EAAEjB,GAAGiB,EAAEjB,EAAEm/C,aAAuB/+C,GAAVC,EAAED,EAAEo7B,OAAUp7B,EAAEm7B,UAAUv7B,EAAEoB,KAAKhB,EAAEC,EAAEL,EAAE4qB,IAQtU,SAAY3pB,GAAG,GAAG,oBAAoBA,EAAE,OAAO4rD,GAAG5rD,GAAG,EAAE,EAAE,QAAG,IAASA,GAAG,OAAOA,EAAE,CAAc,IAAbA,EAAEA,EAAEE,YAAgB+4B,EAAG,OAAO,GAAG,GAAGj5B,IAAIo5B,EAAG,OAAO,EAAE,CAAC,OAAO,CAAC,CAR2Lo9B,CAAGr3D,GAAGa,EAAE8oD,GAAG3pD,EAAEa,GAAUZ,GAAG,KAAK,EAAEL,EAAE+sD,GAAG,KAAK/sD,EAAEI,EAAEa,EAAEd,GAAG,MAAMc,EAAE,KAAK,EAAEjB,EAAEutD,GAAG,KAAKvtD,EAAEI,EAAEa,EAAEd,GAAG,MAAMc,EAAE,KAAK,GAAGjB,EAAE2sD,GAAG,KAAK3sD,EAAEI,EAAEa,EAAEd,GAAG,MAAMc,EAAE,KAAK,GAAGjB,EAAEoI,GAAG,KAAKpI,EAAEI,EAAE2pD,GAAG3pD,EAAEgB,KAAKH,GAAGd,GAAG,MAAMc,EAAE,MAAMwJ,MAAM5J,EAAE,IACvgBT,EAAE,IAAK,CAAC,OAAOJ,EAAE,KAAK,EAAE,OAAOI,EAAEJ,EAAEoB,KAAKf,EAAEL,EAAEm/C,aAA2C4N,GAAG9rD,EAAEjB,EAAEI,EAArCC,EAAEL,EAAE82B,cAAc12B,EAAEC,EAAE0pD,GAAG3pD,EAAEC,GAAcF,GAAG,KAAK,EAAE,OAAOC,EAAEJ,EAAEoB,KAAKf,EAAEL,EAAEm/C,aAA2CoO,GAAGtsD,EAAEjB,EAAEI,EAArCC,EAAEL,EAAE82B,cAAc12B,EAAEC,EAAE0pD,GAAG3pD,EAAEC,GAAcF,GAAG,KAAK,EAAEc,EAAE,CAAO,GAAN4sD,GAAG7tD,GAAM,OAAOiB,EAAE,MAAMwJ,MAAM5J,EAAE,MAAMT,EAAEJ,EAAEm/C,aAA+B9+C,GAAlBC,EAAEN,EAAEulC,eAAkB1O,QAAQksB,GAAG9hD,EAAEjB,GAAGyjD,GAAGzjD,EAAEI,EAAE,KAAKD,GAAG,IAAII,EAAEP,EAAEulC,cAA0B,GAAZnlC,EAAEG,EAAEs2B,QAAWv2B,EAAEkqC,aAAY,CAAC,GAAGlqC,EAAE,CAACu2B,QAAQz2B,EAAEoqC,cAAa,EAAGxiB,MAAMznB,EAAEynB,MAAMivC,0BAA0B12D,EAAE02D,0BAA0B9J,YAAY5sD,EAAE4sD,aAAantD,EAAEwiD,YAAYC,UAChfniD,EAAEN,EAAEulC,cAAcjlC,EAAU,IAARN,EAAEqlC,MAAU,CAAuBrlC,EAAE+tD,GAAG9sD,EAAEjB,EAAEI,EAAED,EAAjCE,EAAEgrD,GAAG5gD,MAAM5J,EAAE,MAAMb,IAAmB,MAAMiB,CAAC,CAAM,GAAGb,IAAIC,EAAE,CAAuBL,EAAE+tD,GAAG9sD,EAAEjB,EAAEI,EAAED,EAAjCE,EAAEgrD,GAAG5gD,MAAM5J,EAAE,MAAMb,IAAmB,MAAMiB,CAAC,CAAM,IAAI29C,GAAG9C,GAAG97C,EAAE6jC,UAAU4G,cAAclM,YAAYogB,GAAG3+C,EAAE6+C,IAAE,EAAGC,GAAG,KAAK3+C,EAAE+gD,GAAGlhD,EAAE,KAAKI,EAAED,GAAGH,EAAE2lC,MAAMxlC,EAAEA,GAAGA,EAAEklC,OAAe,EAATllC,EAAEklC,MAAS,KAAKllC,EAAEA,EAAEylC,OAAQ,KAAI,CAAM,GAALka,KAAQ1/C,IAAIC,EAAE,CAACL,EAAE4sD,GAAG3rD,EAAEjB,EAAEG,GAAG,MAAMc,CAAC,CAACyrD,GAAGzrD,EAAEjB,EAAEI,EAAED,EAAE,CAACH,EAAEA,EAAE2lC,KAAK,CAAC,OAAO3lC,EAAE,KAAK,EAAE,OAAOokD,GAAGpkD,GAAG,OAAOiB,GAAGw+C,GAAGz/C,GAAGI,EAAEJ,EAAEoB,KAAKf,EAAEL,EAAEm/C,aAAa7+C,EAAE,OAAOW,EAAEA,EAAE2+C,cAAc,KAAKr/C,EAAEF,EAAEu9B,SAASud,GAAG/6C,EAAEC,GAAGE,EAAE,KAAK,OAAOD,GAAG66C,GAAG/6C,EAAEE,KAAKN,EAAEqlC,OAAO,IACnfioB,GAAGrsD,EAAEjB,GAAG0sD,GAAGzrD,EAAEjB,EAAEO,EAAEJ,GAAGH,EAAE2lC,MAAM,KAAK,EAAE,OAAO,OAAO1kC,GAAGw+C,GAAGz/C,GAAG,KAAK,KAAK,GAAG,OAAOsuD,GAAGrtD,EAAEjB,EAAEG,GAAG,KAAK,EAAE,OAAO8jD,GAAGjkD,EAAEA,EAAE6jC,UAAU4G,eAAerqC,EAAEJ,EAAEm/C,aAAa,OAAOl+C,EAAEjB,EAAE2lC,MAAMsb,GAAGjhD,EAAE,KAAKI,EAAED,GAAGusD,GAAGzrD,EAAEjB,EAAEI,EAAED,GAAGH,EAAE2lC,MAAM,KAAK,GAAG,OAAOvlC,EAAEJ,EAAEoB,KAAKf,EAAEL,EAAEm/C,aAA2CwN,GAAG1rD,EAAEjB,EAAEI,EAArCC,EAAEL,EAAE82B,cAAc12B,EAAEC,EAAE0pD,GAAG3pD,EAAEC,GAAcF,GAAG,KAAK,EAAE,OAAOusD,GAAGzrD,EAAEjB,EAAEA,EAAEm/C,aAAah/C,GAAGH,EAAE2lC,MAAM,KAAK,EAAmD,KAAK,GAAG,OAAO+mB,GAAGzrD,EAAEjB,EAAEA,EAAEm/C,aAAavhB,SAASz9B,GAAGH,EAAE2lC,MAAM,KAAK,GAAG1kC,EAAE,CACxZ,GADyZb,EAAEJ,EAAEoB,KAAKk6B,SAASj7B,EAAEL,EAAEm/C,aAAa7+C,EAAEN,EAAE4/C,cAClfr/C,EAAEF,EAAE2U,MAAM0nC,GAAEyE,GAAG/gD,EAAEohD,eAAephD,EAAEohD,cAAcjhD,EAAK,OAAOD,EAAE,GAAG80C,GAAG90C,EAAE0U,MAAMzU,IAAI,GAAGD,EAAEs9B,WAAWv9B,EAAEu9B,WAAWgf,GAAGj8B,QAAQ,CAAC3gB,EAAE4sD,GAAG3rD,EAAEjB,EAAEG,GAAG,MAAMc,CAAC,OAAO,IAAc,QAAVX,EAAEN,EAAE2lC,SAAiBrlC,EAAE8kC,OAAOplC,GAAG,OAAOM,GAAG,CAAC,IAAIE,EAAEF,EAAEshD,aAAa,GAAG,OAAOphD,EAAE,CAACD,EAAED,EAAEqlC,MAAM,IAAI,IAAIllC,EAAED,EAAEqhD,aAAa,OAAOphD,GAAG,CAAC,GAAGA,EAAEyV,UAAU9V,EAAE,CAAC,GAAG,IAAIE,EAAEsqB,IAAI,EAACnqB,EAAEuiD,IAAI,EAAE7iD,GAAGA,IAAKyqB,IAAI,EAAE,IAAIlqB,EAAEJ,EAAEkiD,YAAY,GAAG,OAAO9hD,EAAE,CAAY,IAAIC,GAAfD,EAAEA,EAAEkiD,QAAeC,QAAQ,OAAOliD,EAAEF,EAAEsgD,KAAKtgD,GAAGA,EAAEsgD,KAAKpgD,EAAEogD,KAAKpgD,EAAEogD,KAAKtgD,GAAGC,EAAEmiD,QAAQpiD,CAAC,CAAC,CAACH,EAAEwhD,OAAO3hD,EAAgB,QAAdM,EAAEH,EAAE6kC,aAAqB1kC,EAAEqhD,OAAO3hD,GAAGshD,GAAGnhD,EAAE8kC,OAClfjlC,EAAEH,GAAGQ,EAAEshD,OAAO3hD,EAAE,KAAK,CAACM,EAAEA,EAAEsgD,IAAI,CAAC,MAAM,GAAG,KAAKzgD,EAAEsqB,IAAIrqB,EAAED,EAAEc,OAAOpB,EAAEoB,KAAK,KAAKd,EAAEqlC,WAAW,GAAG,KAAKrlC,EAAEsqB,IAAI,CAAY,GAAG,QAAdrqB,EAAED,EAAE8kC,QAAmB,MAAM36B,MAAM5J,EAAE,MAAMN,EAAEuhD,OAAO3hD,EAAgB,QAAdK,EAAED,EAAE4kC,aAAqB3kC,EAAEshD,OAAO3hD,GAAGshD,GAAGlhD,EAAEJ,EAAEH,GAAGO,EAAED,EAAEslC,OAAO,MAAMrlC,EAAED,EAAEqlC,MAAM,GAAG,OAAOplC,EAAEA,EAAE6kC,OAAO9kC,OAAO,IAAIC,EAAED,EAAE,OAAOC,GAAG,CAAC,GAAGA,IAAIP,EAAE,CAACO,EAAE,KAAK,KAAK,CAAa,GAAG,QAAfD,EAAEC,EAAEqlC,SAAoB,CAACtlC,EAAE8kC,OAAO7kC,EAAE6kC,OAAO7kC,EAAED,EAAE,KAAK,CAACC,EAAEA,EAAE6kC,MAAM,CAAC9kC,EAAEC,CAAC,CAACmsD,GAAGzrD,EAAEjB,EAAEK,EAAEu9B,SAASz9B,GAAGH,EAAEA,EAAE2lC,KAAK,CAAC,OAAO3lC,EAAE,KAAK,EAAE,OAAOK,EAAEL,EAAEoB,KAAKhB,EAAEJ,EAAEm/C,aAAavhB,SAAS+jB,GAAG3hD,EAAEG,GAAWC,EAAEA,EAAVC,EAAE2hD,GAAG3hD,IAAUL,EAAEqlC,OAAO,EAAEqnB,GAAGzrD,EAAEjB,EAAEI,EAAED,GACpfH,EAAE2lC,MAAM,KAAK,GAAG,OAAgBtlC,EAAE0pD,GAAX3pD,EAAEJ,EAAEoB,KAAYpB,EAAEm/C,cAA6B/2C,GAAGnH,EAAEjB,EAAEI,EAAtBC,EAAE0pD,GAAG3pD,EAAEgB,KAAKf,GAAcF,GAAG,KAAK,GAAG,OAAO2sD,GAAG7rD,EAAEjB,EAAEA,EAAEoB,KAAKpB,EAAEm/C,aAAah/C,GAAG,KAAK,GAAG,OAAOC,EAAEJ,EAAEoB,KAAKf,EAAEL,EAAEm/C,aAAa9+C,EAAEL,EAAE82B,cAAc12B,EAAEC,EAAE0pD,GAAG3pD,EAAEC,GAAGmtD,GAAGvsD,EAAEjB,GAAGA,EAAE4qB,IAAI,EAAEqyB,GAAG78C,IAAIa,GAAE,EAAGq8C,GAAGt9C,IAAIiB,GAAE,EAAG0gD,GAAG3hD,EAAEG,GAAGuqD,GAAG1qD,EAAEI,EAAEC,GAAG2qD,GAAGhrD,EAAEI,EAAEC,EAAEF,GAAGytD,GAAG,KAAK5tD,EAAEI,GAAE,EAAGa,EAAEd,GAAG,KAAK,GAAG,OAAOuvD,GAAGzuD,EAAEjB,EAAEG,GAAG,KAAK,GAAG,OAAO6sD,GAAG/rD,EAAEjB,EAAEG,GAAG,MAAMsK,MAAM5J,EAAE,IAAIb,EAAE4qB,KAAM,EAYxC,IAAI8sC,GAAG,oBAAoBC,YAAYA,YAAY,SAAS12D,GAAGwqD,QAAQC,MAAMzqD,EAAE,EAAE,SAAS22D,GAAG32D,GAAGkD,KAAK0zD,cAAc52D,CAAC,CACjI,SAAS62D,GAAG72D,GAAGkD,KAAK0zD,cAAc52D,CAAC,CAC5J,SAAS82D,GAAG92D,GAAG,SAASA,GAAG,IAAIA,EAAEutB,UAAU,IAAIvtB,EAAEutB,UAAU,KAAKvtB,EAAEutB,SAAS,CAAC,SAASwpC,GAAG/2D,GAAG,SAASA,GAAG,IAAIA,EAAEutB,UAAU,IAAIvtB,EAAEutB,UAAU,KAAKvtB,EAAEutB,WAAW,IAAIvtB,EAAEutB,UAAU,iCAAiCvtB,EAAE69B,WAAW,CAAC,SAASm5B,KAAK,CAExa,SAASC,GAAGj3D,EAAEjB,EAAEG,EAAEC,EAAEC,GAAG,IAAIC,EAAEH,EAAEwxD,oBAAoB,GAAGrxD,EAAE,CAAC,IAAIC,EAAED,EAAE,GAAG,oBAAoBD,EAAE,CAAC,IAAIG,EAAEH,EAAEA,EAAE,WAAW,IAAIY,EAAEo2D,GAAG92D,GAAGC,EAAE6K,KAAKpK,EAAE,CAAC,CAACm2D,GAAGp3D,EAAEO,EAAEU,EAAEZ,EAAE,MAAME,EADxJ,SAAYU,EAAEjB,EAAEG,EAAEC,EAAEC,GAAG,GAAGA,EAAE,CAAC,GAAG,oBAAoBD,EAAE,CAAC,IAAIE,EAAEF,EAAEA,EAAE,WAAW,IAAIa,EAAEo2D,GAAG92D,GAAGD,EAAE+K,KAAKpK,EAAE,CAAC,CAAC,IAAIV,EAAE42D,GAAGn3D,EAAEI,EAAEa,EAAE,EAAE,MAAK,EAAG,EAAG,GAAGg3D,IAAmF,OAA/Eh3D,EAAE0wD,oBAAoBpxD,EAAEU,EAAEg5C,IAAI15C,EAAEogB,QAAQg5B,GAAG,IAAI14C,EAAEutB,SAASvtB,EAAEsiC,WAAWtiC,GAAG40D,KAAYt1D,CAAC,CAAC,KAAKF,EAAEY,EAAE49B,WAAW59B,EAAEu9B,YAAYn+B,GAAG,GAAG,oBAAoBD,EAAE,CAAC,IAAII,EAAEJ,EAAEA,EAAE,WAAW,IAAIa,EAAEo2D,GAAG52D,GAAGD,EAAE6K,KAAKpK,EAAE,CAAC,CAAC,IAAIR,EAAEu2D,GAAG/1D,EAAE,GAAE,EAAG,KAAK,GAAK,EAAG,EAAG,GAAGg3D,IAA0G,OAAtGh3D,EAAE0wD,oBAAoBlxD,EAAEQ,EAAEg5C,IAAIx5C,EAAEkgB,QAAQg5B,GAAG,IAAI14C,EAAEutB,SAASvtB,EAAEsiC,WAAWtiC,GAAG40D,IAAG,WAAWuB,GAAGp3D,EAAES,EAAEN,EAAEC,EAAE,IAAUK,CAAC,CACpU03D,CAAGh4D,EAAEH,EAAEiB,EAAEZ,EAAED,GAAG,OAAOi3D,GAAG92D,EAAE,CAHpLu3D,GAAGzzD,UAAUsV,OAAOi+C,GAAGvzD,UAAUsV,OAAO,SAAS1Y,GAAG,IAAIjB,EAAEmE,KAAK0zD,cAAc,GAAG,OAAO73D,EAAE,MAAMyK,MAAM5J,EAAE,MAAMu2D,GAAGn2D,EAAEjB,EAAE,KAAK,KAAK,EAAE83D,GAAGzzD,UAAU+zD,QAAQR,GAAGvzD,UAAU+zD,QAAQ,WAAW,IAAIn3D,EAAEkD,KAAK0zD,cAAc,GAAG,OAAO52D,EAAE,CAACkD,KAAK0zD,cAAc,KAAK,IAAI73D,EAAEiB,EAAEwpC,cAAcorB,IAAG,WAAWuB,GAAG,KAAKn2D,EAAE,KAAK,KAAK,IAAGjB,EAAEi6C,IAAI,IAAI,CAAC,EACzT6d,GAAGzzD,UAAUg0D,2BAA2B,SAASp3D,GAAG,GAAGA,EAAE,CAAC,IAAIjB,EAAEipC,KAAKhoC,EAAE,CAACgpC,UAAU,KAAK7G,OAAOniC,EAAEspC,SAASvqC,GAAG,IAAI,IAAIG,EAAE,EAAEA,EAAEupC,GAAGvnC,QAAQ,IAAInC,GAAGA,EAAE0pC,GAAGvpC,GAAGoqC,SAASpqC,KAAKupC,GAAGtb,OAAOjuB,EAAE,EAAEc,GAAG,IAAId,GAAGkqC,GAAGppC,EAAE,CAAC,EAEX6nC,GAAG,SAAS7nC,GAAG,OAAOA,EAAE2pB,KAAK,KAAK,EAAE,IAAI5qB,EAAEiB,EAAE4iC,UAAU,GAAG7jC,EAAE2gB,QAAQ4kB,cAAciF,aAAa,CAAC,IAAIrqC,EAAE2nC,GAAG9nC,EAAEgoC,cAAc,IAAI7nC,IAAIwoC,GAAG3oC,EAAI,EAAFG,GAAKm0D,GAAGt0D,EAAEumC,MAAK,KAAO,EAAF+c,MAAOiN,GAAGhqB,KAAI,IAAIsX,MAAM,CAAC,MAAM,KAAK,GAAGgY,IAAG,WAAW,IAAI71D,EAAEqiD,GAAGphD,EAAE,GAAG,GAAG,OAAOjB,EAAE,CAAC,IAAIG,EAAEuoD,KAAItB,GAAGpnD,EAAEiB,EAAE,EAAEd,EAAE,CAAC,IAAGo3D,GAAGt2D,EAAE,GAAG,EAC/b8nC,GAAG,SAAS9nC,GAAG,GAAG,KAAKA,EAAE2pB,IAAI,CAAC,IAAI5qB,EAAEqiD,GAAGphD,EAAE,WAAW,GAAG,OAAOjB,EAAaonD,GAAGpnD,EAAEiB,EAAE,UAAXynD,MAAwB6O,GAAGt2D,EAAE,UAAU,CAAC,EAAE+nC,GAAG,SAAS/nC,GAAG,GAAG,KAAKA,EAAE2pB,IAAI,CAAC,IAAI5qB,EAAEuoD,GAAGtnD,GAAGd,EAAEkiD,GAAGphD,EAAEjB,GAAG,GAAG,OAAOG,EAAainD,GAAGjnD,EAAEc,EAAEjB,EAAX0oD,MAAgB6O,GAAGt2D,EAAEjB,EAAE,CAAC,EAAEipC,GAAG,WAAW,OAAOL,EAAC,EAAEM,GAAG,SAASjoC,EAAEjB,GAAG,IAAIG,EAAEyoC,GAAE,IAAI,OAAOA,GAAE3nC,EAAEjB,GAAG,CAAC,QAAQ4oC,GAAEzoC,CAAC,CAAC,EAClSqjC,GAAG,SAASviC,EAAEjB,EAAEG,GAAG,OAAOH,GAAG,IAAK,QAAyB,GAAjBi9B,EAAGh8B,EAAEd,GAAGH,EAAEG,EAAE0B,KAAQ,UAAU1B,EAAEiB,MAAM,MAAMpB,EAAE,CAAC,IAAIG,EAAEc,EAAEd,EAAEojC,YAAYpjC,EAAEA,EAAEojC,WAAsF,IAA3EpjC,EAAEA,EAAEm4D,iBAAiB,cAAcC,KAAKC,UAAU,GAAGx4D,GAAG,mBAAuBA,EAAE,EAAEA,EAAEG,EAAEgC,OAAOnC,IAAI,CAAC,IAAII,EAAED,EAAEH,GAAG,GAAGI,IAAIa,GAAGb,EAAEq4D,OAAOx3D,EAAEw3D,KAAK,CAAC,IAAIp4D,EAAEyjC,GAAG1jC,GAAG,IAAIC,EAAE,MAAMoK,MAAM5J,EAAE,KAAKu7B,EAAGh8B,GAAG68B,EAAG78B,EAAEC,EAAE,CAAC,CAAC,CAAC,MAAM,IAAK,WAAWy9B,GAAG78B,EAAEd,GAAG,MAAM,IAAK,SAAmB,OAAVH,EAAEG,EAAE6U,QAAesoB,GAAGr8B,IAAId,EAAE4vD,SAAS/vD,GAAE,GAAI,EAAEikC,GAAG2xB,GAAG1xB,GAAG2xB,GACpa,IAAI6C,GAAG,CAACC,uBAAsB,EAAG5iD,OAAO,CAAC6tB,GAAG0Q,GAAGxQ,GAAGC,GAAGC,GAAG4xB,KAAKgD,GAAG,CAACC,wBAAwBvuB,GAAGwuB,WAAW,EAAEC,QAAQ,SAASC,oBAAoB,aAC1IC,GAAG,CAACH,WAAWF,GAAGE,WAAWC,QAAQH,GAAGG,QAAQC,oBAAoBJ,GAAGI,oBAAoBE,eAAeN,GAAGM,eAAeC,kBAAkB,KAAKC,4BAA4B,KAAKC,4BAA4B,KAAKC,cAAc,KAAKC,wBAAwB,KAAKC,wBAAwB,KAAKC,gBAAgB,KAAKC,mBAAmB,KAAKC,eAAe,KAAKC,qBAAqBngC,EAAGmrB,uBAAuBiV,wBAAwB,SAAS54D,GAAW,OAAO,QAAfA,EAAEykC,GAAGzkC,IAAmB,KAAKA,EAAE4iC,SAAS,EAAEg1B,wBAAwBD,GAAGC,yBARjN,WAAc,OAAO,IAAI,EASpUiB,4BAA4B,KAAKC,gBAAgB,KAAKC,aAAa,KAAKC,kBAAkB,KAAKC,gBAAgB,KAAKC,kBAAkB,mCAAmC,GAAG,qBAAqBC,+BAA+B,CAAC,IAAIC,GAAGD,+BAA+B,IAAIC,GAAGC,YAAYD,GAAGE,cAAc,IAAIlzB,GAAGgzB,GAAGG,OAAOvB,IAAI3xB,GAAG+yB,EAAE,CAAC,MAAMp5D,IAAG,CAAC,CAACK,EAAQo4B,mDAAmDg/B,GAC/Yp3D,EAAQm5D,aAAa,SAASx5D,EAAEjB,GAAG,IAAIG,EAAE,EAAEwD,UAAUxB,aAAQ,IAASwB,UAAU,GAAGA,UAAU,GAAG,KAAK,IAAIo0D,GAAG/3D,GAAG,MAAMyK,MAAM5J,EAAE,MAAM,OAbuH,SAAYI,EAAEjB,EAAEG,GAAG,IAAIC,EAAE,EAAEuD,UAAUxB,aAAQ,IAASwB,UAAU,GAAGA,UAAU,GAAG,KAAK,MAAM,CAACxC,SAASy4B,EAAGlf,IAAI,MAAMta,EAAE,KAAK,GAAGA,EAAEw9B,SAAS38B,EAAEwpC,cAAczqC,EAAE4gD,eAAezgD,EAAE,CAa1Ru6D,CAAGz5D,EAAEjB,EAAE,KAAKG,EAAE,EAAEmB,EAAQq5D,WAAW,SAAS15D,EAAEjB,GAAG,IAAI+3D,GAAG92D,GAAG,MAAMwJ,MAAM5J,EAAE,MAAM,IAAIV,GAAE,EAAGC,EAAE,GAAGC,EAAEq3D,GAA4P,OAAzP,OAAO13D,QAAG,IAASA,KAAI,IAAKA,EAAE46D,sBAAsBz6D,GAAE,QAAI,IAASH,EAAE8pD,mBAAmB1pD,EAAEJ,EAAE8pD,uBAAkB,IAAS9pD,EAAEs2D,qBAAqBj2D,EAAEL,EAAEs2D,qBAAqBt2D,EAAEg3D,GAAG/1D,EAAE,GAAE,EAAG,KAAK,EAAKd,EAAE,EAAGC,EAAEC,GAAGY,EAAEg5C,IAAIj6C,EAAE2gB,QAAQg5B,GAAG,IAAI14C,EAAEutB,SAASvtB,EAAEsiC,WAAWtiC,GAAU,IAAI22D,GAAG53D,EAAE,EACrfsB,EAAQu5D,YAAY,SAAS55D,GAAG,GAAG,MAAMA,EAAE,OAAO,KAAK,GAAG,IAAIA,EAAEutB,SAAS,OAAOvtB,EAAE,IAAIjB,EAAEiB,EAAEkpD,gBAAgB,QAAG,IAASnqD,EAAE,CAAC,GAAG,oBAAoBiB,EAAE0Y,OAAO,MAAMlP,MAAM5J,EAAE,MAAiC,MAA3BI,EAAE4U,OAAO0E,KAAKtZ,GAAGoB,KAAK,KAAWoI,MAAM5J,EAAE,IAAII,GAAI,CAAqC,OAA5BA,EAAE,QAAVA,EAAEykC,GAAG1lC,IAAc,KAAKiB,EAAE4iC,SAAkB,EAAEviC,EAAQw5D,UAAU,SAAS75D,GAAG,OAAO40D,GAAG50D,EAAE,EAAEK,EAAQy5D,QAAQ,SAAS95D,EAAEjB,EAAEG,GAAG,IAAI63D,GAAGh4D,GAAG,MAAMyK,MAAM5J,EAAE,MAAM,OAAOq3D,GAAG,KAAKj3D,EAAEjB,GAAE,EAAGG,EAAE,EAC/YmB,EAAQ05D,YAAY,SAAS/5D,EAAEjB,EAAEG,GAAG,IAAI43D,GAAG92D,GAAG,MAAMwJ,MAAM5J,EAAE,MAAM,IAAIT,EAAE,MAAMD,GAAGA,EAAE86D,iBAAiB,KAAK56D,GAAE,EAAGC,EAAE,GAAGC,EAAEm3D,GAAyO,GAAtO,OAAOv3D,QAAG,IAASA,KAAI,IAAKA,EAAEy6D,sBAAsBv6D,GAAE,QAAI,IAASF,EAAE2pD,mBAAmBxpD,EAAEH,EAAE2pD,uBAAkB,IAAS3pD,EAAEm2D,qBAAqB/1D,EAAEJ,EAAEm2D,qBAAqBt2D,EAAEm3D,GAAGn3D,EAAE,KAAKiB,EAAE,EAAE,MAAMd,EAAEA,EAAE,KAAKE,EAAE,EAAGC,EAAEC,GAAGU,EAAEg5C,IAAIj6C,EAAE2gB,QAAQg5B,GAAG14C,GAAMb,EAAE,IAAIa,EAAE,EAAEA,EAAEb,EAAE+B,OAAOlB,IAA2BZ,GAAhBA,GAAPF,EAAEC,EAAEa,IAAOi6D,aAAgB/6D,EAAEg7D,SAAS,MAAMn7D,EAAE+2D,gCAAgC/2D,EAAE+2D,gCAAgC,CAAC52D,EAAEE,GAAGL,EAAE+2D,gCAAgCrpD,KAAKvN,EACvhBE,GAAG,OAAO,IAAIy3D,GAAG93D,EAAE,EAAEsB,EAAQqY,OAAO,SAAS1Y,EAAEjB,EAAEG,GAAG,IAAI63D,GAAGh4D,GAAG,MAAMyK,MAAM5J,EAAE,MAAM,OAAOq3D,GAAG,KAAKj3D,EAAEjB,GAAE,EAAGG,EAAE,EAAEmB,EAAQ85D,uBAAuB,SAASn6D,GAAG,IAAI+2D,GAAG/2D,GAAG,MAAMwJ,MAAM5J,EAAE,KAAK,QAAOI,EAAE0wD,sBAAqBkE,IAAG,WAAWqC,GAAG,KAAK,KAAKj3D,GAAE,GAAG,WAAWA,EAAE0wD,oBAAoB,KAAK1wD,EAAEg5C,IAAI,IAAI,GAAE,KAAG,EAAM,EAAE34C,EAAQ+5D,wBAAwBzF,GAC/Ut0D,EAAQg6D,oCAAoC,SAASr6D,EAAEjB,EAAEG,EAAEC,GAAG,IAAI43D,GAAG73D,GAAG,MAAMsK,MAAM5J,EAAE,MAAM,GAAG,MAAMI,QAAG,IAASA,EAAEkpD,gBAAgB,MAAM1/C,MAAM5J,EAAE,KAAK,OAAOq3D,GAAGj3D,EAAEjB,EAAEG,GAAE,EAAGC,EAAE,EAAEkB,EAAQy3D,QAAQ,+DC/T7L,IAAIp4D,EAAI0X,EAAQ,MAEd/W,EAAQq5D,WAAah6D,EAAEg6D,WACvBr5D,EAAQ05D,YAAcr6D,EAAEq6D,0CCH1B,SAASO,IAEP,GAC4C,qBAAnCnB,gCAC4C,oBAA5CA,+BAA+BmB,SAcxC,IAEEnB,+BAA+BmB,SAASA,EAC1C,CAAE,MAAOllC,GAGPo1B,QAAQC,MAAMr1B,EAChB,CACF,CAKEklC,GACAl6D,EAAOC,QAAU,EAAjBD,mCCzBW,IAAIf,EAAE+X,EAAQ,MAAS5X,EAAER,OAAOC,IAAI,iBAAiBQ,EAAET,OAAOC,IAAI,kBAAkBS,EAAEkV,OAAOxR,UAAUqR,eAAe9U,EAAEN,EAAEo5B,mDAAmD+yB,kBAAkB5rD,EAAE,CAAC6Z,KAAI,EAAGwlC,KAAI,EAAGsb,QAAO,EAAGC,UAAS,GAChP,SAAS36D,EAAEX,EAAEc,EAAEV,GAAG,IAAIP,EAAEI,EAAE,CAAC,EAAEC,EAAE,KAAKG,EAAE,KAAiF,IAAIR,UAAhF,IAASO,IAAIF,EAAE,GAAGE,QAAG,IAASU,EAAEyZ,MAAMra,EAAE,GAAGY,EAAEyZ,UAAK,IAASzZ,EAAEi/C,MAAM1/C,EAAES,EAAEi/C,KAAcj/C,EAAEN,EAAE0K,KAAKpK,EAAEjB,KAAKa,EAAE6U,eAAe1V,KAAKI,EAAEJ,GAAGiB,EAAEjB,IAAI,GAAGG,GAAGA,EAAEuY,aAAa,IAAI1Y,KAAKiB,EAAEd,EAAEuY,kBAAe,IAAStY,EAAEJ,KAAKI,EAAEJ,GAAGiB,EAAEjB,IAAI,MAAM,CAACmB,SAASV,EAAEW,KAAKjB,EAAEua,IAAIra,EAAE6/C,IAAI1/C,EAAE2oB,MAAM/oB,EAAE+/C,OAAOv/C,EAAE+f,QAAQ,CAACrf,EAAQ2Z,SAASva,EAAEY,EAAQo6D,IAAI56D,EAAEQ,EAAQq6D,KAAK76D,6BCD7V,IAAIJ,EAAET,OAAOC,IAAI,iBAAiBU,EAAEX,OAAOC,IAAI,gBAAgBW,EAAEZ,OAAOC,IAAI,kBAAkBY,EAAEb,OAAOC,IAAI,qBAAqBgB,EAAEjB,OAAOC,IAAI,kBAAkBa,EAAEd,OAAOC,IAAI,kBAAkBH,EAAEE,OAAOC,IAAI,iBAAiBc,EAAEf,OAAOC,IAAI,qBAAqB+C,EAAEhD,OAAOC,IAAI,kBAAkB8D,EAAE/D,OAAOC,IAAI,cAAcyB,EAAE1B,OAAOC,IAAI,cAAcoC,EAAErC,OAAOw6B,SACzW,IAAI8L,EAAE,CAAC2jB,UAAU,WAAW,OAAM,CAAE,EAAEI,mBAAmB,WAAW,EAAED,oBAAoB,WAAW,EAAED,gBAAgB,WAAW,GAAGxhB,EAAE/yB,OAAO+kB,OAAO13B,EAAE,CAAC,EAAE,SAASu5C,EAAEx7C,EAAEjB,EAAEK,GAAG8D,KAAKglB,MAAMloB,EAAEkD,KAAK+R,QAAQlW,EAAEmE,KAAKk8C,KAAKn9C,EAAEiB,KAAKymD,QAAQvqD,GAAGkmC,CAAC,CACwI,SAASwT,IAAI,CAAyB,SAAS2C,EAAEz7C,EAAEjB,EAAEK,GAAG8D,KAAKglB,MAAMloB,EAAEkD,KAAK+R,QAAQlW,EAAEmE,KAAKk8C,KAAKn9C,EAAEiB,KAAKymD,QAAQvqD,GAAGkmC,CAAC,CADxPkW,EAAEp4C,UAAUuyD,iBAAiB,CAAC,EACpQna,EAAEp4C,UAAUu3D,SAAS,SAAS36D,EAAEjB,GAAG,GAAG,kBAAkBiB,GAAG,oBAAoBA,GAAG,MAAMA,EAAE,MAAMwJ,MAAM,yHAAyHtG,KAAKymD,QAAQR,gBAAgBjmD,KAAKlD,EAAEjB,EAAE,WAAW,EAAEy8C,EAAEp4C,UAAUw3D,YAAY,SAAS56D,GAAGkD,KAAKymD,QAAQN,mBAAmBnmD,KAAKlD,EAAE,cAAc,EAAgB84C,EAAE11C,UAAUo4C,EAAEp4C,UAAsF,IAAI0F,EAAE2yC,EAAEr4C,UAAU,IAAI01C,EACrfhwC,EAAEwD,YAAYmvC,EAAE9T,EAAE7+B,EAAE0yC,EAAEp4C,WAAW0F,EAAE0gD,sBAAqB,EAAG,IAAI5L,EAAEz8C,MAAMqd,QAAQq6B,EAAEjkC,OAAOxR,UAAUqR,eAAe4tC,EAAE,CAAC3iC,QAAQ,MAAM3X,EAAE,CAAC0R,KAAI,EAAGwlC,KAAI,EAAGsb,QAAO,EAAGC,UAAS,GACtK,SAAS75D,EAAEX,EAAEjB,EAAEK,GAAG,IAAID,EAAED,EAAE,CAAC,EAAEM,EAAE,KAAKD,EAAE,KAAK,GAAG,MAAMR,EAAE,IAAII,UAAK,IAASJ,EAAEkgD,MAAM1/C,EAAER,EAAEkgD,UAAK,IAASlgD,EAAE0a,MAAMja,EAAE,GAAGT,EAAE0a,KAAK1a,EAAE85C,EAAEzuC,KAAKrL,EAAEI,KAAK4I,EAAE0M,eAAetV,KAAKD,EAAEC,GAAGJ,EAAEI,IAAI,IAAIG,EAAEoD,UAAUxB,OAAO,EAAE,GAAG,IAAI5B,EAAEJ,EAAEy9B,SAASv9B,OAAO,GAAG,EAAEE,EAAE,CAAC,IAAI,IAAID,EAAE8B,MAAM7B,GAAGI,EAAE,EAAEA,EAAEJ,EAAEI,IAAIL,EAAEK,GAAGgD,UAAUhD,EAAE,GAAGR,EAAEy9B,SAASt9B,CAAC,CAAC,GAAGW,GAAGA,EAAEyX,aAAa,IAAItY,KAAKG,EAAEU,EAAEyX,kBAAe,IAASvY,EAAEC,KAAKD,EAAEC,GAAGG,EAAEH,IAAI,MAAM,CAACe,SAAST,EAAEU,KAAKH,EAAEyZ,IAAIja,EAAEy/C,IAAI1/C,EAAE2oB,MAAMhpB,EAAEggD,OAAOmD,EAAE3iC,QAAQ,CAChV,SAASld,EAAExC,GAAG,MAAM,kBAAkBA,GAAG,OAAOA,GAAGA,EAAEE,WAAWT,CAAC,CAAoG,IAAIuM,EAAE,OAAO,SAAS7J,EAAEnC,EAAEjB,GAAG,MAAM,kBAAkBiB,GAAG,OAAOA,GAAG,MAAMA,EAAEyZ,IAA7K,SAAgBzZ,GAAG,IAAIjB,EAAE,CAAC,IAAI,KAAK,IAAI,MAAM,MAAM,IAAIiB,EAAEqC,QAAQ,SAAQ,SAASrC,GAAG,OAAOjB,EAAEiB,EAAE,GAAE,CAA+E66D,CAAO,GAAG76D,EAAEyZ,KAAK1a,EAAEgG,SAAS,GAAG,CAC/W,SAAS0iD,EAAEznD,EAAEjB,EAAEK,EAAED,EAAED,GAAG,IAAIM,SAASQ,EAAK,cAAcR,GAAG,YAAYA,IAAEQ,EAAE,MAAK,IAAIT,GAAE,EAAG,GAAG,OAAOS,EAAET,GAAE,OAAQ,OAAOC,GAAG,IAAK,SAAS,IAAK,SAASD,GAAE,EAAG,MAAM,IAAK,SAAS,OAAOS,EAAEE,UAAU,KAAKT,EAAE,KAAKE,EAAEJ,GAAE,GAAI,GAAGA,EAAE,OAAWL,EAAEA,EAANK,EAAES,GAASA,EAAE,KAAKb,EAAE,IAAIgD,EAAE5C,EAAE,GAAGJ,EAAEy+C,EAAE1+C,IAAIE,EAAE,GAAG,MAAMY,IAAIZ,EAAEY,EAAEqC,QAAQ2J,EAAE,OAAO,KAAKy7C,EAAEvoD,EAAEH,EAAEK,EAAE,IAAG,SAASY,GAAG,OAAOA,CAAC,KAAI,MAAMd,IAAIsD,EAAEtD,KAAKA,EADnW,SAAWc,EAAEjB,GAAG,MAAM,CAACmB,SAAST,EAAEU,KAAKH,EAAEG,KAAKsZ,IAAI1a,EAAEkgD,IAAIj/C,EAAEi/C,IAAI/2B,MAAMloB,EAAEkoB,MAAMg3B,OAAOl/C,EAAEk/C,OAAO,CACyQ4E,CAAE5kD,EAAEE,IAAIF,EAAEua,KAAKla,GAAGA,EAAEka,MAAMva,EAAEua,IAAI,IAAI,GAAGva,EAAEua,KAAKpX,QAAQ2J,EAAE,OAAO,KAAKhM,IAAIjB,EAAE0N,KAAKvN,IAAI,EAAyB,GAAvBK,EAAE,EAAEJ,EAAE,KAAKA,EAAE,IAAIA,EAAE,IAAOy+C,EAAE59C,GAAG,IAAI,IAAIV,EAAE,EAAEA,EAAEU,EAAEkB,OAAO5B,IAAI,CAC/e,IAAID,EAAEF,EAAEgD,EADwe3C,EACrfQ,EAAEV,GAAeA,GAAGC,GAAGkoD,EAAEjoD,EAAET,EAAEK,EAAEC,EAAEH,EAAE,MAAM,GAAGG,EAPsU,SAAWW,GAAG,OAAG,OAAOA,GAAG,kBAAkBA,EAAS,KAAsC,oBAAjCA,EAAEqB,GAAGrB,EAAEqB,IAAIrB,EAAE,eAA0CA,EAAE,IAAI,CAO5buI,CAAEvI,GAAG,oBAAoBX,EAAE,IAAIW,EAAEX,EAAE+K,KAAKpK,GAAGV,EAAE,IAAIE,EAAEQ,EAAE8/C,QAAQC,MAA6BxgD,GAAGkoD,EAA1BjoD,EAAEA,EAAEuU,MAA0BhV,EAAEK,EAAtBC,EAAEF,EAAEgD,EAAE3C,EAAEF,KAAkBJ,QAAQ,GAAG,WAAWM,EAAE,MAAMT,EAAEkC,OAAOjB,GAAGwJ,MAAM,mDAAmD,oBAAoBzK,EAAE,qBAAqB6V,OAAO0E,KAAKtZ,GAAGoB,KAAK,MAAM,IAAIrC,GAAG,6EAA6E,OAAOQ,CAAC,CACzZ,SAAS+C,EAAEtC,EAAEjB,EAAEK,GAAG,GAAG,MAAMY,EAAE,OAAOA,EAAE,IAAIb,EAAE,GAAGD,EAAE,EAAmD,OAAjDuoD,EAAEznD,EAAEb,EAAE,GAAG,IAAG,SAASa,GAAG,OAAOjB,EAAEqL,KAAKhL,EAAEY,EAAEd,IAAI,IAAUC,CAAC,CAAC,SAASkwD,EAAErvD,GAAG,IAAI,IAAIA,EAAE86D,QAAQ,CAAC,IAAI/7D,EAAEiB,EAAE+6D,SAAQh8D,EAAEA,KAAM07C,MAAK,SAAS17C,GAAM,IAAIiB,EAAE86D,UAAU,IAAI96D,EAAE86D,UAAQ96D,EAAE86D,QAAQ,EAAE96D,EAAE+6D,QAAQh8D,EAAC,IAAE,SAASA,GAAM,IAAIiB,EAAE86D,UAAU,IAAI96D,EAAE86D,UAAQ96D,EAAE86D,QAAQ,EAAE96D,EAAE+6D,QAAQh8D,EAAC,KAAI,IAAIiB,EAAE86D,UAAU96D,EAAE86D,QAAQ,EAAE96D,EAAE+6D,QAAQh8D,EAAE,CAAC,GAAG,IAAIiB,EAAE86D,QAAQ,OAAO96D,EAAE+6D,QAAQC,QAAQ,MAAMh7D,EAAE+6D,OAAQ,CAC5Z,IAAIrL,EAAE,CAAChwC,QAAQ,MAAMmwC,EAAE,CAACzlB,WAAW,MAAM2lB,EAAE,CAACpM,uBAAuB+L,EAAEzlB,wBAAwB4lB,EAAErE,kBAAkBnJ,GAAG,SAASuO,IAAI,MAAMpnD,MAAM,2DAA4D,CACzMnJ,EAAQ46D,SAAS,CAAC1xD,IAAIjH,EAAE2E,QAAQ,SAASjH,EAAEjB,EAAEK,GAAGkD,EAAEtC,GAAE,WAAWjB,EAAE4G,MAAMzC,KAAKR,UAAU,GAAEtD,EAAE,EAAEmvB,MAAM,SAASvuB,GAAG,IAAIjB,EAAE,EAAuB,OAArBuD,EAAEtC,GAAE,WAAWjB,GAAG,IAAUA,CAAC,EAAEm8D,QAAQ,SAASl7D,GAAG,OAAOsC,EAAEtC,GAAE,SAASA,GAAG,OAAOA,CAAC,KAAI,EAAE,EAAEm7D,KAAK,SAASn7D,GAAG,IAAIwC,EAAExC,GAAG,MAAMwJ,MAAM,yEAAyE,OAAOxJ,CAAC,GAAGK,EAAQ+6D,UAAU5f,EAAEn7C,EAAQ2Z,SAASpa,EAAES,EAAQ8Z,SAASla,EAAEI,EAAQg7D,cAAc5f,EAAEp7C,EAAQ+Z,WAAWva,EAAEQ,EAAQga,SAASrY,EAClc3B,EAAQo4B,mDAAmDs3B,EAAE1vD,EAAQi7D,IAAI1K,EACzEvwD,EAAQk7D,aAAa,SAASv7D,EAAEjB,EAAEK,GAAG,GAAG,OAAOY,QAAG,IAASA,EAAE,MAAMwJ,MAAM,iFAAiFxJ,EAAE,KAAK,IAAIb,EAAEwoC,EAAE,CAAC,EAAE3nC,EAAEkoB,OAAOhpB,EAAEc,EAAEyZ,IAAIja,EAAEQ,EAAEi/C,IAAI1/C,EAAES,EAAEk/C,OAAO,GAAG,MAAMngD,EAAE,CAAoE,QAAnE,IAASA,EAAEkgD,MAAMz/C,EAAET,EAAEkgD,IAAI1/C,EAAE8iD,EAAE3iC,cAAS,IAAS3gB,EAAE0a,MAAMva,EAAE,GAAGH,EAAE0a,KAAQzZ,EAAEG,MAAMH,EAAEG,KAAKsX,aAAa,IAAInY,EAAEU,EAAEG,KAAKsX,aAAa,IAAIpY,KAAKN,EAAE85C,EAAEzuC,KAAKrL,EAAEM,KAAK0I,EAAE0M,eAAepV,KAAKF,EAAEE,QAAG,IAASN,EAAEM,SAAI,IAASC,EAAEA,EAAED,GAAGN,EAAEM,GAAG,CAAC,IAAIA,EAAEqD,UAAUxB,OAAO,EAAE,GAAG,IAAI7B,EAAEF,EAAEw9B,SAASv9B,OAAO,GAAG,EAAEC,EAAE,CAACC,EAAE6B,MAAM9B,GACrf,IAAI,IAAIK,EAAE,EAAEA,EAAEL,EAAEK,IAAIJ,EAAEI,GAAGgD,UAAUhD,EAAE,GAAGP,EAAEw9B,SAASr9B,CAAC,CAAC,MAAM,CAACY,SAAST,EAAEU,KAAKH,EAAEG,KAAKsZ,IAAIva,EAAE+/C,IAAIz/C,EAAE0oB,MAAM/oB,EAAE+/C,OAAO3/C,EAAE,EAAEc,EAAQm7D,cAAc,SAASx7D,GAAqK,OAAlKA,EAAE,CAACE,SAASpB,EAAEyhD,cAAcvgD,EAAEy7D,eAAez7D,EAAE07D,aAAa,EAAEC,SAAS,KAAKC,SAAS,KAAKC,cAAc,KAAKC,YAAY,OAAQH,SAAS,CAACz7D,SAASJ,EAAEu6B,SAASr6B,GAAUA,EAAE47D,SAAS57D,CAAC,EAAEK,EAAQ42B,cAAct2B,EAAEN,EAAQ07D,cAAc,SAAS/7D,GAAG,IAAIjB,EAAE4B,EAAE4G,KAAK,KAAKvH,GAAY,OAATjB,EAAEoB,KAAKH,EAASjB,CAAC,EAAEsB,EAAQ27D,UAAU,WAAW,MAAM,CAACt8C,QAAQ,KAAK,EAC9drf,EAAQ47D,WAAW,SAASj8D,GAAG,MAAM,CAACE,SAASH,EAAE2Y,OAAO1Y,EAAE,EAAEK,EAAQ67D,eAAe15D,EAAEnC,EAAQ87D,KAAK,SAASn8D,GAAG,MAAM,CAACE,SAASQ,EAAE45B,SAAS,CAACwgC,SAAS,EAAEC,QAAQ/6D,GAAGu6B,MAAM80B,EAAE,EAAEhvD,EAAQ+7D,KAAK,SAASp8D,EAAEjB,GAAG,MAAM,CAACmB,SAAS6C,EAAE5C,KAAKH,EAAE4R,aAAQ,IAAS7S,EAAE,KAAKA,EAAE,EAAEsB,EAAQg8D,gBAAgB,SAASr8D,GAAG,IAAIjB,EAAE8wD,EAAEzlB,WAAWylB,EAAEzlB,WAAW,CAAC,EAAE,IAAIpqC,GAAG,CAAC,QAAQ6vD,EAAEzlB,WAAWrrC,CAAC,CAAC,EAAEsB,EAAQi8D,aAAa1L,EAAEvwD,EAAQunD,YAAY,SAAS5nD,EAAEjB,GAAG,OAAO2wD,EAAEhwC,QAAQkoC,YAAY5nD,EAAEjB,EAAE,EAAEsB,EAAQwnD,WAAW,SAAS7nD,GAAG,OAAO0vD,EAAEhwC,QAAQmoC,WAAW7nD,EAAE,EAC3fK,EAAQioD,cAAc,WAAW,EAAEjoD,EAAQkoD,iBAAiB,SAASvoD,GAAG,OAAO0vD,EAAEhwC,QAAQ6oC,iBAAiBvoD,EAAE,EAAEK,EAAQynD,UAAU,SAAS9nD,EAAEjB,GAAG,OAAO2wD,EAAEhwC,QAAQooC,UAAU9nD,EAAEjB,EAAE,EAAEsB,EAAQsoD,MAAM,WAAW,OAAO+G,EAAEhwC,QAAQipC,OAAO,EAAEtoD,EAAQ0nD,oBAAoB,SAAS/nD,EAAEjB,EAAEK,GAAG,OAAOswD,EAAEhwC,QAAQqoC,oBAAoB/nD,EAAEjB,EAAEK,EAAE,EAAEiB,EAAQ2nD,mBAAmB,SAAShoD,EAAEjB,GAAG,OAAO2wD,EAAEhwC,QAAQsoC,mBAAmBhoD,EAAEjB,EAAE,EAAEsB,EAAQ4nD,gBAAgB,SAASjoD,EAAEjB,GAAG,OAAO2wD,EAAEhwC,QAAQuoC,gBAAgBjoD,EAAEjB,EAAE,EACzdsB,EAAQ6nD,QAAQ,SAASloD,EAAEjB,GAAG,OAAO2wD,EAAEhwC,QAAQwoC,QAAQloD,EAAEjB,EAAE,EAAEsB,EAAQ8nD,WAAW,SAASnoD,EAAEjB,EAAEK,GAAG,OAAOswD,EAAEhwC,QAAQyoC,WAAWnoD,EAAEjB,EAAEK,EAAE,EAAEiB,EAAQ+nD,OAAO,SAASpoD,GAAG,OAAO0vD,EAAEhwC,QAAQ0oC,OAAOpoD,EAAE,EAAEK,EAAQgoD,SAAS,SAASroD,GAAG,OAAO0vD,EAAEhwC,QAAQ2oC,SAASroD,EAAE,EAAEK,EAAQqoD,qBAAqB,SAAS1oD,EAAEjB,EAAEK,GAAG,OAAOswD,EAAEhwC,QAAQgpC,qBAAqB1oD,EAAEjB,EAAEK,EAAE,EAAEiB,EAAQmoD,cAAc,WAAW,OAAOkH,EAAEhwC,QAAQ8oC,eAAe,EAAEnoD,EAAQy3D,QAAQ,sCCtBla13D,EAAOC,QAAU,EAAjBD,kCCAAA,EAAOC,QAAU,EAAjBD,qCCMerB,EAAE,oBAAoBC,QAAQA,OAAOC,IAAIC,EAAEH,EAAEC,OAAOC,IAAI,iBAAiB,MAAME,EAAEJ,EAAEC,OAAOC,IAAI,gBAAgB,MAAMG,EAAEL,EAAEC,OAAOC,IAAI,kBAAkB,MAAMI,EAAEN,EAAEC,OAAOC,IAAI,qBAAqB,MAAMK,EAAEP,EAAEC,OAAOC,IAAI,kBAAkB,MAAMM,EAAER,EAAEC,OAAOC,IAAI,kBAAkB,MAAMO,EAAET,EAAEC,OAAOC,IAAI,iBAAiB,MAAMQ,EAAEV,EAAEC,OAAOC,IAAI,oBAAoB,MAAMS,EAAEX,EAAEC,OAAOC,IAAI,yBAAyB,MAAMU,EAAEZ,EAAEC,OAAOC,IAAI,qBAAqB,MAAMW,EAAEb,EAAEC,OAAOC,IAAI,kBAAkB,MAAMY,EAAEd,EACpfC,OAAOC,IAAI,uBAAuB,MAAMgB,EAAElB,EAAEC,OAAOC,IAAI,cAAc,MAAMa,EAAEf,EAAEC,OAAOC,IAAI,cAAc,MAAMc,EAAEhB,EAAEC,OAAOC,IAAI,eAAe,MAAM+C,EAAEjD,EAAEC,OAAOC,IAAI,qBAAqB,MAAM8D,EAAEhE,EAAEC,OAAOC,IAAI,mBAAmB,MAAMyB,EAAE3B,EAAEC,OAAOC,IAAI,eAAe,MAClQ,SAASoC,EAAErB,GAAG,GAAG,kBAAkBA,GAAG,OAAOA,EAAE,CAAC,IAAIlB,EAAEkB,EAAEE,SAAS,OAAOpB,GAAG,KAAKI,EAAE,OAAOc,EAAEA,EAAEG,MAAQ,KAAKV,EAAE,KAAKC,EAAE,KAAKN,EAAE,KAAKE,EAAE,KAAKD,EAAE,KAAKO,EAAE,OAAOI,EAAE,QAAQ,OAAOA,EAAEA,GAAGA,EAAEE,UAAY,KAAKV,EAAE,KAAKG,EAAE,KAAKG,EAAE,KAAKG,EAAE,KAAKV,EAAE,OAAOS,EAAE,QAAQ,OAAOlB,GAAG,KAAKK,EAAE,OAAOL,EAAE,CAAC,CAAC,SAASyJ,EAAEvI,GAAG,OAAOqB,EAAErB,KAAKN,CAAC,CAC5CW,EAAQqa,UAAU,SAAS1a,GAAG,MAAM,kBAAkBA,GAAG,OAAOA,GAAGA,EAAEE,WAAWhB,CAAC,EAAoDmB,EAAQua,WAAW,SAAS5a,GAAG,OAAOqB,EAAErB,KAAKZ,CAAC,+BCT5agB,EAAOC,QAAU,EAAjBD,iCCMW,SAASf,EAAEW,EAAEjB,GAAG,IAAIG,EAAEc,EAAEkB,OAAOlB,EAAEyM,KAAK1N,GAAGiB,EAAE,KAAK,EAAEd,GAAG,CAAC,IAAIC,EAAED,EAAE,IAAI,EAAEE,EAAEY,EAAEb,GAAG,KAAG,EAAEG,EAAEF,EAAEL,IAA0B,MAAMiB,EAA7BA,EAAEb,GAAGJ,EAAEiB,EAAEd,GAAGE,EAAEF,EAAEC,CAAc,CAAC,CAAC,SAASI,EAAES,GAAG,OAAO,IAAIA,EAAEkB,OAAO,KAAKlB,EAAE,EAAE,CAAC,SAASR,EAAEQ,GAAG,GAAG,IAAIA,EAAEkB,OAAO,OAAO,KAAK,IAAInC,EAAEiB,EAAE,GAAGd,EAAEc,EAAE2M,MAAM,GAAGzN,IAAIH,EAAE,CAACiB,EAAE,GAAGd,EAAEc,EAAE,IAAI,IAAIb,EAAE,EAAEC,EAAEY,EAAEkB,OAAOc,EAAE5C,IAAI,EAAED,EAAE6C,GAAG,CAAC,IAAItC,EAAE,GAAGP,EAAE,GAAG,EAAEwoC,EAAE3nC,EAAEN,GAAGC,EAAED,EAAE,EAAEqD,EAAE/C,EAAEL,GAAG,GAAG,EAAEL,EAAEqoC,EAAEzoC,GAAGS,EAAEP,GAAG,EAAEE,EAAEyD,EAAE4kC,IAAI3nC,EAAEb,GAAG4D,EAAE/C,EAAEL,GAAGT,EAAEC,EAAEQ,IAAIK,EAAEb,GAAGwoC,EAAE3nC,EAAEN,GAAGR,EAAEC,EAAEO,OAAQ,MAAGC,EAAEP,GAAG,EAAEE,EAAEyD,EAAE7D,IAA0B,MAAMc,EAA7BA,EAAEb,GAAG4D,EAAE/C,EAAEL,GAAGT,EAAEC,EAAEQ,CAAc,EAAC,CAAC,OAAOZ,CAAC,CAC3c,SAASO,EAAEU,EAAEjB,GAAG,IAAIG,EAAEc,EAAEu8D,UAAUx9D,EAAEw9D,UAAU,OAAO,IAAIr9D,EAAEA,EAAEc,EAAEwqC,GAAGzrC,EAAEyrC,EAAE,CAAC,GAAG,kBAAkBgyB,aAAa,oBAAoBA,YAAYluC,IAAI,CAAC,IAAI7uB,EAAE+8D,YAAYn8D,EAAQklC,aAAa,WAAW,OAAO9lC,EAAE6uB,KAAK,CAAC,KAAK,CAAC,IAAI1uB,EAAE0D,KAAKzD,EAAED,EAAE0uB,MAAMjuB,EAAQklC,aAAa,WAAW,OAAO3lC,EAAE0uB,MAAMzuB,CAAC,CAAC,CAAC,IAAII,EAAE,GAAGH,EAAE,GAAGhB,EAAE,EAAEiB,EAAE,KAAKW,EAAE,EAAEW,GAAE,EAAGkH,GAAE,EAAG+8B,GAAE,EAAGrjC,EAAE,oBAAoBkvB,WAAWA,WAAW,KAAKqqB,EAAE,oBAAoB/pB,aAAaA,aAAa,KAAKqnB,EAAE,qBAAqB2jB,aAAaA,aAAa,KACnT,SAAShhB,EAAEz7C,GAAG,IAAI,IAAIjB,EAAEQ,EAAEO,GAAG,OAAOf,GAAG,CAAC,GAAG,OAAOA,EAAEojD,SAAS3iD,EAAEM,OAAQ,MAAGf,EAAE29D,WAAW18D,GAAgD,MAA9CR,EAAEM,GAAGf,EAAEw9D,UAAUx9D,EAAE49D,eAAet9D,EAAEY,EAAElB,EAAa,CAACA,EAAEQ,EAAEO,EAAE,CAAC,CAAC,SAASgJ,EAAE9I,GAAa,GAAVslC,GAAE,EAAGmW,EAAEz7C,IAAOuI,EAAE,GAAG,OAAOhJ,EAAEU,GAAGsI,GAAE,EAAGq1C,EAAE/E,OAAO,CAAC,IAAI95C,EAAEQ,EAAEO,GAAG,OAAOf,GAAGsjD,EAAEv5C,EAAE/J,EAAE29D,UAAU18D,EAAE,CAAC,CACra,SAAS64C,EAAE74C,EAAEjB,GAAGwJ,GAAE,EAAG+8B,IAAIA,GAAE,EAAGkW,EAAEzzC,GAAGA,GAAG,GAAG1G,GAAE,EAAG,IAAInC,EAAEwB,EAAE,IAAS,IAAL+6C,EAAE18C,GAAOgB,EAAER,EAAEU,GAAG,OAAOF,MAAMA,EAAE48D,eAAe59D,IAAIiB,IAAIW,MAAM,CAAC,IAAIxB,EAAEY,EAAEoiD,SAAS,GAAG,oBAAoBhjD,EAAE,CAACY,EAAEoiD,SAAS,KAAKzhD,EAAEX,EAAE68D,cAAc,IAAIx9D,EAAED,EAAEY,EAAE48D,gBAAgB59D,GAAGA,EAAEsB,EAAQklC,eAAe,oBAAoBnmC,EAAEW,EAAEoiD,SAAS/iD,EAAEW,IAAIR,EAAEU,IAAIT,EAAES,GAAGw7C,EAAE18C,EAAE,MAAMS,EAAES,GAAGF,EAAER,EAAEU,EAAE,CAAC,GAAG,OAAOF,EAAE,IAAIiC,GAAE,MAAO,CAAC,IAAItC,EAAEH,EAAEO,GAAG,OAAOJ,GAAG2iD,EAAEv5C,EAAEpJ,EAAEg9D,UAAU39D,GAAGiD,GAAE,CAAE,CAAC,OAAOA,CAAC,CAAC,QAAQjC,EAAE,KAAKW,EAAExB,EAAEmC,GAAE,CAAE,CAAC,CAD1a,qBAAqBw7D,gBAAW,IAASA,UAAUC,iBAAY,IAASD,UAAUC,WAAWC,gBAAgBF,UAAUC,WAAWC,eAAex1D,KAAKs1D,UAAUC,YAC2Q,IACzPx6D,EAD6PwhD,GAAE,EAAGthD,EAAE,KAAKuF,GAAG,EAAEiE,EAAE,EAAE7J,GAAG,EACvc,SAASxB,IAAI,QAAON,EAAQklC,eAAepjC,EAAE6J,EAAO,CAAC,SAASy7C,IAAI,GAAG,OAAOjlD,EAAE,CAAC,IAAIxC,EAAEK,EAAQklC,eAAepjC,EAAEnC,EAAE,IAAIjB,GAAE,EAAG,IAAIA,EAAEyD,GAAE,EAAGxC,EAAE,CAAC,QAAQjB,EAAEuD,KAAKwhD,GAAE,EAAGthD,EAAE,KAAK,CAAC,MAAMshD,GAAE,CAAE,CAAO,GAAG,oBAAoBhL,EAAEx2C,EAAE,WAAWw2C,EAAE2O,EAAE,OAAO,GAAG,qBAAqBuV,eAAe,CAAC,IAAI3N,EAAE,IAAI2N,eAAetN,EAAEL,EAAE4N,MAAM5N,EAAE6N,MAAMC,UAAU1V,EAAEnlD,EAAE,WAAWotD,EAAE0N,YAAY,KAAK,CAAC,MAAM96D,EAAE,WAAWL,EAAEwlD,EAAE,EAAE,EAAE,SAAS7J,EAAE59C,GAAGwC,EAAExC,EAAE8jD,IAAIA,GAAE,EAAGxhD,IAAI,CAAC,SAAS+/C,EAAEriD,EAAEjB,GAAGgJ,EAAE9F,GAAE,WAAWjC,EAAEK,EAAQklC,eAAe,GAAExmC,EAAE,CAC5dsB,EAAQ8lC,sBAAsB,EAAE9lC,EAAQslC,2BAA2B,EAAEtlC,EAAQ4lC,qBAAqB,EAAE5lC,EAAQ0lC,wBAAwB,EAAE1lC,EAAQg9D,mBAAmB,KAAKh9D,EAAQwlC,8BAA8B,EAAExlC,EAAQ4kC,wBAAwB,SAASjlC,GAAGA,EAAEmiD,SAAS,IAAI,EAAE9hD,EAAQi9D,2BAA2B,WAAW/0D,GAAGlH,IAAIkH,GAAE,EAAGq1C,EAAE/E,GAAG,EAC1Ux4C,EAAQk9D,wBAAwB,SAASv9D,GAAG,EAAEA,GAAG,IAAIA,EAAEwqD,QAAQC,MAAM,mHAAmHz+C,EAAE,EAAEhM,EAAEuB,KAAKE,MAAM,IAAIzB,GAAG,CAAC,EAAEK,EAAQolC,iCAAiC,WAAW,OAAO/kC,CAAC,EAAEL,EAAQm9D,8BAA8B,WAAW,OAAOj+D,EAAEU,EAAE,EAAEI,EAAQo9D,cAAc,SAASz9D,GAAG,OAAOU,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI3B,EAAE,EAAE,MAAM,QAAQA,EAAE2B,EAAE,IAAIxB,EAAEwB,EAAEA,EAAE3B,EAAE,IAAI,OAAOiB,GAAG,CAAC,QAAQU,EAAExB,CAAC,CAAC,EAAEmB,EAAQq9D,wBAAwB,WAAW,EAC9fr9D,EAAQglC,sBAAsB,WAAW,EAAEhlC,EAAQs9D,yBAAyB,SAAS39D,EAAEjB,GAAG,OAAOiB,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,QAAQA,EAAE,EAAE,IAAId,EAAEwB,EAAEA,EAAEV,EAAE,IAAI,OAAOjB,GAAG,CAAC,QAAQ2B,EAAExB,CAAC,CAAC,EAChMmB,EAAQ0kC,0BAA0B,SAAS/kC,EAAEjB,EAAEG,GAAG,IAAIC,EAAEkB,EAAQklC,eAA8F,OAA/E,kBAAkBrmC,GAAG,OAAOA,EAAaA,EAAE,kBAAZA,EAAEA,EAAE0+D,QAA6B,EAAE1+D,EAAEC,EAAED,EAAEC,EAAGD,EAAEC,EAASa,GAAG,KAAK,EAAE,IAAIZ,GAAG,EAAE,MAAM,KAAK,EAAEA,EAAE,IAAI,MAAM,KAAK,EAAEA,EAAE,WAAW,MAAM,KAAK,EAAEA,EAAE,IAAI,MAAM,QAAQA,EAAE,IAAmN,OAAzMY,EAAE,CAACwqC,GAAG1rC,IAAIqjD,SAASpjD,EAAE69D,cAAc58D,EAAE08D,UAAUx9D,EAAEy9D,eAAvDv9D,EAAEF,EAAEE,EAAoEm9D,WAAW,GAAGr9D,EAAEC,GAAGa,EAAEu8D,UAAUr9D,EAAEG,EAAES,EAAEE,GAAG,OAAOT,EAAEU,IAAID,IAAIT,EAAEO,KAAKwlC,GAAGkW,EAAEzzC,GAAGA,GAAG,GAAGu9B,GAAE,EAAG+c,EAAEv5C,EAAE5J,EAAEC,MAAMa,EAAEu8D,UAAUn9D,EAAEC,EAAEY,EAAED,GAAGuI,GAAGlH,IAAIkH,GAAE,EAAGq1C,EAAE/E,KAAY74C,CAAC,EACneK,EAAQ8kC,qBAAqBxkC,EAAEN,EAAQw9D,sBAAsB,SAAS79D,GAAG,IAAIjB,EAAE2B,EAAE,OAAO,WAAW,IAAIxB,EAAEwB,EAAEA,EAAE3B,EAAE,IAAI,OAAOiB,EAAE2F,MAAMzC,KAAKR,UAAU,CAAC,QAAQhC,EAAExB,CAAC,CAAC,CAAC,+BCf7JkB,EAAOC,QAAU,EAAjBD,QCFE09D,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBlnD,IAAjBmnD,EACH,OAAOA,EAAa59D,QAGrB,IAAID,EAAS09D,EAAyBE,GAAY,CACjDxzB,GAAIwzB,EACJE,QAAQ,EACR79D,QAAS,CAAC,GAUX,OANA89D,EAAoBH,GAAU5zD,KAAKhK,EAAOC,QAASD,EAAQA,EAAOC,QAAS09D,GAG3E39D,EAAO89D,QAAS,EAGT99D,EAAOC,OACf,CAGA09D,EAAoBr+D,EAAIy+D,EC3BxBJ,EAAoBp+D,EAAKS,IACxB,IAAIg+D,EAASh+D,GAAUA,EAAOi+D,WAC7B,IAAOj+D,EAAiB,QACxB,IAAM,EAEP,OADA29D,EAAoB5+D,EAAEi/D,EAAQ,CAAEp+D,EAAGo+D,IAC5BA,CAAM,QCNd,IACIE,EADAC,EAAW3pD,OAAOmE,eAAkBlF,GAASe,OAAOmE,eAAelF,GAASA,GAASA,EAAa,UAQtGkqD,EAAoBj+D,EAAI,SAASiU,EAAOwqC,GAEvC,GADU,EAAPA,IAAUxqC,EAAQ7Q,KAAK6Q,IAChB,EAAPwqC,EAAU,OAAOxqC,EACpB,GAAoB,kBAAVA,GAAsBA,EAAO,CACtC,GAAW,EAAPwqC,GAAaxqC,EAAMsqD,WAAY,OAAOtqD,EAC1C,GAAW,GAAPwqC,GAAoC,oBAAfxqC,EAAM0mC,KAAqB,OAAO1mC,CAC5D,CACA,IAAIyqD,EAAK5pD,OAAOiB,OAAO,MACvBkoD,EAAoB99D,EAAEu+D,GACtB,IAAIC,EAAM,CAAC,EACXH,EAAiBA,GAAkB,CAAC,KAAMC,EAAS,CAAC,GAAIA,EAAS,IAAKA,EAASA,IAC/E,IAAI,IAAI7+C,EAAiB,EAAP6+B,GAAYxqC,EAAyB,iBAAX2L,KAAyB4+C,EAAej2D,QAAQqX,GAAUA,EAAU6+C,EAAS7+C,GACxH9K,OAAOiE,oBAAoB6G,GAASzY,SAASwS,GAASglD,EAAIhlD,GAAO,IAAO1F,EAAM0F,KAI/E,OAFAglD,EAAa,QAAI,IAAM,EACvBV,EAAoB5+D,EAAEq/D,EAAIC,GACnBD,CACR,MCxBAT,EAAoB5+D,EAAI,CAACkB,EAASq+D,KACjC,IAAI,IAAIjlD,KAAOilD,EACXX,EAAoBv9D,EAAEk+D,EAAYjlD,KAASskD,EAAoBv9D,EAAEH,EAASoZ,IAC5E7E,OAAOgE,eAAevY,EAASoZ,EAAK,CAAEshB,YAAY,EAAM70B,IAAKw4D,EAAWjlD,IAE1E,ECNDskD,EAAoB1+D,EAAI,CAAC,EAGzB0+D,EAAoB3+D,EAAKu/D,GACjB9hD,QAAQ+hD,IAAIhqD,OAAO0E,KAAKykD,EAAoB1+D,GAAGw/D,QAAO,CAACC,EAAUrlD,KACvEskD,EAAoB1+D,EAAEoa,GAAKklD,EAASG,GAC7BA,IACL,KCNJf,EAAoBj/D,EAAK6/D,GAEjB,aAAeA,EAAf,qBCFRZ,EAAoBgB,SAAYJ,IAEf,ECHjBZ,EAAoBz+D,EAAI,WACvB,GAA0B,kBAAf0/D,WAAyB,OAAOA,WAC3C,IACC,OAAO97D,MAAQ,IAAIsgB,SAAS,cAAb,EAChB,CAAE,MAAOpkB,GACR,GAAsB,kBAAX23B,OAAqB,OAAOA,MACxC,CACA,CAPuB,GCAxBgnC,EAAoBv9D,EAAI,CAACqT,EAAKorD,IAAUrqD,OAAOxR,UAAUqR,eAAerK,KAAKyJ,EAAKorD,SCAlF,IAAIC,EAAa,CAAC,EACdC,EAAoB,YAExBpB,EAAoBt+D,EAAI,CAACmzC,EAAKmN,EAAMtmC,EAAKklD,KACxC,GAAGO,EAAWtsB,GAAQssB,EAAWtsB,GAAKnmC,KAAKszC,OAA3C,CACA,IAAIqf,EAAQC,EACZ,QAAWvoD,IAAR2C,EAEF,IADA,IAAI6lD,EAAUtoC,SAASuoC,qBAAqB,UACpCj/D,EAAI,EAAGA,EAAIg/D,EAAQp+D,OAAQZ,IAAK,CACvC,IAAIC,EAAI++D,EAAQh/D,GAChB,GAAGC,EAAEi/D,aAAa,QAAU5sB,GAAOryC,EAAEi/D,aAAa,iBAAmBL,EAAoB1lD,EAAK,CAAE2lD,EAAS7+D,EAAG,KAAO,CACpH,CAEG6+D,IACHC,GAAa,GACbD,EAASpoC,SAASC,cAAc,WAEzBwoC,QAAU,QACjBL,EAAOM,QAAU,IACb3B,EAAoB4B,IACvBP,EAAO/mC,aAAa,QAAS0lC,EAAoB4B,IAElDP,EAAO/mC,aAAa,eAAgB8mC,EAAoB1lD,GAExD2lD,EAAOpN,IAAMpf,GAEdssB,EAAWtsB,GAAO,CAACmN,GACnB,IAAI6f,EAAmB,CAACC,EAAMxqD,KAE7B+pD,EAAOU,QAAUV,EAAOW,OAAS,KACjCtuC,aAAaiuC,GACb,IAAIM,EAAUd,EAAWtsB,GAIzB,UAHOssB,EAAWtsB,GAClBwsB,EAAO98B,YAAc88B,EAAO98B,WAAW/E,YAAY6hC,GACnDY,GAAWA,EAAQ/4D,SAAS+N,GAAQA,EAAGK,KACpCwqD,EAAM,OAAOA,EAAKxqD,EAAM,EAExBqqD,EAAUvuC,WAAWyuC,EAAiBr4D,KAAK,UAAMuP,EAAW,CAAE3W,KAAM,UAAWgiC,OAAQi9B,IAAW,MACtGA,EAAOU,QAAUF,EAAiBr4D,KAAK,KAAM63D,EAAOU,SACpDV,EAAOW,OAASH,EAAiBr4D,KAAK,KAAM63D,EAAOW,QACnDV,GAAcroC,SAASipC,KAAKziC,YAAY4hC,EApCkB,CAoCX,MCvChDrB,EAAoB99D,EAAKI,IACH,qBAAXrB,QAA0BA,OAAO6hB,aAC1CjM,OAAOgE,eAAevY,EAASrB,OAAO6hB,YAAa,CAAE9M,MAAO,WAE7Da,OAAOgE,eAAevY,EAAS,aAAc,CAAE0T,OAAO,GAAO,ECL9DgqD,EAAoBmC,IAAO9/D,IAC1BA,EAAO+/D,MAAQ,GACV//D,EAAOu8B,WAAUv8B,EAAOu8B,SAAW,IACjCv8B,GCHR29D,EAAoBn+D,EAAI,UCKxB,IAAIwgE,EAAkB,CACrB,IAAK,GAGNrC,EAAoB1+D,EAAEiO,EAAI,CAACqxD,EAASG,KAElC,IAAIuB,EAAqBtC,EAAoBv9D,EAAE4/D,EAAiBzB,GAAWyB,EAAgBzB,QAAW7nD,EACtG,GAA0B,IAAvBupD,EAGF,GAAGA,EACFvB,EAASryD,KAAK4zD,EAAmB,QAC3B,CAGL,IAAIC,EAAU,IAAIzjD,SAAQ,CAACwP,EAASk0C,IAAYF,EAAqBD,EAAgBzB,GAAW,CAACtyC,EAASk0C,KAC1GzB,EAASryD,KAAK4zD,EAAmB,GAAKC,GAGtC,IAAI1tB,EAAMmrB,EAAoBn+D,EAAIm+D,EAAoBj/D,EAAE6/D,GAEpDlU,EAAQ,IAAIjhD,MAgBhBu0D,EAAoBt+D,EAAEmzC,GAfFv9B,IACnB,GAAG0oD,EAAoBv9D,EAAE4/D,EAAiBzB,KAEf,KAD1B0B,EAAqBD,EAAgBzB,MACRyB,EAAgBzB,QAAW7nD,GACrDupD,GAAoB,CACtB,IAAIG,EAAYnrD,IAAyB,SAAfA,EAAMlV,KAAkB,UAAYkV,EAAMlV,MAChEsgE,EAAUprD,GAASA,EAAM8sB,QAAU9sB,EAAM8sB,OAAO6vB,IACpDvH,EAAM1gC,QAAU,iBAAmB40C,EAAU,cAAgB6B,EAAY,KAAOC,EAAU,IAC1FhW,EAAM7pD,KAAO,iBACb6pD,EAAMtqD,KAAOqgE,EACb/V,EAAMiW,QAAUD,EAChBJ,EAAmB,GAAG5V,EACvB,CACD,GAEwC,SAAWkU,EAASA,EAE/D,CACD,EAcF,IAAIgC,EAAuB,CAACC,EAA4BljD,KACvD,IAKIsgD,EAAUW,EALVkC,EAAWnjD,EAAK,GAChBojD,EAAcpjD,EAAK,GACnBqjD,EAAUrjD,EAAK,GAGIpd,EAAI,EAC3B,GAAGugE,EAASG,MAAMx2B,GAAgC,IAAxB41B,EAAgB51B,KAAa,CACtD,IAAIwzB,KAAY8C,EACZ/C,EAAoBv9D,EAAEsgE,EAAa9C,KACrCD,EAAoBr+D,EAAEs+D,GAAY8C,EAAY9C,IAGhD,GAAG+C,EAAsBA,EAAQhD,EAClC,CAEA,IADG6C,GAA4BA,EAA2BljD,GACrDpd,EAAIugE,EAAS3/D,OAAQZ,IACzBq+D,EAAUkC,EAASvgE,GAChBy9D,EAAoBv9D,EAAE4/D,EAAiBzB,IAAYyB,EAAgBzB,IACrEyB,EAAgBzB,GAAS,KAE1ByB,EAAgBzB,GAAW,CAC5B,EAIGsC,EAAqB/yC,KAA2B,qBAAIA,KAA2B,sBAAK,GACxF+yC,EAAmBh6D,QAAQ05D,EAAqBp5D,KAAK,KAAM,IAC3D05D,EAAmBx0D,KAAOk0D,EAAqBp5D,KAAK,KAAM05D,EAAmBx0D,KAAKlF,KAAK05D,q0BClFvF,QAJkCC,EAAAA,cAAoB,MCCvC,SAASC,IAOtB,OANcD,EAAAA,WAAiBE,EAOjC,CCVA,MACA,EADoC,oBAAXpiE,QAAyBA,OAAOC,IAC9BD,OAAOC,IAAI,cAAgB,gCCmEtD,QAtCA,SAAuBipB,GACrB,MAAM,SACJyU,EACA0kC,MAAOC,GACLp5C,EACEq5C,EAAaJ,IAMbE,EAAQH,EAAAA,SAAc,KAC1B,MAAMM,EAAwB,OAAfD,EAAsB,IAChCD,GAlCT,SAA8BC,EAAYD,GACxC,GAA0B,oBAAfA,EAOT,OANoBA,EAAWC,GAQjC,MAAO,IACFA,KACAD,EAEP,CAqBQG,CAAqBF,EAAYD,GAIrC,OAHc,MAAVE,IACFA,EAAOE,GAAyB,OAAfH,GAEZC,CAAM,GACZ,CAACF,EAAYC,IAChB,OAAoBI,EAAAA,EAAAA,KAAKP,EAAazF,SAAU,CAC9C5nD,MAAOstD,EACP1kC,SAAUA,GAEd,ECGA,IAAIilC,EAA0B,WAE5B,SAASA,EAAWxxC,GAClB,IAAIyxC,EAAQ3+D,KAEZA,KAAK4+D,WAAa,SAAUn4C,GAC1B,IAAIo4C,EAIAA,EAFsB,IAAtBF,EAAMG,KAAK9gE,OACT2gE,EAAMI,eACCJ,EAAMI,eAAe1tB,YACrBstB,EAAMK,QACNL,EAAMM,UAAU7kC,WAEhBukC,EAAME,OAGRF,EAAMG,KAAKH,EAAMG,KAAK9gE,OAAS,GAAGqzC,YAG7CstB,EAAMM,UAAU1R,aAAa9mC,EAAKo4C,GAElCF,EAAMG,KAAKv1D,KAAKkd,EAClB,EAEAzmB,KAAKk/D,cAA8BtrD,IAAnBsZ,EAAQiyC,QAAwCjyC,EAAQiyC,OACxEn/D,KAAK8+D,KAAO,GACZ9+D,KAAKo/D,IAAM,EACXp/D,KAAKq/D,MAAQnyC,EAAQmyC,MAErBr/D,KAAKuW,IAAM2W,EAAQ3W,IACnBvW,KAAKi/D,UAAY/xC,EAAQ+xC,UACzBj/D,KAAKg/D,QAAU9xC,EAAQ8xC,QACvBh/D,KAAK++D,eAAiB7xC,EAAQ6xC,eAC9B/+D,KAAK6+D,OAAS,IAChB,CAEA,IAAIS,EAASZ,EAAWx+D,UA0CxB,OAxCAo/D,EAAO1I,QAAU,SAAiB2I,GAChCA,EAAMx7D,QAAQ/D,KAAK4+D,WACrB,EAEAU,EAAOE,OAAS,SAAgBC,GAI1Bz/D,KAAKo/D,KAAOp/D,KAAKk/D,SAAW,KAAQ,KAAO,GAC7Cl/D,KAAK4+D,WA7DX,SAA4B1xC,GAC1B,IAAIzG,EAAMqN,SAASC,cAAc,SASjC,OARAtN,EAAI0O,aAAa,eAAgBjI,EAAQ3W,UAEnB3C,IAAlBsZ,EAAQmyC,OACV54C,EAAI0O,aAAa,QAASjI,EAAQmyC,OAGpC54C,EAAI6T,YAAYxG,SAASo4B,eAAe,KACxCzlC,EAAI0O,aAAa,SAAU,IACpB1O,CACT,CAkDsBi5C,CAAmB1/D,OAGrC,IAAIymB,EAAMzmB,KAAK8+D,KAAK9+D,KAAK8+D,KAAK9gE,OAAS,GAEvC,GAAIgC,KAAKk/D,SAAU,CACjB,IAAIS,EAtFV,SAAqBl5C,GACnB,GAAIA,EAAIk5C,MACN,OAAOl5C,EAAIk5C,MAMb,IAAK,IAAIviE,EAAI,EAAGA,EAAI02B,SAAS8rC,YAAY5hE,OAAQZ,IAC/C,GAAI02B,SAAS8rC,YAAYxiE,GAAGyiE,YAAcp5C,EACxC,OAAOqN,SAAS8rC,YAAYxiE,EAOlC,CAqEkB0iE,CAAYr5C,GAExB,IAGEk5C,EAAMI,WAAWN,EAAME,EAAMK,SAAShiE,OACxC,CAAE,MAAO9B,IACT,CACF,MACEuqB,EAAI6T,YAAYxG,SAASo4B,eAAeuT,IAG1Cz/D,KAAKo/D,KACP,EAEAE,EAAO7wC,MAAQ,WACbzuB,KAAK8+D,KAAK/6D,SAAQ,SAAU0iB,GAC1B,IAAIw5C,EAEJ,OAA6C,OAArCA,EAAkBx5C,EAAI2Y,iBAAsB,EAAS6gC,EAAgB5lC,YAAY5T,EAC3F,IACAzmB,KAAK8+D,KAAO,GACZ9+D,KAAKo/D,IAAM,CACb,EAEOV,CACT,CAhF8B,GCrDnBpgE,EAAMD,KAAKC,IAMX4hE,EAAOniE,OAAO8uC,aAMdpW,EAAS/kB,OAAO+kB,OAepB,SAASE,EAAM9lB,GACrB,OAAOA,EAAM8lB,MACd,CAiBO,SAASx3B,EAAS0R,EAAOsvD,EAASC,GACxC,OAAOvvD,EAAM1R,QAAQghE,EAASC,EAC/B,CAOO,SAASC,EAASxvD,EAAOZ,GAC/B,OAAOY,EAAM1L,QAAQ8K,EACtB,CAOO,SAASqwD,EAAQzvD,EAAO8H,GAC9B,OAAiC,EAA1B9H,EAAMX,WAAWyI,EACzB,CAQO,SAAS4nD,EAAQ1vD,EAAO2vD,EAAOl+C,GACrC,OAAOzR,EAAMnO,MAAM89D,EAAOl+C,EAC3B,CAMO,SAASm+C,EAAQ5vD,GACvB,OAAOA,EAAM7S,MACd,CAMO,SAAS0iE,EAAQ7vD,GACvB,OAAOA,EAAM7S,MACd,CAOO,SAAS2iE,EAAQ9vD,EAAOiK,GAC9B,OAAOA,EAAMvR,KAAKsH,GAAQA,CAC3B,CCvGO,IAAI+vD,EAAO,EACPC,EAAS,EACT7iE,EAAS,EACT8iE,EAAW,EACXC,EAAY,EACZC,EAAa,GAWjB,SAASnuC,EAAMhiB,EAAOoa,EAAMg2C,EAAQhkE,EAAM+nB,EAAOyU,EAAUz7B,GACjE,MAAO,CAAC6S,MAAOA,EAAOoa,KAAMA,EAAMg2C,OAAQA,EAAQhkE,KAAMA,EAAM+nB,MAAOA,EAAOyU,SAAUA,EAAUmnC,KAAMA,EAAMC,OAAQA,EAAQ7iE,OAAQA,EAAQijC,OAAQ,GACrJ,CAOO,SAASigC,EAAMj2C,EAAMjG,GAC3B,OAAOyR,EAAO5D,EAAK,GAAI,KAAM,KAAM,GAAI,KAAM,KAAM,GAAI5H,EAAM,CAACjtB,QAASitB,EAAKjtB,QAASgnB,EACtF,CAYO,SAAS23C,IAMf,OALAoE,EAAYD,EAAW,EAAIR,EAAOU,IAAcF,GAAY,EAExDD,IAAwB,KAAdE,IACbF,EAAS,EAAGD,KAENG,CACR,CAKO,SAASnkB,IAMf,OALAmkB,EAAYD,EAAW9iE,EAASsiE,EAAOU,EAAYF,KAAc,EAE7DD,IAAwB,KAAdE,IACbF,EAAS,EAAGD,KAENG,CACR,CAKO,SAASI,IACf,OAAOb,EAAOU,EAAYF,EAC3B,CAKO,SAASM,IACf,OAAON,CACR,CAOO,SAASp+D,EAAO89D,EAAOl+C,GAC7B,OAAOi+C,EAAOS,EAAYR,EAAOl+C,EAClC,CAMO,SAAS++C,EAAOpkE,GACtB,OAAQA,GAEP,KAAK,EAAG,KAAK,EAAG,KAAK,GAAI,KAAK,GAAI,KAAK,GACtC,OAAO,EAER,KAAK,GAAI,KAAK,GAAI,KAAK,GAAI,KAAK,GAAI,KAAK,GAAI,KAAK,GAAI,KAAK,IAE3D,KAAK,GAAI,KAAK,IAAK,KAAK,IACvB,OAAO,EAER,KAAK,GACJ,OAAO,EAER,KAAK,GAAI,KAAK,GAAI,KAAK,GAAI,KAAK,GAC/B,OAAO,EAER,KAAK,GAAI,KAAK,GACb,OAAO,EAGT,OAAO,CACR,CAMO,SAASqkE,EAAOzwD,GACtB,OAAO+vD,EAAOC,EAAS,EAAG7iE,EAASyiE,EAAOO,EAAanwD,GAAQiwD,EAAW,EAAG,EAC9E,CAMO,SAASS,EAAS1wD,GACxB,OAAOmwD,EAAa,GAAInwD,CACzB,CAMO,SAAS2wD,EAASvkE,GACxB,OAAO05B,EAAKj0B,EAAMo+D,EAAW,EAAGW,EAAmB,KAATxkE,EAAcA,EAAO,EAAa,KAATA,EAAcA,EAAO,EAAIA,IAC7F,CAcO,SAASykE,EAAYzkE,GAC3B,MAAO8jE,EAAYI,MACdJ,EAAY,IACfnkB,IAIF,OAAOykB,EAAMpkE,GAAQ,GAAKokE,EAAMN,GAAa,EAAI,GAAK,GACvD,CAwBO,SAASY,EAAUhpD,EAAO0S,GAChC,OAASA,GAASuxB,OAEbmkB,EAAY,IAAMA,EAAY,KAAQA,EAAY,IAAMA,EAAY,IAAQA,EAAY,IAAMA,EAAY,MAG/G,OAAOr+D,EAAMiW,EAAOyoD,KAAW/1C,EAAQ,GAAe,IAAV81C,KAA0B,IAAVvkB,KAC7D,CAMO,SAAS6kB,EAAWxkE,GAC1B,KAAO2/C,YACEmkB,GAEP,KAAK9jE,EACJ,OAAO6jE,EAER,KAAK,GAAI,KAAK,GACA,KAAT7jE,GAAwB,KAATA,GAClBwkE,EAAUV,GACX,MAED,KAAK,GACS,KAAT9jE,GACHwkE,EAAUxkE,GACX,MAED,KAAK,GACJ2/C,IAIH,OAAOkkB,CACR,CAOO,SAASc,EAAW3kE,EAAM0b,GAChC,KAAOikC,KAEF3/C,EAAO8jE,IAAc,KAGhB9jE,EAAO8jE,IAAc,IAAsB,KAAXI,OAG1C,MAAO,KAAOz+D,EAAMiW,EAAOmoD,EAAW,GAAK,IAAMZ,EAAc,KAATjjE,EAAcA,EAAO2/C,IAC5E,CAMO,SAASilB,EAAYlpD,GAC3B,MAAQ0oD,EAAMF,MACbvkB,IAED,OAAOl6C,EAAMiW,EAAOmoD,EACrB,CCrPO,IAAIgB,EAAK,OACLC,EAAM,QACNC,EAAS,WAETC,EAAU,OACVC,EAAU,OACVC,EAAc,OAUdC,EAAY,aCRhB,SAASC,EAAW5oC,EAAUwlB,GAIpC,IAHA,IAAIqf,EAAS,GACTtgE,EAAS0iE,EAAOjnC,GAEXr8B,EAAI,EAAGA,EAAIY,EAAQZ,IAC3BkhE,GAAUrf,EAASxlB,EAASr8B,GAAIA,EAAGq8B,EAAUwlB,IAAa,GAE3D,OAAOqf,CACR,CASO,SAASjK,EAAW3hC,EAAS/Z,EAAO8gB,EAAUwlB,GACpD,OAAQvsB,EAAQz1B,MACf,IDPiB,SCOL,GAAIy1B,EAAQ+G,SAASz7B,OAAQ,MACzC,IDlBkB,UCkBL,KAAKmkE,EAAa,OAAOzvC,EAAQuO,OAASvO,EAAQuO,QAAUvO,EAAQ7hB,MACjF,KAAKoxD,EAAS,MAAO,GACrB,KAAKG,EAAW,OAAO1vC,EAAQuO,OAASvO,EAAQ7hB,MAAQ,IAAMwxD,EAAU3vC,EAAQ+G,SAAUwlB,GAAY,IACtG,KAAKijB,EAASxvC,EAAQ7hB,MAAQ6hB,EAAQ1N,MAAM9mB,KAAK,KAGlD,OAAOuiE,EAAOhnC,EAAW4oC,EAAU3vC,EAAQ+G,SAAUwlB,IAAavsB,EAAQuO,OAASvO,EAAQ7hB,MAAQ,IAAM4oB,EAAW,IAAM,EAC3H,CCRO,SAAS6oC,GAAWrjB,GAC1B,OAAO,SAAUvsB,GACXA,EAAQzH,OACRyH,EAAUA,EAAQuO,SACrBge,EAASvsB,EACZ,CACD,CCzBO,SAAS6vC,GAAS1xD,GACxB,OAAO0wD,EAAQthE,GAAM,GAAI,KAAM,KAAM,KAAM,CAAC,IAAK4Q,EAAQywD,EAAMzwD,GAAQ,EAAG,CAAC,GAAIA,GAChF,CAcO,SAAS5Q,GAAO4Q,EAAOoa,EAAMg2C,EAAQxB,EAAM+C,EAAOC,EAAUC,EAAQC,EAAQC,GAiBlF,IAhBA,IAAIjqD,EAAQ,EACRzT,EAAS,EACTlH,EAAS0kE,EACTG,EAAS,EACT7hD,EAAW,EACX8hD,EAAW,EACXC,EAAW,EACXC,EAAW,EACXC,EAAY,EACZlC,EAAY,EACZ9jE,EAAO,GACP+nB,EAAQw9C,EACR/oC,EAAWgpC,EACXS,EAAYzD,EACZuB,EAAa/jE,EAEV+lE,UACEF,EAAW/B,EAAWA,EAAYnkB,KAEzC,KAAK,GACJ,GAAgB,KAAZkmB,GAAqD,IAAlCxC,EAAOU,EAAYhjE,EAAS,GAAU,EACkB,GAA1EqiE,EAAQW,GAAc7hE,EAAQqiE,EAAQT,GAAY,IAAK,OAAQ,SAClEkC,GAAa,GACd,KACD,CAED,KAAK,GAAI,KAAK,GAAI,KAAK,GACtBjC,GAAcQ,EAAQT,GACtB,MAED,KAAK,EAAG,KAAK,GAAI,KAAK,GAAI,KAAK,GAC9BC,GAAcU,EAAWoB,GACzB,MAED,KAAK,GACJ9B,GAAcW,EAASP,IAAU,EAAG,GACpC,SAED,KAAK,GACJ,OAAQD,KACP,KAAK,GAAI,KAAK,GACbR,EAAOwC,GAAQvB,EAAUhlB,IAAQwkB,KAAUn2C,EAAMg2C,GAAS2B,GAC1D,MACD,QACC5B,GAAc,IAEhB,MAED,KAAK,IAAM+B,EACVJ,EAAOhqD,KAAW8nD,EAAOO,GAAciC,EAExC,KAAK,IAAMF,EAAU,KAAK,GAAI,KAAK,EAClC,OAAQhC,GAEP,KAAK,EAAG,KAAK,IAAKiC,EAAW,EAE7B,KAAK,GAAK99D,GAA0B,GAAd+9D,IAAiBjC,EAAa7hE,EAAQ6hE,EAAY,MAAO,KAC1EhgD,EAAW,GAAMy/C,EAAOO,GAAchjE,GACzC2iE,EAAO3/C,EAAW,GAAKoiD,GAAYpC,EAAa,IAAKvB,EAAMwB,EAAQjjE,EAAS,GAAKolE,GAAYjkE,EAAQ6hE,EAAY,IAAK,IAAM,IAAKvB,EAAMwB,EAAQjjE,EAAS,GAAI4kE,GAC7J,MAED,KAAK,GAAI5B,GAAc,IAEvB,QAGC,GAFAL,EAAOuC,EAAYG,GAAQrC,EAAY/1C,EAAMg2C,EAAQtoD,EAAOzT,EAAQs9D,EAAOG,EAAQ1lE,EAAM+nB,EAAQ,GAAIyU,EAAW,GAAIz7B,GAASykE,GAE3G,MAAd1B,EACH,GAAe,IAAX77D,EACHjF,GAAM+gE,EAAY/1C,EAAMi4C,EAAWA,EAAWl+C,EAAOy9C,EAAUzkE,EAAQ2kE,EAAQlpC,QAE/E,OAAmB,KAAXopC,GAA2C,MAA1BvC,EAAOU,EAAY,GAAa,IAAM6B,GAE9D,KAAK,IAAK,KAAK,IAAK,KAAK,IAAK,KAAK,IAClC5iE,GAAM4Q,EAAOqyD,EAAWA,EAAWzD,GAAQkB,EAAO0C,GAAQxyD,EAAOqyD,EAAWA,EAAW,EAAG,EAAGV,EAAOG,EAAQ1lE,EAAMulE,EAAOx9C,EAAQ,GAAIhnB,GAASy7B,GAAW+oC,EAAO/oC,EAAUz7B,EAAQ2kE,EAAQlD,EAAOz6C,EAAQyU,GACzM,MACD,QACCx5B,GAAM+gE,EAAYkC,EAAWA,EAAWA,EAAW,CAAC,IAAKzpC,EAAU,EAAGkpC,EAAQlpC,IAIpF9gB,EAAQzT,EAAS8b,EAAW,EAAG+hD,EAAWE,EAAY,EAAGhmE,EAAO+jE,EAAa,GAAIhjE,EAAS0kE,EAC1F,MAED,KAAK,GACJ1kE,EAAS,EAAIyiE,EAAOO,GAAahgD,EAAW8hD,EAC7C,QACC,GAAIC,EAAW,EACd,GAAiB,KAAbhC,IACDgC,OACE,GAAiB,KAAbhC,GAAkC,GAAdgC,KAA6B,KAAVpG,IAC/C,SAEF,OAAQqE,GAAcd,EAAKa,GAAYA,EAAYgC,GAElD,KAAK,GACJE,EAAY/9D,EAAS,EAAI,GAAK87D,GAAc,MAAO,GACnD,MAED,KAAK,GACJ2B,EAAOhqD,MAAY8nD,EAAOO,GAAc,GAAKiC,EAAWA,EAAY,EACpE,MAED,KAAK,GAEW,KAAX9B,MACHH,GAAcQ,EAAQ5kB,MAEvBimB,EAAS1B,IAAQj8D,EAASlH,EAASyiE,EAAOxjE,EAAO+jE,GAAca,EAAWT,MAAWL,IACrF,MAED,KAAK,GACa,KAAb+B,GAAyC,GAAtBrC,EAAOO,KAC7B+B,EAAW,IAIjB,OAAON,CACR,CAgBO,SAASY,GAASxyD,EAAOoa,EAAMg2C,EAAQtoD,EAAOzT,EAAQs9D,EAAOG,EAAQ1lE,EAAM+nB,EAAOyU,EAAUz7B,GAKlG,IAJA,IAAIslE,EAAOp+D,EAAS,EAChBu6D,EAAkB,IAAXv6D,EAAes9D,EAAQ,CAAC,IAC/B/nD,EAAOimD,EAAOjB,GAETriE,EAAI,EAAGgN,EAAI,EAAG9N,EAAI,EAAGc,EAAIub,IAASvb,EAC1C,IAAK,IAAIyC,EAAI,EAAGrC,EAAI+iE,EAAO1vD,EAAOyyD,EAAO,EAAGA,EAAOhlE,EAAI8L,EAAIu4D,EAAOvlE,KAAMe,EAAI0S,EAAOhR,EAAI4a,IAAQ5a,GAC1F1B,EAAIw4B,EAAKvsB,EAAI,EAAIq1D,EAAK5/D,GAAK,IAAMrC,EAAI2B,EAAQ3B,EAAG,OAAQiiE,EAAK5/D,QAChEmlB,EAAM1oB,KAAO6B,GAEhB,OAAO00B,EAAKhiB,EAAOoa,EAAMg2C,EAAmB,IAAX/7D,EAAeg9D,EAAUjlE,EAAM+nB,EAAOyU,EAAUz7B,EAClF,CAQO,SAASmlE,GAAStyD,EAAOoa,EAAMg2C,GACrC,OAAOpuC,EAAKhiB,EAAOoa,EAAMg2C,EAAQgB,EAAS/B,EJ/InCa,GI+IiDR,EAAO1vD,EAAO,GAAI,GAAI,EAC/E,CASO,SAASuyD,GAAavyD,EAAOoa,EAAMg2C,EAAQjjE,GACjD,OAAO60B,EAAKhiB,EAAOoa,EAAMg2C,EAAQkB,EAAa5B,EAAO1vD,EAAO,EAAG7S,GAASuiE,EAAO1vD,EAAO7S,EAAS,GAAI,GAAIA,EACxG,CCzLA,IAAIulE,GAA8B,SAAqC/C,EAAOmC,EAAQhqD,GAIpF,IAHA,IAAImqD,EAAW,EACX/B,EAAY,EAGd+B,EAAW/B,EACXA,EAAYI,IAEK,KAAb2B,GAAiC,KAAd/B,IACrB4B,EAAOhqD,GAAS,IAGd0oD,EAAMN,IAIVnkB,IAGF,OAAOl6C,EAAM89D,EAAOM,EACtB,EA6CI0C,GAAW,SAAkB3yD,EAAO8xD,GACtC,OAAOpB,EA5CK,SAAiBkC,EAAQd,GAErC,IAAIhqD,GAAS,EACTooD,EAAY,GAEhB,GACE,OAAQM,EAAMN,IACZ,KAAK,EAEe,KAAdA,GAA+B,KAAXI,MAKtBwB,EAAOhqD,GAAS,GAGlB8qD,EAAO9qD,IAAU4qD,GAA4BzC,EAAW,EAAG6B,EAAQhqD,GACnE,MAEF,KAAK,EACH8qD,EAAO9qD,IAAU6oD,EAAQT,GACzB,MAEF,KAAK,EAEH,GAAkB,KAAdA,EAAkB,CAEpB0C,IAAS9qD,GAAoB,KAAXwoD,IAAgB,MAAQ,GAC1CwB,EAAOhqD,GAAS8qD,EAAO9qD,GAAO3a,OAC9B,KACF,CAIF,QACEylE,EAAO9qD,IAAUunD,EAAKa,UAEnBA,EAAYnkB,KAErB,OAAO6mB,CACT,CAGiBC,CAAQpC,EAAMzwD,GAAQ8xD,GACvC,EAGIgB,GAA+B,IAAIhpD,QACnCipD,GAAS,SAAgBlxC,GAC3B,GAAqB,SAAjBA,EAAQz1B,MAAoBy1B,EAAQuuC,UAExCvuC,EAAQ10B,OAAS,GAFjB,CAUA,IAJA,IAAI6S,EAAQ6hB,EAAQ7hB,MAChBowD,EAASvuC,EAAQuuC,OACjB4C,EAAiBnxC,EAAQmuC,SAAWI,EAAOJ,QAAUnuC,EAAQkuC,OAASK,EAAOL,KAE1D,SAAhBK,EAAOhkE,MAEZ,KADAgkE,EAASA,EAAOA,QACH,OAIf,IAA6B,IAAzBvuC,EAAQ1N,MAAMhnB,QAAwC,KAAxB6S,EAAMX,WAAW,IAE/CyzD,GAAc3gE,IAAIi+D,MAMlB4C,EAAJ,CAIAF,GAAcvhE,IAAIswB,GAAS,GAK3B,IAJA,IAAIiwC,EAAS,GACTH,EAAQgB,GAAS3yD,EAAO8xD,GACxBmB,EAAc7C,EAAOj8C,MAEhB5nB,EAAI,EAAGd,EAAI,EAAGc,EAAIolE,EAAMxkE,OAAQZ,IACvC,IAAK,IAAIgN,EAAI,EAAGA,EAAI05D,EAAY9lE,OAAQoM,IAAK9N,IAC3Co2B,EAAQ1N,MAAM1oB,GAAKqmE,EAAOvlE,GAAKolE,EAAMplE,GAAG+B,QAAQ,OAAQ2kE,EAAY15D,IAAM05D,EAAY15D,GAAK,IAAMo4D,EAAMplE,EAT3G,CAtBA,CAkCF,EACI2mE,GAAc,SAAqBrxC,GACrC,GAAqB,SAAjBA,EAAQz1B,KAAiB,CAC3B,IAAI4T,EAAQ6hB,EAAQ7hB,MAGI,MAAxBA,EAAMX,WAAW,IACO,KAAxBW,EAAMX,WAAW,KAEfwiB,EAAgB,OAAI,GACpBA,EAAQ7hB,MAAQ,GAEpB,CACF,EAIA,SAASc,GAAOd,EAAO7S,GACrB,ON9GK,SAAe6S,EAAO7S,GAC5B,OAA0B,GAAnBsiE,EAAOzvD,EAAO,MAAiB7S,GAAU,EAAKsiE,EAAOzvD,EAAO,KAAO,EAAKyvD,EAAOzvD,EAAO,KAAO,EAAKyvD,EAAOzvD,EAAO,KAAO,EAAKyvD,EAAOzvD,EAAO,GAAK,CACvJ,CM4GUmzD,CAAKnzD,EAAO7S,IAElB,KAAK,KACH,OAAOgkE,EAAS,SAAWnxD,EAAQA,EAGrC,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KAEL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KAEL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KAEL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACH,OAAOmxD,EAASnxD,EAAQA,EAG1B,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACH,OAAOmxD,EAASnxD,EAAQkxD,EAAMlxD,EAAQixD,EAAKjxD,EAAQA,EAGrD,KAAK,KACL,KAAK,KACH,OAAOmxD,EAASnxD,EAAQixD,EAAKjxD,EAAQA,EAGvC,KAAK,KACH,OAAOmxD,EAASnxD,EAAQixD,EAAK,QAAUjxD,EAAQA,EAGjD,KAAK,KACH,OAAOmxD,EAASnxD,EAAQ1R,EAAQ0R,EAAO,iBAAkBmxD,EAAS,WAAaF,EAAK,aAAejxD,EAGrG,KAAK,KACH,OAAOmxD,EAASnxD,EAAQixD,EAAK,aAAe3iE,EAAQ0R,EAAO,cAAe,IAAMA,EAGlF,KAAK,KACH,OAAOmxD,EAASnxD,EAAQixD,EAAK,iBAAmB3iE,EAAQ0R,EAAO,4BAA6B,IAAMA,EAGpG,KAAK,KACH,OAAOmxD,EAASnxD,EAAQixD,EAAK3iE,EAAQ0R,EAAO,SAAU,YAAcA,EAGtE,KAAK,KACH,OAAOmxD,EAASnxD,EAAQixD,EAAK3iE,EAAQ0R,EAAO,QAAS,kBAAoBA,EAG3E,KAAK,KACH,OAAOmxD,EAAS,OAAS7iE,EAAQ0R,EAAO,QAAS,IAAMmxD,EAASnxD,EAAQixD,EAAK3iE,EAAQ0R,EAAO,OAAQ,YAAcA,EAGpH,KAAK,KACH,OAAOmxD,EAAS7iE,EAAQ0R,EAAO,qBAAsB,KAAOmxD,EAAS,MAAQnxD,EAG/E,KAAK,KACH,OAAO1R,EAAQA,EAAQA,EAAQ0R,EAAO,eAAgBmxD,EAAS,MAAO,cAAeA,EAAS,MAAOnxD,EAAO,IAAMA,EAGpH,KAAK,KACL,KAAK,KACH,OAAO1R,EAAQ0R,EAAO,oBAAqBmxD,YAG7C,KAAK,KACH,OAAO7iE,EAAQA,EAAQ0R,EAAO,oBAAqBmxD,EAAS,cAAgBF,EAAK,gBAAiB,aAAc,WAAaE,EAASnxD,EAAQA,EAGhJ,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACH,OAAO1R,EAAQ0R,EAAO,kBAAmBmxD,EAAS,QAAUnxD,EAG9D,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KAEH,GAAI4vD,EAAO5vD,GAAS,EAAI7S,EAAS,EAAG,OAAQsiE,EAAOzvD,EAAO7S,EAAS,IAEjE,KAAK,IAEH,GAAkC,KAA9BsiE,EAAOzvD,EAAO7S,EAAS,GAAW,MAGxC,KAAK,IACH,OAAOmB,EAAQ0R,EAAO,mBAAoB,KAAOmxD,EAAP,UAAiCD,GAAoC,KAA7BzB,EAAOzvD,EAAO7S,EAAS,GAAY,KAAO,UAAY6S,EAG1I,KAAK,IACH,OAAQwvD,EAAQxvD,EAAO,WAAac,GAAOxS,EAAQ0R,EAAO,UAAW,kBAAmB7S,GAAU6S,EAAQA,EAE9G,MAGF,KAAK,KAEH,GAAkC,MAA9ByvD,EAAOzvD,EAAO7S,EAAS,GAAY,MAGzC,KAAK,KACH,OAAQsiE,EAAOzvD,EAAO4vD,EAAO5vD,GAAS,IAAMwvD,EAAQxvD,EAAO,eAAiB,MAE1E,KAAK,IACH,OAAO1R,EAAQ0R,EAAO,IAAK,IAAMmxD,GAAUnxD,EAG7C,KAAK,IACH,OAAO1R,EAAQ0R,EAAO,wBAAyB,KAAOmxD,GAAgC,KAAtB1B,EAAOzvD,EAAO,IAAa,UAAY,IAAxD,UAA+EmxD,EAA/E,SAAwGF,EAAK,WAAajxD,EAG7K,MAGF,KAAK,KACH,OAAQyvD,EAAOzvD,EAAO7S,EAAS,KAE7B,KAAK,IACH,OAAOgkE,EAASnxD,EAAQixD,EAAK3iE,EAAQ0R,EAAO,qBAAsB,MAAQA,EAG5E,KAAK,IACH,OAAOmxD,EAASnxD,EAAQixD,EAAK3iE,EAAQ0R,EAAO,qBAAsB,SAAWA,EAG/E,KAAK,GACH,OAAOmxD,EAASnxD,EAAQixD,EAAK3iE,EAAQ0R,EAAO,qBAAsB,MAAQA,EAG9E,OAAOmxD,EAASnxD,EAAQixD,EAAKjxD,EAAQA,EAGzC,OAAOA,CACT,CAEA,IAqCIozD,GAAuB,CArCZ,SAAkBvxC,EAAS/Z,EAAO8gB,EAAUwlB,GACzD,GAAIvsB,EAAQ10B,QAAU,IAAQ00B,EAAgB,OAAG,OAAQA,EAAQz1B,MAC/D,KAAKklE,EACHzvC,EAAgB,OAAI/gB,GAAO+gB,EAAQ7hB,MAAO6hB,EAAQ10B,QAClD,MAEF,KAAKokE,EACH,OAAOC,EAAU,CAACnB,EAAKxuC,EAAS,CAC9B7hB,MAAO1R,EAAQuzB,EAAQ7hB,MAAO,IAAK,IAAMmxD,MACtC/iB,GAEP,KAAKijB,EACH,GAAIxvC,EAAQ10B,OAAQ,ON7MnB,SAAkB8c,EAAOmkC,GAC/B,OAAOnkC,EAAMzU,IAAI44C,GAAU/gD,KAAK,GACjC,CM2MiCgmE,CAAQxxC,EAAQ1N,OAAO,SAAUnU,GAC1D,ONtRD,SAAgBA,EAAOsvD,GAC7B,OAAQtvD,EAAQsvD,EAAQl5D,KAAK4J,IAAUA,EAAM,GAAKA,CACnD,CMoRgBtQ,CAAMsQ,EAAO,0BAEnB,IAAK,aACL,IAAK,cACH,OAAOwxD,EAAU,CAACnB,EAAKxuC,EAAS,CAC9B1N,MAAO,CAAC7lB,EAAQ0R,EAAO,cAAe,gBACnCouC,GAGP,IAAK,gBACH,OAAOojB,EAAU,CAACnB,EAAKxuC,EAAS,CAC9B1N,MAAO,CAAC7lB,EAAQ0R,EAAO,aAAc,IAAMmxD,EAAS,eAClDd,EAAKxuC,EAAS,CAChB1N,MAAO,CAAC7lB,EAAQ0R,EAAO,aAAc,eACnCqwD,EAAKxuC,EAAS,CAChB1N,MAAO,CAAC7lB,EAAQ0R,EAAO,aAAcixD,EAAK,gBACvC7iB,GAGT,MAAO,EACT,IAEN,GAIIklB,GAAc,SAENj3C,GAGV,IAAI3W,EAAM2W,EAAQ3W,IAElB,GAAY,QAARA,EAAe,CACjB,IAAI6tD,EAAYtwC,SAASqgC,iBAAiB,qCAK1Cl2D,MAAMiC,UAAU6D,QAAQmD,KAAKk9D,GAAW,SAAUvxC,IAWL,IAFhBA,EAAKypC,aAAa,gBAEpBn3D,QAAQ,OAIjC2uB,SAASipC,KAAKziC,YAAYzH,GAC1BA,EAAKsC,aAAa,SAAU,IAC9B,GACF,CAEA,IAGI8pC,EAsBAoF,EAzBAC,EAAgBp3C,EAAQo3C,eAAiBL,GAEzCM,EAAW,CAAC,EAIZC,EAAiB,GAGnBvF,EAAY/xC,EAAQ+xC,WAAanrC,SAASipC,KAC1C9+D,MAAMiC,UAAU6D,QAAQmD,KAExB4sB,SAASqgC,iBAAiB,wBAA2B59C,EAAM,QAAS,SAAUsc,GAK5E,IAFA,IAAI4xC,EAAS5xC,EAAKypC,aAAa,gBAAgB1+D,MAAM,KAE5CR,EAAI,EAAGA,EAAIqnE,EAAOzmE,OAAQZ,IACjCmnE,EAASE,EAAOrnE,KAAM,EAGxBonE,EAAej7D,KAAKspB,EACtB,IAYF,IAGM6xC,EAHFC,EAAqB,CAACf,GAAQG,IAI5Ba,EAAoB,CAACvQ,EAAWiO,IAAU,SAAU7C,GACtDiF,EAAalF,OAAOC,EACtB,KACIoF,EFxZD,SAAqBvoD,GAC3B,IAAIte,EAAS0iE,EAAOpkD,GAEpB,OAAO,SAAUoW,EAAS/Z,EAAO8gB,EAAUwlB,GAG1C,IAFA,IAAIqf,EAAS,GAEJlhE,EAAI,EAAGA,EAAIY,EAAQZ,IAC3BkhE,GAAUhiD,EAAWlf,GAAGs1B,EAAS/Z,EAAO8gB,EAAUwlB,IAAa,GAEhE,OAAOqf,CACR,CACD,CE6YqBwG,CAAWH,EAAmBv/D,OAAOk/D,EAAeM,IAMrEP,EAAU,SAEHU,EAELC,EAEArF,EAEAsF,GAGAP,EAAe/E,EAfJ,SAAgBuF,GACpB7C,EAAUE,GAAQ2C,GAASL,EACpC,CAeEM,CAAOJ,EAAWA,EAAW,IAAMC,EAAWE,OAAS,IAAMF,EAAWE,QAEpED,IACFphD,EAAM0gD,SAASS,EAAWtnE,OAAQ,EAEtC,EAGF,IAAImmB,EAEF,CACAtN,IAAKA,EACLopD,MAAO,IAAIjB,EAAW,CACpBnoD,IAAKA,EACL0oD,UAAWA,EACXI,MAAOnyC,EAAQmyC,MACfF,OAAQjyC,EAAQiyC,OAChBH,QAAS9xC,EAAQ8xC,QACjBD,eAAgB7xC,EAAQ6xC,iBAE1BM,MAAOnyC,EAAQmyC,MACfkF,SAAUA,EACVa,WAAY,CAAC,EACb5F,OAAQ6E,GAGV,OADAxgD,EAAM87C,MAAM/I,QAAQ4N,GACb3gD,CACT,EChdA,IAAIwhD,GAAe,CACjBxqC,wBAAyB,EACzBC,YAAa,EACbC,kBAAmB,EACnBC,iBAAkB,EAClBC,iBAAkB,EAClBC,QAAS,EACTC,aAAc,EACdC,gBAAiB,EACjBC,YAAa,EACbC,QAAS,EACTC,KAAM,EACNC,SAAU,EACVC,aAAc,EACdC,WAAY,EACZC,aAAc,EACdC,UAAW,EACXE,QAAS,EACTC,WAAY,EACZC,YAAa,EACbC,aAAc,EACdC,WAAY,EACZC,cAAe,EACfC,eAAgB,EAChBC,gBAAiB,EACjBipC,UAAW,EACXC,cAAe,EACfC,aAAc,EACdC,iBAAkB,EAClBnpC,WAAY,EACZE,WAAY,EACZC,QAAS,EACTC,MAAO,EACPC,QAAS,EACT+oC,MAAO,EACP9oC,QAAS,EACTC,OAAQ,EACRC,OAAQ,EACRC,KAAM,EACN4oC,gBAAiB,EAEjB3oC,YAAa,EACbC,aAAc,EACdC,YAAa,EACbC,gBAAiB,EACjBC,iBAAkB,EAClBC,iBAAkB,EAClBC,cAAe,EACfC,YAAa,GChDf,SAASpT,GAAQrY,GACf,IAAI+R,EAAQnS,OAAOiB,OAAO,MAC1B,OAAO,SAAUkY,GAEf,YADmBjX,IAAfiQ,EAAMgH,KAAoBhH,EAAMgH,GAAO/Y,EAAG+Y,IACvChH,EAAMgH,EACf,CACF,CCFA,IAEI+6C,GAAiB,aACjBC,GAAiB,8BAEjBC,GAAmB,SAA0B9kD,GAC/C,OAAkC,KAA3BA,EAAS9Q,WAAW,EAC7B,EAEI61D,GAAqB,SAA4Bl1D,GACnD,OAAgB,MAATA,GAAkC,mBAAVA,CACjC,EAEIm1D,GAAkC77C,IAAQ,SAAU87C,GACtD,OAAOH,GAAiBG,GAAaA,EAAYA,EAAU9mE,QAAQymE,GAAgB,OAAO1mE,aAC5F,IAEIgnE,GAAoB,SAA2B3vD,EAAK1F,GACtD,OAAQ0F,GACN,IAAK,YACL,IAAK,gBAED,GAAqB,kBAAV1F,EACT,OAAOA,EAAM1R,QAAQ0mE,IAAgB,SAAUtlE,EAAO4lE,EAAIC,GAMxD,OALAC,GAAS,CACP3oE,KAAMyoE,EACNjB,OAAQkB,EACRxpB,KAAMypB,IAEDF,CACT,IAKR,OAAsB,IAAlBG,GAAS/vD,IAAeuvD,GAAiBvvD,IAAyB,kBAAV1F,GAAgC,IAAVA,EAI3EA,EAHEA,EAAQ,IAInB,EAIA,SAAS01D,GAAoBC,EAAapB,EAAYqB,GACpD,GAAqB,MAAjBA,EACF,MAAO,GAGT,IAAIC,EAAoBD,EAExB,QAA2C7yD,IAAvC8yD,EAAkBC,iBAEpB,OAAOD,EAGT,cAAeD,GACb,IAAK,UAED,MAAO,GAGX,IAAK,SAED,IAAIG,EAAYH,EAEhB,GAAuB,IAAnBG,EAAUC,KAMZ,OALAR,GAAS,CACP3oE,KAAMkpE,EAAUlpE,KAChBwnE,OAAQ0B,EAAU1B,OAClBtoB,KAAMypB,IAEDO,EAAUlpE,KAGnB,IAAIopE,EAAmBL,EAEvB,QAAgC7yD,IAA5BkzD,EAAiB5B,OAAsB,CACzC,IAAItoB,EAAOkqB,EAAiBlqB,KAE5B,QAAahpC,IAATgpC,EAGF,UAAgBhpC,IAATgpC,GACLypB,GAAS,CACP3oE,KAAMk/C,EAAKl/C,KACXwnE,OAAQtoB,EAAKsoB,OACbtoB,KAAMypB,IAERzpB,EAAOA,EAAKA,KAMhB,OAFakqB,EAAiB5B,OAAS,GAGzC,CAEA,OA2BR,SAAgCsB,EAAapB,EAAYz0D,GACvD,IAAIsL,EAAS,GAEb,GAAIhe,MAAMqd,QAAQ3K,GAChB,IAAK,IAAIvT,EAAI,EAAGA,EAAIuT,EAAI3S,OAAQZ,IAC9B6e,GAAUsqD,GAAoBC,EAAapB,EAAYz0D,EAAIvT,IAAM,SAGnE,IAAK,IAAImZ,KAAO5F,EAAK,CACnB,IAAIE,EAAQF,EAAI4F,GAEhB,GAAqB,kBAAV1F,EAAoB,CAC7B,IAAIk2D,EAAWl2D,EAEG,MAAdu0D,QAA+CxxD,IAAzBwxD,EAAW2B,GACnC9qD,GAAU1F,EAAM,IAAM6uD,EAAW2B,GAAY,IACpChB,GAAmBgB,KAC5B9qD,GAAU+pD,GAAiBzvD,GAAO,IAAM2vD,GAAkB3vD,EAAKwwD,GAAY,IAE/E,MAKE,IAAI9oE,MAAMqd,QAAQzK,IAA8B,kBAAbA,EAAM,IAAkC,MAAdu0D,QAA+CxxD,IAAzBwxD,EAAWv0D,EAAM,IAM7F,CACL,IAAIm2D,EAAeT,GAAoBC,EAAapB,EAAYv0D,GAEhE,OAAQ0F,GACN,IAAK,YACL,IAAK,gBAED0F,GAAU+pD,GAAiBzvD,GAAO,IAAMywD,EAAe,IACvD,MAGJ,QAGI/qD,GAAU1F,EAAM,IAAMywD,EAAe,IAG7C,MAtBE,IAAK,IAAIC,EAAK,EAAGA,EAAKp2D,EAAM7S,OAAQipE,IAC9BlB,GAAmBl1D,EAAMo2D,MAC3BhrD,GAAU+pD,GAAiBzvD,GAAO,IAAM2vD,GAAkB3vD,EAAK1F,EAAMo2D,IAAO,IAsBtF,CAGF,OAAOhrD,CACT,CAhFeirD,CAAuBV,EAAapB,EAAYqB,GAG3D,IAAK,WAED,QAAoB7yD,IAAhB4yD,EAA2B,CAC7B,IAAIW,EAAiBd,GACjBprD,EAASwrD,EAAcD,GAE3B,OADAH,GAASc,EACFZ,GAAoBC,EAAapB,EAAYnqD,EACtD,EAON,IAAI8rD,EAAWN,EAEf,GAAkB,MAAdrB,EACF,OAAO2B,EAGT,IAAIK,EAAShC,EAAW2B,GACxB,YAAkBnzD,IAAXwzD,EAAuBA,EAASL,CACzC,CAyDA,IAIIV,GAJAgB,GAAe,+BAKnB,SAASC,GAAgB/nE,EAAM6lE,EAAYoB,GACzC,GAAoB,IAAhBjnE,EAAKvB,QAAmC,kBAAZuB,EAAK,IAA+B,OAAZA,EAAK,SAAkCqU,IAAnBrU,EAAK,GAAG2lE,OAClF,OAAO3lE,EAAK,GAGd,IAAIgoE,GAAa,EACbrC,EAAS,GACbmB,QAASzyD,EACT,IAAI4zD,EAAUjoE,EAAK,GAEJ,MAAXioE,QAAmC5zD,IAAhB4zD,EAAQC,KAC7BF,GAAa,EACbrC,GAAUqB,GAAoBC,EAAapB,EAAYoC,IAIvDtC,GAF2BsC,EAEI,GAIjC,IAAK,IAAIpqE,EAAI,EAAGA,EAAImC,EAAKvB,OAAQZ,IAAK,CAGpC,GAFA8nE,GAAUqB,GAAoBC,EAAapB,EAAY7lE,EAAKnC,IAExDmqE,EAGFrC,GAFyBsC,EAEIpqE,EAEjC,CAGAiqE,GAAaK,UAAY,EAIzB,IAHA,IACInnE,EADAonE,EAAiB,GAG0B,QAAvCpnE,EAAQ8mE,GAAapgE,KAAKi+D,KAChCyC,GAAkB,IAAMpnE,EAAM,GAGhC,IAAI7C,ECjON,SAAiBqM,GAYf,IANA,IAEIzN,EAFAD,EAAI,EAGJe,EAAI,EACJ4L,EAAMe,EAAI/L,OAEPgL,GAAO,IAAK5L,EAAG4L,GAAO,EAE3B1M,EAEe,YAAV,OAHLA,EAAwB,IAApByN,EAAImG,WAAW9S,IAAmC,IAAtB2M,EAAImG,aAAa9S,KAAc,GAA2B,IAAtB2M,EAAImG,aAAa9S,KAAc,IAA4B,IAAtB2M,EAAImG,aAAa9S,KAAc,MAG9F,OAAZd,IAAM,KAAgB,IAIpDD,EAEe,YAAV,OALLC,GAEAA,IAAM,MAGoC,OAAZA,IAAM,KAAgB,IAErC,YAAV,MAAJD,IAAyC,OAAZA,IAAM,KAAgB,IAItD,OAAQ2M,GACN,KAAK,EACH3M,IAA8B,IAAxB0N,EAAImG,WAAW9S,EAAI,KAAc,GAEzC,KAAK,EACHf,IAA8B,IAAxB0N,EAAImG,WAAW9S,EAAI,KAAc,EAEzC,KAAK,EAEHf,EAEe,YAAV,OAHLA,GAAyB,IAApB0N,EAAImG,WAAW9S,MAGsB,OAAZf,IAAM,KAAgB,IASxD,SAHAA,EAEe,YAAV,OAHLA,GAAKA,IAAM,MAG+B,OAAZA,IAAM,KAAgB,KACvCA,IAAM,MAAQ,GAAGwF,SAAS,GACzC,CDgLa+lE,CAAW1C,GAAUyC,EAEhC,MAAO,CACLjqE,KAAMA,EACNwnE,OAAQA,EACRtoB,KAAMypB,GAEV,CEzOA,IAIIvhB,KAAqBkZ,EAA+B,oBAAIA,EAA+B,mBACvF6J,GAA2C/iB,IAL5B,SAAsBnyC,GACvC,OAAOA,GACT,EAIIm1D,GAAuChjB,IAAsBkZ,EAAAA,gBCK7D+J,GAEa/J,EAAAA,cAMM,qBAAhBgK,YAA6C7D,GAAY,CAC9D5tD,IAAK,QACF,MASD0xD,IAPgBF,GAAoBtP,SAOjB,SAEtB79C,GAKC,OAAoBm+C,EAAAA,EAAAA,aAAW,SAAU/zC,EAEvC+2B,GAIA,IAAIl4B,GAAQ8gC,EAAAA,EAAAA,YAAWojB,IACvB,OAAOntD,EAAKoK,EAAOnB,EAAOk4B,EAC5B,GACF,GAEImiB,GAA8BF,EAAAA,cAAoB,CAAC,GCvCvD,SAJA,WAAuC,IAArBkK,EAAY1oE,UAAAxB,OAAA,QAAA4V,IAAApU,UAAA,GAAAA,UAAA,GAAG,KAC/B,MAAM2oE,EAAenK,EAAAA,WAAiBE,IACtC,OAAQiK,IALax3D,EAKiBw3D,EAJH,IAA5Bz2D,OAAO0E,KAAKzF,GAAK3S,QAI6CmqE,EAAfD,EALxD,IAAuBv3D,CAMvB,ECPMy3D,GAA0BpK,EAAAA,gBAczB,MAAMqK,GAASA,IACNrK,EAAAA,WAAiBoK,MACf,EAElB,GAjBA,SAAoBE,GAGjB,IAHkB,MACnBz3D,KACGmU,GACJsjD,EACC,OAAoB7J,EAAAA,EAAAA,KAAK2J,GAAW3P,SAAU,CAC5C5nD,MAAOA,IAAS,KACbmU,GAEP,ECNe,SAASujD,GAAah0D,EAAcyQ,GACjD,MAAMs5C,EAAS,IACVt5C,GAEL,IAAK,MAAMzO,KAAOhC,EAChB,GAAI7C,OAAOxR,UAAUqR,eAAerK,KAAKqN,EAAcgC,GAAM,CAC3D,MAAMsb,EAAWtb,EACjB,GAAiB,eAAbsb,GAA0C,UAAbA,EAC/BysC,EAAOzsC,GAAY,IACdtd,EAAasd,MACbysC,EAAOzsC,SAEP,GAAiB,oBAAbA,GAA+C,cAAbA,EAA0B,CACrE,MAAM22C,EAAmBj0D,EAAasd,GAChC42C,EAAYzjD,EAAM6M,GACxB,GAAK42C,EAEE,GAAKD,EAEL,CACLlK,EAAOzsC,GAAY,IACd42C,GAEL,IAAK,MAAMC,KAAWF,EACpB,GAAI92D,OAAOxR,UAAUqR,eAAerK,KAAKshE,EAAkBE,GAAU,CACnE,MAAMC,EAAeD,EACrBpK,EAAOzsC,GAAU82C,GAAgBJ,GAAaC,EAAiBG,GAAeF,EAAUE,GAC1F,CAEJ,MAXErK,EAAOzsC,GAAY42C,OAFnBnK,EAAOzsC,GAAY22C,GAAoB,CAAC,CAc5C,WAAgC50D,IAArB0qD,EAAOzsC,KAChBysC,EAAOzsC,GAAYtd,EAAasd,GAEpC,CAEF,OAAOysC,CACT,CCpCA,MAAMsK,GAA4B5K,EAAAA,mBAAoBpqD,GA4C/C,SAASi1D,GAAeC,GAG5B,IAH6B,MAC9B9jD,EAAK,KACLtnB,GACDorE,EAEC,OAzBF,SAAuBC,GACrB,MAAM,MACJ5K,EAAK,KACLzgE,EAAI,MACJsnB,GACE+jD,EACJ,IAAK5K,IAAUA,EAAM6K,aAAe7K,EAAM6K,WAAWtrE,GACnD,OAAOsnB,EAET,MAAMtU,EAASytD,EAAM6K,WAAWtrE,GAChC,OAAIgT,EAAO6D,aAEFg0D,GAAa73D,EAAO6D,aAAcyQ,GAEtCtU,EAAOu4D,gBAAmBv4D,EAAOw4D,SAI/BlkD,EAFEujD,GAAa73D,EAAQsU,EAGhC,CAMSmkD,CAAc,CACnBnkD,QACAtnB,OACAygE,MAAO,CACL6K,WALQhL,EAAAA,WAAiB4K,MAQ/B,CACA,SAxDA,SAA6BN,GAG1B,IAH2B,MAC5Bz3D,EAAK,SACL4oB,GACD6uC,EACC,OAAoB7J,EAAAA,EAAAA,KAAKmK,GAAanQ,SAAU,CAC9C5nD,MAAOA,EACP4oB,SAAUA,GAEd,ECJM2vC,GAAc,CAAC,EACrB,SAASC,GAAgBC,EAASC,EAAYnL,GAA+B,IAAnBoL,EAAShqE,UAAAxB,OAAA,QAAA4V,IAAApU,UAAA,IAAAA,UAAA,GACjE,OAAOw+D,EAAAA,SAAc,KACnB,MAAMyL,EAAgBH,GAAUC,EAAWD,IAAyBC,EACpE,GAA0B,oBAAfnL,EAA2B,CACpC,MAAMsL,EAActL,EAAWqL,GACzBxuD,EAASquD,EAAU,IACpBC,EACH,CAACD,GAAUI,GACTA,EAGJ,OAAIF,EACK,IAAMvuD,EAERA,CACT,CACA,OAAOquD,EAAU,IACZC,EACH,CAACD,GAAUlL,GACT,IACCmL,KACAnL,EACJ,GACA,CAACkL,EAASC,EAAYnL,EAAYoL,GACvC,CA4DA,SAnDA,SAAuBxkD,GACrB,MAAM,SACJyU,EACA0kC,MAAOC,EAAU,QACjBkL,GACEtkD,EACEukD,EAAaI,GAAuBP,IACpCQ,EAAoBC,KAAqBT,GAMzCU,EAAcT,GAAgBC,EAASC,EAAYnL,GACnD2L,EAAeV,GAAgBC,EAASM,EAAmBxL,GAAY,GACvE4L,EAAqC,QAA1BF,EAAYG,UAC7B,OAAoBxL,EAAAA,EAAAA,KAAKyL,EAAkB,CACzC/L,MAAO4L,EACPtwC,UAAuBglC,EAAAA,EAAAA,KAAK0L,GAAyB1R,SAAU,CAC7D5nD,MAAOi5D,EACPrwC,UAAuBglC,EAAAA,EAAAA,KAAK2L,GAAa,CACvCv5D,MAAOm5D,EACPvwC,UAAuBglC,EAAAA,EAAAA,KAAK4L,GAAsB,CAChDx5D,MAAOi5D,GAAad,WACpBvvC,SAAUA,SAKpB,EC1EA,gBCMe,SAAS6wC,GAAmBhC,GAGxC,IAFDnK,MAAOoM,KACJvlD,GACJsjD,EACC,MAAMkC,EAAcC,MAAYF,EAAaA,EAAWE,SAAY72D,EACpE,OAAoB6qD,EAAAA,EAAAA,KAAKiM,GAAqB,IACzC1lD,EACHskD,QAASkB,EAAcC,QAAW72D,EAClCuqD,MAAOqM,GAAeD,GAE1B,CCNe,SAASI,GAAsB79B,GAC5C,MAAM4C,EAAM,IAAIk7B,IAAI,0CAA0C99B,KAAQ,QAAA+9B,EAAArrE,UAAAxB,OADjBuB,EAAI,IAAAtB,MAAA4sE,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJvrE,EAAIurE,EAAA,GAAAtrE,UAAAsrE,GAGzD,OADAvrE,EAAKwE,SAAQ8mB,GAAO6kB,EAAIq7B,aAAapK,OAAO,SAAU91C,KAC/C,uBAAuBiiB,YAAe4C,yBAC/C,CCTe,SAASs7B,GAAW/uD,GACjC,GAAsB,kBAAXA,EACT,MAAM,IAAI3V,MAAuG2kE,GAAuB,IAE1I,OAAOhvD,EAAOlM,OAAO,GAAGjJ,cAAgBmV,EAAOvZ,MAAM,EACvD,CCTO,SAASwoE,GAAcC,GAC5B,GAAoB,kBAATA,GAA8B,OAATA,EAC9B,OAAO,EAET,MAAMjrE,EAAYwR,OAAOmE,eAAes1D,GACxC,OAAsB,OAAdjrE,GAAsBA,IAAcwR,OAAOxR,WAAkD,OAArCwR,OAAOmE,eAAe3V,OAA0BpE,OAAO6hB,eAAewtD,MAAWrvE,OAAOw6B,YAAY60C,EACtK,CACA,SAASC,GAAU1rD,GACjB,IAAKwrD,GAAcxrD,GACjB,OAAOA,EAET,MAAM4+C,EAAS,CAAC,EAIhB,OAHA5sD,OAAO0E,KAAKsJ,GAAQ3b,SAAQwS,IAC1B+nD,EAAO/nD,GAAO60D,GAAU1rD,EAAOnJ,GAAK,IAE/B+nD,CACT,CACe,SAAS+M,GAAUpsC,EAAQvf,GAEvC,IAF+CwN,EAAO1tB,UAAAxB,OAAA,QAAA4V,IAAApU,UAAA,GAAAA,UAAA,GAAG,CAC1Db,OAAO,GAEP,MAAM2/D,EAASpxC,EAAQvuB,MAAQ,IAC1BsgC,GACDA,EAeJ,OAdIisC,GAAcjsC,IAAWisC,GAAcxrD,IACzChO,OAAO0E,KAAKsJ,GAAQ3b,SAAQwS,IACtB20D,GAAcxrD,EAAOnJ,KAEzB7E,OAAOxR,UAAUqR,eAAerK,KAAK+3B,EAAQ1oB,IAAQ20D,GAAcjsC,EAAO1oB,IAExE+nD,EAAO/nD,GAAO80D,GAAUpsC,EAAO1oB,GAAMmJ,EAAOnJ,GAAM2W,GACzCA,EAAQvuB,MACjB2/D,EAAO/nD,GAAO20D,GAAcxrD,EAAOnJ,IAAQ60D,GAAU1rD,EAAOnJ,IAAQmJ,EAAOnJ,GAE3E+nD,EAAO/nD,GAAOmJ,EAAOnJ,EACvB,IAGG+nD,CACT,CC9BA,SARA,SAAegN,EAAKH,GAClB,OAAKA,EAGEE,GAAUC,EAAKH,EAAM,CAC1BxsE,OAAO,IAHA2sE,CAKX,ECDO,MAAMtxD,GAAS,CACpBuxD,GAAI,EAEJC,GAAI,IAEJ5jC,GAAI,IAEJgS,GAAI,KAEJ6xB,GAAI,MAEAC,GAAqB,CAGzBt1D,KAAM,CAAC,KAAM,KAAM,KAAM,KAAM,MAC/Bu1D,GAAIp1D,GAAO,qBAAqByD,GAAOzD,SAEnCq1D,GAA0B,CAC9BC,iBAAkBC,IAAiB,CACjCH,GAAIp1D,IACF,IAAI0E,EAAwB,kBAAR1E,EAAmBA,EAAMyD,GAAOzD,IAAQA,EAI5D,MAHsB,kBAAX0E,IACTA,EAAS,GAAGA,OAEP6wD,EAAgB,cAAcA,gBAA4B7wD,KAAY,yBAAyBA,IAAS,KAI9G,SAAS8wD,GAAkB/mD,EAAOgnD,EAAWC,GAClD,MAAM9N,EAAQn5C,EAAMm5C,OAAS,CAAC,EAC9B,GAAIlgE,MAAMqd,QAAQ0wD,GAAY,CAC5B,MAAME,EAAmB/N,EAAMgO,aAAeT,GAC9C,OAAOM,EAAUrQ,QAAO,CAAC2P,EAAKH,EAAMxyD,KAClC2yD,EAAIY,EAAiBP,GAAGO,EAAiB91D,KAAKuC,KAAWszD,EAAmBD,EAAUrzD,IAC/E2yD,IACN,CAAC,EACN,CACA,GAAyB,kBAAdU,EAAwB,CACjC,MAAME,EAAmB/N,EAAMgO,aAAeT,GAC9C,OAAOh6D,OAAO0E,KAAK41D,GAAWrQ,QAAO,CAAC2P,EAAKc,KACzC,GCpBC,SAAuBC,EAAgBx7D,GAC5C,MAAiB,MAAVA,GAAiBA,EAAMy7D,WAAW,OAASD,EAAevO,MAAKvnD,GAAO1F,EAAMy7D,WAAW,IAAI/1D,UAAa1F,EAAMtQ,MAAM,QAC7H,CDkBUgsE,CAAcL,EAAiB91D,KAAMg2D,GAAa,CACpD,MAAMI,EClBP,SAA2BrO,EAAOsO,GACvC,MAAMC,EAAUD,EAAUlsE,MAAM,uBAChC,IAAKmsE,EAIH,OAAO,KAET,MAAO,CAAEC,EAAgBb,GAAiBY,EACpC77D,EAAQ5N,OAAO8xB,OAAO43C,GAAkBA,GAAkB,GAAKA,EACrE,OAAOxO,EAAM0N,iBAAiBC,GAAeH,GAAG96D,EAClD,CDO6B+7D,CAAkBzO,EAAM0N,iBAAmB1N,EAAQyN,GAAyBQ,GAC7FI,IACFlB,EAAIkB,GAAgBP,EAAmBD,EAAUI,GAAaA,GAElE,MAEK,GAAI16D,OAAO0E,KAAK81D,EAAiBlyD,QAAUA,IAAQwJ,SAAS4oD,GAAa,CAE5Ed,EADiBY,EAAiBP,GAAGS,IACrBH,EAAmBD,EAAUI,GAAaA,EAC5D,KAAO,CACL,MAAMS,EAAST,EACfd,EAAIuB,GAAUb,EAAUa,EAC1B,CACA,OAAOvB,CAAG,GACT,CAAC,EACN,CAEA,OADeW,EAAmBD,EAEpC,CA+BO,SAASc,KAAmD,IAAvBC,EAAgBvtE,UAAAxB,OAAA,QAAA4V,IAAApU,UAAA,GAAAA,UAAA,GAAG,CAAC,EAC9D,MAAMwtE,EAAqBD,EAAiB32D,MAAMulD,QAAO,CAAC2P,EAAK/0D,KAE7D+0D,EAD2ByB,EAAiBpB,GAAGp1D,IACrB,CAAC,EACpB+0D,IACN,CAAC,GACJ,OAAO0B,GAAsB,CAAC,CAChC,CACO,SAASC,GAAwBZ,EAAgB1uC,GACtD,OAAO0uC,EAAe1Q,QAAO,CAAC2P,EAAK/0D,KACjC,MAAM22D,EAAmB5B,EAAI/0D,GAK7B,QAJ4B22D,GAA6D,IAAzCx7D,OAAO0E,KAAK82D,GAAkBlvE,gBAErEstE,EAAI/0D,GAEN+0D,CAAG,GACT3tC,EACL,CAgCO,SAASwvC,GAAuB7E,GAIpC,IAHDtuD,OAAQozD,EACRjB,YAAaD,EACb//D,KAAMkhE,GACP/E,EACC,MAAMn8D,EAAOkhE,GA3BR,SAAgCD,EAAkBlB,GAEvD,GAAgC,kBAArBkB,EACT,MAAO,CAAC,EAEV,MAAMjhE,EAAO,CAAC,EACRmhE,EAAkB57D,OAAO0E,KAAK81D,GAcpC,OAbIjuE,MAAMqd,QAAQ8xD,GAChBE,EAAgBvpE,SAAQ,CAACqoE,EAAYhvE,KAC/BA,EAAIgwE,EAAiBpvE,SACvBmO,EAAKigE,IAAc,EACrB,IAGFkB,EAAgBvpE,SAAQqoE,IACc,MAAhCgB,EAAiBhB,KACnBjgE,EAAKigE,IAAc,EACrB,IAGGjgE,CACT,CAM6BohE,CAAuBH,EAAkBlB,GAC9D91D,EAAO1E,OAAO0E,KAAKjK,GACzB,GAAoB,IAAhBiK,EAAKpY,OACP,OAAOovE,EAET,IAAItK,EACJ,OAAO1sD,EAAKulD,QAAO,CAAC2P,EAAKc,EAAYhvE,KAC/Ba,MAAMqd,QAAQ8xD,IAChB9B,EAAIc,GAAqC,MAAvBgB,EAAiBhwE,GAAagwE,EAAiBhwE,GAAKgwE,EAAiBtK,GACvFA,EAAW1lE,GAC0B,kBAArBgwE,GAChB9B,EAAIc,GAA8C,MAAhCgB,EAAiBhB,GAAsBgB,EAAiBhB,GAAcgB,EAAiBtK,GACzGA,EAAWsJ,GAEXd,EAAIc,GAAcgB,EAEb9B,IACN,CAAC,EACN,CEtKO,SAASkC,GAAQ78D,EAAK0M,GAAwB,IAAlBowD,IAASjuE,UAAAxB,OAAA,QAAA4V,IAAApU,UAAA,KAAAA,UAAA,GAC1C,IAAK6d,GAAwB,kBAATA,EAClB,OAAO,KAIT,GAAI1M,GAAOA,EAAI+8D,MAAQD,EAAW,CAChC,MAAMl/D,EAAM,QAAQ8O,IAAOzf,MAAM,KAAK+9D,QAAO,CAAC2P,EAAKH,IAASG,GAAOA,EAAIH,GAAQG,EAAIH,GAAQ,MAAMx6D,GACjG,GAAW,MAAPpC,EACF,OAAOA,CAEX,CACA,OAAO8O,EAAKzf,MAAM,KAAK+9D,QAAO,CAAC2P,EAAKH,IAC9BG,GAAoB,MAAbA,EAAIH,GACNG,EAAIH,GAEN,MACNx6D,EACL,CACO,SAASg9D,GAAcC,EAAchjD,EAAWijD,GAA4C,IAC7Fh9D,EADiEi9D,EAAStuE,UAAAxB,OAAA,QAAA4V,IAAApU,UAAA,GAAAA,UAAA,GAAGquE,EAYjF,OATEh9D,EAD0B,oBAAjB+8D,EACDA,EAAaC,GACZ5vE,MAAMqd,QAAQsyD,GACfA,EAAaC,IAAmBC,EAEhCN,GAAQI,EAAcC,IAAmBC,EAE/CljD,IACF/Z,EAAQ+Z,EAAU/Z,EAAOi9D,EAAWF,IAE/B/8D,CACT,CAuCA,SAtCA,SAAeqc,GACb,MAAM,KACJ6uC,EAAI,YACJgS,EAAc7gD,EAAQ6uC,KAAI,SAC1BiS,EAAQ,UACRpjD,GACEsC,EAIEpb,EAAKkT,IACT,GAAmB,MAAfA,EAAM+2C,GACR,OAAO,KAET,MAAMiQ,EAAYhnD,EAAM+2C,GAElB6R,EAAeJ,GADPxoD,EAAMm5C,MACgB6P,IAAa,CAAC,EAclD,OAAOjC,GAAkB/mD,EAAOgnD,GAbL6B,IACzB,IAAIh9D,EAAQ88D,GAAcC,EAAchjD,EAAWijD,GAKnD,OAJIA,IAAmBh9D,GAAmC,kBAAnBg9D,IAErCh9D,EAAQ88D,GAAcC,EAAchjD,EAAW,GAAGmxC,IAA0B,YAAnB8R,EAA+B,GAAK7C,GAAW6C,KAAmBA,KAEzG,IAAhBE,EACKl9D,EAEF,CACL,CAACk9D,GAAcl9D,EAChB,GAE2D,EAMhE,OAJAiB,EAAG+C,UAEC,CAAC,EACL/C,EAAGm8D,YAAc,CAAClS,GACXjqD,CACT,ECpEA,MAAMo8D,GAAa,CACjB1xE,EAAG,SACHE,EAAG,WAECyxE,GAAa,CACjBvxE,EAAG,MACHG,EAAG,QACHlB,EAAG,SACHU,EAAG,OACHsD,EAAG,CAAC,OAAQ,SACZrC,EAAG,CAAC,MAAO,WAEP4wE,GAAU,CACdC,QAAS,KACTC,QAAS,KACTC,SAAU,KACVC,SAAU,MAMNC,GC3BS,SAAiB38D,GAC9B,MAAM+R,EAAQ,CAAC,EACf,OAAOgH,SACcjX,IAAfiQ,EAAMgH,KACRhH,EAAMgH,GAAO/Y,EAAG+Y,IAEXhH,EAAMgH,GAEjB,CDmByBV,EAAQ4xC,IAE/B,GAAIA,EAAK/9D,OAAS,EAAG,CACnB,IAAIowE,GAAQrS,GAGV,MAAO,CAACA,GAFRA,EAAOqS,GAAQrS,EAInB,CACA,MAAOj/D,EAAGjB,GAAKkgE,EAAKn+D,MAAM,IACpBojB,EAAWktD,GAAWpxE,GACtBmtE,EAAYkE,GAAWtyE,IAAM,GACnC,OAAOoC,MAAMqd,QAAQ2uD,GAAaA,EAAU5jE,KAAIqoE,GAAO1tD,EAAW0tD,IAAO,CAAC1tD,EAAWipD,EAAU,IAEpF0E,GAAa,CAAC,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,SAAU,YAAa,cAAe,eAAgB,aAAc,UAAW,UAAW,eAAgB,oBAAqB,kBAAmB,cAAe,mBAAoB,kBAC5OC,GAAc,CAAC,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,UAAW,aAAc,eAAgB,gBAAiB,cAAe,WAAY,WAAY,gBAAiB,qBAAsB,mBAAoB,eAAgB,oBAAqB,mBAChQC,GAAc,IAAIF,MAAeC,IAChC,SAASE,GAAgB3Q,EAAO6P,EAAUj/C,EAAc8C,GAC7D,MAAMk9C,EAAevB,GAAQrP,EAAO6P,GAAU,IAASj/C,EACvD,MAA4B,kBAAjBggD,GAAqD,kBAAjBA,EACtCxgE,GACc,kBAARA,EACFA,EAOmB,kBAAjBwgE,EACF,QAAQxgE,OAASwgE,KAEnBA,EAAexgE,EAGtBtQ,MAAMqd,QAAQyzD,GACTxgE,IACL,GAAmB,kBAARA,EACT,OAAOA,EAET,MAAMjQ,EAAMD,KAAKC,IAAIiQ,GAQrB,MAAMygE,EAAcD,EAAazwE,GACjC,OAAIiQ,GAAO,EACFygE,EAEkB,kBAAhBA,GACDA,EAEH,IAAIA,GAAa,EAGA,oBAAjBD,EACFA,EAKF,KAAe,CACxB,CACO,SAASE,GAAmB9Q,GACjC,OAAO2Q,GAAgB3Q,EAAO,UAAW,EAC3C,CACO,SAASt2C,GAASqnD,EAAalD,GACpC,MAAyB,kBAAdA,GAAuC,MAAbA,EAC5BA,EAEFkD,EAAYlD,EACrB,CAOA,SAASmD,GAAmBnqD,EAAO5O,EAAM2lD,EAAMmT,GAG7C,IAAK94D,EAAKoN,SAASu4C,GACjB,OAAO,KAET,MACMkQ,EAbD,SAA+BmD,EAAeF,GACnD,OAAOlD,GAAaoD,EAAczT,QAAO,CAAC2P,EAAKyC,KAC7CzC,EAAIyC,GAAelmD,GAASqnD,EAAalD,GAClCV,IACN,CAAC,EACN,CAQ6B+D,CADLZ,GAAiB1S,GACyBmT,GAEhE,OAAOnD,GAAkB/mD,EADPA,EAAM+2C,GACmBkQ,EAC7C,CACA,SAAStuC,GAAM3Y,EAAO5O,GACpB,MAAM84D,EAAcD,GAAmBjqD,EAAMm5C,OAC7C,OAAOzsD,OAAO0E,KAAK4O,GAAO3e,KAAI01D,GAAQoT,GAAmBnqD,EAAO5O,EAAM2lD,EAAMmT,KAAcvT,OAAO2T,GAAO,CAAC,EAC3G,CACO,SAASC,GAAOvqD,GACrB,OAAO2Y,GAAM3Y,EAAO2pD,GACtB,CAMO,SAASa,GAAQxqD,GACtB,OAAO2Y,GAAM3Y,EAAO4pD,GACtB,CAMA,SAASa,GAAQzqD,GACf,OAAO2Y,GAAM3Y,EAAO6pD,GACtB,CAfAU,GAAO16D,UAGE,CAAC,EACV06D,GAAOtB,YAAcU,GAIrBa,GAAQ36D,UAGC,CAAC,EACV26D,GAAQvB,YAAcW,GAItBa,GAAQ56D,UAGC,CAAC,EACV46D,GAAQxB,YAAcY,GE3HtB,SAtBA,WAA4B,QAAAhE,EAAArrE,UAAAxB,OAARknE,EAAM,IAAAjnE,MAAA4sE,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAN5F,EAAM4F,GAAAtrE,UAAAsrE,GACxB,MAAM53D,EAAWgyD,EAAOvJ,QAAO,CAAC2P,EAAK3tC,KACnCA,EAAMswC,YAAYlqE,SAAQg4D,IACxBuP,EAAIvP,GAAQp+B,CAAK,IAEZ2tC,IACN,CAAC,GAIEx5D,EAAKkT,GACFtT,OAAO0E,KAAK4O,GAAO22C,QAAO,CAAC2P,EAAKvP,IACjC7oD,EAAS6oD,GACJuT,GAAMhE,EAAKp4D,EAAS6oD,GAAM/2C,IAE5BsmD,GACN,CAAC,GAIN,OAFAx5D,EAAG+C,UAA6H,CAAC,EACjI/C,EAAGm8D,YAAc/I,EAAOvJ,QAAO,CAAC2P,EAAK3tC,IAAU2tC,EAAIlmE,OAAOu4B,EAAMswC,cAAc,IACvEn8D,CACT,ECjBO,SAAS49D,GAAgB7+D,GAC9B,MAAqB,kBAAVA,EACFA,EAEF,GAAGA,WACZ,CACA,SAAS8+D,GAAkB5T,EAAMnxC,GAC/B,OAAO+S,GAAM,CACXo+B,OACAiS,SAAU,UACVpjD,aAEJ,CACO,MAAMglD,GAASD,GAAkB,SAAUD,IACrCG,GAAYF,GAAkB,YAAaD,IAC3CI,GAAcH,GAAkB,cAAeD,IAC/CK,GAAeJ,GAAkB,eAAgBD,IACjDM,GAAaL,GAAkB,aAAcD,IAC7CO,GAAcN,GAAkB,eAChCO,GAAiBP,GAAkB,kBACnCQ,GAAmBR,GAAkB,oBACrCS,GAAoBT,GAAkB,qBACtCU,GAAkBV,GAAkB,mBACpCW,GAAUX,GAAkB,UAAWD,IACvCa,GAAeZ,GAAkB,gBAIjCa,GAAexrD,IAC1B,QAA2BpR,IAAvBoR,EAAMwrD,cAAqD,OAAvBxrD,EAAMwrD,aAAuB,CACnE,MAAMtB,EAAcJ,GAAgB9pD,EAAMm5C,MAAO,qBAAsB,GACjE8N,EAAqBD,IAAa,CACtCwE,aAAc3oD,GAASqnD,EAAalD,KAEtC,OAAOD,GAAkB/mD,EAAOA,EAAMwrD,aAAcvE,EACtD,CACA,OAAO,IAAI,EAEbuE,GAAa37D,UAET,CAAC,EACL27D,GAAavC,YAAc,CAAC,gBACZwC,GAAQb,GAAQC,GAAWC,GAAaC,GAAcC,GAAYC,GAAaC,GAAgBC,GAAkBC,GAAmBC,GAAiBG,GAAcF,GAASC,IAA5L,MCvCaG,GAAM1rD,IACjB,QAAkBpR,IAAdoR,EAAM0rD,KAAmC,OAAd1rD,EAAM0rD,IAAc,CACjD,MAAMxB,EAAcJ,GAAgB9pD,EAAMm5C,MAAO,UAAW,GACtD8N,EAAqBD,IAAa,CACtC0E,IAAK7oD,GAASqnD,EAAalD,KAE7B,OAAOD,GAAkB/mD,EAAOA,EAAM0rD,IAAKzE,EAC7C,CACA,OAAO,IAAI,EAEbyE,GAAI77D,UAEA,CAAC,EACL67D,GAAIzC,YAAc,CAAC,OAIZ,MAAM0C,GAAY3rD,IACvB,QAAwBpR,IAApBoR,EAAM2rD,WAA+C,OAApB3rD,EAAM2rD,UAAoB,CAC7D,MAAMzB,EAAcJ,GAAgB9pD,EAAMm5C,MAAO,UAAW,GACtD8N,EAAqBD,IAAa,CACtC2E,UAAW9oD,GAASqnD,EAAalD,KAEnC,OAAOD,GAAkB/mD,EAAOA,EAAM2rD,UAAW1E,EACnD,CACA,OAAO,IAAI,EAEb0E,GAAU97D,UAEN,CAAC,EACL87D,GAAU1C,YAAc,CAAC,aAIlB,MAAM2C,GAAS5rD,IACpB,QAAqBpR,IAAjBoR,EAAM4rD,QAAyC,OAAjB5rD,EAAM4rD,OAAiB,CACvD,MAAM1B,EAAcJ,GAAgB9pD,EAAMm5C,MAAO,UAAW,GACtD8N,EAAqBD,IAAa,CACtC4E,OAAQ/oD,GAASqnD,EAAalD,KAEhC,OAAOD,GAAkB/mD,EAAOA,EAAM4rD,OAAQ3E,EAChD,CACA,OAAO,IAAI,EAEb2E,GAAO/7D,UAEH,CAAC,EACL+7D,GAAO3C,YAAc,CAAC,UA4BTwC,GAAQC,GAAKC,GAAWC,GA3BXjzC,GAAM,CAC9Bo+B,KAAM,eAEep+B,GAAM,CAC3Bo+B,KAAM,YAEoBp+B,GAAM,CAChCo+B,KAAM,iBAEuBp+B,GAAM,CACnCo+B,KAAM,oBAEoBp+B,GAAM,CAChCo+B,KAAM,iBAE2Bp+B,GAAM,CACvCo+B,KAAM,wBAEwBp+B,GAAM,CACpCo+B,KAAM,qBAEyBp+B,GAAM,CACrCo+B,KAAM,sBAEgBp+B,GAAM,CAC5Bo+B,KAAM,cC/ED,SAAS8U,GAAiBhgE,EAAOi9D,GACtC,MAAkB,SAAdA,EACKA,EAEFj9D,CACT,CAiBgB4/D,GAhBK9yC,GAAM,CACzBo+B,KAAM,QACNiS,SAAU,UACVpjD,UAAWimD,KAEUlzC,GAAM,CAC3Bo+B,KAAM,UACNgS,YAAa,kBACbC,SAAU,UACVpjD,UAAWimD,KAEkBlzC,GAAM,CACnCo+B,KAAM,kBACNiS,SAAU,UACVpjD,UAAWimD,MCnBN,SAASC,GAAgBjgE,GAC9B,OAAOA,GAAS,GAAe,IAAVA,EAAyB,IAARA,EAAH,IAAoBA,CACzD,CACO,MAAMs8B,GAAQxP,GAAM,CACzBo+B,KAAM,QACNnxC,UAAWkmD,KAEAC,GAAW/rD,IACtB,QAAuBpR,IAAnBoR,EAAM+rD,UAA6C,OAAnB/rD,EAAM+rD,SAAmB,CAC3D,MAAM9E,EAAqBD,IACzB,MAAMI,EAAapnD,EAAMm5C,OAAOgO,aAAanyD,SAASgyD,IAAcgF,GAAkBhF,GACtF,OAAKI,EAKkC,OAAnCpnD,EAAMm5C,OAAOgO,aAAa8E,KACrB,CACLF,SAAU,GAAG3E,IAAapnD,EAAMm5C,MAAMgO,YAAY8E,QAG/C,CACLF,SAAU3E,GAVH,CACL2E,SAAUD,GAAgB9E,GAU7B,EAEH,OAAOD,GAAkB/mD,EAAOA,EAAM+rD,SAAU9E,EAClD,CACA,OAAO,IAAI,EAEb8E,GAAS9C,YAAc,CAAC,YACjB,MAAMiD,GAAWvzC,GAAM,CAC5Bo+B,KAAM,WACNnxC,UAAWkmD,KAEA1jC,GAASzP,GAAM,CAC1Bo+B,KAAM,SACNnxC,UAAWkmD,KAEAK,GAAYxzC,GAAM,CAC7Bo+B,KAAM,YACNnxC,UAAWkmD,KAEAM,GAAYzzC,GAAM,CAC7Bo+B,KAAM,YACNnxC,UAAWkmD,KC1CPO,ID4CmB1zC,GAAM,CAC7Bo+B,KAAM,OACNgS,YAAa,QACbnjD,UAAWkmD,KAEanzC,GAAM,CAC9Bo+B,KAAM,OACNgS,YAAa,SACbnjD,UAAWkmD,KAKEL,GAAQtjC,GAAO4jC,GAAUG,GAAU9jC,GAAQ+jC,GAAWC,GAH5CzzC,GAAM,CAC7Bo+B,KAAM,eCvDgB,CAEtB6T,OAAQ,CACN5B,SAAU,UACVpjD,UAAW8kD,IAEbG,UAAW,CACT7B,SAAU,UACVpjD,UAAW8kD,IAEbI,YAAa,CACX9B,SAAU,UACVpjD,UAAW8kD,IAEbK,aAAc,CACZ/B,SAAU,UACVpjD,UAAW8kD,IAEbM,WAAY,CACVhC,SAAU,UACVpjD,UAAW8kD,IAEbO,YAAa,CACXjC,SAAU,WAEZkC,eAAgB,CACdlC,SAAU,WAEZmC,iBAAkB,CAChBnC,SAAU,WAEZoC,kBAAmB,CACjBpC,SAAU,WAEZqC,gBAAiB,CACfrC,SAAU,WAEZsC,QAAS,CACPtC,SAAU,UACVpjD,UAAW8kD,IAEba,aAAc,CACZvC,SAAU,WAEZwC,aAAc,CACZxC,SAAU,qBACVrwC,MAAO6yC,IAGTphC,MAAO,CACL4+B,SAAU,UACVpjD,UAAWimD,IAEbS,QAAS,CACPtD,SAAU,UACVD,YAAa,kBACbnjD,UAAWimD,IAEbU,gBAAiB,CACfvD,SAAU,UACVpjD,UAAWimD,IAGbn0E,EAAG,CACDihC,MAAO6xC,IAETgC,GAAI,CACF7zC,MAAO6xC,IAETnmE,GAAI,CACFs0B,MAAO6xC,IAET50C,GAAI,CACF+C,MAAO6xC,IAET1b,GAAI,CACFn2B,MAAO6xC,IAETiC,GAAI,CACF9zC,MAAO6xC,IAETkC,GAAI,CACF/zC,MAAO6xC,IAETA,QAAS,CACP7xC,MAAO6xC,IAETmC,WAAY,CACVh0C,MAAO6xC,IAEToC,aAAc,CACZj0C,MAAO6xC,IAETqC,cAAe,CACbl0C,MAAO6xC,IAETsC,YAAa,CACXn0C,MAAO6xC,IAETjB,SAAU,CACR5wC,MAAO6xC,IAEThB,SAAU,CACR7wC,MAAO6xC,IAETuC,cAAe,CACbp0C,MAAO6xC,IAETwC,mBAAoB,CAClBr0C,MAAO6xC,IAETyC,iBAAkB,CAChBt0C,MAAO6xC,IAET0C,aAAc,CACZv0C,MAAO6xC,IAET2C,kBAAmB,CACjBx0C,MAAO6xC,IAET4C,gBAAiB,CACfz0C,MAAO6xC,IAEThzE,EAAG,CACDmhC,MAAO4xC,IAET8C,GAAI,CACF10C,MAAO4xC,IAET+C,GAAI,CACF30C,MAAO4xC,IAETv1C,GAAI,CACF2D,MAAO4xC,IAET5b,GAAI,CACFh2B,MAAO4xC,IAETgD,GAAI,CACF50C,MAAO4xC,IAETiD,GAAI,CACF70C,MAAO4xC,IAETA,OAAQ,CACN5xC,MAAO4xC,IAETkD,UAAW,CACT90C,MAAO4xC,IAETmD,YAAa,CACX/0C,MAAO4xC,IAEToD,aAAc,CACZh1C,MAAO4xC,IAETqD,WAAY,CACVj1C,MAAO4xC,IAETlB,QAAS,CACP1wC,MAAO4xC,IAETjB,QAAS,CACP3wC,MAAO4xC,IAETsD,aAAc,CACZl1C,MAAO4xC,IAETuD,kBAAmB,CACjBn1C,MAAO4xC,IAETwD,gBAAiB,CACfp1C,MAAO4xC,IAETyD,YAAa,CACXr1C,MAAO4xC,IAET0D,iBAAkB,CAChBt1C,MAAO4xC,IAET2D,eAAgB,CACdv1C,MAAO4xC,IAGT4D,aAAc,CACZpF,aAAa,EACbnjD,UAAW/Z,IAAS,CAClB,eAAgB,CACd29C,QAAS39C,MAIf29C,QAAS,CAAC,EACVvT,SAAU,CAAC,EACXm4B,aAAc,CAAC,EACfC,WAAY,CAAC,EACbC,WAAY,CAAC,EAEbC,UAAW,CAAC,EACZC,cAAe,CAAC,EAChBC,SAAU,CAAC,EACXC,eAAgB,CAAC,EACjBC,WAAY,CAAC,EACbC,aAAc,CAAC,EACfl3C,MAAO,CAAC,EACRnB,KAAM,CAAC,EACPC,SAAU,CAAC,EACXE,WAAY,CAAC,EACbm4C,UAAW,CAAC,EACZC,aAAc,CAAC,EACfC,YAAa,CAAC,EAEdrD,IAAK,CACH/yC,MAAO+yC,IAETE,OAAQ,CACNjzC,MAAOizC,IAETD,UAAW,CACThzC,MAAOgzC,IAETz0C,WAAY,CAAC,EACbJ,QAAS,CAAC,EACVk4C,aAAc,CAAC,EACfC,gBAAiB,CAAC,EAClBC,aAAc,CAAC,EACfC,oBAAqB,CAAC,EACtBC,iBAAkB,CAAC,EACnBC,kBAAmB,CAAC,EACpBx4C,SAAU,CAAC,EAEXilC,SAAU,CAAC,EACXhkC,OAAQ,CACNkxC,SAAU,UAEZ96B,IAAK,CAAC,EACNohC,MAAO,CAAC,EACRC,OAAQ,CAAC,EACTvhC,KAAM,CAAC,EAEPwhC,UAAW,CACTxG,SAAU,WAGZ7gC,MAAO,CACLviB,UAAWkmD,IAEbC,SAAU,CACRpzC,MAAOozC,IAETG,SAAU,CACRtmD,UAAWkmD,IAEb1jC,OAAQ,CACNxiB,UAAWkmD,IAEbK,UAAW,CACTvmD,UAAWkmD,IAEbM,UAAW,CACTxmD,UAAWkmD,IAEb2D,UAAW,CAAC,EAEZC,KAAM,CACJ1G,SAAU,QAEZ2G,WAAY,CACV3G,SAAU,cAEZ4G,SAAU,CACR5G,SAAU,cAEZ6G,UAAW,CACT7G,SAAU,cAEZ1xC,WAAY,CACV0xC,SAAU,cAEZ8G,cAAe,CAAC,EAChBC,cAAe,CAAC,EAChBv4C,WAAY,CAAC,EACbw4C,UAAW,CAAC,EACZC,WAAY,CACVlH,aAAa,EACbC,SAAU,gBAGd,MCzKA,MAAMkH,GA5GC,WACL,SAASC,EAAcpZ,EAAMxtD,EAAK4vD,EAAOztD,GACvC,MAAMsU,EAAQ,CACZ,CAAC+2C,GAAOxtD,EACR4vD,SAEIjxC,EAAUxc,EAAOqrD,GACvB,IAAK7uC,EACH,MAAO,CACL,CAAC6uC,GAAOxtD,GAGZ,MAAM,YACJw/D,EAAchS,EAAI,SAClBiS,EAAQ,UACRpjD,EAAS,MACT+S,GACEzQ,EACJ,GAAW,MAAP3e,EACF,OAAO,KAIT,GAAiB,eAAby/D,GAAqC,YAARz/D,EAC/B,MAAO,CACL,CAACwtD,GAAOxtD,GAGZ,MAAMq/D,EAAeJ,GAAQrP,EAAO6P,IAAa,CAAC,EAClD,GAAIrwC,EACF,OAAOA,EAAM3Y,GAef,OAAO+mD,GAAkB/mD,EAAOzW,GAbLs/D,IACzB,IAAIh9D,EAAQgX,GAAS+lD,EAAchjD,EAAWijD,GAK9C,OAJIA,IAAmBh9D,GAAmC,kBAAnBg9D,IAErCh9D,EAAQgX,GAAS+lD,EAAchjD,EAAW,GAAGmxC,IAA0B,YAAnB8R,EAA+B,GAAK7C,GAAW6C,KAAmBA,KAEpG,IAAhBE,EACKl9D,EAEF,CACL,CAACk9D,GAAcl9D,EAChB,GAGL,CA4DA,OA3DA,SAASqkE,EAAgBlwD,GACvB,MAAM,GACJowD,EAAE,MACFjX,EAAQ,CAAC,GACPn5C,GAAS,CAAC,EACd,IAAKowD,EACH,OAAO,KAET,MAAM1kE,EAASytD,EAAMkX,mBAAqBhE,GAO1C,SAASiE,EAASC,GAChB,IAAIC,EAAWD,EACf,GAAuB,oBAAZA,EACTC,EAAWD,EAAQpX,QACd,GAAuB,kBAAZoX,EAEhB,OAAOA,EAET,IAAKC,EACH,OAAO,KAET,MAAMC,EAAmB3I,GAA4B3O,EAAMgO,aACrDmB,EAAkB57D,OAAO0E,KAAKq/D,GACpC,IAAIC,EAAMD,EA2BV,OA1BA/jE,OAAO0E,KAAKo/D,GAAUzxE,SAAQ4xE,IAC5B,MAAM9kE,EAlFd,SAAkB+kE,EAAS/qD,GACzB,MAA0B,oBAAZ+qD,EAAyBA,EAAQ/qD,GAAO+qD,CACxD,CAgFsBC,CAASL,EAASG,GAAWxX,GAC3C,GAAc,OAAVttD,QAA4B+C,IAAV/C,EACpB,GAAqB,kBAAVA,EACT,GAAIH,EAAOilE,GACTD,EAAMpG,GAAMoG,EAAKP,EAAcQ,EAAU9kE,EAAOstD,EAAOztD,QAClD,CACL,MAAMsgE,EAAoBjF,GAAkB,CAC1C5N,SACCttD,GAAOhR,IAAK,CACb,CAAC81E,GAAW91E,OAhG5B,WAAyC,QAAAgrE,EAAArrE,UAAAxB,OAAT83E,EAAO,IAAA73E,MAAA4sE,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAPgL,EAAOhL,GAAAtrE,UAAAsrE,GACrC,MAAMiL,EAAUD,EAAQna,QAAO,CAACvlD,EAAM8F,IAAW9F,EAAKhR,OAAOsM,OAAO0E,KAAK8F,KAAU,IAC7E85D,EAAQ,IAAIp8D,IAAIm8D,GACtB,OAAOD,EAAQG,OAAM/5D,GAAU85D,EAAMv7D,OAAS/I,OAAO0E,KAAK8F,GAAQle,QACpE,CA8FkBk4E,CAAoBlF,EAAmBngE,GAMzC6kE,EAAMpG,GAAMoG,EAAK1E,GALjB0E,EAAIC,GAAYT,EAAgB,CAC9BE,GAAIvkE,EACJstD,SAKN,MAEAuX,EAAMpG,GAAMoG,EAAKP,EAAcQ,EAAU9kE,EAAOstD,EAAOztD,GAE3D,IV7GD,SAA8BytD,EAAOuX,GAC1C,IAAKvX,EAAM0N,iBACT,OAAO6J,EAET,MAAMS,EAASzkE,OAAO0E,KAAKs/D,GAAKU,QAAO7/D,GAAOA,EAAI+1D,WAAW,gBAAezpD,MAAK,CAAC/lB,EAAGjB,KACnF,MAAMkL,EAAQ,yBACd,QAASjK,EAAEyD,MAAMwG,KAAS,IAAM,KAAOlL,EAAE0E,MAAMwG,KAAS,IAAM,EAAE,IAElE,OAAKovE,EAAOn4E,OAGLm4E,EAAOxa,QAAO,CAAC2P,EAAK/0D,KACzB,MAAM1F,EAAQ6kE,EAAIn/D,GAGlB,cAFO+0D,EAAI/0D,GACX+0D,EAAI/0D,GAAO1F,EACJy6D,CAAG,GACT,IACEoK,IARIA,CAUX,CU4FaW,CAAqBlY,EAAO8O,GAAwBK,EAAiBoI,GAC9E,CACA,OAAOz3E,MAAMqd,QAAQ85D,GAAMA,EAAG/uE,IAAIivE,GAAYA,EAASF,EACzD,CAEF,CACwBkB,GACxBpB,GAAgBjH,YAAc,CAAC,MAC/B,YCjHA,IAAIsI,GAAiB,SAAwB1yD,EAAOmhD,EAAYwR,GAC9D,IAAIC,EAAY5yD,EAAMtN,IAAM,IAAMyuD,EAAWtnE,MAO5B,IAAhB84E,QAIwD5iE,IAAhCiQ,EAAMuhD,WAAWqR,KACxC5yD,EAAMuhD,WAAWqR,GAAazR,EAAWE,OAE7C,EACIwR,GAAe,SAAsB7yD,EAAOmhD,EAAYwR,GAC1DD,GAAe1yD,EAAOmhD,EAAYwR,GAClC,IAAIC,EAAY5yD,EAAMtN,IAAM,IAAMyuD,EAAWtnE,KAE7C,QAAwCkW,IAApCiQ,EAAM0gD,SAASS,EAAWtnE,MAAqB,CACjD,IAAI8e,EAAUwoD,EAEd,GACEnhD,EAAM27C,OAAOwF,IAAexoD,EAAU,IAAMi6D,EAAY,GAAIj6D,EAASqH,EAAM87C,OAAO,GAElFnjD,EAAUA,EAAQogC,gBACChpC,IAAZ4I,EACX,CACF,ECAIm6D,WAIa1O,IAAiB,SAAUjjD,EAE1CnB,GAEA,IACImhD,EAAasC,GAAgB,CADpBtiD,EAAMkgD,aACwBtxD,EAAWoqD,EAAAA,WAAiBE,KAMnE0Y,EAAW5Y,EAAAA,SAuDf,OAtDA8J,IAAqC,WACnC,IAAIvxD,EAAMsN,EAAMtN,IAAM,UAElBopD,EAAQ,IAAI97C,EAAM87C,MAAMv2D,YAAY,CACtCmN,IAAKA,EACL8oD,MAAOx7C,EAAM87C,MAAMN,MACnBJ,UAAWp7C,EAAM87C,MAAMV,UACvBE,OAAQt7C,EAAM87C,MAAMT,WAElB2X,GAAc,EACdhkD,EAEFiB,SAASgjD,cAAc,uBAA0BvgE,EAAM,IAAMyuD,EAAWtnE,KAAO,MAcjF,OAZImmB,EAAM87C,MAAMb,KAAK9gE,SACnB2hE,EAAMd,OAASh7C,EAAM87C,MAAMb,KAAK,IAGrB,OAATjsC,IACFgkD,GAAc,EAEdhkD,EAAKsC,aAAa,eAAgB5e,GAClCopD,EAAM/I,QAAQ,CAAC/jC,KAGjB+jD,EAASp6D,QAAU,CAACmjD,EAAOkX,GACpB,WACLlX,EAAMlxC,OACR,CACF,GAAG,CAAC5K,IACJikD,IAAqC,WACnC,IAAIiP,EAAkBH,EAASp6D,QAC3BmjD,EAAQoX,EAAgB,GAG5B,GAFkBA,EAAgB,GAGhCA,EAAgB,IAAK,MADvB,CAUA,QALwBnjE,IAApBoxD,EAAWpoB,MAEb85B,GAAa7yD,EAAOmhD,EAAWpoB,MAAM,GAGnC+iB,EAAMb,KAAK9gE,OAAQ,CAErB,IAAI00B,EAAUitC,EAAMb,KAAKa,EAAMb,KAAK9gE,OAAS,GAAGg5E,mBAChDrX,EAAMd,OAASnsC,EACfitC,EAAMlxC,OACR,CAEA5K,EAAM27C,OAAO,GAAIwF,EAAYrF,GAAO,EAdpC,CAeF,GAAG,CAAC97C,EAAOmhD,EAAWtnE,OACf,IACT,KAIA,SAASg4E,KAGP,IAAK,IAAI7K,EAAOrrE,UAAUxB,OAAQuB,EAAO,IAAItB,MAAM4sE,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/EvrE,EAAKurE,GAAQtrE,UAAUsrE,GAGzB,OAAOxD,GAAgB/nE,EACzB,CAWA,IAAIqnE,GAAY,WAGd,IAAIqQ,EAAavB,GAAIjzE,WAAM,EAAQjD,WAC/B9B,EAAO,aAAeu5E,EAAWv5E,KACrC,MAAO,CACLA,KAAMA,EACNwnE,OAAQ,cAAgBxnE,EAAO,IAAMu5E,EAAW/R,OAAS,IACzD2B,KAAM,EACNhlE,SAAU,WACR,MAAO,QAAU7B,KAAKtC,KAAO,IAAMsC,KAAKklE,OAAS,OACnD,EAEJ,EC5Ie,SAASgS,GAAalyD,GACnC,MAAM,OACJkgD,EAAM,aACNgD,EAAe,CAAC,GACdljD,EACEmyD,EAAiC,oBAAXjS,EAAwBqF,IAAcrF,cAPnDtxD,KADAjD,EAQkE45D,IAP7C,OAAR55D,GAA4C,IAA5Be,OAAO0E,KAAKzF,GAAK3S,OAOkCkqE,EAAeqC,GARhH,IAAiB55D,CAQ2G,EAAEu0D,EAC5H,OAAoBzG,EAAAA,EAAAA,KAAKkY,GAAQ,CAC/BzR,OAAQiS,GAEZ,CCbO,MAAMC,GAA2B,OAC3BC,GAAmC,eACnCC,GAAoB,oBCH1B,SAASC,GAAcl8B,GAC5B,GAAsB,qBAAXxnB,QAAuD,oBAAtBA,OAAO2jD,YAAsC,WAATn8B,EAAmB,CAEjG,OADYxnB,OAAO2jD,WAAW,gCACtB9K,QACC,OAEF,OACT,CAEF,CACA,SAAS+K,GAAajxB,EAAOvH,GAC3B,MAAmB,UAAfuH,EAAMnL,MAAmC,WAAfmL,EAAMnL,MAA0C,UAArBmL,EAAMkxB,WACtDz4B,EAAS,SAEC,SAAfuH,EAAMnL,MAAkC,WAAfmL,EAAMnL,MAA0C,SAArBmL,EAAMkxB,WACrDz4B,EAAS,aADlB,CAIF,CAYA,SAAS04B,GAAgBphE,EAAKwY,GAC5B,GAAsB,qBAAX8E,OACT,OAEF,IAAIhjB,EACJ,IACEA,EAAQ+mE,aAAaC,QAAQthE,SAAQ3C,EAChC/C,GAEH+mE,aAAaE,QAAQvhE,EAAKwY,EAE9B,CAAE,MACA,CAEF,OAAOle,GAASke,CAClB,CACe,SAASgpD,GAAsB7qD,GAC5C,MAAM,YACJ8qD,EAAc,QAAO,wBACrBC,EAAuB,uBACvBC,EAAsB,sBACtBC,EAAwB,GAAE,eAC1BC,EAAiBhB,GAAwB,sBACzCiB,EAAwBhB,GAAgC,cACxDiB,GAAkC,qBAAXzkD,YAAyBjgB,EAAYigB,SAC1D3G,EACEqrD,EAAqBJ,EAAsBj6E,KAAK,KAChDs6E,EAAiBL,EAAsBn6E,OAAS,GAC/CwoD,EAAOiR,GAAYuG,EAAAA,UAAe,KACvC,MAAMya,EAAcd,GAAgBS,EAAgBJ,GAC9CU,EAAmBf,GAAgB,GAAGU,UAA+BJ,GACrEU,EAAkBhB,GAAgB,GAAGU,SAA8BH,GACzE,MAAO,CACL78B,KAAMo9B,EACNf,WAAYH,GAAckB,GAC1BC,mBACAC,kBACD,KAGI,CAAEC,GAAiB5a,EAAAA,UAAe,GACnC6a,EAAa7a,EAAAA,QAAa,GAChCA,EAAAA,WAAgB,KACVwa,GACFI,GAAc,GAEhBC,EAAWr8D,SAAU,CAAI,GACxB,CAACg8D,IACJ,MAAMM,EA3DD,SAAwBtyB,GAC7B,OAAOixB,GAAajxB,GAAOnL,GACZ,UAATA,EACKmL,EAAMkyB,iBAEF,SAATr9B,EACKmL,EAAMmyB,qBADf,GAKJ,CAiDsBI,CAAevyB,GAC7BwyB,EAAUhb,EAAAA,aAAkB3iB,IAChCoc,GAASwhB,IACP,GAAI59B,IAAS49B,EAAa59B,KAExB,OAAO49B,EAET,MAAMC,EAAU79B,GAAQ28B,EACxB,IACEJ,aAAaE,QAAQM,EAAgBc,EACvC,CAAE,MACA,CAEF,MAAO,IACFD,EACH59B,KAAM69B,EACNxB,WAAYH,GAAc2B,GAC3B,GACD,GACD,CAACd,EAAgBJ,IACdmB,EAAiBnb,EAAAA,aAAkBntD,IAClCA,EAcuB,kBAAVA,EACZA,IAAU0nE,EAAmB/0D,SAAS3S,GACxCy2C,QAAQC,MAAM,KAAK12C,iDAEnB4mD,GAASwhB,IACP,MAAMG,EAAW,IACZH,GAeL,OAbAxB,GAAawB,GAAc59B,IACzB,IACEu8B,aAAaE,QAAQ,GAAGO,KAAyBh9B,IAAQxqC,EAC3D,CAAE,MACA,CAEW,UAATwqC,IACF+9B,EAASV,iBAAmB7nE,GAEjB,SAATwqC,IACF+9B,EAAST,gBAAkB9nE,EAC7B,IAEKuoE,CAAQ,IAInB3hB,GAASwhB,IACP,MAAMG,EAAW,IACZH,GAECI,EAAsC,OAAhBxoE,EAAMyoE,MAAiBrB,EAA0BpnE,EAAMyoE,MAC7EC,EAAoC,OAAf1oE,EAAM2oE,KAAgBtB,EAAyBrnE,EAAM2oE,KAChF,GAAIH,EACF,GAAKd,EAAmB/0D,SAAS61D,GAE1B,CACLD,EAASV,iBAAmBW,EAC5B,IACEzB,aAAaE,QAAQ,GAAGO,UAA+BgB,EACzD,CAAE,MAAO9xB,GACP,CAEJ,MARED,QAAQC,MAAM,KAAK8xB,iDAUvB,GAAIE,EACF,GAAKhB,EAAmB/0D,SAAS+1D,GAE1B,CACLH,EAAST,gBAAkBY,EAC3B,IACE3B,aAAaE,QAAQ,GAAGO,SAA8BkB,EACxD,CAAE,MAAOhyB,GACP,CAEJ,MARED,QAAQC,MAAM,KAAKgyB,iDAUvB,OAAOH,CAAQ,IApEjB3hB,GAASwhB,IACP,IACErB,aAAaE,QAAQ,GAAGO,UAA+BJ,GACvDL,aAAaE,QAAQ,GAAGO,SAA8BH,EACxD,CAAE,MACA,CAEF,MAAO,IACFe,EACHP,iBAAkBT,EAClBU,gBAAiBT,EAClB,GA2DL,GACC,CAACK,EAAoBF,EAAuBJ,EAAyBC,IAClEuB,EAAmBzb,EAAAA,aAAkB7rD,IACtB,WAAfq0C,EAAMnL,MACRoc,GAASwhB,IACP,MAAMvB,EAAavlE,GAAOu6D,QAAU,OAAS,QAG7C,OAAIuM,EAAavB,aAAeA,EACvBuB,EAEF,IACFA,EACHvB,aACD,GAEL,GACC,CAAClxB,EAAMnL,OAGJq+B,EAAgB1b,EAAAA,OAAayb,GAiDnC,OAhDAC,EAAcl9D,QAAUi9D,EACxBzb,EAAAA,WAAgB,KACd,GAAiC,oBAAtBnqC,OAAO2jD,aAA8BgB,EAC9C,OAEF,MAAMmB,EAAU,kBAAaD,EAAcl9D,WAAQhd,UAAQ,EAGrDo6E,EAAQ/lD,OAAO2jD,WAAW,gCAKhC,OAFAoC,EAAM3nE,YAAY0nE,GAClBA,EAAQC,GACD,KACLA,EAAMjmE,eAAegmE,EAAQ,CAC9B,GACA,CAACnB,IAGJxa,EAAAA,WAAgB,KACd,GAAIsa,GAAiBE,EAAgB,CACnC,MAAMqB,EAAgB1nE,IACpB,MAAMtB,EAAQsB,EAAM2nE,SACK,kBAAd3nE,EAAMoE,MAAoBpE,EAAMoE,IAAI+1D,WAAW+L,IAA4BxnE,IAAS0nE,EAAmBh4E,MAAMsQ,KAElHsB,EAAMoE,IAAIwjE,SAAS,UACrBZ,EAAe,CACbG,MAAOzoE,IAGPsB,EAAMoE,IAAIwjE,SAAS,SACrBZ,EAAe,CACbK,KAAM3oE,KAIRsB,EAAMoE,MAAQ6hE,GAAoBvnE,IAAS,CAAC,QAAS,OAAQ,UAAU2S,SAAS3S,IAClFmoE,EAAQnoE,GAASmnE,EACnB,EAIF,OADAM,EAAcj4C,iBAAiB,UAAWw5C,GACnC,KACLvB,EAAch4C,oBAAoB,UAAWu5C,EAAc,CAE/D,CACgB,GACf,CAACV,EAAgBH,EAASZ,EAAgBC,EAAuBE,EAAoBP,EAAaM,EAAeE,IAC7G,IACFhyB,EACHnL,KAAMw9B,EAAWr8D,UAAYg8D,EAAiBhyB,EAAMnL,UAAOznC,EAC3D8jE,WAAYmB,EAAWr8D,UAAYg8D,EAAiBhyB,EAAMkxB,gBAAa9jE,EACvEklE,YAAaD,EAAWr8D,UAAYg8D,EAAiBM,OAAcllE,EACnEolE,UACAG,iBAEJ,CCxPA,SAHA,SAAe5qE,GAAmE,IAA9DzL,EAAGtD,UAAAxB,OAAA,QAAA4V,IAAApU,UAAA,GAAAA,UAAA,GAAGyD,OAAO+2E,iBAAkBrwE,EAAGnK,UAAAxB,OAAA,QAAA4V,IAAApU,UAAA,GAAAA,UAAA,GAAGyD,OAAO2F,iBAC9D,OAAOvK,KAAKsL,IAAI7G,EAAKzE,KAAKyE,IAAIyL,EAAK5E,GACrC,ECSA,SAASswE,GAAappE,GAMpB,OAAOqpE,GAAMrpE,EANiBrR,UAAAxB,OAAA,QAAA4V,IAAApU,UAAA,GAAAA,UAAA,GAAG,EAAMA,UAAAxB,OAAA,QAAA4V,IAAApU,UAAA,GAAAA,UAAA,GAAG,EAO5C,CA8BO,SAAS26E,GAAe/qC,GAE7B,GAAIA,EAAMnyC,KACR,OAAOmyC,EAET,GAAwB,MAApBA,EAAMr/B,OAAO,GACf,OAAOoqE,GA7BJ,SAAkB/qC,GACvBA,EAAQA,EAAM1sC,MAAM,GACpB,MAAMstC,EAAK,IAAItvB,OAAO,OAAO0uB,EAAMpxC,QAAU,EAAI,EAAI,KAAM,KAC3D,IAAIo8E,EAAShrC,EAAM7uC,MAAMyvC,GAIzB,OAHIoqC,GAA+B,IAArBA,EAAO,GAAGp8E,SACtBo8E,EAASA,EAAO/zE,KAAI5J,GAAKA,EAAIA,KAExB29E,EAAS,MAAwB,IAAlBA,EAAOp8E,OAAe,IAAM,MAAMo8E,EAAO/zE,KAAI,CAAC5J,EAAGkc,IAC9DA,EAAQ,EAAIwY,SAAS10B,EAAG,IAAM4B,KAAK6E,MAAMiuB,SAAS10B,EAAG,IAAM,IAAM,KAAQ,MAC/EyB,KAAK,SAAW,EACrB,CAmB0Bm8E,CAASjrC,IAEjC,MAAMkrC,EAASlrC,EAAMjqC,QAAQ,KACvBlI,EAAOmyC,EAAM5uC,UAAU,EAAG85E,GAChC,IAAK,CAAC,MAAO,OAAQ,MAAO,OAAQ,SAAS92D,SAASvmB,GACpD,MAAM,IAAIqJ,MAAwL2kE,GAAuB,EAAG77B,IAE9N,IACImrC,EADAvgE,EAASo1B,EAAM5uC,UAAU85E,EAAS,EAAGlrC,EAAMpxC,OAAS,GAExD,GAAa,UAATf,GAMF,GALA+c,EAASA,EAAOpc,MAAM,KACtB28E,EAAavgE,EAAOzM,QACE,IAAlByM,EAAOhc,QAAwC,MAAxBgc,EAAO,GAAGjK,OAAO,KAC1CiK,EAAO,GAAKA,EAAO,GAAGtX,MAAM,KAEzB,CAAC,OAAQ,aAAc,UAAW,eAAgB,YAAY8gB,SAAS+2D,GAC1E,MAAM,IAAIj0E,MAAqM2kE,GAAuB,GAAIsP,SAG5OvgE,EAASA,EAAOpc,MAAM,KAGxB,OADAoc,EAASA,EAAO3T,KAAIwK,GAAS2pE,WAAW3pE,KACjC,CACL5T,OACA+c,SACAugE,aAEJ,CAQO,MAIME,GAA2BA,CAACrrC,EAAOsrC,KAC9C,IACE,MANwBtrC,KAC1B,MAAMurC,EAAkBR,GAAe/qC,GACvC,OAAOurC,EAAgB3gE,OAAOtX,MAAM,EAAG,GAAG2D,KAAI,CAACkI,EAAKqsE,IAAQD,EAAgB19E,KAAKumB,SAAS,QAAkB,IAARo3D,EAAY,GAAGrsE,KAASA,IAAKrQ,KAAK,IAAI,EAIjI28E,CAAazrC,EACtB,CAAE,MAAOmY,GAIP,OAAOnY,CACT,GAUK,SAAS0rC,GAAe1rC,GAC7B,MAAM,KACJnyC,EAAI,WACJs9E,GACEnrC,EACJ,IAAI,OACFp1B,GACEo1B,EAaJ,OAZInyC,EAAKumB,SAAS,OAEhBxJ,EAASA,EAAO3T,KAAI,CAAC5J,EAAGW,IAAMA,EAAI,EAAI+zB,SAAS10B,EAAG,IAAMA,IAC/CQ,EAAKumB,SAAS,SACvBxJ,EAAO,GAAK,GAAGA,EAAO,MACtBA,EAAO,GAAK,GAAGA,EAAO,OAGtBA,EADE/c,EAAKumB,SAAS,SACP,GAAG+2D,KAAcvgE,EAAO9b,KAAK,OAE7B,GAAG8b,EAAO9b,KAAK,QAEnB,GAAGjB,KAAQ+c,IACpB,CAuBO,SAAS+gE,GAAS3rC,GACvBA,EAAQ+qC,GAAe/qC,GACvB,MAAM,OACJp1B,GACEo1B,EACE/yC,EAAI2d,EAAO,GACX3c,EAAI2c,EAAO,GAAK,IAChBzd,EAAIyd,EAAO,GAAK,IAChBld,EAAIO,EAAIgB,KAAKyE,IAAIvG,EAAG,EAAIA,GACxBJ,EAAI,SAACM,GAAC,IAAEH,EAACkD,UAAAxB,OAAA,QAAA4V,IAAApU,UAAA,GAAAA,UAAA,IAAI/C,EAAIJ,EAAI,IAAM,GAAE,OAAKE,EAAIO,EAAIuB,KAAKsL,IAAItL,KAAKyE,IAAIxG,EAAI,EAAG,EAAIA,EAAG,IAAK,EAAE,EACvF,IAAIW,EAAO,MACX,MAAM+9E,EAAM,CAAC38E,KAAK6E,MAAa,IAAP/G,EAAE,IAAWkC,KAAK6E,MAAa,IAAP/G,EAAE,IAAWkC,KAAK6E,MAAa,IAAP/G,EAAE,KAK1E,MAJmB,SAAfizC,EAAMnyC,OACRA,GAAQ,IACR+9E,EAAIzxE,KAAKyQ,EAAO,KAEX8gE,GAAe,CACpB79E,OACA+c,OAAQghE,GAEZ,CASO,SAASC,GAAa7rC,GAE3B,IAAI4rC,EAAqB,SADzB5rC,EAAQ+qC,GAAe/qC,IACPnyC,MAAiC,SAAfmyC,EAAMnyC,KAAkBk9E,GAAeY,GAAS3rC,IAAQp1B,OAASo1B,EAAMp1B,OASzG,OARAghE,EAAMA,EAAI30E,KAAIkI,IACO,UAAf6gC,EAAMnyC,OACRsR,GAAO,KAEFA,GAAO,OAAUA,EAAM,QAAUA,EAAM,MAAS,QAAU,OAI5DtL,QAAQ,MAAS+3E,EAAI,GAAK,MAASA,EAAI,GAAK,MAASA,EAAI,IAAIrtE,QAAQ,GAC9E,CAuBO,SAASutE,GAAM9rC,EAAOv+B,GAW3B,OAVAu+B,EAAQ+qC,GAAe/qC,GACvBv+B,EAAQopE,GAAappE,GACF,QAAfu+B,EAAMnyC,MAAiC,QAAfmyC,EAAMnyC,OAChCmyC,EAAMnyC,MAAQ,KAEG,UAAfmyC,EAAMnyC,KACRmyC,EAAMp1B,OAAO,GAAK,IAAInJ,IAEtBu+B,EAAMp1B,OAAO,GAAKnJ,EAEbiqE,GAAe1rC,EACxB,CACO,SAAS+rC,GAAkB/rC,EAAOv+B,EAAO6pE,GAC9C,IACE,OAAOQ,GAAM9rC,EAAOv+B,EACtB,CAAE,MAAO02C,GAIP,OAAOnY,CACT,CACF,CAQO,SAASgsC,GAAOhsC,EAAOisC,GAG5B,GAFAjsC,EAAQ+qC,GAAe/qC,GACvBisC,EAAcpB,GAAaoB,GACvBjsC,EAAMnyC,KAAKumB,SAAS,OACtB4rB,EAAMp1B,OAAO,IAAM,EAAIqhE,OAClB,GAAIjsC,EAAMnyC,KAAKumB,SAAS,QAAU4rB,EAAMnyC,KAAKumB,SAAS,SAC3D,IAAK,IAAIpmB,EAAI,EAAGA,EAAI,EAAGA,GAAK,EAC1BgyC,EAAMp1B,OAAO5c,IAAM,EAAIi+E,EAG3B,OAAOP,GAAe1rC,EACxB,CACO,SAASksC,GAAmBlsC,EAAOisC,EAAaX,GACrD,IACE,OAAOU,GAAOhsC,EAAOisC,EACvB,CAAE,MAAO9zB,GAIP,OAAOnY,CACT,CACF,CAQO,SAASmsC,GAAQnsC,EAAOisC,GAG7B,GAFAjsC,EAAQ+qC,GAAe/qC,GACvBisC,EAAcpB,GAAaoB,GACvBjsC,EAAMnyC,KAAKumB,SAAS,OACtB4rB,EAAMp1B,OAAO,KAAO,IAAMo1B,EAAMp1B,OAAO,IAAMqhE,OACxC,GAAIjsC,EAAMnyC,KAAKumB,SAAS,OAC7B,IAAK,IAAIpmB,EAAI,EAAGA,EAAI,EAAGA,GAAK,EAC1BgyC,EAAMp1B,OAAO5c,KAAO,IAAMgyC,EAAMp1B,OAAO5c,IAAMi+E,OAE1C,GAAIjsC,EAAMnyC,KAAKumB,SAAS,SAC7B,IAAK,IAAIpmB,EAAI,EAAGA,EAAI,EAAGA,GAAK,EAC1BgyC,EAAMp1B,OAAO5c,KAAO,EAAIgyC,EAAMp1B,OAAO5c,IAAMi+E,EAG/C,OAAOP,GAAe1rC,EACxB,CACO,SAASosC,GAAoBpsC,EAAOisC,EAAaX,GACtD,IACE,OAAOa,GAAQnsC,EAAOisC,EACxB,CAAE,MAAO9zB,GAIP,OAAOnY,CACT,CACF,CAYO,SAASqsC,GAAsBrsC,EAAOisC,EAAaX,GACxD,IACE,OALG,SAAmBtrC,GAA2B,IAApBisC,EAAW77E,UAAAxB,OAAA,QAAA4V,IAAApU,UAAA,GAAAA,UAAA,GAAG,IAC7C,OAAOy7E,GAAa7rC,GAAS,GAAMgsC,GAAOhsC,EAAOisC,GAAeE,GAAQnsC,EAAOisC,EACjF,CAGWK,CAAUtsC,EAAOisC,EAC1B,CAAE,MAAO9zB,GAIP,OAAOnY,CACT,CACF,CCpUA,MAIA,GAJe,CACbusC,MAAO,OACPC,MAAO,QCcT,GAhBa,CACX,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACLC,KAAM,UACNC,KAAM,UACNC,KAAM,UACNC,KAAM,WCER,GAhBe,CACb,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACLH,KAAM,UACNC,KAAM,UACNC,KAAM,UACNC,KAAM,WCER,GAhBY,CACV,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACLH,KAAM,UACNC,KAAM,UACNC,KAAM,UACNC,KAAM,WCER,GAhBe,CACb,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACLH,KAAM,UACNC,KAAM,UACNC,KAAM,UACNC,KAAM,WCER,GAhBa,CACX,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACLH,KAAM,UACNC,KAAM,UACNC,KAAM,UACNC,KAAM,WCER,GAhBkB,CAChB,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACLH,KAAM,UACNC,KAAM,UACNC,KAAM,UACNC,KAAM,WCER,GAhBc,CACZ,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACLH,KAAM,UACNC,KAAM,UACNC,KAAM,UACNC,KAAM,WCHK1C,GAAQ,CAEnB7pC,KAAM,CAEJwsC,QAAS,sBAETC,UAAW,qBAEX5iD,SAAU,uBAGZ6iD,QAAS,sBAGTC,WAAY,CACVC,MAAOC,GAAOV,MACd9jB,QAASwkB,GAAOV,OAGlB75B,OAAQ,CAENw6B,OAAQ,sBAERC,MAAO,sBACPC,aAAc,IAEdrjD,SAAU,sBACVsjD,gBAAiB,IAEjBpjD,SAAU,sBAEVqjD,mBAAoB,sBACpBC,gBAAiB,IACjBxpC,MAAO,sBACPypC,aAAc,IACdC,iBAAkB,MAGTtD,GAAO,CAClB/pC,KAAM,CACJwsC,QAASK,GAAOV,MAChBM,UAAW,2BACX5iD,SAAU,2BACVyjD,KAAM,4BAERZ,QAAS,4BACTC,WAAY,CACVC,MAAO,UACPvkB,QAAS,WAEX/V,OAAQ,CACNw6B,OAAQD,GAAOV,MACfY,MAAO,4BACPC,aAAc,IACdrjD,SAAU,4BACVsjD,gBAAiB,IACjBpjD,SAAU,2BACVqjD,mBAAoB,4BACpBC,gBAAiB,IACjBxpC,MAAO,4BACPypC,aAAc,IACdC,iBAAkB,MAGtB,SAASE,GAAeC,EAAQhT,EAAWiT,EAAOC,GAChD,MAAMC,EAAmBD,EAAY7D,OAAS6D,EACxCE,EAAkBF,EAAY3D,MAAsB,IAAd2D,EACvCF,EAAOhT,KACNgT,EAAO1rE,eAAe2rE,GACxBD,EAAOhT,GAAagT,EAAOC,GACJ,UAAdjT,EACTgT,EAAO3D,MAAQiC,GAAQ0B,EAAOK,KAAMF,GACb,SAAdnT,IACTgT,EAAOzD,KAAO4B,GAAO6B,EAAOK,KAAMD,IAGxC,CAsFe,SAASE,GAAcC,GACpC,MAAM,KACJniC,EAAO,QAAO,kBACdoiC,EAAoB,EAAC,YACrBN,EAAc,MACXv/D,GACD4/D,EACEvB,EAAUuB,EAAQvB,SA5F1B,WACE,MAAa,UADgBz8E,UAAAxB,OAAA,QAAA4V,IAAApU,UAAA,GAAAA,UAAA,GAAG,SAEvB,CACL89E,KAAMI,GAAK,KACXpE,MAAOoE,GAAK,IACZlE,KAAMkE,GAAK,MAGR,CACLJ,KAAMI,GAAK,KACXpE,MAAOoE,GAAK,KACZlE,KAAMkE,GAAK,KAEf,CA+EqCC,CAAkBtiC,GAC/C6gC,EAAYsB,EAAQtB,WA/E5B,WACE,MAAa,UADkB18E,UAAAxB,OAAA,QAAA4V,IAAApU,UAAA,GAAAA,UAAA,GAAG,SAEzB,CACL89E,KAAMM,GAAO,KACbtE,MAAOsE,GAAO,IACdpE,KAAMoE,GAAO,MAGV,CACLN,KAAMM,GAAO,KACbtE,MAAOsE,GAAO,KACdpE,KAAMoE,GAAO,KAEjB,CAkEyCC,CAAoBxiC,GACrDkM,EAAQi2B,EAAQj2B,OAlExB,WACE,MAAa,UADc/nD,UAAAxB,OAAA,QAAA4V,IAAApU,UAAA,GAAAA,UAAA,GAAG,SAErB,CACL89E,KAAMQ,GAAI,KACVxE,MAAOwE,GAAI,KACXtE,KAAMsE,GAAI,MAGP,CACLR,KAAMQ,GAAI,KACVxE,MAAOwE,GAAI,KACXtE,KAAMsE,GAAI,KAEd,CAqDiCC,CAAgB1iC,GACzC2iC,EAAOR,EAAQQ,MArDvB,WACE,MAAa,UADax+E,UAAAxB,OAAA,QAAA4V,IAAApU,UAAA,GAAAA,UAAA,GAAG,SAEpB,CACL89E,KAAMW,GAAU,KAChB3E,MAAO2E,GAAU,KACjBzE,KAAMyE,GAAU,MAGb,CACLX,KAAMW,GAAU,KAChB3E,MAAO2E,GAAU,KACjBzE,KAAMyE,GAAU,KAEpB,CAwC+BC,CAAe7iC,GACtC8iC,EAAUX,EAAQW,SAxC1B,WACE,MAAa,UADgB3+E,UAAAxB,OAAA,QAAA4V,IAAApU,UAAA,GAAAA,UAAA,GAAG,SAEvB,CACL89E,KAAMc,GAAM,KACZ9E,MAAO8E,GAAM,KACb5E,KAAM4E,GAAM,MAGT,CACLd,KAAMc,GAAM,KACZ9E,MAAO8E,GAAM,KACb5E,KAAM4E,GAAM,KAEhB,CA2BqCC,CAAkBhjC,GAC/Cq/B,EAAU8C,EAAQ9C,SA3B1B,WACE,MAAa,UADgBl7E,UAAAxB,OAAA,QAAA4V,IAAApU,UAAA,GAAAA,UAAA,GAAG,SAEvB,CACL89E,KAAMgB,GAAO,KACbhF,MAAOgF,GAAO,KACd9E,KAAM8E,GAAO,MAGV,CACLhB,KAAM,UAENhE,MAAOgF,GAAO,KACd9E,KAAM8E,GAAO,KAEjB,CAaqCC,CAAkBljC,GAKrD,SAASmjC,EAAgBpC,GACvB,MAAMqC,ETeH,SAA0BC,EAAYtC,GAC3C,MAAMuC,EAAO1D,GAAayD,GACpBE,EAAO3D,GAAamB,GAC1B,OAAQ/9E,KAAKsL,IAAIg1E,EAAMC,GAAQ,MAASvgF,KAAKyE,IAAI67E,EAAMC,GAAQ,IACjE,CSnByBC,CAAiBzC,EAAY5C,GAAK/pC,KAAKwsC,UAAYwB,EAAoBjE,GAAK/pC,KAAKwsC,QAAU3C,GAAM7pC,KAAKwsC,QAO3H,OAAOwC,CACT,CACA,MAAMK,EAAexW,IAMf,IANgB,MACpBl5B,EAAK,KACL1xC,EAAI,UACJqhF,EAAY,IAAG,WACfC,EAAa,IAAG,UAChBC,EAAY,KACb3W,EAOC,GANAl5B,EAAQ,IACHA,IAEAA,EAAMkuC,MAAQluC,EAAM2vC,KACvB3vC,EAAMkuC,KAAOluC,EAAM2vC,KAEhB3vC,EAAM79B,eAAe,QACxB,MAAM,IAAIjL,MAAiO2kE,GAAuB,GAAIvtE,EAAO,KAAKA,KAAU,GAAIqhF,IAElS,GAA0B,kBAAf3vC,EAAMkuC,KACf,MAAM,IAAIh3E,MAA6iB2kE,GAAuB,GAAIvtE,EAAO,KAAKA,KAAU,GAAI02D,KAAKC,UAAUjlB,EAAMkuC,QAOnoB,OALAN,GAAe5tC,EAAO,QAAS4vC,EAAY7B,GAC3CH,GAAe5tC,EAAO,OAAQ6vC,EAAW9B,GACpC/tC,EAAMqvC,eACTrvC,EAAMqvC,aAAeD,EAAgBpvC,EAAMkuC,OAEtCluC,CAAK,EAER8vC,EAAQ,CACZ1F,QACAF,UAgEF,OAzDsBjO,GAAU,CAE9BiR,OAAQ,IACHA,IAILjhC,OAEA4gC,QAAS6C,EAAa,CACpB1vC,MAAO6sC,EACPv+E,KAAM,YAGRw+E,UAAW4C,EAAa,CACtB1vC,MAAO8sC,EACPx+E,KAAM,YACNqhF,UAAW,OACXC,WAAY,OACZC,UAAW,SAGb13B,MAAOu3B,EAAa,CAClB1vC,MAAOmY,EACP7pD,KAAM,UAGRg9E,QAASoE,EAAa,CACpB1vC,MAAOsrC,EACPh9E,KAAM,YAGRsgF,KAAMc,EAAa,CACjB1vC,MAAO4uC,EACPtgF,KAAM,SAGRygF,QAASW,EAAa,CACpB1vC,MAAO+uC,EACPzgF,KAAM,YAGRyhF,KAAI,GAGJ1B,oBAEAe,kBAEAM,eAIA3B,iBAEG+B,EAAM7jC,IACRz9B,EAEL,CCjSe,SAASwhE,KAA6B,IAAbztE,EAAMnS,UAAAxB,OAAA,QAAA4V,IAAApU,UAAA,GAAAA,UAAA,GAAG,GAC/C,SAAS6/E,IAAmB,QAAAxU,EAAArrE,UAAAxB,OAAN0vE,EAAI,IAAAzvE,MAAA4sE,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJ4C,EAAI5C,GAAAtrE,UAAAsrE,GACxB,IAAK4C,EAAK1vE,OACR,MAAO,GAET,MAAM6S,EAAQ68D,EAAK,GACnB,MAAqB,kBAAV78D,GAAuBA,EAAMtQ,MAAM,+GAGvC,KAAKsQ,IAFH,WAAWc,EAAS,GAAGA,KAAY,KAAKd,IAAQwuE,KAAa3R,EAAKhrE,MAAM,MAGnF,CAMA,OAHkB,SAAC48E,GAAwB,QAAAC,EAAA//E,UAAAxB,OAAdwhF,EAAS,IAAAvhF,MAAAshF,EAAA,EAAAA,EAAA,KAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAATD,EAASC,EAAA,GAAAjgF,UAAAigF,GACpC,MAAO,SAAS9tE,EAAS,GAAGA,KAAY,KAAK2tE,IAAQD,KAAaG,KACpE,CAEF,CChBe,SAASE,KAMpB,IANkCC,EAAYngF,UAAAxB,OAAA,QAAA4V,IAAApU,UAAA,GAAAA,UAAA,GAAG,EAIrDorB,EAASprB,UAAAxB,OAAA,QAAA4V,IAAApU,UAAA,GAAAA,UAAA,GAAGyvE,GAAmB,CAC7BQ,QAASkQ,IAGT,GAAIA,EAAaC,IACf,OAAOD,EAET,MAAMlQ,EAAU,WAAkB,QAAA5E,EAAArrE,UAAAxB,OAAd6hF,EAAS,IAAA5hF,MAAA4sE,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAT+U,EAAS/U,GAAAtrE,UAAAsrE,GAO3B,OADkC,IAArB+U,EAAU7hF,OAAe,CAAC,GAAK6hF,GAChCx5E,KAAIy5E,IACd,MAAMxhB,EAAS1zC,EAAUk1D,GACzB,MAAyB,kBAAXxhB,EAAsB,GAAGA,MAAaA,CAAM,IACzDpgE,KAAK,IACV,EAEA,OADAuxE,EAAQmQ,KAAM,EACPnQ,CACT,CC9Be,SAASsQ,GAAsB9K,GAC5C,MAAMvH,EAAO,CAAC,EAQd,OAPgBh8D,OAAOgH,QAAQu8D,GACvBlxE,SAAQ8U,IACd,MAAOtC,EAAK1F,GAASgI,EACA,kBAAVhI,IACT68D,EAAKn3D,GAAO,GAAG1F,EAAMgkE,UAAY,GAAGhkE,EAAMgkE,aAAe,KAAKhkE,EAAMmvE,YAAc,GAAGnvE,EAAMmvE,eAAiB,KAAKnvE,EAAMyrB,WAAa,GAAGzrB,EAAMyrB,cAAgB,KAAKzrB,EAAMovE,YAAc,GAAGpvE,EAAMovE,eAAiB,KAAKpvE,EAAM+jE,UAAY,KAAK/jE,EAAM2rB,WAAa,IAAI3rB,EAAM2rB,cAAgB,KAAK3rB,EAAM8jE,YAAc,KACpT,IAEKjH,CACT,CCOO,MAAMwS,GAAmB,SAACvvE,EAAKyF,EAAMvF,GAA0B,IAAnBsvE,EAAS3gF,UAAAxB,OAAA,QAAA4V,IAAApU,UAAA,GAAAA,UAAA,GAAG,GACzDiP,EAAOkC,EACXyF,EAAKrS,SAAQ,CAACzH,EAAGqc,KACXA,IAAUvC,EAAKpY,OAAS,EACtBC,MAAMqd,QAAQ7M,GAChBA,EAAKxL,OAAO3G,IAAMuU,EACTpC,GAAwB,kBAATA,IACxBA,EAAKnS,GAAKuU,GAEHpC,GAAwB,kBAATA,IACnBA,EAAKnS,KACRmS,EAAKnS,GAAK6jF,EAAU38D,SAASlnB,GAAK,GAAK,CAAC,GAE1CmS,EAAOA,EAAKnS,GACd,GAEJ,EAmEe,SAAS8jF,GAAcjiB,EAAOjxC,GAC3C,MAAM,OACJvb,EAAM,wBACN0uE,GACEnzD,GAAW,CAAC,EACVwoD,EAAM,CAAC,EACPhI,EAAO,CAAC,EACR4S,EAAmB,CAAC,EAgB1B,MA7E4BC,EAAC5vE,EAAKsuC,EAAUuhC,MAC5C,SAASC,EAAQvkE,GAAyC,IAAjCwkE,EAAUlhF,UAAAxB,OAAA,QAAA4V,IAAApU,UAAA,GAAAA,UAAA,GAAG,GAAI2gF,EAAS3gF,UAAAxB,OAAA,QAAA4V,IAAApU,UAAA,GAAAA,UAAA,GAAG,GACpDkS,OAAOgH,QAAQwD,GAAQnY,SAAQukE,IAAkB,IAAhB/xD,EAAK1F,GAAMy3D,IACrCkY,GAAmBA,IAAoBA,EAAgB,IAAIE,EAAYnqE,WAC5D3C,IAAV/C,GAAiC,OAAVA,IACJ,kBAAVA,GAAsBa,OAAO0E,KAAKvF,GAAO7S,OAAS,EAC3DyiF,EAAQ5vE,EAAO,IAAI6vE,EAAYnqE,GAAMtY,MAAMqd,QAAQzK,GAAS,IAAIsvE,EAAW5pE,GAAO4pE,GAElFlhC,EAAS,IAAIyhC,EAAYnqE,GAAM1F,EAAOsvE,GAG5C,GAEJ,CACAM,CAAQ9vE,EAAI,EAgDZ4vE,CAAepiB,GAAO,CAAC/nD,EAAMvF,EAAOsvE,KAClC,IAAqB,kBAAVtvE,GAAuC,kBAAVA,MACjCwvE,IAA4BA,EAAwBjqE,EAAMvF,IAAQ,CAErE,MAAM8vE,EAAS,KAAKhvE,EAAS,GAAGA,KAAY,KAAKyE,EAAKlY,KAAK,OACrD0iF,EAnDMC,EAACzqE,EAAMvF,KACzB,GAAqB,kBAAVA,EACT,MAAI,CAAC,aAAc,aAAc,UAAW,UAAUitD,MAAK/B,GAAQ3lD,EAAKoN,SAASu4C,MAIjE3lD,EAAKA,EAAKpY,OAAS,GACvBkB,cAAcskB,SAAS,WAH1B3S,EAOF,GAAGA,MAEZ,OAAOA,CAAK,EAsCgBgwE,CAAYzqE,EAAMvF,GACxCa,OAAO+kB,OAAOi/C,EAAK,CACjB,CAACiL,GAASC,IAEZV,GAAiBxS,EAAMt3D,EAAM,OAAOuqE,KAAWR,GAC/CD,GAAiBI,EAAkBlqE,EAAM,OAAOuqE,MAAWC,KAAkBT,EAC/E,CACF,IACC/pE,GAAoB,SAAZA,EAAK,KAET,CACLs/D,MACAhI,OACA4S,mBAEJ,CCwBA,SAtJA,SAAwBniB,GAA0B,IAAnB2iB,EAAYthF,UAAAxB,OAAA,QAAA4V,IAAApU,UAAA,GAAAA,UAAA,GAAG,CAAC,EAC7C,MAAM,YACJuhF,EAAcC,EAAkB,sBAChCC,EACAC,oBAAqBnc,GACnB+b,GAEE,aACJK,EAAe,CAAC,EAAC,WACjBnY,EAAU,mBACVoY,EAAqB,WAClBC,GACDljB,GAEFuP,KAAM4T,EACN5L,IAAK6L,EACLjB,iBAAkBkB,GAChBpB,GAAciB,EAAYP,GAC9B,IAAIW,EAAYD,EAChB,MAAME,EAAkB,CAAC,GAEvB,CAACN,GAAqBO,KACnBC,GACDT,EAaJ,GAZAzvE,OAAOgH,QAAQkpE,GAAqB,CAAC,GAAG79E,SAAQukE,IAAmB,IAAjB/xD,EAAKsrE,GAAOvZ,EAC5D,MAAM,KACJoF,EAAI,IACJgI,EAAG,iBACH4K,GACEF,GAAcyB,EAAQf,GAC1BW,EAAYpW,GAAUoW,EAAWnB,GACjCoB,EAAgBnrE,GAAO,CACrBm/D,MACAhI,OACD,IAECiU,EAAe,CAEjB,MAAM,IACJjM,EAAG,KACHhI,EAAI,iBACJ4S,GACEF,GAAcuB,EAAeb,GACjCW,EAAYpW,GAAUoW,EAAWnB,GACjCoB,EAAgBN,GAAsB,CACpC1L,MACAhI,OAEJ,CACA,SAASsT,EAAmBlI,EAAagJ,GACvC,IAAIriB,EAAOsF,EAWX,GAViB,UAAbA,IACFtF,EAAO,OAEQ,SAAbsF,IACFtF,EAAO,aAELsF,GAAUuH,WAAW,WAAavH,EAASvhD,SAAS,QAEtDi8C,EAAO,IAAIsF,WAET+T,EAAa,CACf,GAAa,UAATrZ,EAAkB,CACpB,GAAItB,EAAMijB,qBAAuBtI,EAC/B,MAAO,QAET,MAAMz9B,EAAO8lC,EAAarI,IAAc0E,SAASniC,MAAQy9B,EACzD,MAAO,CACL,CAAC,iCAAiCz9B,MAAU,CAC1C,QAASymC,GAGf,CACA,GAAIriB,EACF,OAAItB,EAAMijB,qBAAuBtI,EACxB,UAAUrZ,EAAKtgE,QAAQ,KAAMpB,OAAO+6E,MAEtCrZ,EAAKtgE,QAAQ,KAAMpB,OAAO+6E,GAErC,CACA,MAAO,OACT,CA+DA,MAAO,CACLpL,KAAM+T,EACNM,kBAhEwBA,KACxB,IAAIrU,EAAO,IACN4T,GAOL,OALA5vE,OAAOgH,QAAQgpE,GAAiB39E,SAAQ+kE,IAEjC,IAFmC,EACxC4E,KAAMsU,IACNlZ,EACA4E,EAAOrC,GAAUqC,EAAMsU,EAAW,IAE7BtU,CAAI,EAwDXuU,oBAtD0BA,KAC1B,MAAMC,EAAc,GACdpJ,EAAc3a,EAAMijB,oBAAsB,QAChD,SAASe,EAAiB5rE,EAAKm/D,GACzBhkE,OAAO0E,KAAKs/D,GAAK13E,QACnBkkF,EAAY34E,KAAoB,kBAARgN,EAAmB,CACzC,CAACA,GAAM,IACFm/D,IAEHn/D,EAER,CACA4rE,EAAiBpB,OAAYntE,EAAW,IACnC2tE,IACDA,GACJ,MACE,CAACzI,GAAcsJ,KACZxkE,GACD8jE,EACJ,GAAIU,EAAkB,CAEpB,MAAM,IACJ1M,GACE0M,EACEC,EAAgBlB,EAAarI,IAAc0E,SAASniC,KACpDinC,GAAYrB,GAAyBoB,EAAgB,CACzDvJ,YAAauJ,KACV3M,GACD,IACCA,GAELyM,EAAiBpB,EAAYjI,EAAa,IACrCwJ,IACDA,EACN,CAeA,OAdA5wE,OAAOgH,QAAQkF,GAAO7Z,SAAQw+E,IAEvB,IAFyBhsE,GAAK,IACnCm/D,IACA6M,EACA,MAAMF,EAAgBlB,EAAa5qE,IAAMinE,SAASniC,KAC5CinC,GAAYrB,GAAyBoB,EAAgB,CACzDvJ,YAAauJ,KACV3M,GACD,IACCA,GAELyM,EAAiBpB,EAAYxqE,EAAK,IAC7B+rE,IACDA,EAAS,IAERJ,CAAW,EAOtB,ECpIe,SAASM,GAAkBrW,GACxC,MAAM,OAGJnyD,EAAS,CACPuxD,GAAI,EAEJC,GAAI,IAEJ5jC,GAAI,IAEJgS,GAAI,KAEJ6xB,GAAI,MACL,KACDwF,EAAO,KAAI,KACX1uD,EAAO,KACJ3E,GACDuuD,EACEsW,EAnCsBzoE,KAC5B,MAAM0oE,EAAqBhxE,OAAO0E,KAAK4D,GAAQ3T,KAAIkQ,IAAO,CACxDA,MACAhI,IAAKyL,EAAOzD,QACP,GAGP,OADAmsE,EAAmB7/D,MAAK,CAAC8/D,EAAaC,IAAgBD,EAAYp0E,IAAMq0E,EAAYr0E,MAC7Em0E,EAAmB/mB,QAAO,CAAC2P,EAAK36D,KAC9B,IACF26D,EACH,CAAC36D,EAAI4F,KAAM5F,EAAIpC,OAEhB,CAAC,EAAE,EAuBes0E,CAAsB7oE,GACrC5D,EAAO1E,OAAO0E,KAAKqsE,GACzB,SAAS9W,EAAGp1D,GAEV,MAAO,qBAD8B,kBAAhByD,EAAOzD,GAAoByD,EAAOzD,GAAOA,IAC1B06D,IACtC,CACA,SAAS6R,EAAKvsE,GAEZ,MAAO,sBAD8B,kBAAhByD,EAAOzD,GAAoByD,EAAOzD,GAAOA,GAC1BgM,EAAO,MAAM0uD,IACnD,CACA,SAAS8R,EAAQ1gE,EAAOC,GACtB,MAAM0gE,EAAW5sE,EAAKjR,QAAQmd,GAC9B,MAAO,qBAA8C,kBAAlBtI,EAAOqI,GAAsBrI,EAAOqI,GAASA,IAAQ4uD,uBAA4C,IAAd+R,GAAqD,kBAA3BhpE,EAAO5D,EAAK4sE,IAA0BhpE,EAAO5D,EAAK4sE,IAAa1gE,GAAOC,EAAO,MAAM0uD,IACrO,CAkBA,MAAO,CACL76D,OACA4D,OAAQyoE,EACR9W,KACAmX,OACAC,UACA9qB,KAvBF,SAAc1hD,GACZ,OAAIH,EAAKjR,QAAQoR,GAAO,EAAIH,EAAKpY,OACxB+kF,EAAQxsE,EAAKH,EAAKA,EAAKjR,QAAQoR,GAAO,IAExCo1D,EAAGp1D,EACZ,EAmBE0sE,IAlBF,SAAa1sE,GAEX,MAAM2sE,EAAW9sE,EAAKjR,QAAQoR,GAC9B,OAAiB,IAAb2sE,EACKvX,EAAGv1D,EAAK,IAEb8sE,IAAa9sE,EAAKpY,OAAS,EACtB8kF,EAAK1sE,EAAK8sE,IAEZH,EAAQxsE,EAAKH,EAAKA,EAAKjR,QAAQoR,GAAO,IAAIpX,QAAQ,SAAU,qBACrE,EASE8xE,UACGrzD,EAEP,CChFA,MAGA,GAHc,CACZ4yD,aAAc,GCyDD,SAAS2S,GAAY5sE,EAAK2uD,GAEvC,MAAM/G,EAAQn+D,KACd,GAAIm+D,EAAMuP,KAAM,CACd,IAAKvP,EAAMgjB,eAAe5qE,IAAgD,oBAAjC4nD,EAAMilB,uBAC7C,MAAO,CAAC,EAGV,IAAIre,EAAW5G,EAAMilB,uBAAuB7sE,GAC5C,MAAiB,MAAbwuD,EACKG,IAELH,EAASvhD,SAAS,UAAYuhD,EAASvhD,SAAS,QAElDuhD,EAAW,WAAWA,EAAS5lE,QAAQ,QAAS,UAE3C,CACL,CAAC4lE,GAAWG,GAEhB,CACA,OAAI/G,EAAMqf,QAAQniC,OAAS9kC,EAClB2uD,EAEF,CAAC,CACV,CClCA,SAxCA,WAA4C,IAAvBh4C,EAAO1tB,UAAAxB,OAAA,QAAA4V,IAAApU,UAAA,GAAAA,UAAA,GAAG,CAAC,EAC9B,MACE2sE,YAAaY,EAAmB,CAAC,EACjCyQ,QAAS6F,EAAe,CAAC,EACzB5T,QAASkQ,EACT1sD,MAAOqwD,EAAa,CAAC,KAClB1lE,GACDsP,EAGJ,IAAIq2D,EAAWlY,GAAU,CACvBc,YAHkBqW,GAAkBzV,GAIpC9C,UAAW,MACXjB,WAAY,CAAC,EAEbwU,QAAS,CACPniC,KAAM,WACHgoC,GAEL5T,QAVciQ,GAAcC,GAW5B1sD,MAAO,IACFA,MACAqwD,IAEJ1lE,GACH2lE,EnCSa,SAA6BhZ,GAC1C,MAAMiZ,EAAmBA,CAACC,EAAY/lF,IAAS+lF,EAAWtkF,QAAQ,SAAUzB,EAAO,cAAcA,IAAS,cAC1G,SAASgmF,EAAS7wD,EAAMn1B,GACtBm1B,EAAK84C,GAAK,kBAAa6X,EAAiBjZ,EAAW4B,YAAYR,MAAGnsE,WAAU9B,EAAK,EACjFm1B,EAAKiwD,KAAO,kBAAaU,EAAiBjZ,EAAW4B,YAAY2W,QAAKtjF,WAAU9B,EAAK,EACrFm1B,EAAKkwD,QAAU,kBAAaS,EAAiBjZ,EAAW4B,YAAY4W,WAAQvjF,WAAU9B,EAAK,EAC3Fm1B,EAAKolC,KAAO,kBAAaurB,EAAiBjZ,EAAW4B,YAAYlU,QAAKz4D,WAAU9B,EAAK,EACrFm1B,EAAKowD,IAAM,WACT,MAAMhoE,EAASuoE,EAAiBjZ,EAAW4B,YAAY8W,OAAIzjF,WAAU9B,GACrE,OAAIud,EAAOuI,SAAS,eAEXvI,EAAO9b,QAAQ,eAAgB,IAAIA,QAAQ,aAAc,UAAUA,QAAQ,aAAc,UAAUA,QAAQ,MAAO,MAEpH8b,CACT,CACF,CACA,MAAM4X,EAAO,CAAC,EACRg5C,EAAmBnuE,IACvBgmF,EAAS7wD,EAAMn1B,GACRm1B,GAGT,OADA6wD,EAAS7X,GACF,IACFtB,EACHsB,mBAEJ,CmCnCa8X,CAAoBJ,GAC/BA,EAASJ,YAAcA,GAAY,QAAAtY,EAAArrE,UAAAxB,OA1BCuB,EAAI,IAAAtB,MAAA4sE,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJvrE,EAAIurE,EAAA,GAAAtrE,UAAAsrE,GAsCxC,OAXAyY,EAAWhkF,EAAKo8D,QAAO,CAAC2P,EAAKwU,IAAazU,GAAUC,EAAKwU,IAAWyD,GACpEA,EAASlO,kBAAoB,IACxBhE,MACAzzD,GAAOy3D,mBAEZkO,EAASK,YAAc,SAAY5+D,GACjC,OAAOkwD,GAAgB,CACrBE,GAAIpwD,EACJm5C,MAAOn+D,MAEX,EACOujF,CACT,EC/Ce,SAASM,GAAa1X,EAAav3D,GAChD,MAAO,CACLkvE,QAAS,CACP1S,UAAW,GACX,CAACjF,EAAYR,GAAG,OAAQ,CACtB,kCAAmC,CACjCyF,UAAW,KAGf,CAACjF,EAAYR,GAAG,OAAQ,CACtByF,UAAW,QAGZx8D,EAEP,CCdA,SAAS1R,GAAM2N,GACb,OAAOxS,KAAK6E,MAAc,IAAR2N,GAAe,GACnC,CACA,MAAMkzE,GAAc,CAClBhP,cAAe,aAEXiP,GAAoB,6CAMX,SAASC,GAAiBzG,EAASvI,GAChD,MAAM,WACJN,EAAaqP,GAAiB,SAE9BpP,EAAW,GAAE,gBAEbsP,EAAkB,IAAG,kBACrBC,EAAoB,IAAG,iBACvBC,EAAmB,IAAG,eACtBC,EAAiB,IAAG,aAGpBC,EAAe,GAAE,YAEjBC,EACAC,QAASC,KACN7mE,GACqB,oBAAfq3D,EAA4BA,EAAWuI,GAAWvI,EAS7D,MAAMyP,EAAO9P,EAAW,GAClB4P,EAAUC,GAAY,CAAChqE,GAAWA,EAAO6pE,EAAeI,EAAzB,OAC/BC,EAAeA,CAACroD,EAAY7hB,EAAM+hB,EAAYs4C,EAAe8P,KAAW,CAC5EjQ,aACAr4C,aACAs4C,SAAU4P,EAAQ/pE,GAElB+hB,gBAGIm4C,IAAeqP,GAAoB,CACrClP,cAAe,GAAG5xE,GAAM4xE,EAAgBr6D,QACtC,CAAC,KACFmqE,KACAL,IAECrb,EAAW,CACf2b,GAAIF,EAAaT,EAAiB,GAAI,OAAQ,KAC9CY,GAAIH,EAAaT,EAAiB,GAAI,KAAM,IAC5Ca,GAAIJ,EAAaR,EAAmB,GAAI,MAAO,GAC/Ca,GAAIL,EAAaR,EAAmB,GAAI,MAAO,KAC/Cc,GAAIN,EAAaR,EAAmB,GAAI,MAAO,GAC/Ce,GAAIP,EAAaP,EAAkB,GAAI,IAAK,KAC5Ce,UAAWR,EAAaR,EAAmB,GAAI,KAAM,KACrDiB,UAAWT,EAAaP,EAAkB,GAAI,KAAM,IACpDiB,MAAOV,EAAaR,EAAmB,GAAI,IAAK,KAChDmB,MAAOX,EAAaR,EAAmB,GAAI,KAAM,KACjD95C,OAAQs6C,EAAaP,EAAkB,GAAI,KAAM,GAAKL,IACtDwB,QAASZ,EAAaR,EAAmB,GAAI,KAAM,IACnDqB,SAAUb,EAAaR,EAAmB,GAAI,KAAM,EAAGJ,IAEvD0B,QAAS,CACP9Q,WAAY,UACZr4C,WAAY,UACZs4C,SAAU,UACVp4C,WAAY,UACZs4C,cAAe,YAGnB,OAAOzJ,GAAU,CACfiZ,eACAE,UACA7P,aACAC,WACAsP,kBACAC,oBACAC,mBACAC,oBACGnb,GACFtrD,EAAO,CACRjf,OAAO,GAEX,CCxFA,SAAS+mF,KACP,MAAO,CAAC,GAAAlmF,UAAAxB,QAAA,OAAA4V,EAAApU,UAAA,QAAAA,UAAAxB,QAAA,OAAA4V,EAAApU,UAAA,QAAAA,UAAAxB,QAAA,OAAA4V,EAAApU,UAAA,QAAAA,UAAAxB,QAAA,OAAA4V,EAAApU,UAAA,uBAAoF,GAAAA,UAAAxB,QAAA,OAAA4V,EAAApU,UAAA,QAAAA,UAAAxB,QAAA,OAAA4V,EAAApU,UAAA,QAAAA,UAAAxB,QAAA,OAAA4V,EAAApU,UAAA,QAAAA,UAAAxB,QAAA,OAAA4V,EAAApU,UAAA,wBAAuF,GAAAA,UAAAxB,QAAA,OAAA4V,EAAApU,UAAA,QAAAA,UAAAxB,QAAA,OAAA4V,EAAApU,UAAA,QAAAA,UAAAxB,QAAA,QAAA4V,EAAApU,UAAA,SAAAA,UAAAxB,QAAA,QAAA4V,EAAApU,UAAA,0BAA2FtB,KAAK,IACrR,CAGA,MACA,GADgB,CAAC,OAAQwnF,GAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAIA,GAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAIA,GAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAIA,GAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAA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","sources":["../node_modules/@mui/material/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/@mui/material/node_modules/react-is/index.js","../node_modules/dayjs/dayjs.min.js","../node_modules/dayjs/plugin/advancedFormat.js","../node_modules/dayjs/plugin/customParseFormat.js","../node_modules/dayjs/plugin/isBetween.js","../node_modules/dayjs/plugin/localizedFormat.js","../node_modules/dayjs/plugin/weekOfYear.js","../node_modules/decimal.js-light/decimal.js","../node_modules/eventemitter3/index.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/hoist-non-react-statics/node_modules/react-is/index.js","../node_modules/lodash/_DataView.js","../node_modules/lodash/_Hash.js","../node_modules/lodash/_ListCache.js","../node_modules/lodash/_Map.js","../node_modules/lodash/_MapCache.js","../node_modules/lodash/_Promise.js","../node_modules/lodash/_Set.js","../node_modules/lodash/_SetCache.js","../node_modules/lodash/_Stack.js","../node_modules/lodash/_Symbol.js","../node_modules/lodash/_Uint8Array.js","../node_modules/lodash/_WeakMap.js","../node_modules/lodash/_apply.js","../node_modules/lodash/_arrayEvery.js","../node_modules/lodash/_arrayFilter.js","../node_modules/lodash/_arrayIncludes.js","../node_modules/lodash/_arrayIncludesWith.js","../node_modules/lodash/_arrayLikeKeys.js","../node_modules/lodash/_arrayMap.js","../node_modules/lodash/_arrayPush.js","../node_modules/lodash/_arraySome.js","../node_modules/lodash/_asciiToArray.js","../node_modules/lodash/_assocIndexOf.js","../node_modules/lodash/_baseAssignValue.js","../node_modules/lodash/_baseEach.js","../node_modules/lodash/_baseEvery.js","../node_modules/lodash/_baseExtremum.js","../node_modules/lodash/_baseFindIndex.js","../node_modules/lodash/_baseFlatten.js","../node_modules/lodash/_baseFor.js","../node_modules/lodash/_baseForOwn.js","../node_modules/lodash/_baseGet.js","../node_modules/lodash/_baseGetAllKeys.js","../node_modules/lodash/_baseGetTag.js","../node_modules/lodash/_baseGt.js","../node_modules/lodash/_baseHasIn.js","../node_modules/lodash/_baseIndexOf.js","../node_modules/lodash/_baseIsArguments.js","../node_modules/lodash/_baseIsEqual.js","../node_modules/lodash/_baseIsEqualDeep.js","../node_modules/lodash/_baseIsMatch.js","../node_modules/lodash/_baseIsNaN.js","../node_modules/lodash/_baseIsNative.js","../node_modules/lodash/_baseIsTypedArray.js","../node_modules/lodash/_baseIteratee.js","../node_modules/lodash/_baseKeys.js","../node_modules/lodash/_baseLt.js","../node_modules/lodash/_baseMap.js","../node_modules/lodash/_baseMatches.js","../node_modules/lodash/_baseMatchesProperty.js","../node_modules/lodash/_baseOrderBy.js","../node_modules/lodash/_baseProperty.js","../node_modules/lodash/_basePropertyDeep.js","../node_modules/lodash/_baseRange.js","../node_modules/lodash/_baseRest.js","../node_modules/lodash/_baseSetToString.js","../node_modules/lodash/_baseSlice.js","../node_modules/lodash/_baseSome.js","../node_modules/lodash/_baseSortBy.js","../node_modules/lodash/_baseTimes.js","../node_modules/lodash/_baseToString.js","../node_modules/lodash/_baseTrim.js","../node_modules/lodash/_baseUnary.js","../node_modules/lodash/_baseUniq.js","../node_modules/lodash/_cacheHas.js","../node_modules/lodash/_castPath.js","../node_modules/lodash/_castSlice.js","../node_modules/lodash/_compareAscending.js","../node_modules/lodash/_compareMultiple.js","../node_modules/lodash/_coreJsData.js","../node_modules/lodash/_createBaseEach.js","../node_modules/lodash/_createBaseFor.js","../node_modules/lodash/_createCaseFirst.js","../node_modules/lodash/_createFind.js","../node_modules/lodash/_createRange.js","../node_modules/lodash/_createSet.js","../node_modules/lodash/_defineProperty.js","../node_modules/lodash/_equalArrays.js","../node_modules/lodash/_equalByTag.js","../node_modules/lodash/_equalObjects.js","../node_modules/lodash/_freeGlobal.js","../node_modules/lodash/_getAllKeys.js","../node_modules/lodash/_getMapData.js","../node_modules/lodash/_getMatchData.js","../node_modules/lodash/_getNative.js","../node_modules/lodash/_getPrototype.js","../node_modules/lodash/_getRawTag.js","../node_modules/lodash/_getSymbols.js","../node_modules/lodash/_getTag.js","../node_modules/lodash/_getValue.js","../node_modules/lodash/_hasPath.js","../node_modules/lodash/_hasUnicode.js","../node_modules/lodash/_hashClear.js","../node_modules/lodash/_hashDelete.js","../node_modules/lodash/_hashGet.js","../node_modules/lodash/_hashHas.js","../node_modules/lodash/_hashSet.js","../node_modules/lodash/_isFlattenable.js","../node_modules/lodash/_isIndex.js","../node_modules/lodash/_isIterateeCall.js","../node_modules/lodash/_isKey.js","../node_modules/lodash/_isKeyable.js","../node_modules/lodash/_isMasked.js","../node_modules/lodash/_isPrototype.js","../node_modules/lodash/_isStrictComparable.js","../node_modules/lodash/_listCacheClear.js","../node_modules/lodash/_listCacheDelete.js","../node_modules/lodash/_listCacheGet.js","../node_modules/lodash/_listCacheHas.js","../node_modules/lodash/_listCacheSet.js","../node_modules/lodash/_mapCacheClear.js","../node_modules/lodash/_mapCacheDelete.js","../node_modules/lodash/_mapCacheGet.js","../node_modules/lodash/_mapCacheHas.js","../node_modules/lodash/_mapCacheSet.js","../node_modules/lodash/_mapToArray.js","../node_modules/lodash/_matchesStrictComparable.js","../node_modules/lodash/_memoizeCapped.js","../node_modules/lodash/_nativeCreate.js","../node_modules/lodash/_nativeKeys.js","../node_modules/lodash/_nodeUtil.js","../node_modules/lodash/_objectToString.js","../node_modules/lodash/_overArg.js","../node_modules/lodash/_overRest.js","../node_modules/lodash/_root.js","../node_modules/lodash/_setCacheAdd.js","../node_modules/lodash/_setCacheHas.js","../node_modules/lodash/_setToArray.js","../node_modules/lodash/_setToString.js","../node_modules/lodash/_shortOut.js","../node_modules/lodash/_stackClear.js","../node_modules/lodash/_stackDelete.js","../node_modules/lodash/_stackGet.js","../node_modules/lodash/_stackHas.js","../node_modules/lodash/_stackSet.js","../node_modules/lodash/_strictIndexOf.js","../node_modules/lodash/_stringToArray.js","../node_modules/lodash/_stringToPath.js","../node_modules/lodash/_toKey.js","../node_modules/lodash/_toSource.js","../node_modules/lodash/_trimmedEndIndex.js","../node_modules/lodash/_unicodeToArray.js","../node_modules/lodash/constant.js","../node_modules/lodash/debounce.js","../node_modules/lodash/eq.js","../node_modules/lodash/every.js","../node_modules/lodash/find.js","../node_modules/lodash/findIndex.js","../node_modules/lodash/flatMap.js","../node_modules/lodash/get.js","../node_modules/lodash/hasIn.js","../node_modules/lodash/identity.js","../node_modules/lodash/isArguments.js","../node_modules/lodash/isArray.js","../node_modules/lodash/isArrayLike.js","../node_modules/lodash/isBoolean.js","../node_modules/lodash/isBuffer.js","../node_modules/lodash/isEqual.js","../node_modules/lodash/isFunction.js","../node_modules/lodash/isLength.js","../node_modules/lodash/isNaN.js","../node_modules/lodash/isNil.js","../node_modules/lodash/isNumber.js","../node_modules/lodash/isObject.js","../node_modules/lodash/isObjectLike.js","../node_modules/lodash/isPlainObject.js","../node_modules/lodash/isString.js","../node_modules/lodash/isSymbol.js","../node_modules/lodash/isTypedArray.js","../node_modules/lodash/keys.js","../node_modules/lodash/last.js","../node_modules/lodash/map.js","../node_modules/lodash/mapValues.js","../node_modules/lodash/max.js","../node_modules/lodash/memoize.js","../node_modules/lodash/min.js","../node_modules/lodash/noop.js","../node_modules/lodash/now.js","../node_modules/lodash/property.js","../node_modules/lodash/range.js","../node_modules/lodash/some.js","../node_modules/lodash/sortBy.js","../node_modules/lodash/stubArray.js","../node_modules/lodash/stubFalse.js","../node_modules/lodash/throttle.js","../node_modules/lodash/toFinite.js","../node_modules/lodash/toInteger.js","../node_modules/lodash/toNumber.js","../node_modules/lodash/toString.js","../node_modules/lodash/uniqBy.js","../node_modules/lodash/upperFirst.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/recharts/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/recharts/node_modules/react-is/index.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/node module decorator","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","../node_modules/@mui/private-theming/useTheme/ThemeContext.js","../node_modules/@mui/private-theming/useTheme/useTheme.js","../node_modules/@mui/private-theming/ThemeProvider/nested.js","../node_modules/@mui/private-theming/ThemeProvider/ThemeProvider.js","../node_modules/@emotion/sheet/dist/emotion-sheet.esm.js","../node_modules/stylis/src/Utility.js","../node_modules/stylis/src/Tokenizer.js","../node_modules/stylis/src/Enum.js","../node_modules/stylis/src/Serializer.js","../node_modules/stylis/src/Middleware.js","../node_modules/stylis/src/Parser.js","../node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js","../node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","../node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","../node_modules/@emotion/serialize/dist/emotion-serialize.esm.js","../node_modules/@emotion/hash/dist/emotion-hash.esm.js","../node_modules/@emotion/use-insertion-effect-with-fallbacks/dist/emotion-use-insertion-effect-with-fallbacks.browser.esm.js","../node_modules/@emotion/react/dist/emotion-element-5486c51c.browser.esm.js","../node_modules/@mui/system/esm/useThemeWithoutDefault/useThemeWithoutDefault.js","../node_modules/@mui/system/esm/RtlProvider/index.js","../node_modules/@mui/utils/esm/resolveProps/resolveProps.js","../node_modules/@mui/system/esm/DefaultPropsProvider/DefaultPropsProvider.js","../node_modules/@mui/system/esm/ThemeProvider/ThemeProvider.js","../node_modules/@mui/material/styles/identifier.js","../node_modules/@mui/material/styles/ThemeProviderNoVars.js","../node_modules/@mui/utils/esm/formatMuiErrorMessage/formatMuiErrorMessage.js","../node_modules/@mui/utils/esm/capitalize/capitalize.js","../node_modules/@mui/utils/esm/deepmerge/deepmerge.js","../node_modules/@mui/system/esm/merge/merge.js","../node_modules/@mui/system/esm/breakpoints/breakpoints.js","../node_modules/@mui/system/esm/cssContainerQueries/cssContainerQueries.js","../node_modules/@mui/system/esm/style/style.js","../node_modules/@mui/system/esm/spacing/spacing.js","../node_modules/@mui/system/esm/memoize/memoize.js","../node_modules/@mui/system/esm/compose/compose.js","../node_modules/@mui/system/esm/borders/borders.js","../node_modules/@mui/system/esm/cssGrid/cssGrid.js","../node_modules/@mui/system/esm/palette/palette.js","../node_modules/@mui/system/esm/sizing/sizing.js","../node_modules/@mui/system/esm/styleFunctionSx/defaultSxConfig.js","../node_modules/@mui/system/esm/styleFunctionSx/styleFunctionSx.js","../node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","../node_modules/@emotion/react/dist/emotion-react.browser.esm.js","../node_modules/@mui/styled-engine/GlobalStyles/GlobalStyles.js","../node_modules/@mui/system/esm/InitColorSchemeScript/InitColorSchemeScript.js","../node_modules/@mui/system/esm/cssVars/useCurrentColorScheme.js","../node_modules/@mui/utils/esm/clamp/clamp.js","../node_modules/@mui/system/esm/colorManipulator/colorManipulator.js","../node_modules/@mui/material/colors/common.js","../node_modules/@mui/material/colors/grey.js","../node_modules/@mui/material/colors/purple.js","../node_modules/@mui/material/colors/red.js","../node_modules/@mui/material/colors/orange.js","../node_modules/@mui/material/colors/blue.js","../node_modules/@mui/material/colors/lightBlue.js","../node_modules/@mui/material/colors/green.js","../node_modules/@mui/material/styles/createPalette.js","../node_modules/@mui/system/esm/cssVars/createGetCssVar.js","../node_modules/@mui/system/esm/createTheme/createSpacing.js","../node_modules/@mui/system/esm/cssVars/prepareTypographyVars.js","../node_modules/@mui/system/esm/cssVars/cssVarsParser.js","../node_modules/@mui/system/esm/cssVars/prepareCssVars.js","../node_modules/@mui/system/esm/createBreakpoints/createBreakpoints.js","../node_modules/@mui/system/esm/createTheme/shape.js","../node_modules/@mui/system/esm/createTheme/applyStyles.js","../node_modules/@mui/system/esm/createTheme/createTheme.js","../node_modules/@mui/material/styles/createMixins.js","../node_modules/@mui/material/styles/createTypography.js","../node_modules/@mui/material/styles/shadows.js","../node_modules/@mui/material/styles/createTransitions.js","../node_modules/@mui/material/styles/zIndex.js","../node_modules/@mui/material/styles/createThemeNoVars.js","../node_modules/@mui/material/styles/getOverlayAlpha.js","../node_modules/@mui/material/styles/createColorScheme.js","../node_modules/@mui/material/styles/shouldSkipGeneratingVar.js","../node_modules/@mui/material/styles/excludeVariablesFromRoot.js","../node_modules/@mui/material/styles/createGetSelector.js","../node_modules/@mui/material/styles/stringifyTheme.js","../node_modules/@mui/material/styles/createThemeWithVars.js","../node_modules/@mui/system/esm/cssVars/getColorSchemeSelector.js","../node_modules/@mui/material/styles/createTheme.js","../node_modules/@mui/material/InitColorSchemeScript/InitColorSchemeScript.js","../node_modules/@mui/material/styles/ThemeProviderWithVars.js","../node_modules/@mui/system/esm/cssVars/createCssVarsProvider.js","../node_modules/@mui/material/styles/ThemeProvider.js","../node_modules/clsx/dist/clsx.mjs","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js","../node_modules/@emotion/styled/base/dist/emotion-styled-base.browser.esm.js","../node_modules/@emotion/styled/dist/emotion-styled.browser.esm.js","../node_modules/@mui/styled-engine/index.js","../node_modules/@mui/system/esm/styleFunctionSx/extendSxProp.js","../node_modules/@mui/system/esm/useTheme/useTheme.js","../node_modules/@mui/utils/esm/ClassNameGenerator/ClassNameGenerator.js","../node_modules/@mui/utils/esm/generateUtilityClass/generateUtilityClass.js","../node_modules/@mui/utils/esm/generateUtilityClasses/generateUtilityClasses.js","../node_modules/@mui/material/Box/boxClasses.js","../node_modules/@mui/material/Box/Box.js","../node_modules/@mui/system/esm/createBox/createBox.js","../node_modules/@mui/utils/esm/composeClasses/composeClasses.js","../node_modules/@mui/material/styles/slotShouldForwardProp.js","../node_modules/@mui/material/styles/rootShouldForwardProp.js","../node_modules/@mui/system/esm/preprocessStyles.js","../node_modules/@mui/system/esm/createStyled/createStyled.js","../node_modules/@mui/material/styles/defaultTheme.js","../node_modules/@mui/material/styles/styled.js","../node_modules/@mui/system/esm/memoTheme.js","../node_modules/@mui/material/utils/memoTheme.js","../node_modules/@mui/material/DefaultPropsProvider/DefaultPropsProvider.js","../node_modules/@mui/utils/esm/isFocusVisible/isFocusVisible.js","../node_modules/@mui/utils/esm/setRef/setRef.js","../node_modules/@mui/utils/esm/useForkRef/useForkRef.js","../node_modules/@mui/material/utils/useForkRef.js","../node_modules/@mui/utils/esm/useEnhancedEffect/useEnhancedEffect.js","../node_modules/@mui/utils/esm/useEventCallback/useEventCallback.js","../node_modules/@mui/material/utils/useEventCallback.js","../node_modules/@mui/utils/esm/useLazyRef/useLazyRef.js","../node_modules/@mui/material/useLazyRipple/useLazyRipple.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/react-transition-group/esm/TransitionGroupContext.js","../node_modules/react-transition-group/esm/utils/ChildMapping.js","../node_modules/react-transition-group/esm/TransitionGroup.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@mui/utils/esm/useOnMount/useOnMount.js","../node_modules/@mui/utils/esm/useTimeout/useTimeout.js","../node_modules/@mui/material/ButtonBase/Ripple.js","../node_modules/@mui/material/ButtonBase/touchRippleClasses.js","../node_modules/@mui/material/ButtonBase/TouchRipple.js","../node_modules/@mui/material/ButtonBase/buttonBaseClasses.js","../node_modules/@mui/material/ButtonBase/ButtonBase.js","../node_modules/@mui/material/utils/capitalize.js","../node_modules/@mui/material/utils/createSimplePaletteValueFilter.js","../node_modules/@mui/material/Button/buttonClasses.js","../node_modules/@mui/material/ButtonGroup/ButtonGroupContext.js","../node_modules/@mui/material/ButtonGroup/ButtonGroupButtonContext.js","../node_modules/@mui/material/Button/Button.js","Theme.js","../node_modules/@hotjar/browser/src/utils.ts","../node_modules/@hotjar/browser/src/index.ts","../node_modules/@mui/system/esm/GlobalStyles/GlobalStyles.js","../node_modules/@mui/material/GlobalStyles/GlobalStyles.js","../node_modules/@mui/material/Typography/typographyClasses.js","../node_modules/@mui/material/Typography/Typography.js","../node_modules/@mui/material/zero-styled/index.js","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/utils.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/platform/browser/index.js","../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../node_modules/axios/lib/platform/browser/classes/FormData.js","../node_modules/axios/lib/platform/browser/classes/Blob.js","../node_modules/axios/lib/platform/common/utils.js","../node_modules/axios/lib/platform/index.js","../node_modules/axios/lib/helpers/formDataToJSON.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/helpers/toURLEncodedForm.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/core/AxiosHeaders.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/speedometer.js","../node_modules/axios/lib/helpers/throttle.js","../node_modules/axios/lib/helpers/progressEventReducer.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/helpers/resolveConfig.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/helpers/composeSignals.js","../node_modules/axios/lib/helpers/trackStream.js","../node_modules/axios/lib/adapters/fetch.js","../node_modules/axios/lib/adapters/adapters.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/HttpStatusCode.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","../node_modules/@mui/material/styles/useTheme.js","../node_modules/react-transition-group/esm/config.js","../node_modules/react-transition-group/esm/utils/reflow.js","../node_modules/react-transition-group/esm/Transition.js","../node_modules/@mui/material/transitions/utils.js","../node_modules/@mui/material/Collapse/collapseClasses.js","../node_modules/@mui/material/Collapse/Collapse.js","../node_modules/@mui/material/Paper/paperClasses.js","../node_modules/@mui/material/Paper/Paper.js","../node_modules/@mui/material/Accordion/AccordionContext.js","../node_modules/@mui/material/utils/useControlled.js","../node_modules/@mui/utils/esm/useControlled/useControlled.js","../node_modules/@mui/utils/esm/isHostComponent/isHostComponent.js","../node_modules/@mui/utils/esm/appendOwnerState/appendOwnerState.js","../node_modules/@mui/utils/esm/resolveComponentProps/resolveComponentProps.js","../node_modules/@mui/utils/esm/extractEventHandlers/extractEventHandlers.js","../node_modules/@mui/utils/esm/omitEventHandlers/omitEventHandlers.js","../node_modules/@mui/utils/esm/mergeSlotProps/mergeSlotProps.js","../node_modules/@mui/material/utils/useSlot.js","../node_modules/@mui/material/Accordion/accordionClasses.js","../node_modules/@mui/material/Accordion/Accordion.js","../node_modules/@mui/material/AccordionSummary/accordionSummaryClasses.js","../node_modules/@mui/material/AccordionSummary/AccordionSummary.js","../node_modules/@mui/material/AccordionDetails/accordionDetailsClasses.js","../node_modules/@mui/material/AccordionDetails/AccordionDetails.js","../node_modules/@mui/material/TableContainer/tableContainerClasses.js","../node_modules/@mui/material/TableContainer/TableContainer.js","../node_modules/@mui/material/Table/TableContext.js","../node_modules/@mui/material/Table/tableClasses.js","../node_modules/@mui/material/Table/Table.js","../node_modules/@mui/material/Table/Tablelvl2Context.js","../node_modules/@mui/material/TableHead/tableHeadClasses.js","../node_modules/@mui/material/TableHead/TableHead.js","../node_modules/@mui/material/TableRow/tableRowClasses.js","../node_modules/@mui/material/TableRow/TableRow.js","../node_modules/@mui/material/TableCell/tableCellClasses.js","../node_modules/@mui/material/TableCell/TableCell.js","../node_modules/@mui/material/TableBody/tableBodyClasses.js","../node_modules/@mui/material/TableBody/TableBody.js","../node_modules/@mui/system/esm/useThemeProps/getThemeProps.js","../node_modules/@mui/system/esm/useThemeProps/useThemeProps.js","../node_modules/@mui/material/styles/useThemeProps.js","../node_modules/@mui/material/Grid/GridContext.js","../node_modules/@mui/material/Grid/gridClasses.js","../node_modules/@mui/material/Grid/Grid.js","../node_modules/@mui/material/SvgIcon/svgIconClasses.js","../node_modules/@mui/material/SvgIcon/SvgIcon.js","../node_modules/@mui/material/utils/createSvgIcon.js","../node_modules/@mui/icons-material/esm/ExpandMore.js","components/MetricsTable.js","../node_modules/@mui/material/Divider/dividerClasses.js","../node_modules/@mui/material/Divider/Divider.js","../node_modules/@mui/utils/esm/useId/useId.js","../node_modules/@mui/utils/esm/ownerDocument/ownerDocument.js","../node_modules/@mui/utils/esm/ownerWindow/ownerWindow.js","../node_modules/@mui/utils/esm/debounce/debounce.js","../node_modules/@mui/material/TextareaAutosize/TextareaAutosize.js","../node_modules/@mui/material/utils/isHostComponent.js","../node_modules/@mui/material/FormControl/formControlState.js","../node_modules/@mui/material/FormControl/FormControlContext.js","../node_modules/@mui/material/FormControl/useFormControl.js","../node_modules/@mui/material/utils/useEnhancedEffect.js","../node_modules/@mui/material/InputBase/utils.js","../node_modules/@mui/material/InputBase/inputBaseClasses.js","../node_modules/@mui/material/InputBase/InputBase.js","../node_modules/@mui/material/Input/inputClasses.js","../node_modules/@mui/material/Input/Input.js","../node_modules/@mui/material/FilledInput/filledInputClasses.js","../node_modules/@mui/material/FilledInput/FilledInput.js","../node_modules/@mui/material/OutlinedInput/NotchedOutline.js","../node_modules/@mui/material/OutlinedInput/outlinedInputClasses.js","../node_modules/@mui/material/OutlinedInput/OutlinedInput.js","../node_modules/@mui/material/FormLabel/formLabelClasses.js","../node_modules/@mui/material/FormLabel/FormLabel.js","../node_modules/@mui/material/InputLabel/inputLabelClasses.js","../node_modules/@mui/material/InputLabel/InputLabel.js","../node_modules/@mui/material/utils/isMuiElement.js","../node_modules/@mui/utils/esm/isMuiElement/isMuiElement.js","../node_modules/@mui/material/FormControl/formControlClasses.js","../node_modules/@mui/material/FormControl/FormControl.js","../node_modules/@mui/material/FormHelperText/formHelperTextClasses.js","../node_modules/@mui/material/FormHelperText/FormHelperText.js","../node_modules/@mui/utils/esm/getReactElementRef/getReactElementRef.js","../node_modules/@mui/material/utils/ownerDocument.js","../node_modules/@mui/utils/esm/useSlotProps/useSlotProps.js","../node_modules/@mui/material/List/ListContext.js","../node_modules/@mui/material/List/listClasses.js","../node_modules/@mui/material/List/List.js","../node_modules/@mui/utils/esm/getScrollbarSize/getScrollbarSize.js","../node_modules/@mui/material/utils/getScrollbarSize.js","../node_modules/@mui/material/utils/ownerWindow.js","../node_modules/@mui/material/MenuList/MenuList.js","../node_modules/@mui/material/utils/debounce.js","../node_modules/@mui/material/Grow/Grow.js","../node_modules/@mui/material/Unstable_TrapFocus/FocusTrap.js","../node_modules/@mui/material/Portal/Portal.js","../node_modules/@mui/material/Fade/Fade.js","../node_modules/@mui/material/Backdrop/backdropClasses.js","../node_modules/@mui/material/Backdrop/Backdrop.js","../node_modules/@mui/utils/esm/createChainedFunction/createChainedFunction.js","../node_modules/@mui/material/Modal/ModalManager.js","../node_modules/@mui/material/Modal/useModal.js","../node_modules/@mui/material/Modal/modalClasses.js","../node_modules/@mui/material/Modal/Modal.js","../node_modules/@mui/material/Popover/popoverClasses.js","../node_modules/@mui/material/Popover/Popover.js","../node_modules/@mui/material/Menu/menuClasses.js","../node_modules/@mui/material/Menu/Menu.js","../node_modules/@mui/material/NativeSelect/nativeSelectClasses.js","../node_modules/@mui/material/NativeSelect/NativeSelectInput.js","../node_modules/@mui/material/Select/selectClasses.js","../node_modules/@mui/material/Select/SelectInput.js","../node_modules/@mui/material/internal/svg-icons/ArrowDropDown.js","../node_modules/@mui/material/Select/Select.js","../node_modules/@mui/material/TextField/textFieldClasses.js","../node_modules/@mui/material/TextField/TextField.js","../node_modules/@mui/material/InputAdornment/inputAdornmentClasses.js","../node_modules/@mui/material/InputAdornment/InputAdornment.js","../node_modules/@mui/material/ListItemIcon/listItemIconClasses.js","../node_modules/@mui/material/ListItemText/listItemTextClasses.js","../node_modules/@mui/material/MenuItem/menuItemClasses.js","../node_modules/@mui/material/MenuItem/MenuItem.js","../node_modules/@mui/system/esm/useMediaQuery/useMediaQuery.js","../node_modules/@mui/x-date-pickers/node_modules/@mui/utils/esm/resolveComponentProps/resolveComponentProps.js","../node_modules/@mui/x-date-pickers/node_modules/@mui/utils/esm/refType/refType.js","../node_modules/@mui/x-date-pickers/internals/utils/views.js","../node_modules/@mui/x-date-pickers/internals/utils/date-utils.js","../node_modules/@mui/x-date-pickers/internals/utils/time-utils.js","../node_modules/@mui/x-date-pickers/internals/utils/getDefaultReferenceDate.js","../node_modules/@mui/x-date-pickers/internals/hooks/useField/useField.utils.js","../node_modules/@mui/x-date-pickers/internals/utils/valueManagers.js","../node_modules/@mui/x-date-pickers/LocalizationProvider/LocalizationProvider.js","../node_modules/@mui/x-date-pickers/locales/utils/getPickersLocalization.js","../node_modules/@mui/x-date-pickers/locales/enUS.js","../node_modules/@mui/x-date-pickers/internals/hooks/useUtils.js","../node_modules/@mui/x-date-pickers/node_modules/@mui/utils/esm/composeClasses/composeClasses.js","../node_modules/@mui/x-date-pickers/node_modules/@mui/utils/esm/ClassNameGenerator/ClassNameGenerator.js","../node_modules/@mui/x-date-pickers/node_modules/@mui/utils/esm/generateUtilityClass/generateUtilityClass.js","../node_modules/@mui/x-date-pickers/node_modules/@mui/utils/esm/generateUtilityClasses/generateUtilityClasses.js","../node_modules/@mui/x-date-pickers/internals/components/pickersToolbarClasses.js","../node_modules/@mui/x-date-pickers/internals/components/PickersToolbar.js","../node_modules/@mui/x-date-pickers/hooks/usePickersTranslations.js","../node_modules/@mui/x-date-pickers/DatePicker/datePickerToolbarClasses.js","../node_modules/@mui/x-date-pickers/DatePicker/DatePickerToolbar.js","../node_modules/@mui/x-date-pickers/DatePicker/shared.js","../node_modules/@mui/x-date-pickers/validation/extractValidationProps.js","../node_modules/@mui/x-date-pickers/validation/validateDate.js","../node_modules/@mui/x-date-pickers/node_modules/@mui/utils/esm/useForkRef/useForkRef.js","../node_modules/@mui/x-date-pickers/node_modules/@mui/utils/esm/setRef/setRef.js","../node_modules/@mui/x-date-pickers/node_modules/@mui/utils/esm/isHostComponent/isHostComponent.js","../node_modules/@mui/x-date-pickers/node_modules/@mui/utils/esm/appendOwnerState/appendOwnerState.js","../node_modules/@mui/x-date-pickers/node_modules/@mui/utils/esm/extractEventHandlers/extractEventHandlers.js","../node_modules/@mui/x-date-pickers/node_modules/@mui/utils/esm/omitEventHandlers/omitEventHandlers.js","../node_modules/@mui/x-date-pickers/node_modules/@mui/utils/esm/mergeSlotProps/mergeSlotProps.js","../node_modules/@mui/x-date-pickers/node_modules/@mui/utils/esm/useSlotProps/useSlotProps.js","../node_modules/@mui/material/IconButton/iconButtonClasses.js","../node_modules/@mui/material/IconButton/IconButton.js","../node_modules/@mui/x-date-pickers/node_modules/@mui/utils/esm/useId/useId.js","../node_modules/@popperjs/core/lib/dom-utils/getWindow.js","../node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","../node_modules/@popperjs/core/lib/utils/math.js","../node_modules/@popperjs/core/lib/utils/userAgent.js","../node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","../node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","../node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","../node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","../node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","../node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","../node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","../node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","../node_modules/@popperjs/core/lib/enums.js","../node_modules/@popperjs/core/lib/utils/orderModifiers.js","../node_modules/@popperjs/core/lib/utils/debounce.js","../node_modules/@popperjs/core/lib/createPopper.js","../node_modules/@popperjs/core/lib/utils/mergeByName.js","../node_modules/@popperjs/core/lib/modifiers/eventListeners.js","../node_modules/@popperjs/core/lib/utils/getBasePlacement.js","../node_modules/@popperjs/core/lib/utils/getVariation.js","../node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","../node_modules/@popperjs/core/lib/utils/computeOffsets.js","../node_modules/@popperjs/core/lib/modifiers/computeStyles.js","../node_modules/@popperjs/core/lib/modifiers/applyStyles.js","../node_modules/@popperjs/core/lib/modifiers/offset.js","../node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","../node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","../node_modules/@popperjs/core/lib/dom-utils/contains.js","../node_modules/@popperjs/core/lib/utils/rectToClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","../node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","../node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","../node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","../node_modules/@popperjs/core/lib/utils/expandToHashMap.js","../node_modules/@popperjs/core/lib/utils/detectOverflow.js","../node_modules/@popperjs/core/lib/modifiers/flip.js","../node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","../node_modules/@popperjs/core/lib/utils/within.js","../node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","../node_modules/@popperjs/core/lib/utils/getAltAxis.js","../node_modules/@popperjs/core/lib/modifiers/arrow.js","../node_modules/@popperjs/core/lib/modifiers/hide.js","../node_modules/@popperjs/core/lib/popper.js","../node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","../node_modules/@mui/material/Popper/popperClasses.js","../node_modules/@mui/material/Popper/BasePopper.js","../node_modules/@mui/material/Popper/Popper.js","../node_modules/@mui/x-date-pickers/node_modules/@mui/utils/esm/useEnhancedEffect/useEnhancedEffect.js","../node_modules/@mui/x-date-pickers/node_modules/@mui/utils/esm/useEventCallback/useEventCallback.js","../node_modules/@mui/x-date-pickers/node_modules/@mui/utils/esm/ownerDocument/ownerDocument.js","../node_modules/@mui/x-date-pickers/internals/components/pickersPopperClasses.js","../node_modules/@mui/x-date-pickers/internals/utils/utils.js","../node_modules/@mui/x-date-pickers/internals/hooks/useDefaultReduceAnimations.js","../node_modules/@mui/x-date-pickers/internals/components/PickersPopper.js","../node_modules/@mui/x-date-pickers/validation/useValidation.js","../node_modules/@mui/x-date-pickers/node_modules/@mui/utils/esm/useControlled/useControlled.js","../node_modules/@mui/x-date-pickers/internals/hooks/useValueWithTimezone.js","../node_modules/@mui/x-date-pickers/internals/hooks/usePicker/usePickerValue.js","../node_modules/@mui/x-date-pickers/internals/hooks/useOpenState.js","../node_modules/@mui/x-date-pickers/internals/hooks/useViews.js","../node_modules/@mui/x-date-pickers/internals/hooks/usePicker/usePickerViews.js","../node_modules/@mui/x-date-pickers/internals/hooks/useIsLandscape.js","../node_modules/@mui/x-date-pickers/internals/hooks/usePicker/usePicker.js","../node_modules/@mui/x-date-pickers/internals/hooks/usePicker/usePickerLayoutProps.js","../node_modules/@mui/x-date-pickers/PickersLayout/pickersLayoutClasses.js","../node_modules/@mui/material/DialogActions/dialogActionsClasses.js","../node_modules/@mui/material/DialogActions/DialogActions.js","../node_modules/@mui/x-date-pickers/PickersActionBar/PickersActionBar.js","../node_modules/@mui/material/ListItem/listItemClasses.js","../node_modules/@mui/material/ListItemButton/listItemButtonClasses.js","../node_modules/@mui/material/ListItemSecondaryAction/listItemSecondaryActionClasses.js","../node_modules/@mui/material/ListItemSecondaryAction/ListItemSecondaryAction.js","../node_modules/@mui/material/ListItem/ListItem.js","../node_modules/@mui/material/internal/svg-icons/Cancel.js","../node_modules/@mui/material/Chip/chipClasses.js","../node_modules/@mui/material/Chip/Chip.js","../node_modules/@mui/x-date-pickers/internals/constants/dimensions.js","../node_modules/@mui/x-date-pickers/PickersShortcuts/PickersShortcuts.js","../node_modules/@mui/x-date-pickers/PickersLayout/usePickerLayout.js","../node_modules/@mui/x-date-pickers/PickersLayout/PickersLayout.js","../node_modules/@mui/x-date-pickers/internals/hooks/useDesktopPicker/useDesktopPicker.js","../node_modules/@mui/x-date-pickers/icons/index.js","../node_modules/@mui/x-date-pickers/internals/hooks/useField/buildSectionsFromFormat.js","../node_modules/@mui/x-date-pickers/internals/hooks/useField/useFieldState.js","../node_modules/@mui/x-date-pickers/internals/hooks/useField/useFieldCharacterEditing.js","../node_modules/@mui/x-date-pickers/internals/hooks/useField/useFieldV7TextField.js","../node_modules/@mui/x-date-pickers/internals/hooks/useField/useFieldV6TextField.js","../node_modules/@mui/x-date-pickers/hooks/useSplitFieldProps.js","../node_modules/@mui/x-date-pickers/DateField/useDateField.js","../node_modules/@mui/x-date-pickers/internals/hooks/defaultizedFieldProps.js","../node_modules/@mui/x-date-pickers/internals/hooks/useField/useField.js","../node_modules/@mui/x-date-pickers/hooks/useClearableField.js","../node_modules/@mui/x-date-pickers/PickersTextField/pickersTextFieldClasses.js","../node_modules/@mui/x-date-pickers/PickersTextField/PickersInputBase/pickersInputBaseClasses.js","../node_modules/@mui/x-date-pickers/PickersTextField/PickersOutlinedInput/pickersOutlinedInputClasses.js","../node_modules/@mui/x-date-pickers/PickersTextField/PickersOutlinedInput/Outline.js","../node_modules/@mui/x-date-pickers/node_modules/@mui/utils/esm/capitalize/capitalize.js","../node_modules/@mui/x-date-pickers/node_modules/@mui/utils/esm/formatMuiErrorMessage/formatMuiErrorMessage.js","../node_modules/@mui/x-date-pickers/node_modules/@mui/utils/esm/visuallyHidden/visuallyHidden.js","../node_modules/@mui/x-date-pickers/PickersSectionList/pickersSectionListClasses.js","../node_modules/@mui/x-date-pickers/PickersSectionList/PickersSectionList.js","../node_modules/@mui/x-date-pickers/PickersTextField/PickersInputBase/PickersInputBase.js","../node_modules/@mui/x-date-pickers/PickersTextField/PickersOutlinedInput/PickersOutlinedInput.js","../node_modules/@mui/x-date-pickers/PickersTextField/PickersFilledInput/pickersFilledInputClasses.js","../node_modules/@mui/x-date-pickers/PickersTextField/PickersFilledInput/PickersFilledInput.js","../node_modules/@mui/x-date-pickers/PickersTextField/PickersInput/pickersInputClasses.js","../node_modules/@mui/x-date-pickers/PickersTextField/PickersInput/PickersInput.js","../node_modules/@mui/x-date-pickers/PickersTextField/PickersTextField.js","../node_modules/@mui/x-date-pickers/internals/utils/convertFieldResponseIntoMuiTextFieldProps.js","../node_modules/@mui/x-date-pickers/DateField/DateField.js","../node_modules/@mui/x-date-pickers/DateCalendar/useIsDateDisabled.js","../node_modules/@mui/x-date-pickers/DateCalendar/useCalendarState.js","../node_modules/@mui/x-date-pickers/DateCalendar/pickersFadeTransitionGroupClasses.js","../node_modules/@mui/x-date-pickers/DateCalendar/PickersFadeTransitionGroup.js","../node_modules/@mui/x-date-pickers/PickersDay/pickersDayClasses.js","../node_modules/@mui/x-date-pickers/PickersDay/PickersDay.js","../node_modules/dom-helpers/esm/removeClass.js","../node_modules/react-transition-group/esm/CSSTransition.js","../node_modules/dom-helpers/esm/addClass.js","../node_modules/dom-helpers/esm/hasClass.js","../node_modules/@mui/x-date-pickers/DateCalendar/pickersSlideTransitionClasses.js","../node_modules/@mui/x-date-pickers/DateCalendar/PickersSlideTransition.js","../node_modules/@mui/x-date-pickers/DateCalendar/dayCalendarClasses.js","../node_modules/@mui/x-date-pickers/DateCalendar/DayCalendar.js","../node_modules/@mui/x-date-pickers/MonthCalendar/pickersMonthClasses.js","../node_modules/@mui/x-date-pickers/MonthCalendar/PickersMonth.js","../node_modules/@mui/x-date-pickers/MonthCalendar/monthCalendarClasses.js","../node_modules/@mui/x-date-pickers/MonthCalendar/MonthCalendar.js","../node_modules/@mui/x-date-pickers/YearCalendar/pickersYearClasses.js","../node_modules/@mui/x-date-pickers/YearCalendar/PickersYear.js","../node_modules/@mui/x-date-pickers/YearCalendar/yearCalendarClasses.js","../node_modules/@mui/x-date-pickers/YearCalendar/YearCalendar.js","../node_modules/@mui/x-date-pickers/internals/components/PickersArrowSwitcher/pickersArrowSwitcherClasses.js","../node_modules/@mui/x-date-pickers/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js","../node_modules/@mui/x-date-pickers/PickersCalendarHeader/pickersCalendarHeaderClasses.js","../node_modules/@mui/x-date-pickers/PickersCalendarHeader/PickersCalendarHeader.js","../node_modules/@mui/x-date-pickers/internals/hooks/date-helpers-hooks.js","../node_modules/@mui/x-date-pickers/internals/components/PickerViewRoot/PickerViewRoot.js","../node_modules/@mui/x-date-pickers/DateCalendar/dateCalendarClasses.js","../node_modules/@mui/x-date-pickers/DateCalendar/DateCalendar.js","../node_modules/@mui/x-date-pickers/dateViewRenderers/dateViewRenderers.js","../node_modules/@mui/x-date-pickers/DesktopDatePicker/DesktopDatePicker.js","../node_modules/@mui/material/DialogContent/dialogContentClasses.js","../node_modules/@mui/material/DialogTitle/dialogTitleClasses.js","../node_modules/@mui/material/DialogContent/DialogContent.js","../node_modules/@mui/material/Dialog/dialogClasses.js","../node_modules/@mui/material/Dialog/DialogContext.js","../node_modules/@mui/material/Dialog/Dialog.js","../node_modules/@mui/x-date-pickers/internals/components/PickersModalDialog.js","../node_modules/@mui/x-date-pickers/internals/hooks/useMobilePicker/useMobilePicker.js","../node_modules/@mui/x-date-pickers/MobileDatePicker/MobileDatePicker.js","../node_modules/@mui/x-date-pickers/DatePicker/DatePicker.js","../node_modules/@mui/x-date-pickers/AdapterDayjs/AdapterDayjs.js","../node_modules/@mui/icons-material/esm/Search.js","components/BacktestingParameters.js","../node_modules/@mui/material/FormGroup/formGroupClasses.js","../node_modules/@mui/material/FormGroup/FormGroup.js","../node_modules/@mui/material/RadioGroup/radioGroupClasses.js","../node_modules/@mui/material/RadioGroup/RadioGroupContext.js","../node_modules/@mui/material/utils/useId.js","../node_modules/@mui/material/RadioGroup/RadioGroup.js","../node_modules/@mui/material/FormControlLabel/formControlLabelClasses.js","../node_modules/@mui/material/FormControlLabel/FormControlLabel.js","../node_modules/@mui/material/internal/switchBaseClasses.js","../node_modules/@mui/material/internal/SwitchBase.js","../node_modules/@mui/material/internal/svg-icons/RadioButtonUnchecked.js","../node_modules/@mui/material/internal/svg-icons/RadioButtonChecked.js","../node_modules/@mui/material/Radio/RadioButtonIcon.js","../node_modules/@mui/material/utils/createChainedFunction.js","../node_modules/@mui/material/Radio/radioClasses.js","../node_modules/@mui/material/Radio/Radio.js","../node_modules/@mui/material/RadioGroup/useRadioGroup.js","../node_modules/@mui/icons-material/esm/ExpandLess.js","../node_modules/@mui/icons-material/esm/ContentCopy.js","../node_modules/@mui/icons-material/esm/Delete.js","../node_modules/@mui/icons-material/esm/Add.js","../node_modules/@mui/icons-material/esm/DragIndicator.js","../node_modules/@mui/icons-material/esm/ArrowRight.js","components/FunctionBuilder.js","components/RuleComponent.js","components/RegimeFilter.js","components/StrategyBuilder.js","../node_modules/@mui/material/internal/svg-icons/ArrowDownward.js","../node_modules/@mui/material/TableSortLabel/tableSortLabelClasses.js","../node_modules/@mui/material/TableSortLabel/TableSortLabel.js","../node_modules/@mui/material/DialogTitle/DialogTitle.js","components/TradesTable.js","../node_modules/@mui/material/Switch/switchClasses.js","../node_modules/@mui/material/Switch/Switch.js","../node_modules/recharts/es6/util/DataUtils.js","../node_modules/recharts/es6/util/LogUtils.js","../node_modules/recharts/es6/util/ShallowEqual.js","../node_modules/recharts/es6/util/types.js","../node_modules/recharts/es6/util/ReactUtils.js","../node_modules/recharts/es6/component/ResponsiveContainer.js","../node_modules/tiny-invariant/dist/esm/tiny-invariant.js","../node_modules/recharts/es6/container/Surface.js","../node_modules/recharts/es6/container/Layer.js","../node_modules/recharts/es6/component/DefaultTooltipContent.js","../node_modules/recharts/es6/util/tooltip/translate.js","../node_modules/recharts/es6/component/TooltipBoundingBox.js","../node_modules/recharts/es6/util/Global.js","../node_modules/recharts/es6/util/payload/getUniqPayload.js","../node_modules/recharts/es6/component/Tooltip.js","../node_modules/d3-shape/src/math.js","../node_modules/d3-shape/src/symbol/circle.js","../node_modules/d3-shape/src/symbol/cross.js","../node_modules/d3-shape/src/symbol/diamond.js","../node_modules/d3-shape/src/symbol/square.js","../node_modules/d3-shape/src/symbol/star.js","../node_modules/d3-shape/src/symbol/triangle.js","../node_modules/d3-shape/src/symbol/wye.js","../node_modules/d3-shape/src/constant.js","../node_modules/d3-path/src/path.js","../node_modules/d3-shape/src/path.js","../node_modules/d3-shape/src/symbol/asterisk.js","../node_modules/d3-shape/src/symbol/triangle2.js","../node_modules/recharts/es6/shape/Symbols.js","../node_modules/d3-shape/src/symbol.js","../node_modules/recharts/es6/component/DefaultLegendContent.js","../node_modules/recharts/es6/component/Legend.js","../node_modules/recharts/es6/shape/Dot.js","../node_modules/fast-equals/src/utils.ts","../node_modules/fast-equals/src/equals.ts","../node_modules/fast-equals/src/comparator.ts","../node_modules/fast-equals/src/index.ts","../node_modules/react-smooth/es6/setRafTimeout.js","../node_modules/react-smooth/es6/AnimateManager.js","../node_modules/react-smooth/es6/util.js","../node_modules/react-smooth/es6/easing.js","../node_modules/react-smooth/es6/configUpdate.js","../node_modules/react-smooth/es6/Animate.js","../node_modules/react-smooth/es6/AnimateGroupChild.js","../node_modules/react-smooth/es6/AnimateGroup.js","../node_modules/react-smooth/es6/index.js","../node_modules/recharts/es6/shape/Rectangle.js","../node_modules/d3-scale/src/init.js","../node_modules/internmap/src/index.js","../node_modules/d3-scale/src/ordinal.js","../node_modules/d3-scale/src/band.js","../node_modules/d3-array/src/range.js","../node_modules/recharts/es6/util/DOMUtils.js","../node_modules/recharts/es6/util/ReduceCSSCalc.js","../node_modules/recharts/es6/component/Text.js","../node_modules/d3-array/src/ticks.js","../node_modules/d3-array/src/ascending.js","../node_modules/d3-array/src/descending.js","../node_modules/d3-array/src/bisector.js","../node_modules/d3-array/src/number.js","../node_modules/d3-array/src/bisect.js","../node_modules/d3-color/src/define.js","../node_modules/d3-color/src/color.js","../node_modules/d3-interpolate/src/basis.js","../node_modules/d3-interpolate/src/constant.js","../node_modules/d3-interpolate/src/color.js","../node_modules/d3-interpolate/src/rgb.js","../node_modules/d3-interpolate/src/basisClosed.js","../node_modules/d3-interpolate/src/array.js","../node_modules/d3-interpolate/src/date.js","../node_modules/d3-interpolate/src/number.js","../node_modules/d3-interpolate/src/object.js","../node_modules/d3-interpolate/src/string.js","../node_modules/d3-interpolate/src/numberArray.js","../node_modules/d3-interpolate/src/value.js","../node_modules/d3-interpolate/src/round.js","../node_modules/d3-scale/src/number.js","../node_modules/d3-scale/src/continuous.js","../node_modules/d3-scale/src/constant.js","../node_modules/d3-format/src/formatSpecifier.js","../node_modules/d3-format/src/formatPrefixAuto.js","../node_modules/d3-format/src/formatDecimal.js","../node_modules/d3-format/src/exponent.js","../node_modules/d3-format/src/formatRounded.js","../node_modules/d3-format/src/formatTypes.js","../node_modules/d3-format/src/identity.js","../node_modules/d3-format/src/locale.js","../node_modules/d3-format/src/defaultLocale.js","../node_modules/d3-format/src/formatGroup.js","../node_modules/d3-format/src/formatNumerals.js","../node_modules/d3-format/src/formatTrim.js","../node_modules/d3-scale/src/tickFormat.js","../node_modules/d3-format/src/precisionPrefix.js","../node_modules/d3-format/src/precisionRound.js","../node_modules/d3-format/src/precisionFixed.js","../node_modules/d3-scale/src/linear.js","../node_modules/d3-scale/src/identity.js","../node_modules/d3-scale/src/nice.js","../node_modules/d3-scale/src/log.js","../node_modules/d3-scale/src/symlog.js","../node_modules/d3-scale/src/pow.js","../node_modules/d3-scale/src/radial.js","../node_modules/d3-array/src/max.js","../node_modules/d3-array/src/min.js","../node_modules/d3-array/src/sort.js","../node_modules/d3-array/src/quickselect.js","../node_modules/d3-array/src/quantile.js","../node_modules/d3-scale/src/quantile.js","../node_modules/d3-scale/src/quantize.js","../node_modules/d3-scale/src/threshold.js","../node_modules/d3-time/src/duration.js","../node_modules/d3-time/src/interval.js","../node_modules/d3-time/src/millisecond.js","../node_modules/d3-time/src/second.js","../node_modules/d3-time/src/minute.js","../node_modules/d3-time/src/hour.js","../node_modules/d3-time/src/day.js","../node_modules/d3-time/src/week.js","../node_modules/d3-time/src/month.js","../node_modules/d3-time/src/year.js","../node_modules/d3-time/src/ticks.js","../node_modules/d3-time-format/src/locale.js","../node_modules/d3-time-format/src/defaultLocale.js","../node_modules/d3-scale/src/time.js","../node_modules/d3-scale/src/utcTime.js","../node_modules/d3-scale/src/sequential.js","../node_modules/d3-scale/src/sequentialQuantile.js","../node_modules/d3-scale/src/diverging.js","../node_modules/d3-interpolate/src/piecewise.js","../node_modules/d3-shape/src/offset/none.js","../node_modules/d3-shape/src/array.js","../node_modules/d3-shape/src/order/none.js","../node_modules/d3-shape/src/stack.js","../node_modules/recharts-scale/es6/util/utils.js","../node_modules/recharts-scale/es6/util/arithmetic.js","../node_modules/recharts-scale/es6/getNiceTickValues.js","../node_modules/recharts/es6/cartesian/ErrorBar.js","../node_modules/recharts/es6/util/getLegendProps.js","../node_modules/recharts/es6/util/ChartUtils.js","../node_modules/d3-shape/src/offset/expand.js","../node_modules/d3-shape/src/offset/silhouette.js","../node_modules/d3-shape/src/offset/wiggle.js","../node_modules/recharts/es6/util/CssPrefixUtils.js","../node_modules/recharts/es6/cartesian/Brush.js","../node_modules/recharts/es6/util/PolarUtils.js","../node_modules/recharts/es6/component/Label.js","../node_modules/recharts/es6/util/IfOverflowMatches.js","../node_modules/recharts/es6/component/Cell.js","../node_modules/recharts/es6/component/LabelList.js","../node_modules/recharts/es6/shape/Trapezoid.js","../node_modules/recharts/es6/shape/Sector.js","../node_modules/recharts/es6/util/ActiveShapeUtils.js","../node_modules/recharts/es6/util/BarUtils.js","../node_modules/recharts/es6/cartesian/Bar.js","../node_modules/recharts/es6/util/CartesianUtils.js","../node_modules/recharts/es6/cartesian/ReferenceDot.js","../node_modules/recharts/es6/util/calculateViewBox.js","../node_modules/recharts/es6/context/chartLayoutContext.js","../node_modules/recharts/es6/cartesian/ReferenceLine.js","../node_modules/recharts/es6/cartesian/ReferenceArea.js","../node_modules/recharts/es6/util/DetectReferenceElementsDomain.js","../node_modules/recharts/es6/util/Events.js","../node_modules/recharts/es6/chart/AccessibilityManager.js","../node_modules/d3-shape/src/noop.js","../node_modules/d3-shape/src/curve/basis.js","../node_modules/d3-shape/src/curve/basisClosed.js","../node_modules/d3-shape/src/curve/basisOpen.js","../node_modules/d3-shape/src/curve/bump.js","../node_modules/d3-shape/src/curve/linearClosed.js","../node_modules/d3-shape/src/curve/linear.js","../node_modules/d3-shape/src/curve/monotone.js","../node_modules/d3-shape/src/curve/natural.js","../node_modules/d3-shape/src/curve/step.js","../node_modules/d3-shape/src/point.js","../node_modules/d3-shape/src/line.js","../node_modules/d3-shape/src/area.js","../node_modules/recharts/es6/shape/Curve.js","../node_modules/recharts/es6/shape/Cross.js","../node_modules/recharts/es6/util/cursor/getRadialCursorPoints.js","../node_modules/recharts/es6/util/cursor/getCursorPoints.js","../node_modules/recharts/es6/component/Cursor.js","../node_modules/recharts/es6/util/cursor/getCursorRectangle.js","../node_modules/recharts/es6/chart/generateCategoricalChart.js","../node_modules/recharts/es6/util/isDomainSpecifiedByUser.js","../node_modules/recharts/es6/cartesian/Line.js","../node_modules/recharts/es6/util/getEveryNthWithCondition.js","../node_modules/recharts/es6/util/TickUtils.js","../node_modules/recharts/es6/cartesian/getTicks.js","../node_modules/recharts/es6/cartesian/getEquidistantTicks.js","../node_modules/recharts/es6/cartesian/CartesianAxis.js","../node_modules/recharts/es6/cartesian/XAxis.js","../node_modules/recharts/es6/cartesian/YAxis.js","../node_modules/recharts/es6/chart/LineChart.js","../node_modules/recharts/es6/cartesian/CartesianGrid.js","../node_modules/@mui/material/Card/cardClasses.js","../node_modules/@mui/material/Card/Card.js","../node_modules/@mui/material/CardContent/cardContentClasses.js","../node_modules/@mui/material/CardContent/CardContent.js","../node_modules/@mui/material/internal/svg-icons/CheckBoxOutlineBlank.js","../node_modules/@mui/material/internal/svg-icons/CheckBox.js","../node_modules/@mui/material/internal/svg-icons/IndeterminateCheckBox.js","../node_modules/@mui/material/Checkbox/checkboxClasses.js","../node_modules/@mui/material/Checkbox/Checkbox.js","components/EquityCurveChart.js","components/RollingSharpeChart.js","components/DrawdownChart.js","components/CollapsibleChart.js","../node_modules/@kurkle/color/dist/color.esm.js","../node_modules/chart.js/src/helpers/helpers.core.ts","../node_modules/chart.js/src/helpers/helpers.math.ts","../node_modules/chart.js/src/helpers/helpers.collection.ts","../node_modules/chart.js/src/helpers/helpers.extras.ts","../node_modules/chart.js/src/helpers/helpers.easing.ts","../node_modules/chart.js/src/helpers/helpers.color.ts","../node_modules/chart.js/src/core/core.animations.defaults.js","../node_modules/chart.js/src/helpers/helpers.intl.ts","../node_modules/chart.js/src/core/core.ticks.js","../node_modules/chart.js/src/core/core.defaults.js","../node_modules/chart.js/src/core/core.layouts.defaults.js","../node_modules/chart.js/src/core/core.scale.defaults.js","../node_modules/chart.js/src/helpers/helpers.canvas.ts","../node_modules/chart.js/src/helpers/helpers.options.ts","../node_modules/chart.js/src/helpers/helpers.config.ts","../node_modules/chart.js/src/helpers/helpers.curve.ts","../node_modules/chart.js/src/helpers/helpers.dom.ts","../node_modules/chart.js/src/helpers/helpers.interpolation.ts","../node_modules/chart.js/src/helpers/helpers.rtl.ts","../node_modules/chart.js/src/helpers/helpers.segment.js","../node_modules/chart.js/src/core/core.animator.js","../node_modules/chart.js/src/core/core.animation.js","../node_modules/chart.js/src/core/core.animations.js","../node_modules/chart.js/src/core/core.datasetController.js","../node_modules/chart.js/src/controllers/controller.bar.js","../node_modules/chart.js/src/controllers/controller.line.js","../node_modules/chart.js/src/core/core.adapters.ts","../node_modules/chart.js/src/core/core.interaction.js","../node_modules/chart.js/src/core/core.layouts.js","../node_modules/chart.js/src/platform/platform.base.js","../node_modules/chart.js/src/platform/platform.basic.js","../node_modules/chart.js/src/platform/platform.dom.js","../node_modules/chart.js/src/core/core.element.ts","../node_modules/chart.js/src/core/core.scale.autoskip.js","../node_modules/chart.js/src/core/core.scale.js","../node_modules/chart.js/src/core/core.typedRegistry.js","../node_modules/chart.js/src/core/core.registry.js","../node_modules/chart.js/src/core/core.plugins.js","../node_modules/chart.js/src/core/core.config.js","../node_modules/chart.js/src/core/core.controller.js","../node_modules/chart.js/src/platform/index.js","../node_modules/chart.js/src/elements/element.line.js","../node_modules/chart.js/src/elements/element.point.ts","../node_modules/chart.js/src/elements/element.bar.js","../node_modules/chart.js/src/plugins/plugin.legend.js","../node_modules/chart.js/src/plugins/plugin.title.js","../node_modules/chart.js/src/plugins/plugin.subtitle.js","../node_modules/chart.js/src/plugins/plugin.tooltip.js","../node_modules/chart.js/src/scales/scale.category.js","../node_modules/chart.js/src/scales/scale.linearbase.js","../node_modules/chart.js/src/scales/scale.linear.js","../node_modules/chart.js/src/scales/scale.logarithmic.js","../node_modules/chart.js/src/scales/scale.radialLinear.js","../node_modules/chart.js/src/scales/scale.time.js","../node_modules/react-chartjs-2/src/utils.ts","../node_modules/react-chartjs-2/src/chart.tsx","../node_modules/react-chartjs-2/src/typedCharts.tsx","../node_modules/@mui/material/internal/animate.js","../node_modules/@mui/material/Tabs/ScrollbarSize.js","../node_modules/@mui/material/internal/svg-icons/KeyboardArrowLeft.js","../node_modules/@mui/material/internal/svg-icons/KeyboardArrowRight.js","../node_modules/@mui/material/TabScrollButton/tabScrollButtonClasses.js","../node_modules/@mui/material/TabScrollButton/TabScrollButton.js","../node_modules/@mui/material/Tabs/tabsClasses.js","../node_modules/@mui/material/Tabs/Tabs.js","../node_modules/@mui/material/Tab/tabClasses.js","../node_modules/@mui/material/Tab/Tab.js","components/PriceSignalChart.js","components/ChartSystem.js","components/TradesHistogram.js","../node_modules/@mui/material/Alert/alertClasses.js","../node_modules/@mui/material/internal/svg-icons/SuccessOutlined.js","../node_modules/@mui/material/internal/svg-icons/ReportProblemOutlined.js","../node_modules/@mui/material/internal/svg-icons/ErrorOutline.js","../node_modules/@mui/material/internal/svg-icons/InfoOutlined.js","../node_modules/@mui/material/internal/svg-icons/Close.js","../node_modules/@mui/material/Alert/Alert.js","components/SaveBacktestDialog.js","../node_modules/@mui/material/CircularProgress/circularProgressClasses.js","../node_modules/@mui/material/CircularProgress/CircularProgress.js","../node_modules/@mui/material/ListItemText/ListItemText.js","../node_modules/@mui/icons-material/esm/PlayArrow.js","../node_modules/@mui/icons-material/esm/Close.js","components/config.js","components/MyBacktestsDialog.js","components/QuantiFiBacktestingLab.js","../node_modules/@mui/system/esm/styled/styled.js","../node_modules/@mui/system/esm/Container/createContainer.js","../node_modules/@mui/material/Container/Container.js","../node_modules/shared/src/utils.ts","../node_modules/lucide-react/src/defaultAttributes.ts","../node_modules/lucide-react/src/Icon.ts","../node_modules/lucide-react/src/createLucideIcon.ts","../node_modules/lucide-react/src/icons/user.ts","../node_modules/lucide-react/src/icons/lock.ts","../node_modules/lucide-react/src/icons/eye-off.ts","../node_modules/lucide-react/src/icons/eye.ts","../node_modules/lucide-react/src/icons/mail.ts","components/Auth.js","App.js","reportWebVitals.js","index.js"],"sourcesContent":["/**\n * @license React\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=Symbol.for(\"react.element\"),c=Symbol.for(\"react.portal\"),d=Symbol.for(\"react.fragment\"),e=Symbol.for(\"react.strict_mode\"),f=Symbol.for(\"react.profiler\"),g=Symbol.for(\"react.provider\"),h=Symbol.for(\"react.context\"),k=Symbol.for(\"react.server_context\"),l=Symbol.for(\"react.forward_ref\"),m=Symbol.for(\"react.suspense\"),n=Symbol.for(\"react.suspense_list\"),p=Symbol.for(\"react.memo\"),q=Symbol.for(\"react.lazy\"),t=Symbol.for(\"react.offscreen\"),u;u=Symbol.for(\"react.module.reference\");\nfunction v(a){if(\"object\"===typeof a&&null!==a){var r=a.$$typeof;switch(r){case b:switch(a=a.type,a){case d:case f:case e:case m:case n:return a;default:switch(a=a&&a.$$typeof,a){case k:case h:case l:case q:case p:case g:return a;default:return r}}case c:return r}}}exports.ContextConsumer=h;exports.ContextProvider=g;exports.Element=b;exports.ForwardRef=l;exports.Fragment=d;exports.Lazy=q;exports.Memo=p;exports.Portal=c;exports.Profiler=f;exports.StrictMode=e;exports.Suspense=m;\nexports.SuspenseList=n;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return v(a)===h};exports.isContextProvider=function(a){return v(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return v(a)===l};exports.isFragment=function(a){return v(a)===d};exports.isLazy=function(a){return v(a)===q};exports.isMemo=function(a){return v(a)===p};\nexports.isPortal=function(a){return v(a)===c};exports.isProfiler=function(a){return v(a)===f};exports.isStrictMode=function(a){return v(a)===e};exports.isSuspense=function(a){return v(a)===m};exports.isSuspenseList=function(a){return v(a)===n};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===e||a===m||a===n||a===t||\"object\"===typeof a&&null!==a&&(a.$$typeof===q||a.$$typeof===p||a.$$typeof===g||a.$$typeof===h||a.$$typeof===l||a.$$typeof===u||void 0!==a.getModuleId)?!0:!1};exports.typeOf=v;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)68?1900:2e3)};var f=function(e){return function(t){this[e]=+t}},h=[/[+-]\\d\\d:?(\\d\\d)?|Z/,function(e){(this.zone||(this.zone={})).offset=function(e){if(!e)return 0;if(\"Z\"===e)return 0;var t=e.match(/([+-]|\\d\\d)/g),n=60*t[1]+(+t[2]||0);return 0===n?0:\"+\"===t[0]?-n:n}(e)}],u=function(e){var t=s[e];return t&&(t.indexOf?t:t.s.concat(t.f))},d=function(e,t){var n,r=s.meridiem;if(r){for(var i=1;i<=24;i+=1)if(e.indexOf(r(i,0,t))>-1){n=i>12;break}}else n=e===(t?\"pm\":\"PM\");return n},c={A:[o,function(e){this.afternoon=d(e,!1)}],a:[o,function(e){this.afternoon=d(e,!0)}],Q:[n,function(e){this.month=3*(e-1)+1}],S:[n,function(e){this.milliseconds=100*+e}],SS:[r,function(e){this.milliseconds=10*+e}],SSS:[/\\d{3}/,function(e){this.milliseconds=+e}],s:[i,f(\"seconds\")],ss:[i,f(\"seconds\")],m:[i,f(\"minutes\")],mm:[i,f(\"minutes\")],H:[i,f(\"hours\")],h:[i,f(\"hours\")],HH:[i,f(\"hours\")],hh:[i,f(\"hours\")],D:[i,f(\"day\")],DD:[r,f(\"day\")],Do:[o,function(e){var t=s.ordinal,n=e.match(/\\d+/);if(this.day=n[0],t)for(var r=1;r<=31;r+=1)t(r).replace(/\\[|\\]/g,\"\")===e&&(this.day=r)}],w:[i,f(\"week\")],ww:[r,f(\"week\")],M:[i,f(\"month\")],MM:[r,f(\"month\")],MMM:[o,function(e){var t=u(\"months\"),n=(u(\"monthsShort\")||t.map((function(e){return e.slice(0,3)}))).indexOf(e)+1;if(n<1)throw new Error;this.month=n%12||n}],MMMM:[o,function(e){var t=u(\"months\").indexOf(e)+1;if(t<1)throw new Error;this.month=t%12||t}],Y:[/[+-]?\\d+/,f(\"year\")],YY:[r,function(e){this.year=a(e)}],YYYY:[/\\d{4}/,f(\"year\")],Z:h,ZZ:h};function l(n){var r,i;r=n,i=s&&s.formats;for(var o=(n=r.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var o=r&&r.toUpperCase();return n||i[r]||e[r]||i[o].replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,n){return t||n.slice(1)}))}))).match(t),a=o.length,f=0;f-1)return new Date((\"X\"===t?1e3:1)*e);var i=l(t)(e),o=i.year,s=i.month,a=i.day,f=i.hours,h=i.minutes,u=i.seconds,d=i.milliseconds,c=i.zone,m=i.week,M=new Date,Y=a||(o||s?1:M.getDate()),p=o||M.getFullYear(),v=0;o&&!s||(v=s>0?s-1:M.getMonth());var D,w=f||0,g=h||0,y=u||0,L=d||0;return c?new Date(Date.UTC(p,v,Y,w,g,y,L+60*c.offset*1e3)):n?new Date(Date.UTC(p,v,Y,w,g,y,L)):(D=new Date(p,v,Y,w,g,y,L),m&&(D=r(D).week(m).toDate()),D)}catch(e){return new Date(\"\")}}(t,a,r,n),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),u&&t!=this.format(a)&&(this.$d=new Date(\"\")),s={}}else if(a instanceof Array)for(var c=a.length,m=1;m<=c;m+=1){o[1]=a[m-1];var M=n.apply(this,o);if(M.isValid()){this.$d=M.$d,this.$L=M.$L,this.init();break}m===c&&(this.$d=new Date(\"\"))}else i.call(this,e)}}}));","!function(e,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isBetween=i()}(this,(function(){\"use strict\";return function(e,i,t){i.prototype.isBetween=function(e,i,s,f){var n=t(e),o=t(i),r=\"(\"===(f=f||\"()\")[0],u=\")\"===f[1];return(r?this.isAfter(n,s):!this.isBefore(n,s))&&(u?this.isBefore(o,s):!this.isAfter(o,s))||(r?this.isBefore(n,s):!this.isAfter(n,s))&&(u?this.isAfter(o,s):!this.isBefore(o,s))}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_localizedFormat=t()}(this,(function(){\"use strict\";var e={LTS:\"h:mm:ss A\",LT:\"h:mm A\",L:\"MM/DD/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"};return function(t,o,n){var r=o.prototype,i=r.format;n.en.formats=e,r.format=function(t){void 0===t&&(t=\"YYYY-MM-DDTHH:mm:ssZ\");var o=this.$locale().formats,n=function(t,o){return t.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var i=r&&r.toUpperCase();return n||o[r]||e[r]||o[i].replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,o){return t||o.slice(1)}))}))}(t,void 0===o?{}:o);return i.call(this,n)}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_weekOfYear=t()}(this,(function(){\"use strict\";var e=\"week\",t=\"year\";return function(i,n,r){var f=n.prototype;f.week=function(i){if(void 0===i&&(i=null),null!==i)return this.add(7*(i-this.week()),\"day\");var n=this.$locale().yearStart||1;if(11===this.month()&&this.date()>25){var f=r(this).startOf(t).add(1,t).date(n),s=r(this).endOf(e);if(f.isBefore(s))return 1}var a=r(this).startOf(t).date(n).startOf(e).subtract(1,\"millisecond\"),o=this.diff(a,e,!0);return o<0?r(this).startOf(\"week\").week():Math.ceil(o)},f.weeks=function(e){return void 0===e&&(e=null),this.week(e)}}}));","/*! decimal.js-light v2.5.1 https://github.com/MikeMcl/decimal.js-light/LICENCE */\r\n;(function (globalScope) {\r\n 'use strict';\r\n\r\n\r\n /*\r\n * decimal.js-light v2.5.1\r\n * An arbitrary-precision Decimal type for JavaScript.\r\n * https://github.com/MikeMcl/decimal.js-light\r\n * Copyright (c) 2020 Michael Mclaughlin \r\n * MIT Expat Licence\r\n */\r\n\r\n\r\n // ----------------------------------- EDITABLE DEFAULTS ------------------------------------ //\r\n\r\n\r\n // The limit on the value of `precision`, and on the value of the first argument to\r\n // `toDecimalPlaces`, `toExponential`, `toFixed`, `toPrecision` and `toSignificantDigits`.\r\n var MAX_DIGITS = 1e9, // 0 to 1e9\r\n\r\n\r\n // The initial configuration properties of the Decimal constructor.\r\n Decimal = {\r\n\r\n // These values must be integers within the stated ranges (inclusive).\r\n // Most of these values can be changed during run-time using `Decimal.config`.\r\n\r\n // The maximum number of significant digits of the result of a calculation or base conversion.\r\n // E.g. `Decimal.config({ precision: 20 });`\r\n precision: 20, // 1 to MAX_DIGITS\r\n\r\n // The rounding mode used by default by `toInteger`, `toDecimalPlaces`, `toExponential`,\r\n // `toFixed`, `toPrecision` and `toSignificantDigits`.\r\n //\r\n // ROUND_UP 0 Away from zero.\r\n // ROUND_DOWN 1 Towards zero.\r\n // ROUND_CEIL 2 Towards +Infinity.\r\n // ROUND_FLOOR 3 Towards -Infinity.\r\n // ROUND_HALF_UP 4 Towards nearest neighbour. If equidistant, up.\r\n // ROUND_HALF_DOWN 5 Towards nearest neighbour. If equidistant, down.\r\n // ROUND_HALF_EVEN 6 Towards nearest neighbour. If equidistant, towards even neighbour.\r\n // ROUND_HALF_CEIL 7 Towards nearest neighbour. If equidistant, towards +Infinity.\r\n // ROUND_HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.\r\n //\r\n // E.g.\r\n // `Decimal.rounding = 4;`\r\n // `Decimal.rounding = Decimal.ROUND_HALF_UP;`\r\n rounding: 4, // 0 to 8\r\n\r\n // The exponent value at and beneath which `toString` returns exponential notation.\r\n // JavaScript numbers: -7\r\n toExpNeg: -7, // 0 to -MAX_E\r\n\r\n // The exponent value at and above which `toString` returns exponential notation.\r\n // JavaScript numbers: 21\r\n toExpPos: 21, // 0 to MAX_E\r\n\r\n // The natural logarithm of 10.\r\n // 115 digits\r\n LN10: '2.302585092994045684017991454684364207601101488628772976033327900967572609677352480235997205089598298341967784042286'\r\n },\r\n\r\n\r\n // ----------------------------------- END OF EDITABLE DEFAULTS ------------------------------- //\r\n\r\n\r\n external = true,\r\n\r\n decimalError = '[DecimalError] ',\r\n invalidArgument = decimalError + 'Invalid argument: ',\r\n exponentOutOfRange = decimalError + 'Exponent out of range: ',\r\n\r\n mathfloor = Math.floor,\r\n mathpow = Math.pow,\r\n\r\n isDecimal = /^(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?$/i,\r\n\r\n ONE,\r\n BASE = 1e7,\r\n LOG_BASE = 7,\r\n MAX_SAFE_INTEGER = 9007199254740991,\r\n MAX_E = mathfloor(MAX_SAFE_INTEGER / LOG_BASE), // 1286742750677284\r\n\r\n // Decimal.prototype object\r\n P = {};\r\n\r\n\r\n // Decimal prototype methods\r\n\r\n\r\n /*\r\n * absoluteValue abs\r\n * comparedTo cmp\r\n * decimalPlaces dp\r\n * dividedBy div\r\n * dividedToIntegerBy idiv\r\n * equals eq\r\n * exponent\r\n * greaterThan gt\r\n * greaterThanOrEqualTo gte\r\n * isInteger isint\r\n * isNegative isneg\r\n * isPositive ispos\r\n * isZero\r\n * lessThan lt\r\n * lessThanOrEqualTo lte\r\n * logarithm log\r\n * minus sub\r\n * modulo mod\r\n * naturalExponential exp\r\n * naturalLogarithm ln\r\n * negated neg\r\n * plus add\r\n * precision sd\r\n * squareRoot sqrt\r\n * times mul\r\n * toDecimalPlaces todp\r\n * toExponential\r\n * toFixed\r\n * toInteger toint\r\n * toNumber\r\n * toPower pow\r\n * toPrecision\r\n * toSignificantDigits tosd\r\n * toString\r\n * valueOf val\r\n */\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the absolute value of this Decimal.\r\n *\r\n */\r\n P.absoluteValue = P.abs = function () {\r\n var x = new this.constructor(this);\r\n if (x.s) x.s = 1;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * Return\r\n * 1 if the value of this Decimal is greater than the value of `y`,\r\n * -1 if the value of this Decimal is less than the value of `y`,\r\n * 0 if they have the same value\r\n *\r\n */\r\n P.comparedTo = P.cmp = function (y) {\r\n var i, j, xdL, ydL,\r\n x = this;\r\n\r\n y = new x.constructor(y);\r\n\r\n // Signs differ?\r\n if (x.s !== y.s) return x.s || -y.s;\r\n\r\n // Compare exponents.\r\n if (x.e !== y.e) return x.e > y.e ^ x.s < 0 ? 1 : -1;\r\n\r\n xdL = x.d.length;\r\n ydL = y.d.length;\r\n\r\n // Compare digit by digit.\r\n for (i = 0, j = xdL < ydL ? xdL : ydL; i < j; ++i) {\r\n if (x.d[i] !== y.d[i]) return x.d[i] > y.d[i] ^ x.s < 0 ? 1 : -1;\r\n }\r\n\r\n // Compare lengths.\r\n return xdL === ydL ? 0 : xdL > ydL ^ x.s < 0 ? 1 : -1;\r\n };\r\n\r\n\r\n /*\r\n * Return the number of decimal places of the value of this Decimal.\r\n *\r\n */\r\n P.decimalPlaces = P.dp = function () {\r\n var x = this,\r\n w = x.d.length - 1,\r\n dp = (w - x.e) * LOG_BASE;\r\n\r\n // Subtract the number of trailing zeros of the last word.\r\n w = x.d[w];\r\n if (w) for (; w % 10 == 0; w /= 10) dp--;\r\n\r\n return dp < 0 ? 0 : dp;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal divided by `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.dividedBy = P.div = function (y) {\r\n return divide(this, new this.constructor(y));\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the integer part of dividing the value of this Decimal\r\n * by the value of `y`, truncated to `precision` significant digits.\r\n *\r\n */\r\n P.dividedToIntegerBy = P.idiv = function (y) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n return round(divide(x, new Ctor(y), 0, 1), Ctor.precision);\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is equal to the value of `y`, otherwise return false.\r\n *\r\n */\r\n P.equals = P.eq = function (y) {\r\n return !this.cmp(y);\r\n };\r\n\r\n\r\n /*\r\n * Return the (base 10) exponent value of this Decimal (this.e is the base 10000000 exponent).\r\n *\r\n */\r\n P.exponent = function () {\r\n return getBase10Exponent(this);\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is greater than the value of `y`, otherwise return\r\n * false.\r\n *\r\n */\r\n P.greaterThan = P.gt = function (y) {\r\n return this.cmp(y) > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is greater than or equal to the value of `y`,\r\n * otherwise return false.\r\n *\r\n */\r\n P.greaterThanOrEqualTo = P.gte = function (y) {\r\n return this.cmp(y) >= 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is an integer, otherwise return false.\r\n *\r\n */\r\n P.isInteger = P.isint = function () {\r\n return this.e > this.d.length - 2;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is negative, otherwise return false.\r\n *\r\n */\r\n P.isNegative = P.isneg = function () {\r\n return this.s < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is positive, otherwise return false.\r\n *\r\n */\r\n P.isPositive = P.ispos = function () {\r\n return this.s > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is 0, otherwise return false.\r\n *\r\n */\r\n P.isZero = function () {\r\n return this.s === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is less than `y`, otherwise return false.\r\n *\r\n */\r\n P.lessThan = P.lt = function (y) {\r\n return this.cmp(y) < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is less than or equal to `y`, otherwise return false.\r\n *\r\n */\r\n P.lessThanOrEqualTo = P.lte = function (y) {\r\n return this.cmp(y) < 1;\r\n };\r\n\r\n\r\n /*\r\n * Return the logarithm of the value of this Decimal to the specified base, truncated to\r\n * `precision` significant digits.\r\n *\r\n * If no base is specified, return log[10](x).\r\n *\r\n * log[base](x) = ln(x) / ln(base)\r\n *\r\n * The maximum error of the result is 1 ulp (unit in the last place).\r\n *\r\n * [base] {number|string|Decimal} The base of the logarithm.\r\n *\r\n */\r\n P.logarithm = P.log = function (base) {\r\n var r,\r\n x = this,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision,\r\n wpr = pr + 5;\r\n\r\n // Default base is 10.\r\n if (base === void 0) {\r\n base = new Ctor(10);\r\n } else {\r\n base = new Ctor(base);\r\n\r\n // log[-b](x) = NaN\r\n // log[0](x) = NaN\r\n // log[1](x) = NaN\r\n if (base.s < 1 || base.eq(ONE)) throw Error(decimalError + 'NaN');\r\n }\r\n\r\n // log[b](-x) = NaN\r\n // log[b](0) = -Infinity\r\n if (x.s < 1) throw Error(decimalError + (x.s ? 'NaN' : '-Infinity'));\r\n\r\n // log[b](1) = 0\r\n if (x.eq(ONE)) return new Ctor(0);\r\n\r\n external = false;\r\n r = divide(ln(x, wpr), ln(base, wpr), wpr);\r\n external = true;\r\n\r\n return round(r, pr);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal minus `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.minus = P.sub = function (y) {\r\n var x = this;\r\n y = new x.constructor(y);\r\n return x.s == y.s ? subtract(x, y) : add(x, (y.s = -y.s, y));\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal modulo `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.modulo = P.mod = function (y) {\r\n var q,\r\n x = this,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n y = new Ctor(y);\r\n\r\n // x % 0 = NaN\r\n if (!y.s) throw Error(decimalError + 'NaN');\r\n\r\n // Return x if x is 0.\r\n if (!x.s) return round(new Ctor(x), pr);\r\n\r\n // Prevent rounding of intermediate calculations.\r\n external = false;\r\n q = divide(x, y, 0, 1).times(y);\r\n external = true;\r\n\r\n return x.minus(q);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural exponential of the value of this Decimal,\r\n * i.e. the base e raised to the power the value of this Decimal, truncated to `precision`\r\n * significant digits.\r\n *\r\n */\r\n P.naturalExponential = P.exp = function () {\r\n return exp(this);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural logarithm of the value of this Decimal,\r\n * truncated to `precision` significant digits.\r\n *\r\n */\r\n P.naturalLogarithm = P.ln = function () {\r\n return ln(this);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal negated, i.e. as if multiplied by\r\n * -1.\r\n *\r\n */\r\n P.negated = P.neg = function () {\r\n var x = new this.constructor(this);\r\n x.s = -x.s || 0;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal plus `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.plus = P.add = function (y) {\r\n var x = this;\r\n y = new x.constructor(y);\r\n return x.s == y.s ? add(x, y) : subtract(x, (y.s = -y.s, y));\r\n };\r\n\r\n\r\n /*\r\n * Return the number of significant digits of the value of this Decimal.\r\n *\r\n * [z] {boolean|number} Whether to count integer-part trailing zeros: true, false, 1 or 0.\r\n *\r\n */\r\n P.precision = P.sd = function (z) {\r\n var e, sd, w,\r\n x = this;\r\n\r\n if (z !== void 0 && z !== !!z && z !== 1 && z !== 0) throw Error(invalidArgument + z);\r\n\r\n e = getBase10Exponent(x) + 1;\r\n w = x.d.length - 1;\r\n sd = w * LOG_BASE + 1;\r\n w = x.d[w];\r\n\r\n // If non-zero...\r\n if (w) {\r\n\r\n // Subtract the number of trailing zeros of the last word.\r\n for (; w % 10 == 0; w /= 10) sd--;\r\n\r\n // Add the number of digits of the first word.\r\n for (w = x.d[0]; w >= 10; w /= 10) sd++;\r\n }\r\n\r\n return z && e > sd ? e : sd;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the square root of this Decimal, truncated to `precision`\r\n * significant digits.\r\n *\r\n */\r\n P.squareRoot = P.sqrt = function () {\r\n var e, n, pr, r, s, t, wpr,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n // Negative or zero?\r\n if (x.s < 1) {\r\n if (!x.s) return new Ctor(0);\r\n\r\n // sqrt(-x) = NaN\r\n throw Error(decimalError + 'NaN');\r\n }\r\n\r\n e = getBase10Exponent(x);\r\n external = false;\r\n\r\n // Initial estimate.\r\n s = Math.sqrt(+x);\r\n\r\n // Math.sqrt underflow/overflow?\r\n // Pass x to Math.sqrt as integer, then adjust the exponent of the result.\r\n if (s == 0 || s == 1 / 0) {\r\n n = digitsToString(x.d);\r\n if ((n.length + e) % 2 == 0) n += '0';\r\n s = Math.sqrt(n);\r\n e = mathfloor((e + 1) / 2) - (e < 0 || e % 2);\r\n\r\n if (s == 1 / 0) {\r\n n = '5e' + e;\r\n } else {\r\n n = s.toExponential();\r\n n = n.slice(0, n.indexOf('e') + 1) + e;\r\n }\r\n\r\n r = new Ctor(n);\r\n } else {\r\n r = new Ctor(s.toString());\r\n }\r\n\r\n pr = Ctor.precision;\r\n s = wpr = pr + 3;\r\n\r\n // Newton-Raphson iteration.\r\n for (;;) {\r\n t = r;\r\n r = t.plus(divide(x, t, wpr + 2)).times(0.5);\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === (n = digitsToString(r.d)).slice(0, wpr)) {\r\n n = n.slice(wpr - 3, wpr + 1);\r\n\r\n // The 4th rounding digit may be in error by -1 so if the 4 rounding digits are 9999 or\r\n // 4999, i.e. approaching a rounding boundary, continue the iteration.\r\n if (s == wpr && n == '4999') {\r\n\r\n // On the first iteration only, check to see if rounding up gives the exact result as the\r\n // nines may infinitely repeat.\r\n round(t, pr + 1, 0);\r\n\r\n if (t.times(t).eq(x)) {\r\n r = t;\r\n break;\r\n }\r\n } else if (n != '9999') {\r\n break;\r\n }\r\n\r\n wpr += 4;\r\n }\r\n }\r\n\r\n external = true;\r\n\r\n return round(r, pr);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal times `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.times = P.mul = function (y) {\r\n var carry, e, i, k, r, rL, t, xdL, ydL,\r\n x = this,\r\n Ctor = x.constructor,\r\n xd = x.d,\r\n yd = (y = new Ctor(y)).d;\r\n\r\n // Return 0 if either is 0.\r\n if (!x.s || !y.s) return new Ctor(0);\r\n\r\n y.s *= x.s;\r\n e = x.e + y.e;\r\n xdL = xd.length;\r\n ydL = yd.length;\r\n\r\n // Ensure xd points to the longer array.\r\n if (xdL < ydL) {\r\n r = xd;\r\n xd = yd;\r\n yd = r;\r\n rL = xdL;\r\n xdL = ydL;\r\n ydL = rL;\r\n }\r\n\r\n // Initialise the result array with zeros.\r\n r = [];\r\n rL = xdL + ydL;\r\n for (i = rL; i--;) r.push(0);\r\n\r\n // Multiply!\r\n for (i = ydL; --i >= 0;) {\r\n carry = 0;\r\n for (k = xdL + i; k > i;) {\r\n t = r[k] + yd[i] * xd[k - i - 1] + carry;\r\n r[k--] = t % BASE | 0;\r\n carry = t / BASE | 0;\r\n }\r\n\r\n r[k] = (r[k] + carry) % BASE | 0;\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (; !r[--rL];) r.pop();\r\n\r\n if (carry) ++e;\r\n else r.shift();\r\n\r\n y.d = r;\r\n y.e = e;\r\n\r\n return external ? round(y, Ctor.precision) : y;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `dp`\r\n * decimal places using rounding mode `rm` or `rounding` if `rm` is omitted.\r\n *\r\n * If `dp` is omitted, return a new Decimal whose value is the value of this Decimal.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toDecimalPlaces = P.todp = function (dp, rm) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n x = new Ctor(x);\r\n if (dp === void 0) return x;\r\n\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n return round(x, dp + getBase10Exponent(x) + 1, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal in exponential notation rounded to\r\n * `dp` fixed decimal places using rounding mode `rounding`.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toExponential = function (dp, rm) {\r\n var str,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (dp === void 0) {\r\n str = toString(x, true);\r\n } else {\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n x = round(new Ctor(x), dp + 1, rm);\r\n str = toString(x, true, dp + 1);\r\n }\r\n\r\n return str;\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal in normal (fixed-point) notation to\r\n * `dp` fixed decimal places and rounded using rounding mode `rm` or `rounding` if `rm` is\r\n * omitted.\r\n *\r\n * As with JavaScript numbers, (-0).toFixed(0) is '0', but e.g. (-0.00001).toFixed(0) is '-0'.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * (-0).toFixed(0) is '0', but (-0.1).toFixed(0) is '-0'.\r\n * (-0).toFixed(1) is '0.0', but (-0.01).toFixed(1) is '-0.0'.\r\n * (-0).toFixed(3) is '0.000'.\r\n * (-0.5).toFixed(0) is '-0'.\r\n *\r\n */\r\n P.toFixed = function (dp, rm) {\r\n var str, y,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (dp === void 0) return toString(x);\r\n\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n y = round(new Ctor(x), dp + getBase10Exponent(x) + 1, rm);\r\n str = toString(y.abs(), false, dp + getBase10Exponent(y) + 1);\r\n\r\n // To determine whether to add the minus sign look at the value before it was rounded,\r\n // i.e. look at `x` rather than `y`.\r\n return x.isneg() && !x.isZero() ? '-' + str : str;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a whole number using\r\n * rounding mode `rounding`.\r\n *\r\n */\r\n P.toInteger = P.toint = function () {\r\n var x = this,\r\n Ctor = x.constructor;\r\n return round(new Ctor(x), getBase10Exponent(x) + 1, Ctor.rounding);\r\n };\r\n\r\n\r\n /*\r\n * Return the value of this Decimal converted to a number primitive.\r\n *\r\n */\r\n P.toNumber = function () {\r\n return +this;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal raised to the power `y`,\r\n * truncated to `precision` significant digits.\r\n *\r\n * For non-integer or very large exponents pow(x, y) is calculated using\r\n *\r\n * x^y = exp(y*ln(x))\r\n *\r\n * The maximum error is 1 ulp (unit in last place).\r\n *\r\n * y {number|string|Decimal} The power to which to raise this Decimal.\r\n *\r\n */\r\n P.toPower = P.pow = function (y) {\r\n var e, k, pr, r, sign, yIsInt,\r\n x = this,\r\n Ctor = x.constructor,\r\n guard = 12,\r\n yn = +(y = new Ctor(y));\r\n\r\n // pow(x, 0) = 1\r\n if (!y.s) return new Ctor(ONE);\r\n\r\n x = new Ctor(x);\r\n\r\n // pow(0, y > 0) = 0\r\n // pow(0, y < 0) = Infinity\r\n if (!x.s) {\r\n if (y.s < 1) throw Error(decimalError + 'Infinity');\r\n return x;\r\n }\r\n\r\n // pow(1, y) = 1\r\n if (x.eq(ONE)) return x;\r\n\r\n pr = Ctor.precision;\r\n\r\n // pow(x, 1) = x\r\n if (y.eq(ONE)) return round(x, pr);\r\n\r\n e = y.e;\r\n k = y.d.length - 1;\r\n yIsInt = e >= k;\r\n sign = x.s;\r\n\r\n if (!yIsInt) {\r\n\r\n // pow(x < 0, y non-integer) = NaN\r\n if (sign < 0) throw Error(decimalError + 'NaN');\r\n\r\n // If y is a small integer use the 'exponentiation by squaring' algorithm.\r\n } else if ((k = yn < 0 ? -yn : yn) <= MAX_SAFE_INTEGER) {\r\n r = new Ctor(ONE);\r\n\r\n // Max k of 9007199254740991 takes 53 loop iterations.\r\n // Maximum digits array length; leaves [28, 34] guard digits.\r\n e = Math.ceil(pr / LOG_BASE + 4);\r\n\r\n external = false;\r\n\r\n for (;;) {\r\n if (k % 2) {\r\n r = r.times(x);\r\n truncate(r.d, e);\r\n }\r\n\r\n k = mathfloor(k / 2);\r\n if (k === 0) break;\r\n\r\n x = x.times(x);\r\n truncate(x.d, e);\r\n }\r\n\r\n external = true;\r\n\r\n return y.s < 0 ? new Ctor(ONE).div(r) : round(r, pr);\r\n }\r\n\r\n // Result is negative if x is negative and the last digit of integer y is odd.\r\n sign = sign < 0 && y.d[Math.max(e, k)] & 1 ? -1 : 1;\r\n\r\n x.s = 1;\r\n external = false;\r\n r = y.times(ln(x, pr + guard));\r\n external = true;\r\n r = exp(r);\r\n r.s = sign;\r\n\r\n return r;\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal rounded to `sd` significant digits\r\n * using rounding mode `rounding`.\r\n *\r\n * Return exponential notation if `sd` is less than the number of digits necessary to represent\r\n * the integer part of the value in normal notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toPrecision = function (sd, rm) {\r\n var e, str,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (sd === void 0) {\r\n e = getBase10Exponent(x);\r\n str = toString(x, e <= Ctor.toExpNeg || e >= Ctor.toExpPos);\r\n } else {\r\n checkInt32(sd, 1, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n x = round(new Ctor(x), sd, rm);\r\n e = getBase10Exponent(x);\r\n str = toString(x, sd <= e || e <= Ctor.toExpNeg, sd);\r\n }\r\n\r\n return str;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `sd`\r\n * significant digits using rounding mode `rm`, or to `precision` and `rounding` respectively if\r\n * omitted.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toSignificantDigits = P.tosd = function (sd, rm) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n if (sd === void 0) {\r\n sd = Ctor.precision;\r\n rm = Ctor.rounding;\r\n } else {\r\n checkInt32(sd, 1, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n }\r\n\r\n return round(new Ctor(x), sd, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal.\r\n *\r\n * Return exponential notation if this Decimal has a positive exponent equal to or greater than\r\n * `toExpPos`, or a negative exponent equal to or less than `toExpNeg`.\r\n *\r\n */\r\n P.toString = P.valueOf = P.val = P.toJSON = function () {\r\n var x = this,\r\n e = getBase10Exponent(x),\r\n Ctor = x.constructor;\r\n\r\n return toString(x, e <= Ctor.toExpNeg || e >= Ctor.toExpPos);\r\n };\r\n\r\n\r\n // Helper functions for Decimal.prototype (P) and/or Decimal methods, and their callers.\r\n\r\n\r\n /*\r\n * add P.minus, P.plus\r\n * checkInt32 P.todp, P.toExponential, P.toFixed, P.toPrecision, P.tosd\r\n * digitsToString P.log, P.sqrt, P.pow, toString, exp, ln\r\n * divide P.div, P.idiv, P.log, P.mod, P.sqrt, exp, ln\r\n * exp P.exp, P.pow\r\n * getBase10Exponent P.exponent, P.sd, P.toint, P.sqrt, P.todp, P.toFixed, P.toPrecision,\r\n * P.toString, divide, round, toString, exp, ln\r\n * getLn10 P.log, ln\r\n * getZeroString digitsToString, toString\r\n * ln P.log, P.ln, P.pow, exp\r\n * parseDecimal Decimal\r\n * round P.abs, P.idiv, P.log, P.minus, P.mod, P.neg, P.plus, P.toint, P.sqrt,\r\n * P.times, P.todp, P.toExponential, P.toFixed, P.pow, P.toPrecision, P.tosd,\r\n * divide, getLn10, exp, ln\r\n * subtract P.minus, P.plus\r\n * toString P.toExponential, P.toFixed, P.toPrecision, P.toString, P.valueOf\r\n * truncate P.pow\r\n *\r\n * Throws: P.log, P.mod, P.sd, P.sqrt, P.pow, checkInt32, divide, round,\r\n * getLn10, exp, ln, parseDecimal, Decimal, config\r\n */\r\n\r\n\r\n function add(x, y) {\r\n var carry, d, e, i, k, len, xd, yd,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n // If either is zero...\r\n if (!x.s || !y.s) {\r\n\r\n // Return x if y is zero.\r\n // Return y if y is non-zero.\r\n if (!y.s) y = new Ctor(x);\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n xd = x.d;\r\n yd = y.d;\r\n\r\n // x and y are finite, non-zero numbers with the same sign.\r\n\r\n k = x.e;\r\n e = y.e;\r\n xd = xd.slice();\r\n i = k - e;\r\n\r\n // If base 1e7 exponents differ...\r\n if (i) {\r\n if (i < 0) {\r\n d = xd;\r\n i = -i;\r\n len = yd.length;\r\n } else {\r\n d = yd;\r\n e = k;\r\n len = xd.length;\r\n }\r\n\r\n // Limit number of zeros prepended to max(ceil(pr / LOG_BASE), len) + 1.\r\n k = Math.ceil(pr / LOG_BASE);\r\n len = k > len ? k + 1 : len + 1;\r\n\r\n if (i > len) {\r\n i = len;\r\n d.length = 1;\r\n }\r\n\r\n // Prepend zeros to equalise exponents. Note: Faster to use reverse then do unshifts.\r\n d.reverse();\r\n for (; i--;) d.push(0);\r\n d.reverse();\r\n }\r\n\r\n len = xd.length;\r\n i = yd.length;\r\n\r\n // If yd is longer than xd, swap xd and yd so xd points to the longer array.\r\n if (len - i < 0) {\r\n i = len;\r\n d = yd;\r\n yd = xd;\r\n xd = d;\r\n }\r\n\r\n // Only start adding at yd.length - 1 as the further digits of xd can be left as they are.\r\n for (carry = 0; i;) {\r\n carry = (xd[--i] = xd[i] + yd[i] + carry) / BASE | 0;\r\n xd[i] %= BASE;\r\n }\r\n\r\n if (carry) {\r\n xd.unshift(carry);\r\n ++e;\r\n }\r\n\r\n // Remove trailing zeros.\r\n // No need to check for zero, as +x + +y != 0 && -x + -y != 0\r\n for (len = xd.length; xd[--len] == 0;) xd.pop();\r\n\r\n y.d = xd;\r\n y.e = e;\r\n\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n\r\n function checkInt32(i, min, max) {\r\n if (i !== ~~i || i < min || i > max) {\r\n throw Error(invalidArgument + i);\r\n }\r\n }\r\n\r\n\r\n function digitsToString(d) {\r\n var i, k, ws,\r\n indexOfLastWord = d.length - 1,\r\n str = '',\r\n w = d[0];\r\n\r\n if (indexOfLastWord > 0) {\r\n str += w;\r\n for (i = 1; i < indexOfLastWord; i++) {\r\n ws = d[i] + '';\r\n k = LOG_BASE - ws.length;\r\n if (k) str += getZeroString(k);\r\n str += ws;\r\n }\r\n\r\n w = d[i];\r\n ws = w + '';\r\n k = LOG_BASE - ws.length;\r\n if (k) str += getZeroString(k);\r\n } else if (w === 0) {\r\n return '0';\r\n }\r\n\r\n // Remove trailing zeros of last w.\r\n for (; w % 10 === 0;) w /= 10;\r\n\r\n return str + w;\r\n }\r\n\r\n\r\n var divide = (function () {\r\n\r\n // Assumes non-zero x and k, and hence non-zero result.\r\n function multiplyInteger(x, k) {\r\n var temp,\r\n carry = 0,\r\n i = x.length;\r\n\r\n for (x = x.slice(); i--;) {\r\n temp = x[i] * k + carry;\r\n x[i] = temp % BASE | 0;\r\n carry = temp / BASE | 0;\r\n }\r\n\r\n if (carry) x.unshift(carry);\r\n\r\n return x;\r\n }\r\n\r\n function compare(a, b, aL, bL) {\r\n var i, r;\r\n\r\n if (aL != bL) {\r\n r = aL > bL ? 1 : -1;\r\n } else {\r\n for (i = r = 0; i < aL; i++) {\r\n if (a[i] != b[i]) {\r\n r = a[i] > b[i] ? 1 : -1;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return r;\r\n }\r\n\r\n function subtract(a, b, aL) {\r\n var i = 0;\r\n\r\n // Subtract b from a.\r\n for (; aL--;) {\r\n a[aL] -= i;\r\n i = a[aL] < b[aL] ? 1 : 0;\r\n a[aL] = i * BASE + a[aL] - b[aL];\r\n }\r\n\r\n // Remove leading zeros.\r\n for (; !a[0] && a.length > 1;) a.shift();\r\n }\r\n\r\n return function (x, y, pr, dp) {\r\n var cmp, e, i, k, prod, prodL, q, qd, rem, remL, rem0, sd, t, xi, xL, yd0, yL, yz,\r\n Ctor = x.constructor,\r\n sign = x.s == y.s ? 1 : -1,\r\n xd = x.d,\r\n yd = y.d;\r\n\r\n // Either 0?\r\n if (!x.s) return new Ctor(x);\r\n if (!y.s) throw Error(decimalError + 'Division by zero');\r\n\r\n e = x.e - y.e;\r\n yL = yd.length;\r\n xL = xd.length;\r\n q = new Ctor(sign);\r\n qd = q.d = [];\r\n\r\n // Result exponent may be one less than e.\r\n for (i = 0; yd[i] == (xd[i] || 0); ) ++i;\r\n if (yd[i] > (xd[i] || 0)) --e;\r\n\r\n if (pr == null) {\r\n sd = pr = Ctor.precision;\r\n } else if (dp) {\r\n sd = pr + (getBase10Exponent(x) - getBase10Exponent(y)) + 1;\r\n } else {\r\n sd = pr;\r\n }\r\n\r\n if (sd < 0) return new Ctor(0);\r\n\r\n // Convert precision in number of base 10 digits to base 1e7 digits.\r\n sd = sd / LOG_BASE + 2 | 0;\r\n i = 0;\r\n\r\n // divisor < 1e7\r\n if (yL == 1) {\r\n k = 0;\r\n yd = yd[0];\r\n sd++;\r\n\r\n // k is the carry.\r\n for (; (i < xL || k) && sd--; i++) {\r\n t = k * BASE + (xd[i] || 0);\r\n qd[i] = t / yd | 0;\r\n k = t % yd | 0;\r\n }\r\n\r\n // divisor >= 1e7\r\n } else {\r\n\r\n // Normalise xd and yd so highest order digit of yd is >= BASE/2\r\n k = BASE / (yd[0] + 1) | 0;\r\n\r\n if (k > 1) {\r\n yd = multiplyInteger(yd, k);\r\n xd = multiplyInteger(xd, k);\r\n yL = yd.length;\r\n xL = xd.length;\r\n }\r\n\r\n xi = yL;\r\n rem = xd.slice(0, yL);\r\n remL = rem.length;\r\n\r\n // Add zeros to make remainder as long as divisor.\r\n for (; remL < yL;) rem[remL++] = 0;\r\n\r\n yz = yd.slice();\r\n yz.unshift(0);\r\n yd0 = yd[0];\r\n\r\n if (yd[1] >= BASE / 2) ++yd0;\r\n\r\n do {\r\n k = 0;\r\n\r\n // Compare divisor and remainder.\r\n cmp = compare(yd, rem, yL, remL);\r\n\r\n // If divisor < remainder.\r\n if (cmp < 0) {\r\n\r\n // Calculate trial digit, k.\r\n rem0 = rem[0];\r\n if (yL != remL) rem0 = rem0 * BASE + (rem[1] || 0);\r\n\r\n // k will be how many times the divisor goes into the current remainder.\r\n k = rem0 / yd0 | 0;\r\n\r\n // Algorithm:\r\n // 1. product = divisor * trial digit (k)\r\n // 2. if product > remainder: product -= divisor, k--\r\n // 3. remainder -= product\r\n // 4. if product was < remainder at 2:\r\n // 5. compare new remainder and divisor\r\n // 6. If remainder > divisor: remainder -= divisor, k++\r\n\r\n if (k > 1) {\r\n if (k >= BASE) k = BASE - 1;\r\n\r\n // product = divisor * trial digit.\r\n prod = multiplyInteger(yd, k);\r\n prodL = prod.length;\r\n remL = rem.length;\r\n\r\n // Compare product and remainder.\r\n cmp = compare(prod, rem, prodL, remL);\r\n\r\n // product > remainder.\r\n if (cmp == 1) {\r\n k--;\r\n\r\n // Subtract divisor from product.\r\n subtract(prod, yL < prodL ? yz : yd, prodL);\r\n }\r\n } else {\r\n\r\n // cmp is -1.\r\n // If k is 0, there is no need to compare yd and rem again below, so change cmp to 1\r\n // to avoid it. If k is 1 there is a need to compare yd and rem again below.\r\n if (k == 0) cmp = k = 1;\r\n prod = yd.slice();\r\n }\r\n\r\n prodL = prod.length;\r\n if (prodL < remL) prod.unshift(0);\r\n\r\n // Subtract product from remainder.\r\n subtract(rem, prod, remL);\r\n\r\n // If product was < previous remainder.\r\n if (cmp == -1) {\r\n remL = rem.length;\r\n\r\n // Compare divisor and new remainder.\r\n cmp = compare(yd, rem, yL, remL);\r\n\r\n // If divisor < new remainder, subtract divisor from remainder.\r\n if (cmp < 1) {\r\n k++;\r\n\r\n // Subtract divisor from remainder.\r\n subtract(rem, yL < remL ? yz : yd, remL);\r\n }\r\n }\r\n\r\n remL = rem.length;\r\n } else if (cmp === 0) {\r\n k++;\r\n rem = [0];\r\n } // if cmp === 1, k will be 0\r\n\r\n // Add the next digit, k, to the result array.\r\n qd[i++] = k;\r\n\r\n // Update the remainder.\r\n if (cmp && rem[0]) {\r\n rem[remL++] = xd[xi] || 0;\r\n } else {\r\n rem = [xd[xi]];\r\n remL = 1;\r\n }\r\n\r\n } while ((xi++ < xL || rem[0] !== void 0) && sd--);\r\n }\r\n\r\n // Leading zero?\r\n if (!qd[0]) qd.shift();\r\n\r\n q.e = e;\r\n\r\n return round(q, dp ? pr + getBase10Exponent(q) + 1 : pr);\r\n };\r\n })();\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural exponential of `x` truncated to `sd`\r\n * significant digits.\r\n *\r\n * Taylor/Maclaurin series.\r\n *\r\n * exp(x) = x^0/0! + x^1/1! + x^2/2! + x^3/3! + ...\r\n *\r\n * Argument reduction:\r\n * Repeat x = x / 32, k += 5, until |x| < 0.1\r\n * exp(x) = exp(x / 2^k)^(2^k)\r\n *\r\n * Previously, the argument was initially reduced by\r\n * exp(x) = exp(r) * 10^k where r = x - k * ln10, k = floor(x / ln10)\r\n * to first put r in the range [0, ln10], before dividing by 32 until |x| < 0.1, but this was\r\n * found to be slower than just dividing repeatedly by 32 as above.\r\n *\r\n * (Math object integer min/max: Math.exp(709) = 8.2e+307, Math.exp(-745) = 5e-324)\r\n *\r\n * exp(x) is non-terminating for any finite, non-zero x.\r\n *\r\n */\r\n function exp(x, sd) {\r\n var denominator, guard, pow, sum, t, wpr,\r\n i = 0,\r\n k = 0,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n if (getBase10Exponent(x) > 16) throw Error(exponentOutOfRange + getBase10Exponent(x));\r\n\r\n // exp(0) = 1\r\n if (!x.s) return new Ctor(ONE);\r\n\r\n if (sd == null) {\r\n external = false;\r\n wpr = pr;\r\n } else {\r\n wpr = sd;\r\n }\r\n\r\n t = new Ctor(0.03125);\r\n\r\n while (x.abs().gte(0.1)) {\r\n x = x.times(t); // x = x / 2^5\r\n k += 5;\r\n }\r\n\r\n // Estimate the precision increase necessary to ensure the first 4 rounding digits are correct.\r\n guard = Math.log(mathpow(2, k)) / Math.LN10 * 2 + 5 | 0;\r\n wpr += guard;\r\n denominator = pow = sum = new Ctor(ONE);\r\n Ctor.precision = wpr;\r\n\r\n for (;;) {\r\n pow = round(pow.times(x), wpr);\r\n denominator = denominator.times(++i);\r\n t = sum.plus(divide(pow, denominator, wpr));\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {\r\n while (k--) sum = round(sum.times(sum), wpr);\r\n Ctor.precision = pr;\r\n return sd == null ? (external = true, round(sum, pr)) : sum;\r\n }\r\n\r\n sum = t;\r\n }\r\n }\r\n\r\n\r\n // Calculate the base 10 exponent from the base 1e7 exponent.\r\n function getBase10Exponent(x) {\r\n var e = x.e * LOG_BASE,\r\n w = x.d[0];\r\n\r\n // Add the number of digits of the first word of the digits array.\r\n for (; w >= 10; w /= 10) e++;\r\n return e;\r\n }\r\n\r\n\r\n function getLn10(Ctor, sd, pr) {\r\n\r\n if (sd > Ctor.LN10.sd()) {\r\n\r\n\r\n // Reset global state in case the exception is caught.\r\n external = true;\r\n if (pr) Ctor.precision = pr;\r\n throw Error(decimalError + 'LN10 precision limit exceeded');\r\n }\r\n\r\n return round(new Ctor(Ctor.LN10), sd);\r\n }\r\n\r\n\r\n function getZeroString(k) {\r\n var zs = '';\r\n for (; k--;) zs += '0';\r\n return zs;\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural logarithm of `x` truncated to `sd` significant\r\n * digits.\r\n *\r\n * ln(n) is non-terminating (n != 1)\r\n *\r\n */\r\n function ln(y, sd) {\r\n var c, c0, denominator, e, numerator, sum, t, wpr, x2,\r\n n = 1,\r\n guard = 10,\r\n x = y,\r\n xd = x.d,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n // ln(-x) = NaN\r\n // ln(0) = -Infinity\r\n if (x.s < 1) throw Error(decimalError + (x.s ? 'NaN' : '-Infinity'));\r\n\r\n // ln(1) = 0\r\n if (x.eq(ONE)) return new Ctor(0);\r\n\r\n if (sd == null) {\r\n external = false;\r\n wpr = pr;\r\n } else {\r\n wpr = sd;\r\n }\r\n\r\n if (x.eq(10)) {\r\n if (sd == null) external = true;\r\n return getLn10(Ctor, wpr);\r\n }\r\n\r\n wpr += guard;\r\n Ctor.precision = wpr;\r\n c = digitsToString(xd);\r\n c0 = c.charAt(0);\r\n e = getBase10Exponent(x);\r\n\r\n if (Math.abs(e) < 1.5e15) {\r\n\r\n // Argument reduction.\r\n // The series converges faster the closer the argument is to 1, so using\r\n // ln(a^b) = b * ln(a), ln(a) = ln(a^b) / b\r\n // multiply the argument by itself until the leading digits of the significand are 7, 8, 9,\r\n // 10, 11, 12 or 13, recording the number of multiplications so the sum of the series can\r\n // later be divided by this number, then separate out the power of 10 using\r\n // ln(a*10^b) = ln(a) + b*ln(10).\r\n\r\n // max n is 21 (gives 0.9, 1.0 or 1.1) (9e15 / 21 = 4.2e14).\r\n //while (c0 < 9 && c0 != 1 || c0 == 1 && c.charAt(1) > 1) {\r\n // max n is 6 (gives 0.7 - 1.3)\r\n while (c0 < 7 && c0 != 1 || c0 == 1 && c.charAt(1) > 3) {\r\n x = x.times(y);\r\n c = digitsToString(x.d);\r\n c0 = c.charAt(0);\r\n n++;\r\n }\r\n\r\n e = getBase10Exponent(x);\r\n\r\n if (c0 > 1) {\r\n x = new Ctor('0.' + c);\r\n e++;\r\n } else {\r\n x = new Ctor(c0 + '.' + c.slice(1));\r\n }\r\n } else {\r\n\r\n // The argument reduction method above may result in overflow if the argument y is a massive\r\n // number with exponent >= 1500000000000000 (9e15 / 6 = 1.5e15), so instead recall this\r\n // function using ln(x*10^e) = ln(x) + e*ln(10).\r\n t = getLn10(Ctor, wpr + 2, pr).times(e + '');\r\n x = ln(new Ctor(c0 + '.' + c.slice(1)), wpr - guard).plus(t);\r\n\r\n Ctor.precision = pr;\r\n return sd == null ? (external = true, round(x, pr)) : x;\r\n }\r\n\r\n // x is reduced to a value near 1.\r\n\r\n // Taylor series.\r\n // ln(y) = ln((1 + x)/(1 - x)) = 2(x + x^3/3 + x^5/5 + x^7/7 + ...)\r\n // where x = (y - 1)/(y + 1) (|x| < 1)\r\n sum = numerator = x = divide(x.minus(ONE), x.plus(ONE), wpr);\r\n x2 = round(x.times(x), wpr);\r\n denominator = 3;\r\n\r\n for (;;) {\r\n numerator = round(numerator.times(x2), wpr);\r\n t = sum.plus(divide(numerator, new Ctor(denominator), wpr));\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {\r\n sum = sum.times(2);\r\n\r\n // Reverse the argument reduction.\r\n if (e !== 0) sum = sum.plus(getLn10(Ctor, wpr + 2, pr).times(e + ''));\r\n sum = divide(sum, new Ctor(n), wpr);\r\n\r\n Ctor.precision = pr;\r\n return sd == null ? (external = true, round(sum, pr)) : sum;\r\n }\r\n\r\n sum = t;\r\n denominator += 2;\r\n }\r\n }\r\n\r\n\r\n /*\r\n * Parse the value of a new Decimal `x` from string `str`.\r\n */\r\n function parseDecimal(x, str) {\r\n var e, i, len;\r\n\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n\r\n // Exponential form?\r\n if ((i = str.search(/e/i)) > 0) {\r\n\r\n // Determine exponent.\r\n if (e < 0) e = i;\r\n e += +str.slice(i + 1);\r\n str = str.substring(0, i);\r\n } else if (e < 0) {\r\n\r\n // Integer.\r\n e = str.length;\r\n }\r\n\r\n // Determine leading zeros.\r\n for (i = 0; str.charCodeAt(i) === 48;) ++i;\r\n\r\n // Determine trailing zeros.\r\n for (len = str.length; str.charCodeAt(len - 1) === 48;) --len;\r\n str = str.slice(i, len);\r\n\r\n if (str) {\r\n len -= i;\r\n e = e - i - 1;\r\n x.e = mathfloor(e / LOG_BASE);\r\n x.d = [];\r\n\r\n // Transform base\r\n\r\n // e is the base 10 exponent.\r\n // i is where to slice str to get the first word of the digits array.\r\n i = (e + 1) % LOG_BASE;\r\n if (e < 0) i += LOG_BASE;\r\n\r\n if (i < len) {\r\n if (i) x.d.push(+str.slice(0, i));\r\n for (len -= LOG_BASE; i < len;) x.d.push(+str.slice(i, i += LOG_BASE));\r\n str = str.slice(i);\r\n i = LOG_BASE - str.length;\r\n } else {\r\n i -= len;\r\n }\r\n\r\n for (; i--;) str += '0';\r\n x.d.push(+str);\r\n\r\n if (external && (x.e > MAX_E || x.e < -MAX_E)) throw Error(exponentOutOfRange + e);\r\n } else {\r\n\r\n // Zero.\r\n x.s = 0;\r\n x.e = 0;\r\n x.d = [0];\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n /*\r\n * Round `x` to `sd` significant digits, using rounding mode `rm` if present (truncate otherwise).\r\n */\r\n function round(x, sd, rm) {\r\n var i, j, k, n, rd, doRound, w, xdi,\r\n xd = x.d;\r\n\r\n // rd: the rounding digit, i.e. the digit after the digit that may be rounded up.\r\n // w: the word of xd which contains the rounding digit, a base 1e7 number.\r\n // xdi: the index of w within xd.\r\n // n: the number of digits of w.\r\n // i: what would be the index of rd within w if all the numbers were 7 digits long (i.e. if\r\n // they had leading zeros)\r\n // j: if > 0, the actual index of rd within w (if < 0, rd is a leading zero).\r\n\r\n // Get the length of the first word of the digits array xd.\r\n for (n = 1, k = xd[0]; k >= 10; k /= 10) n++;\r\n i = sd - n;\r\n\r\n // Is the rounding digit in the first word of xd?\r\n if (i < 0) {\r\n i += LOG_BASE;\r\n j = sd;\r\n w = xd[xdi = 0];\r\n } else {\r\n xdi = Math.ceil((i + 1) / LOG_BASE);\r\n k = xd.length;\r\n if (xdi >= k) return x;\r\n w = k = xd[xdi];\r\n\r\n // Get the number of digits of w.\r\n for (n = 1; k >= 10; k /= 10) n++;\r\n\r\n // Get the index of rd within w.\r\n i %= LOG_BASE;\r\n\r\n // Get the index of rd within w, adjusted for leading zeros.\r\n // The number of leading zeros of w is given by LOG_BASE - n.\r\n j = i - LOG_BASE + n;\r\n }\r\n\r\n if (rm !== void 0) {\r\n k = mathpow(10, n - j - 1);\r\n\r\n // Get the rounding digit at index j of w.\r\n rd = w / k % 10 | 0;\r\n\r\n // Are there any non-zero digits after the rounding digit?\r\n doRound = sd < 0 || xd[xdi + 1] !== void 0 || w % k;\r\n\r\n // The expression `w % mathpow(10, n - j - 1)` returns all the digits of w to the right of the\r\n // digit at (left-to-right) index j, e.g. if w is 908714 and j is 2, the expression will give\r\n // 714.\r\n\r\n doRound = rm < 4\r\n ? (rd || doRound) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : rd > 5 || rd == 5 && (rm == 4 || doRound || rm == 6 &&\r\n\r\n // Check whether the digit to the left of the rounding digit is odd.\r\n ((i > 0 ? j > 0 ? w / mathpow(10, n - j) : 0 : xd[xdi - 1]) % 10) & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n }\r\n\r\n if (sd < 1 || !xd[0]) {\r\n if (doRound) {\r\n k = getBase10Exponent(x);\r\n xd.length = 1;\r\n\r\n // Convert sd to decimal places.\r\n sd = sd - k - 1;\r\n\r\n // 1, 0.1, 0.01, 0.001, 0.0001 etc.\r\n xd[0] = mathpow(10, (LOG_BASE - sd % LOG_BASE) % LOG_BASE);\r\n x.e = mathfloor(-sd / LOG_BASE) || 0;\r\n } else {\r\n xd.length = 1;\r\n\r\n // Zero.\r\n xd[0] = x.e = x.s = 0;\r\n }\r\n\r\n return x;\r\n }\r\n\r\n // Remove excess digits.\r\n if (i == 0) {\r\n xd.length = xdi;\r\n k = 1;\r\n xdi--;\r\n } else {\r\n xd.length = xdi + 1;\r\n k = mathpow(10, LOG_BASE - i);\r\n\r\n // E.g. 56700 becomes 56000 if 7 is the rounding digit.\r\n // j > 0 means i > number of leading zeros of w.\r\n xd[xdi] = j > 0 ? (w / mathpow(10, n - j) % mathpow(10, j) | 0) * k : 0;\r\n }\r\n\r\n if (doRound) {\r\n for (;;) {\r\n\r\n // Is the digit to be rounded up in the first word of xd?\r\n if (xdi == 0) {\r\n if ((xd[0] += k) == BASE) {\r\n xd[0] = 1;\r\n ++x.e;\r\n }\r\n\r\n break;\r\n } else {\r\n xd[xdi] += k;\r\n if (xd[xdi] != BASE) break;\r\n xd[xdi--] = 0;\r\n k = 1;\r\n }\r\n }\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (i = xd.length; xd[--i] === 0;) xd.pop();\r\n\r\n if (external && (x.e > MAX_E || x.e < -MAX_E)) {\r\n throw Error(exponentOutOfRange + getBase10Exponent(x));\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n function subtract(x, y) {\r\n var d, e, i, j, k, len, xd, xe, xLTy, yd,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n // Return y negated if x is zero.\r\n // Return x if y is zero and x is non-zero.\r\n if (!x.s || !y.s) {\r\n if (y.s) y.s = -y.s;\r\n else y = new Ctor(x);\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n xd = x.d;\r\n yd = y.d;\r\n\r\n // x and y are non-zero numbers with the same sign.\r\n\r\n e = y.e;\r\n xe = x.e;\r\n xd = xd.slice();\r\n k = xe - e;\r\n\r\n // If exponents differ...\r\n if (k) {\r\n xLTy = k < 0;\r\n\r\n if (xLTy) {\r\n d = xd;\r\n k = -k;\r\n len = yd.length;\r\n } else {\r\n d = yd;\r\n e = xe;\r\n len = xd.length;\r\n }\r\n\r\n // Numbers with massively different exponents would result in a very high number of zeros\r\n // needing to be prepended, but this can be avoided while still ensuring correct rounding by\r\n // limiting the number of zeros to `Math.ceil(pr / LOG_BASE) + 2`.\r\n i = Math.max(Math.ceil(pr / LOG_BASE), len) + 2;\r\n\r\n if (k > i) {\r\n k = i;\r\n d.length = 1;\r\n }\r\n\r\n // Prepend zeros to equalise exponents.\r\n d.reverse();\r\n for (i = k; i--;) d.push(0);\r\n d.reverse();\r\n\r\n // Base 1e7 exponents equal.\r\n } else {\r\n\r\n // Check digits to determine which is the bigger number.\r\n\r\n i = xd.length;\r\n len = yd.length;\r\n xLTy = i < len;\r\n if (xLTy) len = i;\r\n\r\n for (i = 0; i < len; i++) {\r\n if (xd[i] != yd[i]) {\r\n xLTy = xd[i] < yd[i];\r\n break;\r\n }\r\n }\r\n\r\n k = 0;\r\n }\r\n\r\n if (xLTy) {\r\n d = xd;\r\n xd = yd;\r\n yd = d;\r\n y.s = -y.s;\r\n }\r\n\r\n len = xd.length;\r\n\r\n // Append zeros to xd if shorter.\r\n // Don't add zeros to yd if shorter as subtraction only needs to start at yd length.\r\n for (i = yd.length - len; i > 0; --i) xd[len++] = 0;\r\n\r\n // Subtract yd from xd.\r\n for (i = yd.length; i > k;) {\r\n if (xd[--i] < yd[i]) {\r\n for (j = i; j && xd[--j] === 0;) xd[j] = BASE - 1;\r\n --xd[j];\r\n xd[i] += BASE;\r\n }\r\n\r\n xd[i] -= yd[i];\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (; xd[--len] === 0;) xd.pop();\r\n\r\n // Remove leading zeros and adjust exponent accordingly.\r\n for (; xd[0] === 0; xd.shift()) --e;\r\n\r\n // Zero?\r\n if (!xd[0]) return new Ctor(0);\r\n\r\n y.d = xd;\r\n y.e = e;\r\n\r\n //return external && xd.length >= pr / LOG_BASE ? round(y, pr) : y;\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n\r\n function toString(x, isExp, sd) {\r\n var k,\r\n e = getBase10Exponent(x),\r\n str = digitsToString(x.d),\r\n len = str.length;\r\n\r\n if (isExp) {\r\n if (sd && (k = sd - len) > 0) {\r\n str = str.charAt(0) + '.' + str.slice(1) + getZeroString(k);\r\n } else if (len > 1) {\r\n str = str.charAt(0) + '.' + str.slice(1);\r\n }\r\n\r\n str = str + (e < 0 ? 'e' : 'e+') + e;\r\n } else if (e < 0) {\r\n str = '0.' + getZeroString(-e - 1) + str;\r\n if (sd && (k = sd - len) > 0) str += getZeroString(k);\r\n } else if (e >= len) {\r\n str += getZeroString(e + 1 - len);\r\n if (sd && (k = sd - e - 1) > 0) str = str + '.' + getZeroString(k);\r\n } else {\r\n if ((k = e + 1) < len) str = str.slice(0, k) + '.' + str.slice(k);\r\n if (sd && (k = sd - len) > 0) {\r\n if (e + 1 === len) str += '.';\r\n str += getZeroString(k);\r\n }\r\n }\r\n\r\n return x.s < 0 ? '-' + str : str;\r\n }\r\n\r\n\r\n // Does not strip trailing zeros.\r\n function truncate(arr, len) {\r\n if (arr.length > len) {\r\n arr.length = len;\r\n return true;\r\n }\r\n }\r\n\r\n\r\n // Decimal methods\r\n\r\n\r\n /*\r\n * clone\r\n * config/set\r\n */\r\n\r\n\r\n /*\r\n * Create and return a Decimal constructor with the same configuration properties as this Decimal\r\n * constructor.\r\n *\r\n */\r\n function clone(obj) {\r\n var i, p, ps;\r\n\r\n /*\r\n * The Decimal constructor and exported function.\r\n * Return a new Decimal instance.\r\n *\r\n * value {number|string|Decimal} A numeric value.\r\n *\r\n */\r\n function Decimal(value) {\r\n var x = this;\r\n\r\n // Decimal called without new.\r\n if (!(x instanceof Decimal)) return new Decimal(value);\r\n\r\n // Retain a reference to this Decimal constructor, and shadow Decimal.prototype.constructor\r\n // which points to Object.\r\n x.constructor = Decimal;\r\n\r\n // Duplicate.\r\n if (value instanceof Decimal) {\r\n x.s = value.s;\r\n x.e = value.e;\r\n x.d = (value = value.d) ? value.slice() : value;\r\n return;\r\n }\r\n\r\n if (typeof value === 'number') {\r\n\r\n // Reject Infinity/NaN.\r\n if (value * 0 !== 0) {\r\n throw Error(invalidArgument + value);\r\n }\r\n\r\n if (value > 0) {\r\n x.s = 1;\r\n } else if (value < 0) {\r\n value = -value;\r\n x.s = -1;\r\n } else {\r\n x.s = 0;\r\n x.e = 0;\r\n x.d = [0];\r\n return;\r\n }\r\n\r\n // Fast path for small integers.\r\n if (value === ~~value && value < 1e7) {\r\n x.e = 0;\r\n x.d = [value];\r\n return;\r\n }\r\n\r\n return parseDecimal(x, value.toString());\r\n } else if (typeof value !== 'string') {\r\n throw Error(invalidArgument + value);\r\n }\r\n\r\n // Minus sign?\r\n if (value.charCodeAt(0) === 45) {\r\n value = value.slice(1);\r\n x.s = -1;\r\n } else {\r\n x.s = 1;\r\n }\r\n\r\n if (isDecimal.test(value)) parseDecimal(x, value);\r\n else throw Error(invalidArgument + value);\r\n }\r\n\r\n Decimal.prototype = P;\r\n\r\n Decimal.ROUND_UP = 0;\r\n Decimal.ROUND_DOWN = 1;\r\n Decimal.ROUND_CEIL = 2;\r\n Decimal.ROUND_FLOOR = 3;\r\n Decimal.ROUND_HALF_UP = 4;\r\n Decimal.ROUND_HALF_DOWN = 5;\r\n Decimal.ROUND_HALF_EVEN = 6;\r\n Decimal.ROUND_HALF_CEIL = 7;\r\n Decimal.ROUND_HALF_FLOOR = 8;\r\n\r\n Decimal.clone = clone;\r\n Decimal.config = Decimal.set = config;\r\n\r\n if (obj === void 0) obj = {};\r\n if (obj) {\r\n ps = ['precision', 'rounding', 'toExpNeg', 'toExpPos', 'LN10'];\r\n for (i = 0; i < ps.length;) if (!obj.hasOwnProperty(p = ps[i++])) obj[p] = this[p];\r\n }\r\n\r\n Decimal.config(obj);\r\n\r\n return Decimal;\r\n }\r\n\r\n\r\n /*\r\n * Configure global settings for a Decimal constructor.\r\n *\r\n * `obj` is an object with one or more of the following properties,\r\n *\r\n * precision {number}\r\n * rounding {number}\r\n * toExpNeg {number}\r\n * toExpPos {number}\r\n *\r\n * E.g. Decimal.config({ precision: 20, rounding: 4 })\r\n *\r\n */\r\n function config(obj) {\r\n if (!obj || typeof obj !== 'object') {\r\n throw Error(decimalError + 'Object expected');\r\n }\r\n var i, p, v,\r\n ps = [\r\n 'precision', 1, MAX_DIGITS,\r\n 'rounding', 0, 8,\r\n 'toExpNeg', -1 / 0, 0,\r\n 'toExpPos', 0, 1 / 0\r\n ];\r\n\r\n for (i = 0; i < ps.length; i += 3) {\r\n if ((v = obj[p = ps[i]]) !== void 0) {\r\n if (mathfloor(v) === v && v >= ps[i + 1] && v <= ps[i + 2]) this[p] = v;\r\n else throw Error(invalidArgument + p + ': ' + v);\r\n }\r\n }\r\n\r\n if ((v = obj[p = 'LN10']) !== void 0) {\r\n if (v == Math.LN10) this[p] = new this(v);\r\n else throw Error(invalidArgument + p + ': ' + v);\r\n }\r\n\r\n return this;\r\n }\r\n\r\n\r\n // Create and configure initial Decimal constructor.\r\n Decimal = clone(Decimal);\r\n\r\n Decimal['default'] = Decimal.Decimal = Decimal;\r\n\r\n // Internal constant.\r\n ONE = new Decimal(1);\r\n\r\n\r\n // Export.\r\n\r\n\r\n // AMD.\r\n if (typeof define == 'function' && define.amd) {\r\n define(function () {\r\n return Decimal;\r\n });\r\n\r\n // Node and other environments that support module.exports.\r\n } else if (typeof module != 'undefined' && module.exports) {\r\n module.exports = Decimal;\r\n\r\n // Browser.\r\n } else {\r\n if (!globalScope) {\r\n globalScope = typeof self != 'undefined' && self && self.self == self\r\n ? self : Function('return this')();\r\n }\r\n\r\n globalScope.Decimal = Decimal;\r\n }\r\n})(this);\r\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n","/**\n * A specialized version of `_.every` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n */\nfunction arrayEvery(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (!predicate(array[index], index, array)) {\n return false;\n }\n }\n return true;\n}\n\nmodule.exports = arrayEvery;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","var baseIndexOf = require('./_baseIndexOf');\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\nmodule.exports = arrayIncludes;\n","/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arrayIncludesWith;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n","/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n return string.split('');\n}\n\nmodule.exports = asciiToArray;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n","var baseForOwn = require('./_baseForOwn'),\n createBaseEach = require('./_createBaseEach');\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nmodule.exports = baseEach;\n","var baseEach = require('./_baseEach');\n\n/**\n * The base implementation of `_.every` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`\n */\nfunction baseEvery(collection, predicate) {\n var result = true;\n baseEach(collection, function(value, index, collection) {\n result = !!predicate(value, index, collection);\n return result;\n });\n return result;\n}\n\nmodule.exports = baseEvery;\n","var isSymbol = require('./isSymbol');\n\n/**\n * The base implementation of methods like `_.max` and `_.min` which accepts a\n * `comparator` to determine the extremum value.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The iteratee invoked per iteration.\n * @param {Function} comparator The comparator used to compare values.\n * @returns {*} Returns the extremum value.\n */\nfunction baseExtremum(array, iteratee, comparator) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n var value = array[index],\n current = iteratee(value);\n\n if (current != null && (computed === undefined\n ? (current === current && !isSymbol(current))\n : comparator(current, computed)\n )) {\n var computed = current,\n result = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseExtremum;\n","/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = baseFindIndex;\n","var arrayPush = require('./_arrayPush'),\n isFlattenable = require('./_isFlattenable');\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseFlatten;\n","var createBaseFor = require('./_createBaseFor');\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n","var baseFor = require('./_baseFor'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;\n","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","/**\n * The base implementation of `_.gt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n */\nfunction baseGt(value, other) {\n return value > other;\n}\n\nmodule.exports = baseGt;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n","var baseFindIndex = require('./_baseFindIndex'),\n baseIsNaN = require('./_baseIsNaN'),\n strictIndexOf = require('./_strictIndexOf');\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nmodule.exports = baseIndexOf;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n","var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n","var Stack = require('./_Stack'),\n baseIsEqual = require('./_baseIsEqual');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nmodule.exports = baseIsMatch;\n","/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\nmodule.exports = baseIsNaN;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","var baseMatches = require('./_baseMatches'),\n baseMatchesProperty = require('./_baseMatchesProperty'),\n identity = require('./identity'),\n isArray = require('./isArray'),\n property = require('./property');\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nmodule.exports = baseIteratee;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","/**\n * The base implementation of `_.lt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n */\nfunction baseLt(value, other) {\n return value < other;\n}\n\nmodule.exports = baseLt;\n","var baseEach = require('./_baseEach'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\nmodule.exports = baseMap;\n","var baseIsMatch = require('./_baseIsMatch'),\n getMatchData = require('./_getMatchData'),\n matchesStrictComparable = require('./_matchesStrictComparable');\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nmodule.exports = baseMatches;\n","var baseIsEqual = require('./_baseIsEqual'),\n get = require('./get'),\n hasIn = require('./hasIn'),\n isKey = require('./_isKey'),\n isStrictComparable = require('./_isStrictComparable'),\n matchesStrictComparable = require('./_matchesStrictComparable'),\n toKey = require('./_toKey');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nmodule.exports = baseMatchesProperty;\n","var arrayMap = require('./_arrayMap'),\n baseGet = require('./_baseGet'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n baseSortBy = require('./_baseSortBy'),\n baseUnary = require('./_baseUnary'),\n compareMultiple = require('./_compareMultiple'),\n identity = require('./identity'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\nfunction baseOrderBy(collection, iteratees, orders) {\n if (iteratees.length) {\n iteratees = arrayMap(iteratees, function(iteratee) {\n if (isArray(iteratee)) {\n return function(value) {\n return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);\n }\n }\n return iteratee;\n });\n } else {\n iteratees = [identity];\n }\n\n var index = -1;\n iteratees = arrayMap(iteratees, baseUnary(baseIteratee));\n\n var result = baseMap(collection, function(value, key, collection) {\n var criteria = arrayMap(iteratees, function(iteratee) {\n return iteratee(value);\n });\n return { 'criteria': criteria, 'index': ++index, 'value': value };\n });\n\n return baseSortBy(result, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n}\n\nmodule.exports = baseOrderBy;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = baseProperty;\n","var baseGet = require('./_baseGet');\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nmodule.exports = basePropertyDeep;\n","/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil,\n nativeMax = Math.max;\n\n/**\n * The base implementation of `_.range` and `_.rangeRight` which doesn't\n * coerce arguments.\n *\n * @private\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @param {number} step The value to increment or decrement by.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the range of numbers.\n */\nfunction baseRange(start, end, step, fromRight) {\n var index = -1,\n length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),\n result = Array(length);\n\n while (length--) {\n result[fromRight ? length : ++index] = start;\n start += step;\n }\n return result;\n}\n\nmodule.exports = baseRange;\n","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n","var constant = require('./constant'),\n defineProperty = require('./_defineProperty'),\n identity = require('./identity');\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\n","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nmodule.exports = baseSlice;\n","var baseEach = require('./_baseEach');\n\n/**\n * The base implementation of `_.some` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction baseSome(collection, predicate) {\n var result;\n\n baseEach(collection, function(value, index, collection) {\n result = predicate(value, index, collection);\n return !result;\n });\n return !!result;\n}\n\nmodule.exports = baseSome;\n","/**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\nfunction baseSortBy(array, comparer) {\n var length = array.length;\n\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n}\n\nmodule.exports = baseSortBy;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","var SetCache = require('./_SetCache'),\n arrayIncludes = require('./_arrayIncludes'),\n arrayIncludesWith = require('./_arrayIncludesWith'),\n cacheHas = require('./_cacheHas'),\n createSet = require('./_createSet'),\n setToArray = require('./_setToArray');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\nfunction baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nmodule.exports = baseUniq;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","var baseSlice = require('./_baseSlice');\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\nmodule.exports = castSlice;\n","var isSymbol = require('./isSymbol');\n\n/**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\nfunction compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n\n if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n (valIsNull && othIsDefined && othIsReflexive) ||\n (!valIsDefined && othIsReflexive) ||\n !valIsReflexive) {\n return 1;\n }\n if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n (othIsNull && valIsDefined && valIsReflexive) ||\n (!othIsDefined && valIsReflexive) ||\n !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n}\n\nmodule.exports = compareAscending;\n","var compareAscending = require('./_compareAscending');\n\n/**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\nfunction compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n}\n\nmodule.exports = compareMultiple;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var isArrayLike = require('./isArrayLike');\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nmodule.exports = createBaseEach;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n","var castSlice = require('./_castSlice'),\n hasUnicode = require('./_hasUnicode'),\n stringToArray = require('./_stringToArray'),\n toString = require('./toString');\n\n/**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\nfunction createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n}\n\nmodule.exports = createCaseFirst;\n","var baseIteratee = require('./_baseIteratee'),\n isArrayLike = require('./isArrayLike'),\n keys = require('./keys');\n\n/**\n * Creates a `_.find` or `_.findLast` function.\n *\n * @private\n * @param {Function} findIndexFunc The function to find the collection index.\n * @returns {Function} Returns the new find function.\n */\nfunction createFind(findIndexFunc) {\n return function(collection, predicate, fromIndex) {\n var iterable = Object(collection);\n if (!isArrayLike(collection)) {\n var iteratee = baseIteratee(predicate, 3);\n collection = keys(collection);\n predicate = function(key) { return iteratee(iterable[key], key, iterable); };\n }\n var index = findIndexFunc(collection, predicate, fromIndex);\n return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;\n };\n}\n\nmodule.exports = createFind;\n","var baseRange = require('./_baseRange'),\n isIterateeCall = require('./_isIterateeCall'),\n toFinite = require('./toFinite');\n\n/**\n * Creates a `_.range` or `_.rangeRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new range function.\n */\nfunction createRange(fromRight) {\n return function(start, end, step) {\n if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {\n end = step = undefined;\n }\n // Ensure the sign of `-0` is preserved.\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);\n return baseRange(start, end, step, fromRight);\n };\n}\n\nmodule.exports = createRange;\n","var Set = require('./_Set'),\n noop = require('./noop'),\n setToArray = require('./_setToArray');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\nvar createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n};\n\nmodule.exports = createSet;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n","var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var isStrictComparable = require('./_isStrictComparable'),\n keys = require('./keys');\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nmodule.exports = getMatchData;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var overArg = require('./_overArg');\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var castPath = require('./_castPath'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isIndex = require('./_isIndex'),\n isLength = require('./isLength'),\n toKey = require('./_toKey');\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsZWJ = '\\\\u200d';\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n\nmodule.exports = hasUnicode;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","var Symbol = require('./_Symbol'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray');\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nmodule.exports = isFlattenable;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","var isObject = require('./isObject');\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nmodule.exports = matchesStrictComparable;\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = overRest;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n","var baseSetToString = require('./_baseSetToString'),\n shortOut = require('./_shortOut');\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nmodule.exports = shortOut;\n","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n","/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = strictIndexOf;\n","var asciiToArray = require('./_asciiToArray'),\n hasUnicode = require('./_hasUnicode'),\n unicodeToArray = require('./_unicodeToArray');\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n}\n\nmodule.exports = stringToArray;\n","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n return string.match(reUnicode) || [];\n}\n\nmodule.exports = unicodeToArray;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var arrayEvery = require('./_arrayEvery'),\n baseEvery = require('./_baseEvery'),\n baseIteratee = require('./_baseIteratee'),\n isArray = require('./isArray'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Checks if `predicate` returns truthy for **all** elements of `collection`.\n * Iteration is stopped once `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * **Note:** This method returns `true` for\n * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because\n * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of\n * elements of empty collections.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n * @example\n *\n * _.every([true, 1, null, 'yes'], Boolean);\n * // => false\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.every(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.every(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.every(users, 'active');\n * // => false\n */\nfunction every(collection, predicate, guard) {\n var func = isArray(collection) ? arrayEvery : baseEvery;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, baseIteratee(predicate, 3));\n}\n\nmodule.exports = every;\n","var createFind = require('./_createFind'),\n findIndex = require('./findIndex');\n\n/**\n * Iterates over elements of `collection`, returning the first element\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false },\n * { 'user': 'pebbles', 'age': 1, 'active': true }\n * ];\n *\n * _.find(users, function(o) { return o.age < 40; });\n * // => object for 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.find(users, { 'age': 1, 'active': true });\n * // => object for 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.find(users, ['active', false]);\n * // => object for 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.find(users, 'active');\n * // => object for 'barney'\n */\nvar find = createFind(findIndex);\n\nmodule.exports = find;\n","var baseFindIndex = require('./_baseFindIndex'),\n baseIteratee = require('./_baseIteratee'),\n toInteger = require('./toInteger');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\nfunction findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, baseIteratee(predicate, 3), index);\n}\n\nmodule.exports = findIndex;\n","var baseFlatten = require('./_baseFlatten'),\n map = require('./map');\n\n/**\n * Creates a flattened array of values by running each element in `collection`\n * thru `iteratee` and flattening the mapped results. The iteratee is invoked\n * with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [n, n];\n * }\n *\n * _.flatMap([1, 2], duplicate);\n * // => [1, 1, 2, 2]\n */\nfunction flatMap(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), 1);\n}\n\nmodule.exports = flatMap;\n","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","var baseHasIn = require('./_baseHasIn'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]';\n\n/**\n * Checks if `value` is classified as a boolean primitive or object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a boolean, else `false`.\n * @example\n *\n * _.isBoolean(false);\n * // => true\n *\n * _.isBoolean(null);\n * // => false\n */\nfunction isBoolean(value) {\n return value === true || value === false ||\n (isObjectLike(value) && baseGetTag(value) == boolTag);\n}\n\nmodule.exports = isBoolean;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","var baseIsEqual = require('./_baseIsEqual');\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nmodule.exports = isEqual;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","var isNumber = require('./isNumber');\n\n/**\n * Checks if `value` is `NaN`.\n *\n * **Note:** This method is based on\n * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as\n * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for\n * `undefined` and other non-number values.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n * @example\n *\n * _.isNaN(NaN);\n * // => true\n *\n * _.isNaN(new Number(NaN));\n * // => true\n *\n * isNaN(undefined);\n * // => true\n *\n * _.isNaN(undefined);\n * // => false\n */\nfunction isNaN(value) {\n // An `NaN` primitive is the only value that is not equal to itself.\n // Perform the `toStringTag` check first to avoid errors with some\n // ActiveX objects in IE.\n return isNumber(value) && value != +value;\n}\n\nmodule.exports = isNaN;\n","/**\n * Checks if `value` is `null` or `undefined`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is nullish, else `false`.\n * @example\n *\n * _.isNil(null);\n * // => true\n *\n * _.isNil(void 0);\n * // => true\n *\n * _.isNil(NaN);\n * // => false\n */\nfunction isNil(value) {\n return value == null;\n}\n\nmodule.exports = isNil;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar numberTag = '[object Number]';\n\n/**\n * Checks if `value` is classified as a `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are\n * classified as numbers, use the `_.isFinite` method.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a number, else `false`.\n * @example\n *\n * _.isNumber(3);\n * // => true\n *\n * _.isNumber(Number.MIN_VALUE);\n * // => true\n *\n * _.isNumber(Infinity);\n * // => true\n *\n * _.isNumber('3');\n * // => false\n */\nfunction isNumber(value) {\n return typeof value == 'number' ||\n (isObjectLike(value) && baseGetTag(value) == numberTag);\n}\n\nmodule.exports = isNumber;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n getPrototype = require('./_getPrototype'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nmodule.exports = isPlainObject;\n","var baseGetTag = require('./_baseGetTag'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nmodule.exports = isString;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","/**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\nfunction last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n}\n\nmodule.exports = last;\n","var arrayMap = require('./_arrayMap'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n isArray = require('./isArray');\n\n/**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\nfunction map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, baseIteratee(iteratee, 3));\n}\n\nmodule.exports = map;\n","var baseAssignValue = require('./_baseAssignValue'),\n baseForOwn = require('./_baseForOwn'),\n baseIteratee = require('./_baseIteratee');\n\n/**\n * Creates an object with the same keys as `object` and values generated\n * by running each own enumerable string keyed property of `object` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapKeys\n * @example\n *\n * var users = {\n * 'fred': { 'user': 'fred', 'age': 40 },\n * 'pebbles': { 'user': 'pebbles', 'age': 1 }\n * };\n *\n * _.mapValues(users, function(o) { return o.age; });\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n *\n * // The `_.property` iteratee shorthand.\n * _.mapValues(users, 'age');\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n */\nfunction mapValues(object, iteratee) {\n var result = {};\n iteratee = baseIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, key, iteratee(value, key, object));\n });\n return result;\n}\n\nmodule.exports = mapValues;\n","var baseExtremum = require('./_baseExtremum'),\n baseGt = require('./_baseGt'),\n identity = require('./identity');\n\n/**\n * Computes the maximum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the maximum value.\n * @example\n *\n * _.max([4, 2, 8, 6]);\n * // => 8\n *\n * _.max([]);\n * // => undefined\n */\nfunction max(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseGt)\n : undefined;\n}\n\nmodule.exports = max;\n","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n","var baseExtremum = require('./_baseExtremum'),\n baseLt = require('./_baseLt'),\n identity = require('./identity');\n\n/**\n * Computes the minimum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the minimum value.\n * @example\n *\n * _.min([4, 2, 8, 6]);\n * // => 2\n *\n * _.min([]);\n * // => undefined\n */\nfunction min(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseLt)\n : undefined;\n}\n\nmodule.exports = min;\n","/**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\nfunction noop() {\n // No operation performed.\n}\n\nmodule.exports = noop;\n","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n","var baseProperty = require('./_baseProperty'),\n basePropertyDeep = require('./_basePropertyDeep'),\n isKey = require('./_isKey'),\n toKey = require('./_toKey');\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = property;\n","var createRange = require('./_createRange');\n\n/**\n * Creates an array of numbers (positive and/or negative) progressing from\n * `start` up to, but not including, `end`. A step of `-1` is used if a negative\n * `start` is specified without an `end` or `step`. If `end` is not specified,\n * it's set to `start` with `start` then set to `0`.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @param {number} [step=1] The value to increment or decrement by.\n * @returns {Array} Returns the range of numbers.\n * @see _.inRange, _.rangeRight\n * @example\n *\n * _.range(4);\n * // => [0, 1, 2, 3]\n *\n * _.range(-4);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 5);\n * // => [1, 2, 3, 4]\n *\n * _.range(0, 20, 5);\n * // => [0, 5, 10, 15]\n *\n * _.range(0, -4, -1);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 4, 0);\n * // => [1, 1, 1]\n *\n * _.range(0);\n * // => []\n */\nvar range = createRange();\n\nmodule.exports = range;\n","var arraySome = require('./_arraySome'),\n baseIteratee = require('./_baseIteratee'),\n baseSome = require('./_baseSome'),\n isArray = require('./isArray'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Checks if `predicate` returns truthy for **any** element of `collection`.\n * Iteration is stopped once `predicate` returns truthy. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n * @example\n *\n * _.some([null, 0, 'yes', false], Boolean);\n * // => true\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.some(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.some(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.some(users, 'active');\n * // => true\n */\nfunction some(collection, predicate, guard) {\n var func = isArray(collection) ? arraySome : baseSome;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, baseIteratee(predicate, 3));\n}\n\nmodule.exports = some;\n","var baseFlatten = require('./_baseFlatten'),\n baseOrderBy = require('./_baseOrderBy'),\n baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 30 },\n * { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, [function(o) { return o.user; }]);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]]\n */\nvar sortBy = baseRest(function(collection, iteratees) {\n if (collection == null) {\n return [];\n }\n var length = iteratees.length;\n if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n iteratees = [];\n } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n iteratees = [iteratees[0]];\n }\n return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n});\n\nmodule.exports = sortBy;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","var debounce = require('./debounce'),\n isObject = require('./isObject');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nmodule.exports = throttle;\n","var toNumber = require('./toNumber');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nmodule.exports = toFinite;\n","var toFinite = require('./toFinite');\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nmodule.exports = toInteger;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","var baseIteratee = require('./_baseIteratee'),\n baseUniq = require('./_baseUniq');\n\n/**\n * This method is like `_.uniq` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * uniqueness is computed. The order of result values is determined by the\n * order they occur in the array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniqBy([2.1, 1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\nfunction uniqBy(array, iteratee) {\n return (array && array.length) ? baseUniq(array, baseIteratee(iteratee, 2)) : [];\n}\n\nmodule.exports = uniqBy;\n","var createCaseFirst = require('./_createCaseFirst');\n\n/**\n * Converts the first character of `string` to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.upperFirst('fred');\n * // => 'Fred'\n *\n * _.upperFirst('FRED');\n * // => 'FRED'\n */\nvar upperFirst = createCaseFirst('toUpperCase');\n\nmodule.exports = upperFirst;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&Ng(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=Lg(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Tg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Rg(f.type,f.key,f.props,null,a.mode,h),h.ref=Lg(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=Sg(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);Mg(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=Qg(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Ug=Og(!0),Vg=Og(!1),Wg=Uf(null),Xg=null,Yg=null,Zg=null;function $g(){Zg=Yg=Xg=null}function ah(a){var b=Wg.current;E(Wg);a._currentValue=b}function bh(a,b,c){for(;null!==a;){var d=a.alternate;(a.childLanes&b)!==b?(a.childLanes|=b,null!==d&&(d.childLanes|=b)):null!==d&&(d.childLanes&b)!==b&&(d.childLanes|=b);if(a===c)break;a=a.return}}\nfunction ch(a,b){Xg=a;Zg=Yg=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(dh=!0),a.firstContext=null)}function eh(a){var b=a._currentValue;if(Zg!==a)if(a={context:a,memoizedValue:b,next:null},null===Yg){if(null===Xg)throw Error(p(308));Yg=a;Xg.dependencies={lanes:0,firstContext:a}}else Yg=Yg.next=a;return b}var fh=null;function gh(a){null===fh?fh=[a]:fh.push(a)}\nfunction hh(a,b,c,d){var e=b.interleaved;null===e?(c.next=c,gh(b)):(c.next=e.next,e.next=c);b.interleaved=c;return ih(a,d)}function ih(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}var jh=!1;function kh(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}\nfunction lh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function mh(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}\nfunction nh(a,b,c){var d=a.updateQueue;if(null===d)return null;d=d.shared;if(0!==(K&2)){var e=d.pending;null===e?b.next=b:(b.next=e.next,e.next=b);d.pending=b;return ih(a,c)}e=d.interleaved;null===e?(b.next=b,gh(d)):(b.next=e.next,e.next=b);d.interleaved=b;return ih(a,c)}function oh(a,b,c){b=b.updateQueue;if(null!==b&&(b=b.shared,0!==(c&4194240))){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nfunction ph(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction qh(a,b,c,d){var e=a.updateQueue;jh=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var m=a.alternate;null!==m&&(m=m.updateQueue,h=m.lastBaseUpdate,h!==g&&(null===h?m.firstBaseUpdate=l:h.next=l,m.lastBaseUpdate=k))}if(null!==f){var q=e.baseState;g=0;m=l=k=null;h=f;do{var r=h.lane,y=h.eventTime;if((d&r)===r){null!==m&&(m=m.next={eventTime:y,lane:0,tag:h.tag,payload:h.payload,callback:h.callback,\nnext:null});a:{var n=a,t=h;r=b;y=c;switch(t.tag){case 1:n=t.payload;if(\"function\"===typeof n){q=n.call(y,q,r);break a}q=n;break a;case 3:n.flags=n.flags&-65537|128;case 0:n=t.payload;r=\"function\"===typeof n?n.call(y,q,r):n;if(null===r||void 0===r)break a;q=A({},q,r);break a;case 2:jh=!0}}null!==h.callback&&0!==h.lane&&(a.flags|=64,r=e.effects,null===r?e.effects=[h]:r.push(h))}else y={eventTime:y,lane:r,tag:h.tag,payload:h.payload,callback:h.callback,next:null},null===m?(l=m=y,k=q):m=m.next=y,g|=r;\nh=h.next;if(null===h)if(h=e.shared.pending,null===h)break;else r=h,h=r.next,r.next=null,e.lastBaseUpdate=r,e.shared.pending=null}while(1);null===m&&(k=q);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=m;b=e.shared.interleaved;if(null!==b){e=b;do g|=e.lane,e=e.next;while(e!==b)}else null===f&&(e.shared.lanes=0);rh|=g;a.lanes=g;a.memoizedState=q}}\nfunction sh(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;bc?c:4;a(!0);var d=Gh.transition;Gh.transition={};try{a(!1),b()}finally{C=c,Gh.transition=d}}function wi(){return Uh().memoizedState}\nfunction xi(a,b,c){var d=yi(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,c);else if(c=hh(a,b,c,d),null!==c){var e=R();gi(c,a,d,e);Bi(c,b,d)}}\nfunction ii(a,b,c){var d=yi(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,gh(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=hh(a,b,e,d);null!==c&&(e=R(),gi(c,a,d,e),Bi(c,b,d))}}\nfunction zi(a){var b=a.alternate;return a===M||null!==b&&b===M}function Ai(a,b){Jh=Ih=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Bi(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar Rh={readContext:eh,useCallback:P,useContext:P,useEffect:P,useImperativeHandle:P,useInsertionEffect:P,useLayoutEffect:P,useMemo:P,useReducer:P,useRef:P,useState:P,useDebugValue:P,useDeferredValue:P,useTransition:P,useMutableSource:P,useSyncExternalStore:P,useId:P,unstable_isNewReconciler:!1},Oh={readContext:eh,useCallback:function(a,b){Th().memoizedState=[a,void 0===b?null:b];return a},useContext:eh,useEffect:mi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ki(4194308,\n4,pi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ki(4194308,4,a,b)},useInsertionEffect:function(a,b){return ki(4,2,a,b)},useMemo:function(a,b){var c=Th();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=Th();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=xi.bind(null,M,a);return[d.memoizedState,a]},useRef:function(a){var b=\nTh();a={current:a};return b.memoizedState=a},useState:hi,useDebugValue:ri,useDeferredValue:function(a){return Th().memoizedState=a},useTransition:function(){var a=hi(!1),b=a[0];a=vi.bind(null,a[1]);Th().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=M,e=Th();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===Q)throw Error(p(349));0!==(Hh&30)||di(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;mi(ai.bind(null,d,\nf,a),[a]);d.flags|=2048;bi(9,ci.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=Th(),b=Q.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Kh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;zj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eGj&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304)}else{if(!d)if(a=Ch(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Dj(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Gj&&1073741824!==c&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=L.current,G(L,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Hj(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(fj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Ij(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return zh(),E(Wf),E(H),Eh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Bh(b),null;case 13:E(L);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(L),null;case 4:return zh(),null;case 10:return ah(b.type._context),null;case 22:case 23:return Hj(),\nnull;case 24:return null;default:return null}}var Jj=!1,U=!1,Kj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Lj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Mj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Nj=!1;\nfunction Oj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Ci(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Nj;Nj=!1;return n}\nfunction Pj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Mj(b,c,f)}e=e.next}while(e!==d)}}function Qj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Rj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Sj(a){var b=a.alternate;null!==b&&(a.alternate=null,Sj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Tj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Uj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Tj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Vj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Vj(a,b,c),a=a.sibling;null!==a;)Vj(a,b,c),a=a.sibling}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}var X=null,Xj=!1;function Yj(a,b,c){for(c=c.child;null!==c;)Zj(a,b,c),c=c.sibling}\nfunction Zj(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Lj(c,b);case 6:var d=X,e=Xj;X=null;Yj(a,b,c);X=d;Xj=e;null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Xj;X=c.stateNode.containerInfo;Xj=!0;\nYj(a,b,c);X=d;Xj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Mj(c,b,g):0!==(f&4)&&Mj(c,b,g));e=e.next}while(e!==d)}Yj(a,b,c);break;case 1:if(!U&&(Lj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Yj(a,b,c);break;case 21:Yj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Yj(a,b,c),U=d):Yj(a,b,c);break;default:Yj(a,b,c)}}function ak(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Kj);b.forEach(function(b){var d=bk.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction ck(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*lk(d/1960))-d;if(10a?16:a;if(null===wk)var d=!1;else{a=wk;wk=null;xk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-fk?Kk(a,0):rk|=c);Dk(a,b)}function Yk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=R();a=ih(a,b);null!==a&&(Ac(a,b,c),Dk(a,c))}function uj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Yk(a,c)}\nfunction bk(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Yk(a,c)}var Vk;\nVk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)dh=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return dh=!1,yj(a,b,c);dh=0!==(a.flags&131072)?!0:!1}else dh=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;ij(a,b);a=b.pendingProps;var e=Yf(b,H.current);ch(b,c);e=Nh(null,b,d,a,e,c);var f=Sh();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,kh(b),e.updater=Ei,b.stateNode=e,e._reactInternals=b,Ii(b,d,a,c),b=jj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Xi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{ij(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=Zk(d);a=Ci(d,a);switch(e){case 0:b=cj(null,b,d,a,c);break a;case 1:b=hj(null,b,d,a,c);break a;case 11:b=Yi(null,b,d,a,c);break a;case 14:b=$i(null,b,d,Ci(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),cj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),hj(a,b,d,e,c);case 3:a:{kj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;lh(a,b);qh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ji(Error(p(423)),b);b=lj(a,b,d,c,e);break a}else if(d!==e){e=Ji(Error(p(424)),b);b=lj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Vg(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=Zi(a,b,c);break a}Xi(a,b,d,c)}b=b.child}return b;case 5:return Ah(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\ngj(a,b),Xi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return oj(a,b,c);case 4:return yh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Ug(b,null,d,c):Xi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),Yi(a,b,d,e,c);case 7:return Xi(a,b,b.pendingProps,c),b.child;case 8:return Xi(a,b,b.pendingProps.children,c),b.child;case 12:return Xi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Wg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=Zi(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=mh(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);bh(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);bh(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Xi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,ch(b,c),e=eh(e),d=d(e),b.flags|=1,Xi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Ci(d,b.pendingProps),e=Ci(d.type,e),$i(a,b,d,e,c);case 15:return bj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),ij(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,ch(b,c),Gi(b,d,e),Ii(b,d,e,c),jj(null,b,d,!0,a,c);case 19:return xj(a,b,c);case 22:return dj(a,b,c)}throw Error(p(156,b.tag));};function Fk(a,b){return ac(a,b)}\nfunction $k(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new $k(a,b,c,d)}function aj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction Zk(a){if(\"function\"===typeof a)return aj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction Pg(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction Rg(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)aj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Tg(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return pj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Tg(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function pj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function Qg(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction Sg(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction al(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function bl(a,b,c,d,e,f,g,h,k){a=new al(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};kh(f);return a}function cl(a,b,c){var d=3>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + chunkId + \".\" + \"d855a71b\" + \".chunk.js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","var inProgress = {};\nvar dataWebpackPrefix = \"frontend:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t792: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkfrontend\"] = self[\"webpackChunkfrontend\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","import * as React from 'react';\nconst ThemeContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== 'production') {\n ThemeContext.displayName = 'ThemeContext';\n}\nexport default ThemeContext;","import * as React from 'react';\nimport ThemeContext from \"./ThemeContext.js\";\nexport default function useTheme() {\n const theme = React.useContext(ThemeContext);\n if (process.env.NODE_ENV !== 'production') {\n // TODO: uncomment once we enable eslint-plugin-react-compiler eslint-disable-next-line react-compiler/react-compiler\n // eslint-disable-next-line react-hooks/rules-of-hooks -- It's not required to run React.useDebugValue in production\n React.useDebugValue(theme);\n }\n return theme;\n}","const hasSymbol = typeof Symbol === 'function' && Symbol.for;\nexport default hasSymbol ? Symbol.for('mui.nested') : '__THEME_NESTED__';","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { exactProp } from '@mui/utils';\nimport ThemeContext from \"../useTheme/ThemeContext.js\";\nimport useTheme from \"../useTheme/index.js\";\nimport nested from \"./nested.js\";\n\n// To support composition of theme.\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction mergeOuterLocalTheme(outerTheme, localTheme) {\n if (typeof localTheme === 'function') {\n const mergedTheme = localTheme(outerTheme);\n if (process.env.NODE_ENV !== 'production') {\n if (!mergedTheme) {\n console.error(['MUI: You should return an object from your theme function, i.e.', ' ({})} />'].join('\\n'));\n }\n }\n return mergedTheme;\n }\n return {\n ...outerTheme,\n ...localTheme\n };\n}\n\n/**\n * This component takes a `theme` prop.\n * It makes the `theme` available down the React tree thanks to React context.\n * This component should preferably be used at **the root of your component tree**.\n */\nfunction ThemeProvider(props) {\n const {\n children,\n theme: localTheme\n } = props;\n const outerTheme = useTheme();\n if (process.env.NODE_ENV !== 'production') {\n if (outerTheme === null && typeof localTheme === 'function') {\n console.error(['MUI: You are providing a theme function prop to the ThemeProvider component:', ' outerTheme} />', '', 'However, no outer theme is present.', 'Make sure a theme is already injected higher in the React tree ' + 'or provide a theme object.'].join('\\n'));\n }\n }\n const theme = React.useMemo(() => {\n const output = outerTheme === null ? {\n ...localTheme\n } : mergeOuterLocalTheme(outerTheme, localTheme);\n if (output != null) {\n output[nested] = outerTheme !== null;\n }\n return output;\n }, [localTheme, outerTheme]);\n return /*#__PURE__*/_jsx(ThemeContext.Provider, {\n value: theme,\n children: children\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? ThemeProvider.propTypes = {\n /**\n * Your component tree.\n */\n children: PropTypes.node,\n /**\n * A theme object. You can provide a function to extend the outer theme.\n */\n theme: PropTypes.oneOfType([PropTypes.object, PropTypes.func]).isRequired\n} : void 0;\nif (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? ThemeProvider.propTypes = exactProp(ThemeProvider.propTypes) : void 0;\n}\nexport default ThemeProvider;","var isDevelopment = false;\n\n/*\n\nBased off glamor's StyleSheet, thanks Sunil ❤️\n\nhigh performance StyleSheet for css-in-js systems\n\n- uses multiple style tags behind the scenes for millions of rules\n- uses `insertRule` for appending in production for *much* faster performance\n\n// usage\n\nimport { StyleSheet } from '@emotion/sheet'\n\nlet styleSheet = new StyleSheet({ key: '', container: document.head })\n\nstyleSheet.insert('#box { border: 1px solid red; }')\n- appends a css rule into the stylesheet\n\nstyleSheet.flush()\n- empties the stylesheet of all its contents\n\n*/\n\nfunction sheetForTag(tag) {\n if (tag.sheet) {\n return tag.sheet;\n } // this weirdness brought to you by firefox\n\n /* istanbul ignore next */\n\n\n for (var i = 0; i < document.styleSheets.length; i++) {\n if (document.styleSheets[i].ownerNode === tag) {\n return document.styleSheets[i];\n }\n } // this function should always return with a value\n // TS can't understand it though so we make it stop complaining here\n\n\n return undefined;\n}\n\nfunction createStyleElement(options) {\n var tag = document.createElement('style');\n tag.setAttribute('data-emotion', options.key);\n\n if (options.nonce !== undefined) {\n tag.setAttribute('nonce', options.nonce);\n }\n\n tag.appendChild(document.createTextNode(''));\n tag.setAttribute('data-s', '');\n return tag;\n}\n\nvar StyleSheet = /*#__PURE__*/function () {\n // Using Node instead of HTMLElement since container may be a ShadowRoot\n function StyleSheet(options) {\n var _this = this;\n\n this._insertTag = function (tag) {\n var before;\n\n if (_this.tags.length === 0) {\n if (_this.insertionPoint) {\n before = _this.insertionPoint.nextSibling;\n } else if (_this.prepend) {\n before = _this.container.firstChild;\n } else {\n before = _this.before;\n }\n } else {\n before = _this.tags[_this.tags.length - 1].nextSibling;\n }\n\n _this.container.insertBefore(tag, before);\n\n _this.tags.push(tag);\n };\n\n this.isSpeedy = options.speedy === undefined ? !isDevelopment : options.speedy;\n this.tags = [];\n this.ctr = 0;\n this.nonce = options.nonce; // key is the value of the data-emotion attribute, it's used to identify different sheets\n\n this.key = options.key;\n this.container = options.container;\n this.prepend = options.prepend;\n this.insertionPoint = options.insertionPoint;\n this.before = null;\n }\n\n var _proto = StyleSheet.prototype;\n\n _proto.hydrate = function hydrate(nodes) {\n nodes.forEach(this._insertTag);\n };\n\n _proto.insert = function insert(rule) {\n // the max length is how many rules we have per style tag, it's 65000 in speedy mode\n // it's 1 in dev because we insert source maps that map a single rule to a location\n // and you can only have one source map per style tag\n if (this.ctr % (this.isSpeedy ? 65000 : 1) === 0) {\n this._insertTag(createStyleElement(this));\n }\n\n var tag = this.tags[this.tags.length - 1];\n\n if (this.isSpeedy) {\n var sheet = sheetForTag(tag);\n\n try {\n // this is the ultrafast version, works across browsers\n // the big drawback is that the css won't be editable in devtools\n sheet.insertRule(rule, sheet.cssRules.length);\n } catch (e) {\n }\n } else {\n tag.appendChild(document.createTextNode(rule));\n }\n\n this.ctr++;\n };\n\n _proto.flush = function flush() {\n this.tags.forEach(function (tag) {\n var _tag$parentNode;\n\n return (_tag$parentNode = tag.parentNode) == null ? void 0 : _tag$parentNode.removeChild(tag);\n });\n this.tags = [];\n this.ctr = 0;\n };\n\n return StyleSheet;\n}();\n\nexport { StyleSheet };\n","/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn charat(value, 0) ^ 45 ? (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3) : 0\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @return {number}\n */\nexport function indexof (value, search) {\n\treturn value.indexOf(search)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n","import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: ''}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0), root, {length: -root.length}, props)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n","export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\nexport var LAYER = '@layer'\n","import {IMPORT, LAYER, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen, sizeof} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\tvar length = sizeof(children)\n\n\tfor (var i = 0; i < length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase LAYER: if (element.children.length) break\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: element.value = element.props.join(',')\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n","import {MS, MOZ, WEBKIT, RULESET, KEYFRAMES, DECLARATION} from './Enum.js'\nimport {match, charat, substr, strlen, sizeof, replace, combine} from './Utility.js'\nimport {copy, tokenize} from './Tokenizer.js'\nimport {serialize} from './Serializer.js'\nimport {prefix} from './Prefixer.js'\n\n/**\n * @param {function[]} collection\n * @return {function}\n */\nexport function middleware (collection) {\n\tvar length = sizeof(collection)\n\n\treturn function (element, index, children, callback) {\n\t\tvar output = ''\n\n\t\tfor (var i = 0; i < length; i++)\n\t\t\toutput += collection[i](element, index, children, callback) || ''\n\n\t\treturn output\n\t}\n}\n\n/**\n * @param {function} callback\n * @return {function}\n */\nexport function rulesheet (callback) {\n\treturn function (element) {\n\t\tif (!element.root)\n\t\t\tif (element = element.return)\n\t\t\t\tcallback(element)\n\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n */\nexport function prefixer (element, index, children, callback) {\n\tif (element.length > -1)\n\t\tif (!element.return)\n\t\t\tswitch (element.type) {\n\t\t\t\tcase DECLARATION: element.return = prefix(element.value, element.length, children)\n\t\t\t\t\treturn\n\t\t\t\tcase KEYFRAMES:\n\t\t\t\t\treturn serialize([copy(element, {value: replace(element.value, '@', '@' + WEBKIT)})], callback)\n\t\t\t\tcase RULESET:\n\t\t\t\t\tif (element.length)\n\t\t\t\t\t\treturn combine(element.props, function (value) {\n\t\t\t\t\t\t\tswitch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n\t\t\t\t\t\t\t\t// :read-(only|write)\n\t\t\t\t\t\t\t\tcase ':read-only': case ':read-write':\n\t\t\t\t\t\t\t\t\treturn serialize([copy(element, {props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]})], callback)\n\t\t\t\t\t\t\t\t// :placeholder\n\t\t\t\t\t\t\t\tcase '::placeholder':\n\t\t\t\t\t\t\t\t\treturn serialize([\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]})\n\t\t\t\t\t\t\t\t\t], callback)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn ''\n\t\t\t\t\t\t})\n\t\t\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n */\nexport function namespace (element) {\n\tswitch (element.type) {\n\t\tcase RULESET:\n\t\t\telement.props = element.props.map(function (value) {\n\t\t\t\treturn combine(tokenize(value), function (value, index, children) {\n\t\t\t\t\tswitch (charat(value, 0)) {\n\t\t\t\t\t\t// \\f\n\t\t\t\t\t\tcase 12:\n\t\t\t\t\t\t\treturn substr(value, 1, strlen(value))\n\t\t\t\t\t\t// \\0 ( + > ~\n\t\t\t\t\t\tcase 0: case 40: case 43: case 62: case 126:\n\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t// :\n\t\t\t\t\t\tcase 58:\n\t\t\t\t\t\t\tif (children[++index] === 'global')\n\t\t\t\t\t\t\t\tchildren[index] = '', children[++index] = '\\f' + substr(children[index], index = 1, -1)\n\t\t\t\t\t\t// \\s\n\t\t\t\t\t\tcase 32:\n\t\t\t\t\t\t\treturn index === 1 ? '' : value\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tswitch (index) {\n\t\t\t\t\t\t\t\tcase 0: element = value\n\t\t\t\t\t\t\t\t\treturn sizeof(children) > 1 ? '' : value\n\t\t\t\t\t\t\t\tcase index = sizeof(children) - 1: case 2:\n\t\t\t\t\t\t\t\t\treturn index === 2 ? value + element + element : value + element\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n","import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, charat, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && charat(characters, length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f') != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset: if (ampersand == -1) characters = replace(characters, /\\f/g, '')\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule === 99 && charat(characters, 3) === 110 ? 100 : atrule) {\n\t\t\t\t\t\t\t\t\t// d l m s\n\t\t\t\t\t\t\t\t\tcase 100: case 108: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @return {object}\n */\nexport function comment (value, root, parent) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @return {object}\n */\nexport function declaration (value, root, parent, length) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length)\n}\n","import { StyleSheet } from '@emotion/sheet';\nimport { dealloc, alloc, next, token, from, peek, delimit, slice, position, RULESET, combine, match, serialize, copy, replace, WEBKIT, MOZ, MS, KEYFRAMES, DECLARATION, hash, charat, strlen, indexof, stringify, rulesheet, middleware, compile } from 'stylis';\nimport '@emotion/weak-memoize';\nimport '@emotion/memoize';\n\nvar identifierWithPointTracking = function identifierWithPointTracking(begin, points, index) {\n var previous = 0;\n var character = 0;\n\n while (true) {\n previous = character;\n character = peek(); // &\\f\n\n if (previous === 38 && character === 12) {\n points[index] = 1;\n }\n\n if (token(character)) {\n break;\n }\n\n next();\n }\n\n return slice(begin, position);\n};\n\nvar toRules = function toRules(parsed, points) {\n // pretend we've started with a comma\n var index = -1;\n var character = 44;\n\n do {\n switch (token(character)) {\n case 0:\n // &\\f\n if (character === 38 && peek() === 12) {\n // this is not 100% correct, we don't account for literal sequences here - like for example quoted strings\n // stylis inserts \\f after & to know when & where it should replace this sequence with the context selector\n // and when it should just concatenate the outer and inner selectors\n // it's very unlikely for this sequence to actually appear in a different context, so we just leverage this fact here\n points[index] = 1;\n }\n\n parsed[index] += identifierWithPointTracking(position - 1, points, index);\n break;\n\n case 2:\n parsed[index] += delimit(character);\n break;\n\n case 4:\n // comma\n if (character === 44) {\n // colon\n parsed[++index] = peek() === 58 ? '&\\f' : '';\n points[index] = parsed[index].length;\n break;\n }\n\n // fallthrough\n\n default:\n parsed[index] += from(character);\n }\n } while (character = next());\n\n return parsed;\n};\n\nvar getRules = function getRules(value, points) {\n return dealloc(toRules(alloc(value), points));\n}; // WeakSet would be more appropriate, but only WeakMap is supported in IE11\n\n\nvar fixedElements = /* #__PURE__ */new WeakMap();\nvar compat = function compat(element) {\n if (element.type !== 'rule' || !element.parent || // positive .length indicates that this rule contains pseudo\n // negative .length indicates that this rule has been already prefixed\n element.length < 1) {\n return;\n }\n\n var value = element.value,\n parent = element.parent;\n var isImplicitRule = element.column === parent.column && element.line === parent.line;\n\n while (parent.type !== 'rule') {\n parent = parent.parent;\n if (!parent) return;\n } // short-circuit for the simplest case\n\n\n if (element.props.length === 1 && value.charCodeAt(0) !== 58\n /* colon */\n && !fixedElements.get(parent)) {\n return;\n } // if this is an implicitly inserted rule (the one eagerly inserted at the each new nested level)\n // then the props has already been manipulated beforehand as they that array is shared between it and its \"rule parent\"\n\n\n if (isImplicitRule) {\n return;\n }\n\n fixedElements.set(element, true);\n var points = [];\n var rules = getRules(value, points);\n var parentRules = parent.props;\n\n for (var i = 0, k = 0; i < rules.length; i++) {\n for (var j = 0; j < parentRules.length; j++, k++) {\n element.props[k] = points[i] ? rules[i].replace(/&\\f/g, parentRules[j]) : parentRules[j] + \" \" + rules[i];\n }\n }\n};\nvar removeLabel = function removeLabel(element) {\n if (element.type === 'decl') {\n var value = element.value;\n\n if ( // charcode for l\n value.charCodeAt(0) === 108 && // charcode for b\n value.charCodeAt(2) === 98) {\n // this ignores label\n element[\"return\"] = '';\n element.value = '';\n }\n }\n};\n\n/* eslint-disable no-fallthrough */\n\nfunction prefix(value, length) {\n switch (hash(value, length)) {\n // color-adjust\n case 5103:\n return WEBKIT + 'print-' + value + value;\n // animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n\n case 5737:\n case 4201:\n case 3177:\n case 3433:\n case 1641:\n case 4457:\n case 2921: // text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n\n case 5572:\n case 6356:\n case 5844:\n case 3191:\n case 6645:\n case 3005: // mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,\n\n case 6391:\n case 5879:\n case 5623:\n case 6135:\n case 4599:\n case 4855: // background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n\n case 4215:\n case 6389:\n case 5109:\n case 5365:\n case 5621:\n case 3829:\n return WEBKIT + value + value;\n // appearance, user-select, transform, hyphens, text-size-adjust\n\n case 5349:\n case 4246:\n case 4810:\n case 6968:\n case 2756:\n return WEBKIT + value + MOZ + value + MS + value + value;\n // flex, flex-direction\n\n case 6828:\n case 4268:\n return WEBKIT + value + MS + value + value;\n // order\n\n case 6165:\n return WEBKIT + value + MS + 'flex-' + value + value;\n // align-items\n\n case 5187:\n return WEBKIT + value + replace(value, /(\\w+).+(:[^]+)/, WEBKIT + 'box-$1$2' + MS + 'flex-$1$2') + value;\n // align-self\n\n case 5443:\n return WEBKIT + value + MS + 'flex-item-' + replace(value, /flex-|-self/, '') + value;\n // align-content\n\n case 4675:\n return WEBKIT + value + MS + 'flex-line-pack' + replace(value, /align-content|flex-|-self/, '') + value;\n // flex-shrink\n\n case 5548:\n return WEBKIT + value + MS + replace(value, 'shrink', 'negative') + value;\n // flex-basis\n\n case 5292:\n return WEBKIT + value + MS + replace(value, 'basis', 'preferred-size') + value;\n // flex-grow\n\n case 6060:\n return WEBKIT + 'box-' + replace(value, '-grow', '') + WEBKIT + value + MS + replace(value, 'grow', 'positive') + value;\n // transition\n\n case 4554:\n return WEBKIT + replace(value, /([^-])(transform)/g, '$1' + WEBKIT + '$2') + value;\n // cursor\n\n case 6187:\n return replace(replace(replace(value, /(zoom-|grab)/, WEBKIT + '$1'), /(image-set)/, WEBKIT + '$1'), value, '') + value;\n // background, background-image\n\n case 5495:\n case 3959:\n return replace(value, /(image-set\\([^]*)/, WEBKIT + '$1' + '$`$1');\n // justify-content\n\n case 4968:\n return replace(replace(value, /(.+:)(flex-)?(.*)/, WEBKIT + 'box-pack:$3' + MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + WEBKIT + value + value;\n // (margin|padding)-inline-(start|end)\n\n case 4095:\n case 3583:\n case 4068:\n case 2532:\n return replace(value, /(.+)-inline(.+)/, WEBKIT + '$1$2') + value;\n // (min|max)?(width|height|inline-size|block-size)\n\n case 8116:\n case 7059:\n case 5753:\n case 5535:\n case 5445:\n case 5701:\n case 4933:\n case 4677:\n case 5533:\n case 5789:\n case 5021:\n case 4765:\n // stretch, max-content, min-content, fill-available\n if (strlen(value) - 1 - length > 6) switch (charat(value, length + 1)) {\n // (m)ax-content, (m)in-content\n case 109:\n // -\n if (charat(value, length + 4) !== 45) break;\n // (f)ill-available, (f)it-content\n\n case 102:\n return replace(value, /(.+:)(.+)-([^]+)/, '$1' + WEBKIT + '$2-$3' + '$1' + MOZ + (charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value;\n // (s)tretch\n\n case 115:\n return ~indexof(value, 'stretch') ? prefix(replace(value, 'stretch', 'fill-available'), length) + value : value;\n }\n break;\n // position: sticky\n\n case 4949:\n // (s)ticky?\n if (charat(value, length + 1) !== 115) break;\n // display: (flex|inline-flex)\n\n case 6444:\n switch (charat(value, strlen(value) - 3 - (~indexof(value, '!important') && 10))) {\n // stic(k)y\n case 107:\n return replace(value, ':', ':' + WEBKIT) + value;\n // (inline-)?fl(e)x\n\n case 101:\n return replace(value, /(.+:)([^;!]+)(;|!.+)?/, '$1' + WEBKIT + (charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + WEBKIT + '$2$3' + '$1' + MS + '$2box$3') + value;\n }\n\n break;\n // writing-mode\n\n case 5936:\n switch (charat(value, length + 11)) {\n // vertical-l(r)\n case 114:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value;\n // vertical-r(l)\n\n case 108:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value;\n // horizontal(-)tb\n\n case 45:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value;\n }\n\n return WEBKIT + value + MS + value + value;\n }\n\n return value;\n}\n\nvar prefixer = function prefixer(element, index, children, callback) {\n if (element.length > -1) if (!element[\"return\"]) switch (element.type) {\n case DECLARATION:\n element[\"return\"] = prefix(element.value, element.length);\n break;\n\n case KEYFRAMES:\n return serialize([copy(element, {\n value: replace(element.value, '@', '@' + WEBKIT)\n })], callback);\n\n case RULESET:\n if (element.length) return combine(element.props, function (value) {\n switch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n // :read-(only|write)\n case ':read-only':\n case ':read-write':\n return serialize([copy(element, {\n props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]\n })], callback);\n // :placeholder\n\n case '::placeholder':\n return serialize([copy(element, {\n props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]\n }), copy(element, {\n props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]\n }), copy(element, {\n props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]\n })], callback);\n }\n\n return '';\n });\n }\n};\n\nvar defaultStylisPlugins = [prefixer];\n\nvar createCache = function\n /*: EmotionCache */\ncreateCache(options\n/*: Options */\n) {\n var key = options.key;\n\n if (key === 'css') {\n var ssrStyles = document.querySelectorAll(\"style[data-emotion]:not([data-s])\"); // get SSRed styles out of the way of React's hydration\n // document.head is a safe place to move them to(though note document.head is not necessarily the last place they will be)\n // note this very very intentionally targets all style elements regardless of the key to ensure\n // that creating a cache works inside of render of a React component\n\n Array.prototype.forEach.call(ssrStyles, function (node\n /*: HTMLStyleElement */\n ) {\n // we want to only move elements which have a space in the data-emotion attribute value\n // because that indicates that it is an Emotion 11 server-side rendered style elements\n // while we will already ignore Emotion 11 client-side inserted styles because of the :not([data-s]) part in the selector\n // Emotion 10 client-side inserted styles did not have data-s (but importantly did not have a space in their data-emotion attributes)\n // so checking for the space ensures that loading Emotion 11 after Emotion 10 has inserted some styles\n // will not result in the Emotion 10 styles being destroyed\n var dataEmotionAttribute = node.getAttribute('data-emotion');\n\n if (dataEmotionAttribute.indexOf(' ') === -1) {\n return;\n }\n\n document.head.appendChild(node);\n node.setAttribute('data-s', '');\n });\n }\n\n var stylisPlugins = options.stylisPlugins || defaultStylisPlugins;\n\n var inserted = {};\n var container;\n /* : Node */\n\n var nodesToHydrate = [];\n\n {\n container = options.container || document.head;\n Array.prototype.forEach.call( // this means we will ignore elements which don't have a space in them which\n // means that the style elements we're looking at are only Emotion 11 server-rendered style elements\n document.querySelectorAll(\"style[data-emotion^=\\\"\" + key + \" \\\"]\"), function (node\n /*: HTMLStyleElement */\n ) {\n var attrib = node.getAttribute(\"data-emotion\").split(' ');\n\n for (var i = 1; i < attrib.length; i++) {\n inserted[attrib[i]] = true;\n }\n\n nodesToHydrate.push(node);\n });\n }\n\n var _insert;\n /*: (\n selector: string,\n serialized: SerializedStyles,\n sheet: StyleSheet,\n shouldCache: boolean\n ) => string | void */\n\n\n var omnipresentPlugins = [compat, removeLabel];\n\n {\n var currentSheet;\n var finalizingPlugins = [stringify, rulesheet(function (rule) {\n currentSheet.insert(rule);\n })];\n var serializer = middleware(omnipresentPlugins.concat(stylisPlugins, finalizingPlugins));\n\n var stylis = function stylis(styles) {\n return serialize(compile(styles), serializer);\n };\n\n _insert = function\n /*: void */\n insert(selector\n /*: string */\n , serialized\n /*: SerializedStyles */\n , sheet\n /*: StyleSheet */\n , shouldCache\n /*: boolean */\n ) {\n currentSheet = sheet;\n\n stylis(selector ? selector + \"{\" + serialized.styles + \"}\" : serialized.styles);\n\n if (shouldCache) {\n cache.inserted[serialized.name] = true;\n }\n };\n }\n\n var cache\n /*: EmotionCache */\n = {\n key: key,\n sheet: new StyleSheet({\n key: key,\n container: container,\n nonce: options.nonce,\n speedy: options.speedy,\n prepend: options.prepend,\n insertionPoint: options.insertionPoint\n }),\n nonce: options.nonce,\n inserted: inserted,\n registered: {},\n insert: _insert\n };\n cache.sheet.hydrate(nodesToHydrate);\n return cache;\n};\n\nexport { createCache as default };\n","var unitlessKeys = {\n animationIterationCount: 1,\n aspectRatio: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n scale: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport { unitlessKeys as default };\n","function memoize(fn) {\n var cache = Object.create(null);\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport { memoize as default };\n","import hashString from '@emotion/hash';\nimport unitless from '@emotion/unitless';\nimport memoize from '@emotion/memoize';\n\nvar isDevelopment = false;\n\nvar hyphenateRegex = /[A-Z]|^ms/g;\nvar animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;\n\nvar isCustomProperty = function isCustomProperty(property) {\n return property.charCodeAt(1) === 45;\n};\n\nvar isProcessableValue = function isProcessableValue(value) {\n return value != null && typeof value !== 'boolean';\n};\n\nvar processStyleName = /* #__PURE__ */memoize(function (styleName) {\n return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();\n});\n\nvar processStyleValue = function processStyleValue(key, value) {\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n if (typeof value === 'string') {\n return value.replace(animationRegex, function (match, p1, p2) {\n cursor = {\n name: p1,\n styles: p2,\n next: cursor\n };\n return p1;\n });\n }\n }\n }\n\n if (unitless[key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {\n return value + 'px';\n }\n\n return value;\n};\n\nvar noComponentSelectorMessage = 'Component selectors can only be used in conjunction with ' + '@emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware ' + 'compiler transform.';\n\nfunction handleInterpolation(mergedProps, registered, interpolation) {\n if (interpolation == null) {\n return '';\n }\n\n var componentSelector = interpolation;\n\n if (componentSelector.__emotion_styles !== undefined) {\n\n return componentSelector;\n }\n\n switch (typeof interpolation) {\n case 'boolean':\n {\n return '';\n }\n\n case 'object':\n {\n var keyframes = interpolation;\n\n if (keyframes.anim === 1) {\n cursor = {\n name: keyframes.name,\n styles: keyframes.styles,\n next: cursor\n };\n return keyframes.name;\n }\n\n var serializedStyles = interpolation;\n\n if (serializedStyles.styles !== undefined) {\n var next = serializedStyles.next;\n\n if (next !== undefined) {\n // not the most efficient thing ever but this is a pretty rare case\n // and there will be very few iterations of this generally\n while (next !== undefined) {\n cursor = {\n name: next.name,\n styles: next.styles,\n next: cursor\n };\n next = next.next;\n }\n }\n\n var styles = serializedStyles.styles + \";\";\n\n return styles;\n }\n\n return createStringFromObject(mergedProps, registered, interpolation);\n }\n\n case 'function':\n {\n if (mergedProps !== undefined) {\n var previousCursor = cursor;\n var result = interpolation(mergedProps);\n cursor = previousCursor;\n return handleInterpolation(mergedProps, registered, result);\n }\n\n break;\n }\n } // finalize string values (regular strings and functions interpolated into css calls)\n\n\n var asString = interpolation;\n\n if (registered == null) {\n return asString;\n }\n\n var cached = registered[asString];\n return cached !== undefined ? cached : asString;\n}\n\nfunction createStringFromObject(mergedProps, registered, obj) {\n var string = '';\n\n if (Array.isArray(obj)) {\n for (var i = 0; i < obj.length; i++) {\n string += handleInterpolation(mergedProps, registered, obj[i]) + \";\";\n }\n } else {\n for (var key in obj) {\n var value = obj[key];\n\n if (typeof value !== 'object') {\n var asString = value;\n\n if (registered != null && registered[asString] !== undefined) {\n string += key + \"{\" + registered[asString] + \"}\";\n } else if (isProcessableValue(asString)) {\n string += processStyleName(key) + \":\" + processStyleValue(key, asString) + \";\";\n }\n } else {\n if (key === 'NO_COMPONENT_SELECTOR' && isDevelopment) {\n throw new Error(noComponentSelectorMessage);\n }\n\n if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {\n for (var _i = 0; _i < value.length; _i++) {\n if (isProcessableValue(value[_i])) {\n string += processStyleName(key) + \":\" + processStyleValue(key, value[_i]) + \";\";\n }\n }\n } else {\n var interpolated = handleInterpolation(mergedProps, registered, value);\n\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n string += processStyleName(key) + \":\" + interpolated + \";\";\n break;\n }\n\n default:\n {\n\n string += key + \"{\" + interpolated + \"}\";\n }\n }\n }\n }\n }\n }\n\n return string;\n}\n\nvar labelPattern = /label:\\s*([^\\s;{]+)\\s*(;|$)/g;\n// keyframes are stored on the SerializedStyles object as a linked list\n\n\nvar cursor;\nfunction serializeStyles(args, registered, mergedProps) {\n if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {\n return args[0];\n }\n\n var stringMode = true;\n var styles = '';\n cursor = undefined;\n var strings = args[0];\n\n if (strings == null || strings.raw === undefined) {\n stringMode = false;\n styles += handleInterpolation(mergedProps, registered, strings);\n } else {\n var asTemplateStringsArr = strings;\n\n styles += asTemplateStringsArr[0];\n } // we start at 1 since we've already handled the first arg\n\n\n for (var i = 1; i < args.length; i++) {\n styles += handleInterpolation(mergedProps, registered, args[i]);\n\n if (stringMode) {\n var templateStringsArr = strings;\n\n styles += templateStringsArr[i];\n }\n }\n\n\n labelPattern.lastIndex = 0;\n var identifierName = '';\n var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5\n\n while ((match = labelPattern.exec(styles)) !== null) {\n identifierName += '-' + match[1];\n }\n\n var name = hashString(styles) + identifierName;\n\n return {\n name: name,\n styles: styles,\n next: cursor\n };\n}\n\nexport { serializeStyles };\n","/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n // 'm' and 'r' are mixing constants generated offline.\n // They're not really 'magic', they just happen to work well.\n // const m = 0x5bd1e995;\n // const r = 24;\n // Initialize the hash\n var h = 0; // Mix 4 bytes at a time into the hash\n\n var k,\n i = 0,\n len = str.length;\n\n for (; len >= 4; ++i, len -= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n k ^=\n /* k >>> r: */\n k >>> 24;\n h =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Handle the last few bytes of the input array\n\n\n switch (len) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Do a few final mixes of the hash to ensure the last few\n // bytes are well-incorporated.\n\n\n h ^= h >>> 13;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexport { murmur2 as default };\n","import * as React from 'react';\n\nvar syncFallback = function syncFallback(create) {\n return create();\n};\n\nvar useInsertionEffect = React['useInsertion' + 'Effect'] ? React['useInsertion' + 'Effect'] : false;\nvar useInsertionEffectAlwaysWithSyncFallback = useInsertionEffect || syncFallback;\nvar useInsertionEffectWithLayoutFallback = useInsertionEffect || React.useLayoutEffect;\n\nexport { useInsertionEffectAlwaysWithSyncFallback, useInsertionEffectWithLayoutFallback };\n","import * as React from 'react';\nimport { useContext, forwardRef } from 'react';\nimport createCache from '@emotion/cache';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport weakMemoize from '@emotion/weak-memoize';\nimport hoistNonReactStatics from '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport { getRegisteredStyles, registerStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\n\nvar isDevelopment = false;\n\n/* import { type EmotionCache } from '@emotion/utils' */\nvar EmotionCacheContext\n/*: React.Context */\n= /* #__PURE__ */React.createContext( // we're doing this to avoid preconstruct's dead code elimination in this one case\n// because this module is primarily intended for the browser and node\n// but it's also required in react native and similar environments sometimes\n// and we could have a special build just for that\n// but this is much easier and the native packages\n// might use a different theme context in the future anyway\ntypeof HTMLElement !== 'undefined' ? /* #__PURE__ */createCache({\n key: 'css'\n}) : null);\n\nvar CacheProvider = EmotionCacheContext.Provider;\nvar __unsafe_useEmotionCache = function useEmotionCache()\n/*: EmotionCache | null*/\n{\n return useContext(EmotionCacheContext);\n};\n\nvar withEmotionCache = function withEmotionCache\n/* > */\n(func\n/*: (props: Props, cache: EmotionCache, ref: Ref) => React.Node */\n)\n/*: React.AbstractComponent */\n{\n return /*#__PURE__*/forwardRef(function (props\n /*: Props */\n , ref\n /*: Ref */\n ) {\n // the cache will never be null in the browser\n var cache = useContext(EmotionCacheContext);\n return func(props, cache, ref);\n });\n};\n\nvar ThemeContext = /* #__PURE__ */React.createContext({});\n\nvar useTheme = function useTheme() {\n return React.useContext(ThemeContext);\n};\n\nvar getTheme = function getTheme(outerTheme\n/*: Object */\n, theme\n/*: Object | (Object => Object) */\n) {\n if (typeof theme === 'function') {\n var mergedTheme = theme(outerTheme);\n\n return mergedTheme;\n }\n\n return _extends({}, outerTheme, theme);\n};\n\nvar createCacheWithTheme = /* #__PURE__ */weakMemoize(function (outerTheme) {\n return weakMemoize(function (theme) {\n return getTheme(outerTheme, theme);\n });\n});\n/*\ntype ThemeProviderProps = {\n theme: Object | (Object => Object),\n children: React.Node\n}\n*/\n\nvar ThemeProvider = function ThemeProvider(props\n/*: ThemeProviderProps */\n) {\n var theme = React.useContext(ThemeContext);\n\n if (props.theme !== theme) {\n theme = createCacheWithTheme(theme)(props.theme);\n }\n\n return /*#__PURE__*/React.createElement(ThemeContext.Provider, {\n value: theme\n }, props.children);\n};\nfunction withTheme\n/* */\n(Component\n/*: React.AbstractComponent */\n)\n/*: React.AbstractComponent<$Diff> */\n{\n var componentName = Component.displayName || Component.name || 'Component';\n\n var render = function render(props, ref) {\n var theme = React.useContext(ThemeContext);\n return /*#__PURE__*/React.createElement(Component, _extends({\n theme: theme,\n ref: ref\n }, props));\n };\n\n var WithTheme = /*#__PURE__*/React.forwardRef(render);\n WithTheme.displayName = \"WithTheme(\" + componentName + \")\";\n return hoistNonReactStatics(WithTheme, Component);\n}\n\nvar hasOwn = {}.hasOwnProperty;\n\nvar typePropName = '__EMOTION_TYPE_PLEASE_DO_NOT_USE__';\nvar createEmotionProps = function createEmotionProps(type\n/*: React.ElementType */\n, props\n/*: Object */\n) {\n\n var newProps\n /*: any */\n = {};\n\n for (var key in props) {\n if (hasOwn.call(props, key)) {\n newProps[key] = props[key];\n }\n }\n\n newProps[typePropName] = type; // Runtime labeling is an opt-in feature because:\n\n return newProps;\n};\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serialized = _ref.serialized,\n isStringTag = _ref.isStringTag;\n registerStyles(cache, serialized, isStringTag);\n useInsertionEffectAlwaysWithSyncFallback(function () {\n return insertStyles(cache, serialized, isStringTag);\n });\n\n return null;\n};\n\nvar Emotion = /* #__PURE__ */withEmotionCache(\n/* */\nfunction (props, cache, ref) {\n var cssProp = props.css; // so that using `css` from `emotion` and passing the result to the css prop works\n // not passing the registered cache to serializeStyles because it would\n // make certain babel optimisations not possible\n\n if (typeof cssProp === 'string' && cache.registered[cssProp] !== undefined) {\n cssProp = cache.registered[cssProp];\n }\n\n var WrappedComponent = props[typePropName];\n var registeredStyles = [cssProp];\n var className = '';\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, registeredStyles, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(registeredStyles, undefined, React.useContext(ThemeContext));\n\n className += cache.key + \"-\" + serialized.name;\n var newProps = {};\n\n for (var key in props) {\n if (hasOwn.call(props, key) && key !== 'css' && key !== typePropName && (!isDevelopment )) {\n newProps[key] = props[key];\n }\n }\n\n newProps.className = className;\n\n if (ref) {\n newProps.ref = ref;\n }\n\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n cache: cache,\n serialized: serialized,\n isStringTag: typeof WrappedComponent === 'string'\n }), /*#__PURE__*/React.createElement(WrappedComponent, newProps));\n});\n\nvar Emotion$1 = Emotion;\n\nexport { CacheProvider as C, Emotion$1 as E, ThemeContext as T, __unsafe_useEmotionCache as _, ThemeProvider as a, withTheme as b, createEmotionProps as c, hasOwn as h, isDevelopment as i, useTheme as u, withEmotionCache as w };\n","'use client';\n\nimport * as React from 'react';\nimport { ThemeContext } from '@mui/styled-engine';\nfunction isObjectEmpty(obj) {\n return Object.keys(obj).length === 0;\n}\nfunction useTheme(defaultTheme = null) {\n const contextTheme = React.useContext(ThemeContext);\n return !contextTheme || isObjectEmpty(contextTheme) ? defaultTheme : contextTheme;\n}\nexport default useTheme;","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst RtlContext = /*#__PURE__*/React.createContext();\nfunction RtlProvider({\n value,\n ...props\n}) {\n return /*#__PURE__*/_jsx(RtlContext.Provider, {\n value: value ?? true,\n ...props\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? RtlProvider.propTypes = {\n children: PropTypes.node,\n value: PropTypes.bool\n} : void 0;\nexport const useRtl = () => {\n const value = React.useContext(RtlContext);\n return value ?? false;\n};\nexport default RtlProvider;","/**\n * Add keys, values of `defaultProps` that does not exist in `props`\n * @param defaultProps\n * @param props\n * @returns resolved props\n */\nexport default function resolveProps(defaultProps, props) {\n const output = {\n ...props\n };\n for (const key in defaultProps) {\n if (Object.prototype.hasOwnProperty.call(defaultProps, key)) {\n const propName = key;\n if (propName === 'components' || propName === 'slots') {\n output[propName] = {\n ...defaultProps[propName],\n ...output[propName]\n };\n } else if (propName === 'componentsProps' || propName === 'slotProps') {\n const defaultSlotProps = defaultProps[propName];\n const slotProps = props[propName];\n if (!slotProps) {\n output[propName] = defaultSlotProps || {};\n } else if (!defaultSlotProps) {\n output[propName] = slotProps;\n } else {\n output[propName] = {\n ...slotProps\n };\n for (const slotKey in defaultSlotProps) {\n if (Object.prototype.hasOwnProperty.call(defaultSlotProps, slotKey)) {\n const slotPropName = slotKey;\n output[propName][slotPropName] = resolveProps(defaultSlotProps[slotPropName], slotProps[slotPropName]);\n }\n }\n }\n } else if (output[propName] === undefined) {\n output[propName] = defaultProps[propName];\n }\n }\n }\n return output;\n}","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport resolveProps from '@mui/utils/resolveProps';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst PropsContext = /*#__PURE__*/React.createContext(undefined);\nfunction DefaultPropsProvider({\n value,\n children\n}) {\n return /*#__PURE__*/_jsx(PropsContext.Provider, {\n value: value,\n children: children\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? DefaultPropsProvider.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * @ignore\n */\n children: PropTypes.node,\n /**\n * @ignore\n */\n value: PropTypes.object\n} : void 0;\nfunction getThemeProps(params) {\n const {\n theme,\n name,\n props\n } = params;\n if (!theme || !theme.components || !theme.components[name]) {\n return props;\n }\n const config = theme.components[name];\n if (config.defaultProps) {\n // compatible with v5 signature\n return resolveProps(config.defaultProps, props);\n }\n if (!config.styleOverrides && !config.variants) {\n // v6 signature, no property 'defaultProps'\n return resolveProps(config, props);\n }\n return props;\n}\nexport function useDefaultProps({\n props,\n name\n}) {\n const ctx = React.useContext(PropsContext);\n return getThemeProps({\n props,\n name,\n theme: {\n components: ctx\n }\n });\n}\nexport default DefaultPropsProvider;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { ThemeProvider as MuiThemeProvider, useTheme as usePrivateTheme } from '@mui/private-theming';\nimport exactProp from '@mui/utils/exactProp';\nimport { ThemeContext as StyledEngineThemeContext } from '@mui/styled-engine';\nimport useThemeWithoutDefault from \"../useThemeWithoutDefault/index.js\";\nimport RtlProvider from \"../RtlProvider/index.js\";\nimport DefaultPropsProvider from \"../DefaultPropsProvider/index.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst EMPTY_THEME = {};\nfunction useThemeScoping(themeId, upperTheme, localTheme, isPrivate = false) {\n return React.useMemo(() => {\n const resolvedTheme = themeId ? upperTheme[themeId] || upperTheme : upperTheme;\n if (typeof localTheme === 'function') {\n const mergedTheme = localTheme(resolvedTheme);\n const result = themeId ? {\n ...upperTheme,\n [themeId]: mergedTheme\n } : mergedTheme;\n // must return a function for the private theme to NOT merge with the upper theme.\n // see the test case \"use provided theme from a callback\" in ThemeProvider.test.js\n if (isPrivate) {\n return () => result;\n }\n return result;\n }\n return themeId ? {\n ...upperTheme,\n [themeId]: localTheme\n } : {\n ...upperTheme,\n ...localTheme\n };\n }, [themeId, upperTheme, localTheme, isPrivate]);\n}\n\n/**\n * This component makes the `theme` available down the React tree.\n * It should preferably be used at **the root of your component tree**.\n *\n * // existing use case\n * // theme scoping\n */\nfunction ThemeProvider(props) {\n const {\n children,\n theme: localTheme,\n themeId\n } = props;\n const upperTheme = useThemeWithoutDefault(EMPTY_THEME);\n const upperPrivateTheme = usePrivateTheme() || EMPTY_THEME;\n if (process.env.NODE_ENV !== 'production') {\n if (upperTheme === null && typeof localTheme === 'function' || themeId && upperTheme && !upperTheme[themeId] && typeof localTheme === 'function') {\n console.error(['MUI: You are providing a theme function prop to the ThemeProvider component:', ' outerTheme} />', '', 'However, no outer theme is present.', 'Make sure a theme is already injected higher in the React tree ' + 'or provide a theme object.'].join('\\n'));\n }\n }\n const engineTheme = useThemeScoping(themeId, upperTheme, localTheme);\n const privateTheme = useThemeScoping(themeId, upperPrivateTheme, localTheme, true);\n const rtlValue = engineTheme.direction === 'rtl';\n return /*#__PURE__*/_jsx(MuiThemeProvider, {\n theme: privateTheme,\n children: /*#__PURE__*/_jsx(StyledEngineThemeContext.Provider, {\n value: engineTheme,\n children: /*#__PURE__*/_jsx(RtlProvider, {\n value: rtlValue,\n children: /*#__PURE__*/_jsx(DefaultPropsProvider, {\n value: engineTheme?.components,\n children: children\n })\n })\n })\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? ThemeProvider.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * Your component tree.\n */\n children: PropTypes.node,\n /**\n * A theme object. You can provide a function to extend the outer theme.\n */\n theme: PropTypes.oneOfType([PropTypes.func, PropTypes.object]).isRequired,\n /**\n * The design system's unique id for getting the corresponded theme when there are multiple design systems.\n */\n themeId: PropTypes.string\n} : void 0;\nif (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? ThemeProvider.propTypes = exactProp(ThemeProvider.propTypes) : void 0;\n}\nexport default ThemeProvider;","export default '$$material';","'use client';\n\nimport * as React from 'react';\nimport { ThemeProvider as SystemThemeProvider } from '@mui/system';\nimport THEME_ID from \"./identifier.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default function ThemeProviderNoVars({\n theme: themeInput,\n ...props\n}) {\n const scopedTheme = THEME_ID in themeInput ? themeInput[THEME_ID] : undefined;\n return /*#__PURE__*/_jsx(SystemThemeProvider, {\n ...props,\n themeId: scopedTheme ? THEME_ID : undefined,\n theme: scopedTheme || themeInput\n });\n}","/**\n * WARNING: Don't import this directly. It's imported by the code generated by\n * `@mui/interal-babel-plugin-minify-errors`. Make sure to always use string literals in `Error`\n * constructors to ensure the plugin works as expected. Supported patterns include:\n * throw new Error('My message');\n * throw new Error(`My message: ${foo}`);\n * throw new Error(`My message: ${foo}` + 'another string');\n * ...\n * @param {number} code\n */\nexport default function formatMuiErrorMessage(code, ...args) {\n const url = new URL(`https://mui.com/production-error/?code=${code}`);\n args.forEach(arg => url.searchParams.append('args[]', arg));\n return `Minified MUI error #${code}; visit ${url} for the full message.`;\n}","import _formatMuiErrorMessage from \"@mui/utils/formatMuiErrorMessage\";\n// It should to be noted that this function isn't equivalent to `text-transform: capitalize`.\n//\n// A strict capitalization should uppercase the first letter of each word in the sentence.\n// We only handle the first word.\nexport default function capitalize(string) {\n if (typeof string !== 'string') {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'MUI: `capitalize(string)` expects a string argument.' : _formatMuiErrorMessage(7));\n }\n return string.charAt(0).toUpperCase() + string.slice(1);\n}","// https://github.com/sindresorhus/is-plain-obj/blob/main/index.js\nexport function isPlainObject(item) {\n if (typeof item !== 'object' || item === null) {\n return false;\n }\n const prototype = Object.getPrototypeOf(item);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in item) && !(Symbol.iterator in item);\n}\nfunction deepClone(source) {\n if (!isPlainObject(source)) {\n return source;\n }\n const output = {};\n Object.keys(source).forEach(key => {\n output[key] = deepClone(source[key]);\n });\n return output;\n}\nexport default function deepmerge(target, source, options = {\n clone: true\n}) {\n const output = options.clone ? {\n ...target\n } : target;\n if (isPlainObject(target) && isPlainObject(source)) {\n Object.keys(source).forEach(key => {\n if (isPlainObject(source[key]) &&\n // Avoid prototype pollution\n Object.prototype.hasOwnProperty.call(target, key) && isPlainObject(target[key])) {\n // Since `output` is a clone of `target` and we have narrowed `target` in this block we can cast to the same type.\n output[key] = deepmerge(target[key], source[key], options);\n } else if (options.clone) {\n output[key] = isPlainObject(source[key]) ? deepClone(source[key]) : source[key];\n } else {\n output[key] = source[key];\n }\n });\n }\n return output;\n}","import deepmerge from '@mui/utils/deepmerge';\nfunction merge(acc, item) {\n if (!item) {\n return acc;\n }\n return deepmerge(acc, item, {\n clone: false // No need to clone deep, it's way faster.\n });\n}\nexport default merge;","import PropTypes from 'prop-types';\nimport deepmerge from '@mui/utils/deepmerge';\nimport merge from \"../merge/index.js\";\nimport { isCqShorthand, getContainerQuery } from \"../cssContainerQueries/index.js\";\n\n// The breakpoint **start** at this value.\n// For instance with the first breakpoint xs: [xs, sm[.\nexport const values = {\n xs: 0,\n // phone\n sm: 600,\n // tablet\n md: 900,\n // small laptop\n lg: 1200,\n // desktop\n xl: 1536 // large screen\n};\nconst defaultBreakpoints = {\n // Sorted ASC by size. That's important.\n // It can't be configured as it's used statically for propTypes.\n keys: ['xs', 'sm', 'md', 'lg', 'xl'],\n up: key => `@media (min-width:${values[key]}px)`\n};\nconst defaultContainerQueries = {\n containerQueries: containerName => ({\n up: key => {\n let result = typeof key === 'number' ? key : values[key] || key;\n if (typeof result === 'number') {\n result = `${result}px`;\n }\n return containerName ? `@container ${containerName} (min-width:${result})` : `@container (min-width:${result})`;\n }\n })\n};\nexport function handleBreakpoints(props, propValue, styleFromPropValue) {\n const theme = props.theme || {};\n if (Array.isArray(propValue)) {\n const themeBreakpoints = theme.breakpoints || defaultBreakpoints;\n return propValue.reduce((acc, item, index) => {\n acc[themeBreakpoints.up(themeBreakpoints.keys[index])] = styleFromPropValue(propValue[index]);\n return acc;\n }, {});\n }\n if (typeof propValue === 'object') {\n const themeBreakpoints = theme.breakpoints || defaultBreakpoints;\n return Object.keys(propValue).reduce((acc, breakpoint) => {\n if (isCqShorthand(themeBreakpoints.keys, breakpoint)) {\n const containerKey = getContainerQuery(theme.containerQueries ? theme : defaultContainerQueries, breakpoint);\n if (containerKey) {\n acc[containerKey] = styleFromPropValue(propValue[breakpoint], breakpoint);\n }\n }\n // key is breakpoint\n else if (Object.keys(themeBreakpoints.values || values).includes(breakpoint)) {\n const mediaKey = themeBreakpoints.up(breakpoint);\n acc[mediaKey] = styleFromPropValue(propValue[breakpoint], breakpoint);\n } else {\n const cssKey = breakpoint;\n acc[cssKey] = propValue[cssKey];\n }\n return acc;\n }, {});\n }\n const output = styleFromPropValue(propValue);\n return output;\n}\nfunction breakpoints(styleFunction) {\n // false positive\n // eslint-disable-next-line react/function-component-definition\n const newStyleFunction = props => {\n const theme = props.theme || {};\n const base = styleFunction(props);\n const themeBreakpoints = theme.breakpoints || defaultBreakpoints;\n const extended = themeBreakpoints.keys.reduce((acc, key) => {\n if (props[key]) {\n acc = acc || {};\n acc[themeBreakpoints.up(key)] = styleFunction({\n theme,\n ...props[key]\n });\n }\n return acc;\n }, null);\n return merge(base, extended);\n };\n newStyleFunction.propTypes = process.env.NODE_ENV !== 'production' ? {\n ...styleFunction.propTypes,\n xs: PropTypes.object,\n sm: PropTypes.object,\n md: PropTypes.object,\n lg: PropTypes.object,\n xl: PropTypes.object\n } : {};\n newStyleFunction.filterProps = ['xs', 'sm', 'md', 'lg', 'xl', ...styleFunction.filterProps];\n return newStyleFunction;\n}\nexport function createEmptyBreakpointObject(breakpointsInput = {}) {\n const breakpointsInOrder = breakpointsInput.keys?.reduce((acc, key) => {\n const breakpointStyleKey = breakpointsInput.up(key);\n acc[breakpointStyleKey] = {};\n return acc;\n }, {});\n return breakpointsInOrder || {};\n}\nexport function removeUnusedBreakpoints(breakpointKeys, style) {\n return breakpointKeys.reduce((acc, key) => {\n const breakpointOutput = acc[key];\n const isBreakpointUnused = !breakpointOutput || Object.keys(breakpointOutput).length === 0;\n if (isBreakpointUnused) {\n delete acc[key];\n }\n return acc;\n }, style);\n}\nexport function mergeBreakpointsInOrder(breakpointsInput, ...styles) {\n const emptyBreakpoints = createEmptyBreakpointObject(breakpointsInput);\n const mergedOutput = [emptyBreakpoints, ...styles].reduce((prev, next) => deepmerge(prev, next), {});\n return removeUnusedBreakpoints(Object.keys(emptyBreakpoints), mergedOutput);\n}\n\n// compute base for responsive values; e.g.,\n// [1,2,3] => {xs: true, sm: true, md: true}\n// {xs: 1, sm: 2, md: 3} => {xs: true, sm: true, md: true}\nexport function computeBreakpointsBase(breakpointValues, themeBreakpoints) {\n // fixed value\n if (typeof breakpointValues !== 'object') {\n return {};\n }\n const base = {};\n const breakpointsKeys = Object.keys(themeBreakpoints);\n if (Array.isArray(breakpointValues)) {\n breakpointsKeys.forEach((breakpoint, i) => {\n if (i < breakpointValues.length) {\n base[breakpoint] = true;\n }\n });\n } else {\n breakpointsKeys.forEach(breakpoint => {\n if (breakpointValues[breakpoint] != null) {\n base[breakpoint] = true;\n }\n });\n }\n return base;\n}\nexport function resolveBreakpointValues({\n values: breakpointValues,\n breakpoints: themeBreakpoints,\n base: customBase\n}) {\n const base = customBase || computeBreakpointsBase(breakpointValues, themeBreakpoints);\n const keys = Object.keys(base);\n if (keys.length === 0) {\n return breakpointValues;\n }\n let previous;\n return keys.reduce((acc, breakpoint, i) => {\n if (Array.isArray(breakpointValues)) {\n acc[breakpoint] = breakpointValues[i] != null ? breakpointValues[i] : breakpointValues[previous];\n previous = i;\n } else if (typeof breakpointValues === 'object') {\n acc[breakpoint] = breakpointValues[breakpoint] != null ? breakpointValues[breakpoint] : breakpointValues[previous];\n previous = breakpoint;\n } else {\n acc[breakpoint] = breakpointValues;\n }\n return acc;\n }, {});\n}\nexport default breakpoints;","import _formatMuiErrorMessage from \"@mui/utils/formatMuiErrorMessage\";\n/**\n * For using in `sx` prop to sort the breakpoint from low to high.\n * Note: this function does not work and will not support multiple units.\n * e.g. input: { '@container (min-width:300px)': '1rem', '@container (min-width:40rem)': '2rem' }\n * output: { '@container (min-width:40rem)': '2rem', '@container (min-width:300px)': '1rem' } // since 40 < 300 eventhough 40rem > 300px\n */\nexport function sortContainerQueries(theme, css) {\n if (!theme.containerQueries) {\n return css;\n }\n const sorted = Object.keys(css).filter(key => key.startsWith('@container')).sort((a, b) => {\n const regex = /min-width:\\s*([0-9.]+)/;\n return +(a.match(regex)?.[1] || 0) - +(b.match(regex)?.[1] || 0);\n });\n if (!sorted.length) {\n return css;\n }\n return sorted.reduce((acc, key) => {\n const value = css[key];\n delete acc[key];\n acc[key] = value;\n return acc;\n }, {\n ...css\n });\n}\nexport function isCqShorthand(breakpointKeys, value) {\n return value === '@' || value.startsWith('@') && (breakpointKeys.some(key => value.startsWith(`@${key}`)) || !!value.match(/^@\\d/));\n}\nexport function getContainerQuery(theme, shorthand) {\n const matches = shorthand.match(/^@([^/]+)?\\/?(.+)?$/);\n if (!matches) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: The provided shorthand ${`(${shorthand})`} is invalid. The format should be \\`@\\` or \\`@/\\`.\\n` + 'For example, `@sm` or `@600` or `@40rem/sidebar`.' : _formatMuiErrorMessage(18, `(${shorthand})`));\n }\n return null;\n }\n const [, containerQuery, containerName] = matches;\n const value = Number.isNaN(+containerQuery) ? containerQuery || 0 : +containerQuery;\n return theme.containerQueries(containerName).up(value);\n}\nexport default function cssContainerQueries(themeInput) {\n const toContainerQuery = (mediaQuery, name) => mediaQuery.replace('@media', name ? `@container ${name}` : '@container');\n function attachCq(node, name) {\n node.up = (...args) => toContainerQuery(themeInput.breakpoints.up(...args), name);\n node.down = (...args) => toContainerQuery(themeInput.breakpoints.down(...args), name);\n node.between = (...args) => toContainerQuery(themeInput.breakpoints.between(...args), name);\n node.only = (...args) => toContainerQuery(themeInput.breakpoints.only(...args), name);\n node.not = (...args) => {\n const result = toContainerQuery(themeInput.breakpoints.not(...args), name);\n if (result.includes('not all and')) {\n // `@container` does not work with `not all and`, so need to invert the logic\n return result.replace('not all and ', '').replace('min-width:', 'width<').replace('max-width:', 'width>').replace('and', 'or');\n }\n return result;\n };\n }\n const node = {};\n const containerQueries = name => {\n attachCq(node, name);\n return node;\n };\n attachCq(containerQueries);\n return {\n ...themeInput,\n containerQueries\n };\n}","import capitalize from '@mui/utils/capitalize';\nimport responsivePropType from \"../responsivePropType/index.js\";\nimport { handleBreakpoints } from \"../breakpoints/index.js\";\nexport function getPath(obj, path, checkVars = true) {\n if (!path || typeof path !== 'string') {\n return null;\n }\n\n // Check if CSS variables are used\n if (obj && obj.vars && checkVars) {\n const val = `vars.${path}`.split('.').reduce((acc, item) => acc && acc[item] ? acc[item] : null, obj);\n if (val != null) {\n return val;\n }\n }\n return path.split('.').reduce((acc, item) => {\n if (acc && acc[item] != null) {\n return acc[item];\n }\n return null;\n }, obj);\n}\nexport function getStyleValue(themeMapping, transform, propValueFinal, userValue = propValueFinal) {\n let value;\n if (typeof themeMapping === 'function') {\n value = themeMapping(propValueFinal);\n } else if (Array.isArray(themeMapping)) {\n value = themeMapping[propValueFinal] || userValue;\n } else {\n value = getPath(themeMapping, propValueFinal) || userValue;\n }\n if (transform) {\n value = transform(value, userValue, themeMapping);\n }\n return value;\n}\nfunction style(options) {\n const {\n prop,\n cssProperty = options.prop,\n themeKey,\n transform\n } = options;\n\n // false positive\n // eslint-disable-next-line react/function-component-definition\n const fn = props => {\n if (props[prop] == null) {\n return null;\n }\n const propValue = props[prop];\n const theme = props.theme;\n const themeMapping = getPath(theme, themeKey) || {};\n const styleFromPropValue = propValueFinal => {\n let value = getStyleValue(themeMapping, transform, propValueFinal);\n if (propValueFinal === value && typeof propValueFinal === 'string') {\n // Haven't found value\n value = getStyleValue(themeMapping, transform, `${prop}${propValueFinal === 'default' ? '' : capitalize(propValueFinal)}`, propValueFinal);\n }\n if (cssProperty === false) {\n return value;\n }\n return {\n [cssProperty]: value\n };\n };\n return handleBreakpoints(props, propValue, styleFromPropValue);\n };\n fn.propTypes = process.env.NODE_ENV !== 'production' ? {\n [prop]: responsivePropType\n } : {};\n fn.filterProps = [prop];\n return fn;\n}\nexport default style;","import responsivePropType from \"../responsivePropType/index.js\";\nimport { handleBreakpoints } from \"../breakpoints/index.js\";\nimport { getPath } from \"../style/index.js\";\nimport merge from \"../merge/index.js\";\nimport memoize from \"../memoize/index.js\";\nconst properties = {\n m: 'margin',\n p: 'padding'\n};\nconst directions = {\n t: 'Top',\n r: 'Right',\n b: 'Bottom',\n l: 'Left',\n x: ['Left', 'Right'],\n y: ['Top', 'Bottom']\n};\nconst aliases = {\n marginX: 'mx',\n marginY: 'my',\n paddingX: 'px',\n paddingY: 'py'\n};\n\n// memoize() impact:\n// From 300,000 ops/sec\n// To 350,000 ops/sec\nconst getCssProperties = memoize(prop => {\n // It's not a shorthand notation.\n if (prop.length > 2) {\n if (aliases[prop]) {\n prop = aliases[prop];\n } else {\n return [prop];\n }\n }\n const [a, b] = prop.split('');\n const property = properties[a];\n const direction = directions[b] || '';\n return Array.isArray(direction) ? direction.map(dir => property + dir) : [property + direction];\n});\nexport const marginKeys = ['m', 'mt', 'mr', 'mb', 'ml', 'mx', 'my', 'margin', 'marginTop', 'marginRight', 'marginBottom', 'marginLeft', 'marginX', 'marginY', 'marginInline', 'marginInlineStart', 'marginInlineEnd', 'marginBlock', 'marginBlockStart', 'marginBlockEnd'];\nexport const paddingKeys = ['p', 'pt', 'pr', 'pb', 'pl', 'px', 'py', 'padding', 'paddingTop', 'paddingRight', 'paddingBottom', 'paddingLeft', 'paddingX', 'paddingY', 'paddingInline', 'paddingInlineStart', 'paddingInlineEnd', 'paddingBlock', 'paddingBlockStart', 'paddingBlockEnd'];\nconst spacingKeys = [...marginKeys, ...paddingKeys];\nexport function createUnaryUnit(theme, themeKey, defaultValue, propName) {\n const themeSpacing = getPath(theme, themeKey, true) ?? defaultValue;\n if (typeof themeSpacing === 'number' || typeof themeSpacing === 'string') {\n return val => {\n if (typeof val === 'string') {\n return val;\n }\n if (process.env.NODE_ENV !== 'production') {\n if (typeof val !== 'number') {\n console.error(`MUI: Expected ${propName} argument to be a number or a string, got ${val}.`);\n }\n }\n if (typeof themeSpacing === 'string') {\n return `calc(${val} * ${themeSpacing})`;\n }\n return themeSpacing * val;\n };\n }\n if (Array.isArray(themeSpacing)) {\n return val => {\n if (typeof val === 'string') {\n return val;\n }\n const abs = Math.abs(val);\n if (process.env.NODE_ENV !== 'production') {\n if (!Number.isInteger(abs)) {\n console.error([`MUI: The \\`theme.${themeKey}\\` array type cannot be combined with non integer values.` + `You should either use an integer value that can be used as index, or define the \\`theme.${themeKey}\\` as a number.`].join('\\n'));\n } else if (abs > themeSpacing.length - 1) {\n console.error([`MUI: The value provided (${abs}) overflows.`, `The supported values are: ${JSON.stringify(themeSpacing)}.`, `${abs} > ${themeSpacing.length - 1}, you need to add the missing values.`].join('\\n'));\n }\n }\n const transformed = themeSpacing[abs];\n if (val >= 0) {\n return transformed;\n }\n if (typeof transformed === 'number') {\n return -transformed;\n }\n return `-${transformed}`;\n };\n }\n if (typeof themeSpacing === 'function') {\n return themeSpacing;\n }\n if (process.env.NODE_ENV !== 'production') {\n console.error([`MUI: The \\`theme.${themeKey}\\` value (${themeSpacing}) is invalid.`, 'It should be a number, an array or a function.'].join('\\n'));\n }\n return () => undefined;\n}\nexport function createUnarySpacing(theme) {\n return createUnaryUnit(theme, 'spacing', 8, 'spacing');\n}\nexport function getValue(transformer, propValue) {\n if (typeof propValue === 'string' || propValue == null) {\n return propValue;\n }\n return transformer(propValue);\n}\nexport function getStyleFromPropValue(cssProperties, transformer) {\n return propValue => cssProperties.reduce((acc, cssProperty) => {\n acc[cssProperty] = getValue(transformer, propValue);\n return acc;\n }, {});\n}\nfunction resolveCssProperty(props, keys, prop, transformer) {\n // Using a hash computation over an array iteration could be faster, but with only 28 items,\n // it's doesn't worth the bundle size.\n if (!keys.includes(prop)) {\n return null;\n }\n const cssProperties = getCssProperties(prop);\n const styleFromPropValue = getStyleFromPropValue(cssProperties, transformer);\n const propValue = props[prop];\n return handleBreakpoints(props, propValue, styleFromPropValue);\n}\nfunction style(props, keys) {\n const transformer = createUnarySpacing(props.theme);\n return Object.keys(props).map(prop => resolveCssProperty(props, keys, prop, transformer)).reduce(merge, {});\n}\nexport function margin(props) {\n return style(props, marginKeys);\n}\nmargin.propTypes = process.env.NODE_ENV !== 'production' ? marginKeys.reduce((obj, key) => {\n obj[key] = responsivePropType;\n return obj;\n}, {}) : {};\nmargin.filterProps = marginKeys;\nexport function padding(props) {\n return style(props, paddingKeys);\n}\npadding.propTypes = process.env.NODE_ENV !== 'production' ? paddingKeys.reduce((obj, key) => {\n obj[key] = responsivePropType;\n return obj;\n}, {}) : {};\npadding.filterProps = paddingKeys;\nfunction spacing(props) {\n return style(props, spacingKeys);\n}\nspacing.propTypes = process.env.NODE_ENV !== 'production' ? spacingKeys.reduce((obj, key) => {\n obj[key] = responsivePropType;\n return obj;\n}, {}) : {};\nspacing.filterProps = spacingKeys;\nexport default spacing;","export default function memoize(fn) {\n const cache = {};\n return arg => {\n if (cache[arg] === undefined) {\n cache[arg] = fn(arg);\n }\n return cache[arg];\n };\n}","import merge from \"../merge/index.js\";\nfunction compose(...styles) {\n const handlers = styles.reduce((acc, style) => {\n style.filterProps.forEach(prop => {\n acc[prop] = style;\n });\n return acc;\n }, {});\n\n // false positive\n // eslint-disable-next-line react/function-component-definition\n const fn = props => {\n return Object.keys(props).reduce((acc, prop) => {\n if (handlers[prop]) {\n return merge(acc, handlers[prop](props));\n }\n return acc;\n }, {});\n };\n fn.propTypes = process.env.NODE_ENV !== 'production' ? styles.reduce((acc, style) => Object.assign(acc, style.propTypes), {}) : {};\n fn.filterProps = styles.reduce((acc, style) => acc.concat(style.filterProps), []);\n return fn;\n}\nexport default compose;","import responsivePropType from \"../responsivePropType/index.js\";\nimport style from \"../style/index.js\";\nimport compose from \"../compose/index.js\";\nimport { createUnaryUnit, getValue } from \"../spacing/index.js\";\nimport { handleBreakpoints } from \"../breakpoints/index.js\";\nexport function borderTransform(value) {\n if (typeof value !== 'number') {\n return value;\n }\n return `${value}px solid`;\n}\nfunction createBorderStyle(prop, transform) {\n return style({\n prop,\n themeKey: 'borders',\n transform\n });\n}\nexport const border = createBorderStyle('border', borderTransform);\nexport const borderTop = createBorderStyle('borderTop', borderTransform);\nexport const borderRight = createBorderStyle('borderRight', borderTransform);\nexport const borderBottom = createBorderStyle('borderBottom', borderTransform);\nexport const borderLeft = createBorderStyle('borderLeft', borderTransform);\nexport const borderColor = createBorderStyle('borderColor');\nexport const borderTopColor = createBorderStyle('borderTopColor');\nexport const borderRightColor = createBorderStyle('borderRightColor');\nexport const borderBottomColor = createBorderStyle('borderBottomColor');\nexport const borderLeftColor = createBorderStyle('borderLeftColor');\nexport const outline = createBorderStyle('outline', borderTransform);\nexport const outlineColor = createBorderStyle('outlineColor');\n\n// false positive\n// eslint-disable-next-line react/function-component-definition\nexport const borderRadius = props => {\n if (props.borderRadius !== undefined && props.borderRadius !== null) {\n const transformer = createUnaryUnit(props.theme, 'shape.borderRadius', 4, 'borderRadius');\n const styleFromPropValue = propValue => ({\n borderRadius: getValue(transformer, propValue)\n });\n return handleBreakpoints(props, props.borderRadius, styleFromPropValue);\n }\n return null;\n};\nborderRadius.propTypes = process.env.NODE_ENV !== 'production' ? {\n borderRadius: responsivePropType\n} : {};\nborderRadius.filterProps = ['borderRadius'];\nconst borders = compose(border, borderTop, borderRight, borderBottom, borderLeft, borderColor, borderTopColor, borderRightColor, borderBottomColor, borderLeftColor, borderRadius, outline, outlineColor);\nexport default borders;","import style from \"../style/index.js\";\nimport compose from \"../compose/index.js\";\nimport { createUnaryUnit, getValue } from \"../spacing/index.js\";\nimport { handleBreakpoints } from \"../breakpoints/index.js\";\nimport responsivePropType from \"../responsivePropType/index.js\";\n\n// false positive\n// eslint-disable-next-line react/function-component-definition\nexport const gap = props => {\n if (props.gap !== undefined && props.gap !== null) {\n const transformer = createUnaryUnit(props.theme, 'spacing', 8, 'gap');\n const styleFromPropValue = propValue => ({\n gap: getValue(transformer, propValue)\n });\n return handleBreakpoints(props, props.gap, styleFromPropValue);\n }\n return null;\n};\ngap.propTypes = process.env.NODE_ENV !== 'production' ? {\n gap: responsivePropType\n} : {};\ngap.filterProps = ['gap'];\n\n// false positive\n// eslint-disable-next-line react/function-component-definition\nexport const columnGap = props => {\n if (props.columnGap !== undefined && props.columnGap !== null) {\n const transformer = createUnaryUnit(props.theme, 'spacing', 8, 'columnGap');\n const styleFromPropValue = propValue => ({\n columnGap: getValue(transformer, propValue)\n });\n return handleBreakpoints(props, props.columnGap, styleFromPropValue);\n }\n return null;\n};\ncolumnGap.propTypes = process.env.NODE_ENV !== 'production' ? {\n columnGap: responsivePropType\n} : {};\ncolumnGap.filterProps = ['columnGap'];\n\n// false positive\n// eslint-disable-next-line react/function-component-definition\nexport const rowGap = props => {\n if (props.rowGap !== undefined && props.rowGap !== null) {\n const transformer = createUnaryUnit(props.theme, 'spacing', 8, 'rowGap');\n const styleFromPropValue = propValue => ({\n rowGap: getValue(transformer, propValue)\n });\n return handleBreakpoints(props, props.rowGap, styleFromPropValue);\n }\n return null;\n};\nrowGap.propTypes = process.env.NODE_ENV !== 'production' ? {\n rowGap: responsivePropType\n} : {};\nrowGap.filterProps = ['rowGap'];\nexport const gridColumn = style({\n prop: 'gridColumn'\n});\nexport const gridRow = style({\n prop: 'gridRow'\n});\nexport const gridAutoFlow = style({\n prop: 'gridAutoFlow'\n});\nexport const gridAutoColumns = style({\n prop: 'gridAutoColumns'\n});\nexport const gridAutoRows = style({\n prop: 'gridAutoRows'\n});\nexport const gridTemplateColumns = style({\n prop: 'gridTemplateColumns'\n});\nexport const gridTemplateRows = style({\n prop: 'gridTemplateRows'\n});\nexport const gridTemplateAreas = style({\n prop: 'gridTemplateAreas'\n});\nexport const gridArea = style({\n prop: 'gridArea'\n});\nconst grid = compose(gap, columnGap, rowGap, gridColumn, gridRow, gridAutoFlow, gridAutoColumns, gridAutoRows, gridTemplateColumns, gridTemplateRows, gridTemplateAreas, gridArea);\nexport default grid;","import style from \"../style/index.js\";\nimport compose from \"../compose/index.js\";\nexport function paletteTransform(value, userValue) {\n if (userValue === 'grey') {\n return userValue;\n }\n return value;\n}\nexport const color = style({\n prop: 'color',\n themeKey: 'palette',\n transform: paletteTransform\n});\nexport const bgcolor = style({\n prop: 'bgcolor',\n cssProperty: 'backgroundColor',\n themeKey: 'palette',\n transform: paletteTransform\n});\nexport const backgroundColor = style({\n prop: 'backgroundColor',\n themeKey: 'palette',\n transform: paletteTransform\n});\nconst palette = compose(color, bgcolor, backgroundColor);\nexport default palette;","import style from \"../style/index.js\";\nimport compose from \"../compose/index.js\";\nimport { handleBreakpoints, values as breakpointsValues } from \"../breakpoints/index.js\";\nexport function sizingTransform(value) {\n return value <= 1 && value !== 0 ? `${value * 100}%` : value;\n}\nexport const width = style({\n prop: 'width',\n transform: sizingTransform\n});\nexport const maxWidth = props => {\n if (props.maxWidth !== undefined && props.maxWidth !== null) {\n const styleFromPropValue = propValue => {\n const breakpoint = props.theme?.breakpoints?.values?.[propValue] || breakpointsValues[propValue];\n if (!breakpoint) {\n return {\n maxWidth: sizingTransform(propValue)\n };\n }\n if (props.theme?.breakpoints?.unit !== 'px') {\n return {\n maxWidth: `${breakpoint}${props.theme.breakpoints.unit}`\n };\n }\n return {\n maxWidth: breakpoint\n };\n };\n return handleBreakpoints(props, props.maxWidth, styleFromPropValue);\n }\n return null;\n};\nmaxWidth.filterProps = ['maxWidth'];\nexport const minWidth = style({\n prop: 'minWidth',\n transform: sizingTransform\n});\nexport const height = style({\n prop: 'height',\n transform: sizingTransform\n});\nexport const maxHeight = style({\n prop: 'maxHeight',\n transform: sizingTransform\n});\nexport const minHeight = style({\n prop: 'minHeight',\n transform: sizingTransform\n});\nexport const sizeWidth = style({\n prop: 'size',\n cssProperty: 'width',\n transform: sizingTransform\n});\nexport const sizeHeight = style({\n prop: 'size',\n cssProperty: 'height',\n transform: sizingTransform\n});\nexport const boxSizing = style({\n prop: 'boxSizing'\n});\nconst sizing = compose(width, maxWidth, minWidth, height, maxHeight, minHeight, boxSizing);\nexport default sizing;","import { padding, margin } from \"../spacing/index.js\";\nimport { borderRadius, borderTransform } from \"../borders/index.js\";\nimport { gap, rowGap, columnGap } from \"../cssGrid/index.js\";\nimport { paletteTransform } from \"../palette/index.js\";\nimport { maxWidth, sizingTransform } from \"../sizing/index.js\";\nconst defaultSxConfig = {\n // borders\n border: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderTop: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderRight: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderBottom: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderLeft: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderColor: {\n themeKey: 'palette'\n },\n borderTopColor: {\n themeKey: 'palette'\n },\n borderRightColor: {\n themeKey: 'palette'\n },\n borderBottomColor: {\n themeKey: 'palette'\n },\n borderLeftColor: {\n themeKey: 'palette'\n },\n outline: {\n themeKey: 'borders',\n transform: borderTransform\n },\n outlineColor: {\n themeKey: 'palette'\n },\n borderRadius: {\n themeKey: 'shape.borderRadius',\n style: borderRadius\n },\n // palette\n color: {\n themeKey: 'palette',\n transform: paletteTransform\n },\n bgcolor: {\n themeKey: 'palette',\n cssProperty: 'backgroundColor',\n transform: paletteTransform\n },\n backgroundColor: {\n themeKey: 'palette',\n transform: paletteTransform\n },\n // spacing\n p: {\n style: padding\n },\n pt: {\n style: padding\n },\n pr: {\n style: padding\n },\n pb: {\n style: padding\n },\n pl: {\n style: padding\n },\n px: {\n style: padding\n },\n py: {\n style: padding\n },\n padding: {\n style: padding\n },\n paddingTop: {\n style: padding\n },\n paddingRight: {\n style: padding\n },\n paddingBottom: {\n style: padding\n },\n paddingLeft: {\n style: padding\n },\n paddingX: {\n style: padding\n },\n paddingY: {\n style: padding\n },\n paddingInline: {\n style: padding\n },\n paddingInlineStart: {\n style: padding\n },\n paddingInlineEnd: {\n style: padding\n },\n paddingBlock: {\n style: padding\n },\n paddingBlockStart: {\n style: padding\n },\n paddingBlockEnd: {\n style: padding\n },\n m: {\n style: margin\n },\n mt: {\n style: margin\n },\n mr: {\n style: margin\n },\n mb: {\n style: margin\n },\n ml: {\n style: margin\n },\n mx: {\n style: margin\n },\n my: {\n style: margin\n },\n margin: {\n style: margin\n },\n marginTop: {\n style: margin\n },\n marginRight: {\n style: margin\n },\n marginBottom: {\n style: margin\n },\n marginLeft: {\n style: margin\n },\n marginX: {\n style: margin\n },\n marginY: {\n style: margin\n },\n marginInline: {\n style: margin\n },\n marginInlineStart: {\n style: margin\n },\n marginInlineEnd: {\n style: margin\n },\n marginBlock: {\n style: margin\n },\n marginBlockStart: {\n style: margin\n },\n marginBlockEnd: {\n style: margin\n },\n // display\n displayPrint: {\n cssProperty: false,\n transform: value => ({\n '@media print': {\n display: value\n }\n })\n },\n display: {},\n overflow: {},\n textOverflow: {},\n visibility: {},\n whiteSpace: {},\n // flexbox\n flexBasis: {},\n flexDirection: {},\n flexWrap: {},\n justifyContent: {},\n alignItems: {},\n alignContent: {},\n order: {},\n flex: {},\n flexGrow: {},\n flexShrink: {},\n alignSelf: {},\n justifyItems: {},\n justifySelf: {},\n // grid\n gap: {\n style: gap\n },\n rowGap: {\n style: rowGap\n },\n columnGap: {\n style: columnGap\n },\n gridColumn: {},\n gridRow: {},\n gridAutoFlow: {},\n gridAutoColumns: {},\n gridAutoRows: {},\n gridTemplateColumns: {},\n gridTemplateRows: {},\n gridTemplateAreas: {},\n gridArea: {},\n // positions\n position: {},\n zIndex: {\n themeKey: 'zIndex'\n },\n top: {},\n right: {},\n bottom: {},\n left: {},\n // shadows\n boxShadow: {\n themeKey: 'shadows'\n },\n // sizing\n width: {\n transform: sizingTransform\n },\n maxWidth: {\n style: maxWidth\n },\n minWidth: {\n transform: sizingTransform\n },\n height: {\n transform: sizingTransform\n },\n maxHeight: {\n transform: sizingTransform\n },\n minHeight: {\n transform: sizingTransform\n },\n boxSizing: {},\n // typography\n font: {\n themeKey: 'font'\n },\n fontFamily: {\n themeKey: 'typography'\n },\n fontSize: {\n themeKey: 'typography'\n },\n fontStyle: {\n themeKey: 'typography'\n },\n fontWeight: {\n themeKey: 'typography'\n },\n letterSpacing: {},\n textTransform: {},\n lineHeight: {},\n textAlign: {},\n typography: {\n cssProperty: false,\n themeKey: 'typography'\n }\n};\nexport default defaultSxConfig;","import capitalize from '@mui/utils/capitalize';\nimport merge from \"../merge/index.js\";\nimport { getPath, getStyleValue as getValue } from \"../style/index.js\";\nimport { handleBreakpoints, createEmptyBreakpointObject, removeUnusedBreakpoints } from \"../breakpoints/index.js\";\nimport { sortContainerQueries } from \"../cssContainerQueries/index.js\";\nimport defaultSxConfig from \"./defaultSxConfig.js\";\nfunction objectsHaveSameKeys(...objects) {\n const allKeys = objects.reduce((keys, object) => keys.concat(Object.keys(object)), []);\n const union = new Set(allKeys);\n return objects.every(object => union.size === Object.keys(object).length);\n}\nfunction callIfFn(maybeFn, arg) {\n return typeof maybeFn === 'function' ? maybeFn(arg) : maybeFn;\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function unstable_createStyleFunctionSx() {\n function getThemeValue(prop, val, theme, config) {\n const props = {\n [prop]: val,\n theme\n };\n const options = config[prop];\n if (!options) {\n return {\n [prop]: val\n };\n }\n const {\n cssProperty = prop,\n themeKey,\n transform,\n style\n } = options;\n if (val == null) {\n return null;\n }\n\n // TODO v6: remove, see https://github.com/mui/material-ui/pull/38123\n if (themeKey === 'typography' && val === 'inherit') {\n return {\n [prop]: val\n };\n }\n const themeMapping = getPath(theme, themeKey) || {};\n if (style) {\n return style(props);\n }\n const styleFromPropValue = propValueFinal => {\n let value = getValue(themeMapping, transform, propValueFinal);\n if (propValueFinal === value && typeof propValueFinal === 'string') {\n // Haven't found value\n value = getValue(themeMapping, transform, `${prop}${propValueFinal === 'default' ? '' : capitalize(propValueFinal)}`, propValueFinal);\n }\n if (cssProperty === false) {\n return value;\n }\n return {\n [cssProperty]: value\n };\n };\n return handleBreakpoints(props, val, styleFromPropValue);\n }\n function styleFunctionSx(props) {\n const {\n sx,\n theme = {}\n } = props || {};\n if (!sx) {\n return null; // Emotion & styled-components will neglect null\n }\n const config = theme.unstable_sxConfig ?? defaultSxConfig;\n\n /*\n * Receive `sxInput` as object or callback\n * and then recursively check keys & values to create media query object styles.\n * (the result will be used in `styled`)\n */\n function traverse(sxInput) {\n let sxObject = sxInput;\n if (typeof sxInput === 'function') {\n sxObject = sxInput(theme);\n } else if (typeof sxInput !== 'object') {\n // value\n return sxInput;\n }\n if (!sxObject) {\n return null;\n }\n const emptyBreakpoints = createEmptyBreakpointObject(theme.breakpoints);\n const breakpointsKeys = Object.keys(emptyBreakpoints);\n let css = emptyBreakpoints;\n Object.keys(sxObject).forEach(styleKey => {\n const value = callIfFn(sxObject[styleKey], theme);\n if (value !== null && value !== undefined) {\n if (typeof value === 'object') {\n if (config[styleKey]) {\n css = merge(css, getThemeValue(styleKey, value, theme, config));\n } else {\n const breakpointsValues = handleBreakpoints({\n theme\n }, value, x => ({\n [styleKey]: x\n }));\n if (objectsHaveSameKeys(breakpointsValues, value)) {\n css[styleKey] = styleFunctionSx({\n sx: value,\n theme\n });\n } else {\n css = merge(css, breakpointsValues);\n }\n }\n } else {\n css = merge(css, getThemeValue(styleKey, value, theme, config));\n }\n }\n });\n return sortContainerQueries(theme, removeUnusedBreakpoints(breakpointsKeys, css));\n }\n return Array.isArray(sx) ? sx.map(traverse) : traverse(sx);\n }\n return styleFunctionSx;\n}\nconst styleFunctionSx = unstable_createStyleFunctionSx();\nstyleFunctionSx.filterProps = ['sx'];\nexport default styleFunctionSx;","var isBrowser = true;\n\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n var rawClassName = '';\n classNames.split(' ').forEach(function (className) {\n if (registered[className] !== undefined) {\n registeredStyles.push(registered[className] + \";\");\n } else if (className) {\n rawClassName += className + \" \";\n }\n });\n return rawClassName;\n}\nvar registerStyles = function registerStyles(cache, serialized, isStringTag) {\n var className = cache.key + \"-\" + serialized.name;\n\n if ( // we only need to add the styles to the registered cache if the\n // class name could be used further down\n // the tree but if it's a string tag, we know it won't\n // so we don't have to add it to registered cache.\n // this improves memory usage since we can avoid storing the whole style string\n (isStringTag === false || // we need to always store it if we're in compat mode and\n // in node since emotion-server relies on whether a style is in\n // the registered cache to know whether a style is global or not\n // also, note that this check will be dead code eliminated in the browser\n isBrowser === false ) && cache.registered[className] === undefined) {\n cache.registered[className] = serialized.styles;\n }\n};\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n registerStyles(cache, serialized, isStringTag);\n var className = cache.key + \"-\" + serialized.name;\n\n if (cache.inserted[serialized.name] === undefined) {\n var current = serialized;\n\n do {\n cache.insert(serialized === current ? \".\" + className : '', current, cache.sheet, true);\n\n current = current.next;\n } while (current !== undefined);\n }\n};\n\nexport { getRegisteredStyles, insertStyles, registerStyles };\n","import { h as hasOwn, E as Emotion, c as createEmotionProps, w as withEmotionCache, T as ThemeContext, i as isDevelopment } from './emotion-element-5486c51c.browser.esm.js';\nexport { C as CacheProvider, T as ThemeContext, a as ThemeProvider, _ as __unsafe_useEmotionCache, u as useTheme, w as withEmotionCache, b as withTheme } from './emotion-element-5486c51c.browser.esm.js';\nimport * as React from 'react';\nimport { insertStyles, registerStyles, getRegisteredStyles } from '@emotion/utils';\nimport { useInsertionEffectWithLayoutFallback, useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\nimport { serializeStyles } from '@emotion/serialize';\nimport '@emotion/cache';\nimport '@babel/runtime/helpers/extends';\nimport '@emotion/weak-memoize';\nimport '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport 'hoist-non-react-statics';\n\nvar jsx\n/*: typeof React.createElement */\n= function jsx\n/*: typeof React.createElement */\n(type\n/*: React.ElementType */\n, props\n/*: Object */\n) {\n var args = arguments;\n\n if (props == null || !hasOwn.call(props, 'css')) {\n return React.createElement.apply(undefined, args);\n }\n\n var argsLength = args.length;\n var createElementArgArray = new Array(argsLength);\n createElementArgArray[0] = Emotion;\n createElementArgArray[1] = createEmotionProps(type, props);\n\n for (var i = 2; i < argsLength; i++) {\n createElementArgArray[i] = args[i];\n }\n\n return React.createElement.apply(null, createElementArgArray);\n};\n\n// initial render from browser, insertBefore context.sheet.tags[0] or if a style hasn't been inserted there yet, appendChild\n// initial client-side render from SSR, use place of hydrating tag\n\nvar Global\n/*: React.AbstractComponent<\nGlobalProps\n> */\n= /* #__PURE__ */withEmotionCache(function (props\n/*: GlobalProps */\n, cache) {\n\n var styles = props.styles;\n var serialized = serializeStyles([styles], undefined, React.useContext(ThemeContext));\n // but it is based on a constant that will never change at runtime\n // it's effectively like having two implementations and switching them out\n // so it's not actually breaking anything\n\n\n var sheetRef = React.useRef();\n useInsertionEffectWithLayoutFallback(function () {\n var key = cache.key + \"-global\"; // use case of https://github.com/emotion-js/emotion/issues/2675\n\n var sheet = new cache.sheet.constructor({\n key: key,\n nonce: cache.sheet.nonce,\n container: cache.sheet.container,\n speedy: cache.sheet.isSpeedy\n });\n var rehydrating = false;\n var node\n /*: HTMLStyleElement | null*/\n = document.querySelector(\"style[data-emotion=\\\"\" + key + \" \" + serialized.name + \"\\\"]\");\n\n if (cache.sheet.tags.length) {\n sheet.before = cache.sheet.tags[0];\n }\n\n if (node !== null) {\n rehydrating = true; // clear the hash so this node won't be recognizable as rehydratable by other s\n\n node.setAttribute('data-emotion', key);\n sheet.hydrate([node]);\n }\n\n sheetRef.current = [sheet, rehydrating];\n return function () {\n sheet.flush();\n };\n }, [cache]);\n useInsertionEffectWithLayoutFallback(function () {\n var sheetRefCurrent = sheetRef.current;\n var sheet = sheetRefCurrent[0],\n rehydrating = sheetRefCurrent[1];\n\n if (rehydrating) {\n sheetRefCurrent[1] = false;\n return;\n }\n\n if (serialized.next !== undefined) {\n // insert keyframes\n insertStyles(cache, serialized.next, true);\n }\n\n if (sheet.tags.length) {\n // if this doesn't exist then it will be null so the style element will be appended\n var element = sheet.tags[sheet.tags.length - 1].nextElementSibling;\n sheet.before = element;\n sheet.flush();\n }\n\n cache.insert(\"\", serialized, sheet, false);\n }, [cache, serialized.name]);\n return null;\n});\n\n/* import type { Interpolation, SerializedStyles } from '@emotion/utils' */\n\nfunction css()\n/*: SerializedStyles */\n{\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return serializeStyles(args);\n}\n\n/*\ntype Keyframes = {|\n name: string,\n styles: string,\n anim: 1,\n toString: () => string\n|} & string\n*/\n\nvar keyframes = function\n /*: Keyframes */\nkeyframes() {\n var insertable = css.apply(void 0, arguments);\n var name = \"animation-\" + insertable.name;\n return {\n name: name,\n styles: \"@keyframes \" + name + \"{\" + insertable.styles + \"}\",\n anim: 1,\n toString: function toString() {\n return \"_EMO_\" + this.name + \"_\" + this.styles + \"_EMO_\";\n }\n };\n};\n\n/*\ntype ClassNameArg =\n | string\n | boolean\n | { [key: string]: boolean }\n | Array\n | null\n | void\n*/\n\nvar classnames = function\n /*: string */\nclassnames(args\n/*: Array */\n) {\n var len = args.length;\n var i = 0;\n var cls = '';\n\n for (; i < len; i++) {\n var arg = args[i];\n if (arg == null) continue;\n var toAdd = void 0;\n\n switch (typeof arg) {\n case 'boolean':\n break;\n\n case 'object':\n {\n if (Array.isArray(arg)) {\n toAdd = classnames(arg);\n } else {\n\n toAdd = '';\n\n for (var k in arg) {\n if (arg[k] && k) {\n toAdd && (toAdd += ' ');\n toAdd += k;\n }\n }\n }\n\n break;\n }\n\n default:\n {\n toAdd = arg;\n }\n }\n\n if (toAdd) {\n cls && (cls += ' ');\n cls += toAdd;\n }\n }\n\n return cls;\n};\n\nfunction merge(registered\n/*: Object */\n, css\n/*: (...args: Array) => string */\n, className\n/*: string */\n) {\n var registeredStyles = [];\n var rawClassName = getRegisteredStyles(registered, registeredStyles, className);\n\n if (registeredStyles.length < 2) {\n return className;\n }\n\n return rawClassName + css(registeredStyles);\n}\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serializedArr = _ref.serializedArr;\n useInsertionEffectAlwaysWithSyncFallback(function () {\n\n for (var i = 0; i < serializedArr.length; i++) {\n insertStyles(cache, serializedArr[i], false);\n }\n });\n\n return null;\n};\n/*\ntype Props = {\n children: ({\n css: (...args: any) => string,\n cx: (...args: Array) => string,\n theme: Object\n }) => React.Node\n} */\n\n\nvar ClassNames\n/*: React.AbstractComponent*/\n= /* #__PURE__ */withEmotionCache(function (props, cache) {\n var hasRendered = false;\n var serializedArr = [];\n\n var css = function css() {\n if (hasRendered && isDevelopment) {\n throw new Error('css can only be used during render');\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var serialized = serializeStyles(args, cache.registered);\n serializedArr.push(serialized); // registration has to happen here as the result of this might get consumed by `cx`\n\n registerStyles(cache, serialized, false);\n return cache.key + \"-\" + serialized.name;\n };\n\n var cx = function cx() {\n if (hasRendered && isDevelopment) {\n throw new Error('cx can only be used during render');\n }\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return merge(cache.registered, css, classnames(args));\n };\n\n var content = {\n css: css,\n cx: cx,\n theme: React.useContext(ThemeContext)\n };\n var ele = props.children(content);\n hasRendered = true;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n cache: cache,\n serializedArr: serializedArr\n }), ele);\n});\n\nexport { ClassNames, Global, jsx as createElement, css, jsx, keyframes };\n","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { Global } from '@emotion/react';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction isEmpty(obj) {\n return obj === undefined || obj === null || Object.keys(obj).length === 0;\n}\nexport default function GlobalStyles(props) {\n const {\n styles,\n defaultTheme = {}\n } = props;\n const globalStyles = typeof styles === 'function' ? themeInput => styles(isEmpty(themeInput) ? defaultTheme : themeInput) : styles;\n return /*#__PURE__*/_jsx(Global, {\n styles: globalStyles\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? GlobalStyles.propTypes = {\n defaultTheme: PropTypes.object,\n styles: PropTypes.oneOfType([PropTypes.array, PropTypes.string, PropTypes.object, PropTypes.func])\n} : void 0;","/**\n * Split this component for RSC import\n */\nimport * as React from 'react';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const DEFAULT_MODE_STORAGE_KEY = 'mode';\nexport const DEFAULT_COLOR_SCHEME_STORAGE_KEY = 'color-scheme';\nexport const DEFAULT_ATTRIBUTE = 'data-color-scheme';\nexport default function InitColorSchemeScript(options) {\n const {\n defaultLightColorScheme = 'light',\n defaultDarkColorScheme = 'dark',\n modeStorageKey = DEFAULT_MODE_STORAGE_KEY,\n colorSchemeStorageKey = DEFAULT_COLOR_SCHEME_STORAGE_KEY,\n attribute: initialAttribute = DEFAULT_ATTRIBUTE,\n colorSchemeNode = 'document.documentElement',\n nonce\n } = options || {};\n let setter = '';\n let attribute = initialAttribute;\n if (initialAttribute === 'class') {\n attribute = '.%s';\n }\n if (initialAttribute === 'data') {\n attribute = '[data-%s]';\n }\n if (attribute.startsWith('.')) {\n const selector = attribute.substring(1);\n setter += `${colorSchemeNode}.classList.remove('${selector}'.replace('%s', light), '${selector}'.replace('%s', dark));\n ${colorSchemeNode}.classList.add('${selector}'.replace('%s', colorScheme));`;\n }\n const matches = attribute.match(/\\[([^\\]]+)\\]/); // case [data-color-scheme=%s] or [data-color-scheme]\n if (matches) {\n const [attr, value] = matches[1].split('=');\n if (!value) {\n setter += `${colorSchemeNode}.removeAttribute('${attr}'.replace('%s', light));\n ${colorSchemeNode}.removeAttribute('${attr}'.replace('%s', dark));`;\n }\n setter += `\n ${colorSchemeNode}.setAttribute('${attr}'.replace('%s', colorScheme), ${value ? `${value}.replace('%s', colorScheme)` : '\"\"'});`;\n } else {\n setter += `${colorSchemeNode}.setAttribute('${attribute}', colorScheme);`;\n }\n return /*#__PURE__*/_jsx(\"script\", {\n suppressHydrationWarning: true,\n nonce: typeof window === 'undefined' ? nonce : ''\n // eslint-disable-next-line react/no-danger\n ,\n dangerouslySetInnerHTML: {\n __html: `(function() {\ntry {\n let colorScheme = '';\n const mode = localStorage.getItem('${modeStorageKey}') || 'system';\n const dark = localStorage.getItem('${colorSchemeStorageKey}-dark') || '${defaultDarkColorScheme}';\n const light = localStorage.getItem('${colorSchemeStorageKey}-light') || '${defaultLightColorScheme}';\n if (mode === 'system') {\n // handle system mode\n const mql = window.matchMedia('(prefers-color-scheme: dark)');\n if (mql.matches) {\n colorScheme = dark\n } else {\n colorScheme = light\n }\n }\n if (mode === 'light') {\n colorScheme = light;\n }\n if (mode === 'dark') {\n colorScheme = dark;\n }\n if (colorScheme) {\n ${setter}\n }\n} catch(e){}})();`\n }\n }, \"mui-color-scheme-init\");\n}","'use client';\n\nimport * as React from 'react';\nimport { DEFAULT_MODE_STORAGE_KEY, DEFAULT_COLOR_SCHEME_STORAGE_KEY } from \"../InitColorSchemeScript/InitColorSchemeScript.js\";\nexport function getSystemMode(mode) {\n if (typeof window !== 'undefined' && typeof window.matchMedia === 'function' && mode === 'system') {\n const mql = window.matchMedia('(prefers-color-scheme: dark)');\n if (mql.matches) {\n return 'dark';\n }\n return 'light';\n }\n return undefined;\n}\nfunction processState(state, callback) {\n if (state.mode === 'light' || state.mode === 'system' && state.systemMode === 'light') {\n return callback('light');\n }\n if (state.mode === 'dark' || state.mode === 'system' && state.systemMode === 'dark') {\n return callback('dark');\n }\n return undefined;\n}\nexport function getColorScheme(state) {\n return processState(state, mode => {\n if (mode === 'light') {\n return state.lightColorScheme;\n }\n if (mode === 'dark') {\n return state.darkColorScheme;\n }\n return undefined;\n });\n}\nfunction initializeValue(key, defaultValue) {\n if (typeof window === 'undefined') {\n return undefined;\n }\n let value;\n try {\n value = localStorage.getItem(key) || undefined;\n if (!value) {\n // the first time that user enters the site.\n localStorage.setItem(key, defaultValue);\n }\n } catch {\n // Unsupported\n }\n return value || defaultValue;\n}\nexport default function useCurrentColorScheme(options) {\n const {\n defaultMode = 'light',\n defaultLightColorScheme,\n defaultDarkColorScheme,\n supportedColorSchemes = [],\n modeStorageKey = DEFAULT_MODE_STORAGE_KEY,\n colorSchemeStorageKey = DEFAULT_COLOR_SCHEME_STORAGE_KEY,\n storageWindow = typeof window === 'undefined' ? undefined : window\n } = options;\n const joinedColorSchemes = supportedColorSchemes.join(',');\n const isMultiSchemes = supportedColorSchemes.length > 1;\n const [state, setState] = React.useState(() => {\n const initialMode = initializeValue(modeStorageKey, defaultMode);\n const lightColorScheme = initializeValue(`${colorSchemeStorageKey}-light`, defaultLightColorScheme);\n const darkColorScheme = initializeValue(`${colorSchemeStorageKey}-dark`, defaultDarkColorScheme);\n return {\n mode: initialMode,\n systemMode: getSystemMode(initialMode),\n lightColorScheme,\n darkColorScheme\n };\n });\n // This could be improved with `React.useSyncExternalStore` in the future.\n const [, setHasMounted] = React.useState(false);\n const hasMounted = React.useRef(false);\n React.useEffect(() => {\n if (isMultiSchemes) {\n setHasMounted(true); // to rerender the component after hydration\n }\n hasMounted.current = true;\n }, [isMultiSchemes]);\n const colorScheme = getColorScheme(state);\n const setMode = React.useCallback(mode => {\n setState(currentState => {\n if (mode === currentState.mode) {\n // do nothing if mode does not change\n return currentState;\n }\n const newMode = mode ?? defaultMode;\n try {\n localStorage.setItem(modeStorageKey, newMode);\n } catch {\n // Unsupported\n }\n return {\n ...currentState,\n mode: newMode,\n systemMode: getSystemMode(newMode)\n };\n });\n }, [modeStorageKey, defaultMode]);\n const setColorScheme = React.useCallback(value => {\n if (!value) {\n setState(currentState => {\n try {\n localStorage.setItem(`${colorSchemeStorageKey}-light`, defaultLightColorScheme);\n localStorage.setItem(`${colorSchemeStorageKey}-dark`, defaultDarkColorScheme);\n } catch {\n // Unsupported\n }\n return {\n ...currentState,\n lightColorScheme: defaultLightColorScheme,\n darkColorScheme: defaultDarkColorScheme\n };\n });\n } else if (typeof value === 'string') {\n if (value && !joinedColorSchemes.includes(value)) {\n console.error(`\\`${value}\\` does not exist in \\`theme.colorSchemes\\`.`);\n } else {\n setState(currentState => {\n const newState = {\n ...currentState\n };\n processState(currentState, mode => {\n try {\n localStorage.setItem(`${colorSchemeStorageKey}-${mode}`, value);\n } catch {\n // Unsupported\n }\n if (mode === 'light') {\n newState.lightColorScheme = value;\n }\n if (mode === 'dark') {\n newState.darkColorScheme = value;\n }\n });\n return newState;\n });\n }\n } else {\n setState(currentState => {\n const newState = {\n ...currentState\n };\n const newLightColorScheme = value.light === null ? defaultLightColorScheme : value.light;\n const newDarkColorScheme = value.dark === null ? defaultDarkColorScheme : value.dark;\n if (newLightColorScheme) {\n if (!joinedColorSchemes.includes(newLightColorScheme)) {\n console.error(`\\`${newLightColorScheme}\\` does not exist in \\`theme.colorSchemes\\`.`);\n } else {\n newState.lightColorScheme = newLightColorScheme;\n try {\n localStorage.setItem(`${colorSchemeStorageKey}-light`, newLightColorScheme);\n } catch (error) {\n // Unsupported\n }\n }\n }\n if (newDarkColorScheme) {\n if (!joinedColorSchemes.includes(newDarkColorScheme)) {\n console.error(`\\`${newDarkColorScheme}\\` does not exist in \\`theme.colorSchemes\\`.`);\n } else {\n newState.darkColorScheme = newDarkColorScheme;\n try {\n localStorage.setItem(`${colorSchemeStorageKey}-dark`, newDarkColorScheme);\n } catch (error) {\n // Unsupported\n }\n }\n }\n return newState;\n });\n }\n }, [joinedColorSchemes, colorSchemeStorageKey, defaultLightColorScheme, defaultDarkColorScheme]);\n const handleMediaQuery = React.useCallback(event => {\n if (state.mode === 'system') {\n setState(currentState => {\n const systemMode = event?.matches ? 'dark' : 'light';\n\n // Early exit, nothing changed.\n if (currentState.systemMode === systemMode) {\n return currentState;\n }\n return {\n ...currentState,\n systemMode\n };\n });\n }\n }, [state.mode]);\n\n // Ref hack to avoid adding handleMediaQuery as a dep\n const mediaListener = React.useRef(handleMediaQuery);\n mediaListener.current = handleMediaQuery;\n React.useEffect(() => {\n if (typeof window.matchMedia !== 'function' || !isMultiSchemes) {\n return undefined;\n }\n const handler = (...args) => mediaListener.current(...args);\n\n // Always listen to System preference\n const media = window.matchMedia('(prefers-color-scheme: dark)');\n\n // Intentionally use deprecated listener methods to support iOS & old browsers\n media.addListener(handler);\n handler(media);\n return () => {\n media.removeListener(handler);\n };\n }, [isMultiSchemes]);\n\n // Handle when localStorage has changed\n React.useEffect(() => {\n if (storageWindow && isMultiSchemes) {\n const handleStorage = event => {\n const value = event.newValue;\n if (typeof event.key === 'string' && event.key.startsWith(colorSchemeStorageKey) && (!value || joinedColorSchemes.match(value))) {\n // If the key is deleted, value will be null then reset color scheme to the default one.\n if (event.key.endsWith('light')) {\n setColorScheme({\n light: value\n });\n }\n if (event.key.endsWith('dark')) {\n setColorScheme({\n dark: value\n });\n }\n }\n if (event.key === modeStorageKey && (!value || ['light', 'dark', 'system'].includes(value))) {\n setMode(value || defaultMode);\n }\n };\n // For syncing color-scheme changes between iframes\n storageWindow.addEventListener('storage', handleStorage);\n return () => {\n storageWindow.removeEventListener('storage', handleStorage);\n };\n }\n return undefined;\n }, [setColorScheme, setMode, modeStorageKey, colorSchemeStorageKey, joinedColorSchemes, defaultMode, storageWindow, isMultiSchemes]);\n return {\n ...state,\n mode: hasMounted.current || !isMultiSchemes ? state.mode : undefined,\n systemMode: hasMounted.current || !isMultiSchemes ? state.systemMode : undefined,\n colorScheme: hasMounted.current || !isMultiSchemes ? colorScheme : undefined,\n setMode,\n setColorScheme\n };\n}","function clamp(val, min = Number.MIN_SAFE_INTEGER, max = Number.MAX_SAFE_INTEGER) {\n return Math.max(min, Math.min(val, max));\n}\nexport default clamp;","import _formatMuiErrorMessage from \"@mui/utils/formatMuiErrorMessage\";\n/* eslint-disable @typescript-eslint/naming-convention */\nimport clamp from '@mui/utils/clamp';\n\n/**\n * Returns a number whose value is limited to the given range.\n * @param {number} value The value to be clamped\n * @param {number} min The lower boundary of the output range\n * @param {number} max The upper boundary of the output range\n * @returns {number} A number in the range [min, max]\n */\nfunction clampWrapper(value, min = 0, max = 1) {\n if (process.env.NODE_ENV !== 'production') {\n if (value < min || value > max) {\n console.error(`MUI: The value provided ${value} is out of range [${min}, ${max}].`);\n }\n }\n return clamp(value, min, max);\n}\n\n/**\n * Converts a color from CSS hex format to CSS rgb format.\n * @param {string} color - Hex color, i.e. #nnn or #nnnnnn\n * @returns {string} A CSS rgb color string\n */\nexport function hexToRgb(color) {\n color = color.slice(1);\n const re = new RegExp(`.{1,${color.length >= 6 ? 2 : 1}}`, 'g');\n let colors = color.match(re);\n if (colors && colors[0].length === 1) {\n colors = colors.map(n => n + n);\n }\n return colors ? `rgb${colors.length === 4 ? 'a' : ''}(${colors.map((n, index) => {\n return index < 3 ? parseInt(n, 16) : Math.round(parseInt(n, 16) / 255 * 1000) / 1000;\n }).join(', ')})` : '';\n}\nfunction intToHex(int) {\n const hex = int.toString(16);\n return hex.length === 1 ? `0${hex}` : hex;\n}\n\n/**\n * Returns an object with the type and values of a color.\n *\n * Note: Does not support rgb % values.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @returns {object} - A MUI color object: {type: string, values: number[]}\n */\nexport function decomposeColor(color) {\n // Idempotent\n if (color.type) {\n return color;\n }\n if (color.charAt(0) === '#') {\n return decomposeColor(hexToRgb(color));\n }\n const marker = color.indexOf('(');\n const type = color.substring(0, marker);\n if (!['rgb', 'rgba', 'hsl', 'hsla', 'color'].includes(type)) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: Unsupported \\`${color}\\` color.\\n` + 'The following formats are supported: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color().' : _formatMuiErrorMessage(9, color));\n }\n let values = color.substring(marker + 1, color.length - 1);\n let colorSpace;\n if (type === 'color') {\n values = values.split(' ');\n colorSpace = values.shift();\n if (values.length === 4 && values[3].charAt(0) === '/') {\n values[3] = values[3].slice(1);\n }\n if (!['srgb', 'display-p3', 'a98-rgb', 'prophoto-rgb', 'rec-2020'].includes(colorSpace)) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: unsupported \\`${colorSpace}\\` color space.\\n` + 'The following color spaces are supported: srgb, display-p3, a98-rgb, prophoto-rgb, rec-2020.' : _formatMuiErrorMessage(10, colorSpace));\n }\n } else {\n values = values.split(',');\n }\n values = values.map(value => parseFloat(value));\n return {\n type,\n values,\n colorSpace\n };\n}\n\n/**\n * Returns a channel created from the input color.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @returns {string} - The channel for the color, that can be used in rgba or hsla colors\n */\nexport const colorChannel = color => {\n const decomposedColor = decomposeColor(color);\n return decomposedColor.values.slice(0, 3).map((val, idx) => decomposedColor.type.includes('hsl') && idx !== 0 ? `${val}%` : val).join(' ');\n};\nexport const private_safeColorChannel = (color, warning) => {\n try {\n return colorChannel(color);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n};\n\n/**\n * Converts a color object with type and values to a string.\n * @param {object} color - Decomposed color\n * @param {string} color.type - One of: 'rgb', 'rgba', 'hsl', 'hsla', 'color'\n * @param {array} color.values - [n,n,n] or [n,n,n,n]\n * @returns {string} A CSS color string\n */\nexport function recomposeColor(color) {\n const {\n type,\n colorSpace\n } = color;\n let {\n values\n } = color;\n if (type.includes('rgb')) {\n // Only convert the first 3 values to int (i.e. not alpha)\n values = values.map((n, i) => i < 3 ? parseInt(n, 10) : n);\n } else if (type.includes('hsl')) {\n values[1] = `${values[1]}%`;\n values[2] = `${values[2]}%`;\n }\n if (type.includes('color')) {\n values = `${colorSpace} ${values.join(' ')}`;\n } else {\n values = `${values.join(', ')}`;\n }\n return `${type}(${values})`;\n}\n\n/**\n * Converts a color from CSS rgb format to CSS hex format.\n * @param {string} color - RGB color, i.e. rgb(n, n, n)\n * @returns {string} A CSS rgb color string, i.e. #nnnnnn\n */\nexport function rgbToHex(color) {\n // Idempotent\n if (color.startsWith('#')) {\n return color;\n }\n const {\n values\n } = decomposeColor(color);\n return `#${values.map((n, i) => intToHex(i === 3 ? Math.round(255 * n) : n)).join('')}`;\n}\n\n/**\n * Converts a color from hsl format to rgb format.\n * @param {string} color - HSL color values\n * @returns {string} rgb color values\n */\nexport function hslToRgb(color) {\n color = decomposeColor(color);\n const {\n values\n } = color;\n const h = values[0];\n const s = values[1] / 100;\n const l = values[2] / 100;\n const a = s * Math.min(l, 1 - l);\n const f = (n, k = (n + h / 30) % 12) => l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n let type = 'rgb';\n const rgb = [Math.round(f(0) * 255), Math.round(f(8) * 255), Math.round(f(4) * 255)];\n if (color.type === 'hsla') {\n type += 'a';\n rgb.push(values[3]);\n }\n return recomposeColor({\n type,\n values: rgb\n });\n}\n/**\n * The relative brightness of any point in a color space,\n * normalized to 0 for darkest black and 1 for lightest white.\n *\n * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @returns {number} The relative brightness of the color in the range 0 - 1\n */\nexport function getLuminance(color) {\n color = decomposeColor(color);\n let rgb = color.type === 'hsl' || color.type === 'hsla' ? decomposeColor(hslToRgb(color)).values : color.values;\n rgb = rgb.map(val => {\n if (color.type !== 'color') {\n val /= 255; // normalized\n }\n return val <= 0.03928 ? val / 12.92 : ((val + 0.055) / 1.055) ** 2.4;\n });\n\n // Truncate at 3 digits\n return Number((0.2126 * rgb[0] + 0.7152 * rgb[1] + 0.0722 * rgb[2]).toFixed(3));\n}\n\n/**\n * Calculates the contrast ratio between two colors.\n *\n * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests\n * @param {string} foreground - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {string} background - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @returns {number} A contrast ratio value in the range 0 - 21.\n */\nexport function getContrastRatio(foreground, background) {\n const lumA = getLuminance(foreground);\n const lumB = getLuminance(background);\n return (Math.max(lumA, lumB) + 0.05) / (Math.min(lumA, lumB) + 0.05);\n}\n\n/**\n * Sets the absolute transparency of a color.\n * Any existing alpha values are overwritten.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @param {number} value - value to set the alpha channel to in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\nexport function alpha(color, value) {\n color = decomposeColor(color);\n value = clampWrapper(value);\n if (color.type === 'rgb' || color.type === 'hsl') {\n color.type += 'a';\n }\n if (color.type === 'color') {\n color.values[3] = `/${value}`;\n } else {\n color.values[3] = value;\n }\n return recomposeColor(color);\n}\nexport function private_safeAlpha(color, value, warning) {\n try {\n return alpha(color, value);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n}\n\n/**\n * Darkens a color.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @param {number} coefficient - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\nexport function darken(color, coefficient) {\n color = decomposeColor(color);\n coefficient = clampWrapper(coefficient);\n if (color.type.includes('hsl')) {\n color.values[2] *= 1 - coefficient;\n } else if (color.type.includes('rgb') || color.type.includes('color')) {\n for (let i = 0; i < 3; i += 1) {\n color.values[i] *= 1 - coefficient;\n }\n }\n return recomposeColor(color);\n}\nexport function private_safeDarken(color, coefficient, warning) {\n try {\n return darken(color, coefficient);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n}\n\n/**\n * Lightens a color.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @param {number} coefficient - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\nexport function lighten(color, coefficient) {\n color = decomposeColor(color);\n coefficient = clampWrapper(coefficient);\n if (color.type.includes('hsl')) {\n color.values[2] += (100 - color.values[2]) * coefficient;\n } else if (color.type.includes('rgb')) {\n for (let i = 0; i < 3; i += 1) {\n color.values[i] += (255 - color.values[i]) * coefficient;\n }\n } else if (color.type.includes('color')) {\n for (let i = 0; i < 3; i += 1) {\n color.values[i] += (1 - color.values[i]) * coefficient;\n }\n }\n return recomposeColor(color);\n}\nexport function private_safeLighten(color, coefficient, warning) {\n try {\n return lighten(color, coefficient);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n}\n\n/**\n * Darken or lighten a color, depending on its luminance.\n * Light colors are darkened, dark colors are lightened.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @param {number} coefficient=0.15 - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\nexport function emphasize(color, coefficient = 0.15) {\n return getLuminance(color) > 0.5 ? darken(color, coefficient) : lighten(color, coefficient);\n}\nexport function private_safeEmphasize(color, coefficient, warning) {\n try {\n return emphasize(color, coefficient);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n}\n\n/**\n * Blend a transparent overlay color with a background color, resulting in a single\n * RGB color.\n * @param {string} background - CSS color\n * @param {string} overlay - CSS color\n * @param {number} opacity - Opacity multiplier in the range 0 - 1\n * @param {number} [gamma=1.0] - Gamma correction factor. For gamma-correct blending, 2.2 is usual.\n */\nexport function blend(background, overlay, opacity, gamma = 1.0) {\n const blendChannel = (b, o) => Math.round((b ** (1 / gamma) * (1 - opacity) + o ** (1 / gamma) * opacity) ** gamma);\n const backgroundColor = decomposeColor(background);\n const overlayColor = decomposeColor(overlay);\n const rgb = [blendChannel(backgroundColor.values[0], overlayColor.values[0]), blendChannel(backgroundColor.values[1], overlayColor.values[1]), blendChannel(backgroundColor.values[2], overlayColor.values[2])];\n return recomposeColor({\n type: 'rgb',\n values: rgb\n });\n}","const common = {\n black: '#000',\n white: '#fff'\n};\nexport default common;","const grey = {\n 50: '#fafafa',\n 100: '#f5f5f5',\n 200: '#eeeeee',\n 300: '#e0e0e0',\n 400: '#bdbdbd',\n 500: '#9e9e9e',\n 600: '#757575',\n 700: '#616161',\n 800: '#424242',\n 900: '#212121',\n A100: '#f5f5f5',\n A200: '#eeeeee',\n A400: '#bdbdbd',\n A700: '#616161'\n};\nexport default grey;","const purple = {\n 50: '#f3e5f5',\n 100: '#e1bee7',\n 200: '#ce93d8',\n 300: '#ba68c8',\n 400: '#ab47bc',\n 500: '#9c27b0',\n 600: '#8e24aa',\n 700: '#7b1fa2',\n 800: '#6a1b9a',\n 900: '#4a148c',\n A100: '#ea80fc',\n A200: '#e040fb',\n A400: '#d500f9',\n A700: '#aa00ff'\n};\nexport default purple;","const red = {\n 50: '#ffebee',\n 100: '#ffcdd2',\n 200: '#ef9a9a',\n 300: '#e57373',\n 400: '#ef5350',\n 500: '#f44336',\n 600: '#e53935',\n 700: '#d32f2f',\n 800: '#c62828',\n 900: '#b71c1c',\n A100: '#ff8a80',\n A200: '#ff5252',\n A400: '#ff1744',\n A700: '#d50000'\n};\nexport default red;","const orange = {\n 50: '#fff3e0',\n 100: '#ffe0b2',\n 200: '#ffcc80',\n 300: '#ffb74d',\n 400: '#ffa726',\n 500: '#ff9800',\n 600: '#fb8c00',\n 700: '#f57c00',\n 800: '#ef6c00',\n 900: '#e65100',\n A100: '#ffd180',\n A200: '#ffab40',\n A400: '#ff9100',\n A700: '#ff6d00'\n};\nexport default orange;","const blue = {\n 50: '#e3f2fd',\n 100: '#bbdefb',\n 200: '#90caf9',\n 300: '#64b5f6',\n 400: '#42a5f5',\n 500: '#2196f3',\n 600: '#1e88e5',\n 700: '#1976d2',\n 800: '#1565c0',\n 900: '#0d47a1',\n A100: '#82b1ff',\n A200: '#448aff',\n A400: '#2979ff',\n A700: '#2962ff'\n};\nexport default blue;","const lightBlue = {\n 50: '#e1f5fe',\n 100: '#b3e5fc',\n 200: '#81d4fa',\n 300: '#4fc3f7',\n 400: '#29b6f6',\n 500: '#03a9f4',\n 600: '#039be5',\n 700: '#0288d1',\n 800: '#0277bd',\n 900: '#01579b',\n A100: '#80d8ff',\n A200: '#40c4ff',\n A400: '#00b0ff',\n A700: '#0091ea'\n};\nexport default lightBlue;","const green = {\n 50: '#e8f5e9',\n 100: '#c8e6c9',\n 200: '#a5d6a7',\n 300: '#81c784',\n 400: '#66bb6a',\n 500: '#4caf50',\n 600: '#43a047',\n 700: '#388e3c',\n 800: '#2e7d32',\n 900: '#1b5e20',\n A100: '#b9f6ca',\n A200: '#69f0ae',\n A400: '#00e676',\n A700: '#00c853'\n};\nexport default green;","import _formatMuiErrorMessage from \"@mui/utils/formatMuiErrorMessage\";\nimport deepmerge from '@mui/utils/deepmerge';\nimport { darken, getContrastRatio, lighten } from '@mui/system/colorManipulator';\nimport common from \"../colors/common.js\";\nimport grey from \"../colors/grey.js\";\nimport purple from \"../colors/purple.js\";\nimport red from \"../colors/red.js\";\nimport orange from \"../colors/orange.js\";\nimport blue from \"../colors/blue.js\";\nimport lightBlue from \"../colors/lightBlue.js\";\nimport green from \"../colors/green.js\";\nexport const light = {\n // The colors used to style the text.\n text: {\n // The most important text.\n primary: 'rgba(0, 0, 0, 0.87)',\n // Secondary text.\n secondary: 'rgba(0, 0, 0, 0.6)',\n // Disabled text have even lower visual prominence.\n disabled: 'rgba(0, 0, 0, 0.38)'\n },\n // The color used to divide different elements.\n divider: 'rgba(0, 0, 0, 0.12)',\n // The background colors used to style the surfaces.\n // Consistency between these values is important.\n background: {\n paper: common.white,\n default: common.white\n },\n // The colors used to style the action elements.\n action: {\n // The color of an active action like an icon button.\n active: 'rgba(0, 0, 0, 0.54)',\n // The color of an hovered action.\n hover: 'rgba(0, 0, 0, 0.04)',\n hoverOpacity: 0.04,\n // The color of a selected action.\n selected: 'rgba(0, 0, 0, 0.08)',\n selectedOpacity: 0.08,\n // The color of a disabled action.\n disabled: 'rgba(0, 0, 0, 0.26)',\n // The background color of a disabled action.\n disabledBackground: 'rgba(0, 0, 0, 0.12)',\n disabledOpacity: 0.38,\n focus: 'rgba(0, 0, 0, 0.12)',\n focusOpacity: 0.12,\n activatedOpacity: 0.12\n }\n};\nexport const dark = {\n text: {\n primary: common.white,\n secondary: 'rgba(255, 255, 255, 0.7)',\n disabled: 'rgba(255, 255, 255, 0.5)',\n icon: 'rgba(255, 255, 255, 0.5)'\n },\n divider: 'rgba(255, 255, 255, 0.12)',\n background: {\n paper: '#121212',\n default: '#121212'\n },\n action: {\n active: common.white,\n hover: 'rgba(255, 255, 255, 0.08)',\n hoverOpacity: 0.08,\n selected: 'rgba(255, 255, 255, 0.16)',\n selectedOpacity: 0.16,\n disabled: 'rgba(255, 255, 255, 0.3)',\n disabledBackground: 'rgba(255, 255, 255, 0.12)',\n disabledOpacity: 0.38,\n focus: 'rgba(255, 255, 255, 0.12)',\n focusOpacity: 0.12,\n activatedOpacity: 0.24\n }\n};\nfunction addLightOrDark(intent, direction, shade, tonalOffset) {\n const tonalOffsetLight = tonalOffset.light || tonalOffset;\n const tonalOffsetDark = tonalOffset.dark || tonalOffset * 1.5;\n if (!intent[direction]) {\n if (intent.hasOwnProperty(shade)) {\n intent[direction] = intent[shade];\n } else if (direction === 'light') {\n intent.light = lighten(intent.main, tonalOffsetLight);\n } else if (direction === 'dark') {\n intent.dark = darken(intent.main, tonalOffsetDark);\n }\n }\n}\nfunction getDefaultPrimary(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: blue[200],\n light: blue[50],\n dark: blue[400]\n };\n }\n return {\n main: blue[700],\n light: blue[400],\n dark: blue[800]\n };\n}\nfunction getDefaultSecondary(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: purple[200],\n light: purple[50],\n dark: purple[400]\n };\n }\n return {\n main: purple[500],\n light: purple[300],\n dark: purple[700]\n };\n}\nfunction getDefaultError(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: red[500],\n light: red[300],\n dark: red[700]\n };\n }\n return {\n main: red[700],\n light: red[400],\n dark: red[800]\n };\n}\nfunction getDefaultInfo(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: lightBlue[400],\n light: lightBlue[300],\n dark: lightBlue[700]\n };\n }\n return {\n main: lightBlue[700],\n light: lightBlue[500],\n dark: lightBlue[900]\n };\n}\nfunction getDefaultSuccess(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: green[400],\n light: green[300],\n dark: green[700]\n };\n }\n return {\n main: green[800],\n light: green[500],\n dark: green[900]\n };\n}\nfunction getDefaultWarning(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: orange[400],\n light: orange[300],\n dark: orange[700]\n };\n }\n return {\n main: '#ed6c02',\n // closest to orange[800] that pass 3:1.\n light: orange[500],\n dark: orange[900]\n };\n}\nexport default function createPalette(palette) {\n const {\n mode = 'light',\n contrastThreshold = 3,\n tonalOffset = 0.2,\n ...other\n } = palette;\n const primary = palette.primary || getDefaultPrimary(mode);\n const secondary = palette.secondary || getDefaultSecondary(mode);\n const error = palette.error || getDefaultError(mode);\n const info = palette.info || getDefaultInfo(mode);\n const success = palette.success || getDefaultSuccess(mode);\n const warning = palette.warning || getDefaultWarning(mode);\n\n // Use the same logic as\n // Bootstrap: https://github.com/twbs/bootstrap/blob/1d6e3710dd447de1a200f29e8fa521f8a0908f70/scss/_functions.scss#L59\n // and material-components-web https://github.com/material-components/material-components-web/blob/ac46b8863c4dab9fc22c4c662dc6bd1b65dd652f/packages/mdc-theme/_functions.scss#L54\n function getContrastText(background) {\n const contrastText = getContrastRatio(background, dark.text.primary) >= contrastThreshold ? dark.text.primary : light.text.primary;\n if (process.env.NODE_ENV !== 'production') {\n const contrast = getContrastRatio(background, contrastText);\n if (contrast < 3) {\n console.error([`MUI: The contrast ratio of ${contrast}:1 for ${contrastText} on ${background}`, 'falls below the WCAG recommended absolute minimum contrast ratio of 3:1.', 'https://www.w3.org/TR/2008/REC-WCAG20-20081211/#visual-audio-contrast-contrast'].join('\\n'));\n }\n }\n return contrastText;\n }\n const augmentColor = ({\n color,\n name,\n mainShade = 500,\n lightShade = 300,\n darkShade = 700\n }) => {\n color = {\n ...color\n };\n if (!color.main && color[mainShade]) {\n color.main = color[mainShade];\n }\n if (!color.hasOwnProperty('main')) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: The color${name ? ` (${name})` : ''} provided to augmentColor(color) is invalid.\\n` + `The color object needs to have a \\`main\\` property or a \\`${mainShade}\\` property.` : _formatMuiErrorMessage(11, name ? ` (${name})` : '', mainShade));\n }\n if (typeof color.main !== 'string') {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: The color${name ? ` (${name})` : ''} provided to augmentColor(color) is invalid.\\n` + `\\`color.main\\` should be a string, but \\`${JSON.stringify(color.main)}\\` was provided instead.\\n` + '\\n' + 'Did you intend to use one of the following approaches?\\n' + '\\n' + 'import { green } from \"@mui/material/colors\";\\n' + '\\n' + 'const theme1 = createTheme({ palette: {\\n' + ' primary: green,\\n' + '} });\\n' + '\\n' + 'const theme2 = createTheme({ palette: {\\n' + ' primary: { main: green[500] },\\n' + '} });' : _formatMuiErrorMessage(12, name ? ` (${name})` : '', JSON.stringify(color.main)));\n }\n addLightOrDark(color, 'light', lightShade, tonalOffset);\n addLightOrDark(color, 'dark', darkShade, tonalOffset);\n if (!color.contrastText) {\n color.contrastText = getContrastText(color.main);\n }\n return color;\n };\n const modes = {\n dark,\n light\n };\n if (process.env.NODE_ENV !== 'production') {\n if (!modes[mode]) {\n console.error(`MUI: The palette mode \\`${mode}\\` is not supported.`);\n }\n }\n const paletteOutput = deepmerge({\n // A collection of common colors.\n common: {\n ...common\n },\n // prevent mutable object.\n // The palette mode, can be light or dark.\n mode,\n // The colors used to represent primary interface elements for a user.\n primary: augmentColor({\n color: primary,\n name: 'primary'\n }),\n // The colors used to represent secondary interface elements for a user.\n secondary: augmentColor({\n color: secondary,\n name: 'secondary',\n mainShade: 'A400',\n lightShade: 'A200',\n darkShade: 'A700'\n }),\n // The colors used to represent interface elements that the user should be made aware of.\n error: augmentColor({\n color: error,\n name: 'error'\n }),\n // The colors used to represent potentially dangerous actions or important messages.\n warning: augmentColor({\n color: warning,\n name: 'warning'\n }),\n // The colors used to present information to the user that is neutral and not necessarily important.\n info: augmentColor({\n color: info,\n name: 'info'\n }),\n // The colors used to indicate the successful completion of an action that user triggered.\n success: augmentColor({\n color: success,\n name: 'success'\n }),\n // The grey colors.\n grey,\n // Used by `getContrastText()` to maximize the contrast between\n // the background and the text.\n contrastThreshold,\n // Takes a background color and returns the text color that maximizes the contrast.\n getContrastText,\n // Generate a rich color object.\n augmentColor,\n // Used by the functions below to shift a color's luminance by approximately\n // two indexes within its tonal palette.\n // E.g., shift from Red 500 to Red 300 or Red 700.\n tonalOffset,\n // The light and dark mode object.\n ...modes[mode]\n }, other);\n return paletteOutput;\n}","/**\n * The benefit of this function is to help developers get CSS var from theme without specifying the whole variable\n * and they does not need to remember the prefix (defined once).\n */\nexport default function createGetCssVar(prefix = '') {\n function appendVar(...vars) {\n if (!vars.length) {\n return '';\n }\n const value = vars[0];\n if (typeof value === 'string' && !value.match(/(#|\\(|\\)|(-?(\\d*\\.)?\\d+)(px|em|%|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc))|^(-?(\\d*\\.)?\\d+)$|(\\d+ \\d+ \\d+)/)) {\n return `, var(--${prefix ? `${prefix}-` : ''}${value}${appendVar(...vars.slice(1))})`;\n }\n return `, ${value}`;\n }\n\n // AdditionalVars makes `getCssVar` less strict, so it can be use like this `getCssVar('non-mui-variable')` without type error.\n const getCssVar = (field, ...fallbacks) => {\n return `var(--${prefix ? `${prefix}-` : ''}${field}${appendVar(...fallbacks)})`;\n };\n return getCssVar;\n}","import { createUnarySpacing } from \"../spacing/index.js\";\n\n// The different signatures imply different meaning for their arguments that can't be expressed structurally.\n// We express the difference with variable names.\n\nexport default function createSpacing(spacingInput = 8,\n// Material Design layouts are visually balanced. Most measurements align to an 8dp grid, which aligns both spacing and the overall layout.\n// Smaller components, such as icons, can align to a 4dp grid.\n// https://m2.material.io/design/layout/understanding-layout.html\ntransform = createUnarySpacing({\n spacing: spacingInput\n})) {\n // Already transformed.\n if (spacingInput.mui) {\n return spacingInput;\n }\n const spacing = (...argsInput) => {\n if (process.env.NODE_ENV !== 'production') {\n if (!(argsInput.length <= 4)) {\n console.error(`MUI: Too many arguments provided, expected between 0 and 4, got ${argsInput.length}`);\n }\n }\n const args = argsInput.length === 0 ? [1] : argsInput;\n return args.map(argument => {\n const output = transform(argument);\n return typeof output === 'number' ? `${output}px` : output;\n }).join(' ');\n };\n spacing.mui = true;\n return spacing;\n}","export default function prepareTypographyVars(typography) {\n const vars = {};\n const entries = Object.entries(typography);\n entries.forEach(entry => {\n const [key, value] = entry;\n if (typeof value === 'object') {\n vars[key] = `${value.fontStyle ? `${value.fontStyle} ` : ''}${value.fontVariant ? `${value.fontVariant} ` : ''}${value.fontWeight ? `${value.fontWeight} ` : ''}${value.fontStretch ? `${value.fontStretch} ` : ''}${value.fontSize || ''}${value.lineHeight ? `/${value.lineHeight} ` : ''}${value.fontFamily || ''}`;\n }\n });\n return vars;\n}","/**\n * This function create an object from keys, value and then assign to target\n *\n * @param {Object} obj : the target object to be assigned\n * @param {string[]} keys\n * @param {string | number} value\n *\n * @example\n * const source = {}\n * assignNestedKeys(source, ['palette', 'primary'], 'var(--palette-primary)')\n * console.log(source) // { palette: { primary: 'var(--palette-primary)' } }\n *\n * @example\n * const source = { palette: { primary: 'var(--palette-primary)' } }\n * assignNestedKeys(source, ['palette', 'secondary'], 'var(--palette-secondary)')\n * console.log(source) // { palette: { primary: 'var(--palette-primary)', secondary: 'var(--palette-secondary)' } }\n */\nexport const assignNestedKeys = (obj, keys, value, arrayKeys = []) => {\n let temp = obj;\n keys.forEach((k, index) => {\n if (index === keys.length - 1) {\n if (Array.isArray(temp)) {\n temp[Number(k)] = value;\n } else if (temp && typeof temp === 'object') {\n temp[k] = value;\n }\n } else if (temp && typeof temp === 'object') {\n if (!temp[k]) {\n temp[k] = arrayKeys.includes(k) ? [] : {};\n }\n temp = temp[k];\n }\n });\n};\n\n/**\n *\n * @param {Object} obj : source object\n * @param {Function} callback : a function that will be called when\n * - the deepest key in source object is reached\n * - the value of the deepest key is NOT `undefined` | `null`\n *\n * @example\n * walkObjectDeep({ palette: { primary: { main: '#000000' } } }, console.log)\n * // ['palette', 'primary', 'main'] '#000000'\n */\nexport const walkObjectDeep = (obj, callback, shouldSkipPaths) => {\n function recurse(object, parentKeys = [], arrayKeys = []) {\n Object.entries(object).forEach(([key, value]) => {\n if (!shouldSkipPaths || shouldSkipPaths && !shouldSkipPaths([...parentKeys, key])) {\n if (value !== undefined && value !== null) {\n if (typeof value === 'object' && Object.keys(value).length > 0) {\n recurse(value, [...parentKeys, key], Array.isArray(value) ? [...arrayKeys, key] : arrayKeys);\n } else {\n callback([...parentKeys, key], value, arrayKeys);\n }\n }\n }\n });\n }\n recurse(obj);\n};\nconst getCssValue = (keys, value) => {\n if (typeof value === 'number') {\n if (['lineHeight', 'fontWeight', 'opacity', 'zIndex'].some(prop => keys.includes(prop))) {\n // CSS property that are unitless\n return value;\n }\n const lastKey = keys[keys.length - 1];\n if (lastKey.toLowerCase().includes('opacity')) {\n // opacity values are unitless\n return value;\n }\n return `${value}px`;\n }\n return value;\n};\n\n/**\n * a function that parse theme and return { css, vars }\n *\n * @param {Object} theme\n * @param {{\n * prefix?: string,\n * shouldSkipGeneratingVar?: (objectPathKeys: Array, value: string | number) => boolean\n * }} options.\n * `prefix`: The prefix of the generated CSS variables. This function does not change the value.\n *\n * @returns {{ css: Object, vars: Object }} `css` is the stylesheet, `vars` is an object to get css variable (same structure as theme).\n *\n * @example\n * const { css, vars } = parser({\n * fontSize: 12,\n * lineHeight: 1.2,\n * palette: { primary: { 500: 'var(--color)' } }\n * }, { prefix: 'foo' })\n *\n * console.log(css) // { '--foo-fontSize': '12px', '--foo-lineHeight': 1.2, '--foo-palette-primary-500': 'var(--color)' }\n * console.log(vars) // { fontSize: 'var(--foo-fontSize)', lineHeight: 'var(--foo-lineHeight)', palette: { primary: { 500: 'var(--foo-palette-primary-500)' } } }\n */\nexport default function cssVarsParser(theme, options) {\n const {\n prefix,\n shouldSkipGeneratingVar\n } = options || {};\n const css = {};\n const vars = {};\n const varsWithDefaults = {};\n walkObjectDeep(theme, (keys, value, arrayKeys) => {\n if (typeof value === 'string' || typeof value === 'number') {\n if (!shouldSkipGeneratingVar || !shouldSkipGeneratingVar(keys, value)) {\n // only create css & var if `shouldSkipGeneratingVar` return false\n const cssVar = `--${prefix ? `${prefix}-` : ''}${keys.join('-')}`;\n const resolvedValue = getCssValue(keys, value);\n Object.assign(css, {\n [cssVar]: resolvedValue\n });\n assignNestedKeys(vars, keys, `var(${cssVar})`, arrayKeys);\n assignNestedKeys(varsWithDefaults, keys, `var(${cssVar}, ${resolvedValue})`, arrayKeys);\n }\n }\n }, keys => keys[0] === 'vars' // skip 'vars/*' paths\n );\n return {\n css,\n vars,\n varsWithDefaults\n };\n}","import deepmerge from '@mui/utils/deepmerge';\nimport cssVarsParser from \"./cssVarsParser.js\";\nfunction prepareCssVars(theme, parserConfig = {}) {\n const {\n getSelector = defaultGetSelector,\n disableCssColorScheme,\n colorSchemeSelector: selector\n } = parserConfig;\n // @ts-ignore - ignore components do not exist\n const {\n colorSchemes = {},\n components,\n defaultColorScheme = 'light',\n ...otherTheme\n } = theme;\n const {\n vars: rootVars,\n css: rootCss,\n varsWithDefaults: rootVarsWithDefaults\n } = cssVarsParser(otherTheme, parserConfig);\n let themeVars = rootVarsWithDefaults;\n const colorSchemesMap = {};\n const {\n [defaultColorScheme]: defaultScheme,\n ...otherColorSchemes\n } = colorSchemes;\n Object.entries(otherColorSchemes || {}).forEach(([key, scheme]) => {\n const {\n vars,\n css,\n varsWithDefaults\n } = cssVarsParser(scheme, parserConfig);\n themeVars = deepmerge(themeVars, varsWithDefaults);\n colorSchemesMap[key] = {\n css,\n vars\n };\n });\n if (defaultScheme) {\n // default color scheme vars should be merged last to set as default\n const {\n css,\n vars,\n varsWithDefaults\n } = cssVarsParser(defaultScheme, parserConfig);\n themeVars = deepmerge(themeVars, varsWithDefaults);\n colorSchemesMap[defaultColorScheme] = {\n css,\n vars\n };\n }\n function defaultGetSelector(colorScheme, cssObject) {\n let rule = selector;\n if (selector === 'class') {\n rule = '.%s';\n }\n if (selector === 'data') {\n rule = '[data-%s]';\n }\n if (selector?.startsWith('data-') && !selector.includes('%s')) {\n // 'data-joy-color-scheme' -> '[data-joy-color-scheme=\"%s\"]'\n rule = `[${selector}=\"%s\"]`;\n }\n if (colorScheme) {\n if (rule === 'media') {\n if (theme.defaultColorScheme === colorScheme) {\n return ':root';\n }\n const mode = colorSchemes[colorScheme]?.palette?.mode || colorScheme;\n return {\n [`@media (prefers-color-scheme: ${mode})`]: {\n ':root': cssObject\n }\n };\n }\n if (rule) {\n if (theme.defaultColorScheme === colorScheme) {\n return `:root, ${rule.replace('%s', String(colorScheme))}`;\n }\n return rule.replace('%s', String(colorScheme));\n }\n }\n return ':root';\n }\n const generateThemeVars = () => {\n let vars = {\n ...rootVars\n };\n Object.entries(colorSchemesMap).forEach(([, {\n vars: schemeVars\n }]) => {\n vars = deepmerge(vars, schemeVars);\n });\n return vars;\n };\n const generateStyleSheets = () => {\n const stylesheets = [];\n const colorScheme = theme.defaultColorScheme || 'light';\n function insertStyleSheet(key, css) {\n if (Object.keys(css).length) {\n stylesheets.push(typeof key === 'string' ? {\n [key]: {\n ...css\n }\n } : key);\n }\n }\n insertStyleSheet(getSelector(undefined, {\n ...rootCss\n }), rootCss);\n const {\n [colorScheme]: defaultSchemeVal,\n ...other\n } = colorSchemesMap;\n if (defaultSchemeVal) {\n // default color scheme has to come before other color schemes\n const {\n css\n } = defaultSchemeVal;\n const cssColorSheme = colorSchemes[colorScheme]?.palette?.mode;\n const finalCss = !disableCssColorScheme && cssColorSheme ? {\n colorScheme: cssColorSheme,\n ...css\n } : {\n ...css\n };\n insertStyleSheet(getSelector(colorScheme, {\n ...finalCss\n }), finalCss);\n }\n Object.entries(other).forEach(([key, {\n css\n }]) => {\n const cssColorSheme = colorSchemes[key]?.palette?.mode;\n const finalCss = !disableCssColorScheme && cssColorSheme ? {\n colorScheme: cssColorSheme,\n ...css\n } : {\n ...css\n };\n insertStyleSheet(getSelector(key, {\n ...finalCss\n }), finalCss);\n });\n return stylesheets;\n };\n return {\n vars: themeVars,\n generateThemeVars,\n generateStyleSheets\n };\n}\nexport default prepareCssVars;","// Sorted ASC by size. That's important.\n// It can't be configured as it's used statically for propTypes.\nexport const breakpointKeys = ['xs', 'sm', 'md', 'lg', 'xl'];\nconst sortBreakpointsValues = values => {\n const breakpointsAsArray = Object.keys(values).map(key => ({\n key,\n val: values[key]\n })) || [];\n // Sort in ascending order\n breakpointsAsArray.sort((breakpoint1, breakpoint2) => breakpoint1.val - breakpoint2.val);\n return breakpointsAsArray.reduce((acc, obj) => {\n return {\n ...acc,\n [obj.key]: obj.val\n };\n }, {});\n};\n\n// Keep in mind that @media is inclusive by the CSS specification.\nexport default function createBreakpoints(breakpoints) {\n const {\n // The breakpoint **start** at this value.\n // For instance with the first breakpoint xs: [xs, sm).\n values = {\n xs: 0,\n // phone\n sm: 600,\n // tablet\n md: 900,\n // small laptop\n lg: 1200,\n // desktop\n xl: 1536 // large screen\n },\n unit = 'px',\n step = 5,\n ...other\n } = breakpoints;\n const sortedValues = sortBreakpointsValues(values);\n const keys = Object.keys(sortedValues);\n function up(key) {\n const value = typeof values[key] === 'number' ? values[key] : key;\n return `@media (min-width:${value}${unit})`;\n }\n function down(key) {\n const value = typeof values[key] === 'number' ? values[key] : key;\n return `@media (max-width:${value - step / 100}${unit})`;\n }\n function between(start, end) {\n const endIndex = keys.indexOf(end);\n return `@media (min-width:${typeof values[start] === 'number' ? values[start] : start}${unit}) and ` + `(max-width:${(endIndex !== -1 && typeof values[keys[endIndex]] === 'number' ? values[keys[endIndex]] : end) - step / 100}${unit})`;\n }\n function only(key) {\n if (keys.indexOf(key) + 1 < keys.length) {\n return between(key, keys[keys.indexOf(key) + 1]);\n }\n return up(key);\n }\n function not(key) {\n // handle first and last key separately, for better readability\n const keyIndex = keys.indexOf(key);\n if (keyIndex === 0) {\n return up(keys[1]);\n }\n if (keyIndex === keys.length - 1) {\n return down(keys[keyIndex]);\n }\n return between(key, keys[keys.indexOf(key) + 1]).replace('@media', '@media not all and');\n }\n return {\n keys,\n values: sortedValues,\n up,\n down,\n between,\n only,\n not,\n unit,\n ...other\n };\n}","const shape = {\n borderRadius: 4\n};\nexport default shape;","/**\n * A universal utility to style components with multiple color modes. Always use it from the theme object.\n * It works with:\n * - [Basic theme](https://mui.com/material-ui/customization/dark-mode/)\n * - [CSS theme variables](https://mui.com/material-ui/customization/css-theme-variables/overview/)\n * - Zero-runtime engine\n *\n * Tips: Use an array over object spread and place `theme.applyStyles()` last.\n *\n * ✅ [{ background: '#e5e5e5' }, theme.applyStyles('dark', { background: '#1c1c1c' })]\n *\n * 🚫 { background: '#e5e5e5', ...theme.applyStyles('dark', { background: '#1c1c1c' })}\n *\n * @example\n * 1. using with `styled`:\n * ```jsx\n * const Component = styled('div')(({ theme }) => [\n * { background: '#e5e5e5' },\n * theme.applyStyles('dark', {\n * background: '#1c1c1c',\n * color: '#fff',\n * }),\n * ]);\n * ```\n *\n * @example\n * 2. using with `sx` prop:\n * ```jsx\n * [\n * { background: '#e5e5e5' },\n * theme.applyStyles('dark', {\n * background: '#1c1c1c',\n * color: '#fff',\n * }),\n * ]}\n * />\n * ```\n *\n * @example\n * 3. theming a component:\n * ```jsx\n * extendTheme({\n * components: {\n * MuiButton: {\n * styleOverrides: {\n * root: ({ theme }) => [\n * { background: '#e5e5e5' },\n * theme.applyStyles('dark', {\n * background: '#1c1c1c',\n * color: '#fff',\n * }),\n * ],\n * },\n * }\n * }\n * })\n *```\n */\nexport default function applyStyles(key, styles) {\n // @ts-expect-error this is 'any' type\n const theme = this;\n if (theme.vars) {\n if (!theme.colorSchemes?.[key] || typeof theme.getColorSchemeSelector !== 'function') {\n return {};\n }\n // If CssVarsProvider is used as a provider, returns '*:where({selector}) &'\n let selector = theme.getColorSchemeSelector(key);\n if (selector === '&') {\n return styles;\n }\n if (selector.includes('data-') || selector.includes('.')) {\n // '*' is required as a workaround for Emotion issue (https://github.com/emotion-js/emotion/issues/2836)\n selector = `*:where(${selector.replace(/\\s*&$/, '')}) &`;\n }\n return {\n [selector]: styles\n };\n }\n if (theme.palette.mode === key) {\n return styles;\n }\n return {};\n}","import deepmerge from '@mui/utils/deepmerge';\nimport createBreakpoints from \"../createBreakpoints/createBreakpoints.js\";\nimport cssContainerQueries from \"../cssContainerQueries/index.js\";\nimport shape from \"./shape.js\";\nimport createSpacing from \"./createSpacing.js\";\nimport styleFunctionSx from \"../styleFunctionSx/styleFunctionSx.js\";\nimport defaultSxConfig from \"../styleFunctionSx/defaultSxConfig.js\";\nimport applyStyles from \"./applyStyles.js\";\nfunction createTheme(options = {}, ...args) {\n const {\n breakpoints: breakpointsInput = {},\n palette: paletteInput = {},\n spacing: spacingInput,\n shape: shapeInput = {},\n ...other\n } = options;\n const breakpoints = createBreakpoints(breakpointsInput);\n const spacing = createSpacing(spacingInput);\n let muiTheme = deepmerge({\n breakpoints,\n direction: 'ltr',\n components: {},\n // Inject component definitions.\n palette: {\n mode: 'light',\n ...paletteInput\n },\n spacing,\n shape: {\n ...shape,\n ...shapeInput\n }\n }, other);\n muiTheme = cssContainerQueries(muiTheme);\n muiTheme.applyStyles = applyStyles;\n muiTheme = args.reduce((acc, argument) => deepmerge(acc, argument), muiTheme);\n muiTheme.unstable_sxConfig = {\n ...defaultSxConfig,\n ...other?.unstable_sxConfig\n };\n muiTheme.unstable_sx = function sx(props) {\n return styleFunctionSx({\n sx: props,\n theme: this\n });\n };\n return muiTheme;\n}\nexport default createTheme;","export default function createMixins(breakpoints, mixins) {\n return {\n toolbar: {\n minHeight: 56,\n [breakpoints.up('xs')]: {\n '@media (orientation: landscape)': {\n minHeight: 48\n }\n },\n [breakpoints.up('sm')]: {\n minHeight: 64\n }\n },\n ...mixins\n };\n}","import deepmerge from '@mui/utils/deepmerge';\nfunction round(value) {\n return Math.round(value * 1e5) / 1e5;\n}\nconst caseAllCaps = {\n textTransform: 'uppercase'\n};\nconst defaultFontFamily = '\"Roboto\", \"Helvetica\", \"Arial\", sans-serif';\n\n/**\n * @see @link{https://m2.material.io/design/typography/the-type-system.html}\n * @see @link{https://m2.material.io/design/typography/understanding-typography.html}\n */\nexport default function createTypography(palette, typography) {\n const {\n fontFamily = defaultFontFamily,\n // The default font size of the Material Specification.\n fontSize = 14,\n // px\n fontWeightLight = 300,\n fontWeightRegular = 400,\n fontWeightMedium = 500,\n fontWeightBold = 700,\n // Tell MUI what's the font-size on the html element.\n // 16px is the default font-size used by browsers.\n htmlFontSize = 16,\n // Apply the CSS properties to all the variants.\n allVariants,\n pxToRem: pxToRem2,\n ...other\n } = typeof typography === 'function' ? typography(palette) : typography;\n if (process.env.NODE_ENV !== 'production') {\n if (typeof fontSize !== 'number') {\n console.error('MUI: `fontSize` is required to be a number.');\n }\n if (typeof htmlFontSize !== 'number') {\n console.error('MUI: `htmlFontSize` is required to be a number.');\n }\n }\n const coef = fontSize / 14;\n const pxToRem = pxToRem2 || (size => `${size / htmlFontSize * coef}rem`);\n const buildVariant = (fontWeight, size, lineHeight, letterSpacing, casing) => ({\n fontFamily,\n fontWeight,\n fontSize: pxToRem(size),\n // Unitless following https://meyerweb.com/eric/thoughts/2006/02/08/unitless-line-heights/\n lineHeight,\n // The letter spacing was designed for the Roboto font-family. Using the same letter-spacing\n // across font-families can cause issues with the kerning.\n ...(fontFamily === defaultFontFamily ? {\n letterSpacing: `${round(letterSpacing / size)}em`\n } : {}),\n ...casing,\n ...allVariants\n });\n const variants = {\n h1: buildVariant(fontWeightLight, 96, 1.167, -1.5),\n h2: buildVariant(fontWeightLight, 60, 1.2, -0.5),\n h3: buildVariant(fontWeightRegular, 48, 1.167, 0),\n h4: buildVariant(fontWeightRegular, 34, 1.235, 0.25),\n h5: buildVariant(fontWeightRegular, 24, 1.334, 0),\n h6: buildVariant(fontWeightMedium, 20, 1.6, 0.15),\n subtitle1: buildVariant(fontWeightRegular, 16, 1.75, 0.15),\n subtitle2: buildVariant(fontWeightMedium, 14, 1.57, 0.1),\n body1: buildVariant(fontWeightRegular, 16, 1.5, 0.15),\n body2: buildVariant(fontWeightRegular, 14, 1.43, 0.15),\n button: buildVariant(fontWeightMedium, 14, 1.75, 0.4, caseAllCaps),\n caption: buildVariant(fontWeightRegular, 12, 1.66, 0.4),\n overline: buildVariant(fontWeightRegular, 12, 2.66, 1, caseAllCaps),\n // TODO v6: Remove handling of 'inherit' variant from the theme as it is already handled in Material UI's Typography component. Also, remember to remove the associated types.\n inherit: {\n fontFamily: 'inherit',\n fontWeight: 'inherit',\n fontSize: 'inherit',\n lineHeight: 'inherit',\n letterSpacing: 'inherit'\n }\n };\n return deepmerge({\n htmlFontSize,\n pxToRem,\n fontFamily,\n fontSize,\n fontWeightLight,\n fontWeightRegular,\n fontWeightMedium,\n fontWeightBold,\n ...variants\n }, other, {\n clone: false // No need to clone deep\n });\n}","const shadowKeyUmbraOpacity = 0.2;\nconst shadowKeyPenumbraOpacity = 0.14;\nconst shadowAmbientShadowOpacity = 0.12;\nfunction createShadow(...px) {\n return [`${px[0]}px ${px[1]}px ${px[2]}px ${px[3]}px rgba(0,0,0,${shadowKeyUmbraOpacity})`, `${px[4]}px ${px[5]}px ${px[6]}px ${px[7]}px rgba(0,0,0,${shadowKeyPenumbraOpacity})`, `${px[8]}px ${px[9]}px ${px[10]}px ${px[11]}px rgba(0,0,0,${shadowAmbientShadowOpacity})`].join(',');\n}\n\n// Values from https://github.com/material-components/material-components-web/blob/be8747f94574669cb5e7add1a7c54fa41a89cec7/packages/mdc-elevation/_variables.scss\nconst shadows = ['none', createShadow(0, 2, 1, -1, 0, 1, 1, 0, 0, 1, 3, 0), createShadow(0, 3, 1, -2, 0, 2, 2, 0, 0, 1, 5, 0), createShadow(0, 3, 3, -2, 0, 3, 4, 0, 0, 1, 8, 0), createShadow(0, 2, 4, -1, 0, 4, 5, 0, 0, 1, 10, 0), createShadow(0, 3, 5, -1, 0, 5, 8, 0, 0, 1, 14, 0), createShadow(0, 3, 5, -1, 0, 6, 10, 0, 0, 1, 18, 0), createShadow(0, 4, 5, -2, 0, 7, 10, 1, 0, 2, 16, 1), createShadow(0, 5, 5, -3, 0, 8, 10, 1, 0, 3, 14, 2), createShadow(0, 5, 6, -3, 0, 9, 12, 1, 0, 3, 16, 2), createShadow(0, 6, 6, -3, 0, 10, 14, 1, 0, 4, 18, 3), createShadow(0, 6, 7, -4, 0, 11, 15, 1, 0, 4, 20, 3), createShadow(0, 7, 8, -4, 0, 12, 17, 2, 0, 5, 22, 4), createShadow(0, 7, 8, -4, 0, 13, 19, 2, 0, 5, 24, 4), createShadow(0, 7, 9, -4, 0, 14, 21, 2, 0, 5, 26, 4), createShadow(0, 8, 9, -5, 0, 15, 22, 2, 0, 6, 28, 5), createShadow(0, 8, 10, -5, 0, 16, 24, 2, 0, 6, 30, 5), createShadow(0, 8, 11, -5, 0, 17, 26, 2, 0, 6, 32, 5), createShadow(0, 9, 11, -5, 0, 18, 28, 2, 0, 7, 34, 6), createShadow(0, 9, 12, -6, 0, 19, 29, 2, 0, 7, 36, 6), createShadow(0, 10, 13, -6, 0, 20, 31, 3, 0, 8, 38, 7), createShadow(0, 10, 13, -6, 0, 21, 33, 3, 0, 8, 40, 7), createShadow(0, 10, 14, -6, 0, 22, 35, 3, 0, 8, 42, 7), createShadow(0, 11, 14, -7, 0, 23, 36, 3, 0, 9, 44, 8), createShadow(0, 11, 15, -7, 0, 24, 38, 3, 0, 9, 46, 8)];\nexport default shadows;","// Follow https://material.google.com/motion/duration-easing.html#duration-easing-natural-easing-curves\n// to learn the context in which each easing should be used.\nexport const easing = {\n // This is the most common easing curve.\n easeInOut: 'cubic-bezier(0.4, 0, 0.2, 1)',\n // Objects enter the screen at full velocity from off-screen and\n // slowly decelerate to a resting point.\n easeOut: 'cubic-bezier(0.0, 0, 0.2, 1)',\n // Objects leave the screen at full velocity. They do not decelerate when off-screen.\n easeIn: 'cubic-bezier(0.4, 0, 1, 1)',\n // The sharp curve is used by objects that may return to the screen at any time.\n sharp: 'cubic-bezier(0.4, 0, 0.6, 1)'\n};\n\n// Follow https://m2.material.io/guidelines/motion/duration-easing.html#duration-easing-common-durations\n// to learn when use what timing\nexport const duration = {\n shortest: 150,\n shorter: 200,\n short: 250,\n // most basic recommended timing\n standard: 300,\n // this is to be used in complex animations\n complex: 375,\n // recommended when something is entering screen\n enteringScreen: 225,\n // recommended when something is leaving screen\n leavingScreen: 195\n};\nfunction formatMs(milliseconds) {\n return `${Math.round(milliseconds)}ms`;\n}\nfunction getAutoHeightDuration(height) {\n if (!height) {\n return 0;\n }\n const constant = height / 36;\n\n // https://www.desmos.com/calculator/vbrp3ggqet\n return Math.min(Math.round((4 + 15 * constant ** 0.25 + constant / 5) * 10), 3000);\n}\nexport default function createTransitions(inputTransitions) {\n const mergedEasing = {\n ...easing,\n ...inputTransitions.easing\n };\n const mergedDuration = {\n ...duration,\n ...inputTransitions.duration\n };\n const create = (props = ['all'], options = {}) => {\n const {\n duration: durationOption = mergedDuration.standard,\n easing: easingOption = mergedEasing.easeInOut,\n delay = 0,\n ...other\n } = options;\n if (process.env.NODE_ENV !== 'production') {\n const isString = value => typeof value === 'string';\n const isNumber = value => !Number.isNaN(parseFloat(value));\n if (!isString(props) && !Array.isArray(props)) {\n console.error('MUI: Argument \"props\" must be a string or Array.');\n }\n if (!isNumber(durationOption) && !isString(durationOption)) {\n console.error(`MUI: Argument \"duration\" must be a number or a string but found ${durationOption}.`);\n }\n if (!isString(easingOption)) {\n console.error('MUI: Argument \"easing\" must be a string.');\n }\n if (!isNumber(delay) && !isString(delay)) {\n console.error('MUI: Argument \"delay\" must be a number or a string.');\n }\n if (typeof options !== 'object') {\n console.error(['MUI: Secong argument of transition.create must be an object.', \"Arguments should be either `create('prop1', options)` or `create(['prop1', 'prop2'], options)`\"].join('\\n'));\n }\n if (Object.keys(other).length !== 0) {\n console.error(`MUI: Unrecognized argument(s) [${Object.keys(other).join(',')}].`);\n }\n }\n return (Array.isArray(props) ? props : [props]).map(animatedProp => `${animatedProp} ${typeof durationOption === 'string' ? durationOption : formatMs(durationOption)} ${easingOption} ${typeof delay === 'string' ? delay : formatMs(delay)}`).join(',');\n };\n return {\n getAutoHeightDuration,\n create,\n ...inputTransitions,\n easing: mergedEasing,\n duration: mergedDuration\n };\n}","// We need to centralize the zIndex definitions as they work\n// like global values in the browser.\nconst zIndex = {\n mobileStepper: 1000,\n fab: 1050,\n speedDial: 1050,\n appBar: 1100,\n drawer: 1200,\n modal: 1300,\n snackbar: 1400,\n tooltip: 1500\n};\nexport default zIndex;","import _formatMuiErrorMessage from \"@mui/utils/formatMuiErrorMessage\";\nimport deepmerge from '@mui/utils/deepmerge';\nimport styleFunctionSx, { unstable_defaultSxConfig as defaultSxConfig } from '@mui/system/styleFunctionSx';\nimport systemCreateTheme from '@mui/system/createTheme';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nimport createMixins from \"./createMixins.js\";\nimport createPalette from \"./createPalette.js\";\nimport createTypography from \"./createTypography.js\";\nimport shadows from \"./shadows.js\";\nimport createTransitions from \"./createTransitions.js\";\nimport zIndex from \"./zIndex.js\";\nfunction createThemeNoVars(options = {}, ...args) {\n const {\n breakpoints: breakpointsInput,\n mixins: mixinsInput = {},\n spacing: spacingInput,\n palette: paletteInput = {},\n transitions: transitionsInput = {},\n typography: typographyInput = {},\n shape: shapeInput,\n ...other\n } = options;\n if (options.vars) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'MUI: `vars` is a private field used for CSS variables support.\\n' + 'Please use another name.' : _formatMuiErrorMessage(20));\n }\n const palette = createPalette(paletteInput);\n const systemTheme = systemCreateTheme(options);\n let muiTheme = deepmerge(systemTheme, {\n mixins: createMixins(systemTheme.breakpoints, mixinsInput),\n palette,\n // Don't use [...shadows] until you've verified its transpiled code is not invoking the iterator protocol.\n shadows: shadows.slice(),\n typography: createTypography(palette, typographyInput),\n transitions: createTransitions(transitionsInput),\n zIndex: {\n ...zIndex\n }\n });\n muiTheme = deepmerge(muiTheme, other);\n muiTheme = args.reduce((acc, argument) => deepmerge(acc, argument), muiTheme);\n if (process.env.NODE_ENV !== 'production') {\n // TODO v6: Refactor to use globalStateClassesMapping from @mui/utils once `readOnly` state class is used in Rating component.\n const stateClasses = ['active', 'checked', 'completed', 'disabled', 'error', 'expanded', 'focused', 'focusVisible', 'required', 'selected'];\n const traverse = (node, component) => {\n let key;\n\n // eslint-disable-next-line guard-for-in\n for (key in node) {\n const child = node[key];\n if (stateClasses.includes(key) && Object.keys(child).length > 0) {\n if (process.env.NODE_ENV !== 'production') {\n const stateClass = generateUtilityClass('', key);\n console.error([`MUI: The \\`${component}\\` component increases ` + `the CSS specificity of the \\`${key}\\` internal state.`, 'You can not override it like this: ', JSON.stringify(node, null, 2), '', `Instead, you need to use the '&.${stateClass}' syntax:`, JSON.stringify({\n root: {\n [`&.${stateClass}`]: child\n }\n }, null, 2), '', 'https://mui.com/r/state-classes-guide'].join('\\n'));\n }\n // Remove the style to prevent global conflicts.\n node[key] = {};\n }\n }\n };\n Object.keys(muiTheme.components).forEach(component => {\n const styleOverrides = muiTheme.components[component].styleOverrides;\n if (styleOverrides && component.startsWith('Mui')) {\n traverse(styleOverrides, component);\n }\n });\n }\n muiTheme.unstable_sxConfig = {\n ...defaultSxConfig,\n ...other?.unstable_sxConfig\n };\n muiTheme.unstable_sx = function sx(props) {\n return styleFunctionSx({\n sx: props,\n theme: this\n });\n };\n return muiTheme;\n}\nlet warnedOnce = false;\nexport function createMuiTheme(...args) {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnedOnce) {\n warnedOnce = true;\n console.error(['MUI: the createMuiTheme function was renamed to createTheme.', '', \"You should use `import { createTheme } from '@mui/material/styles'`\"].join('\\n'));\n }\n }\n return createThemeNoVars(...args);\n}\nexport default createThemeNoVars;","// Inspired by https://github.com/material-components/material-components-ios/blob/bca36107405594d5b7b16265a5b0ed698f85a5ee/components/Elevation/src/UIColor%2BMaterialElevation.m#L61\nexport default function getOverlayAlpha(elevation) {\n let alphaValue;\n if (elevation < 1) {\n alphaValue = 5.11916 * elevation ** 2;\n } else {\n alphaValue = 4.5 * Math.log(elevation + 1) + 2;\n }\n return Math.round(alphaValue * 10) / 1000;\n}","import createPalette from \"./createPalette.js\";\nimport getOverlayAlpha from \"./getOverlayAlpha.js\";\nconst defaultDarkOverlays = [...Array(25)].map((_, index) => {\n if (index === 0) {\n return 'none';\n }\n const overlay = getOverlayAlpha(index);\n return `linear-gradient(rgba(255 255 255 / ${overlay}), rgba(255 255 255 / ${overlay}))`;\n});\nexport function getOpacity(mode) {\n return {\n inputPlaceholder: mode === 'dark' ? 0.5 : 0.42,\n inputUnderline: mode === 'dark' ? 0.7 : 0.42,\n switchTrackDisabled: mode === 'dark' ? 0.2 : 0.12,\n switchTrack: mode === 'dark' ? 0.3 : 0.38\n };\n}\nexport function getOverlays(mode) {\n return mode === 'dark' ? defaultDarkOverlays : [];\n}\nexport default function createColorScheme(options) {\n const {\n palette: paletteInput = {\n mode: 'light'\n },\n // need to cast to avoid module augmentation test\n opacity,\n overlays,\n ...rest\n } = options;\n const palette = createPalette(paletteInput);\n return {\n palette,\n opacity: {\n ...getOpacity(palette.mode),\n ...opacity\n },\n overlays: overlays || getOverlays(palette.mode),\n ...rest\n };\n}","export default function shouldSkipGeneratingVar(keys) {\n return !!keys[0].match(/(cssVarPrefix|colorSchemeSelector|rootSelector|typography|mixins|breakpoints|direction|transitions)/) || !!keys[0].match(/sxConfig$/) ||\n // ends with sxConfig\n keys[0] === 'palette' && !!keys[1]?.match(/(mode|contrastThreshold|tonalOffset)/);\n}","/**\n * @internal These variables should not appear in the :root stylesheet when the `defaultColorScheme=\"dark\"`\n */\nconst excludeVariablesFromRoot = cssVarPrefix => [...[...Array(25)].map((_, index) => `--${cssVarPrefix ? `${cssVarPrefix}-` : ''}overlays-${index}`), `--${cssVarPrefix ? `${cssVarPrefix}-` : ''}palette-AppBar-darkBg`, `--${cssVarPrefix ? `${cssVarPrefix}-` : ''}palette-AppBar-darkColor`];\nexport default excludeVariablesFromRoot;","import excludeVariablesFromRoot from \"./excludeVariablesFromRoot.js\";\nexport default theme => (colorScheme, css) => {\n const root = theme.rootSelector || ':root';\n const selector = theme.colorSchemeSelector;\n let rule = selector;\n if (selector === 'class') {\n rule = '.%s';\n }\n if (selector === 'data') {\n rule = '[data-%s]';\n }\n if (selector?.startsWith('data-') && !selector.includes('%s')) {\n // 'data-mui-color-scheme' -> '[data-mui-color-scheme=\"%s\"]'\n rule = `[${selector}=\"%s\"]`;\n }\n if (theme.defaultColorScheme === colorScheme) {\n if (colorScheme === 'dark') {\n const excludedVariables = {};\n excludeVariablesFromRoot(theme.cssVarPrefix).forEach(cssVar => {\n excludedVariables[cssVar] = css[cssVar];\n delete css[cssVar];\n });\n if (rule === 'media') {\n return {\n [root]: css,\n [`@media (prefers-color-scheme: dark)`]: {\n [root]: excludedVariables\n }\n };\n }\n if (rule) {\n return {\n [rule.replace('%s', colorScheme)]: excludedVariables,\n [`${root}, ${rule.replace('%s', colorScheme)}`]: css\n };\n }\n return {\n [root]: {\n ...css,\n ...excludedVariables\n }\n };\n }\n if (rule && rule !== 'media') {\n return `${root}, ${rule.replace('%s', String(colorScheme))}`;\n }\n } else if (colorScheme) {\n if (rule === 'media') {\n return {\n [`@media (prefers-color-scheme: ${String(colorScheme)})`]: {\n [root]: css\n }\n };\n }\n if (rule) {\n return rule.replace('%s', String(colorScheme));\n }\n }\n return root;\n};","/* eslint-disable import/prefer-default-export */\nimport { isPlainObject } from '@mui/utils/deepmerge';\nfunction isSerializable(val) {\n return isPlainObject(val) || typeof val === 'undefined' || typeof val === 'string' || typeof val === 'boolean' || typeof val === 'number' || Array.isArray(val);\n}\n\n/**\n * `baseTheme` usually comes from `createTheme` or `extendTheme`.\n *\n * This function is intended to be used with zero-runtime CSS-in-JS like Pigment CSS\n * For example, in a Next.js project:\n *\n * ```js\n * // next.config.js\n * const { extendTheme } = require('@mui/material/styles');\n *\n * const theme = extendTheme();\n * // `.toRuntimeSource` is Pigment CSS specific to create a theme that is available at runtime.\n * theme.toRuntimeSource = stringifyTheme;\n *\n * module.exports = withPigment({\n * theme,\n * });\n * ```\n */\nexport function stringifyTheme(baseTheme = {}) {\n const serializableTheme = {\n ...baseTheme\n };\n function serializeTheme(object) {\n const array = Object.entries(object);\n // eslint-disable-next-line no-plusplus\n for (let index = 0; index < array.length; index++) {\n const [key, value] = array[index];\n if (!isSerializable(value) || key.startsWith('unstable_')) {\n delete object[key];\n } else if (isPlainObject(value)) {\n object[key] = {\n ...value\n };\n serializeTheme(object[key]);\n }\n }\n }\n serializeTheme(serializableTheme);\n return `import { unstable_createBreakpoints as createBreakpoints, createTransitions } from '@mui/material/styles';\n\nconst theme = ${JSON.stringify(serializableTheme, null, 2)};\n\ntheme.breakpoints = createBreakpoints(theme.breakpoints || {});\ntheme.transitions = createTransitions(theme.transitions || {});\n\nexport default theme;`;\n}","import _formatMuiErrorMessage from \"@mui/utils/formatMuiErrorMessage\";\nimport deepmerge from '@mui/utils/deepmerge';\nimport { unstable_createGetCssVar as systemCreateGetCssVar, createSpacing } from '@mui/system';\nimport { createUnarySpacing } from '@mui/system/spacing';\nimport { prepareCssVars, prepareTypographyVars, createGetColorSchemeSelector } from '@mui/system/cssVars';\nimport styleFunctionSx, { unstable_defaultSxConfig as defaultSxConfig } from '@mui/system/styleFunctionSx';\nimport { private_safeColorChannel as safeColorChannel, private_safeAlpha as safeAlpha, private_safeDarken as safeDarken, private_safeLighten as safeLighten, private_safeEmphasize as safeEmphasize, hslToRgb } from '@mui/system/colorManipulator';\nimport createThemeNoVars from \"./createThemeNoVars.js\";\nimport createColorScheme, { getOpacity, getOverlays } from \"./createColorScheme.js\";\nimport defaultShouldSkipGeneratingVar from \"./shouldSkipGeneratingVar.js\";\nimport defaultGetSelector from \"./createGetSelector.js\";\nimport { stringifyTheme } from \"./stringifyTheme.js\";\nfunction assignNode(obj, keys) {\n keys.forEach(k => {\n if (!obj[k]) {\n obj[k] = {};\n }\n });\n}\nfunction setColor(obj, key, defaultValue) {\n if (!obj[key] && defaultValue) {\n obj[key] = defaultValue;\n }\n}\nfunction toRgb(color) {\n if (!color || !color.startsWith('hsl')) {\n return color;\n }\n return hslToRgb(color);\n}\nfunction setColorChannel(obj, key) {\n if (!(`${key}Channel` in obj)) {\n // custom channel token is not provided, generate one.\n // if channel token can't be generated, show a warning.\n obj[`${key}Channel`] = safeColorChannel(toRgb(obj[key]), `MUI: Can't create \\`palette.${key}Channel\\` because \\`palette.${key}\\` is not one of these formats: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color().` + '\\n' + `To suppress this warning, you need to explicitly provide the \\`palette.${key}Channel\\` as a string (in rgb format, for example \"12 12 12\") or undefined if you want to remove the channel token.`);\n }\n}\nfunction getSpacingVal(spacingInput) {\n if (typeof spacingInput === 'number') {\n return `${spacingInput}px`;\n }\n if (typeof spacingInput === 'string' || typeof spacingInput === 'function' || Array.isArray(spacingInput)) {\n return spacingInput;\n }\n return '8px';\n}\nconst silent = fn => {\n try {\n return fn();\n } catch (error) {\n // ignore error\n }\n return undefined;\n};\nexport const createGetCssVar = (cssVarPrefix = 'mui') => systemCreateGetCssVar(cssVarPrefix);\nfunction attachColorScheme(colorSchemes, scheme, restTheme, colorScheme) {\n if (!scheme) {\n return undefined;\n }\n scheme = scheme === true ? {} : scheme;\n const mode = colorScheme === 'dark' ? 'dark' : 'light';\n if (!restTheme) {\n colorSchemes[colorScheme] = createColorScheme({\n ...scheme,\n palette: {\n mode,\n ...scheme?.palette\n }\n });\n return undefined;\n }\n const {\n palette,\n ...muiTheme\n } = createThemeNoVars({\n ...restTheme,\n palette: {\n mode,\n ...scheme?.palette\n }\n });\n colorSchemes[colorScheme] = {\n ...scheme,\n palette,\n opacity: {\n ...getOpacity(mode),\n ...scheme?.opacity\n },\n overlays: scheme?.overlays || getOverlays(mode)\n };\n return muiTheme;\n}\n\n/**\n * A default `createThemeWithVars` comes with a single color scheme, either `light` or `dark` based on the `defaultColorScheme`.\n * This is better suited for apps that only need a single color scheme.\n *\n * To enable built-in `light` and `dark` color schemes, either:\n * 1. provide a `colorSchemeSelector` to define how the color schemes will change.\n * 2. provide `colorSchemes.dark` will set `colorSchemeSelector: 'media'` by default.\n */\nexport default function createThemeWithVars(options = {}, ...args) {\n const {\n colorSchemes: colorSchemesInput = {\n light: true\n },\n defaultColorScheme: defaultColorSchemeInput,\n disableCssColorScheme = false,\n cssVarPrefix = 'mui',\n shouldSkipGeneratingVar = defaultShouldSkipGeneratingVar,\n colorSchemeSelector: selector = colorSchemesInput.light && colorSchemesInput.dark ? 'media' : undefined,\n rootSelector = ':root',\n ...input\n } = options;\n const firstColorScheme = Object.keys(colorSchemesInput)[0];\n const defaultColorScheme = defaultColorSchemeInput || (colorSchemesInput.light && firstColorScheme !== 'light' ? 'light' : firstColorScheme);\n const getCssVar = createGetCssVar(cssVarPrefix);\n const {\n [defaultColorScheme]: defaultSchemeInput,\n light: builtInLight,\n dark: builtInDark,\n ...customColorSchemes\n } = colorSchemesInput;\n const colorSchemes = {\n ...customColorSchemes\n };\n let defaultScheme = defaultSchemeInput;\n\n // For built-in light and dark color schemes, ensure that the value is valid if they are the default color scheme.\n if (defaultColorScheme === 'dark' && !('dark' in colorSchemesInput) || defaultColorScheme === 'light' && !('light' in colorSchemesInput)) {\n defaultScheme = true;\n }\n if (!defaultScheme) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: The \\`colorSchemes.${defaultColorScheme}\\` option is either missing or invalid.` : _formatMuiErrorMessage(21, defaultColorScheme));\n }\n\n // Create the palette for the default color scheme, either `light`, `dark`, or custom color scheme.\n const muiTheme = attachColorScheme(colorSchemes, defaultScheme, input, defaultColorScheme);\n if (builtInLight && !colorSchemes.light) {\n attachColorScheme(colorSchemes, builtInLight, undefined, 'light');\n }\n if (builtInDark && !colorSchemes.dark) {\n attachColorScheme(colorSchemes, builtInDark, undefined, 'dark');\n }\n let theme = {\n defaultColorScheme,\n ...muiTheme,\n cssVarPrefix,\n colorSchemeSelector: selector,\n rootSelector,\n getCssVar,\n colorSchemes,\n font: {\n ...prepareTypographyVars(muiTheme.typography),\n ...muiTheme.font\n },\n spacing: getSpacingVal(input.spacing)\n };\n Object.keys(theme.colorSchemes).forEach(key => {\n const palette = theme.colorSchemes[key].palette;\n const setCssVarColor = cssVar => {\n const tokens = cssVar.split('-');\n const color = tokens[1];\n const colorToken = tokens[2];\n return getCssVar(cssVar, palette[color][colorToken]);\n };\n\n // attach black & white channels to common node\n if (palette.mode === 'light') {\n setColor(palette.common, 'background', '#fff');\n setColor(palette.common, 'onBackground', '#000');\n }\n if (palette.mode === 'dark') {\n setColor(palette.common, 'background', '#000');\n setColor(palette.common, 'onBackground', '#fff');\n }\n\n // assign component variables\n assignNode(palette, ['Alert', 'AppBar', 'Avatar', 'Button', 'Chip', 'FilledInput', 'LinearProgress', 'Skeleton', 'Slider', 'SnackbarContent', 'SpeedDialAction', 'StepConnector', 'StepContent', 'Switch', 'TableCell', 'Tooltip']);\n if (palette.mode === 'light') {\n setColor(palette.Alert, 'errorColor', safeDarken(palette.error.light, 0.6));\n setColor(palette.Alert, 'infoColor', safeDarken(palette.info.light, 0.6));\n setColor(palette.Alert, 'successColor', safeDarken(palette.success.light, 0.6));\n setColor(palette.Alert, 'warningColor', safeDarken(palette.warning.light, 0.6));\n setColor(palette.Alert, 'errorFilledBg', setCssVarColor('palette-error-main'));\n setColor(palette.Alert, 'infoFilledBg', setCssVarColor('palette-info-main'));\n setColor(palette.Alert, 'successFilledBg', setCssVarColor('palette-success-main'));\n setColor(palette.Alert, 'warningFilledBg', setCssVarColor('palette-warning-main'));\n setColor(palette.Alert, 'errorFilledColor', silent(() => palette.getContrastText(palette.error.main)));\n setColor(palette.Alert, 'infoFilledColor', silent(() => palette.getContrastText(palette.info.main)));\n setColor(palette.Alert, 'successFilledColor', silent(() => palette.getContrastText(palette.success.main)));\n setColor(palette.Alert, 'warningFilledColor', silent(() => palette.getContrastText(palette.warning.main)));\n setColor(palette.Alert, 'errorStandardBg', safeLighten(palette.error.light, 0.9));\n setColor(palette.Alert, 'infoStandardBg', safeLighten(palette.info.light, 0.9));\n setColor(palette.Alert, 'successStandardBg', safeLighten(palette.success.light, 0.9));\n setColor(palette.Alert, 'warningStandardBg', safeLighten(palette.warning.light, 0.9));\n setColor(palette.Alert, 'errorIconColor', setCssVarColor('palette-error-main'));\n setColor(palette.Alert, 'infoIconColor', setCssVarColor('palette-info-main'));\n setColor(palette.Alert, 'successIconColor', setCssVarColor('palette-success-main'));\n setColor(palette.Alert, 'warningIconColor', setCssVarColor('palette-warning-main'));\n setColor(palette.AppBar, 'defaultBg', setCssVarColor('palette-grey-100'));\n setColor(palette.Avatar, 'defaultBg', setCssVarColor('palette-grey-400'));\n setColor(palette.Button, 'inheritContainedBg', setCssVarColor('palette-grey-300'));\n setColor(palette.Button, 'inheritContainedHoverBg', setCssVarColor('palette-grey-A100'));\n setColor(palette.Chip, 'defaultBorder', setCssVarColor('palette-grey-400'));\n setColor(palette.Chip, 'defaultAvatarColor', setCssVarColor('palette-grey-700'));\n setColor(palette.Chip, 'defaultIconColor', setCssVarColor('palette-grey-700'));\n setColor(palette.FilledInput, 'bg', 'rgba(0, 0, 0, 0.06)');\n setColor(palette.FilledInput, 'hoverBg', 'rgba(0, 0, 0, 0.09)');\n setColor(palette.FilledInput, 'disabledBg', 'rgba(0, 0, 0, 0.12)');\n setColor(palette.LinearProgress, 'primaryBg', safeLighten(palette.primary.main, 0.62));\n setColor(palette.LinearProgress, 'secondaryBg', safeLighten(palette.secondary.main, 0.62));\n setColor(palette.LinearProgress, 'errorBg', safeLighten(palette.error.main, 0.62));\n setColor(palette.LinearProgress, 'infoBg', safeLighten(palette.info.main, 0.62));\n setColor(palette.LinearProgress, 'successBg', safeLighten(palette.success.main, 0.62));\n setColor(palette.LinearProgress, 'warningBg', safeLighten(palette.warning.main, 0.62));\n setColor(palette.Skeleton, 'bg', `rgba(${setCssVarColor('palette-text-primaryChannel')} / 0.11)`);\n setColor(palette.Slider, 'primaryTrack', safeLighten(palette.primary.main, 0.62));\n setColor(palette.Slider, 'secondaryTrack', safeLighten(palette.secondary.main, 0.62));\n setColor(palette.Slider, 'errorTrack', safeLighten(palette.error.main, 0.62));\n setColor(palette.Slider, 'infoTrack', safeLighten(palette.info.main, 0.62));\n setColor(palette.Slider, 'successTrack', safeLighten(palette.success.main, 0.62));\n setColor(palette.Slider, 'warningTrack', safeLighten(palette.warning.main, 0.62));\n const snackbarContentBackground = safeEmphasize(palette.background.default, 0.8);\n setColor(palette.SnackbarContent, 'bg', snackbarContentBackground);\n setColor(palette.SnackbarContent, 'color', silent(() => palette.getContrastText(snackbarContentBackground)));\n setColor(palette.SpeedDialAction, 'fabHoverBg', safeEmphasize(palette.background.paper, 0.15));\n setColor(palette.StepConnector, 'border', setCssVarColor('palette-grey-400'));\n setColor(palette.StepContent, 'border', setCssVarColor('palette-grey-400'));\n setColor(palette.Switch, 'defaultColor', setCssVarColor('palette-common-white'));\n setColor(palette.Switch, 'defaultDisabledColor', setCssVarColor('palette-grey-100'));\n setColor(palette.Switch, 'primaryDisabledColor', safeLighten(palette.primary.main, 0.62));\n setColor(palette.Switch, 'secondaryDisabledColor', safeLighten(palette.secondary.main, 0.62));\n setColor(palette.Switch, 'errorDisabledColor', safeLighten(palette.error.main, 0.62));\n setColor(palette.Switch, 'infoDisabledColor', safeLighten(palette.info.main, 0.62));\n setColor(palette.Switch, 'successDisabledColor', safeLighten(palette.success.main, 0.62));\n setColor(palette.Switch, 'warningDisabledColor', safeLighten(palette.warning.main, 0.62));\n setColor(palette.TableCell, 'border', safeLighten(safeAlpha(palette.divider, 1), 0.88));\n setColor(palette.Tooltip, 'bg', safeAlpha(palette.grey[700], 0.92));\n }\n if (palette.mode === 'dark') {\n setColor(palette.Alert, 'errorColor', safeLighten(palette.error.light, 0.6));\n setColor(palette.Alert, 'infoColor', safeLighten(palette.info.light, 0.6));\n setColor(palette.Alert, 'successColor', safeLighten(palette.success.light, 0.6));\n setColor(palette.Alert, 'warningColor', safeLighten(palette.warning.light, 0.6));\n setColor(palette.Alert, 'errorFilledBg', setCssVarColor('palette-error-dark'));\n setColor(palette.Alert, 'infoFilledBg', setCssVarColor('palette-info-dark'));\n setColor(palette.Alert, 'successFilledBg', setCssVarColor('palette-success-dark'));\n setColor(palette.Alert, 'warningFilledBg', setCssVarColor('palette-warning-dark'));\n setColor(palette.Alert, 'errorFilledColor', silent(() => palette.getContrastText(palette.error.dark)));\n setColor(palette.Alert, 'infoFilledColor', silent(() => palette.getContrastText(palette.info.dark)));\n setColor(palette.Alert, 'successFilledColor', silent(() => palette.getContrastText(palette.success.dark)));\n setColor(palette.Alert, 'warningFilledColor', silent(() => palette.getContrastText(palette.warning.dark)));\n setColor(palette.Alert, 'errorStandardBg', safeDarken(palette.error.light, 0.9));\n setColor(palette.Alert, 'infoStandardBg', safeDarken(palette.info.light, 0.9));\n setColor(palette.Alert, 'successStandardBg', safeDarken(palette.success.light, 0.9));\n setColor(palette.Alert, 'warningStandardBg', safeDarken(palette.warning.light, 0.9));\n setColor(palette.Alert, 'errorIconColor', setCssVarColor('palette-error-main'));\n setColor(palette.Alert, 'infoIconColor', setCssVarColor('palette-info-main'));\n setColor(palette.Alert, 'successIconColor', setCssVarColor('palette-success-main'));\n setColor(palette.Alert, 'warningIconColor', setCssVarColor('palette-warning-main'));\n setColor(palette.AppBar, 'defaultBg', setCssVarColor('palette-grey-900'));\n setColor(palette.AppBar, 'darkBg', setCssVarColor('palette-background-paper')); // specific for dark mode\n setColor(palette.AppBar, 'darkColor', setCssVarColor('palette-text-primary')); // specific for dark mode\n setColor(palette.Avatar, 'defaultBg', setCssVarColor('palette-grey-600'));\n setColor(palette.Button, 'inheritContainedBg', setCssVarColor('palette-grey-800'));\n setColor(palette.Button, 'inheritContainedHoverBg', setCssVarColor('palette-grey-700'));\n setColor(palette.Chip, 'defaultBorder', setCssVarColor('palette-grey-700'));\n setColor(palette.Chip, 'defaultAvatarColor', setCssVarColor('palette-grey-300'));\n setColor(palette.Chip, 'defaultIconColor', setCssVarColor('palette-grey-300'));\n setColor(palette.FilledInput, 'bg', 'rgba(255, 255, 255, 0.09)');\n setColor(palette.FilledInput, 'hoverBg', 'rgba(255, 255, 255, 0.13)');\n setColor(palette.FilledInput, 'disabledBg', 'rgba(255, 255, 255, 0.12)');\n setColor(palette.LinearProgress, 'primaryBg', safeDarken(palette.primary.main, 0.5));\n setColor(palette.LinearProgress, 'secondaryBg', safeDarken(palette.secondary.main, 0.5));\n setColor(palette.LinearProgress, 'errorBg', safeDarken(palette.error.main, 0.5));\n setColor(palette.LinearProgress, 'infoBg', safeDarken(palette.info.main, 0.5));\n setColor(palette.LinearProgress, 'successBg', safeDarken(palette.success.main, 0.5));\n setColor(palette.LinearProgress, 'warningBg', safeDarken(palette.warning.main, 0.5));\n setColor(palette.Skeleton, 'bg', `rgba(${setCssVarColor('palette-text-primaryChannel')} / 0.13)`);\n setColor(palette.Slider, 'primaryTrack', safeDarken(palette.primary.main, 0.5));\n setColor(palette.Slider, 'secondaryTrack', safeDarken(palette.secondary.main, 0.5));\n setColor(palette.Slider, 'errorTrack', safeDarken(palette.error.main, 0.5));\n setColor(palette.Slider, 'infoTrack', safeDarken(palette.info.main, 0.5));\n setColor(palette.Slider, 'successTrack', safeDarken(palette.success.main, 0.5));\n setColor(palette.Slider, 'warningTrack', safeDarken(palette.warning.main, 0.5));\n const snackbarContentBackground = safeEmphasize(palette.background.default, 0.98);\n setColor(palette.SnackbarContent, 'bg', snackbarContentBackground);\n setColor(palette.SnackbarContent, 'color', silent(() => palette.getContrastText(snackbarContentBackground)));\n setColor(palette.SpeedDialAction, 'fabHoverBg', safeEmphasize(palette.background.paper, 0.15));\n setColor(palette.StepConnector, 'border', setCssVarColor('palette-grey-600'));\n setColor(palette.StepContent, 'border', setCssVarColor('palette-grey-600'));\n setColor(palette.Switch, 'defaultColor', setCssVarColor('palette-grey-300'));\n setColor(palette.Switch, 'defaultDisabledColor', setCssVarColor('palette-grey-600'));\n setColor(palette.Switch, 'primaryDisabledColor', safeDarken(palette.primary.main, 0.55));\n setColor(palette.Switch, 'secondaryDisabledColor', safeDarken(palette.secondary.main, 0.55));\n setColor(palette.Switch, 'errorDisabledColor', safeDarken(palette.error.main, 0.55));\n setColor(palette.Switch, 'infoDisabledColor', safeDarken(palette.info.main, 0.55));\n setColor(palette.Switch, 'successDisabledColor', safeDarken(palette.success.main, 0.55));\n setColor(palette.Switch, 'warningDisabledColor', safeDarken(palette.warning.main, 0.55));\n setColor(palette.TableCell, 'border', safeDarken(safeAlpha(palette.divider, 1), 0.68));\n setColor(palette.Tooltip, 'bg', safeAlpha(palette.grey[700], 0.92));\n }\n\n // MUI X - DataGrid needs this token.\n setColorChannel(palette.background, 'default');\n\n // added for consistency with the `background.default` token\n setColorChannel(palette.background, 'paper');\n setColorChannel(palette.common, 'background');\n setColorChannel(palette.common, 'onBackground');\n setColorChannel(palette, 'divider');\n Object.keys(palette).forEach(color => {\n const colors = palette[color];\n\n // The default palettes (primary, secondary, error, info, success, and warning) errors are handled by the above `createTheme(...)`.\n\n if (colors && typeof colors === 'object') {\n // Silent the error for custom palettes.\n if (colors.main) {\n setColor(palette[color], 'mainChannel', safeColorChannel(toRgb(colors.main)));\n }\n if (colors.light) {\n setColor(palette[color], 'lightChannel', safeColorChannel(toRgb(colors.light)));\n }\n if (colors.dark) {\n setColor(palette[color], 'darkChannel', safeColorChannel(toRgb(colors.dark)));\n }\n if (colors.contrastText) {\n setColor(palette[color], 'contrastTextChannel', safeColorChannel(toRgb(colors.contrastText)));\n }\n if (color === 'text') {\n // Text colors: text.primary, text.secondary\n setColorChannel(palette[color], 'primary');\n setColorChannel(palette[color], 'secondary');\n }\n if (color === 'action') {\n // Action colors: action.active, action.selected\n if (colors.active) {\n setColorChannel(palette[color], 'active');\n }\n if (colors.selected) {\n setColorChannel(palette[color], 'selected');\n }\n }\n }\n });\n });\n theme = args.reduce((acc, argument) => deepmerge(acc, argument), theme);\n const parserConfig = {\n prefix: cssVarPrefix,\n disableCssColorScheme,\n shouldSkipGeneratingVar,\n getSelector: defaultGetSelector(theme)\n };\n const {\n vars,\n generateThemeVars,\n generateStyleSheets\n } = prepareCssVars(theme, parserConfig);\n theme.vars = vars;\n Object.entries(theme.colorSchemes[theme.defaultColorScheme]).forEach(([key, value]) => {\n theme[key] = value;\n });\n theme.generateThemeVars = generateThemeVars;\n theme.generateStyleSheets = generateStyleSheets;\n theme.generateSpacing = function generateSpacing() {\n return createSpacing(input.spacing, createUnarySpacing(this));\n };\n theme.getColorSchemeSelector = createGetColorSchemeSelector(selector);\n theme.spacing = theme.generateSpacing();\n theme.shouldSkipGeneratingVar = shouldSkipGeneratingVar;\n theme.unstable_sxConfig = {\n ...defaultSxConfig,\n ...input?.unstable_sxConfig\n };\n theme.unstable_sx = function sx(props) {\n return styleFunctionSx({\n sx: props,\n theme: this\n });\n };\n theme.toRuntimeSource = stringifyTheme; // for Pigment CSS integration\n\n return theme;\n}","/* eslint-disable import/prefer-default-export */\nexport function createGetColorSchemeSelector(selector) {\n return function getColorSchemeSelector(colorScheme) {\n if (selector === 'media') {\n if (process.env.NODE_ENV !== 'production') {\n if (colorScheme !== 'light' && colorScheme !== 'dark') {\n console.error(`MUI: @media (prefers-color-scheme) supports only 'light' or 'dark', but receive '${colorScheme}'.`);\n }\n }\n return `@media (prefers-color-scheme: ${colorScheme})`;\n }\n if (selector) {\n if (selector.startsWith('data-') && !selector.includes('%s')) {\n return `[${selector}=\"${colorScheme}\"] &`;\n }\n if (selector === 'class') {\n return `.${colorScheme} &`;\n }\n if (selector === 'data') {\n return `[data-${colorScheme}] &`;\n }\n return `${selector.replace('%s', colorScheme)} &`;\n }\n return '&';\n };\n}","import createPalette from \"./createPalette.js\";\nimport createThemeWithVars from \"./createThemeWithVars.js\";\nimport createThemeNoVars from \"./createThemeNoVars.js\";\nexport { createMuiTheme } from \"./createThemeNoVars.js\";\n// eslint-disable-next-line consistent-return\nfunction attachColorScheme(theme, scheme, colorScheme) {\n if (!theme.colorSchemes) {\n return undefined;\n }\n if (colorScheme) {\n theme.colorSchemes[scheme] = {\n ...(colorScheme !== true && colorScheme),\n palette: createPalette({\n ...(colorScheme === true ? {} : colorScheme.palette),\n mode: scheme\n }) // cast type to skip module augmentation test\n };\n }\n}\n\n/**\n * Generate a theme base on the options received.\n * @param options Takes an incomplete theme object and adds the missing parts.\n * @param args Deep merge the arguments with the about to be returned theme.\n * @returns A complete, ready-to-use theme object.\n */\nexport default function createTheme(options = {},\n// cast type to skip module augmentation test\n...args) {\n const {\n palette,\n cssVariables = false,\n colorSchemes: initialColorSchemes = !palette ? {\n light: true\n } : undefined,\n defaultColorScheme: initialDefaultColorScheme = palette?.mode,\n ...rest\n } = options;\n const defaultColorSchemeInput = initialDefaultColorScheme || 'light';\n const defaultScheme = initialColorSchemes?.[defaultColorSchemeInput];\n const colorSchemesInput = {\n ...initialColorSchemes,\n ...(palette ? {\n [defaultColorSchemeInput]: {\n ...(typeof defaultScheme !== 'boolean' && defaultScheme),\n palette\n }\n } : undefined)\n };\n if (cssVariables === false) {\n if (!('colorSchemes' in options)) {\n // Behaves exactly as v5\n return createThemeNoVars(options, ...args);\n }\n let paletteOptions = palette;\n if (!('palette' in options)) {\n if (colorSchemesInput[defaultColorSchemeInput]) {\n if (colorSchemesInput[defaultColorSchemeInput] !== true) {\n paletteOptions = colorSchemesInput[defaultColorSchemeInput].palette;\n } else if (defaultColorSchemeInput === 'dark') {\n // @ts-ignore to prevent the module augmentation test from failing\n paletteOptions = {\n mode: 'dark'\n };\n }\n }\n }\n const theme = createThemeNoVars({\n ...options,\n palette: paletteOptions\n }, ...args);\n theme.defaultColorScheme = defaultColorSchemeInput;\n theme.colorSchemes = colorSchemesInput;\n if (theme.palette.mode === 'light') {\n theme.colorSchemes.light = {\n ...(colorSchemesInput.light !== true && colorSchemesInput.light),\n palette: theme.palette\n };\n attachColorScheme(theme, 'dark', colorSchemesInput.dark);\n }\n if (theme.palette.mode === 'dark') {\n theme.colorSchemes.dark = {\n ...(colorSchemesInput.dark !== true && colorSchemesInput.dark),\n palette: theme.palette\n };\n attachColorScheme(theme, 'light', colorSchemesInput.light);\n }\n return theme;\n }\n if (!palette && !('light' in colorSchemesInput) && defaultColorSchemeInput === 'light') {\n colorSchemesInput.light = true;\n }\n return createThemeWithVars({\n ...rest,\n colorSchemes: colorSchemesInput,\n defaultColorScheme: defaultColorSchemeInput,\n ...(typeof cssVariables !== 'boolean' && cssVariables)\n }, ...args);\n}","import * as React from 'react';\nimport SystemInitColorSchemeScript from '@mui/system/InitColorSchemeScript';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const defaultConfig = {\n attribute: 'data-mui-color-scheme',\n colorSchemeStorageKey: 'mui-color-scheme',\n defaultLightColorScheme: 'light',\n defaultDarkColorScheme: 'dark',\n modeStorageKey: 'mui-mode'\n};\nexport default (function InitColorSchemeScript(props) {\n return /*#__PURE__*/_jsx(SystemInitColorSchemeScript, {\n ...defaultConfig,\n ...props\n });\n});","'use client';\n\nimport * as React from 'react';\nimport styleFunctionSx from '@mui/system/styleFunctionSx';\nimport { unstable_createCssVarsProvider as createCssVarsProvider } from '@mui/system';\nimport createTheme from \"./createTheme.js\";\nimport createTypography from \"./createTypography.js\";\nimport THEME_ID from \"./identifier.js\";\nimport { defaultConfig } from \"../InitColorSchemeScript/InitColorSchemeScript.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst {\n CssVarsProvider: InternalCssVarsProvider,\n useColorScheme,\n getInitColorSchemeScript: deprecatedGetInitColorSchemeScript\n} = createCssVarsProvider({\n themeId: THEME_ID,\n // @ts-ignore ignore module augmentation tests\n theme: () => createTheme({\n cssVariables: true\n }),\n colorSchemeStorageKey: defaultConfig.colorSchemeStorageKey,\n modeStorageKey: defaultConfig.modeStorageKey,\n defaultColorScheme: {\n light: defaultConfig.defaultLightColorScheme,\n dark: defaultConfig.defaultDarkColorScheme\n },\n resolveTheme: theme => {\n const newTheme = {\n ...theme,\n typography: createTypography(theme.palette, theme.typography)\n };\n newTheme.unstable_sx = function sx(props) {\n return styleFunctionSx({\n sx: props,\n theme: this\n });\n };\n return newTheme;\n }\n});\nlet warnedOnce = false;\n\n// TODO: remove in v7\n// eslint-disable-next-line @typescript-eslint/naming-convention\nfunction Experimental_CssVarsProvider(props) {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnedOnce) {\n console.warn(['MUI: The Experimental_CssVarsProvider component has been ported into ThemeProvider.', '', \"You should use `import { ThemeProvider } from '@mui/material/styles'` instead.\", 'For more details, check out https://mui.com/material-ui/customization/css-theme-variables/usage/'].join('\\n'));\n warnedOnce = true;\n }\n }\n return /*#__PURE__*/_jsx(InternalCssVarsProvider, {\n ...props\n });\n}\nlet warnedInitScriptOnce = false;\n\n// TODO: remove in v7\nconst getInitColorSchemeScript = params => {\n if (!warnedInitScriptOnce) {\n console.warn(['MUI: The getInitColorSchemeScript function has been deprecated.', '', \"You should use `import InitColorSchemeScript from '@mui/material/InitColorSchemeScript'`\", 'and replace the function call with `` instead.'].join('\\n'));\n warnedInitScriptOnce = true;\n }\n return deprecatedGetInitColorSchemeScript(params);\n};\n\n/**\n * TODO: remove this export in v7\n * @deprecated\n * The `CssVarsProvider` component has been deprecated and ported into `ThemeProvider`.\n *\n * You should use `ThemeProvider` and `createTheme` instead:\n *\n * ```diff\n * - import { CssVarsProvider, extendTheme } from '@mui/material/styles';\n * + import { ThemeProvider, createTheme } from '@mui/material/styles';\n *\n * - const theme = extendTheme();\n * + const theme = createTheme({\n * + cssVariables: true,\n * + colorSchemes: { light: true, dark: true },\n * + });\n *\n * - \n * + \n * ```\n *\n * To see the full documentation, check out https://mui.com/material-ui/customization/css-theme-variables/usage/.\n */\nexport const CssVarsProvider = InternalCssVarsProvider;\nexport { useColorScheme, getInitColorSchemeScript, Experimental_CssVarsProvider };","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { GlobalStyles } from '@mui/styled-engine';\nimport { useTheme as muiUseTheme } from '@mui/private-theming';\nimport ThemeProvider from \"../ThemeProvider/index.js\";\nimport InitColorSchemeScript, { DEFAULT_COLOR_SCHEME_STORAGE_KEY, DEFAULT_MODE_STORAGE_KEY } from \"../InitColorSchemeScript/InitColorSchemeScript.js\";\nimport useCurrentColorScheme from \"./useCurrentColorScheme.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nexport const DISABLE_CSS_TRANSITION = '*{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}';\nexport default function createCssVarsProvider(options) {\n const {\n themeId,\n /**\n * This `theme` object needs to follow a certain structure to\n * be used correctly by the finel `CssVarsProvider`. It should have a\n * `colorSchemes` key with the light and dark (and any other) palette.\n * It should also ideally have a vars object created using `prepareCssVars`.\n */\n theme: defaultTheme = {},\n modeStorageKey: defaultModeStorageKey = DEFAULT_MODE_STORAGE_KEY,\n colorSchemeStorageKey: defaultColorSchemeStorageKey = DEFAULT_COLOR_SCHEME_STORAGE_KEY,\n disableTransitionOnChange: designSystemTransitionOnChange = false,\n defaultColorScheme,\n resolveTheme\n } = options;\n const defaultContext = {\n allColorSchemes: [],\n colorScheme: undefined,\n darkColorScheme: undefined,\n lightColorScheme: undefined,\n mode: undefined,\n setColorScheme: () => {},\n setMode: () => {},\n systemMode: undefined\n };\n const ColorSchemeContext = /*#__PURE__*/React.createContext(undefined);\n if (process.env.NODE_ENV !== 'production') {\n ColorSchemeContext.displayName = 'ColorSchemeContext';\n }\n const useColorScheme = () => React.useContext(ColorSchemeContext) || defaultContext;\n function CssVarsProvider(props) {\n const {\n children,\n theme: themeProp,\n modeStorageKey = defaultModeStorageKey,\n colorSchemeStorageKey = defaultColorSchemeStorageKey,\n disableTransitionOnChange = designSystemTransitionOnChange,\n storageWindow = typeof window === 'undefined' ? undefined : window,\n documentNode = typeof document === 'undefined' ? undefined : document,\n colorSchemeNode = typeof document === 'undefined' ? undefined : document.documentElement,\n disableNestedContext = false,\n disableStyleSheetGeneration = false,\n defaultMode: initialMode = 'system'\n } = props;\n const hasMounted = React.useRef(false);\n const upperTheme = muiUseTheme();\n const ctx = React.useContext(ColorSchemeContext);\n const nested = !!ctx && !disableNestedContext;\n const initialTheme = React.useMemo(() => {\n if (themeProp) {\n return themeProp;\n }\n return typeof defaultTheme === 'function' ? defaultTheme() : defaultTheme;\n }, [themeProp]);\n const scopedTheme = initialTheme[themeId];\n const {\n colorSchemes = {},\n components = {},\n cssVarPrefix,\n ...restThemeProp\n } = scopedTheme || initialTheme;\n const joinedColorSchemes = Object.keys(colorSchemes).filter(k => !!colorSchemes[k]).join(',');\n const allColorSchemes = React.useMemo(() => joinedColorSchemes.split(','), [joinedColorSchemes]);\n const defaultLightColorScheme = typeof defaultColorScheme === 'string' ? defaultColorScheme : defaultColorScheme.light;\n const defaultDarkColorScheme = typeof defaultColorScheme === 'string' ? defaultColorScheme : defaultColorScheme.dark;\n const defaultMode = colorSchemes[defaultLightColorScheme] && colorSchemes[defaultDarkColorScheme] ? initialMode : colorSchemes[restThemeProp.defaultColorScheme]?.palette?.mode || restThemeProp.palette?.mode;\n\n // 1. Get the data about the `mode`, `colorScheme`, and setter functions.\n const {\n mode: stateMode,\n setMode,\n systemMode,\n lightColorScheme,\n darkColorScheme,\n colorScheme: stateColorScheme,\n setColorScheme\n } = useCurrentColorScheme({\n supportedColorSchemes: allColorSchemes,\n defaultLightColorScheme,\n defaultDarkColorScheme,\n modeStorageKey,\n colorSchemeStorageKey,\n defaultMode,\n storageWindow\n });\n let mode = stateMode;\n let colorScheme = stateColorScheme;\n if (nested) {\n mode = ctx.mode;\n colorScheme = ctx.colorScheme;\n }\n\n // `colorScheme` is undefined on the server and hydration phase\n const calculatedColorScheme = colorScheme || restThemeProp.defaultColorScheme;\n\n // 2. get the `vars` object that refers to the CSS custom properties\n const themeVars = restThemeProp.generateThemeVars?.() || restThemeProp.vars;\n\n // 3. Start composing the theme object\n const theme = {\n ...restThemeProp,\n components,\n colorSchemes,\n cssVarPrefix,\n vars: themeVars\n };\n if (typeof theme.generateSpacing === 'function') {\n theme.spacing = theme.generateSpacing();\n }\n\n // 4. Resolve the color scheme and merge it to the theme\n if (calculatedColorScheme) {\n const scheme = colorSchemes[calculatedColorScheme];\n if (scheme && typeof scheme === 'object') {\n // 4.1 Merge the selected color scheme to the theme\n Object.keys(scheme).forEach(schemeKey => {\n if (scheme[schemeKey] && typeof scheme[schemeKey] === 'object') {\n // shallow merge the 1st level structure of the theme.\n theme[schemeKey] = {\n ...theme[schemeKey],\n ...scheme[schemeKey]\n };\n } else {\n theme[schemeKey] = scheme[schemeKey];\n }\n });\n }\n }\n\n // 5. Declaring effects\n // 5.1 Updates the selector value to use the current color scheme which tells CSS to use the proper stylesheet.\n const colorSchemeSelector = restThemeProp.colorSchemeSelector;\n React.useEffect(() => {\n if (colorScheme && colorSchemeNode && colorSchemeSelector && colorSchemeSelector !== 'media') {\n const selector = colorSchemeSelector;\n let rule = colorSchemeSelector;\n if (selector === 'class') {\n rule = `.%s`;\n }\n if (selector === 'data') {\n rule = `[data-%s]`;\n }\n if (selector?.startsWith('data-') && !selector.includes('%s')) {\n // 'data-mui-color-scheme' -> '[data-mui-color-scheme=\"%s\"]'\n rule = `[${selector}=\"%s\"]`;\n }\n if (rule.startsWith('.')) {\n colorSchemeNode.classList.remove(...allColorSchemes.map(scheme => rule.substring(1).replace('%s', scheme)));\n colorSchemeNode.classList.add(rule.substring(1).replace('%s', colorScheme));\n } else {\n const matches = rule.replace('%s', colorScheme).match(/\\[([^\\]]+)\\]/);\n if (matches) {\n const [attr, value] = matches[1].split('=');\n if (!value) {\n // for attributes like `data-theme-dark`, `data-theme-light`\n // remove all the existing data attributes before setting the new one\n allColorSchemes.forEach(scheme => {\n colorSchemeNode.removeAttribute(attr.replace(colorScheme, scheme));\n });\n }\n colorSchemeNode.setAttribute(attr, value ? value.replace(/\"|'/g, '') : '');\n } else {\n colorSchemeNode.setAttribute(rule, colorScheme);\n }\n }\n }\n }, [colorScheme, colorSchemeSelector, colorSchemeNode, allColorSchemes]);\n\n // 5.2 Remove the CSS transition when color scheme changes to create instant experience.\n // credit: https://github.com/pacocoursey/next-themes/blob/b5c2bad50de2d61ad7b52a9c5cdc801a78507d7a/index.tsx#L313\n React.useEffect(() => {\n let timer;\n if (disableTransitionOnChange && hasMounted.current && documentNode) {\n const css = documentNode.createElement('style');\n css.appendChild(documentNode.createTextNode(DISABLE_CSS_TRANSITION));\n documentNode.head.appendChild(css);\n\n // Force browser repaint\n (() => window.getComputedStyle(documentNode.body))();\n timer = setTimeout(() => {\n documentNode.head.removeChild(css);\n }, 1);\n }\n return () => {\n clearTimeout(timer);\n };\n }, [colorScheme, disableTransitionOnChange, documentNode]);\n React.useEffect(() => {\n hasMounted.current = true;\n return () => {\n hasMounted.current = false;\n };\n }, []);\n const contextValue = React.useMemo(() => ({\n allColorSchemes,\n colorScheme,\n darkColorScheme,\n lightColorScheme,\n mode,\n setColorScheme,\n setMode,\n systemMode\n }), [allColorSchemes, colorScheme, darkColorScheme, lightColorScheme, mode, setColorScheme, setMode, systemMode]);\n let shouldGenerateStyleSheet = true;\n if (disableStyleSheetGeneration || restThemeProp.cssVariables === false || nested && upperTheme?.cssVarPrefix === cssVarPrefix) {\n shouldGenerateStyleSheet = false;\n }\n const element = /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(ThemeProvider, {\n themeId: scopedTheme ? themeId : undefined,\n theme: resolveTheme ? resolveTheme(theme) : theme,\n children: children\n }), shouldGenerateStyleSheet && /*#__PURE__*/_jsx(GlobalStyles, {\n styles: theme.generateStyleSheets?.() || []\n })]\n });\n if (nested) {\n return element;\n }\n return /*#__PURE__*/_jsx(ColorSchemeContext.Provider, {\n value: contextValue,\n children: element\n });\n }\n process.env.NODE_ENV !== \"production\" ? CssVarsProvider.propTypes = {\n /**\n * The component tree.\n */\n children: PropTypes.node,\n /**\n * The node used to attach the color-scheme attribute\n */\n colorSchemeNode: PropTypes.any,\n /**\n * localStorage key used to store `colorScheme`\n */\n colorSchemeStorageKey: PropTypes.string,\n /**\n * The default mode when the storage is empty,\n * require the theme to have `colorSchemes` with light and dark.\n */\n defaultMode: PropTypes.string,\n /**\n * If `true`, the provider creates its own context and generate stylesheet as if it is a root `CssVarsProvider`.\n */\n disableNestedContext: PropTypes.bool,\n /**\n * If `true`, the style sheet won't be generated.\n *\n * This is useful for controlling nested CssVarsProvider behavior.\n */\n disableStyleSheetGeneration: PropTypes.bool,\n /**\n * Disable CSS transitions when switching between modes or color schemes.\n */\n disableTransitionOnChange: PropTypes.bool,\n /**\n * The document to attach the attribute to.\n */\n documentNode: PropTypes.any,\n /**\n * The key in the local storage used to store current color scheme.\n */\n modeStorageKey: PropTypes.string,\n /**\n * The window that attaches the 'storage' event listener.\n * @default window\n */\n storageWindow: PropTypes.any,\n /**\n * The calculated theme object that will be passed through context.\n */\n theme: PropTypes.object\n } : void 0;\n const defaultLightColorScheme = typeof defaultColorScheme === 'string' ? defaultColorScheme : defaultColorScheme.light;\n const defaultDarkColorScheme = typeof defaultColorScheme === 'string' ? defaultColorScheme : defaultColorScheme.dark;\n const getInitColorSchemeScript = params => InitColorSchemeScript({\n colorSchemeStorageKey: defaultColorSchemeStorageKey,\n defaultLightColorScheme,\n defaultDarkColorScheme,\n modeStorageKey: defaultModeStorageKey,\n ...params\n });\n return {\n CssVarsProvider,\n useColorScheme,\n getInitColorSchemeScript\n };\n}","'use client';\n\nimport * as React from 'react';\nimport ThemeProviderNoVars from \"./ThemeProviderNoVars.js\";\nimport { CssVarsProvider } from \"./ThemeProviderWithVars.js\";\nimport THEME_ID from \"./identifier.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default function ThemeProvider({\n theme,\n ...props\n}) {\n if (typeof theme === 'function') {\n return /*#__PURE__*/_jsx(ThemeProviderNoVars, {\n theme: theme,\n ...props\n });\n }\n const muiTheme = THEME_ID in theme ? theme[THEME_ID] : theme;\n if (!('colorSchemes' in muiTheme)) {\n return /*#__PURE__*/_jsx(ThemeProviderNoVars, {\n theme: theme,\n ...props\n });\n }\n return /*#__PURE__*/_jsx(CssVarsProvider, {\n theme: theme,\n ...props\n });\n}","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t\n\nexport type StyledElementType =\n | string\n | AbstractComponent<{ ...Props, className: string }, mixed>\n\nexport type StyledOptions = {\n label?: string,\n shouldForwardProp?: string => boolean,\n target?: string\n}\n\nexport type StyledComponent = StatelessFunctionalComponent & {\n defaultProps: any,\n toString: () => string,\n withComponent: (\n nextTag: StyledElementType,\n nextOptions?: StyledOptions\n ) => StyledComponent\n}\n\nexport type PrivateStyledComponent = StyledComponent & {\n __emotion_real: StyledComponent,\n __emotion_base: any,\n __emotion_styles: any,\n __emotion_forwardProp: any\n}\n*/\n\nvar testOmitPropsOnStringTag = isPropValid;\n\nvar testOmitPropsOnComponent = function testOmitPropsOnComponent(key\n/*: string */\n) {\n return key !== 'theme';\n};\n\nvar getDefaultShouldForwardProp = function getDefaultShouldForwardProp(tag\n/*: ElementType */\n) {\n return typeof tag === 'string' && // 96 is one less than the char code\n // for \"a\" so this is checking that\n // it's a lowercase character\n tag.charCodeAt(0) > 96 ? testOmitPropsOnStringTag : testOmitPropsOnComponent;\n};\nvar composeShouldForwardProps = function composeShouldForwardProps(tag\n/*: PrivateStyledComponent */\n, options\n/*: StyledOptions | void */\n, isReal\n/*: boolean */\n) {\n var shouldForwardProp;\n\n if (options) {\n var optionsShouldForwardProp = options.shouldForwardProp;\n shouldForwardProp = tag.__emotion_forwardProp && optionsShouldForwardProp ? function (propName\n /*: string */\n ) {\n return tag.__emotion_forwardProp(propName) && optionsShouldForwardProp(propName);\n } : optionsShouldForwardProp;\n }\n\n if (typeof shouldForwardProp !== 'function' && isReal) {\n shouldForwardProp = tag.__emotion_forwardProp;\n }\n\n return shouldForwardProp;\n};\n/*\nexport type CreateStyledComponent = (\n ...args: Interpolations\n) => StyledComponent\n\nexport type CreateStyled = {\n (\n tag: StyledElementType,\n options?: StyledOptions\n ): (...args: Interpolations) => StyledComponent,\n [key: string]: CreateStyledComponent,\n bind: () => CreateStyled\n}\n*/\n\nvar isDevelopment = false;\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serialized = _ref.serialized,\n isStringTag = _ref.isStringTag;\n registerStyles(cache, serialized, isStringTag);\n useInsertionEffectAlwaysWithSyncFallback(function () {\n return insertStyles(cache, serialized, isStringTag);\n });\n\n return null;\n};\n\nvar createStyled\n/*: CreateStyled */\n= function createStyled\n/*: CreateStyled */\n(tag\n/*: any */\n, options\n/* ?: StyledOptions */\n) {\n\n var isReal = tag.__emotion_real === tag;\n var baseTag = isReal && tag.__emotion_base || tag;\n var identifierName;\n var targetClassName;\n\n if (options !== undefined) {\n identifierName = options.label;\n targetClassName = options.target;\n }\n\n var shouldForwardProp = composeShouldForwardProps(tag, options, isReal);\n var defaultShouldForwardProp = shouldForwardProp || getDefaultShouldForwardProp(baseTag);\n var shouldUseAs = !defaultShouldForwardProp('as');\n /* return function(): PrivateStyledComponent { */\n\n return function () {\n var args = arguments;\n var styles = isReal && tag.__emotion_styles !== undefined ? tag.__emotion_styles.slice(0) : [];\n\n if (identifierName !== undefined) {\n styles.push(\"label:\" + identifierName + \";\");\n }\n\n if (args[0] == null || args[0].raw === undefined) {\n styles.push.apply(styles, args);\n } else {\n\n styles.push(args[0][0]);\n var len = args.length;\n var i = 1;\n\n for (; i < len; i++) {\n\n styles.push(args[i], args[0][i]);\n }\n }\n\n var Styled\n /*: PrivateStyledComponent */\n = withEmotionCache(function (props, cache, ref) {\n var FinalTag = shouldUseAs && props.as || baseTag;\n var className = '';\n var classInterpolations = [];\n var mergedProps = props;\n\n if (props.theme == null) {\n mergedProps = {};\n\n for (var key in props) {\n mergedProps[key] = props[key];\n }\n\n mergedProps.theme = React.useContext(ThemeContext);\n }\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, classInterpolations, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(styles.concat(classInterpolations), cache.registered, mergedProps);\n className += cache.key + \"-\" + serialized.name;\n\n if (targetClassName !== undefined) {\n className += \" \" + targetClassName;\n }\n\n var finalShouldForwardProp = shouldUseAs && shouldForwardProp === undefined ? getDefaultShouldForwardProp(FinalTag) : defaultShouldForwardProp;\n var newProps = {};\n\n for (var _key in props) {\n if (shouldUseAs && _key === 'as') continue;\n\n if (finalShouldForwardProp(_key)) {\n newProps[_key] = props[_key];\n }\n }\n\n newProps.className = className;\n\n if (ref) {\n newProps.ref = ref;\n }\n\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n cache: cache,\n serialized: serialized,\n isStringTag: typeof FinalTag === 'string'\n }), /*#__PURE__*/React.createElement(FinalTag, newProps));\n });\n Styled.displayName = identifierName !== undefined ? identifierName : \"Styled(\" + (typeof baseTag === 'string' ? baseTag : baseTag.displayName || baseTag.name || 'Component') + \")\";\n Styled.defaultProps = tag.defaultProps;\n Styled.__emotion_real = Styled;\n Styled.__emotion_base = baseTag;\n Styled.__emotion_styles = styles;\n Styled.__emotion_forwardProp = shouldForwardProp;\n Object.defineProperty(Styled, 'toString', {\n value: function value() {\n if (targetClassName === undefined && isDevelopment) {\n return 'NO_COMPONENT_SELECTOR';\n }\n\n return \".\" + targetClassName;\n }\n });\n\n Styled.withComponent = function (nextTag\n /*: StyledElementType */\n , nextOptions\n /* ?: StyledOptions */\n ) {\n return createStyled(nextTag, _extends({}, options, nextOptions, {\n shouldForwardProp: composeShouldForwardProps(Styled, nextOptions, true)\n })).apply(void 0, styles);\n };\n\n return Styled;\n };\n};\n\nexport { createStyled as default };\n","import createStyled from '../base/dist/emotion-styled-base.browser.esm.js';\nimport '@babel/runtime/helpers/extends';\nimport 'react';\nimport '@emotion/is-prop-valid';\nimport '@emotion/react';\nimport '@emotion/utils';\nimport '@emotion/serialize';\nimport '@emotion/use-insertion-effect-with-fallbacks';\n\nvar tags = ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr', // SVG\n'circle', 'clipPath', 'defs', 'ellipse', 'foreignObject', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan'];\n\nvar newStyled = createStyled.bind();\ntags.forEach(function (tagName) {\n newStyled[tagName] = newStyled(tagName);\n});\n\nexport { newStyled as default };\n","/**\n * @mui/styled-engine v6.1.3\n *\n * @license MIT\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/* eslint-disable no-underscore-dangle */\nimport emStyled from '@emotion/styled';\nimport { serializeStyles as emSerializeStyles } from '@emotion/serialize';\nexport default function styled(tag, options) {\n const stylesFactory = emStyled(tag, options);\n if (process.env.NODE_ENV !== 'production') {\n return (...styles) => {\n const component = typeof tag === 'string' ? `\"${tag}\"` : 'component';\n if (styles.length === 0) {\n console.error([`MUI: Seems like you called \\`styled(${component})()\\` without a \\`style\\` argument.`, 'You must provide a `styles` argument: `styled(\"div\")(styleYouForgotToPass)`.'].join('\\n'));\n } else if (styles.some(style => style === undefined)) {\n console.error(`MUI: the styled(${component})(...args) API requires all its args to be defined.`);\n }\n return stylesFactory(...styles);\n };\n }\n return stylesFactory;\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function internal_mutateStyles(tag, processor) {\n // Emotion attaches all the styles as `__emotion_styles`.\n // Ref: https://github.com/emotion-js/emotion/blob/16d971d0da229596d6bcc39d282ba9753c9ee7cf/packages/styled/src/base.js#L186\n if (Array.isArray(tag.__emotion_styles)) {\n tag.__emotion_styles = processor(tag.__emotion_styles);\n }\n}\n\n// Emotion only accepts an array, but we want to avoid allocations\nconst wrapper = [];\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function internal_serializeStyles(styles) {\n wrapper[0] = styles;\n return emSerializeStyles(wrapper);\n}\nexport { ThemeContext, keyframes, css } from '@emotion/react';\nexport { default as StyledEngineProvider } from \"./StyledEngineProvider/index.js\";\nexport { default as GlobalStyles } from \"./GlobalStyles/index.js\";","import { isPlainObject } from '@mui/utils/deepmerge';\nimport defaultSxConfig from \"./defaultSxConfig.js\";\nconst splitProps = props => {\n const result = {\n systemProps: {},\n otherProps: {}\n };\n const config = props?.theme?.unstable_sxConfig ?? defaultSxConfig;\n Object.keys(props).forEach(prop => {\n if (config[prop]) {\n result.systemProps[prop] = props[prop];\n } else {\n result.otherProps[prop] = props[prop];\n }\n });\n return result;\n};\nexport default function extendSxProp(props) {\n const {\n sx: inSx,\n ...other\n } = props;\n const {\n systemProps,\n otherProps\n } = splitProps(other);\n let finalSx;\n if (Array.isArray(inSx)) {\n finalSx = [systemProps, ...inSx];\n } else if (typeof inSx === 'function') {\n finalSx = (...args) => {\n const result = inSx(...args);\n if (!isPlainObject(result)) {\n return systemProps;\n }\n return {\n ...systemProps,\n ...result\n };\n };\n } else {\n finalSx = {\n ...systemProps,\n ...inSx\n };\n }\n return {\n ...otherProps,\n sx: finalSx\n };\n}","'use client';\n\nimport createTheme from \"../createTheme/index.js\";\nimport useThemeWithoutDefault from \"../useThemeWithoutDefault/index.js\";\nexport const systemDefaultTheme = createTheme();\nfunction useTheme(defaultTheme = systemDefaultTheme) {\n return useThemeWithoutDefault(defaultTheme);\n}\nexport default useTheme;","const defaultGenerator = componentName => componentName;\nconst createClassNameGenerator = () => {\n let generate = defaultGenerator;\n return {\n configure(generator) {\n generate = generator;\n },\n generate(componentName) {\n return generate(componentName);\n },\n reset() {\n generate = defaultGenerator;\n }\n };\n};\nconst ClassNameGenerator = createClassNameGenerator();\nexport default ClassNameGenerator;","import ClassNameGenerator from \"../ClassNameGenerator/index.js\";\nexport const globalStateClasses = {\n active: 'active',\n checked: 'checked',\n completed: 'completed',\n disabled: 'disabled',\n error: 'error',\n expanded: 'expanded',\n focused: 'focused',\n focusVisible: 'focusVisible',\n open: 'open',\n readOnly: 'readOnly',\n required: 'required',\n selected: 'selected'\n};\nexport default function generateUtilityClass(componentName, slot, globalStatePrefix = 'Mui') {\n const globalStateClass = globalStateClasses[slot];\n return globalStateClass ? `${globalStatePrefix}-${globalStateClass}` : `${ClassNameGenerator.generate(componentName)}-${slot}`;\n}\nexport function isGlobalState(slot) {\n return globalStateClasses[slot] !== undefined;\n}","import generateUtilityClass from \"../generateUtilityClass/index.js\";\nexport default function generateUtilityClasses(componentName, slots, globalStatePrefix = 'Mui') {\n const result = {};\n slots.forEach(slot => {\n result[slot] = generateUtilityClass(componentName, slot, globalStatePrefix);\n });\n return result;\n}","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nconst boxClasses = generateUtilityClasses('MuiBox', ['root']);\nexport default boxClasses;","'use client';\n\nimport { createBox } from '@mui/system';\nimport PropTypes from 'prop-types';\nimport { unstable_ClassNameGenerator as ClassNameGenerator } from \"../className/index.js\";\nimport { createTheme } from \"../styles/index.js\";\nimport THEME_ID from \"../styles/identifier.js\";\nimport boxClasses from \"./boxClasses.js\";\nconst defaultTheme = createTheme();\nconst Box = createBox({\n themeId: THEME_ID,\n defaultTheme,\n defaultClassName: boxClasses.root,\n generateClassName: ClassNameGenerator.generate\n});\nprocess.env.NODE_ENV !== \"production\" ? Box.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * @ignore\n */\n children: PropTypes.node,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default Box;","'use client';\n\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport styled from '@mui/styled-engine';\nimport styleFunctionSx, { extendSxProp } from \"../styleFunctionSx/index.js\";\nimport useTheme from \"../useTheme/index.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default function createBox(options = {}) {\n const {\n themeId,\n defaultTheme,\n defaultClassName = 'MuiBox-root',\n generateClassName\n } = options;\n const BoxRoot = styled('div', {\n shouldForwardProp: prop => prop !== 'theme' && prop !== 'sx' && prop !== 'as'\n })(styleFunctionSx);\n const Box = /*#__PURE__*/React.forwardRef(function Box(inProps, ref) {\n const theme = useTheme(defaultTheme);\n const {\n className,\n component = 'div',\n ...other\n } = extendSxProp(inProps);\n return /*#__PURE__*/_jsx(BoxRoot, {\n as: component,\n ref: ref,\n className: clsx(className, generateClassName ? generateClassName(defaultClassName) : defaultClassName),\n theme: themeId ? theme[themeId] || theme : theme,\n ...other\n });\n });\n return Box;\n}","/* eslint no-restricted-syntax: 0, prefer-template: 0, guard-for-in: 0\n ---\n These rules are preventing the performance optimizations below.\n */\n\nexport default function composeClasses(slots, getUtilityClass, classes = undefined) {\n const output = {};\n for (const slotName in slots) {\n const slot = slots[slotName];\n let buffer = '';\n let start = true;\n for (let i = 0; i < slot.length; i += 1) {\n const value = slot[i];\n if (value) {\n buffer += (start === true ? '' : ' ') + getUtilityClass(value);\n start = false;\n if (classes && classes[value]) {\n buffer += ' ' + classes[value];\n }\n }\n }\n output[slotName] = buffer;\n }\n return output;\n}","// copied from @mui/system/createStyled\nfunction slotShouldForwardProp(prop) {\n return prop !== 'ownerState' && prop !== 'theme' && prop !== 'sx' && prop !== 'as';\n}\nexport default slotShouldForwardProp;","import slotShouldForwardProp from \"./slotShouldForwardProp.js\";\nconst rootShouldForwardProp = prop => slotShouldForwardProp(prop) && prop !== 'classes';\nexport default rootShouldForwardProp;","import { internal_serializeStyles } from '@mui/styled-engine';\nexport default function preprocessStyles(input) {\n const {\n variants,\n ...style\n } = input;\n const result = {\n variants,\n style: internal_serializeStyles(style),\n isProcessed: true\n };\n\n // Not supported on styled-components\n if (result.style === style) {\n return result;\n }\n if (variants) {\n variants.forEach(variant => {\n if (typeof variant.style !== 'function') {\n variant.style = internal_serializeStyles(variant.style);\n }\n });\n }\n return result;\n}","import styledEngineStyled, { internal_mutateStyles as mutateStyles } from '@mui/styled-engine';\nimport { isPlainObject } from '@mui/utils/deepmerge';\nimport capitalize from '@mui/utils/capitalize';\nimport getDisplayName from '@mui/utils/getDisplayName';\nimport createTheme from \"../createTheme/index.js\";\nimport styleFunctionSx from \"../styleFunctionSx/index.js\";\nimport preprocessStyles from \"../preprocessStyles.js\";\n\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable no-labels */\n/* eslint-disable no-lone-blocks */\n\nexport const systemDefaultTheme = createTheme();\n\n// Update /system/styled/#api in case if this changes\nexport function shouldForwardProp(prop) {\n return prop !== 'ownerState' && prop !== 'theme' && prop !== 'sx' && prop !== 'as';\n}\nfunction defaultOverridesResolver(slot) {\n if (!slot) {\n return null;\n }\n return (_props, styles) => styles[slot];\n}\nfunction attachTheme(props, themeId, defaultTheme) {\n props.theme = isObjectEmpty(props.theme) ? defaultTheme : props.theme[themeId] || props.theme;\n}\nfunction processStyle(props, style) {\n /*\n * Style types:\n * - null/undefined\n * - string\n * - CSS style object: { [cssKey]: [cssValue], variants }\n * - Processed style object: { style, variants, isProcessed: true }\n * - Array of any of the above\n */\n\n const resolvedStyle = typeof style === 'function' ? style(props) : style;\n if (Array.isArray(resolvedStyle)) {\n return resolvedStyle.flatMap(subStyle => processStyle(props, subStyle));\n }\n if (Array.isArray(resolvedStyle?.variants)) {\n let rootStyle;\n if (resolvedStyle.isProcessed) {\n rootStyle = resolvedStyle.style;\n } else {\n const {\n variants,\n ...otherStyles\n } = resolvedStyle;\n rootStyle = otherStyles;\n }\n return processStyleVariants(props, resolvedStyle.variants, [rootStyle]);\n }\n if (resolvedStyle?.isProcessed) {\n return resolvedStyle.style;\n }\n return resolvedStyle;\n}\nfunction processStyleVariants(props, variants, results = []) {\n let mergedState; // We might not need it, initialized lazily\n\n variantLoop: for (let i = 0; i < variants.length; i += 1) {\n const variant = variants[i];\n if (typeof variant.props === 'function') {\n mergedState ??= {\n ...props,\n ...props.ownerState,\n ownerState: props.ownerState\n };\n if (!variant.props(mergedState)) {\n continue;\n }\n } else {\n for (const key in variant.props) {\n if (props[key] !== variant.props[key] && props.ownerState?.[key] !== variant.props[key]) {\n continue variantLoop;\n }\n }\n }\n if (typeof variant.style === 'function') {\n mergedState ??= {\n ...props,\n ...props.ownerState,\n ownerState: props.ownerState\n };\n results.push(variant.style(mergedState));\n } else {\n results.push(variant.style);\n }\n }\n return results;\n}\nexport default function createStyled(input = {}) {\n const {\n themeId,\n defaultTheme = systemDefaultTheme,\n rootShouldForwardProp = shouldForwardProp,\n slotShouldForwardProp = shouldForwardProp\n } = input;\n function styleAttachTheme(props) {\n attachTheme(props, themeId, defaultTheme);\n }\n const styled = (tag, inputOptions = {}) => {\n // If `tag` is already a styled component, filter out the `sx` style function\n // to prevent unnecessary styles generated by the composite components.\n mutateStyles(tag, styles => styles.filter(style => style !== styleFunctionSx));\n const {\n name: componentName,\n slot: componentSlot,\n skipVariantsResolver: inputSkipVariantsResolver,\n skipSx: inputSkipSx,\n // TODO v6: remove `lowercaseFirstLetter()` in the next major release\n // For more details: https://github.com/mui/material-ui/pull/37908\n overridesResolver = defaultOverridesResolver(lowercaseFirstLetter(componentSlot)),\n ...options\n } = inputOptions;\n\n // if skipVariantsResolver option is defined, take the value, otherwise, true for root and false for other slots.\n const skipVariantsResolver = inputSkipVariantsResolver !== undefined ? inputSkipVariantsResolver :\n // TODO v6: remove `Root` in the next major release\n // For more details: https://github.com/mui/material-ui/pull/37908\n componentSlot && componentSlot !== 'Root' && componentSlot !== 'root' || false;\n const skipSx = inputSkipSx || false;\n let shouldForwardPropOption = shouldForwardProp;\n\n // TODO v6: remove `Root` in the next major release\n // For more details: https://github.com/mui/material-ui/pull/37908\n if (componentSlot === 'Root' || componentSlot === 'root') {\n shouldForwardPropOption = rootShouldForwardProp;\n } else if (componentSlot) {\n // any other slot specified\n shouldForwardPropOption = slotShouldForwardProp;\n } else if (isStringTag(tag)) {\n // for string (html) tag, preserve the behavior in emotion & styled-components.\n shouldForwardPropOption = undefined;\n }\n const defaultStyledResolver = styledEngineStyled(tag, {\n shouldForwardProp: shouldForwardPropOption,\n label: generateStyledLabel(componentName, componentSlot),\n ...options\n });\n const transformStyle = style => {\n // On the server Emotion doesn't use React.forwardRef for creating components, so the created\n // component stays as a function. This condition makes sure that we do not interpolate functions\n // which are basically components used as a selectors.\n if (typeof style === 'function' && style.__emotion_real !== style) {\n return function styleFunctionProcessor(props) {\n return processStyle(props, style);\n };\n }\n if (isPlainObject(style)) {\n const serialized = preprocessStyles(style);\n if (!serialized.variants) {\n return serialized.style;\n }\n return function styleObjectProcessor(props) {\n return processStyle(props, serialized);\n };\n }\n return style;\n };\n const muiStyledResolver = (...expressionsInput) => {\n const expressionsHead = [];\n const expressionsBody = expressionsInput.map(transformStyle);\n const expressionsTail = [];\n\n // Preprocess `props` to set the scoped theme value.\n // This must run before any other expression.\n expressionsHead.push(styleAttachTheme);\n if (componentName && overridesResolver) {\n expressionsTail.push(function styleThemeOverrides(props) {\n const theme = props.theme;\n const styleOverrides = theme.components?.[componentName]?.styleOverrides;\n if (!styleOverrides) {\n return null;\n }\n const resolvedStyleOverrides = {};\n\n // TODO: v7 remove iteration and use `resolveStyleArg(styleOverrides[slot])` directly\n // eslint-disable-next-line guard-for-in\n for (const slotKey in styleOverrides) {\n resolvedStyleOverrides[slotKey] = processStyle(props, styleOverrides[slotKey]);\n }\n return overridesResolver(props, resolvedStyleOverrides);\n });\n }\n if (componentName && !skipVariantsResolver) {\n expressionsTail.push(function styleThemeVariants(props) {\n const theme = props.theme;\n const themeVariants = theme?.components?.[componentName]?.variants;\n if (!themeVariants) {\n return null;\n }\n return processStyleVariants(props, themeVariants);\n });\n }\n if (!skipSx) {\n expressionsTail.push(styleFunctionSx);\n }\n\n // This function can be called as a tagged template, so the first argument would contain\n // CSS `string[]` values.\n if (Array.isArray(expressionsBody[0])) {\n const inputStrings = expressionsBody.shift();\n\n // We need to add placeholders in the tagged template for the custom functions we have\n // possibly added (attachTheme, overrides, variants, and sx).\n const placeholdersHead = new Array(expressionsHead.length).fill('');\n const placeholdersTail = new Array(expressionsTail.length).fill('');\n let outputStrings;\n // prettier-ignore\n {\n outputStrings = [...placeholdersHead, ...inputStrings, ...placeholdersTail];\n outputStrings.raw = [...placeholdersHead, ...inputStrings.raw, ...placeholdersTail];\n }\n\n // The only case where we put something before `attachTheme`\n expressionsHead.unshift(outputStrings);\n }\n const expressions = [...expressionsHead, ...expressionsBody, ...expressionsTail];\n const Component = defaultStyledResolver(...expressions);\n if (tag.muiName) {\n Component.muiName = tag.muiName;\n }\n if (process.env.NODE_ENV !== 'production') {\n Component.displayName = generateDisplayName(componentName, componentSlot, tag);\n }\n return Component;\n };\n if (defaultStyledResolver.withConfig) {\n muiStyledResolver.withConfig = defaultStyledResolver.withConfig;\n }\n return muiStyledResolver;\n };\n return styled;\n}\nfunction generateDisplayName(componentName, componentSlot, tag) {\n if (componentName) {\n return `${componentName}${capitalize(componentSlot || '')}`;\n }\n return `Styled(${getDisplayName(tag)})`;\n}\nfunction generateStyledLabel(componentName, componentSlot) {\n let label;\n if (process.env.NODE_ENV !== 'production') {\n if (componentName) {\n // TODO v6: remove `lowercaseFirstLetter()` in the next major release\n // For more details: https://github.com/mui/material-ui/pull/37908\n label = `${componentName}-${lowercaseFirstLetter(componentSlot || 'Root')}`;\n }\n }\n return label;\n}\nfunction isObjectEmpty(object) {\n // eslint-disable-next-line\n for (const _ in object) {\n return false;\n }\n return true;\n}\n\n// https://github.com/emotion-js/emotion/blob/26ded6109fcd8ca9875cc2ce4564fee678a3f3c5/packages/styled/src/utils.js#L40\nfunction isStringTag(tag) {\n return typeof tag === 'string' &&\n // 96 is one less than the char code\n // for \"a\" so this is checking that\n // it's a lowercase character\n tag.charCodeAt(0) > 96;\n}\nfunction lowercaseFirstLetter(string) {\n if (!string) {\n return string;\n }\n return string.charAt(0).toLowerCase() + string.slice(1);\n}","'use client';\n\nimport createTheme from \"./createTheme.js\";\nconst defaultTheme = createTheme();\nexport default defaultTheme;","'use client';\n\nimport createStyled from '@mui/system/createStyled';\nimport defaultTheme from \"./defaultTheme.js\";\nimport THEME_ID from \"./identifier.js\";\nimport rootShouldForwardProp from \"./rootShouldForwardProp.js\";\nexport { default as slotShouldForwardProp } from \"./slotShouldForwardProp.js\";\nexport { default as rootShouldForwardProp } from \"./rootShouldForwardProp.js\";\nconst styled = createStyled({\n themeId: THEME_ID,\n defaultTheme,\n rootShouldForwardProp\n});\nexport default styled;","import preprocessStyles from \"./preprocessStyles.js\";\n\n/* eslint-disable @typescript-eslint/naming-convention */\n\n// We need to pass an argument as `{ theme }` for PigmentCSS, but we don't want to\n// allocate more objects.\nconst arg = {\n theme: undefined\n};\n\n/**\n * Memoize style function on theme.\n * Intended to be used in styled() calls that only need access to the theme.\n */\nexport default function unstable_memoTheme(styleFn) {\n let lastValue;\n let lastTheme;\n return function styleMemoized(props) {\n let value = lastValue;\n if (value === undefined || props.theme !== lastTheme) {\n arg.theme = props.theme;\n value = preprocessStyles(styleFn(arg));\n lastValue = value;\n lastTheme = props.theme;\n }\n return value;\n };\n}","import { unstable_memoTheme } from '@mui/system';\nconst memoTheme = unstable_memoTheme;\nexport default memoTheme;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport SystemDefaultPropsProvider, { useDefaultProps as useSystemDefaultProps } from '@mui/system/DefaultPropsProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction DefaultPropsProvider(props) {\n return /*#__PURE__*/_jsx(SystemDefaultPropsProvider, {\n ...props\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? DefaultPropsProvider.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * @ignore\n */\n children: PropTypes.node,\n /**\n * @ignore\n */\n value: PropTypes.object.isRequired\n} : void 0;\nexport default DefaultPropsProvider;\nexport function useDefaultProps(params) {\n return useSystemDefaultProps(params);\n}","/**\n * Returns a boolean indicating if the event's target has :focus-visible\n */\nexport default function isFocusVisible(element) {\n try {\n return element.matches(':focus-visible');\n } catch (error) {\n // Do not warn on jsdom tests, otherwise all tests that rely on focus have to be skipped\n // Tests that rely on `:focus-visible` will still have to be skipped in jsdom\n if (process.env.NODE_ENV !== 'production' && !/jsdom/.test(window.navigator.userAgent)) {\n console.warn(['MUI: The `:focus-visible` pseudo class is not supported in this browser.', 'Some components rely on this feature to work properly.'].join('\\n'));\n }\n }\n return false;\n}","/**\n * TODO v5: consider making it private\n *\n * passes {value} to {ref}\n *\n * WARNING: Be sure to only call this inside a callback that is passed as a ref.\n * Otherwise, make sure to cleanup the previous {ref} if it changes. See\n * https://github.com/mui/material-ui/issues/13539\n *\n * Useful if you want to expose the ref of an inner component to the public API\n * while still using it inside the component.\n * @param ref A ref callback or ref object. If anything falsy, this is a no-op.\n */\nexport default function setRef(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref) {\n ref.current = value;\n }\n}","'use client';\n\nimport * as React from 'react';\nimport setRef from \"../setRef/index.js\";\nexport default function useForkRef(...refs) {\n /**\n * This will create a new function if the refs passed to this hook change and are all defined.\n * This means react will call the old forkRef with `null` and the new forkRef\n * with the ref. Cleanup naturally emerges from this behavior.\n */\n return React.useMemo(() => {\n if (refs.every(ref => ref == null)) {\n return null;\n }\n return instance => {\n refs.forEach(ref => {\n setRef(ref, instance);\n });\n };\n // TODO: uncomment once we enable eslint-plugin-react-compiler // eslint-disable-next-line react-compiler/react-compiler -- intentionally ignoring that the dependency array must be an array literal\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, refs);\n}","'use client';\n\nimport useForkRef from '@mui/utils/useForkRef';\nexport default useForkRef;","'use client';\n\nimport * as React from 'react';\n\n/**\n * A version of `React.useLayoutEffect` that does not show a warning when server-side rendering.\n * This is useful for effects that are only needed for client-side rendering but not for SSR.\n *\n * Before you use this hook, make sure to read https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\n * and confirm it doesn't apply to your use-case.\n */\nconst useEnhancedEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\nexport default useEnhancedEffect;","'use client';\n\nimport * as React from 'react';\nimport useEnhancedEffect from \"../useEnhancedEffect/index.js\";\n\n/**\n * Inspired by https://github.com/facebook/react/issues/14099#issuecomment-440013892\n * See RFC in https://github.com/reactjs/rfcs/pull/220\n */\n\nfunction useEventCallback(fn) {\n const ref = React.useRef(fn);\n useEnhancedEffect(() => {\n ref.current = fn;\n });\n return React.useRef((...args) =>\n // @ts-expect-error hide `this`\n (0, ref.current)(...args)).current;\n}\nexport default useEventCallback;","'use client';\n\nimport useEventCallback from '@mui/utils/useEventCallback';\nexport default useEventCallback;","'use client';\n\nimport * as React from 'react';\nconst UNINITIALIZED = {};\n\n/**\n * A React.useRef() that is initialized lazily with a function. Note that it accepts an optional\n * initialization argument, so the initialization function doesn't need to be an inline closure.\n *\n * @usage\n * const ref = useLazyRef(sortColumns, columns)\n */\nexport default function useLazyRef(init, initArg) {\n const ref = React.useRef(UNINITIALIZED);\n if (ref.current === UNINITIALIZED) {\n ref.current = init(initArg);\n }\n return ref;\n}","'use client';\n\nimport * as React from 'react';\nimport useLazyRef from '@mui/utils/useLazyRef';\n/**\n * Lazy initialization container for the Ripple instance. This improves\n * performance by delaying mounting the ripple until it's needed.\n */\nexport class LazyRipple {\n /** React ref to the ripple instance */\n\n /** If the ripple component should be mounted */\n\n /** Promise that resolves when the ripple component is mounted */\n\n /** If the ripple component has been mounted */\n\n /** React state hook setter */\n\n static create() {\n return new LazyRipple();\n }\n static use() {\n /* eslint-disable */\n const ripple = useLazyRef(LazyRipple.create).current;\n const [shouldMount, setShouldMount] = React.useState(false);\n ripple.shouldMount = shouldMount;\n ripple.setShouldMount = setShouldMount;\n React.useEffect(ripple.mountEffect, [shouldMount]);\n /* eslint-enable */\n\n return ripple;\n }\n constructor() {\n this.ref = {\n current: null\n };\n this.mounted = null;\n this.didMount = false;\n this.shouldMount = false;\n this.setShouldMount = null;\n }\n mount() {\n if (!this.mounted) {\n this.mounted = createControlledPromise();\n this.shouldMount = true;\n this.setShouldMount(this.shouldMount);\n }\n return this.mounted;\n }\n mountEffect = () => {\n if (this.shouldMount && !this.didMount) {\n if (this.ref.current !== null) {\n this.didMount = true;\n this.mounted.resolve();\n }\n }\n };\n\n /* Ripple API */\n\n start(...args) {\n this.mount().then(() => this.ref.current?.start(...args));\n }\n stop(...args) {\n this.mount().then(() => this.ref.current?.stop(...args));\n }\n pulsate(...args) {\n this.mount().then(() => this.ref.current?.pulsate(...args));\n }\n}\nexport default function useLazyRipple() {\n return LazyRipple.use();\n}\nfunction createControlledPromise() {\n let resolve;\n let reject;\n const p = new Promise((resolveFn, rejectFn) => {\n resolve = resolveFn;\n reject = rejectFn;\n });\n p.resolve = resolve;\n p.reject = reject;\n return p;\n}","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (e.includes(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inheritsLoose(t, o) {\n t.prototype = Object.create(o.prototype), t.prototype.constructor = t, setPrototypeOf(t, o);\n}\nexport { _inheritsLoose as default };","import React from 'react';\nexport default React.createContext(null);","import { Children, cloneElement, isValidElement } from 'react';\n/**\n * Given `this.props.children`, return an object mapping key to child.\n *\n * @param {*} children `this.props.children`\n * @return {object} Mapping of key to child\n */\n\nexport function getChildMapping(children, mapFn) {\n var mapper = function mapper(child) {\n return mapFn && isValidElement(child) ? mapFn(child) : child;\n };\n\n var result = Object.create(null);\n if (children) Children.map(children, function (c) {\n return c;\n }).forEach(function (child) {\n // run the map function here instead so that the key is the computed one\n result[child.key] = mapper(child);\n });\n return result;\n}\n/**\n * When you're adding or removing children some may be added or removed in the\n * same render pass. We want to show *both* since we want to simultaneously\n * animate elements in and out. This function takes a previous set of keys\n * and a new set of keys and merges them with its best guess of the correct\n * ordering. In the future we may expose some of the utilities in\n * ReactMultiChild to make this easy, but for now React itself does not\n * directly have this concept of the union of prevChildren and nextChildren\n * so we implement it here.\n *\n * @param {object} prev prev children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @param {object} next next children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @return {object} a key set that contains all keys in `prev` and all keys\n * in `next` in a reasonable order.\n */\n\nexport function mergeChildMappings(prev, next) {\n prev = prev || {};\n next = next || {};\n\n function getValueForKey(key) {\n return key in next ? next[key] : prev[key];\n } // For each key of `next`, the list of keys to insert before that key in\n // the combined list\n\n\n var nextKeysPending = Object.create(null);\n var pendingKeys = [];\n\n for (var prevKey in prev) {\n if (prevKey in next) {\n if (pendingKeys.length) {\n nextKeysPending[prevKey] = pendingKeys;\n pendingKeys = [];\n }\n } else {\n pendingKeys.push(prevKey);\n }\n }\n\n var i;\n var childMapping = {};\n\n for (var nextKey in next) {\n if (nextKeysPending[nextKey]) {\n for (i = 0; i < nextKeysPending[nextKey].length; i++) {\n var pendingNextKey = nextKeysPending[nextKey][i];\n childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);\n }\n }\n\n childMapping[nextKey] = getValueForKey(nextKey);\n } // Finally, add the keys which didn't appear before any key in `next`\n\n\n for (i = 0; i < pendingKeys.length; i++) {\n childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);\n }\n\n return childMapping;\n}\n\nfunction getProp(child, prop, props) {\n return props[prop] != null ? props[prop] : child.props[prop];\n}\n\nexport function getInitialChildMapping(props, onExited) {\n return getChildMapping(props.children, function (child) {\n return cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: true,\n appear: getProp(child, 'appear', props),\n enter: getProp(child, 'enter', props),\n exit: getProp(child, 'exit', props)\n });\n });\n}\nexport function getNextChildMapping(nextProps, prevChildMapping, onExited) {\n var nextChildMapping = getChildMapping(nextProps.children);\n var children = mergeChildMappings(prevChildMapping, nextChildMapping);\n Object.keys(children).forEach(function (key) {\n var child = children[key];\n if (!isValidElement(child)) return;\n var hasPrev = (key in prevChildMapping);\n var hasNext = (key in nextChildMapping);\n var prevChild = prevChildMapping[key];\n var isLeaving = isValidElement(prevChild) && !prevChild.props.in; // item is new (entering)\n\n if (hasNext && (!hasPrev || isLeaving)) {\n // console.log('entering', key)\n children[key] = cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: true,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n } else if (!hasNext && hasPrev && !isLeaving) {\n // item is old (exiting)\n // console.log('leaving', key)\n children[key] = cloneElement(child, {\n in: false\n });\n } else if (hasNext && hasPrev && isValidElement(prevChild)) {\n // item hasn't changed transition states\n // copy over the last transition props;\n // console.log('unchanged', key)\n children[key] = cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: prevChild.props.in,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n }\n });\n return children;\n}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { getChildMapping, getInitialChildMapping, getNextChildMapping } from './utils/ChildMapping';\n\nvar values = Object.values || function (obj) {\n return Object.keys(obj).map(function (k) {\n return obj[k];\n });\n};\n\nvar defaultProps = {\n component: 'div',\n childFactory: function childFactory(child) {\n return child;\n }\n};\n/**\n * The `` component manages a set of transition components\n * (`` and ``) in a list. Like with the transition\n * components, `` is a state machine for managing the mounting\n * and unmounting of components over time.\n *\n * Consider the example below. As items are removed or added to the TodoList the\n * `in` prop is toggled automatically by the ``.\n *\n * Note that `` does not define any animation behavior!\n * Exactly _how_ a list item animates is up to the individual transition\n * component. This means you can mix and match animations across different list\n * items.\n */\n\nvar TransitionGroup = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(TransitionGroup, _React$Component);\n\n function TransitionGroup(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n\n var handleExited = _this.handleExited.bind(_assertThisInitialized(_this)); // Initial children should all be entering, dependent on appear\n\n\n _this.state = {\n contextValue: {\n isMounting: true\n },\n handleExited: handleExited,\n firstRender: true\n };\n return _this;\n }\n\n var _proto = TransitionGroup.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.mounted = true;\n this.setState({\n contextValue: {\n isMounting: false\n }\n });\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.mounted = false;\n };\n\n TransitionGroup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, _ref) {\n var prevChildMapping = _ref.children,\n handleExited = _ref.handleExited,\n firstRender = _ref.firstRender;\n return {\n children: firstRender ? getInitialChildMapping(nextProps, handleExited) : getNextChildMapping(nextProps, prevChildMapping, handleExited),\n firstRender: false\n };\n } // node is `undefined` when user provided `nodeRef` prop\n ;\n\n _proto.handleExited = function handleExited(child, node) {\n var currentChildMapping = getChildMapping(this.props.children);\n if (child.key in currentChildMapping) return;\n\n if (child.props.onExited) {\n child.props.onExited(node);\n }\n\n if (this.mounted) {\n this.setState(function (state) {\n var children = _extends({}, state.children);\n\n delete children[child.key];\n return {\n children: children\n };\n });\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n Component = _this$props.component,\n childFactory = _this$props.childFactory,\n props = _objectWithoutPropertiesLoose(_this$props, [\"component\", \"childFactory\"]);\n\n var contextValue = this.state.contextValue;\n var children = values(this.state.children).map(childFactory);\n delete props.appear;\n delete props.enter;\n delete props.exit;\n\n if (Component === null) {\n return /*#__PURE__*/React.createElement(TransitionGroupContext.Provider, {\n value: contextValue\n }, children);\n }\n\n return /*#__PURE__*/React.createElement(TransitionGroupContext.Provider, {\n value: contextValue\n }, /*#__PURE__*/React.createElement(Component, props, children));\n };\n\n return TransitionGroup;\n}(React.Component);\n\nTransitionGroup.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * `` renders a `
` by default. You can change this\n * behavior by providing a `component` prop.\n * If you use React v16+ and would like to avoid a wrapping `
` element\n * you can pass in `component={null}`. This is useful if the wrapping div\n * borks your css styles.\n */\n component: PropTypes.any,\n\n /**\n * A set of `` components, that are toggled `in` and out as they\n * leave. the `` will inject specific transition props, so\n * remember to spread them through if you are wrapping the `` as\n * with our `` example.\n *\n * While this component is meant for multiple `Transition` or `CSSTransition`\n * children, sometimes you may want to have a single transition child with\n * content that you want to be transitioned out and in when you change it\n * (e.g. routes, images etc.) In that case you can change the `key` prop of\n * the transition child as you change its content, this will cause\n * `TransitionGroup` to transition the child out and back in.\n */\n children: PropTypes.node,\n\n /**\n * A convenience prop that enables or disables appear animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n appear: PropTypes.bool,\n\n /**\n * A convenience prop that enables or disables enter animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * A convenience prop that enables or disables exit animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * You may need to apply reactive updates to a child as it is exiting.\n * This is generally done by using `cloneElement` however in the case of an exiting\n * child the element has already been removed and not accessible to the consumer.\n *\n * If you do need to update a child as it leaves you can provide a `childFactory`\n * to wrap every child, even the ones that are leaving.\n *\n * @type Function(child: ReactElement) -> ReactElement\n */\n childFactory: PropTypes.func\n} : {};\nTransitionGroup.defaultProps = defaultProps;\nexport default TransitionGroup;","function _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n}\nexport { _assertThisInitialized as default };","'use client';\n\nimport * as React from 'react';\nconst EMPTY = [];\n\n/**\n * A React.useEffect equivalent that runs once, when the component is mounted.\n */\nexport default function useOnMount(fn) {\n // TODO: uncomment once we enable eslint-plugin-react-compiler // eslint-disable-next-line react-compiler/react-compiler -- no need to put `fn` in the dependency array\n /* eslint-disable react-hooks/exhaustive-deps */\n React.useEffect(fn, EMPTY);\n /* eslint-enable react-hooks/exhaustive-deps */\n}","'use client';\n\nimport useLazyRef from \"../useLazyRef/useLazyRef.js\";\nimport useOnMount from \"../useOnMount/useOnMount.js\";\nexport class Timeout {\n static create() {\n return new Timeout();\n }\n currentId = null;\n\n /**\n * Executes `fn` after `delay`, clearing any previously scheduled call.\n */\n start(delay, fn) {\n this.clear();\n this.currentId = setTimeout(() => {\n this.currentId = null;\n fn();\n }, delay);\n }\n clear = () => {\n if (this.currentId !== null) {\n clearTimeout(this.currentId);\n this.currentId = null;\n }\n };\n disposeEffect = () => {\n return this.clear;\n };\n}\nexport default function useTimeout() {\n const timeout = useLazyRef(Timeout.create).current;\n useOnMount(timeout.disposeEffect);\n return timeout;\n}","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction Ripple(props) {\n const {\n className,\n classes,\n pulsate = false,\n rippleX,\n rippleY,\n rippleSize,\n in: inProp,\n onExited,\n timeout\n } = props;\n const [leaving, setLeaving] = React.useState(false);\n const rippleClassName = clsx(className, classes.ripple, classes.rippleVisible, pulsate && classes.ripplePulsate);\n const rippleStyles = {\n width: rippleSize,\n height: rippleSize,\n top: -(rippleSize / 2) + rippleY,\n left: -(rippleSize / 2) + rippleX\n };\n const childClassName = clsx(classes.child, leaving && classes.childLeaving, pulsate && classes.childPulsate);\n if (!inProp && !leaving) {\n setLeaving(true);\n }\n React.useEffect(() => {\n if (!inProp && onExited != null) {\n // react-transition-group#onExited\n const timeoutId = setTimeout(onExited, timeout);\n return () => {\n clearTimeout(timeoutId);\n };\n }\n return undefined;\n }, [onExited, inProp, timeout]);\n return /*#__PURE__*/_jsx(\"span\", {\n className: rippleClassName,\n style: rippleStyles,\n children: /*#__PURE__*/_jsx(\"span\", {\n className: childClassName\n })\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? Ripple.propTypes /* remove-proptypes */ = {\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n /**\n * @ignore - injected from TransitionGroup\n */\n in: PropTypes.bool,\n /**\n * @ignore - injected from TransitionGroup\n */\n onExited: PropTypes.func,\n /**\n * If `true`, the ripple pulsates, typically indicating the keyboard focus state of an element.\n */\n pulsate: PropTypes.bool,\n /**\n * Diameter of the ripple.\n */\n rippleSize: PropTypes.number,\n /**\n * Horizontal position of the ripple center.\n */\n rippleX: PropTypes.number,\n /**\n * Vertical position of the ripple center.\n */\n rippleY: PropTypes.number,\n /**\n * exit delay\n */\n timeout: PropTypes.number.isRequired\n} : void 0;\nexport default Ripple;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getTouchRippleUtilityClass(slot) {\n return generateUtilityClass('MuiTouchRipple', slot);\n}\nconst touchRippleClasses = generateUtilityClasses('MuiTouchRipple', ['root', 'ripple', 'rippleVisible', 'ripplePulsate', 'child', 'childLeaving', 'childPulsate']);\nexport default touchRippleClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { TransitionGroup } from 'react-transition-group';\nimport clsx from 'clsx';\nimport useTimeout from '@mui/utils/useTimeout';\nimport { keyframes, styled } from \"../zero-styled/index.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport Ripple from \"./Ripple.js\";\nimport touchRippleClasses from \"./touchRippleClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst DURATION = 550;\nexport const DELAY_RIPPLE = 80;\nconst enterKeyframe = keyframes`\n 0% {\n transform: scale(0);\n opacity: 0.1;\n }\n\n 100% {\n transform: scale(1);\n opacity: 0.3;\n }\n`;\nconst exitKeyframe = keyframes`\n 0% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n }\n`;\nconst pulsateKeyframe = keyframes`\n 0% {\n transform: scale(1);\n }\n\n 50% {\n transform: scale(0.92);\n }\n\n 100% {\n transform: scale(1);\n }\n`;\nexport const TouchRippleRoot = styled('span', {\n name: 'MuiTouchRipple',\n slot: 'Root'\n})({\n overflow: 'hidden',\n pointerEvents: 'none',\n position: 'absolute',\n zIndex: 0,\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n borderRadius: 'inherit'\n});\n\n// This `styled()` function invokes keyframes. `styled-components` only supports keyframes\n// in string templates. Do not convert these styles in JS object as it will break.\nexport const TouchRippleRipple = styled(Ripple, {\n name: 'MuiTouchRipple',\n slot: 'Ripple'\n})`\n opacity: 0;\n position: absolute;\n\n &.${touchRippleClasses.rippleVisible} {\n opacity: 0.3;\n transform: scale(1);\n animation-name: ${enterKeyframe};\n animation-duration: ${DURATION}ms;\n animation-timing-function: ${({\n theme\n}) => theme.transitions.easing.easeInOut};\n }\n\n &.${touchRippleClasses.ripplePulsate} {\n animation-duration: ${({\n theme\n}) => theme.transitions.duration.shorter}ms;\n }\n\n & .${touchRippleClasses.child} {\n opacity: 1;\n display: block;\n width: 100%;\n height: 100%;\n border-radius: 50%;\n background-color: currentColor;\n }\n\n & .${touchRippleClasses.childLeaving} {\n opacity: 0;\n animation-name: ${exitKeyframe};\n animation-duration: ${DURATION}ms;\n animation-timing-function: ${({\n theme\n}) => theme.transitions.easing.easeInOut};\n }\n\n & .${touchRippleClasses.childPulsate} {\n position: absolute;\n /* @noflip */\n left: 0px;\n top: 0;\n animation-name: ${pulsateKeyframe};\n animation-duration: 2500ms;\n animation-timing-function: ${({\n theme\n}) => theme.transitions.easing.easeInOut};\n animation-iteration-count: infinite;\n animation-delay: 200ms;\n }\n`;\n\n/**\n * @ignore - internal component.\n *\n * TODO v5: Make private\n */\nconst TouchRipple = /*#__PURE__*/React.forwardRef(function TouchRipple(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiTouchRipple'\n });\n const {\n center: centerProp = false,\n classes = {},\n className,\n ...other\n } = props;\n const [ripples, setRipples] = React.useState([]);\n const nextKey = React.useRef(0);\n const rippleCallback = React.useRef(null);\n React.useEffect(() => {\n if (rippleCallback.current) {\n rippleCallback.current();\n rippleCallback.current = null;\n }\n }, [ripples]);\n\n // Used to filter out mouse emulated events on mobile.\n const ignoringMouseDown = React.useRef(false);\n // We use a timer in order to only show the ripples for touch \"click\" like events.\n // We don't want to display the ripple for touch scroll events.\n const startTimer = useTimeout();\n\n // This is the hook called once the previous timeout is ready.\n const startTimerCommit = React.useRef(null);\n const container = React.useRef(null);\n const startCommit = React.useCallback(params => {\n const {\n pulsate,\n rippleX,\n rippleY,\n rippleSize,\n cb\n } = params;\n setRipples(oldRipples => [...oldRipples, /*#__PURE__*/_jsx(TouchRippleRipple, {\n classes: {\n ripple: clsx(classes.ripple, touchRippleClasses.ripple),\n rippleVisible: clsx(classes.rippleVisible, touchRippleClasses.rippleVisible),\n ripplePulsate: clsx(classes.ripplePulsate, touchRippleClasses.ripplePulsate),\n child: clsx(classes.child, touchRippleClasses.child),\n childLeaving: clsx(classes.childLeaving, touchRippleClasses.childLeaving),\n childPulsate: clsx(classes.childPulsate, touchRippleClasses.childPulsate)\n },\n timeout: DURATION,\n pulsate: pulsate,\n rippleX: rippleX,\n rippleY: rippleY,\n rippleSize: rippleSize\n }, nextKey.current)]);\n nextKey.current += 1;\n rippleCallback.current = cb;\n }, [classes]);\n const start = React.useCallback((event = {}, options = {}, cb = () => {}) => {\n const {\n pulsate = false,\n center = centerProp || options.pulsate,\n fakeElement = false // For test purposes\n } = options;\n if (event?.type === 'mousedown' && ignoringMouseDown.current) {\n ignoringMouseDown.current = false;\n return;\n }\n if (event?.type === 'touchstart') {\n ignoringMouseDown.current = true;\n }\n const element = fakeElement ? null : container.current;\n const rect = element ? element.getBoundingClientRect() : {\n width: 0,\n height: 0,\n left: 0,\n top: 0\n };\n\n // Get the size of the ripple\n let rippleX;\n let rippleY;\n let rippleSize;\n if (center || event === undefined || event.clientX === 0 && event.clientY === 0 || !event.clientX && !event.touches) {\n rippleX = Math.round(rect.width / 2);\n rippleY = Math.round(rect.height / 2);\n } else {\n const {\n clientX,\n clientY\n } = event.touches && event.touches.length > 0 ? event.touches[0] : event;\n rippleX = Math.round(clientX - rect.left);\n rippleY = Math.round(clientY - rect.top);\n }\n if (center) {\n rippleSize = Math.sqrt((2 * rect.width ** 2 + rect.height ** 2) / 3);\n\n // For some reason the animation is broken on Mobile Chrome if the size is even.\n if (rippleSize % 2 === 0) {\n rippleSize += 1;\n }\n } else {\n const sizeX = Math.max(Math.abs((element ? element.clientWidth : 0) - rippleX), rippleX) * 2 + 2;\n const sizeY = Math.max(Math.abs((element ? element.clientHeight : 0) - rippleY), rippleY) * 2 + 2;\n rippleSize = Math.sqrt(sizeX ** 2 + sizeY ** 2);\n }\n\n // Touche devices\n if (event?.touches) {\n // check that this isn't another touchstart due to multitouch\n // otherwise we will only clear a single timer when unmounting while two\n // are running\n if (startTimerCommit.current === null) {\n // Prepare the ripple effect.\n startTimerCommit.current = () => {\n startCommit({\n pulsate,\n rippleX,\n rippleY,\n rippleSize,\n cb\n });\n };\n // Delay the execution of the ripple effect.\n // We have to make a tradeoff with this delay value.\n startTimer.start(DELAY_RIPPLE, () => {\n if (startTimerCommit.current) {\n startTimerCommit.current();\n startTimerCommit.current = null;\n }\n });\n }\n } else {\n startCommit({\n pulsate,\n rippleX,\n rippleY,\n rippleSize,\n cb\n });\n }\n }, [centerProp, startCommit, startTimer]);\n const pulsate = React.useCallback(() => {\n start({}, {\n pulsate: true\n });\n }, [start]);\n const stop = React.useCallback((event, cb) => {\n startTimer.clear();\n\n // The touch interaction occurs too quickly.\n // We still want to show ripple effect.\n if (event?.type === 'touchend' && startTimerCommit.current) {\n startTimerCommit.current();\n startTimerCommit.current = null;\n startTimer.start(0, () => {\n stop(event, cb);\n });\n return;\n }\n startTimerCommit.current = null;\n setRipples(oldRipples => {\n if (oldRipples.length > 0) {\n return oldRipples.slice(1);\n }\n return oldRipples;\n });\n rippleCallback.current = cb;\n }, [startTimer]);\n React.useImperativeHandle(ref, () => ({\n pulsate,\n start,\n stop\n }), [pulsate, start, stop]);\n return /*#__PURE__*/_jsx(TouchRippleRoot, {\n className: clsx(touchRippleClasses.root, classes.root, className),\n ref: container,\n ...other,\n children: /*#__PURE__*/_jsx(TransitionGroup, {\n component: null,\n exit: true,\n children: ripples\n })\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? TouchRipple.propTypes /* remove-proptypes */ = {\n /**\n * If `true`, the ripple starts at the center of the component\n * rather than at the point of interaction.\n */\n center: PropTypes.bool,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string\n} : void 0;\nexport default TouchRipple;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getButtonBaseUtilityClass(slot) {\n return generateUtilityClass('MuiButtonBase', slot);\n}\nconst buttonBaseClasses = generateUtilityClasses('MuiButtonBase', ['root', 'disabled', 'focusVisible']);\nexport default buttonBaseClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport refType from '@mui/utils/refType';\nimport elementTypeAcceptingRef from '@mui/utils/elementTypeAcceptingRef';\nimport composeClasses from '@mui/utils/composeClasses';\nimport isFocusVisible from '@mui/utils/isFocusVisible';\nimport { styled } from \"../zero-styled/index.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport useForkRef from \"../utils/useForkRef.js\";\nimport useEventCallback from \"../utils/useEventCallback.js\";\nimport useLazyRipple from \"../useLazyRipple/index.js\";\nimport TouchRipple from \"./TouchRipple.js\";\nimport buttonBaseClasses, { getButtonBaseUtilityClass } from \"./buttonBaseClasses.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n disabled,\n focusVisible,\n focusVisibleClassName,\n classes\n } = ownerState;\n const slots = {\n root: ['root', disabled && 'disabled', focusVisible && 'focusVisible']\n };\n const composedClasses = composeClasses(slots, getButtonBaseUtilityClass, classes);\n if (focusVisible && focusVisibleClassName) {\n composedClasses.root += ` ${focusVisibleClassName}`;\n }\n return composedClasses;\n};\nexport const ButtonBaseRoot = styled('button', {\n name: 'MuiButtonBase',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'relative',\n boxSizing: 'border-box',\n WebkitTapHighlightColor: 'transparent',\n backgroundColor: 'transparent',\n // Reset default value\n // We disable the focus ring for mouse, touch and keyboard users.\n outline: 0,\n border: 0,\n margin: 0,\n // Remove the margin in Safari\n borderRadius: 0,\n padding: 0,\n // Remove the padding in Firefox\n cursor: 'pointer',\n userSelect: 'none',\n verticalAlign: 'middle',\n MozAppearance: 'none',\n // Reset\n WebkitAppearance: 'none',\n // Reset\n textDecoration: 'none',\n // So we take precedent over the style of a native element.\n color: 'inherit',\n '&::-moz-focus-inner': {\n borderStyle: 'none' // Remove Firefox dotted outline.\n },\n [`&.${buttonBaseClasses.disabled}`]: {\n pointerEvents: 'none',\n // Disable link interactions\n cursor: 'default'\n },\n '@media print': {\n colorAdjust: 'exact'\n }\n});\n\n/**\n * `ButtonBase` contains as few styles as possible.\n * It aims to be a simple building block for creating a button.\n * It contains a load of style reset and some focus/ripple logic.\n */\nconst ButtonBase = /*#__PURE__*/React.forwardRef(function ButtonBase(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiButtonBase'\n });\n const {\n action,\n centerRipple = false,\n children,\n className,\n component = 'button',\n disabled = false,\n disableRipple = false,\n disableTouchRipple = false,\n focusRipple = false,\n focusVisibleClassName,\n LinkComponent = 'a',\n onBlur,\n onClick,\n onContextMenu,\n onDragLeave,\n onFocus,\n onFocusVisible,\n onKeyDown,\n onKeyUp,\n onMouseDown,\n onMouseLeave,\n onMouseUp,\n onTouchEnd,\n onTouchMove,\n onTouchStart,\n tabIndex = 0,\n TouchRippleProps,\n touchRippleRef,\n type,\n ...other\n } = props;\n const buttonRef = React.useRef(null);\n const ripple = useLazyRipple();\n const handleRippleRef = useForkRef(ripple.ref, touchRippleRef);\n const [focusVisible, setFocusVisible] = React.useState(false);\n if (disabled && focusVisible) {\n setFocusVisible(false);\n }\n React.useImperativeHandle(action, () => ({\n focusVisible: () => {\n setFocusVisible(true);\n buttonRef.current.focus();\n }\n }), []);\n const enableTouchRipple = ripple.shouldMount && !disableRipple && !disabled;\n React.useEffect(() => {\n if (focusVisible && focusRipple && !disableRipple) {\n ripple.pulsate();\n }\n }, [disableRipple, focusRipple, focusVisible, ripple]);\n function useRippleHandler(rippleAction, eventCallback, skipRippleAction = disableTouchRipple) {\n return useEventCallback(event => {\n if (eventCallback) {\n eventCallback(event);\n }\n const ignore = skipRippleAction;\n if (!ignore) {\n ripple[rippleAction](event);\n }\n return true;\n });\n }\n const handleMouseDown = useRippleHandler('start', onMouseDown);\n const handleContextMenu = useRippleHandler('stop', onContextMenu);\n const handleDragLeave = useRippleHandler('stop', onDragLeave);\n const handleMouseUp = useRippleHandler('stop', onMouseUp);\n const handleMouseLeave = useRippleHandler('stop', event => {\n if (focusVisible) {\n event.preventDefault();\n }\n if (onMouseLeave) {\n onMouseLeave(event);\n }\n });\n const handleTouchStart = useRippleHandler('start', onTouchStart);\n const handleTouchEnd = useRippleHandler('stop', onTouchEnd);\n const handleTouchMove = useRippleHandler('stop', onTouchMove);\n const handleBlur = useRippleHandler('stop', event => {\n if (!isFocusVisible(event.target)) {\n setFocusVisible(false);\n }\n if (onBlur) {\n onBlur(event);\n }\n }, false);\n const handleFocus = useEventCallback(event => {\n // Fix for https://github.com/facebook/react/issues/7769\n if (!buttonRef.current) {\n buttonRef.current = event.currentTarget;\n }\n if (isFocusVisible(event.target)) {\n setFocusVisible(true);\n if (onFocusVisible) {\n onFocusVisible(event);\n }\n }\n if (onFocus) {\n onFocus(event);\n }\n });\n const isNonNativeButton = () => {\n const button = buttonRef.current;\n return component && component !== 'button' && !(button.tagName === 'A' && button.href);\n };\n const handleKeyDown = useEventCallback(event => {\n // Check if key is already down to avoid repeats being counted as multiple activations\n if (focusRipple && !event.repeat && focusVisible && event.key === ' ') {\n ripple.stop(event, () => {\n ripple.start(event);\n });\n }\n if (event.target === event.currentTarget && isNonNativeButton() && event.key === ' ') {\n event.preventDefault();\n }\n if (onKeyDown) {\n onKeyDown(event);\n }\n\n // Keyboard accessibility for non interactive elements\n if (event.target === event.currentTarget && isNonNativeButton() && event.key === 'Enter' && !disabled) {\n event.preventDefault();\n if (onClick) {\n onClick(event);\n }\n }\n });\n const handleKeyUp = useEventCallback(event => {\n // calling preventDefault in keyUp on a \n *
\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n } // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n ;\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n if (nextStatus === ENTERING) {\n if (this.props.unmountOnExit || this.props.mountOnEnter) {\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this); // https://github.com/reactjs/react-transition-group/pull/749\n // With unmountOnExit or mountOnEnter, the enter animation should happen at the transition between `exited` and `entering`.\n // To make the animation happen, we have to separate each rendering and avoid being processed as batched.\n\n if (node) forceReflow(node);\n }\n\n this.performEnter(mounting);\n } else {\n this.performExit();\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n\n var _ref2 = this.props.nodeRef ? [appearing] : [ReactDOM.findDOMNode(this), appearing],\n maybeNode = _ref2[0],\n maybeAppearing = _ref2[1];\n\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter || config.disabled) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode);\n });\n return;\n }\n\n this.props.onEnter(maybeNode, maybeAppearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(maybeNode, maybeAppearing);\n\n _this2.onTransitionEnd(enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode, maybeAppearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit() {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts();\n var maybeNode = this.props.nodeRef ? undefined : ReactDOM.findDOMNode(this); // no exit animation skip right to EXITED\n\n if (!exit || config.disabled) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n return;\n }\n\n this.props.onExit(maybeNode);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(maybeNode);\n\n _this3.onTransitionEnd(timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n this.setNextCallback(handler);\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n maybeNode = _ref3[0],\n maybeNextCallback = _ref3[1];\n\n this.props.addEndListener(maybeNode, maybeNextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n _in = _this$props.in,\n _mountOnEnter = _this$props.mountOnEnter,\n _unmountOnExit = _this$props.unmountOnExit,\n _appear = _this$props.appear,\n _enter = _this$props.enter,\n _exit = _this$props.exit,\n _timeout = _this$props.timeout,\n _addEndListener = _this$props.addEndListener,\n _onEnter = _this$props.onEnter,\n _onEntering = _this$props.onEntering,\n _onEntered = _this$props.onEntered,\n _onExit = _this$props.onExit,\n _onExiting = _this$props.onExiting,\n _onExited = _this$props.onExited,\n _nodeRef = _this$props.nodeRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n\n return (\n /*#__PURE__*/\n // allows for nested Transitions\n React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, typeof children === 'function' ? children(status, childProps) : React.cloneElement(React.Children.only(children), childProps))\n );\n };\n\n return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A React reference to DOM element that need to transition:\n * https://stackoverflow.com/a/51127130/4671932\n *\n * - When `nodeRef` prop is used, `node` is not passed to callback functions\n * (e.g. `onEnter`) because user already has direct access to the node.\n * - When changing `key` prop of `Transition` in a `TransitionGroup` a new\n * `nodeRef` need to be provided to `Transition` with changed `key` prop\n * (see\n * [test/CSSTransition-test.js](https://github.com/reactjs/react-transition-group/blob/13435f897b3ab71f6e19d724f145596f5910581c/test/CSSTransition-test.js#L362-L437)).\n */\n nodeRef: PropTypes.shape({\n current: typeof Element === 'undefined' ? PropTypes.any : function (propValue, key, componentName, location, propFullName, secret) {\n var value = propValue[key];\n return PropTypes.instanceOf(value && 'ownerDocument' in value ? value.ownerDocument.defaultView.Element : Element)(propValue, key, componentName, location, propFullName, secret);\n }\n }),\n\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * \n * {state => (\n * \n * )}\n * \n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * By default the child component does not perform the enter transition when\n * it first mounts, regardless of the value of `in`. If you want this\n * behavior, set both `appear` and `in` to `true`.\n *\n * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop\n * > only adds an additional enter transition. However, in the\n * > `` component that first enter transition does result in\n * > additional `.appear-*` classes, that way you can choose to style it\n * > differently.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. Timeouts are still used as a fallback if provided.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func\n} : {}; // Name the function so it is clearer in the documentation\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = UNMOUNTED;\nTransition.EXITED = EXITED;\nTransition.ENTERING = ENTERING;\nTransition.ENTERED = ENTERED;\nTransition.EXITING = EXITING;\nexport default Transition;","export const reflow = node => node.scrollTop;\nexport function getTransitionProps(props, options) {\n const {\n timeout,\n easing,\n style = {}\n } = props;\n return {\n duration: style.transitionDuration ?? (typeof timeout === 'number' ? timeout : timeout[options.mode] || 0),\n easing: style.transitionTimingFunction ?? (typeof easing === 'object' ? easing[options.mode] : easing),\n delay: style.transitionDelay\n };\n}","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getCollapseUtilityClass(slot) {\n return generateUtilityClass('MuiCollapse', slot);\n}\nconst collapseClasses = generateUtilityClasses('MuiCollapse', ['root', 'horizontal', 'vertical', 'entered', 'hidden', 'wrapper', 'wrapperInner']);\nexport default collapseClasses;","'use client';\n\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport { Transition } from 'react-transition-group';\nimport useTimeout from '@mui/utils/useTimeout';\nimport elementTypeAcceptingRef from '@mui/utils/elementTypeAcceptingRef';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { styled, useTheme } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport { duration } from \"../styles/createTransitions.js\";\nimport { getTransitionProps } from \"../transitions/utils.js\";\nimport { useForkRef } from \"../utils/index.js\";\nimport { getCollapseUtilityClass } from \"./collapseClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n orientation,\n classes\n } = ownerState;\n const slots = {\n root: ['root', `${orientation}`],\n entered: ['entered'],\n hidden: ['hidden'],\n wrapper: ['wrapper', `${orientation}`],\n wrapperInner: ['wrapperInner', `${orientation}`]\n };\n return composeClasses(slots, getCollapseUtilityClass, classes);\n};\nconst CollapseRoot = styled('div', {\n name: 'MuiCollapse',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[ownerState.orientation], ownerState.state === 'entered' && styles.entered, ownerState.state === 'exited' && !ownerState.in && ownerState.collapsedSize === '0px' && styles.hidden];\n }\n})(memoTheme(({\n theme\n}) => ({\n height: 0,\n overflow: 'hidden',\n transition: theme.transitions.create('height'),\n variants: [{\n props: {\n orientation: 'horizontal'\n },\n style: {\n height: 'auto',\n width: 0,\n transition: theme.transitions.create('width')\n }\n }, {\n props: {\n state: 'entered'\n },\n style: {\n height: 'auto',\n overflow: 'visible'\n }\n }, {\n props: {\n state: 'entered',\n orientation: 'horizontal'\n },\n style: {\n width: 'auto'\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.state === 'exited' && !ownerState.in && ownerState.collapsedSize === '0px',\n style: {\n visibility: 'hidden'\n }\n }]\n})));\nconst CollapseWrapper = styled('div', {\n name: 'MuiCollapse',\n slot: 'Wrapper',\n overridesResolver: (props, styles) => styles.wrapper\n})({\n // Hack to get children with a negative margin to not falsify the height computation.\n display: 'flex',\n width: '100%',\n variants: [{\n props: {\n orientation: 'horizontal'\n },\n style: {\n width: 'auto',\n height: '100%'\n }\n }]\n});\nconst CollapseWrapperInner = styled('div', {\n name: 'MuiCollapse',\n slot: 'WrapperInner',\n overridesResolver: (props, styles) => styles.wrapperInner\n})({\n width: '100%',\n variants: [{\n props: {\n orientation: 'horizontal'\n },\n style: {\n width: 'auto',\n height: '100%'\n }\n }]\n});\n\n/**\n * The Collapse transition is used by the\n * [Vertical Stepper](/material-ui/react-stepper/#vertical-stepper) StepContent component.\n * It uses [react-transition-group](https://github.com/reactjs/react-transition-group) internally.\n */\nconst Collapse = /*#__PURE__*/React.forwardRef(function Collapse(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiCollapse'\n });\n const {\n addEndListener,\n children,\n className,\n collapsedSize: collapsedSizeProp = '0px',\n component,\n easing,\n in: inProp,\n onEnter,\n onEntered,\n onEntering,\n onExit,\n onExited,\n onExiting,\n orientation = 'vertical',\n style,\n timeout = duration.standard,\n // eslint-disable-next-line react/prop-types\n TransitionComponent = Transition,\n ...other\n } = props;\n const ownerState = {\n ...props,\n orientation,\n collapsedSize: collapsedSizeProp\n };\n const classes = useUtilityClasses(ownerState);\n const theme = useTheme();\n const timer = useTimeout();\n const wrapperRef = React.useRef(null);\n const autoTransitionDuration = React.useRef();\n const collapsedSize = typeof collapsedSizeProp === 'number' ? `${collapsedSizeProp}px` : collapsedSizeProp;\n const isHorizontal = orientation === 'horizontal';\n const size = isHorizontal ? 'width' : 'height';\n const nodeRef = React.useRef(null);\n const handleRef = useForkRef(ref, nodeRef);\n const normalizedTransitionCallback = callback => maybeIsAppearing => {\n if (callback) {\n const node = nodeRef.current;\n\n // onEnterXxx and onExitXxx callbacks have a different arguments.length value.\n if (maybeIsAppearing === undefined) {\n callback(node);\n } else {\n callback(node, maybeIsAppearing);\n }\n }\n };\n const getWrapperSize = () => wrapperRef.current ? wrapperRef.current[isHorizontal ? 'clientWidth' : 'clientHeight'] : 0;\n const handleEnter = normalizedTransitionCallback((node, isAppearing) => {\n if (wrapperRef.current && isHorizontal) {\n // Set absolute position to get the size of collapsed content\n wrapperRef.current.style.position = 'absolute';\n }\n node.style[size] = collapsedSize;\n if (onEnter) {\n onEnter(node, isAppearing);\n }\n });\n const handleEntering = normalizedTransitionCallback((node, isAppearing) => {\n const wrapperSize = getWrapperSize();\n if (wrapperRef.current && isHorizontal) {\n // After the size is read reset the position back to default\n wrapperRef.current.style.position = '';\n }\n const {\n duration: transitionDuration,\n easing: transitionTimingFunction\n } = getTransitionProps({\n style,\n timeout,\n easing\n }, {\n mode: 'enter'\n });\n if (timeout === 'auto') {\n const duration2 = theme.transitions.getAutoHeightDuration(wrapperSize);\n node.style.transitionDuration = `${duration2}ms`;\n autoTransitionDuration.current = duration2;\n } else {\n node.style.transitionDuration = typeof transitionDuration === 'string' ? transitionDuration : `${transitionDuration}ms`;\n }\n node.style[size] = `${wrapperSize}px`;\n node.style.transitionTimingFunction = transitionTimingFunction;\n if (onEntering) {\n onEntering(node, isAppearing);\n }\n });\n const handleEntered = normalizedTransitionCallback((node, isAppearing) => {\n node.style[size] = 'auto';\n if (onEntered) {\n onEntered(node, isAppearing);\n }\n });\n const handleExit = normalizedTransitionCallback(node => {\n node.style[size] = `${getWrapperSize()}px`;\n if (onExit) {\n onExit(node);\n }\n });\n const handleExited = normalizedTransitionCallback(onExited);\n const handleExiting = normalizedTransitionCallback(node => {\n const wrapperSize = getWrapperSize();\n const {\n duration: transitionDuration,\n easing: transitionTimingFunction\n } = getTransitionProps({\n style,\n timeout,\n easing\n }, {\n mode: 'exit'\n });\n if (timeout === 'auto') {\n // TODO: rename getAutoHeightDuration to something more generic (width support)\n // Actually it just calculates animation duration based on size\n const duration2 = theme.transitions.getAutoHeightDuration(wrapperSize);\n node.style.transitionDuration = `${duration2}ms`;\n autoTransitionDuration.current = duration2;\n } else {\n node.style.transitionDuration = typeof transitionDuration === 'string' ? transitionDuration : `${transitionDuration}ms`;\n }\n node.style[size] = collapsedSize;\n node.style.transitionTimingFunction = transitionTimingFunction;\n if (onExiting) {\n onExiting(node);\n }\n });\n const handleAddEndListener = next => {\n if (timeout === 'auto') {\n timer.start(autoTransitionDuration.current || 0, next);\n }\n if (addEndListener) {\n // Old call signature before `react-transition-group` implemented `nodeRef`\n addEndListener(nodeRef.current, next);\n }\n };\n return /*#__PURE__*/_jsx(TransitionComponent, {\n in: inProp,\n onEnter: handleEnter,\n onEntered: handleEntered,\n onEntering: handleEntering,\n onExit: handleExit,\n onExited: handleExited,\n onExiting: handleExiting,\n addEndListener: handleAddEndListener,\n nodeRef: nodeRef,\n timeout: timeout === 'auto' ? null : timeout,\n ...other,\n children: (state, childProps) => /*#__PURE__*/_jsx(CollapseRoot, {\n as: component,\n className: clsx(classes.root, className, {\n 'entered': classes.entered,\n 'exited': !inProp && collapsedSize === '0px' && classes.hidden\n }[state]),\n style: {\n [isHorizontal ? 'minWidth' : 'minHeight']: collapsedSize,\n ...style\n },\n ref: handleRef,\n ...childProps,\n // `ownerState` is set after `childProps` to override any existing `ownerState` property in `childProps`\n // that might have been forwarded from the Transition component.\n ownerState: {\n ...ownerState,\n state\n },\n children: /*#__PURE__*/_jsx(CollapseWrapper, {\n ownerState: {\n ...ownerState,\n state\n },\n className: classes.wrapper,\n ref: wrapperRef,\n children: /*#__PURE__*/_jsx(CollapseWrapperInner, {\n ownerState: {\n ...ownerState,\n state\n },\n className: classes.wrapperInner,\n children: children\n })\n })\n })\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Collapse.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * Add a custom transition end trigger. Called with the transitioning DOM\n * node and a done callback. Allows for more fine grained transition end\n * logic. Note: Timeouts are still used as a fallback if provided.\n */\n addEndListener: PropTypes.func,\n /**\n * The content node to be collapsed.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The width (horizontal) or height (vertical) of the container when collapsed.\n * @default '0px'\n */\n collapsedSize: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: elementTypeAcceptingRef,\n /**\n * The transition timing function.\n * You may specify a single easing or a object containing enter and exit values.\n */\n easing: PropTypes.oneOfType([PropTypes.shape({\n enter: PropTypes.string,\n exit: PropTypes.string\n }), PropTypes.string]),\n /**\n * If `true`, the component will transition in.\n */\n in: PropTypes.bool,\n /**\n * @ignore\n */\n onEnter: PropTypes.func,\n /**\n * @ignore\n */\n onEntered: PropTypes.func,\n /**\n * @ignore\n */\n onEntering: PropTypes.func,\n /**\n * @ignore\n */\n onExit: PropTypes.func,\n /**\n * @ignore\n */\n onExited: PropTypes.func,\n /**\n * @ignore\n */\n onExiting: PropTypes.func,\n /**\n * The transition orientation.\n * @default 'vertical'\n */\n orientation: PropTypes.oneOf(['horizontal', 'vertical']),\n /**\n * @ignore\n */\n style: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The duration for the transition, in milliseconds.\n * You may specify a single timeout for all transitions, or individually with an object.\n *\n * Set to 'auto' to automatically calculate transition time based on height.\n * @default duration.standard\n */\n timeout: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number\n })])\n} : void 0;\nif (Collapse) {\n Collapse.muiSupportAuto = true;\n}\nexport default Collapse;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getPaperUtilityClass(slot) {\n return generateUtilityClass('MuiPaper', slot);\n}\nconst paperClasses = generateUtilityClasses('MuiPaper', ['root', 'rounded', 'outlined', 'elevation', 'elevation0', 'elevation1', 'elevation2', 'elevation3', 'elevation4', 'elevation5', 'elevation6', 'elevation7', 'elevation8', 'elevation9', 'elevation10', 'elevation11', 'elevation12', 'elevation13', 'elevation14', 'elevation15', 'elevation16', 'elevation17', 'elevation18', 'elevation19', 'elevation20', 'elevation21', 'elevation22', 'elevation23', 'elevation24']);\nexport default paperClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport integerPropType from '@mui/utils/integerPropType';\nimport chainPropTypes from '@mui/utils/chainPropTypes';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { alpha } from '@mui/system/colorManipulator';\nimport { styled, useTheme } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport getOverlayAlpha from \"../styles/getOverlayAlpha.js\";\nimport { getPaperUtilityClass } from \"./paperClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n square,\n elevation,\n variant,\n classes\n } = ownerState;\n const slots = {\n root: ['root', variant, !square && 'rounded', variant === 'elevation' && `elevation${elevation}`]\n };\n return composeClasses(slots, getPaperUtilityClass, classes);\n};\nconst PaperRoot = styled('div', {\n name: 'MuiPaper',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[ownerState.variant], !ownerState.square && styles.rounded, ownerState.variant === 'elevation' && styles[`elevation${ownerState.elevation}`]];\n }\n})(memoTheme(({\n theme\n}) => ({\n backgroundColor: (theme.vars || theme).palette.background.paper,\n color: (theme.vars || theme).palette.text.primary,\n transition: theme.transitions.create('box-shadow'),\n variants: [{\n props: ({\n ownerState\n }) => !ownerState.square,\n style: {\n borderRadius: theme.shape.borderRadius\n }\n }, {\n props: {\n variant: 'outlined'\n },\n style: {\n border: `1px solid ${(theme.vars || theme).palette.divider}`\n }\n }, {\n props: {\n variant: 'elevation'\n },\n style: {\n boxShadow: 'var(--Paper-shadow)',\n backgroundImage: 'var(--Paper-overlay)'\n }\n }]\n})));\nconst Paper = /*#__PURE__*/React.forwardRef(function Paper(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiPaper'\n });\n const theme = useTheme();\n const {\n className,\n component = 'div',\n elevation = 1,\n square = false,\n variant = 'elevation',\n ...other\n } = props;\n const ownerState = {\n ...props,\n component,\n elevation,\n square,\n variant\n };\n const classes = useUtilityClasses(ownerState);\n if (process.env.NODE_ENV !== 'production') {\n if (theme.shadows[elevation] === undefined) {\n console.error([`MUI: The elevation provided is not available in the theme.`, `Please make sure that \\`theme.shadows[${elevation}]\\` is defined.`].join('\\n'));\n }\n }\n return /*#__PURE__*/_jsx(PaperRoot, {\n as: component,\n ownerState: ownerState,\n className: clsx(classes.root, className),\n ref: ref,\n ...other,\n style: {\n ...(variant === 'elevation' && {\n '--Paper-shadow': (theme.vars || theme).shadows[elevation],\n ...(theme.vars && {\n '--Paper-overlay': theme.vars.overlays?.[elevation]\n }),\n ...(!theme.vars && theme.palette.mode === 'dark' && {\n '--Paper-overlay': `linear-gradient(${alpha('#fff', getOverlayAlpha(elevation))}, ${alpha('#fff', getOverlayAlpha(elevation))})`\n })\n }),\n ...other.style\n }\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Paper.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * Shadow depth, corresponds to `dp` in the spec.\n * It accepts values between 0 and 24 inclusive.\n * @default 1\n */\n elevation: chainPropTypes(integerPropType, props => {\n const {\n elevation,\n variant\n } = props;\n if (elevation > 0 && variant === 'outlined') {\n return new Error(`MUI: Combining \\`elevation={${elevation}}\\` with \\`variant=\"${variant}\"\\` has no effect. Either use \\`elevation={0}\\` or use a different \\`variant\\`.`);\n }\n return null;\n }),\n /**\n * If `true`, rounded corners are disabled.\n * @default false\n */\n square: PropTypes.bool,\n /**\n * @ignore\n */\n style: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The variant to use.\n * @default 'elevation'\n */\n variant: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['elevation', 'outlined']), PropTypes.string])\n} : void 0;\nexport default Paper;","'use client';\n\nimport * as React from 'react';\n\n/**\n * @ignore - internal component.\n * @type {React.Context<{} | {expanded: boolean, disabled: boolean, toggle: () => void}>}\n */\nconst AccordionContext = /*#__PURE__*/React.createContext({});\nif (process.env.NODE_ENV !== 'production') {\n AccordionContext.displayName = 'AccordionContext';\n}\nexport default AccordionContext;","'use client';\n\nimport useControlled from '@mui/utils/useControlled';\nexport default useControlled;","'use client';\n\n// TODO: uncomment once we enable eslint-plugin-react-compiler // eslint-disable-next-line react-compiler/react-compiler -- process.env never changes, dependency arrays are intentionally ignored\n/* eslint-disable react-hooks/rules-of-hooks, react-hooks/exhaustive-deps */\nimport * as React from 'react';\nexport default function useControlled({\n controlled,\n default: defaultProp,\n name,\n state = 'value'\n}) {\n // isControlled is ignored in the hook dependency lists as it should never change.\n const {\n current: isControlled\n } = React.useRef(controlled !== undefined);\n const [valueState, setValue] = React.useState(defaultProp);\n const value = isControlled ? controlled : valueState;\n if (process.env.NODE_ENV !== 'production') {\n React.useEffect(() => {\n if (isControlled !== (controlled !== undefined)) {\n console.error([`MUI: A component is changing the ${isControlled ? '' : 'un'}controlled ${state} state of ${name} to be ${isControlled ? 'un' : ''}controlled.`, 'Elements should not switch from uncontrolled to controlled (or vice versa).', `Decide between using a controlled or uncontrolled ${name} ` + 'element for the lifetime of the component.', \"The nature of the state is determined during the first render. It's considered controlled if the value is not `undefined`.\", 'More info: https://fb.me/react-controlled-components'].join('\\n'));\n }\n }, [state, name, controlled]);\n const {\n current: defaultValue\n } = React.useRef(defaultProp);\n React.useEffect(() => {\n // Object.is() is not equivalent to the === operator.\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is for more details.\n if (!isControlled && !Object.is(defaultValue, defaultProp)) {\n console.error([`MUI: A component is changing the default ${state} state of an uncontrolled ${name} after being initialized. ` + `To suppress this warning opt to use a controlled ${name}.`].join('\\n'));\n }\n }, [JSON.stringify(defaultProp)]);\n }\n const setValueIfUncontrolled = React.useCallback(newValue => {\n if (!isControlled) {\n setValue(newValue);\n }\n }, []);\n return [value, setValueIfUncontrolled];\n}","/**\n * Determines if a given element is a DOM element name (i.e. not a React component).\n */\nfunction isHostComponent(element) {\n return typeof element === 'string';\n}\nexport default isHostComponent;","import isHostComponent from \"../isHostComponent/index.js\";\n\n/**\n * Type of the ownerState based on the type of an element it applies to.\n * This resolves to the provided OwnerState for React components and `undefined` for host components.\n * Falls back to `OwnerState | undefined` when the exact type can't be determined in development time.\n */\n\n/**\n * Appends the ownerState object to the props, merging with the existing one if necessary.\n *\n * @param elementType Type of the element that owns the `existingProps`. If the element is a DOM node or undefined, `ownerState` is not applied.\n * @param otherProps Props of the element.\n * @param ownerState\n */\nfunction appendOwnerState(elementType, otherProps, ownerState) {\n if (elementType === undefined || isHostComponent(elementType)) {\n return otherProps;\n }\n return {\n ...otherProps,\n ownerState: {\n ...otherProps.ownerState,\n ...ownerState\n }\n };\n}\nexport default appendOwnerState;","/**\n * If `componentProps` is a function, calls it with the provided `ownerState`.\n * Otherwise, just returns `componentProps`.\n */\nfunction resolveComponentProps(componentProps, ownerState, slotState) {\n if (typeof componentProps === 'function') {\n return componentProps(ownerState, slotState);\n }\n return componentProps;\n}\nexport default resolveComponentProps;","/**\n * Extracts event handlers from a given object.\n * A prop is considered an event handler if it is a function and its name starts with `on`.\n *\n * @param object An object to extract event handlers from.\n * @param excludeKeys An array of keys to exclude from the returned object.\n */\nfunction extractEventHandlers(object, excludeKeys = []) {\n if (object === undefined) {\n return {};\n }\n const result = {};\n Object.keys(object).filter(prop => prop.match(/^on[A-Z]/) && typeof object[prop] === 'function' && !excludeKeys.includes(prop)).forEach(prop => {\n result[prop] = object[prop];\n });\n return result;\n}\nexport default extractEventHandlers;","/**\n * Removes event handlers from the given object.\n * A field is considered an event handler if it is a function with a name beginning with `on`.\n *\n * @param object Object to remove event handlers from.\n * @returns Object with event handlers removed.\n */\nfunction omitEventHandlers(object) {\n if (object === undefined) {\n return {};\n }\n const result = {};\n Object.keys(object).filter(prop => !(prop.match(/^on[A-Z]/) && typeof object[prop] === 'function')).forEach(prop => {\n result[prop] = object[prop];\n });\n return result;\n}\nexport default omitEventHandlers;","import clsx from 'clsx';\nimport extractEventHandlers from \"../extractEventHandlers/index.js\";\nimport omitEventHandlers from \"../omitEventHandlers/index.js\";\n/**\n * Merges the slot component internal props (usually coming from a hook)\n * with the externally provided ones.\n *\n * The merge order is (the latter overrides the former):\n * 1. The internal props (specified as a getter function to work with get*Props hook result)\n * 2. Additional props (specified internally on a Base UI component)\n * 3. External props specified on the owner component. These should only be used on a root slot.\n * 4. External props specified in the `slotProps.*` prop.\n * 5. The `className` prop - combined from all the above.\n * @param parameters\n * @returns\n */\nfunction mergeSlotProps(parameters) {\n const {\n getSlotProps,\n additionalProps,\n externalSlotProps,\n externalForwardedProps,\n className\n } = parameters;\n if (!getSlotProps) {\n // The simpler case - getSlotProps is not defined, so no internal event handlers are defined,\n // so we can simply merge all the props without having to worry about extracting event handlers.\n const joinedClasses = clsx(additionalProps?.className, className, externalForwardedProps?.className, externalSlotProps?.className);\n const mergedStyle = {\n ...additionalProps?.style,\n ...externalForwardedProps?.style,\n ...externalSlotProps?.style\n };\n const props = {\n ...additionalProps,\n ...externalForwardedProps,\n ...externalSlotProps\n };\n if (joinedClasses.length > 0) {\n props.className = joinedClasses;\n }\n if (Object.keys(mergedStyle).length > 0) {\n props.style = mergedStyle;\n }\n return {\n props,\n internalRef: undefined\n };\n }\n\n // In this case, getSlotProps is responsible for calling the external event handlers.\n // We don't need to include them in the merged props because of this.\n\n const eventHandlers = extractEventHandlers({\n ...externalForwardedProps,\n ...externalSlotProps\n });\n const componentsPropsWithoutEventHandlers = omitEventHandlers(externalSlotProps);\n const otherPropsWithoutEventHandlers = omitEventHandlers(externalForwardedProps);\n const internalSlotProps = getSlotProps(eventHandlers);\n\n // The order of classes is important here.\n // Emotion (that we use in libraries consuming Base UI) depends on this order\n // to properly override style. It requires the most important classes to be last\n // (see https://github.com/mui/material-ui/pull/33205) for the related discussion.\n const joinedClasses = clsx(internalSlotProps?.className, additionalProps?.className, className, externalForwardedProps?.className, externalSlotProps?.className);\n const mergedStyle = {\n ...internalSlotProps?.style,\n ...additionalProps?.style,\n ...externalForwardedProps?.style,\n ...externalSlotProps?.style\n };\n const props = {\n ...internalSlotProps,\n ...additionalProps,\n ...otherPropsWithoutEventHandlers,\n ...componentsPropsWithoutEventHandlers\n };\n if (joinedClasses.length > 0) {\n props.className = joinedClasses;\n }\n if (Object.keys(mergedStyle).length > 0) {\n props.style = mergedStyle;\n }\n return {\n props,\n internalRef: internalSlotProps.ref\n };\n}\nexport default mergeSlotProps;","'use client';\n\nimport useForkRef from '@mui/utils/useForkRef';\nimport appendOwnerState from '@mui/utils/appendOwnerState';\nimport resolveComponentProps from '@mui/utils/resolveComponentProps';\nimport mergeSlotProps from '@mui/utils/mergeSlotProps';\n/**\n * An internal function to create a Material UI slot.\n *\n * This is an advanced version of Base UI `useSlotProps` because Material UI allows leaf component to be customized via `component` prop\n * while Base UI does not need to support leaf component customization.\n *\n * @param {string} name: name of the slot\n * @param {object} parameters\n * @returns {[Slot, slotProps]} The slot's React component and the slot's props\n *\n * Note: the returned slot's props\n * - will never contain `component` prop.\n * - might contain `as` prop.\n */\nexport default function useSlot(\n/**\n * The slot's name. All Material UI components should have `root` slot.\n *\n * If the name is `root`, the logic behaves differently from other slots,\n * e.g. the `externalForwardedProps` are spread to `root` slot but not other slots.\n */\nname, parameters) {\n const {\n className,\n elementType: initialElementType,\n ownerState,\n externalForwardedProps,\n getSlotOwnerState,\n internalForwardedProps,\n ...useSlotPropsParams\n } = parameters;\n const {\n component: rootComponent,\n slots = {\n [name]: undefined\n },\n slotProps = {\n [name]: undefined\n },\n ...other\n } = externalForwardedProps;\n const elementType = slots[name] || initialElementType;\n\n // `slotProps[name]` can be a callback that receives the component's ownerState.\n // `resolvedComponentsProps` is always a plain object.\n const resolvedComponentsProps = resolveComponentProps(slotProps[name], ownerState);\n const {\n props: {\n component: slotComponent,\n ...mergedProps\n },\n internalRef\n } = mergeSlotProps({\n className,\n ...useSlotPropsParams,\n externalForwardedProps: name === 'root' ? other : undefined,\n externalSlotProps: resolvedComponentsProps\n });\n const ref = useForkRef(internalRef, resolvedComponentsProps?.ref, parameters.ref);\n const slotOwnerState = getSlotOwnerState ? getSlotOwnerState(mergedProps) : {};\n const finalOwnerState = {\n ...ownerState,\n ...slotOwnerState\n };\n const LeafComponent = name === 'root' ? slotComponent || rootComponent : slotComponent;\n const props = appendOwnerState(elementType, {\n ...(name === 'root' && !rootComponent && !slots[name] && internalForwardedProps),\n ...(name !== 'root' && !slots[name] && internalForwardedProps),\n ...mergedProps,\n ...(LeafComponent && {\n as: LeafComponent\n }),\n ref\n }, finalOwnerState);\n Object.keys(slotOwnerState).forEach(propName => {\n delete props[propName];\n });\n return [elementType, props];\n}","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getAccordionUtilityClass(slot) {\n return generateUtilityClass('MuiAccordion', slot);\n}\nconst accordionClasses = generateUtilityClasses('MuiAccordion', ['root', 'heading', 'rounded', 'expanded', 'disabled', 'gutters', 'region']);\nexport default accordionClasses;","'use client';\n\nimport * as React from 'react';\nimport { isFragment } from 'react-is';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport chainPropTypes from '@mui/utils/chainPropTypes';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport Collapse from \"../Collapse/index.js\";\nimport Paper from \"../Paper/index.js\";\nimport AccordionContext from \"./AccordionContext.js\";\nimport useControlled from \"../utils/useControlled.js\";\nimport useSlot from \"../utils/useSlot.js\";\nimport accordionClasses, { getAccordionUtilityClass } from \"./accordionClasses.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n square,\n expanded,\n disabled,\n disableGutters\n } = ownerState;\n const slots = {\n root: ['root', !square && 'rounded', expanded && 'expanded', disabled && 'disabled', !disableGutters && 'gutters'],\n heading: ['heading'],\n region: ['region']\n };\n return composeClasses(slots, getAccordionUtilityClass, classes);\n};\nconst AccordionRoot = styled(Paper, {\n name: 'MuiAccordion',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [{\n [`& .${accordionClasses.region}`]: styles.region\n }, styles.root, !ownerState.square && styles.rounded, !ownerState.disableGutters && styles.gutters];\n }\n})(memoTheme(({\n theme\n}) => {\n const transition = {\n duration: theme.transitions.duration.shortest\n };\n return {\n position: 'relative',\n transition: theme.transitions.create(['margin'], transition),\n overflowAnchor: 'none',\n // Keep the same scrolling position\n '&::before': {\n position: 'absolute',\n left: 0,\n top: -1,\n right: 0,\n height: 1,\n content: '\"\"',\n opacity: 1,\n backgroundColor: (theme.vars || theme).palette.divider,\n transition: theme.transitions.create(['opacity', 'background-color'], transition)\n },\n '&:first-of-type': {\n '&::before': {\n display: 'none'\n }\n },\n [`&.${accordionClasses.expanded}`]: {\n '&::before': {\n opacity: 0\n },\n '&:first-of-type': {\n marginTop: 0\n },\n '&:last-of-type': {\n marginBottom: 0\n },\n '& + &': {\n '&::before': {\n display: 'none'\n }\n }\n },\n [`&.${accordionClasses.disabled}`]: {\n backgroundColor: (theme.vars || theme).palette.action.disabledBackground\n }\n };\n}), memoTheme(({\n theme\n}) => ({\n variants: [{\n props: props => !props.square,\n style: {\n borderRadius: 0,\n '&:first-of-type': {\n borderTopLeftRadius: (theme.vars || theme).shape.borderRadius,\n borderTopRightRadius: (theme.vars || theme).shape.borderRadius\n },\n '&:last-of-type': {\n borderBottomLeftRadius: (theme.vars || theme).shape.borderRadius,\n borderBottomRightRadius: (theme.vars || theme).shape.borderRadius,\n // Fix a rendering issue on Edge\n '@supports (-ms-ime-align: auto)': {\n borderBottomLeftRadius: 0,\n borderBottomRightRadius: 0\n }\n }\n }\n }, {\n props: props => !props.disableGutters,\n style: {\n [`&.${accordionClasses.expanded}`]: {\n margin: '16px 0'\n }\n }\n }]\n})));\nconst AccordionHeading = styled('h3', {\n name: 'MuiAccordion',\n slot: 'Heading',\n overridesResolver: (props, styles) => styles.heading\n})({\n all: 'unset'\n});\nconst Accordion = /*#__PURE__*/React.forwardRef(function Accordion(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiAccordion'\n });\n const {\n children: childrenProp,\n className,\n defaultExpanded = false,\n disabled = false,\n disableGutters = false,\n expanded: expandedProp,\n onChange,\n square = false,\n slots = {},\n slotProps = {},\n TransitionComponent: TransitionComponentProp,\n TransitionProps: TransitionPropsProp,\n ...other\n } = props;\n const [expanded, setExpandedState] = useControlled({\n controlled: expandedProp,\n default: defaultExpanded,\n name: 'Accordion',\n state: 'expanded'\n });\n const handleChange = React.useCallback(event => {\n setExpandedState(!expanded);\n if (onChange) {\n onChange(event, !expanded);\n }\n }, [expanded, onChange, setExpandedState]);\n const [summary, ...children] = React.Children.toArray(childrenProp);\n const contextValue = React.useMemo(() => ({\n expanded,\n disabled,\n disableGutters,\n toggle: handleChange\n }), [expanded, disabled, disableGutters, handleChange]);\n const ownerState = {\n ...props,\n square,\n disabled,\n disableGutters,\n expanded\n };\n const classes = useUtilityClasses(ownerState);\n const backwardCompatibleSlots = {\n transition: TransitionComponentProp,\n ...slots\n };\n const backwardCompatibleSlotProps = {\n transition: TransitionPropsProp,\n ...slotProps\n };\n const externalForwardedProps = {\n slots: backwardCompatibleSlots,\n slotProps: backwardCompatibleSlotProps\n };\n const [AccordionHeadingSlot, accordionProps] = useSlot('heading', {\n elementType: AccordionHeading,\n externalForwardedProps,\n className: classes.heading,\n ownerState\n });\n const [TransitionSlot, transitionProps] = useSlot('transition', {\n elementType: Collapse,\n externalForwardedProps,\n ownerState\n });\n return /*#__PURE__*/_jsxs(AccordionRoot, {\n className: clsx(classes.root, className),\n ref: ref,\n ownerState: ownerState,\n square: square,\n ...other,\n children: [/*#__PURE__*/_jsx(AccordionHeadingSlot, {\n ...accordionProps,\n children: /*#__PURE__*/_jsx(AccordionContext.Provider, {\n value: contextValue,\n children: summary\n })\n }), /*#__PURE__*/_jsx(TransitionSlot, {\n in: expanded,\n timeout: \"auto\",\n ...transitionProps,\n children: /*#__PURE__*/_jsx(\"div\", {\n \"aria-labelledby\": summary.props.id,\n id: summary.props['aria-controls'],\n role: \"region\",\n className: classes.region,\n children: children\n })\n })]\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Accordion.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: chainPropTypes(PropTypes.node.isRequired, props => {\n const summary = React.Children.toArray(props.children)[0];\n if (isFragment(summary)) {\n return new Error(\"MUI: The Accordion doesn't accept a Fragment as a child. \" + 'Consider providing an array instead.');\n }\n if (! /*#__PURE__*/React.isValidElement(summary)) {\n return new Error('MUI: Expected the first child of Accordion to be a valid element.');\n }\n return null;\n }),\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * If `true`, expands the accordion by default.\n * @default false\n */\n defaultExpanded: PropTypes.bool,\n /**\n * If `true`, the component is disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, it removes the margin between two expanded accordion items and the increase of height.\n * @default false\n */\n disableGutters: PropTypes.bool,\n /**\n * If `true`, expands the accordion, otherwise collapse it.\n * Setting this prop enables control over the accordion.\n */\n expanded: PropTypes.bool,\n /**\n * Callback fired when the expand/collapse state is changed.\n *\n * @param {React.SyntheticEvent} event The event source of the callback. **Warning**: This is a generic event not a change event.\n * @param {boolean} expanded The `expanded` state of the accordion.\n */\n onChange: PropTypes.func,\n /**\n * The props used for each slot inside.\n * @default {}\n */\n slotProps: PropTypes.shape({\n heading: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n transition: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The components used for each slot inside.\n * @default {}\n */\n slots: PropTypes.shape({\n heading: PropTypes.elementType,\n transition: PropTypes.elementType\n }),\n /**\n * If `true`, rounded corners are disabled.\n * @default false\n */\n square: PropTypes.bool,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The component used for the transition.\n * [Follow this guide](https://mui.com/material-ui/transitions/#transitioncomponent-prop) to learn more about the requirements for this component.\n */\n TransitionComponent: PropTypes.elementType,\n /**\n * Props applied to the transition element.\n * By default, the element is based on this [`Transition`](https://reactcommunity.org/react-transition-group/transition/) component.\n */\n TransitionProps: PropTypes.object\n} : void 0;\nexport default Accordion;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getAccordionSummaryUtilityClass(slot) {\n return generateUtilityClass('MuiAccordionSummary', slot);\n}\nconst accordionSummaryClasses = generateUtilityClasses('MuiAccordionSummary', ['root', 'expanded', 'focusVisible', 'disabled', 'gutters', 'contentGutters', 'content', 'expandIconWrapper']);\nexport default accordionSummaryClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport ButtonBase from \"../ButtonBase/index.js\";\nimport AccordionContext from \"../Accordion/AccordionContext.js\";\nimport accordionSummaryClasses, { getAccordionSummaryUtilityClass } from \"./accordionSummaryClasses.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n expanded,\n disabled,\n disableGutters\n } = ownerState;\n const slots = {\n root: ['root', expanded && 'expanded', disabled && 'disabled', !disableGutters && 'gutters'],\n focusVisible: ['focusVisible'],\n content: ['content', expanded && 'expanded', !disableGutters && 'contentGutters'],\n expandIconWrapper: ['expandIconWrapper', expanded && 'expanded']\n };\n return composeClasses(slots, getAccordionSummaryUtilityClass, classes);\n};\nconst AccordionSummaryRoot = styled(ButtonBase, {\n name: 'MuiAccordionSummary',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})(memoTheme(({\n theme\n}) => {\n const transition = {\n duration: theme.transitions.duration.shortest\n };\n return {\n display: 'flex',\n minHeight: 48,\n padding: theme.spacing(0, 2),\n transition: theme.transitions.create(['min-height', 'background-color'], transition),\n [`&.${accordionSummaryClasses.focusVisible}`]: {\n backgroundColor: (theme.vars || theme).palette.action.focus\n },\n [`&.${accordionSummaryClasses.disabled}`]: {\n opacity: (theme.vars || theme).palette.action.disabledOpacity\n },\n [`&:hover:not(.${accordionSummaryClasses.disabled})`]: {\n cursor: 'pointer'\n },\n variants: [{\n props: props => !props.disableGutters,\n style: {\n [`&.${accordionSummaryClasses.expanded}`]: {\n minHeight: 64\n }\n }\n }]\n };\n}));\nconst AccordionSummaryContent = styled('div', {\n name: 'MuiAccordionSummary',\n slot: 'Content',\n overridesResolver: (props, styles) => styles.content\n})(memoTheme(({\n theme\n}) => ({\n display: 'flex',\n flexGrow: 1,\n margin: '12px 0',\n variants: [{\n props: props => !props.disableGutters,\n style: {\n transition: theme.transitions.create(['margin'], {\n duration: theme.transitions.duration.shortest\n }),\n [`&.${accordionSummaryClasses.expanded}`]: {\n margin: '20px 0'\n }\n }\n }]\n})));\nconst AccordionSummaryExpandIconWrapper = styled('div', {\n name: 'MuiAccordionSummary',\n slot: 'ExpandIconWrapper',\n overridesResolver: (props, styles) => styles.expandIconWrapper\n})(memoTheme(({\n theme\n}) => ({\n display: 'flex',\n color: (theme.vars || theme).palette.action.active,\n transform: 'rotate(0deg)',\n transition: theme.transitions.create('transform', {\n duration: theme.transitions.duration.shortest\n }),\n [`&.${accordionSummaryClasses.expanded}`]: {\n transform: 'rotate(180deg)'\n }\n})));\nconst AccordionSummary = /*#__PURE__*/React.forwardRef(function AccordionSummary(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiAccordionSummary'\n });\n const {\n children,\n className,\n expandIcon,\n focusVisibleClassName,\n onClick,\n ...other\n } = props;\n const {\n disabled = false,\n disableGutters,\n expanded,\n toggle\n } = React.useContext(AccordionContext);\n const handleChange = event => {\n if (toggle) {\n toggle(event);\n }\n if (onClick) {\n onClick(event);\n }\n };\n const ownerState = {\n ...props,\n expanded,\n disabled,\n disableGutters\n };\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsxs(AccordionSummaryRoot, {\n focusRipple: false,\n disableRipple: true,\n disabled: disabled,\n component: \"div\",\n \"aria-expanded\": expanded,\n className: clsx(classes.root, className),\n focusVisibleClassName: clsx(classes.focusVisible, focusVisibleClassName),\n onClick: handleChange,\n ref: ref,\n ownerState: ownerState,\n ...other,\n children: [/*#__PURE__*/_jsx(AccordionSummaryContent, {\n className: classes.content,\n ownerState: ownerState,\n children: children\n }), expandIcon && /*#__PURE__*/_jsx(AccordionSummaryExpandIconWrapper, {\n className: classes.expandIconWrapper,\n ownerState: ownerState,\n children: expandIcon\n })]\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? AccordionSummary.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The icon to display as the expand indicator.\n */\n expandIcon: PropTypes.node,\n /**\n * This prop can help identify which element has keyboard focus.\n * The class name will be applied when the element gains the focus through keyboard interaction.\n * It's a polyfill for the [CSS :focus-visible selector](https://drafts.csswg.org/selectors-4/#the-focus-visible-pseudo).\n * The rationale for using this feature [is explained here](https://github.com/WICG/focus-visible/blob/HEAD/explainer.md).\n * A [polyfill can be used](https://github.com/WICG/focus-visible) to apply a `focus-visible` class to other components\n * if needed.\n */\n focusVisibleClassName: PropTypes.string,\n /**\n * @ignore\n */\n onClick: PropTypes.func,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default AccordionSummary;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getAccordionDetailsUtilityClass(slot) {\n return generateUtilityClass('MuiAccordionDetails', slot);\n}\nconst accordionDetailsClasses = generateUtilityClasses('MuiAccordionDetails', ['root']);\nexport default accordionDetailsClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport { getAccordionDetailsUtilityClass } from \"./accordionDetailsClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getAccordionDetailsUtilityClass, classes);\n};\nconst AccordionDetailsRoot = styled('div', {\n name: 'MuiAccordionDetails',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})(memoTheme(({\n theme\n}) => ({\n padding: theme.spacing(1, 2, 2)\n})));\nconst AccordionDetails = /*#__PURE__*/React.forwardRef(function AccordionDetails(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiAccordionDetails'\n });\n const {\n className,\n ...other\n } = props;\n const ownerState = props;\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(AccordionDetailsRoot, {\n className: clsx(classes.root, className),\n ref: ref,\n ownerState: ownerState,\n ...other\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? AccordionDetails.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default AccordionDetails;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getTableContainerUtilityClass(slot) {\n return generateUtilityClass('MuiTableContainer', slot);\n}\nconst tableContainerClasses = generateUtilityClasses('MuiTableContainer', ['root']);\nexport default tableContainerClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { styled } from \"../zero-styled/index.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport { getTableContainerUtilityClass } from \"./tableContainerClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getTableContainerUtilityClass, classes);\n};\nconst TableContainerRoot = styled('div', {\n name: 'MuiTableContainer',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n width: '100%',\n overflowX: 'auto'\n});\nconst TableContainer = /*#__PURE__*/React.forwardRef(function TableContainer(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiTableContainer'\n });\n const {\n className,\n component = 'div',\n ...other\n } = props;\n const ownerState = {\n ...props,\n component\n };\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(TableContainerRoot, {\n ref: ref,\n as: component,\n className: clsx(classes.root, className),\n ownerState: ownerState,\n ...other\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? TableContainer.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component, normally `Table`.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default TableContainer;","'use client';\n\nimport * as React from 'react';\n\n/**\n * @ignore - internal component.\n */\nconst TableContext = /*#__PURE__*/React.createContext();\nif (process.env.NODE_ENV !== 'production') {\n TableContext.displayName = 'TableContext';\n}\nexport default TableContext;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getTableUtilityClass(slot) {\n return generateUtilityClass('MuiTable', slot);\n}\nconst tableClasses = generateUtilityClasses('MuiTable', ['root', 'stickyHeader']);\nexport default tableClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport TableContext from \"./TableContext.js\";\nimport { styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport { getTableUtilityClass } from \"./tableClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n stickyHeader\n } = ownerState;\n const slots = {\n root: ['root', stickyHeader && 'stickyHeader']\n };\n return composeClasses(slots, getTableUtilityClass, classes);\n};\nconst TableRoot = styled('table', {\n name: 'MuiTable',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.stickyHeader && styles.stickyHeader];\n }\n})(memoTheme(({\n theme\n}) => ({\n display: 'table',\n width: '100%',\n borderCollapse: 'collapse',\n borderSpacing: 0,\n '& caption': {\n ...theme.typography.body2,\n padding: theme.spacing(2),\n color: (theme.vars || theme).palette.text.secondary,\n textAlign: 'left',\n captionSide: 'bottom'\n },\n variants: [{\n props: ({\n ownerState\n }) => ownerState.stickyHeader,\n style: {\n borderCollapse: 'separate'\n }\n }]\n})));\nconst defaultComponent = 'table';\nconst Table = /*#__PURE__*/React.forwardRef(function Table(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiTable'\n });\n const {\n className,\n component = defaultComponent,\n padding = 'normal',\n size = 'medium',\n stickyHeader = false,\n ...other\n } = props;\n const ownerState = {\n ...props,\n component,\n padding,\n size,\n stickyHeader\n };\n const classes = useUtilityClasses(ownerState);\n const table = React.useMemo(() => ({\n padding,\n size,\n stickyHeader\n }), [padding, size, stickyHeader]);\n return /*#__PURE__*/_jsx(TableContext.Provider, {\n value: table,\n children: /*#__PURE__*/_jsx(TableRoot, {\n as: component,\n role: component === defaultComponent ? null : 'table',\n ref: ref,\n className: clsx(classes.root, className),\n ownerState: ownerState,\n ...other\n })\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Table.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the table, normally `TableHead` and `TableBody`.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * Allows TableCells to inherit padding of the Table.\n * @default 'normal'\n */\n padding: PropTypes.oneOf(['checkbox', 'none', 'normal']),\n /**\n * Allows TableCells to inherit size of the Table.\n * @default 'medium'\n */\n size: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['medium', 'small']), PropTypes.string]),\n /**\n * Set the header sticky.\n * @default false\n */\n stickyHeader: PropTypes.bool,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default Table;","import * as React from 'react';\n\n/**\n * @ignore - internal component.\n */\nconst Tablelvl2Context = /*#__PURE__*/React.createContext();\nif (process.env.NODE_ENV !== 'production') {\n Tablelvl2Context.displayName = 'Tablelvl2Context';\n}\nexport default Tablelvl2Context;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getTableHeadUtilityClass(slot) {\n return generateUtilityClass('MuiTableHead', slot);\n}\nconst tableHeadClasses = generateUtilityClasses('MuiTableHead', ['root']);\nexport default tableHeadClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport Tablelvl2Context from \"../Table/Tablelvl2Context.js\";\nimport { styled } from \"../zero-styled/index.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport { getTableHeadUtilityClass } from \"./tableHeadClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getTableHeadUtilityClass, classes);\n};\nconst TableHeadRoot = styled('thead', {\n name: 'MuiTableHead',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n display: 'table-header-group'\n});\nconst tablelvl2 = {\n variant: 'head'\n};\nconst defaultComponent = 'thead';\nconst TableHead = /*#__PURE__*/React.forwardRef(function TableHead(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiTableHead'\n });\n const {\n className,\n component = defaultComponent,\n ...other\n } = props;\n const ownerState = {\n ...props,\n component\n };\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(Tablelvl2Context.Provider, {\n value: tablelvl2,\n children: /*#__PURE__*/_jsx(TableHeadRoot, {\n as: component,\n className: clsx(classes.root, className),\n ref: ref,\n role: component === defaultComponent ? null : 'rowgroup',\n ownerState: ownerState,\n ...other\n })\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? TableHead.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component, normally `TableRow`.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default TableHead;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getTableRowUtilityClass(slot) {\n return generateUtilityClass('MuiTableRow', slot);\n}\nconst tableRowClasses = generateUtilityClasses('MuiTableRow', ['root', 'selected', 'hover', 'head', 'footer']);\nexport default tableRowClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { alpha } from '@mui/system/colorManipulator';\nimport Tablelvl2Context from \"../Table/Tablelvl2Context.js\";\nimport { styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport tableRowClasses, { getTableRowUtilityClass } from \"./tableRowClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n selected,\n hover,\n head,\n footer\n } = ownerState;\n const slots = {\n root: ['root', selected && 'selected', hover && 'hover', head && 'head', footer && 'footer']\n };\n return composeClasses(slots, getTableRowUtilityClass, classes);\n};\nconst TableRowRoot = styled('tr', {\n name: 'MuiTableRow',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.head && styles.head, ownerState.footer && styles.footer];\n }\n})(memoTheme(({\n theme\n}) => ({\n color: 'inherit',\n display: 'table-row',\n verticalAlign: 'middle',\n // We disable the focus ring for mouse, touch and keyboard users.\n outline: 0,\n [`&.${tableRowClasses.hover}:hover`]: {\n backgroundColor: (theme.vars || theme).palette.action.hover\n },\n [`&.${tableRowClasses.selected}`]: {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / ${theme.vars.palette.action.selectedOpacity})` : alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity),\n '&:hover': {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / calc(${theme.vars.palette.action.selectedOpacity} + ${theme.vars.palette.action.hoverOpacity}))` : alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity + theme.palette.action.hoverOpacity)\n }\n }\n})));\nconst defaultComponent = 'tr';\n/**\n * Will automatically set dynamic row height\n * based on the material table element parent (head, body, etc).\n */\nconst TableRow = /*#__PURE__*/React.forwardRef(function TableRow(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiTableRow'\n });\n const {\n className,\n component = defaultComponent,\n hover = false,\n selected = false,\n ...other\n } = props;\n const tablelvl2 = React.useContext(Tablelvl2Context);\n const ownerState = {\n ...props,\n component,\n hover,\n selected,\n head: tablelvl2 && tablelvl2.variant === 'head',\n footer: tablelvl2 && tablelvl2.variant === 'footer'\n };\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(TableRowRoot, {\n as: component,\n ref: ref,\n className: clsx(classes.root, className),\n role: component === defaultComponent ? null : 'row',\n ownerState: ownerState,\n ...other\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? TableRow.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * Should be valid `` children such as `TableCell`.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * If `true`, the table row will shade on hover.\n * @default false\n */\n hover: PropTypes.bool,\n /**\n * If `true`, the table row will have the selected shading.\n * @default false\n */\n selected: PropTypes.bool,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default TableRow;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getTableCellUtilityClass(slot) {\n return generateUtilityClass('MuiTableCell', slot);\n}\nconst tableCellClasses = generateUtilityClasses('MuiTableCell', ['root', 'head', 'body', 'footer', 'sizeSmall', 'sizeMedium', 'paddingCheckbox', 'paddingNone', 'alignLeft', 'alignCenter', 'alignRight', 'alignJustify', 'stickyHeader']);\nexport default tableCellClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { darken, alpha, lighten } from '@mui/system/colorManipulator';\nimport capitalize from \"../utils/capitalize.js\";\nimport TableContext from \"../Table/TableContext.js\";\nimport Tablelvl2Context from \"../Table/Tablelvl2Context.js\";\nimport { styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport tableCellClasses, { getTableCellUtilityClass } from \"./tableCellClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n variant,\n align,\n padding,\n size,\n stickyHeader\n } = ownerState;\n const slots = {\n root: ['root', variant, stickyHeader && 'stickyHeader', align !== 'inherit' && `align${capitalize(align)}`, padding !== 'normal' && `padding${capitalize(padding)}`, `size${capitalize(size)}`]\n };\n return composeClasses(slots, getTableCellUtilityClass, classes);\n};\nconst TableCellRoot = styled('td', {\n name: 'MuiTableCell',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[ownerState.variant], styles[`size${capitalize(ownerState.size)}`], ownerState.padding !== 'normal' && styles[`padding${capitalize(ownerState.padding)}`], ownerState.align !== 'inherit' && styles[`align${capitalize(ownerState.align)}`], ownerState.stickyHeader && styles.stickyHeader];\n }\n})(memoTheme(({\n theme\n}) => ({\n ...theme.typography.body2,\n display: 'table-cell',\n verticalAlign: 'inherit',\n // Workaround for a rendering bug with spanned columns in Chrome 62.0.\n // Removes the alpha (sets it to 1), and lightens or darkens the theme color.\n borderBottom: theme.vars ? `1px solid ${theme.vars.palette.TableCell.border}` : `1px solid\n ${theme.palette.mode === 'light' ? lighten(alpha(theme.palette.divider, 1), 0.88) : darken(alpha(theme.palette.divider, 1), 0.68)}`,\n textAlign: 'left',\n padding: 16,\n variants: [{\n props: {\n variant: 'head'\n },\n style: {\n color: (theme.vars || theme).palette.text.primary,\n lineHeight: theme.typography.pxToRem(24),\n fontWeight: theme.typography.fontWeightMedium\n }\n }, {\n props: {\n variant: 'body'\n },\n style: {\n color: (theme.vars || theme).palette.text.primary\n }\n }, {\n props: {\n variant: 'footer'\n },\n style: {\n color: (theme.vars || theme).palette.text.secondary,\n lineHeight: theme.typography.pxToRem(21),\n fontSize: theme.typography.pxToRem(12)\n }\n }, {\n props: {\n size: 'small'\n },\n style: {\n padding: '6px 16px',\n [`&.${tableCellClasses.paddingCheckbox}`]: {\n width: 24,\n // prevent the checkbox column from growing\n padding: '0 12px 0 16px',\n '& > *': {\n padding: 0\n }\n }\n }\n }, {\n props: {\n padding: 'checkbox'\n },\n style: {\n width: 48,\n // prevent the checkbox column from growing\n padding: '0 0 0 4px'\n }\n }, {\n props: {\n padding: 'none'\n },\n style: {\n padding: 0\n }\n }, {\n props: {\n align: 'left'\n },\n style: {\n textAlign: 'left'\n }\n }, {\n props: {\n align: 'center'\n },\n style: {\n textAlign: 'center'\n }\n }, {\n props: {\n align: 'right'\n },\n style: {\n textAlign: 'right',\n flexDirection: 'row-reverse'\n }\n }, {\n props: {\n align: 'justify'\n },\n style: {\n textAlign: 'justify'\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.stickyHeader,\n style: {\n position: 'sticky',\n top: 0,\n zIndex: 2,\n backgroundColor: (theme.vars || theme).palette.background.default\n }\n }]\n})));\n\n/**\n * The component renders a `` element when the parent context is a header\n * or otherwise a `` element.\n */\nconst TableCell = /*#__PURE__*/React.forwardRef(function TableCell(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiTableCell'\n });\n const {\n align = 'inherit',\n className,\n component: componentProp,\n padding: paddingProp,\n scope: scopeProp,\n size: sizeProp,\n sortDirection,\n variant: variantProp,\n ...other\n } = props;\n const table = React.useContext(TableContext);\n const tablelvl2 = React.useContext(Tablelvl2Context);\n const isHeadCell = tablelvl2 && tablelvl2.variant === 'head';\n let component;\n if (componentProp) {\n component = componentProp;\n } else {\n component = isHeadCell ? 'th' : 'td';\n }\n let scope = scopeProp;\n // scope is not a valid attribute for elements.\n // source: https://html.spec.whatwg.org/multipage/tables.html#the-td-element\n if (component === 'td') {\n scope = undefined;\n } else if (!scope && isHeadCell) {\n scope = 'col';\n }\n const variant = variantProp || tablelvl2 && tablelvl2.variant;\n const ownerState = {\n ...props,\n align,\n component,\n padding: paddingProp || (table && table.padding ? table.padding : 'normal'),\n size: sizeProp || (table && table.size ? table.size : 'medium'),\n sortDirection,\n stickyHeader: variant === 'head' && table && table.stickyHeader,\n variant\n };\n const classes = useUtilityClasses(ownerState);\n let ariaSort = null;\n if (sortDirection) {\n ariaSort = sortDirection === 'asc' ? 'ascending' : 'descending';\n }\n return /*#__PURE__*/_jsx(TableCellRoot, {\n as: component,\n ref: ref,\n className: clsx(classes.root, className),\n \"aria-sort\": ariaSort,\n scope: scope,\n ownerState: ownerState,\n ...other\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? TableCell.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * Set the text-align on the table cell content.\n *\n * Monetary or generally number fields **should be right aligned** as that allows\n * you to add them up quickly in your head without having to worry about decimals.\n * @default 'inherit'\n */\n align: PropTypes.oneOf(['center', 'inherit', 'justify', 'left', 'right']),\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * Sets the padding applied to the cell.\n * The prop defaults to the value (`'default'`) inherited from the parent Table component.\n */\n padding: PropTypes.oneOf(['checkbox', 'none', 'normal']),\n /**\n * Set scope attribute.\n */\n scope: PropTypes.string,\n /**\n * Specify the size of the cell.\n * The prop defaults to the value (`'medium'`) inherited from the parent Table component.\n */\n size: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['medium', 'small']), PropTypes.string]),\n /**\n * Set aria-sort direction.\n */\n sortDirection: PropTypes.oneOf(['asc', 'desc', false]),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * Specify the cell type.\n * The prop defaults to the value inherited from the parent TableHead, TableBody, or TableFooter components.\n */\n variant: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['body', 'footer', 'head']), PropTypes.string])\n} : void 0;\nexport default TableCell;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getTableBodyUtilityClass(slot) {\n return generateUtilityClass('MuiTableBody', slot);\n}\nconst tableBodyClasses = generateUtilityClasses('MuiTableBody', ['root']);\nexport default tableBodyClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport Tablelvl2Context from \"../Table/Tablelvl2Context.js\";\nimport { styled } from \"../zero-styled/index.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport { getTableBodyUtilityClass } from \"./tableBodyClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getTableBodyUtilityClass, classes);\n};\nconst TableBodyRoot = styled('tbody', {\n name: 'MuiTableBody',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n display: 'table-row-group'\n});\nconst tablelvl2 = {\n variant: 'body'\n};\nconst defaultComponent = 'tbody';\nconst TableBody = /*#__PURE__*/React.forwardRef(function TableBody(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiTableBody'\n });\n const {\n className,\n component = defaultComponent,\n ...other\n } = props;\n const ownerState = {\n ...props,\n component\n };\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(Tablelvl2Context.Provider, {\n value: tablelvl2,\n children: /*#__PURE__*/_jsx(TableBodyRoot, {\n className: clsx(classes.root, className),\n as: component,\n ref: ref,\n role: component === defaultComponent ? null : 'rowgroup',\n ownerState: ownerState,\n ...other\n })\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? TableBody.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component, normally `TableRow`.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default TableBody;","import resolveProps from '@mui/utils/resolveProps';\nexport default function getThemeProps(params) {\n const {\n theme,\n name,\n props\n } = params;\n if (!theme || !theme.components || !theme.components[name] || !theme.components[name].defaultProps) {\n return props;\n }\n return resolveProps(theme.components[name].defaultProps, props);\n}","'use client';\n\nimport getThemeProps from \"./getThemeProps.js\";\nimport useTheme from \"../useTheme/index.js\";\nexport default function useThemeProps({\n props,\n name,\n defaultTheme,\n themeId\n}) {\n let theme = useTheme(defaultTheme);\n if (themeId) {\n theme = theme[themeId] || theme;\n }\n return getThemeProps({\n theme,\n name,\n props\n });\n}","'use client';\n\nimport systemUseThemeProps from '@mui/system/useThemeProps';\nimport defaultTheme from \"./defaultTheme.js\";\nimport THEME_ID from \"./identifier.js\";\nexport default function useThemeProps({\n props,\n name\n}) {\n return systemUseThemeProps({\n props,\n name,\n defaultTheme,\n themeId: THEME_ID\n });\n}","'use client';\n\nimport * as React from 'react';\n\n/**\n * @ignore - internal component.\n */\nconst GridContext = /*#__PURE__*/React.createContext();\nif (process.env.NODE_ENV !== 'production') {\n GridContext.displayName = 'GridContext';\n}\nexport default GridContext;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getGridUtilityClass(slot) {\n return generateUtilityClass('MuiGrid', slot);\n}\nconst SPACINGS = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];\nconst DIRECTIONS = ['column-reverse', 'column', 'row-reverse', 'row'];\nconst WRAPS = ['nowrap', 'wrap-reverse', 'wrap'];\nconst GRID_SIZES = ['auto', true, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];\nconst gridClasses = generateUtilityClasses('MuiGrid', ['root', 'container', 'item', 'zeroMinWidth',\n// spacings\n...SPACINGS.map(spacing => `spacing-xs-${spacing}`),\n// direction values\n...DIRECTIONS.map(direction => `direction-xs-${direction}`),\n// wrap values\n...WRAPS.map(wrap => `wrap-xs-${wrap}`),\n// grid sizes for all breakpoints\n...GRID_SIZES.map(size => `grid-xs-${size}`), ...GRID_SIZES.map(size => `grid-sm-${size}`), ...GRID_SIZES.map(size => `grid-md-${size}`), ...GRID_SIZES.map(size => `grid-lg-${size}`), ...GRID_SIZES.map(size => `grid-xl-${size}`)]);\nexport default gridClasses;","'use client';\n\n// A grid component using the following libs as inspiration.\n//\n// For the implementation:\n// - https://getbootstrap.com/docs/4.3/layout/grid/\n// - https://github.com/kristoferjoseph/flexboxgrid/blob/master/src/css/flexboxgrid.css\n// - https://github.com/roylee0704/react-flexbox-grid\n// - https://material.angularjs.org/latest/layout/introduction\n//\n// Follow this flexbox Guide to better understand the underlying model:\n// - https://css-tricks.com/snippets/css/a-guide-to-flexbox/\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { handleBreakpoints, unstable_resolveBreakpointValues as resolveBreakpointValues } from '@mui/system';\nimport { extendSxProp } from '@mui/system/styleFunctionSx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport requirePropFactory from \"../utils/requirePropFactory.js\";\nimport styled from \"../styles/styled.js\";\nimport useThemeProps from \"../styles/useThemeProps.js\";\nimport useTheme from \"../styles/useTheme.js\";\nimport GridContext from \"./GridContext.js\";\nimport gridClasses, { getGridUtilityClass } from \"./gridClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function generateGrid({\n theme,\n ownerState\n}) {\n let size;\n return theme.breakpoints.keys.reduce((globalStyles, breakpoint) => {\n // Use side effect over immutability for better performance.\n let styles = {};\n if (ownerState[breakpoint]) {\n size = ownerState[breakpoint];\n }\n if (!size) {\n return globalStyles;\n }\n if (size === true) {\n // For the auto layouting\n styles = {\n flexBasis: 0,\n flexGrow: 1,\n maxWidth: '100%'\n };\n } else if (size === 'auto') {\n styles = {\n flexBasis: 'auto',\n flexGrow: 0,\n flexShrink: 0,\n maxWidth: 'none',\n width: 'auto'\n };\n } else {\n const columnsBreakpointValues = resolveBreakpointValues({\n values: ownerState.columns,\n breakpoints: theme.breakpoints.values\n });\n const columnValue = typeof columnsBreakpointValues === 'object' ? columnsBreakpointValues[breakpoint] : columnsBreakpointValues;\n if (columnValue === undefined || columnValue === null) {\n return globalStyles;\n }\n // Keep 7 significant numbers.\n const width = `${Math.round(size / columnValue * 10e7) / 10e5}%`;\n let more = {};\n if (ownerState.container && ownerState.item && ownerState.columnSpacing !== 0) {\n const themeSpacing = theme.spacing(ownerState.columnSpacing);\n if (themeSpacing !== '0px') {\n const fullWidth = `calc(${width} + ${themeSpacing})`;\n more = {\n flexBasis: fullWidth,\n maxWidth: fullWidth\n };\n }\n }\n\n // Close to the bootstrap implementation:\n // https://github.com/twbs/bootstrap/blob/8fccaa2439e97ec72a4b7dc42ccc1f649790adb0/scss/mixins/_grid.scss#L41\n styles = {\n flexBasis: width,\n flexGrow: 0,\n maxWidth: width,\n ...more\n };\n }\n\n // No need for a media query for the first size.\n if (theme.breakpoints.values[breakpoint] === 0) {\n Object.assign(globalStyles, styles);\n } else {\n globalStyles[theme.breakpoints.up(breakpoint)] = styles;\n }\n return globalStyles;\n }, {});\n}\nexport function generateDirection({\n theme,\n ownerState\n}) {\n const directionValues = resolveBreakpointValues({\n values: ownerState.direction,\n breakpoints: theme.breakpoints.values\n });\n return handleBreakpoints({\n theme\n }, directionValues, propValue => {\n const output = {\n flexDirection: propValue\n };\n if (propValue.startsWith('column')) {\n output[`& > .${gridClasses.item}`] = {\n maxWidth: 'none'\n };\n }\n return output;\n });\n}\n\n/**\n * Extracts zero value breakpoint keys before a non-zero value breakpoint key.\n * @example { xs: 0, sm: 0, md: 2, lg: 0, xl: 0 } or [0, 0, 2, 0, 0]\n * @returns [xs, sm]\n */\nfunction extractZeroValueBreakpointKeys({\n breakpoints,\n values\n}) {\n let nonZeroKey = '';\n Object.keys(values).forEach(key => {\n if (nonZeroKey !== '') {\n return;\n }\n if (values[key] !== 0) {\n nonZeroKey = key;\n }\n });\n const sortedBreakpointKeysByValue = Object.keys(breakpoints).sort((a, b) => {\n return breakpoints[a] - breakpoints[b];\n });\n return sortedBreakpointKeysByValue.slice(0, sortedBreakpointKeysByValue.indexOf(nonZeroKey));\n}\nexport function generateRowGap({\n theme,\n ownerState\n}) {\n const {\n container,\n rowSpacing\n } = ownerState;\n let styles = {};\n if (container && rowSpacing !== 0) {\n const rowSpacingValues = resolveBreakpointValues({\n values: rowSpacing,\n breakpoints: theme.breakpoints.values\n });\n let zeroValueBreakpointKeys;\n if (typeof rowSpacingValues === 'object') {\n zeroValueBreakpointKeys = extractZeroValueBreakpointKeys({\n breakpoints: theme.breakpoints.values,\n values: rowSpacingValues\n });\n }\n styles = handleBreakpoints({\n theme\n }, rowSpacingValues, (propValue, breakpoint) => {\n const themeSpacing = theme.spacing(propValue);\n if (themeSpacing !== '0px') {\n return {\n marginTop: theme.spacing(-propValue),\n [`& > .${gridClasses.item}`]: {\n paddingTop: themeSpacing\n }\n };\n }\n if (zeroValueBreakpointKeys?.includes(breakpoint)) {\n return {};\n }\n return {\n marginTop: 0,\n [`& > .${gridClasses.item}`]: {\n paddingTop: 0\n }\n };\n });\n }\n return styles;\n}\nexport function generateColumnGap({\n theme,\n ownerState\n}) {\n const {\n container,\n columnSpacing\n } = ownerState;\n let styles = {};\n if (container && columnSpacing !== 0) {\n const columnSpacingValues = resolveBreakpointValues({\n values: columnSpacing,\n breakpoints: theme.breakpoints.values\n });\n let zeroValueBreakpointKeys;\n if (typeof columnSpacingValues === 'object') {\n zeroValueBreakpointKeys = extractZeroValueBreakpointKeys({\n breakpoints: theme.breakpoints.values,\n values: columnSpacingValues\n });\n }\n styles = handleBreakpoints({\n theme\n }, columnSpacingValues, (propValue, breakpoint) => {\n const themeSpacing = theme.spacing(propValue);\n if (themeSpacing !== '0px') {\n const negativeValue = theme.spacing(-propValue);\n return {\n width: `calc(100% + ${themeSpacing})`,\n marginLeft: negativeValue,\n [`& > .${gridClasses.item}`]: {\n paddingLeft: themeSpacing\n }\n };\n }\n if (zeroValueBreakpointKeys?.includes(breakpoint)) {\n return {};\n }\n return {\n width: '100%',\n marginLeft: 0,\n [`& > .${gridClasses.item}`]: {\n paddingLeft: 0\n }\n };\n });\n }\n return styles;\n}\nexport function resolveSpacingStyles(spacing, breakpoints, styles = {}) {\n // undefined/null or `spacing` <= 0\n if (!spacing || spacing <= 0) {\n return [];\n }\n // in case of string/number `spacing`\n if (typeof spacing === 'string' && !Number.isNaN(Number(spacing)) || typeof spacing === 'number') {\n return [styles[`spacing-xs-${String(spacing)}`]];\n }\n // in case of object `spacing`\n const spacingStyles = [];\n breakpoints.forEach(breakpoint => {\n const value = spacing[breakpoint];\n if (Number(value) > 0) {\n spacingStyles.push(styles[`spacing-${breakpoint}-${String(value)}`]);\n }\n });\n return spacingStyles;\n}\n\n// Default CSS values\n// flex: '0 1 auto',\n// flexDirection: 'row',\n// alignItems: 'flex-start',\n// flexWrap: 'nowrap',\n// justifyContent: 'flex-start',\nconst GridRoot = styled('div', {\n name: 'MuiGrid',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n const {\n container,\n direction,\n item,\n spacing,\n wrap,\n zeroMinWidth,\n breakpoints\n } = ownerState;\n let spacingStyles = [];\n\n // in case of grid item\n if (container) {\n spacingStyles = resolveSpacingStyles(spacing, breakpoints, styles);\n }\n const breakpointsStyles = [];\n breakpoints.forEach(breakpoint => {\n const value = ownerState[breakpoint];\n if (value) {\n breakpointsStyles.push(styles[`grid-${breakpoint}-${String(value)}`]);\n }\n });\n return [styles.root, container && styles.container, item && styles.item, zeroMinWidth && styles.zeroMinWidth, ...spacingStyles, direction !== 'row' && styles[`direction-xs-${String(direction)}`], wrap !== 'wrap' && styles[`wrap-xs-${String(wrap)}`], ...breakpointsStyles];\n }\n})(\n// FIXME(romgrk): Can't use memoTheme here\n({\n ownerState\n}) => ({\n boxSizing: 'border-box',\n ...(ownerState.container && {\n display: 'flex',\n flexWrap: 'wrap',\n width: '100%'\n }),\n ...(ownerState.item && {\n margin: 0 // For instance, it's useful when used with a `figure` element.\n }),\n ...(ownerState.zeroMinWidth && {\n minWidth: 0\n }),\n ...(ownerState.wrap !== 'wrap' && {\n flexWrap: ownerState.wrap\n })\n}), generateDirection, generateRowGap, generateColumnGap, generateGrid);\nexport function resolveSpacingClasses(spacing, breakpoints) {\n // undefined/null or `spacing` <= 0\n if (!spacing || spacing <= 0) {\n return [];\n }\n // in case of string/number `spacing`\n if (typeof spacing === 'string' && !Number.isNaN(Number(spacing)) || typeof spacing === 'number') {\n return [`spacing-xs-${String(spacing)}`];\n }\n // in case of object `spacing`\n const classes = [];\n breakpoints.forEach(breakpoint => {\n const value = spacing[breakpoint];\n if (Number(value) > 0) {\n const className = `spacing-${breakpoint}-${String(value)}`;\n classes.push(className);\n }\n });\n return classes;\n}\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n container,\n direction,\n item,\n spacing,\n wrap,\n zeroMinWidth,\n breakpoints\n } = ownerState;\n let spacingClasses = [];\n\n // in case of grid item\n if (container) {\n spacingClasses = resolveSpacingClasses(spacing, breakpoints);\n }\n const breakpointsClasses = [];\n breakpoints.forEach(breakpoint => {\n const value = ownerState[breakpoint];\n if (value) {\n breakpointsClasses.push(`grid-${breakpoint}-${String(value)}`);\n }\n });\n const slots = {\n root: ['root', container && 'container', item && 'item', zeroMinWidth && 'zeroMinWidth', ...spacingClasses, direction !== 'row' && `direction-xs-${String(direction)}`, wrap !== 'wrap' && `wrap-xs-${String(wrap)}`, ...breakpointsClasses]\n };\n return composeClasses(slots, getGridUtilityClass, classes);\n};\n\n/**\n * @deprecated Use the [`Grid2`](https://mui.com/material-ui/react-grid2/) component instead.\n */\nconst Grid = /*#__PURE__*/React.forwardRef(function Grid(inProps, ref) {\n const themeProps = useThemeProps({\n props: inProps,\n name: 'MuiGrid'\n });\n const {\n breakpoints\n } = useTheme();\n const props = extendSxProp(themeProps);\n const {\n className,\n columns: columnsProp,\n columnSpacing: columnSpacingProp,\n component = 'div',\n container = false,\n direction = 'row',\n item = false,\n rowSpacing: rowSpacingProp,\n spacing = 0,\n wrap = 'wrap',\n zeroMinWidth = false,\n ...other\n } = props;\n const rowSpacing = rowSpacingProp || spacing;\n const columnSpacing = columnSpacingProp || spacing;\n const columnsContext = React.useContext(GridContext);\n\n // columns set with default breakpoint unit of 12\n const columns = container ? columnsProp || 12 : columnsContext;\n const breakpointsValues = {};\n const otherFiltered = {\n ...other\n };\n breakpoints.keys.forEach(breakpoint => {\n if (other[breakpoint] != null) {\n breakpointsValues[breakpoint] = other[breakpoint];\n delete otherFiltered[breakpoint];\n }\n });\n const ownerState = {\n ...props,\n columns,\n container,\n direction,\n item,\n rowSpacing,\n columnSpacing,\n wrap,\n zeroMinWidth,\n spacing,\n ...breakpointsValues,\n breakpoints: breakpoints.keys\n };\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(GridContext.Provider, {\n value: columns,\n children: /*#__PURE__*/_jsx(GridRoot, {\n ownerState: ownerState,\n className: clsx(classes.root, className),\n as: component,\n ref: ref,\n ...otherFiltered\n })\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Grid.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The number of columns.\n * @default 12\n */\n columns: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.number), PropTypes.number, PropTypes.object]),\n /**\n * Defines the horizontal space between the type `item` components.\n * It overrides the value of the `spacing` prop.\n */\n columnSpacing: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])), PropTypes.number, PropTypes.object, PropTypes.string]),\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * If `true`, the component will have the flex *container* behavior.\n * You should be wrapping *items* with a *container*.\n * @default false\n */\n container: PropTypes.bool,\n /**\n * Defines the `flex-direction` style property.\n * It is applied for all screen sizes.\n * @default 'row'\n */\n direction: PropTypes.oneOfType([PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row']), PropTypes.arrayOf(PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row'])), PropTypes.object]),\n /**\n * If `true`, the component will have the flex *item* behavior.\n * You should be wrapping *items* with a *container*.\n * @default false\n */\n item: PropTypes.bool,\n /**\n * If a number, it sets the number of columns the grid item uses.\n * It can't be greater than the total number of columns of the container (12 by default).\n * If 'auto', the grid item's width matches its content.\n * If false, the prop is ignored.\n * If true, the grid item's width grows to use the space available in the grid container.\n * The value is applied for the `lg` breakpoint and wider screens if not overridden.\n * @default false\n */\n lg: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.bool]),\n /**\n * If a number, it sets the number of columns the grid item uses.\n * It can't be greater than the total number of columns of the container (12 by default).\n * If 'auto', the grid item's width matches its content.\n * If false, the prop is ignored.\n * If true, the grid item's width grows to use the space available in the grid container.\n * The value is applied for the `md` breakpoint and wider screens if not overridden.\n * @default false\n */\n md: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.bool]),\n /**\n * Defines the vertical space between the type `item` components.\n * It overrides the value of the `spacing` prop.\n */\n rowSpacing: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])), PropTypes.number, PropTypes.object, PropTypes.string]),\n /**\n * If a number, it sets the number of columns the grid item uses.\n * It can't be greater than the total number of columns of the container (12 by default).\n * If 'auto', the grid item's width matches its content.\n * If false, the prop is ignored.\n * If true, the grid item's width grows to use the space available in the grid container.\n * The value is applied for the `sm` breakpoint and wider screens if not overridden.\n * @default false\n */\n sm: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.bool]),\n /**\n * Defines the space between the type `item` components.\n * It can only be used on a type `container` component.\n * @default 0\n */\n spacing: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])), PropTypes.number, PropTypes.object, PropTypes.string]),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * Defines the `flex-wrap` style property.\n * It's applied for all screen sizes.\n * @default 'wrap'\n */\n wrap: PropTypes.oneOf(['nowrap', 'wrap-reverse', 'wrap']),\n /**\n * If a number, it sets the number of columns the grid item uses.\n * It can't be greater than the total number of columns of the container (12 by default).\n * If 'auto', the grid item's width matches its content.\n * If false, the prop is ignored.\n * If true, the grid item's width grows to use the space available in the grid container.\n * The value is applied for the `xl` breakpoint and wider screens if not overridden.\n * @default false\n */\n xl: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.bool]),\n /**\n * If a number, it sets the number of columns the grid item uses.\n * It can't be greater than the total number of columns of the container (12 by default).\n * If 'auto', the grid item's width matches its content.\n * If false, the prop is ignored.\n * If true, the grid item's width grows to use the space available in the grid container.\n * The value is applied for all the screen sizes with the lowest priority.\n * @default false\n */\n xs: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.bool]),\n /**\n * If `true`, it sets `min-width: 0` on the item.\n * Refer to the limitations section of the documentation to better understand the use case.\n * @default false\n */\n zeroMinWidth: PropTypes.bool\n} : void 0;\nif (process.env.NODE_ENV !== 'production') {\n const requireProp = requirePropFactory('Grid', Grid);\n // eslint-disable-next-line no-useless-concat\n Grid['propTypes' + ''] = {\n // eslint-disable-next-line react/forbid-foreign-prop-types\n ...Grid.propTypes,\n direction: requireProp('container'),\n lg: requireProp('item'),\n md: requireProp('item'),\n sm: requireProp('item'),\n spacing: requireProp('container'),\n wrap: requireProp('container'),\n xs: requireProp('item'),\n zeroMinWidth: requireProp('item')\n };\n}\nexport default Grid;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getSvgIconUtilityClass(slot) {\n return generateUtilityClass('MuiSvgIcon', slot);\n}\nconst svgIconClasses = generateUtilityClasses('MuiSvgIcon', ['root', 'colorPrimary', 'colorSecondary', 'colorAction', 'colorError', 'colorDisabled', 'fontSizeInherit', 'fontSizeSmall', 'fontSizeMedium', 'fontSizeLarge']);\nexport default svgIconClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport capitalize from \"../utils/capitalize.js\";\nimport { styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport { getSvgIconUtilityClass } from \"./svgIconClasses.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n color,\n fontSize,\n classes\n } = ownerState;\n const slots = {\n root: ['root', color !== 'inherit' && `color${capitalize(color)}`, `fontSize${capitalize(fontSize)}`]\n };\n return composeClasses(slots, getSvgIconUtilityClass, classes);\n};\nconst SvgIconRoot = styled('svg', {\n name: 'MuiSvgIcon',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.color !== 'inherit' && styles[`color${capitalize(ownerState.color)}`], styles[`fontSize${capitalize(ownerState.fontSize)}`]];\n }\n})(memoTheme(({\n theme\n}) => ({\n userSelect: 'none',\n width: '1em',\n height: '1em',\n display: 'inline-block',\n flexShrink: 0,\n transition: theme.transitions?.create?.('fill', {\n duration: (theme.vars ?? theme).transitions?.duration?.shorter\n }),\n variants: [{\n props: props => !props.hasSvgAsChild,\n style: {\n // the will define the property that has `currentColor`\n // for example heroicons uses fill=\"none\" and stroke=\"currentColor\"\n fill: 'currentColor'\n }\n }, {\n props: {\n fontSize: 'inherit'\n },\n style: {\n fontSize: 'inherit'\n }\n }, {\n props: {\n fontSize: 'small'\n },\n style: {\n fontSize: theme.typography?.pxToRem?.(20) || '1.25rem'\n }\n }, {\n props: {\n fontSize: 'medium'\n },\n style: {\n fontSize: theme.typography?.pxToRem?.(24) || '1.5rem'\n }\n }, {\n props: {\n fontSize: 'large'\n },\n style: {\n fontSize: theme.typography?.pxToRem?.(35) || '2.1875rem'\n }\n },\n // TODO v5 deprecate color prop, v6 remove for sx\n ...Object.entries((theme.vars ?? theme).palette).filter(([, value]) => value && value.main).map(([color]) => ({\n props: {\n color\n },\n style: {\n color: (theme.vars ?? theme).palette?.[color]?.main\n }\n })), {\n props: {\n color: 'action'\n },\n style: {\n color: (theme.vars ?? theme).palette?.action?.active\n }\n }, {\n props: {\n color: 'disabled'\n },\n style: {\n color: (theme.vars ?? theme).palette?.action?.disabled\n }\n }, {\n props: {\n color: 'inherit'\n },\n style: {\n color: undefined\n }\n }]\n})));\nconst SvgIcon = /*#__PURE__*/React.forwardRef(function SvgIcon(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiSvgIcon'\n });\n const {\n children,\n className,\n color = 'inherit',\n component = 'svg',\n fontSize = 'medium',\n htmlColor,\n inheritViewBox = false,\n titleAccess,\n viewBox = '0 0 24 24',\n ...other\n } = props;\n const hasSvgAsChild = /*#__PURE__*/React.isValidElement(children) && children.type === 'svg';\n const ownerState = {\n ...props,\n color,\n component,\n fontSize,\n instanceFontSize: inProps.fontSize,\n inheritViewBox,\n viewBox,\n hasSvgAsChild\n };\n const more = {};\n if (!inheritViewBox) {\n more.viewBox = viewBox;\n }\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsxs(SvgIconRoot, {\n as: component,\n className: clsx(classes.root, className),\n focusable: \"false\",\n color: htmlColor,\n \"aria-hidden\": titleAccess ? undefined : true,\n role: titleAccess ? 'img' : undefined,\n ref: ref,\n ...more,\n ...other,\n ...(hasSvgAsChild && children.props),\n ownerState: ownerState,\n children: [hasSvgAsChild ? children.props.children : children, titleAccess ? /*#__PURE__*/_jsx(\"title\", {\n children: titleAccess\n }) : null]\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? SvgIcon.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * Node passed into the SVG element.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).\n * You can use the `htmlColor` prop to apply a color attribute to the SVG element.\n * @default 'inherit'\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['inherit', 'action', 'disabled', 'primary', 'secondary', 'error', 'info', 'success', 'warning']), PropTypes.string]),\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * The fontSize applied to the icon. Defaults to 24px, but can be configure to inherit font size.\n * @default 'medium'\n */\n fontSize: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['inherit', 'large', 'medium', 'small']), PropTypes.string]),\n /**\n * Applies a color attribute to the SVG element.\n */\n htmlColor: PropTypes.string,\n /**\n * If `true`, the root node will inherit the custom `component`'s viewBox and the `viewBox`\n * prop will be ignored.\n * Useful when you want to reference a custom `component` and have `SvgIcon` pass that\n * `component`'s viewBox to the root node.\n * @default false\n */\n inheritViewBox: PropTypes.bool,\n /**\n * The shape-rendering attribute. The behavior of the different options is described on the\n * [MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/shape-rendering).\n * If you are having issues with blurry icons you should investigate this prop.\n */\n shapeRendering: PropTypes.string,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * Provides a human-readable title for the element that contains it.\n * https://www.w3.org/TR/SVG-access/#Equivalent\n */\n titleAccess: PropTypes.string,\n /**\n * Allows you to redefine what the coordinates without units mean inside an SVG element.\n * For example, if the SVG element is 500 (width) by 200 (height),\n * and you pass viewBox=\"0 0 50 20\",\n * this means that the coordinates inside the SVG will go from the top left corner (0,0)\n * to bottom right (50,20) and each unit will be worth 10px.\n * @default '0 0 24 24'\n */\n viewBox: PropTypes.string\n} : void 0;\nif (SvgIcon) {\n SvgIcon.muiName = 'SvgIcon';\n}\nexport default SvgIcon;","'use client';\n\nimport * as React from 'react';\nimport SvgIcon from \"../SvgIcon/index.js\";\n\n/**\n * Private module reserved for @mui packages.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default function createSvgIcon(path, displayName) {\n function Component(props, ref) {\n return /*#__PURE__*/_jsx(SvgIcon, {\n \"data-testid\": `${displayName}Icon`,\n ref: ref,\n ...props,\n children: path\n });\n }\n if (process.env.NODE_ENV !== 'production') {\n // Need to set `displayName` on the inner component for React.memo.\n // React prior to 16.14 ignores `displayName` on the wrapper.\n Component.displayName = `${displayName}Icon`;\n }\n Component.muiName = SvgIcon.muiName;\n return /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(Component));\n}","\"use client\";\n\nimport createSvgIcon from './utils/createSvgIcon';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z\"\n}), 'ExpandMore');","import React, { useEffect } from 'react';\nimport { \n Table, TableBody, TableCell, TableContainer, TableHead, TableRow, \n Paper, Typography, Grid, useTheme, Accordion, AccordionSummary, AccordionDetails \n} from '@mui/material';\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore';\n\nconst SHOW_TRADE_METRICS = false; \n\nconst formatValue = (value) => {\n if (value === undefined || value === null) return 'N/A';\n if (typeof value === 'number') {\n return value.toFixed(4);\n }\n return value;\n};\n\nconst MetricSection = ({ title, metrics, strategies, metricsData }) => {\n const theme = useTheme();\n\n if (!metricsData || Object.keys(metricsData).length === 0) {\n return (\n No data available for {title}\n );\n }\n\n return (\n \n }\n aria-controls={`${title}-content`}\n id={`${title}-header`}\n >\n {title}\n \n \n \n \n \n \n Metric\n Portfolio\n Benchmark\n {strategies.map((strategy) => (\n {strategy}\n ))}\n \n \n \n {metrics.map((metric) => (\n \n {metric}\n {formatValue(metricsData?.Portfolio?.[metric])}\n {formatValue(metricsData?.Benchmark?.[metric])}\n {strategies.map((strategy) => (\n \n {formatValue(metricsData?.[strategy]?.[metric])}\n \n ))}\n \n ))}\n \n
\n \n \n \n );\n};\n\nconst MetricsTable = ({ metrics }) => {\n useEffect(() => {\n console.log('MetricsTable - Received metrics:', metrics);\n }, [metrics]);\n\n if (!metrics || typeof metrics !== 'object' || Object.keys(metrics).length === 0) {\n return No metrics data available;\n }\n\n const strategies = Object.keys(metrics).filter(key => key !== 'Portfolio' && key !== 'Benchmark');\n\n const generalMetrics = ['Start Date', 'End Date', 'Initial Value', 'End Value', 'Max Value', 'Min Value'];\n const returnMetrics = ['Total Return', 'Annualized Return', 'Volatility', 'Sharpe Ratio', 'Sortino Ratio', 'Calmar Ratio'];\n const drawdownMetrics = ['Max Drawdown', 'Average Drawdown'];\n const tradeMetrics = ['Number of Trades', 'Win Rate', 'Loss Rate', 'Average Win', 'Average Loss', 'Profit Factor', 'Exposure (%)', 'Max Consecutive Wins', 'Max Consecutive Losses', 'Average Trade Duration (days)'];\n const periodMetrics = ['Best Month', 'Worst Month'];\n\n return (\n \n \n \n \n \n \n \n \n \n \n {SHOW_TRADE_METRICS && (\n \n \n \n )}\n \n \n \n \n );\n};\n\nexport default React.memo(MetricsTable);","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getDividerUtilityClass(slot) {\n return generateUtilityClass('MuiDivider', slot);\n}\nconst dividerClasses = generateUtilityClasses('MuiDivider', ['root', 'absolute', 'fullWidth', 'inset', 'middle', 'flexItem', 'light', 'vertical', 'withChildren', 'withChildrenVertical', 'textAlignRight', 'textAlignLeft', 'wrapper', 'wrapperVertical']);\nexport default dividerClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { alpha } from '@mui/system/colorManipulator';\nimport { styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport { getDividerUtilityClass } from \"./dividerClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n absolute,\n children,\n classes,\n flexItem,\n light,\n orientation,\n textAlign,\n variant\n } = ownerState;\n const slots = {\n root: ['root', absolute && 'absolute', variant, light && 'light', orientation === 'vertical' && 'vertical', flexItem && 'flexItem', children && 'withChildren', children && orientation === 'vertical' && 'withChildrenVertical', textAlign === 'right' && orientation !== 'vertical' && 'textAlignRight', textAlign === 'left' && orientation !== 'vertical' && 'textAlignLeft'],\n wrapper: ['wrapper', orientation === 'vertical' && 'wrapperVertical']\n };\n return composeClasses(slots, getDividerUtilityClass, classes);\n};\nconst DividerRoot = styled('div', {\n name: 'MuiDivider',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.absolute && styles.absolute, styles[ownerState.variant], ownerState.light && styles.light, ownerState.orientation === 'vertical' && styles.vertical, ownerState.flexItem && styles.flexItem, ownerState.children && styles.withChildren, ownerState.children && ownerState.orientation === 'vertical' && styles.withChildrenVertical, ownerState.textAlign === 'right' && ownerState.orientation !== 'vertical' && styles.textAlignRight, ownerState.textAlign === 'left' && ownerState.orientation !== 'vertical' && styles.textAlignLeft];\n }\n})(memoTheme(({\n theme\n}) => ({\n margin: 0,\n // Reset browser default style.\n flexShrink: 0,\n borderWidth: 0,\n borderStyle: 'solid',\n borderColor: (theme.vars || theme).palette.divider,\n borderBottomWidth: 'thin',\n variants: [{\n props: {\n absolute: true\n },\n style: {\n position: 'absolute',\n bottom: 0,\n left: 0,\n width: '100%'\n }\n }, {\n props: {\n light: true\n },\n style: {\n borderColor: theme.vars ? `rgba(${theme.vars.palette.dividerChannel} / 0.08)` : alpha(theme.palette.divider, 0.08)\n }\n }, {\n props: {\n variant: 'inset'\n },\n style: {\n marginLeft: 72\n }\n }, {\n props: {\n variant: 'middle',\n orientation: 'horizontal'\n },\n style: {\n marginLeft: theme.spacing(2),\n marginRight: theme.spacing(2)\n }\n }, {\n props: {\n variant: 'middle',\n orientation: 'vertical'\n },\n style: {\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(1)\n }\n }, {\n props: {\n orientation: 'vertical'\n },\n style: {\n height: '100%',\n borderBottomWidth: 0,\n borderRightWidth: 'thin'\n }\n }, {\n props: {\n flexItem: true\n },\n style: {\n alignSelf: 'stretch',\n height: 'auto'\n }\n }, {\n props: ({\n ownerState\n }) => !!ownerState.children,\n style: {\n display: 'flex',\n whiteSpace: 'nowrap',\n textAlign: 'center',\n border: 0,\n borderTopStyle: 'solid',\n borderLeftStyle: 'solid',\n '&::before, &::after': {\n content: '\"\"',\n alignSelf: 'center'\n }\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.children && ownerState.orientation !== 'vertical',\n style: {\n '&::before, &::after': {\n width: '100%',\n borderTop: `thin solid ${(theme.vars || theme).palette.divider}`,\n borderTopStyle: 'inherit'\n }\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.orientation === 'vertical' && ownerState.children,\n style: {\n flexDirection: 'column',\n '&::before, &::after': {\n height: '100%',\n borderLeft: `thin solid ${(theme.vars || theme).palette.divider}`,\n borderLeftStyle: 'inherit'\n }\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.textAlign === 'right' && ownerState.orientation !== 'vertical',\n style: {\n '&::before': {\n width: '90%'\n },\n '&::after': {\n width: '10%'\n }\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.textAlign === 'left' && ownerState.orientation !== 'vertical',\n style: {\n '&::before': {\n width: '10%'\n },\n '&::after': {\n width: '90%'\n }\n }\n }]\n})));\nconst DividerWrapper = styled('span', {\n name: 'MuiDivider',\n slot: 'Wrapper',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.wrapper, ownerState.orientation === 'vertical' && styles.wrapperVertical];\n }\n})(memoTheme(({\n theme\n}) => ({\n display: 'inline-block',\n paddingLeft: `calc(${theme.spacing(1)} * 1.2)`,\n paddingRight: `calc(${theme.spacing(1)} * 1.2)`,\n variants: [{\n props: {\n orientation: 'vertical'\n },\n style: {\n paddingTop: `calc(${theme.spacing(1)} * 1.2)`,\n paddingBottom: `calc(${theme.spacing(1)} * 1.2)`\n }\n }]\n})));\nconst Divider = /*#__PURE__*/React.forwardRef(function Divider(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiDivider'\n });\n const {\n absolute = false,\n children,\n className,\n orientation = 'horizontal',\n component = children || orientation === 'vertical' ? 'div' : 'hr',\n flexItem = false,\n light = false,\n role = component !== 'hr' ? 'separator' : undefined,\n textAlign = 'center',\n variant = 'fullWidth',\n ...other\n } = props;\n const ownerState = {\n ...props,\n absolute,\n component,\n flexItem,\n light,\n orientation,\n role,\n textAlign,\n variant\n };\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(DividerRoot, {\n as: component,\n className: clsx(classes.root, className),\n role: role,\n ref: ref,\n ownerState: ownerState,\n \"aria-orientation\": role === 'separator' && (component !== 'hr' || orientation === 'vertical') ? orientation : undefined,\n ...other,\n children: children ? /*#__PURE__*/_jsx(DividerWrapper, {\n className: classes.wrapper,\n ownerState: ownerState,\n children: children\n }) : null\n });\n});\n\n/**\n * The following flag is used to ensure that this component isn't tabbable i.e.\n * does not get highlight/focus inside of MUI List.\n */\nif (Divider) {\n Divider.muiSkipListHighlight = true;\n}\nprocess.env.NODE_ENV !== \"production\" ? Divider.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * Absolutely position the element.\n * @default false\n */\n absolute: PropTypes.bool,\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * If `true`, a vertical divider will have the correct height when used in flex container.\n * (By default, a vertical divider will have a calculated height of `0px` if it is the child of a flex container.)\n * @default false\n */\n flexItem: PropTypes.bool,\n /**\n * If `true`, the divider will have a lighter color.\n * @default false\n * @deprecated Use (or any opacity or color) instead. See [Migrating from deprecated APIs](https://mui.com/material-ui/migration/migrating-from-deprecated-apis/) for more details.\n */\n light: PropTypes.bool,\n /**\n * The component orientation.\n * @default 'horizontal'\n */\n orientation: PropTypes.oneOf(['horizontal', 'vertical']),\n /**\n * @ignore\n */\n role: PropTypes /* @typescript-to-proptypes-ignore */.string,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The text alignment.\n * @default 'center'\n */\n textAlign: PropTypes.oneOf(['center', 'left', 'right']),\n /**\n * The variant to use.\n * @default 'fullWidth'\n */\n variant: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['fullWidth', 'inset', 'middle']), PropTypes.string])\n} : void 0;\nexport default Divider;","'use client';\n\nimport * as React from 'react';\nlet globalId = 0;\n\n// TODO React 17: Remove `useGlobalId` once React 17 support is removed\nfunction useGlobalId(idOverride) {\n const [defaultId, setDefaultId] = React.useState(idOverride);\n const id = idOverride || defaultId;\n React.useEffect(() => {\n if (defaultId == null) {\n // Fallback to this default id when possible.\n // Use the incrementing value for client-side rendering only.\n // We can't use it server-side.\n // If you want to use random values please consider the Birthday Problem: https://en.wikipedia.org/wiki/Birthday_problem\n globalId += 1;\n setDefaultId(`mui-${globalId}`);\n }\n }, [defaultId]);\n return id;\n}\n\n// See https://github.com/mui/material-ui/issues/41190#issuecomment-2040873379 for why\nconst safeReact = {\n ...React\n};\nconst maybeReactUseId = safeReact.useId;\n\n/**\n *\n * @example
\n * @param idOverride\n * @returns {string}\n */\nexport default function useId(idOverride) {\n // React.useId() is only available from React 17.0.0.\n if (maybeReactUseId !== undefined) {\n const reactId = maybeReactUseId();\n return idOverride ?? reactId;\n }\n\n // TODO: uncomment once we enable eslint-plugin-react-compiler // eslint-disable-next-line react-compiler/react-compiler\n // eslint-disable-next-line react-hooks/rules-of-hooks -- `React.useId` is invariant at runtime.\n return useGlobalId(idOverride);\n}","export default function ownerDocument(node) {\n return node && node.ownerDocument || document;\n}","import ownerDocument from \"../ownerDocument/index.js\";\nexport default function ownerWindow(node) {\n const doc = ownerDocument(node);\n return doc.defaultView || window;\n}","// Corresponds to 10 frames at 60 Hz.\n// A few bytes payload overhead when lodash/debounce is ~3 kB and debounce ~300 B.\nexport default function debounce(func, wait = 166) {\n let timeout;\n function debounced(...args) {\n const later = () => {\n // @ts-ignore\n func.apply(this, args);\n };\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n }\n debounced.clear = () => {\n clearTimeout(timeout);\n };\n return debounced;\n}","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { unstable_debounce as debounce, unstable_useForkRef as useForkRef, unstable_useEnhancedEffect as useEnhancedEffect, unstable_ownerWindow as ownerWindow } from '@mui/utils';\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nfunction getStyleValue(value) {\n return parseInt(value, 10) || 0;\n}\nconst styles = {\n shadow: {\n // Visibility needed to hide the extra text area on iPads\n visibility: 'hidden',\n // Remove from the content flow\n position: 'absolute',\n // Ignore the scrollbar width\n overflow: 'hidden',\n height: 0,\n top: 0,\n left: 0,\n // Create a new layer, increase the isolation of the computed values\n transform: 'translateZ(0)'\n }\n};\nfunction isEmpty(obj) {\n return obj === undefined || obj === null || Object.keys(obj).length === 0 || obj.outerHeightStyle === 0 && !obj.overflowing;\n}\n\n/**\n *\n * Demos:\n *\n * - [Textarea Autosize](https://mui.com/material-ui/react-textarea-autosize/)\n *\n * API:\n *\n * - [TextareaAutosize API](https://mui.com/material-ui/api/textarea-autosize/)\n */\nconst TextareaAutosize = /*#__PURE__*/React.forwardRef(function TextareaAutosize(props, forwardedRef) {\n const {\n onChange,\n maxRows,\n minRows = 1,\n style,\n value,\n ...other\n } = props;\n const {\n current: isControlled\n } = React.useRef(value != null);\n const inputRef = React.useRef(null);\n const handleRef = useForkRef(forwardedRef, inputRef);\n const heightRef = React.useRef(null);\n const shadowRef = React.useRef(null);\n const calculateTextareaStyles = React.useCallback(() => {\n const input = inputRef.current;\n const containerWindow = ownerWindow(input);\n const computedStyle = containerWindow.getComputedStyle(input);\n\n // If input's width is shrunk and it's not visible, don't sync height.\n if (computedStyle.width === '0px') {\n return {\n outerHeightStyle: 0,\n overflowing: false\n };\n }\n const inputShallow = shadowRef.current;\n inputShallow.style.width = computedStyle.width;\n inputShallow.value = input.value || props.placeholder || 'x';\n if (inputShallow.value.slice(-1) === '\\n') {\n // Certain fonts which overflow the line height will cause the textarea\n // to report a different scrollHeight depending on whether the last line\n // is empty. Make it non-empty to avoid this issue.\n inputShallow.value += ' ';\n }\n const boxSizing = computedStyle.boxSizing;\n const padding = getStyleValue(computedStyle.paddingBottom) + getStyleValue(computedStyle.paddingTop);\n const border = getStyleValue(computedStyle.borderBottomWidth) + getStyleValue(computedStyle.borderTopWidth);\n\n // The height of the inner content\n const innerHeight = inputShallow.scrollHeight;\n\n // Measure height of a textarea with a single row\n inputShallow.value = 'x';\n const singleRowHeight = inputShallow.scrollHeight;\n\n // The height of the outer content\n let outerHeight = innerHeight;\n if (minRows) {\n outerHeight = Math.max(Number(minRows) * singleRowHeight, outerHeight);\n }\n if (maxRows) {\n outerHeight = Math.min(Number(maxRows) * singleRowHeight, outerHeight);\n }\n outerHeight = Math.max(outerHeight, singleRowHeight);\n\n // Take the box sizing into account for applying this value as a style.\n const outerHeightStyle = outerHeight + (boxSizing === 'border-box' ? padding + border : 0);\n const overflowing = Math.abs(outerHeight - innerHeight) <= 1;\n return {\n outerHeightStyle,\n overflowing\n };\n }, [maxRows, minRows, props.placeholder]);\n const syncHeight = React.useCallback(() => {\n const textareaStyles = calculateTextareaStyles();\n if (isEmpty(textareaStyles)) {\n return;\n }\n const outerHeightStyle = textareaStyles.outerHeightStyle;\n const input = inputRef.current;\n if (heightRef.current !== outerHeightStyle) {\n heightRef.current = outerHeightStyle;\n input.style.height = `${outerHeightStyle}px`;\n }\n input.style.overflow = textareaStyles.overflowing ? 'hidden' : '';\n }, [calculateTextareaStyles]);\n useEnhancedEffect(() => {\n const handleResize = () => {\n syncHeight();\n };\n // Workaround a \"ResizeObserver loop completed with undelivered notifications\" error\n // in test.\n // Note that we might need to use this logic in production per https://github.com/WICG/resize-observer/issues/38\n // Also see https://github.com/mui/mui-x/issues/8733\n let rAF;\n const rAFHandleResize = () => {\n cancelAnimationFrame(rAF);\n rAF = requestAnimationFrame(() => {\n handleResize();\n });\n };\n const debounceHandleResize = debounce(handleResize);\n const input = inputRef.current;\n const containerWindow = ownerWindow(input);\n containerWindow.addEventListener('resize', debounceHandleResize);\n let resizeObserver;\n if (typeof ResizeObserver !== 'undefined') {\n resizeObserver = new ResizeObserver(process.env.NODE_ENV === 'test' ? rAFHandleResize : handleResize);\n resizeObserver.observe(input);\n }\n return () => {\n debounceHandleResize.clear();\n cancelAnimationFrame(rAF);\n containerWindow.removeEventListener('resize', debounceHandleResize);\n if (resizeObserver) {\n resizeObserver.disconnect();\n }\n };\n }, [calculateTextareaStyles, syncHeight]);\n useEnhancedEffect(() => {\n syncHeight();\n });\n const handleChange = event => {\n if (!isControlled) {\n syncHeight();\n }\n if (onChange) {\n onChange(event);\n }\n };\n return /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(\"textarea\", {\n value: value,\n onChange: handleChange,\n ref: handleRef\n // Apply the rows prop to get a \"correct\" first SSR paint\n ,\n rows: minRows,\n style: style,\n ...other\n }), /*#__PURE__*/_jsx(\"textarea\", {\n \"aria-hidden\": true,\n className: props.className,\n readOnly: true,\n ref: shadowRef,\n tabIndex: -1,\n style: {\n ...styles.shadow,\n ...style,\n paddingTop: 0,\n paddingBottom: 0\n }\n })]\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? TextareaAutosize.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * Maximum number of rows to display.\n */\n maxRows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * Minimum number of rows to display.\n * @default 1\n */\n minRows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * @ignore\n */\n onChange: PropTypes.func,\n /**\n * @ignore\n */\n placeholder: PropTypes.string,\n /**\n * @ignore\n */\n style: PropTypes.object,\n /**\n * @ignore\n */\n value: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string), PropTypes.number, PropTypes.string])\n} : void 0;\nexport default TextareaAutosize;","/**\n * Determines if a given element is a DOM element name (i.e. not a React component).\n */\nfunction isHostComponent(element) {\n return typeof element === 'string';\n}\nexport default isHostComponent;","export default function formControlState({\n props,\n states,\n muiFormControl\n}) {\n return states.reduce((acc, state) => {\n acc[state] = props[state];\n if (muiFormControl) {\n if (typeof props[state] === 'undefined') {\n acc[state] = muiFormControl[state];\n }\n }\n return acc;\n }, {});\n}","import * as React from 'react';\n/**\n * @ignore - internal component.\n */\nconst FormControlContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== 'production') {\n FormControlContext.displayName = 'FormControlContext';\n}\nexport default FormControlContext;","'use client';\n\nimport * as React from 'react';\nimport FormControlContext from \"./FormControlContext.js\";\nexport default function useFormControl() {\n return React.useContext(FormControlContext);\n}","'use client';\n\nimport useEnhancedEffect from '@mui/utils/useEnhancedEffect';\nexport default useEnhancedEffect;","// Supports determination of isControlled().\n// Controlled input accepts its current value as a prop.\n//\n// @see https://facebook.github.io/react/docs/forms.html#controlled-components\n// @param value\n// @returns {boolean} true if string (including '') or number (including zero)\nexport function hasValue(value) {\n return value != null && !(Array.isArray(value) && value.length === 0);\n}\n\n// Determine if field is empty or filled.\n// Response determines if label is presented above field or as placeholder.\n//\n// @param obj\n// @param SSR\n// @returns {boolean} False when not present or empty string.\n// True when any number or string with length.\nexport function isFilled(obj, SSR = false) {\n return obj && (hasValue(obj.value) && obj.value !== '' || SSR && hasValue(obj.defaultValue) && obj.defaultValue !== '');\n}\n\n// Determine if an Input is adorned on start.\n// It's corresponding to the left with LTR.\n//\n// @param obj\n// @returns {boolean} False when no adornments.\n// True when adorned at the start.\nexport function isAdornedStart(obj) {\n return obj.startAdornment;\n}","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getInputBaseUtilityClass(slot) {\n return generateUtilityClass('MuiInputBase', slot);\n}\nconst inputBaseClasses = generateUtilityClasses('MuiInputBase', ['root', 'formControl', 'focused', 'disabled', 'adornedStart', 'adornedEnd', 'error', 'sizeSmall', 'multiline', 'colorSecondary', 'fullWidth', 'hiddenLabel', 'readOnly', 'input', 'inputSizeSmall', 'inputMultiline', 'inputTypeSearch', 'inputAdornedStart', 'inputAdornedEnd', 'inputHiddenLabel']);\nexport default inputBaseClasses;","'use client';\n\nimport _formatMuiErrorMessage from \"@mui/utils/formatMuiErrorMessage\";\nvar _InputGlobalStyles;\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport elementTypeAcceptingRef from '@mui/utils/elementTypeAcceptingRef';\nimport refType from '@mui/utils/refType';\nimport composeClasses from '@mui/utils/composeClasses';\nimport TextareaAutosize from \"../TextareaAutosize/index.js\";\nimport isHostComponent from \"../utils/isHostComponent.js\";\nimport formControlState from \"../FormControl/formControlState.js\";\nimport FormControlContext from \"../FormControl/FormControlContext.js\";\nimport useFormControl from \"../FormControl/useFormControl.js\";\nimport { styled, globalCss } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport capitalize from \"../utils/capitalize.js\";\nimport useForkRef from \"../utils/useForkRef.js\";\nimport useEnhancedEffect from \"../utils/useEnhancedEffect.js\";\nimport { isFilled } from \"./utils.js\";\nimport inputBaseClasses, { getInputBaseUtilityClass } from \"./inputBaseClasses.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nexport const rootOverridesResolver = (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.formControl && styles.formControl, ownerState.startAdornment && styles.adornedStart, ownerState.endAdornment && styles.adornedEnd, ownerState.error && styles.error, ownerState.size === 'small' && styles.sizeSmall, ownerState.multiline && styles.multiline, ownerState.color && styles[`color${capitalize(ownerState.color)}`], ownerState.fullWidth && styles.fullWidth, ownerState.hiddenLabel && styles.hiddenLabel];\n};\nexport const inputOverridesResolver = (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.input, ownerState.size === 'small' && styles.inputSizeSmall, ownerState.multiline && styles.inputMultiline, ownerState.type === 'search' && styles.inputTypeSearch, ownerState.startAdornment && styles.inputAdornedStart, ownerState.endAdornment && styles.inputAdornedEnd, ownerState.hiddenLabel && styles.inputHiddenLabel];\n};\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n color,\n disabled,\n error,\n endAdornment,\n focused,\n formControl,\n fullWidth,\n hiddenLabel,\n multiline,\n readOnly,\n size,\n startAdornment,\n type\n } = ownerState;\n const slots = {\n root: ['root', `color${capitalize(color)}`, disabled && 'disabled', error && 'error', fullWidth && 'fullWidth', focused && 'focused', formControl && 'formControl', size && size !== 'medium' && `size${capitalize(size)}`, multiline && 'multiline', startAdornment && 'adornedStart', endAdornment && 'adornedEnd', hiddenLabel && 'hiddenLabel', readOnly && 'readOnly'],\n input: ['input', disabled && 'disabled', type === 'search' && 'inputTypeSearch', multiline && 'inputMultiline', size === 'small' && 'inputSizeSmall', hiddenLabel && 'inputHiddenLabel', startAdornment && 'inputAdornedStart', endAdornment && 'inputAdornedEnd', readOnly && 'readOnly']\n };\n return composeClasses(slots, getInputBaseUtilityClass, classes);\n};\nexport const InputBaseRoot = styled('div', {\n name: 'MuiInputBase',\n slot: 'Root',\n overridesResolver: rootOverridesResolver\n})(memoTheme(({\n theme\n}) => ({\n ...theme.typography.body1,\n color: (theme.vars || theme).palette.text.primary,\n lineHeight: '1.4375em',\n // 23px\n boxSizing: 'border-box',\n // Prevent padding issue with fullWidth.\n position: 'relative',\n cursor: 'text',\n display: 'inline-flex',\n alignItems: 'center',\n [`&.${inputBaseClasses.disabled}`]: {\n color: (theme.vars || theme).palette.text.disabled,\n cursor: 'default'\n },\n variants: [{\n props: ({\n ownerState\n }) => ownerState.multiline,\n style: {\n padding: '4px 0 5px'\n }\n }, {\n props: ({\n ownerState,\n size\n }) => ownerState.multiline && size === 'small',\n style: {\n paddingTop: 1\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.fullWidth,\n style: {\n width: '100%'\n }\n }]\n})));\nexport const InputBaseInput = styled('input', {\n name: 'MuiInputBase',\n slot: 'Input',\n overridesResolver: inputOverridesResolver\n})(memoTheme(({\n theme\n}) => {\n const light = theme.palette.mode === 'light';\n const placeholder = {\n color: 'currentColor',\n ...(theme.vars ? {\n opacity: theme.vars.opacity.inputPlaceholder\n } : {\n opacity: light ? 0.42 : 0.5\n }),\n transition: theme.transitions.create('opacity', {\n duration: theme.transitions.duration.shorter\n })\n };\n const placeholderHidden = {\n opacity: '0 !important'\n };\n const placeholderVisible = theme.vars ? {\n opacity: theme.vars.opacity.inputPlaceholder\n } : {\n opacity: light ? 0.42 : 0.5\n };\n return {\n font: 'inherit',\n letterSpacing: 'inherit',\n color: 'currentColor',\n padding: '4px 0 5px',\n border: 0,\n boxSizing: 'content-box',\n background: 'none',\n height: '1.4375em',\n // Reset 23pxthe native input line-height\n margin: 0,\n // Reset for Safari\n WebkitTapHighlightColor: 'transparent',\n display: 'block',\n // Make the flex item shrink with Firefox\n minWidth: 0,\n width: '100%',\n '&::-webkit-input-placeholder': placeholder,\n '&::-moz-placeholder': placeholder,\n // Firefox 19+\n '&::-ms-input-placeholder': placeholder,\n // Edge\n '&:focus': {\n outline: 0\n },\n // Reset Firefox invalid required input style\n '&:invalid': {\n boxShadow: 'none'\n },\n '&::-webkit-search-decoration': {\n // Remove the padding when type=search.\n WebkitAppearance: 'none'\n },\n // Show and hide the placeholder logic\n [`label[data-shrink=false] + .${inputBaseClasses.formControl} &`]: {\n '&::-webkit-input-placeholder': placeholderHidden,\n '&::-moz-placeholder': placeholderHidden,\n // Firefox 19+\n '&::-ms-input-placeholder': placeholderHidden,\n // Edge\n '&:focus::-webkit-input-placeholder': placeholderVisible,\n '&:focus::-moz-placeholder': placeholderVisible,\n // Firefox 19+\n '&:focus::-ms-input-placeholder': placeholderVisible // Edge\n },\n [`&.${inputBaseClasses.disabled}`]: {\n opacity: 1,\n // Reset iOS opacity\n WebkitTextFillColor: (theme.vars || theme).palette.text.disabled // Fix opacity Safari bug\n },\n variants: [{\n props: ({\n ownerState\n }) => !ownerState.disableInjectingGlobalStyles,\n style: {\n animationName: 'mui-auto-fill-cancel',\n animationDuration: '10ms',\n '&:-webkit-autofill': {\n animationDuration: '5000s',\n animationName: 'mui-auto-fill'\n }\n }\n }, {\n props: {\n size: 'small'\n },\n style: {\n paddingTop: 1\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.multiline,\n style: {\n height: 'auto',\n resize: 'none',\n padding: 0,\n paddingTop: 0\n }\n }, {\n props: {\n type: 'search'\n },\n style: {\n MozAppearance: 'textfield' // Improve type search style.\n }\n }]\n };\n}));\nconst InputGlobalStyles = globalCss({\n '@keyframes mui-auto-fill': {\n from: {\n display: 'block'\n }\n },\n '@keyframes mui-auto-fill-cancel': {\n from: {\n display: 'block'\n }\n }\n});\n\n/**\n * `InputBase` contains as few styles as possible.\n * It aims to be a simple building block for creating an input.\n * It contains a load of style reset and some state logic.\n */\nconst InputBase = /*#__PURE__*/React.forwardRef(function InputBase(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiInputBase'\n });\n const {\n 'aria-describedby': ariaDescribedby,\n autoComplete,\n autoFocus,\n className,\n color,\n components = {},\n componentsProps = {},\n defaultValue,\n disabled,\n disableInjectingGlobalStyles,\n endAdornment,\n error,\n fullWidth = false,\n id,\n inputComponent = 'input',\n inputProps: inputPropsProp = {},\n inputRef: inputRefProp,\n margin,\n maxRows,\n minRows,\n multiline = false,\n name,\n onBlur,\n onChange,\n onClick,\n onFocus,\n onKeyDown,\n onKeyUp,\n placeholder,\n readOnly,\n renderSuffix,\n rows,\n size,\n slotProps = {},\n slots = {},\n startAdornment,\n type = 'text',\n value: valueProp,\n ...other\n } = props;\n const value = inputPropsProp.value != null ? inputPropsProp.value : valueProp;\n const {\n current: isControlled\n } = React.useRef(value != null);\n const inputRef = React.useRef();\n const handleInputRefWarning = React.useCallback(instance => {\n if (process.env.NODE_ENV !== 'production') {\n if (instance && instance.nodeName !== 'INPUT' && !instance.focus) {\n console.error(['MUI: You have provided a `inputComponent` to the input component', 'that does not correctly handle the `ref` prop.', 'Make sure the `ref` prop is called with a HTMLInputElement.'].join('\\n'));\n }\n }\n }, []);\n const handleInputRef = useForkRef(inputRef, inputRefProp, inputPropsProp.ref, handleInputRefWarning);\n const [focused, setFocused] = React.useState(false);\n const muiFormControl = useFormControl();\n if (process.env.NODE_ENV !== 'production') {\n // TODO: uncomment once we enable eslint-plugin-react-compiler // eslint-disable-next-line react-compiler/react-compiler\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useEffect(() => {\n if (muiFormControl) {\n return muiFormControl.registerEffect();\n }\n return undefined;\n }, [muiFormControl]);\n }\n const fcs = formControlState({\n props,\n muiFormControl,\n states: ['color', 'disabled', 'error', 'hiddenLabel', 'size', 'required', 'filled']\n });\n fcs.focused = muiFormControl ? muiFormControl.focused : focused;\n\n // The blur won't fire when the disabled state is set on a focused input.\n // We need to book keep the focused state manually.\n React.useEffect(() => {\n if (!muiFormControl && disabled && focused) {\n setFocused(false);\n if (onBlur) {\n onBlur();\n }\n }\n }, [muiFormControl, disabled, focused, onBlur]);\n const onFilled = muiFormControl && muiFormControl.onFilled;\n const onEmpty = muiFormControl && muiFormControl.onEmpty;\n const checkDirty = React.useCallback(obj => {\n if (isFilled(obj)) {\n if (onFilled) {\n onFilled();\n }\n } else if (onEmpty) {\n onEmpty();\n }\n }, [onFilled, onEmpty]);\n useEnhancedEffect(() => {\n if (isControlled) {\n checkDirty({\n value\n });\n }\n }, [value, checkDirty, isControlled]);\n const handleFocus = event => {\n if (onFocus) {\n onFocus(event);\n }\n if (inputPropsProp.onFocus) {\n inputPropsProp.onFocus(event);\n }\n if (muiFormControl && muiFormControl.onFocus) {\n muiFormControl.onFocus(event);\n } else {\n setFocused(true);\n }\n };\n const handleBlur = event => {\n if (onBlur) {\n onBlur(event);\n }\n if (inputPropsProp.onBlur) {\n inputPropsProp.onBlur(event);\n }\n if (muiFormControl && muiFormControl.onBlur) {\n muiFormControl.onBlur(event);\n } else {\n setFocused(false);\n }\n };\n const handleChange = (event, ...args) => {\n if (!isControlled) {\n const element = event.target || inputRef.current;\n if (element == null) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'MUI: Expected valid input target. ' + 'Did you use a custom `inputComponent` and forget to forward refs? ' + 'See https://mui.com/r/input-component-ref-interface for more info.' : _formatMuiErrorMessage(1));\n }\n checkDirty({\n value: element.value\n });\n }\n if (inputPropsProp.onChange) {\n inputPropsProp.onChange(event, ...args);\n }\n\n // Perform in the willUpdate\n if (onChange) {\n onChange(event, ...args);\n }\n };\n\n // Check the input state on mount, in case it was filled by the user\n // or auto filled by the browser before the hydration (for SSR).\n React.useEffect(() => {\n checkDirty(inputRef.current);\n // TODO: uncomment once we enable eslint-plugin-react-compiler // eslint-disable-next-line react-compiler/react-compiler\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n const handleClick = event => {\n if (inputRef.current && event.currentTarget === event.target) {\n inputRef.current.focus();\n }\n if (onClick) {\n onClick(event);\n }\n };\n let InputComponent = inputComponent;\n let inputProps = inputPropsProp;\n if (multiline && InputComponent === 'input') {\n if (rows) {\n if (process.env.NODE_ENV !== 'production') {\n if (minRows || maxRows) {\n console.warn('MUI: You can not use the `minRows` or `maxRows` props when the input `rows` prop is set.');\n }\n }\n inputProps = {\n type: undefined,\n minRows: rows,\n maxRows: rows,\n ...inputProps\n };\n } else {\n inputProps = {\n type: undefined,\n maxRows,\n minRows,\n ...inputProps\n };\n }\n InputComponent = TextareaAutosize;\n }\n const handleAutoFill = event => {\n // Provide a fake value as Chrome might not let you access it for security reasons.\n checkDirty(event.animationName === 'mui-auto-fill-cancel' ? inputRef.current : {\n value: 'x'\n });\n };\n React.useEffect(() => {\n if (muiFormControl) {\n muiFormControl.setAdornedStart(Boolean(startAdornment));\n }\n }, [muiFormControl, startAdornment]);\n const ownerState = {\n ...props,\n color: fcs.color || 'primary',\n disabled: fcs.disabled,\n endAdornment,\n error: fcs.error,\n focused: fcs.focused,\n formControl: muiFormControl,\n fullWidth,\n hiddenLabel: fcs.hiddenLabel,\n multiline,\n size: fcs.size,\n startAdornment,\n type\n };\n const classes = useUtilityClasses(ownerState);\n const Root = slots.root || components.Root || InputBaseRoot;\n const rootProps = slotProps.root || componentsProps.root || {};\n const Input = slots.input || components.Input || InputBaseInput;\n inputProps = {\n ...inputProps,\n ...(slotProps.input ?? componentsProps.input)\n };\n return /*#__PURE__*/_jsxs(React.Fragment, {\n children: [!disableInjectingGlobalStyles && typeof InputGlobalStyles === 'function' && (// For Emotion/Styled-components, InputGlobalStyles will be a function\n // For Pigment CSS, this has no effect because the InputGlobalStyles will be null.\n _InputGlobalStyles || (_InputGlobalStyles = /*#__PURE__*/_jsx(InputGlobalStyles, {}))), /*#__PURE__*/_jsxs(Root, {\n ...rootProps,\n ref: ref,\n onClick: handleClick,\n ...other,\n ...(!isHostComponent(Root) && {\n ownerState: {\n ...ownerState,\n ...rootProps.ownerState\n }\n }),\n className: clsx(classes.root, rootProps.className, className, readOnly && 'MuiInputBase-readOnly'),\n children: [startAdornment, /*#__PURE__*/_jsx(FormControlContext.Provider, {\n value: null,\n children: /*#__PURE__*/_jsx(Input, {\n \"aria-invalid\": fcs.error,\n \"aria-describedby\": ariaDescribedby,\n autoComplete: autoComplete,\n autoFocus: autoFocus,\n defaultValue: defaultValue,\n disabled: fcs.disabled,\n id: id,\n onAnimationStart: handleAutoFill,\n name: name,\n placeholder: placeholder,\n readOnly: readOnly,\n required: fcs.required,\n rows: rows,\n value: value,\n onKeyDown: onKeyDown,\n onKeyUp: onKeyUp,\n type: type,\n ...inputProps,\n ...(!isHostComponent(Input) && {\n as: InputComponent,\n ownerState: {\n ...ownerState,\n ...inputProps.ownerState\n }\n }),\n ref: handleInputRef,\n className: clsx(classes.input, inputProps.className, readOnly && 'MuiInputBase-readOnly'),\n onBlur: handleBlur,\n onChange: handleChange,\n onFocus: handleFocus\n })\n }), endAdornment, renderSuffix ? renderSuffix({\n ...fcs,\n startAdornment\n }) : null]\n })]\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? InputBase.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * @ignore\n */\n 'aria-describedby': PropTypes.string,\n /**\n * This prop helps users to fill forms faster, especially on mobile devices.\n * The name can be confusing, as it's more like an autofill.\n * You can learn more about it [following the specification](https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#autofill).\n */\n autoComplete: PropTypes.string,\n /**\n * If `true`, the `input` element is focused during the first mount.\n */\n autoFocus: PropTypes.bool,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).\n * The prop defaults to the value (`'primary'`) inherited from the parent FormControl component.\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['primary', 'secondary', 'error', 'info', 'success', 'warning']), PropTypes.string]),\n /**\n * The components used for each slot inside.\n *\n * @deprecated use the `slots` prop instead. This prop will be removed in v7. See [Migrating from deprecated APIs](https://mui.com/material-ui/migration/migrating-from-deprecated-apis/) for more details.\n *\n * @default {}\n */\n components: PropTypes.shape({\n Input: PropTypes.elementType,\n Root: PropTypes.elementType\n }),\n /**\n * The extra props for the slot components.\n * You can override the existing props or add new ones.\n *\n * @deprecated use the `slotProps` prop instead. This prop will be removed in v7. See [Migrating from deprecated APIs](https://mui.com/material-ui/migration/migrating-from-deprecated-apis/) for more details.\n *\n * @default {}\n */\n componentsProps: PropTypes.shape({\n input: PropTypes.object,\n root: PropTypes.object\n }),\n /**\n * The default value. Use when the component is not controlled.\n */\n defaultValue: PropTypes.any,\n /**\n * If `true`, the component is disabled.\n * The prop defaults to the value (`false`) inherited from the parent FormControl component.\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, GlobalStyles for the auto-fill keyframes will not be injected/removed on mount/unmount. Make sure to inject them at the top of your application.\n * This option is intended to help with boosting the initial rendering performance if you are loading a big amount of Input components at once.\n * @default false\n */\n disableInjectingGlobalStyles: PropTypes.bool,\n /**\n * End `InputAdornment` for this component.\n */\n endAdornment: PropTypes.node,\n /**\n * If `true`, the `input` will indicate an error.\n * The prop defaults to the value (`false`) inherited from the parent FormControl component.\n */\n error: PropTypes.bool,\n /**\n * If `true`, the `input` will take up the full width of its container.\n * @default false\n */\n fullWidth: PropTypes.bool,\n /**\n * The id of the `input` element.\n */\n id: PropTypes.string,\n /**\n * The component used for the `input` element.\n * Either a string to use a HTML element or a component.\n * @default 'input'\n */\n inputComponent: elementTypeAcceptingRef,\n /**\n * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n * @default {}\n */\n inputProps: PropTypes.object,\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n /**\n * If `dense`, will adjust vertical spacing. This is normally obtained via context from\n * FormControl.\n * The prop defaults to the value (`'none'`) inherited from the parent FormControl component.\n */\n margin: PropTypes.oneOf(['dense', 'none']),\n /**\n * Maximum number of rows to display when multiline option is set to true.\n */\n maxRows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * Minimum number of rows to display when multiline option is set to true.\n */\n minRows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * If `true`, a [TextareaAutosize](https://mui.com/material-ui/react-textarea-autosize/) element is rendered.\n * @default false\n */\n multiline: PropTypes.bool,\n /**\n * Name attribute of the `input` element.\n */\n name: PropTypes.string,\n /**\n * Callback fired when the `input` is blurred.\n *\n * Notice that the first argument (event) might be undefined.\n */\n onBlur: PropTypes.func,\n /**\n * Callback fired when the value is changed.\n *\n * @param {React.ChangeEvent} event The event source of the callback.\n * You can pull out the new value by accessing `event.target.value` (string).\n */\n onChange: PropTypes.func,\n /**\n * @ignore\n */\n onClick: PropTypes.func,\n /**\n * @ignore\n */\n onFocus: PropTypes.func,\n /**\n * Callback fired when the `input` doesn't satisfy its constraints.\n */\n onInvalid: PropTypes.func,\n /**\n * @ignore\n */\n onKeyDown: PropTypes.func,\n /**\n * @ignore\n */\n onKeyUp: PropTypes.func,\n /**\n * The short hint displayed in the `input` before the user enters a value.\n */\n placeholder: PropTypes.string,\n /**\n * It prevents the user from changing the value of the field\n * (not from interacting with the field).\n */\n readOnly: PropTypes.bool,\n /**\n * @ignore\n */\n renderSuffix: PropTypes.func,\n /**\n * If `true`, the `input` element is required.\n * The prop defaults to the value (`false`) inherited from the parent FormControl component.\n */\n required: PropTypes.bool,\n /**\n * Number of rows to display when multiline option is set to true.\n */\n rows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * The size of the component.\n */\n size: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['medium', 'small']), PropTypes.string]),\n /**\n * The extra props for the slot components.\n * You can override the existing props or add new ones.\n *\n * This prop is an alias for the `componentsProps` prop, which will be deprecated in the future.\n *\n * @default {}\n */\n slotProps: PropTypes.shape({\n input: PropTypes.object,\n root: PropTypes.object\n }),\n /**\n * The components used for each slot inside.\n *\n * This prop is an alias for the `components` prop, which will be deprecated in the future.\n *\n * @default {}\n */\n slots: PropTypes.shape({\n input: PropTypes.elementType,\n root: PropTypes.elementType\n }),\n /**\n * Start `InputAdornment` for this component.\n */\n startAdornment: PropTypes.node,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * Type of the `input` element. It should be [a valid HTML5 input type](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Form_%3Cinput%3E_types).\n * @default 'text'\n */\n type: PropTypes.string,\n /**\n * The value of the `input` element, required for a controlled component.\n */\n value: PropTypes.any\n} : void 0;\nexport default InputBase;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nimport { inputBaseClasses } from \"../InputBase/index.js\";\nexport function getInputUtilityClass(slot) {\n return generateUtilityClass('MuiInput', slot);\n}\nconst inputClasses = {\n ...inputBaseClasses,\n ...generateUtilityClasses('MuiInput', ['root', 'underline', 'input'])\n};\nexport default inputClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport composeClasses from '@mui/utils/composeClasses';\nimport deepmerge from '@mui/utils/deepmerge';\nimport refType from '@mui/utils/refType';\nimport InputBase from \"../InputBase/index.js\";\nimport rootShouldForwardProp from \"../styles/rootShouldForwardProp.js\";\nimport { styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport createSimplePaletteValueFilter from \"../utils/createSimplePaletteValueFilter.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport inputClasses, { getInputUtilityClass } from \"./inputClasses.js\";\nimport { rootOverridesResolver as inputBaseRootOverridesResolver, inputOverridesResolver as inputBaseInputOverridesResolver, InputBaseRoot, InputBaseInput } from \"../InputBase/InputBase.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n disableUnderline\n } = ownerState;\n const slots = {\n root: ['root', !disableUnderline && 'underline'],\n input: ['input']\n };\n const composedClasses = composeClasses(slots, getInputUtilityClass, classes);\n return {\n ...classes,\n // forward classes to the InputBase\n ...composedClasses\n };\n};\nconst InputRoot = styled(InputBaseRoot, {\n shouldForwardProp: prop => rootShouldForwardProp(prop) || prop === 'classes',\n name: 'MuiInput',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [...inputBaseRootOverridesResolver(props, styles), !ownerState.disableUnderline && styles.underline];\n }\n})(memoTheme(({\n theme\n}) => {\n const light = theme.palette.mode === 'light';\n let bottomLineColor = light ? 'rgba(0, 0, 0, 0.42)' : 'rgba(255, 255, 255, 0.7)';\n if (theme.vars) {\n bottomLineColor = `rgba(${theme.vars.palette.common.onBackgroundChannel} / ${theme.vars.opacity.inputUnderline})`;\n }\n return {\n position: 'relative',\n variants: [{\n props: ({\n ownerState\n }) => ownerState.formControl,\n style: {\n 'label + &': {\n marginTop: 16\n }\n }\n }, {\n props: ({\n ownerState\n }) => !ownerState.disableUnderline,\n style: {\n '&::after': {\n left: 0,\n bottom: 0,\n content: '\"\"',\n position: 'absolute',\n right: 0,\n transform: 'scaleX(0)',\n transition: theme.transitions.create('transform', {\n duration: theme.transitions.duration.shorter,\n easing: theme.transitions.easing.easeOut\n }),\n pointerEvents: 'none' // Transparent to the hover style.\n },\n [`&.${inputClasses.focused}:after`]: {\n // translateX(0) is a workaround for Safari transform scale bug\n // See https://github.com/mui/material-ui/issues/31766\n transform: 'scaleX(1) translateX(0)'\n },\n [`&.${inputClasses.error}`]: {\n '&::before, &::after': {\n borderBottomColor: (theme.vars || theme).palette.error.main\n }\n },\n '&::before': {\n borderBottom: `1px solid ${bottomLineColor}`,\n left: 0,\n bottom: 0,\n content: '\"\\\\00a0\"',\n position: 'absolute',\n right: 0,\n transition: theme.transitions.create('border-bottom-color', {\n duration: theme.transitions.duration.shorter\n }),\n pointerEvents: 'none' // Transparent to the hover style.\n },\n [`&:hover:not(.${inputClasses.disabled}, .${inputClasses.error}):before`]: {\n borderBottom: `2px solid ${(theme.vars || theme).palette.text.primary}`,\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n borderBottom: `1px solid ${bottomLineColor}`\n }\n },\n [`&.${inputClasses.disabled}:before`]: {\n borderBottomStyle: 'dotted'\n }\n }\n }, ...Object.entries(theme.palette).filter(createSimplePaletteValueFilter()).map(([color]) => ({\n props: {\n color,\n disableUnderline: false\n },\n style: {\n '&::after': {\n borderBottom: `2px solid ${(theme.vars || theme).palette[color].main}`\n }\n }\n }))]\n };\n}));\nconst InputInput = styled(InputBaseInput, {\n name: 'MuiInput',\n slot: 'Input',\n overridesResolver: inputBaseInputOverridesResolver\n})({});\nconst Input = /*#__PURE__*/React.forwardRef(function Input(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiInput'\n });\n const {\n disableUnderline = false,\n components = {},\n componentsProps: componentsPropsProp,\n fullWidth = false,\n inputComponent = 'input',\n multiline = false,\n slotProps,\n slots = {},\n type = 'text',\n ...other\n } = props;\n const classes = useUtilityClasses(props);\n const ownerState = {\n disableUnderline\n };\n const inputComponentsProps = {\n root: {\n ownerState\n }\n };\n const componentsProps = slotProps ?? componentsPropsProp ? deepmerge(slotProps ?? componentsPropsProp, inputComponentsProps) : inputComponentsProps;\n const RootSlot = slots.root ?? components.Root ?? InputRoot;\n const InputSlot = slots.input ?? components.Input ?? InputInput;\n return /*#__PURE__*/_jsx(InputBase, {\n slots: {\n root: RootSlot,\n input: InputSlot\n },\n slotProps: componentsProps,\n fullWidth: fullWidth,\n inputComponent: inputComponent,\n multiline: multiline,\n ref: ref,\n type: type,\n ...other,\n classes: classes\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Input.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * This prop helps users to fill forms faster, especially on mobile devices.\n * The name can be confusing, as it's more like an autofill.\n * You can learn more about it [following the specification](https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#autofill).\n */\n autoComplete: PropTypes.string,\n /**\n * If `true`, the `input` element is focused during the first mount.\n */\n autoFocus: PropTypes.bool,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).\n * The prop defaults to the value (`'primary'`) inherited from the parent FormControl component.\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['primary', 'secondary']), PropTypes.string]),\n /**\n * The components used for each slot inside.\n *\n * @deprecated use the `slots` prop instead. This prop will be removed in v7. See [Migrating from deprecated APIs](https://mui.com/material-ui/migration/migrating-from-deprecated-apis/) for more details.\n *\n * @default {}\n */\n components: PropTypes.shape({\n Input: PropTypes.elementType,\n Root: PropTypes.elementType\n }),\n /**\n * The extra props for the slot components.\n * You can override the existing props or add new ones.\n *\n * @deprecated use the `slotProps` prop instead. This prop will be removed in v7. See [Migrating from deprecated APIs](https://mui.com/material-ui/migration/migrating-from-deprecated-apis/) for more details.\n *\n * @default {}\n */\n componentsProps: PropTypes.shape({\n input: PropTypes.object,\n root: PropTypes.object\n }),\n /**\n * The default value. Use when the component is not controlled.\n */\n defaultValue: PropTypes.any,\n /**\n * If `true`, the component is disabled.\n * The prop defaults to the value (`false`) inherited from the parent FormControl component.\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, the `input` will not have an underline.\n * @default false\n */\n disableUnderline: PropTypes.bool,\n /**\n * End `InputAdornment` for this component.\n */\n endAdornment: PropTypes.node,\n /**\n * If `true`, the `input` will indicate an error.\n * The prop defaults to the value (`false`) inherited from the parent FormControl component.\n */\n error: PropTypes.bool,\n /**\n * If `true`, the `input` will take up the full width of its container.\n * @default false\n */\n fullWidth: PropTypes.bool,\n /**\n * The id of the `input` element.\n */\n id: PropTypes.string,\n /**\n * The component used for the `input` element.\n * Either a string to use a HTML element or a component.\n * @default 'input'\n */\n inputComponent: PropTypes.elementType,\n /**\n * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n * @default {}\n */\n inputProps: PropTypes.object,\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n /**\n * If `dense`, will adjust vertical spacing. This is normally obtained via context from\n * FormControl.\n * The prop defaults to the value (`'none'`) inherited from the parent FormControl component.\n */\n margin: PropTypes.oneOf(['dense', 'none']),\n /**\n * Maximum number of rows to display when multiline option is set to true.\n */\n maxRows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * Minimum number of rows to display when multiline option is set to true.\n */\n minRows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * If `true`, a [TextareaAutosize](https://mui.com/material-ui/react-textarea-autosize/) element is rendered.\n * @default false\n */\n multiline: PropTypes.bool,\n /**\n * Name attribute of the `input` element.\n */\n name: PropTypes.string,\n /**\n * Callback fired when the value is changed.\n *\n * @param {React.ChangeEvent} event The event source of the callback.\n * You can pull out the new value by accessing `event.target.value` (string).\n */\n onChange: PropTypes.func,\n /**\n * The short hint displayed in the `input` before the user enters a value.\n */\n placeholder: PropTypes.string,\n /**\n * It prevents the user from changing the value of the field\n * (not from interacting with the field).\n */\n readOnly: PropTypes.bool,\n /**\n * If `true`, the `input` element is required.\n * The prop defaults to the value (`false`) inherited from the parent FormControl component.\n */\n required: PropTypes.bool,\n /**\n * Number of rows to display when multiline option is set to true.\n */\n rows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * The extra props for the slot components.\n * You can override the existing props or add new ones.\n *\n * This prop is an alias for the `componentsProps` prop, which will be deprecated in the future.\n *\n * @default {}\n */\n slotProps: PropTypes.shape({\n input: PropTypes.object,\n root: PropTypes.object\n }),\n /**\n * The components used for each slot inside.\n *\n * This prop is an alias for the `components` prop, which will be deprecated in the future.\n *\n * @default {}\n */\n slots: PropTypes.shape({\n input: PropTypes.elementType,\n root: PropTypes.elementType\n }),\n /**\n * Start `InputAdornment` for this component.\n */\n startAdornment: PropTypes.node,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * Type of the `input` element. It should be [a valid HTML5 input type](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Form_%3Cinput%3E_types).\n * @default 'text'\n */\n type: PropTypes.string,\n /**\n * The value of the `input` element, required for a controlled component.\n */\n value: PropTypes.any\n} : void 0;\nif (Input) {\n Input.muiName = 'Input';\n}\nexport default Input;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nimport { inputBaseClasses } from \"../InputBase/index.js\";\nexport function getFilledInputUtilityClass(slot) {\n return generateUtilityClass('MuiFilledInput', slot);\n}\nconst filledInputClasses = {\n ...inputBaseClasses,\n ...generateUtilityClasses('MuiFilledInput', ['root', 'underline', 'input', 'adornedStart', 'adornedEnd', 'sizeSmall', 'multiline', 'hiddenLabel'])\n};\nexport default filledInputClasses;","'use client';\n\nimport * as React from 'react';\nimport deepmerge from '@mui/utils/deepmerge';\nimport refType from '@mui/utils/refType';\nimport PropTypes from 'prop-types';\nimport composeClasses from '@mui/utils/composeClasses';\nimport InputBase from \"../InputBase/index.js\";\nimport rootShouldForwardProp from \"../styles/rootShouldForwardProp.js\";\nimport { styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport createSimplePaletteValueFilter from \"../utils/createSimplePaletteValueFilter.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport filledInputClasses, { getFilledInputUtilityClass } from \"./filledInputClasses.js\";\nimport { rootOverridesResolver as inputBaseRootOverridesResolver, inputOverridesResolver as inputBaseInputOverridesResolver, InputBaseRoot, InputBaseInput } from \"../InputBase/InputBase.js\";\nimport { capitalize } from \"../utils/index.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n disableUnderline,\n startAdornment,\n endAdornment,\n size,\n hiddenLabel,\n multiline\n } = ownerState;\n const slots = {\n root: ['root', !disableUnderline && 'underline', startAdornment && 'adornedStart', endAdornment && 'adornedEnd', size === 'small' && `size${capitalize(size)}`, hiddenLabel && 'hiddenLabel', multiline && 'multiline'],\n input: ['input']\n };\n const composedClasses = composeClasses(slots, getFilledInputUtilityClass, classes);\n return {\n ...classes,\n // forward classes to the InputBase\n ...composedClasses\n };\n};\nconst FilledInputRoot = styled(InputBaseRoot, {\n shouldForwardProp: prop => rootShouldForwardProp(prop) || prop === 'classes',\n name: 'MuiFilledInput',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [...inputBaseRootOverridesResolver(props, styles), !ownerState.disableUnderline && styles.underline];\n }\n})(memoTheme(({\n theme\n}) => {\n const light = theme.palette.mode === 'light';\n const bottomLineColor = light ? 'rgba(0, 0, 0, 0.42)' : 'rgba(255, 255, 255, 0.7)';\n const backgroundColor = light ? 'rgba(0, 0, 0, 0.06)' : 'rgba(255, 255, 255, 0.09)';\n const hoverBackground = light ? 'rgba(0, 0, 0, 0.09)' : 'rgba(255, 255, 255, 0.13)';\n const disabledBackground = light ? 'rgba(0, 0, 0, 0.12)' : 'rgba(255, 255, 255, 0.12)';\n return {\n position: 'relative',\n backgroundColor: theme.vars ? theme.vars.palette.FilledInput.bg : backgroundColor,\n borderTopLeftRadius: (theme.vars || theme).shape.borderRadius,\n borderTopRightRadius: (theme.vars || theme).shape.borderRadius,\n transition: theme.transitions.create('background-color', {\n duration: theme.transitions.duration.shorter,\n easing: theme.transitions.easing.easeOut\n }),\n '&:hover': {\n backgroundColor: theme.vars ? theme.vars.palette.FilledInput.hoverBg : hoverBackground,\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: theme.vars ? theme.vars.palette.FilledInput.bg : backgroundColor\n }\n },\n [`&.${filledInputClasses.focused}`]: {\n backgroundColor: theme.vars ? theme.vars.palette.FilledInput.bg : backgroundColor\n },\n [`&.${filledInputClasses.disabled}`]: {\n backgroundColor: theme.vars ? theme.vars.palette.FilledInput.disabledBg : disabledBackground\n },\n variants: [{\n props: ({\n ownerState\n }) => !ownerState.disableUnderline,\n style: {\n '&::after': {\n left: 0,\n bottom: 0,\n content: '\"\"',\n position: 'absolute',\n right: 0,\n transform: 'scaleX(0)',\n transition: theme.transitions.create('transform', {\n duration: theme.transitions.duration.shorter,\n easing: theme.transitions.easing.easeOut\n }),\n pointerEvents: 'none' // Transparent to the hover style.\n },\n [`&.${filledInputClasses.focused}:after`]: {\n // translateX(0) is a workaround for Safari transform scale bug\n // See https://github.com/mui/material-ui/issues/31766\n transform: 'scaleX(1) translateX(0)'\n },\n [`&.${filledInputClasses.error}`]: {\n '&::before, &::after': {\n borderBottomColor: (theme.vars || theme).palette.error.main\n }\n },\n '&::before': {\n borderBottom: `1px solid ${theme.vars ? `rgba(${theme.vars.palette.common.onBackgroundChannel} / ${theme.vars.opacity.inputUnderline})` : bottomLineColor}`,\n left: 0,\n bottom: 0,\n content: '\"\\\\00a0\"',\n position: 'absolute',\n right: 0,\n transition: theme.transitions.create('border-bottom-color', {\n duration: theme.transitions.duration.shorter\n }),\n pointerEvents: 'none' // Transparent to the hover style.\n },\n [`&:hover:not(.${filledInputClasses.disabled}, .${filledInputClasses.error}):before`]: {\n borderBottom: `1px solid ${(theme.vars || theme).palette.text.primary}`\n },\n [`&.${filledInputClasses.disabled}:before`]: {\n borderBottomStyle: 'dotted'\n }\n }\n }, ...Object.entries(theme.palette).filter(createSimplePaletteValueFilter()) // check all the used fields in the style below\n .map(([color]) => ({\n props: {\n disableUnderline: false,\n color\n },\n style: {\n '&::after': {\n borderBottom: `2px solid ${(theme.vars || theme).palette[color]?.main}`\n }\n }\n })), {\n props: ({\n ownerState\n }) => ownerState.startAdornment,\n style: {\n paddingLeft: 12\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.endAdornment,\n style: {\n paddingRight: 12\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.multiline,\n style: {\n padding: '25px 12px 8px'\n }\n }, {\n props: ({\n ownerState,\n size\n }) => ownerState.multiline && size === 'small',\n style: {\n paddingTop: 21,\n paddingBottom: 4\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.multiline && ownerState.hiddenLabel,\n style: {\n paddingTop: 16,\n paddingBottom: 17\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.multiline && ownerState.hiddenLabel && ownerState.size === 'small',\n style: {\n paddingTop: 8,\n paddingBottom: 9\n }\n }]\n };\n}));\nconst FilledInputInput = styled(InputBaseInput, {\n name: 'MuiFilledInput',\n slot: 'Input',\n overridesResolver: inputBaseInputOverridesResolver\n})(memoTheme(({\n theme\n}) => ({\n paddingTop: 25,\n paddingRight: 12,\n paddingBottom: 8,\n paddingLeft: 12,\n ...(!theme.vars && {\n '&:-webkit-autofill': {\n WebkitBoxShadow: theme.palette.mode === 'light' ? null : '0 0 0 100px #266798 inset',\n WebkitTextFillColor: theme.palette.mode === 'light' ? null : '#fff',\n caretColor: theme.palette.mode === 'light' ? null : '#fff',\n borderTopLeftRadius: 'inherit',\n borderTopRightRadius: 'inherit'\n }\n }),\n ...(theme.vars && {\n '&:-webkit-autofill': {\n borderTopLeftRadius: 'inherit',\n borderTopRightRadius: 'inherit'\n },\n [theme.getColorSchemeSelector('dark')]: {\n '&:-webkit-autofill': {\n WebkitBoxShadow: '0 0 0 100px #266798 inset',\n WebkitTextFillColor: '#fff',\n caretColor: '#fff'\n }\n }\n }),\n variants: [{\n props: {\n size: 'small'\n },\n style: {\n paddingTop: 21,\n paddingBottom: 4\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.hiddenLabel,\n style: {\n paddingTop: 16,\n paddingBottom: 17\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.startAdornment,\n style: {\n paddingLeft: 0\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.endAdornment,\n style: {\n paddingRight: 0\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.hiddenLabel && ownerState.size === 'small',\n style: {\n paddingTop: 8,\n paddingBottom: 9\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.multiline,\n style: {\n paddingTop: 0,\n paddingBottom: 0,\n paddingLeft: 0,\n paddingRight: 0\n }\n }]\n})));\nconst FilledInput = /*#__PURE__*/React.forwardRef(function FilledInput(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiFilledInput'\n });\n const {\n disableUnderline = false,\n components = {},\n componentsProps: componentsPropsProp,\n fullWidth = false,\n hiddenLabel,\n // declare here to prevent spreading to DOM\n inputComponent = 'input',\n multiline = false,\n slotProps,\n slots = {},\n type = 'text',\n ...other\n } = props;\n const ownerState = {\n ...props,\n disableUnderline,\n fullWidth,\n inputComponent,\n multiline,\n type\n };\n const classes = useUtilityClasses(props);\n const filledInputComponentsProps = {\n root: {\n ownerState\n },\n input: {\n ownerState\n }\n };\n const componentsProps = slotProps ?? componentsPropsProp ? deepmerge(filledInputComponentsProps, slotProps ?? componentsPropsProp) : filledInputComponentsProps;\n const RootSlot = slots.root ?? components.Root ?? FilledInputRoot;\n const InputSlot = slots.input ?? components.Input ?? FilledInputInput;\n return /*#__PURE__*/_jsx(InputBase, {\n slots: {\n root: RootSlot,\n input: InputSlot\n },\n componentsProps: componentsProps,\n fullWidth: fullWidth,\n inputComponent: inputComponent,\n multiline: multiline,\n ref: ref,\n type: type,\n ...other,\n classes: classes\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? FilledInput.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * This prop helps users to fill forms faster, especially on mobile devices.\n * The name can be confusing, as it's more like an autofill.\n * You can learn more about it [following the specification](https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#autofill).\n */\n autoComplete: PropTypes.string,\n /**\n * If `true`, the `input` element is focused during the first mount.\n */\n autoFocus: PropTypes.bool,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).\n * The prop defaults to the value (`'primary'`) inherited from the parent FormControl component.\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['primary', 'secondary']), PropTypes.string]),\n /**\n * The components used for each slot inside.\n *\n * @deprecated use the `slots` prop instead. This prop will be removed in v7. See [Migrating from deprecated APIs](https://mui.com/material-ui/migration/migrating-from-deprecated-apis/) for more details.\n *\n * @default {}\n */\n components: PropTypes.shape({\n Input: PropTypes.elementType,\n Root: PropTypes.elementType\n }),\n /**\n * The extra props for the slot components.\n * You can override the existing props or add new ones.\n *\n * @deprecated use the `slotProps` prop instead. This prop will be removed in v7. See [Migrating from deprecated APIs](https://mui.com/material-ui/migration/migrating-from-deprecated-apis/) for more details.\n *\n * @default {}\n */\n componentsProps: PropTypes.shape({\n input: PropTypes.object,\n root: PropTypes.object\n }),\n /**\n * The default value. Use when the component is not controlled.\n */\n defaultValue: PropTypes.any,\n /**\n * If `true`, the component is disabled.\n * The prop defaults to the value (`false`) inherited from the parent FormControl component.\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, the input will not have an underline.\n * @default false\n */\n disableUnderline: PropTypes.bool,\n /**\n * End `InputAdornment` for this component.\n */\n endAdornment: PropTypes.node,\n /**\n * If `true`, the `input` will indicate an error.\n * The prop defaults to the value (`false`) inherited from the parent FormControl component.\n */\n error: PropTypes.bool,\n /**\n * If `true`, the `input` will take up the full width of its container.\n * @default false\n */\n fullWidth: PropTypes.bool,\n /**\n * If `true`, the label is hidden.\n * This is used to increase density for a `FilledInput`.\n * Be sure to add `aria-label` to the `input` element.\n * @default false\n */\n hiddenLabel: PropTypes.bool,\n /**\n * The id of the `input` element.\n */\n id: PropTypes.string,\n /**\n * The component used for the `input` element.\n * Either a string to use a HTML element or a component.\n * @default 'input'\n */\n inputComponent: PropTypes.elementType,\n /**\n * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n * @default {}\n */\n inputProps: PropTypes.object,\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n /**\n * If `dense`, will adjust vertical spacing. This is normally obtained via context from\n * FormControl.\n * The prop defaults to the value (`'none'`) inherited from the parent FormControl component.\n */\n margin: PropTypes.oneOf(['dense', 'none']),\n /**\n * Maximum number of rows to display when multiline option is set to true.\n */\n maxRows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * Minimum number of rows to display when multiline option is set to true.\n */\n minRows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * If `true`, a [TextareaAutosize](https://mui.com/material-ui/react-textarea-autosize/) element is rendered.\n * @default false\n */\n multiline: PropTypes.bool,\n /**\n * Name attribute of the `input` element.\n */\n name: PropTypes.string,\n /**\n * Callback fired when the value is changed.\n *\n * @param {React.ChangeEvent} event The event source of the callback.\n * You can pull out the new value by accessing `event.target.value` (string).\n */\n onChange: PropTypes.func,\n /**\n * The short hint displayed in the `input` before the user enters a value.\n */\n placeholder: PropTypes.string,\n /**\n * It prevents the user from changing the value of the field\n * (not from interacting with the field).\n */\n readOnly: PropTypes.bool,\n /**\n * If `true`, the `input` element is required.\n * The prop defaults to the value (`false`) inherited from the parent FormControl component.\n */\n required: PropTypes.bool,\n /**\n * Number of rows to display when multiline option is set to true.\n */\n rows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * The extra props for the slot components.\n * You can override the existing props or add new ones.\n *\n * This prop is an alias for the `componentsProps` prop, which will be deprecated in the future.\n *\n * @default {}\n */\n slotProps: PropTypes.shape({\n input: PropTypes.object,\n root: PropTypes.object\n }),\n /**\n * The components used for each slot inside.\n *\n * This prop is an alias for the `components` prop, which will be deprecated in the future.\n *\n * @default {}\n */\n slots: PropTypes.shape({\n input: PropTypes.elementType,\n root: PropTypes.elementType\n }),\n /**\n * Start `InputAdornment` for this component.\n */\n startAdornment: PropTypes.node,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * Type of the `input` element. It should be [a valid HTML5 input type](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Form_%3Cinput%3E_types).\n * @default 'text'\n */\n type: PropTypes.string,\n /**\n * The value of the `input` element, required for a controlled component.\n */\n value: PropTypes.any\n} : void 0;\nif (FilledInput) {\n FilledInput.muiName = 'Input';\n}\nexport default FilledInput;","'use client';\n\nvar _span;\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport rootShouldForwardProp from \"../styles/rootShouldForwardProp.js\";\nimport { styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst NotchedOutlineRoot = styled('fieldset', {\n shouldForwardProp: rootShouldForwardProp\n})({\n textAlign: 'left',\n position: 'absolute',\n bottom: 0,\n right: 0,\n top: -5,\n left: 0,\n margin: 0,\n padding: '0 8px',\n pointerEvents: 'none',\n borderRadius: 'inherit',\n borderStyle: 'solid',\n borderWidth: 1,\n overflow: 'hidden',\n minWidth: '0%'\n});\nconst NotchedOutlineLegend = styled('legend', {\n shouldForwardProp: rootShouldForwardProp\n})(memoTheme(({\n theme\n}) => ({\n float: 'unset',\n // Fix conflict with bootstrap\n width: 'auto',\n // Fix conflict with bootstrap\n overflow: 'hidden',\n // Fix Horizontal scroll when label too long\n variants: [{\n props: ({\n ownerState\n }) => !ownerState.withLabel,\n style: {\n padding: 0,\n lineHeight: '11px',\n // sync with `height` in `legend` styles\n transition: theme.transitions.create('width', {\n duration: 150,\n easing: theme.transitions.easing.easeOut\n })\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.withLabel,\n style: {\n display: 'block',\n // Fix conflict with normalize.css and sanitize.css\n padding: 0,\n height: 11,\n // sync with `lineHeight` in `legend` styles\n fontSize: '0.75em',\n visibility: 'hidden',\n maxWidth: 0.01,\n transition: theme.transitions.create('max-width', {\n duration: 50,\n easing: theme.transitions.easing.easeOut\n }),\n whiteSpace: 'nowrap',\n '& > span': {\n paddingLeft: 5,\n paddingRight: 5,\n display: 'inline-block',\n opacity: 0,\n visibility: 'visible'\n }\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.withLabel && ownerState.notched,\n style: {\n maxWidth: '100%',\n transition: theme.transitions.create('max-width', {\n duration: 100,\n easing: theme.transitions.easing.easeOut,\n delay: 50\n })\n }\n }]\n})));\n\n/**\n * @ignore - internal component.\n */\nexport default function NotchedOutline(props) {\n const {\n children,\n classes,\n className,\n label,\n notched,\n ...other\n } = props;\n const withLabel = label != null && label !== '';\n const ownerState = {\n ...props,\n notched,\n withLabel\n };\n return /*#__PURE__*/_jsx(NotchedOutlineRoot, {\n \"aria-hidden\": true,\n className: className,\n ownerState: ownerState,\n ...other,\n children: /*#__PURE__*/_jsx(NotchedOutlineLegend, {\n ownerState: ownerState,\n children: withLabel ? /*#__PURE__*/_jsx(\"span\", {\n children: label\n }) : // notranslate needed while Google Translate will not fix zero-width space issue\n _span || (_span = /*#__PURE__*/_jsx(\"span\", {\n className: \"notranslate\",\n children: \"\\u200B\"\n }))\n })\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? NotchedOutline.propTypes /* remove-proptypes */ = {\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The label.\n */\n label: PropTypes.node,\n /**\n * If `true`, the outline is notched to accommodate the label.\n */\n notched: PropTypes.bool.isRequired,\n /**\n * @ignore\n */\n style: PropTypes.object\n} : void 0;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nimport { inputBaseClasses } from \"../InputBase/index.js\";\nexport function getOutlinedInputUtilityClass(slot) {\n return generateUtilityClass('MuiOutlinedInput', slot);\n}\nconst outlinedInputClasses = {\n ...inputBaseClasses,\n ...generateUtilityClasses('MuiOutlinedInput', ['root', 'notchedOutline', 'input'])\n};\nexport default outlinedInputClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport refType from '@mui/utils/refType';\nimport composeClasses from '@mui/utils/composeClasses';\nimport NotchedOutline from \"./NotchedOutline.js\";\nimport useFormControl from \"../FormControl/useFormControl.js\";\nimport formControlState from \"../FormControl/formControlState.js\";\nimport rootShouldForwardProp from \"../styles/rootShouldForwardProp.js\";\nimport { styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport createSimplePaletteValueFilter from \"../utils/createSimplePaletteValueFilter.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport outlinedInputClasses, { getOutlinedInputUtilityClass } from \"./outlinedInputClasses.js\";\nimport InputBase, { rootOverridesResolver as inputBaseRootOverridesResolver, inputOverridesResolver as inputBaseInputOverridesResolver, InputBaseRoot, InputBaseInput } from \"../InputBase/InputBase.js\";\nimport { jsxs as _jsxs, jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n notchedOutline: ['notchedOutline'],\n input: ['input']\n };\n const composedClasses = composeClasses(slots, getOutlinedInputUtilityClass, classes);\n return {\n ...classes,\n // forward classes to the InputBase\n ...composedClasses\n };\n};\nconst OutlinedInputRoot = styled(InputBaseRoot, {\n shouldForwardProp: prop => rootShouldForwardProp(prop) || prop === 'classes',\n name: 'MuiOutlinedInput',\n slot: 'Root',\n overridesResolver: inputBaseRootOverridesResolver\n})(memoTheme(({\n theme\n}) => {\n const borderColor = theme.palette.mode === 'light' ? 'rgba(0, 0, 0, 0.23)' : 'rgba(255, 255, 255, 0.23)';\n return {\n position: 'relative',\n borderRadius: (theme.vars || theme).shape.borderRadius,\n [`&:hover .${outlinedInputClasses.notchedOutline}`]: {\n borderColor: (theme.vars || theme).palette.text.primary\n },\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n [`&:hover .${outlinedInputClasses.notchedOutline}`]: {\n borderColor: theme.vars ? `rgba(${theme.vars.palette.common.onBackgroundChannel} / 0.23)` : borderColor\n }\n },\n [`&.${outlinedInputClasses.focused} .${outlinedInputClasses.notchedOutline}`]: {\n borderWidth: 2\n },\n variants: [...Object.entries(theme.palette).filter(createSimplePaletteValueFilter()).map(([color]) => ({\n props: {\n color\n },\n style: {\n [`&.${outlinedInputClasses.focused} .${outlinedInputClasses.notchedOutline}`]: {\n borderColor: (theme.vars || theme).palette[color].main\n }\n }\n })), {\n props: {},\n // to overide the above style\n style: {\n [`&.${outlinedInputClasses.error} .${outlinedInputClasses.notchedOutline}`]: {\n borderColor: (theme.vars || theme).palette.error.main\n },\n [`&.${outlinedInputClasses.disabled} .${outlinedInputClasses.notchedOutline}`]: {\n borderColor: (theme.vars || theme).palette.action.disabled\n }\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.startAdornment,\n style: {\n paddingLeft: 14\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.endAdornment,\n style: {\n paddingRight: 14\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.multiline,\n style: {\n padding: '16.5px 14px'\n }\n }, {\n props: ({\n ownerState,\n size\n }) => ownerState.multiline && size === 'small',\n style: {\n padding: '8.5px 14px'\n }\n }]\n };\n}));\nconst NotchedOutlineRoot = styled(NotchedOutline, {\n name: 'MuiOutlinedInput',\n slot: 'NotchedOutline',\n overridesResolver: (props, styles) => styles.notchedOutline\n})(memoTheme(({\n theme\n}) => {\n const borderColor = theme.palette.mode === 'light' ? 'rgba(0, 0, 0, 0.23)' : 'rgba(255, 255, 255, 0.23)';\n return {\n borderColor: theme.vars ? `rgba(${theme.vars.palette.common.onBackgroundChannel} / 0.23)` : borderColor\n };\n}));\nconst OutlinedInputInput = styled(InputBaseInput, {\n name: 'MuiOutlinedInput',\n slot: 'Input',\n overridesResolver: inputBaseInputOverridesResolver\n})(memoTheme(({\n theme\n}) => ({\n padding: '16.5px 14px',\n ...(!theme.vars && {\n '&:-webkit-autofill': {\n WebkitBoxShadow: theme.palette.mode === 'light' ? null : '0 0 0 100px #266798 inset',\n WebkitTextFillColor: theme.palette.mode === 'light' ? null : '#fff',\n caretColor: theme.palette.mode === 'light' ? null : '#fff',\n borderRadius: 'inherit'\n }\n }),\n ...(theme.vars && {\n '&:-webkit-autofill': {\n borderRadius: 'inherit'\n },\n [theme.getColorSchemeSelector('dark')]: {\n '&:-webkit-autofill': {\n WebkitBoxShadow: '0 0 0 100px #266798 inset',\n WebkitTextFillColor: '#fff',\n caretColor: '#fff'\n }\n }\n }),\n variants: [{\n props: {\n size: 'small'\n },\n style: {\n padding: '8.5px 14px'\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.multiline,\n style: {\n padding: 0\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.startAdornment,\n style: {\n paddingLeft: 0\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.endAdornment,\n style: {\n paddingRight: 0\n }\n }]\n})));\nconst OutlinedInput = /*#__PURE__*/React.forwardRef(function OutlinedInput(inProps, ref) {\n var _React$Fragment;\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiOutlinedInput'\n });\n const {\n components = {},\n fullWidth = false,\n inputComponent = 'input',\n label,\n multiline = false,\n notched,\n slots = {},\n type = 'text',\n ...other\n } = props;\n const classes = useUtilityClasses(props);\n const muiFormControl = useFormControl();\n const fcs = formControlState({\n props,\n muiFormControl,\n states: ['color', 'disabled', 'error', 'focused', 'hiddenLabel', 'size', 'required']\n });\n const ownerState = {\n ...props,\n color: fcs.color || 'primary',\n disabled: fcs.disabled,\n error: fcs.error,\n focused: fcs.focused,\n formControl: muiFormControl,\n fullWidth,\n hiddenLabel: fcs.hiddenLabel,\n multiline,\n size: fcs.size,\n type\n };\n const RootSlot = slots.root ?? components.Root ?? OutlinedInputRoot;\n const InputSlot = slots.input ?? components.Input ?? OutlinedInputInput;\n return /*#__PURE__*/_jsx(InputBase, {\n slots: {\n root: RootSlot,\n input: InputSlot\n },\n renderSuffix: state => /*#__PURE__*/_jsx(NotchedOutlineRoot, {\n ownerState: ownerState,\n className: classes.notchedOutline,\n label: label != null && label !== '' && fcs.required ? _React$Fragment || (_React$Fragment = /*#__PURE__*/_jsxs(React.Fragment, {\n children: [label, \"\\u2009\", '*']\n })) : label,\n notched: typeof notched !== 'undefined' ? notched : Boolean(state.startAdornment || state.filled || state.focused)\n }),\n fullWidth: fullWidth,\n inputComponent: inputComponent,\n multiline: multiline,\n ref: ref,\n type: type,\n ...other,\n classes: {\n ...classes,\n notchedOutline: null\n }\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? OutlinedInput.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * This prop helps users to fill forms faster, especially on mobile devices.\n * The name can be confusing, as it's more like an autofill.\n * You can learn more about it [following the specification](https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#autofill).\n */\n autoComplete: PropTypes.string,\n /**\n * If `true`, the `input` element is focused during the first mount.\n */\n autoFocus: PropTypes.bool,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).\n * The prop defaults to the value (`'primary'`) inherited from the parent FormControl component.\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['primary', 'secondary']), PropTypes.string]),\n /**\n * The components used for each slot inside.\n *\n * @deprecated use the `slots` prop instead. This prop will be removed in v7. See [Migrating from deprecated APIs](https://mui.com/material-ui/migration/migrating-from-deprecated-apis/) for more details.\n *\n * @default {}\n */\n components: PropTypes.shape({\n Input: PropTypes.elementType,\n Root: PropTypes.elementType\n }),\n /**\n * The default value. Use when the component is not controlled.\n */\n defaultValue: PropTypes.any,\n /**\n * If `true`, the component is disabled.\n * The prop defaults to the value (`false`) inherited from the parent FormControl component.\n */\n disabled: PropTypes.bool,\n /**\n * End `InputAdornment` for this component.\n */\n endAdornment: PropTypes.node,\n /**\n * If `true`, the `input` will indicate an error.\n * The prop defaults to the value (`false`) inherited from the parent FormControl component.\n */\n error: PropTypes.bool,\n /**\n * If `true`, the `input` will take up the full width of its container.\n * @default false\n */\n fullWidth: PropTypes.bool,\n /**\n * The id of the `input` element.\n */\n id: PropTypes.string,\n /**\n * The component used for the `input` element.\n * Either a string to use a HTML element or a component.\n * @default 'input'\n */\n inputComponent: PropTypes.elementType,\n /**\n * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n * @default {}\n */\n inputProps: PropTypes.object,\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n /**\n * The label of the `input`. It is only used for layout. The actual labelling\n * is handled by `InputLabel`.\n */\n label: PropTypes.node,\n /**\n * If `dense`, will adjust vertical spacing. This is normally obtained via context from\n * FormControl.\n * The prop defaults to the value (`'none'`) inherited from the parent FormControl component.\n */\n margin: PropTypes.oneOf(['dense', 'none']),\n /**\n * Maximum number of rows to display when multiline option is set to true.\n */\n maxRows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * Minimum number of rows to display when multiline option is set to true.\n */\n minRows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * If `true`, a [TextareaAutosize](https://mui.com/material-ui/react-textarea-autosize/) element is rendered.\n * @default false\n */\n multiline: PropTypes.bool,\n /**\n * Name attribute of the `input` element.\n */\n name: PropTypes.string,\n /**\n * If `true`, the outline is notched to accommodate the label.\n */\n notched: PropTypes.bool,\n /**\n * Callback fired when the value is changed.\n *\n * @param {React.ChangeEvent} event The event source of the callback.\n * You can pull out the new value by accessing `event.target.value` (string).\n */\n onChange: PropTypes.func,\n /**\n * The short hint displayed in the `input` before the user enters a value.\n */\n placeholder: PropTypes.string,\n /**\n * It prevents the user from changing the value of the field\n * (not from interacting with the field).\n */\n readOnly: PropTypes.bool,\n /**\n * If `true`, the `input` element is required.\n * The prop defaults to the value (`false`) inherited from the parent FormControl component.\n */\n required: PropTypes.bool,\n /**\n * Number of rows to display when multiline option is set to true.\n */\n rows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * The components used for each slot inside.\n *\n * This prop is an alias for the `components` prop, which will be deprecated in the future.\n *\n * @default {}\n */\n slots: PropTypes.shape({\n input: PropTypes.elementType,\n root: PropTypes.elementType\n }),\n /**\n * Start `InputAdornment` for this component.\n */\n startAdornment: PropTypes.node,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * Type of the `input` element. It should be [a valid HTML5 input type](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Form_%3Cinput%3E_types).\n * @default 'text'\n */\n type: PropTypes.string,\n /**\n * The value of the `input` element, required for a controlled component.\n */\n value: PropTypes.any\n} : void 0;\nif (OutlinedInput) {\n OutlinedInput.muiName = 'Input';\n}\nexport default OutlinedInput;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getFormLabelUtilityClasses(slot) {\n return generateUtilityClass('MuiFormLabel', slot);\n}\nconst formLabelClasses = generateUtilityClasses('MuiFormLabel', ['root', 'colorSecondary', 'focused', 'disabled', 'error', 'filled', 'required', 'asterisk']);\nexport default formLabelClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport formControlState from \"../FormControl/formControlState.js\";\nimport useFormControl from \"../FormControl/useFormControl.js\";\nimport capitalize from \"../utils/capitalize.js\";\nimport { styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport createSimplePaletteValueFilter from \"../utils/createSimplePaletteValueFilter.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport formLabelClasses, { getFormLabelUtilityClasses } from \"./formLabelClasses.js\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n color,\n focused,\n disabled,\n error,\n filled,\n required\n } = ownerState;\n const slots = {\n root: ['root', `color${capitalize(color)}`, disabled && 'disabled', error && 'error', filled && 'filled', focused && 'focused', required && 'required'],\n asterisk: ['asterisk', error && 'error']\n };\n return composeClasses(slots, getFormLabelUtilityClasses, classes);\n};\nexport const FormLabelRoot = styled('label', {\n name: 'MuiFormLabel',\n slot: 'Root',\n overridesResolver: ({\n ownerState\n }, styles) => {\n return {\n ...styles.root,\n ...(ownerState.color === 'secondary' && styles.colorSecondary),\n ...(ownerState.filled && styles.filled)\n };\n }\n})(memoTheme(({\n theme\n}) => ({\n color: (theme.vars || theme).palette.text.secondary,\n ...theme.typography.body1,\n lineHeight: '1.4375em',\n padding: 0,\n position: 'relative',\n variants: [...Object.entries(theme.palette).filter(createSimplePaletteValueFilter()).map(([color]) => ({\n props: {\n color\n },\n style: {\n [`&.${formLabelClasses.focused}`]: {\n color: (theme.vars || theme).palette[color].main\n }\n }\n })), {\n props: {},\n style: {\n [`&.${formLabelClasses.disabled}`]: {\n color: (theme.vars || theme).palette.text.disabled\n },\n [`&.${formLabelClasses.error}`]: {\n color: (theme.vars || theme).palette.error.main\n }\n }\n }]\n})));\nconst AsteriskComponent = styled('span', {\n name: 'MuiFormLabel',\n slot: 'Asterisk',\n overridesResolver: (props, styles) => styles.asterisk\n})(memoTheme(({\n theme\n}) => ({\n [`&.${formLabelClasses.error}`]: {\n color: (theme.vars || theme).palette.error.main\n }\n})));\nconst FormLabel = /*#__PURE__*/React.forwardRef(function FormLabel(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiFormLabel'\n });\n const {\n children,\n className,\n color,\n component = 'label',\n disabled,\n error,\n filled,\n focused,\n required,\n ...other\n } = props;\n const muiFormControl = useFormControl();\n const fcs = formControlState({\n props,\n muiFormControl,\n states: ['color', 'required', 'focused', 'disabled', 'error', 'filled']\n });\n const ownerState = {\n ...props,\n color: fcs.color || 'primary',\n component,\n disabled: fcs.disabled,\n error: fcs.error,\n filled: fcs.filled,\n focused: fcs.focused,\n required: fcs.required\n };\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsxs(FormLabelRoot, {\n as: component,\n ownerState: ownerState,\n className: clsx(classes.root, className),\n ref: ref,\n ...other,\n children: [children, fcs.required && /*#__PURE__*/_jsxs(AsteriskComponent, {\n ownerState: ownerState,\n \"aria-hidden\": true,\n className: classes.asterisk,\n children: [\"\\u2009\", '*']\n })]\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? FormLabel.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['error', 'info', 'primary', 'secondary', 'success', 'warning']), PropTypes.string]),\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * If `true`, the label should be displayed in a disabled state.\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, the label is displayed in an error state.\n */\n error: PropTypes.bool,\n /**\n * If `true`, the label should use filled classes key.\n */\n filled: PropTypes.bool,\n /**\n * If `true`, the input of this label is focused (used by `FormGroup` components).\n */\n focused: PropTypes.bool,\n /**\n * If `true`, the label will indicate that the `input` is required.\n */\n required: PropTypes.bool,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default FormLabel;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getInputLabelUtilityClasses(slot) {\n return generateUtilityClass('MuiInputLabel', slot);\n}\nconst inputLabelClasses = generateUtilityClasses('MuiInputLabel', ['root', 'focused', 'disabled', 'error', 'required', 'asterisk', 'formControl', 'sizeSmall', 'shrink', 'animated', 'standard', 'filled', 'outlined']);\nexport default inputLabelClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport composeClasses from '@mui/utils/composeClasses';\nimport clsx from 'clsx';\nimport formControlState from \"../FormControl/formControlState.js\";\nimport useFormControl from \"../FormControl/useFormControl.js\";\nimport FormLabel, { formLabelClasses } from \"../FormLabel/index.js\";\nimport capitalize from \"../utils/capitalize.js\";\nimport rootShouldForwardProp from \"../styles/rootShouldForwardProp.js\";\nimport { styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport { getInputLabelUtilityClasses } from \"./inputLabelClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n formControl,\n size,\n shrink,\n disableAnimation,\n variant,\n required\n } = ownerState;\n const slots = {\n root: ['root', formControl && 'formControl', !disableAnimation && 'animated', shrink && 'shrink', size && size !== 'normal' && `size${capitalize(size)}`, variant],\n asterisk: [required && 'asterisk']\n };\n const composedClasses = composeClasses(slots, getInputLabelUtilityClasses, classes);\n return {\n ...classes,\n // forward the focused, disabled, etc. classes to the FormLabel\n ...composedClasses\n };\n};\nconst InputLabelRoot = styled(FormLabel, {\n shouldForwardProp: prop => rootShouldForwardProp(prop) || prop === 'classes',\n name: 'MuiInputLabel',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [{\n [`& .${formLabelClasses.asterisk}`]: styles.asterisk\n }, styles.root, ownerState.formControl && styles.formControl, ownerState.size === 'small' && styles.sizeSmall, ownerState.shrink && styles.shrink, !ownerState.disableAnimation && styles.animated, ownerState.focused && styles.focused, styles[ownerState.variant]];\n }\n})(memoTheme(({\n theme\n}) => ({\n display: 'block',\n transformOrigin: 'top left',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n maxWidth: '100%',\n variants: [{\n props: ({\n ownerState\n }) => ownerState.formControl,\n style: {\n position: 'absolute',\n left: 0,\n top: 0,\n // slight alteration to spec spacing to match visual spec result\n transform: 'translate(0, 20px) scale(1)'\n }\n }, {\n props: {\n size: 'small'\n },\n style: {\n // Compensation for the `Input.inputSizeSmall` style.\n transform: 'translate(0, 17px) scale(1)'\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.shrink,\n style: {\n transform: 'translate(0, -1.5px) scale(0.75)',\n transformOrigin: 'top left',\n maxWidth: '133%'\n }\n }, {\n props: ({\n ownerState\n }) => !ownerState.disableAnimation,\n style: {\n transition: theme.transitions.create(['color', 'transform', 'max-width'], {\n duration: theme.transitions.duration.shorter,\n easing: theme.transitions.easing.easeOut\n })\n }\n }, {\n props: {\n variant: 'filled'\n },\n style: {\n // Chrome's autofill feature gives the input field a yellow background.\n // Since the input field is behind the label in the HTML tree,\n // the input field is drawn last and hides the label with an opaque background color.\n // zIndex: 1 will raise the label above opaque background-colors of input.\n zIndex: 1,\n pointerEvents: 'none',\n transform: 'translate(12px, 16px) scale(1)',\n maxWidth: 'calc(100% - 24px)'\n }\n }, {\n props: {\n variant: 'filled',\n size: 'small'\n },\n style: {\n transform: 'translate(12px, 13px) scale(1)'\n }\n }, {\n props: ({\n variant,\n ownerState\n }) => variant === 'filled' && ownerState.shrink,\n style: {\n userSelect: 'none',\n pointerEvents: 'auto',\n transform: 'translate(12px, 7px) scale(0.75)',\n maxWidth: 'calc(133% - 24px)'\n }\n }, {\n props: ({\n variant,\n ownerState,\n size\n }) => variant === 'filled' && ownerState.shrink && size === 'small',\n style: {\n transform: 'translate(12px, 4px) scale(0.75)'\n }\n }, {\n props: {\n variant: 'outlined'\n },\n style: {\n // see comment above on filled.zIndex\n zIndex: 1,\n pointerEvents: 'none',\n transform: 'translate(14px, 16px) scale(1)',\n maxWidth: 'calc(100% - 24px)'\n }\n }, {\n props: {\n variant: 'outlined',\n size: 'small'\n },\n style: {\n transform: 'translate(14px, 9px) scale(1)'\n }\n }, {\n props: ({\n variant,\n ownerState\n }) => variant === 'outlined' && ownerState.shrink,\n style: {\n userSelect: 'none',\n pointerEvents: 'auto',\n // Theoretically, we should have (8+5)*2/0.75 = 34px\n // but it feels a better when it bleeds a bit on the left, so 32px.\n maxWidth: 'calc(133% - 32px)',\n transform: 'translate(14px, -9px) scale(0.75)'\n }\n }]\n})));\nconst InputLabel = /*#__PURE__*/React.forwardRef(function InputLabel(inProps, ref) {\n const props = useDefaultProps({\n name: 'MuiInputLabel',\n props: inProps\n });\n const {\n disableAnimation = false,\n margin,\n shrink: shrinkProp,\n variant,\n className,\n ...other\n } = props;\n const muiFormControl = useFormControl();\n let shrink = shrinkProp;\n if (typeof shrink === 'undefined' && muiFormControl) {\n shrink = muiFormControl.filled || muiFormControl.focused || muiFormControl.adornedStart;\n }\n const fcs = formControlState({\n props,\n muiFormControl,\n states: ['size', 'variant', 'required', 'focused']\n });\n const ownerState = {\n ...props,\n disableAnimation,\n formControl: muiFormControl,\n shrink,\n size: fcs.size,\n variant: fcs.variant,\n required: fcs.required,\n focused: fcs.focused\n };\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(InputLabelRoot, {\n \"data-shrink\": shrink,\n ref: ref,\n className: clsx(classes.root, className),\n ...other,\n ownerState: ownerState,\n classes: classes\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? InputLabel.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['error', 'info', 'primary', 'secondary', 'success', 'warning']), PropTypes.string]),\n /**\n * If `true`, the transition animation is disabled.\n * @default false\n */\n disableAnimation: PropTypes.bool,\n /**\n * If `true`, the component is disabled.\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, the label is displayed in an error state.\n */\n error: PropTypes.bool,\n /**\n * If `true`, the `input` of this label is focused.\n */\n focused: PropTypes.bool,\n /**\n * If `dense`, will adjust vertical spacing. This is normally obtained via context from\n * FormControl.\n */\n margin: PropTypes.oneOf(['dense']),\n /**\n * if `true`, the label will indicate that the `input` is required.\n */\n required: PropTypes.bool,\n /**\n * If `true`, the label is shrunk.\n */\n shrink: PropTypes.bool,\n /**\n * The size of the component.\n * @default 'normal'\n */\n size: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['normal', 'small']), PropTypes.string]),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The variant to use.\n */\n variant: PropTypes.oneOf(['filled', 'outlined', 'standard'])\n} : void 0;\nexport default InputLabel;","import isMuiElement from '@mui/utils/isMuiElement';\nexport default isMuiElement;","import * as React from 'react';\nexport default function isMuiElement(element, muiNames) {\n return /*#__PURE__*/React.isValidElement(element) && muiNames.indexOf(\n // For server components `muiName` is avaialble in element.type._payload.value.muiName\n // relevant info - https://github.com/facebook/react/blob/2807d781a08db8e9873687fccc25c0f12b4fb3d4/packages/react/src/ReactLazy.js#L45\n // eslint-disable-next-line no-underscore-dangle\n element.type.muiName ?? element.type?._payload?.value?.muiName) !== -1;\n}","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getFormControlUtilityClasses(slot) {\n return generateUtilityClass('MuiFormControl', slot);\n}\nconst formControlClasses = generateUtilityClasses('MuiFormControl', ['root', 'marginNone', 'marginNormal', 'marginDense', 'fullWidth', 'disabled']);\nexport default formControlClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { styled } from \"../zero-styled/index.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport { isFilled, isAdornedStart } from \"../InputBase/utils.js\";\nimport capitalize from \"../utils/capitalize.js\";\nimport isMuiElement from \"../utils/isMuiElement.js\";\nimport FormControlContext from \"./FormControlContext.js\";\nimport { getFormControlUtilityClasses } from \"./formControlClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n margin,\n fullWidth\n } = ownerState;\n const slots = {\n root: ['root', margin !== 'none' && `margin${capitalize(margin)}`, fullWidth && 'fullWidth']\n };\n return composeClasses(slots, getFormControlUtilityClasses, classes);\n};\nconst FormControlRoot = styled('div', {\n name: 'MuiFormControl',\n slot: 'Root',\n overridesResolver: ({\n ownerState\n }, styles) => {\n return {\n ...styles.root,\n ...styles[`margin${capitalize(ownerState.margin)}`],\n ...(ownerState.fullWidth && styles.fullWidth)\n };\n }\n})({\n display: 'inline-flex',\n flexDirection: 'column',\n position: 'relative',\n // Reset fieldset default style.\n minWidth: 0,\n padding: 0,\n margin: 0,\n border: 0,\n verticalAlign: 'top',\n // Fix alignment issue on Safari.\n variants: [{\n props: {\n margin: 'normal'\n },\n style: {\n marginTop: 16,\n marginBottom: 8\n }\n }, {\n props: {\n margin: 'dense'\n },\n style: {\n marginTop: 8,\n marginBottom: 4\n }\n }, {\n props: {\n fullWidth: true\n },\n style: {\n width: '100%'\n }\n }]\n});\n\n/**\n * Provides context such as filled/focused/error/required for form inputs.\n * Relying on the context provides high flexibility and ensures that the state always stays\n * consistent across the children of the `FormControl`.\n * This context is used by the following components:\n *\n * - FormLabel\n * - FormHelperText\n * - Input\n * - InputLabel\n *\n * You can find one composition example below and more going to [the demos](/material-ui/react-text-field/#components).\n *\n * ```jsx\n * \n * Email address\n * \n * We'll never share your email.\n * \n * ```\n *\n * ⚠️ Only one `InputBase` can be used within a FormControl because it creates visual inconsistencies.\n * For instance, only one input can be focused at the same time, the state shouldn't be shared.\n */\nconst FormControl = /*#__PURE__*/React.forwardRef(function FormControl(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiFormControl'\n });\n const {\n children,\n className,\n color = 'primary',\n component = 'div',\n disabled = false,\n error = false,\n focused: visuallyFocused,\n fullWidth = false,\n hiddenLabel = false,\n margin = 'none',\n required = false,\n size = 'medium',\n variant = 'outlined',\n ...other\n } = props;\n const ownerState = {\n ...props,\n color,\n component,\n disabled,\n error,\n fullWidth,\n hiddenLabel,\n margin,\n required,\n size,\n variant\n };\n const classes = useUtilityClasses(ownerState);\n const [adornedStart, setAdornedStart] = React.useState(() => {\n // We need to iterate through the children and find the Input in order\n // to fully support server-side rendering.\n let initialAdornedStart = false;\n if (children) {\n React.Children.forEach(children, child => {\n if (!isMuiElement(child, ['Input', 'Select'])) {\n return;\n }\n const input = isMuiElement(child, ['Select']) ? child.props.input : child;\n if (input && isAdornedStart(input.props)) {\n initialAdornedStart = true;\n }\n });\n }\n return initialAdornedStart;\n });\n const [filled, setFilled] = React.useState(() => {\n // We need to iterate through the children and find the Input in order\n // to fully support server-side rendering.\n let initialFilled = false;\n if (children) {\n React.Children.forEach(children, child => {\n if (!isMuiElement(child, ['Input', 'Select'])) {\n return;\n }\n if (isFilled(child.props, true) || isFilled(child.props.inputProps, true)) {\n initialFilled = true;\n }\n });\n }\n return initialFilled;\n });\n const [focusedState, setFocused] = React.useState(false);\n if (disabled && focusedState) {\n setFocused(false);\n }\n const focused = visuallyFocused !== undefined && !disabled ? visuallyFocused : focusedState;\n let registerEffect;\n const registeredInput = React.useRef(false);\n if (process.env.NODE_ENV !== 'production') {\n registerEffect = () => {\n if (registeredInput.current) {\n console.error(['MUI: There are multiple `InputBase` components inside a FormControl.', 'This creates visual inconsistencies, only use one `InputBase`.'].join('\\n'));\n }\n registeredInput.current = true;\n return () => {\n registeredInput.current = false;\n };\n };\n }\n const childContext = React.useMemo(() => {\n return {\n adornedStart,\n setAdornedStart,\n color,\n disabled,\n error,\n filled,\n focused,\n fullWidth,\n hiddenLabel,\n size,\n onBlur: () => {\n setFocused(false);\n },\n onEmpty: () => {\n setFilled(false);\n },\n onFilled: () => {\n setFilled(true);\n },\n onFocus: () => {\n setFocused(true);\n },\n registerEffect,\n required,\n variant\n };\n }, [adornedStart, color, disabled, error, filled, focused, fullWidth, hiddenLabel, registerEffect, required, size, variant]);\n return /*#__PURE__*/_jsx(FormControlContext.Provider, {\n value: childContext,\n children: /*#__PURE__*/_jsx(FormControlRoot, {\n as: component,\n ownerState: ownerState,\n className: clsx(classes.root, className),\n ref: ref,\n ...other,\n children: children\n })\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? FormControl.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).\n * @default 'primary'\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['primary', 'secondary', 'error', 'info', 'success', 'warning']), PropTypes.string]),\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * If `true`, the label, input and helper text should be displayed in a disabled state.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, the label is displayed in an error state.\n * @default false\n */\n error: PropTypes.bool,\n /**\n * If `true`, the component is displayed in focused state.\n */\n focused: PropTypes.bool,\n /**\n * If `true`, the component will take up the full width of its container.\n * @default false\n */\n fullWidth: PropTypes.bool,\n /**\n * If `true`, the label is hidden.\n * This is used to increase density for a `FilledInput`.\n * Be sure to add `aria-label` to the `input` element.\n * @default false\n */\n hiddenLabel: PropTypes.bool,\n /**\n * If `dense` or `normal`, will adjust vertical spacing of this and contained components.\n * @default 'none'\n */\n margin: PropTypes.oneOf(['dense', 'none', 'normal']),\n /**\n * If `true`, the label will indicate that the `input` is required.\n * @default false\n */\n required: PropTypes.bool,\n /**\n * The size of the component.\n * @default 'medium'\n */\n size: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['medium', 'small']), PropTypes.string]),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The variant to use.\n * @default 'outlined'\n */\n variant: PropTypes.oneOf(['filled', 'outlined', 'standard'])\n} : void 0;\nexport default FormControl;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getFormHelperTextUtilityClasses(slot) {\n return generateUtilityClass('MuiFormHelperText', slot);\n}\nconst formHelperTextClasses = generateUtilityClasses('MuiFormHelperText', ['root', 'error', 'disabled', 'sizeSmall', 'sizeMedium', 'contained', 'focused', 'filled', 'required']);\nexport default formHelperTextClasses;","'use client';\n\nvar _span;\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport formControlState from \"../FormControl/formControlState.js\";\nimport useFormControl from \"../FormControl/useFormControl.js\";\nimport { styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport capitalize from \"../utils/capitalize.js\";\nimport formHelperTextClasses, { getFormHelperTextUtilityClasses } from \"./formHelperTextClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n contained,\n size,\n disabled,\n error,\n filled,\n focused,\n required\n } = ownerState;\n const slots = {\n root: ['root', disabled && 'disabled', error && 'error', size && `size${capitalize(size)}`, contained && 'contained', focused && 'focused', filled && 'filled', required && 'required']\n };\n return composeClasses(slots, getFormHelperTextUtilityClasses, classes);\n};\nconst FormHelperTextRoot = styled('p', {\n name: 'MuiFormHelperText',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.size && styles[`size${capitalize(ownerState.size)}`], ownerState.contained && styles.contained, ownerState.filled && styles.filled];\n }\n})(memoTheme(({\n theme\n}) => ({\n color: (theme.vars || theme).palette.text.secondary,\n ...theme.typography.caption,\n textAlign: 'left',\n marginTop: 3,\n marginRight: 0,\n marginBottom: 0,\n marginLeft: 0,\n [`&.${formHelperTextClasses.disabled}`]: {\n color: (theme.vars || theme).palette.text.disabled\n },\n [`&.${formHelperTextClasses.error}`]: {\n color: (theme.vars || theme).palette.error.main\n },\n variants: [{\n props: {\n size: 'small'\n },\n style: {\n marginTop: 4\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.contained,\n style: {\n marginLeft: 14,\n marginRight: 14\n }\n }]\n})));\nconst FormHelperText = /*#__PURE__*/React.forwardRef(function FormHelperText(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiFormHelperText'\n });\n const {\n children,\n className,\n component = 'p',\n disabled,\n error,\n filled,\n focused,\n margin,\n required,\n variant,\n ...other\n } = props;\n const muiFormControl = useFormControl();\n const fcs = formControlState({\n props,\n muiFormControl,\n states: ['variant', 'size', 'disabled', 'error', 'filled', 'focused', 'required']\n });\n const ownerState = {\n ...props,\n component,\n contained: fcs.variant === 'filled' || fcs.variant === 'outlined',\n variant: fcs.variant,\n size: fcs.size,\n disabled: fcs.disabled,\n error: fcs.error,\n filled: fcs.filled,\n focused: fcs.focused,\n required: fcs.required\n };\n\n // This issue explains why this is required: https://github.com/mui/material-ui/issues/42184\n delete ownerState.ownerState;\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(FormHelperTextRoot, {\n as: component,\n className: clsx(classes.root, className),\n ref: ref,\n ...other,\n ownerState: ownerState,\n children: children === ' ' ? // notranslate needed while Google Translate will not fix zero-width space issue\n _span || (_span = /*#__PURE__*/_jsx(\"span\", {\n className: \"notranslate\",\n children: \"\\u200B\"\n })) : children\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? FormHelperText.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n *\n * If `' '` is provided, the component reserves one line height for displaying a future message.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * If `true`, the helper text should be displayed in a disabled state.\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, helper text should be displayed in an error state.\n */\n error: PropTypes.bool,\n /**\n * If `true`, the helper text should use filled classes key.\n */\n filled: PropTypes.bool,\n /**\n * If `true`, the helper text should use focused classes key.\n */\n focused: PropTypes.bool,\n /**\n * If `dense`, will adjust vertical spacing. This is normally obtained via context from\n * FormControl.\n */\n margin: PropTypes.oneOf(['dense']),\n /**\n * If `true`, the helper text should use required classes key.\n */\n required: PropTypes.bool,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The variant to use.\n */\n variant: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['filled', 'outlined', 'standard']), PropTypes.string])\n} : void 0;\nexport default FormHelperText;","import * as React from 'react';\n\n/**\n * Returns the ref of a React element handling differences between React 19 and older versions.\n * It will throw runtime error if the element is not a valid React element.\n *\n * @param element React.ReactElement\n * @returns React.Ref | null\n */\nexport default function getReactElementRef(element) {\n // 'ref' is passed as prop in React 19, whereas 'ref' is directly attached to children in older versions\n if (parseInt(React.version, 10) >= 19) {\n return element?.props?.ref || null;\n }\n // @ts-expect-error element.ref is not included in the ReactElement type\n // https://github.com/DefinitelyTyped/DefinitelyTyped/discussions/70189\n return element?.ref || null;\n}","import ownerDocument from '@mui/utils/ownerDocument';\nexport default ownerDocument;","'use client';\n\nimport useForkRef from \"../useForkRef/index.js\";\nimport appendOwnerState from \"../appendOwnerState/index.js\";\nimport mergeSlotProps from \"../mergeSlotProps/index.js\";\nimport resolveComponentProps from \"../resolveComponentProps/index.js\";\n/**\n * @ignore - do not document.\n * Builds the props to be passed into the slot of an unstyled component.\n * It merges the internal props of the component with the ones supplied by the user, allowing to customize the behavior.\n * If the slot component is not a host component, it also merges in the `ownerState`.\n *\n * @param parameters.getSlotProps - A function that returns the props to be passed to the slot component.\n */\nfunction useSlotProps(parameters) {\n const {\n elementType,\n externalSlotProps,\n ownerState,\n skipResolvingSlotProps = false,\n ...other\n } = parameters;\n const resolvedComponentsProps = skipResolvingSlotProps ? {} : resolveComponentProps(externalSlotProps, ownerState);\n const {\n props: mergedProps,\n internalRef\n } = mergeSlotProps({\n ...other,\n externalSlotProps: resolvedComponentsProps\n });\n const ref = useForkRef(internalRef, resolvedComponentsProps?.ref, parameters.additionalProps?.ref);\n const props = appendOwnerState(elementType, {\n ...mergedProps,\n ref\n }, ownerState);\n return props;\n}\nexport default useSlotProps;","'use client';\n\nimport * as React from 'react';\n\n/**\n * @ignore - internal component.\n */\nconst ListContext = /*#__PURE__*/React.createContext({});\nif (process.env.NODE_ENV !== 'production') {\n ListContext.displayName = 'ListContext';\n}\nexport default ListContext;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getListUtilityClass(slot) {\n return generateUtilityClass('MuiList', slot);\n}\nconst listClasses = generateUtilityClasses('MuiList', ['root', 'padding', 'dense', 'subheader']);\nexport default listClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { styled } from \"../zero-styled/index.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport ListContext from \"./ListContext.js\";\nimport { getListUtilityClass } from \"./listClasses.js\";\nimport { jsxs as _jsxs, jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n disablePadding,\n dense,\n subheader\n } = ownerState;\n const slots = {\n root: ['root', !disablePadding && 'padding', dense && 'dense', subheader && 'subheader']\n };\n return composeClasses(slots, getListUtilityClass, classes);\n};\nconst ListRoot = styled('ul', {\n name: 'MuiList',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, !ownerState.disablePadding && styles.padding, ownerState.dense && styles.dense, ownerState.subheader && styles.subheader];\n }\n})({\n listStyle: 'none',\n margin: 0,\n padding: 0,\n position: 'relative',\n variants: [{\n props: ({\n ownerState\n }) => !ownerState.disablePadding,\n style: {\n paddingTop: 8,\n paddingBottom: 8\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.subheader,\n style: {\n paddingTop: 0\n }\n }]\n});\nconst List = /*#__PURE__*/React.forwardRef(function List(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiList'\n });\n const {\n children,\n className,\n component = 'ul',\n dense = false,\n disablePadding = false,\n subheader,\n ...other\n } = props;\n const context = React.useMemo(() => ({\n dense\n }), [dense]);\n const ownerState = {\n ...props,\n component,\n dense,\n disablePadding\n };\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(ListContext.Provider, {\n value: context,\n children: /*#__PURE__*/_jsxs(ListRoot, {\n as: component,\n className: clsx(classes.root, className),\n ref: ref,\n ownerState: ownerState,\n ...other,\n children: [subheader, children]\n })\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? List.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * If `true`, compact vertical padding designed for keyboard and mouse input is used for\n * the list and list items.\n * The prop is available to descendant components as the `dense` context.\n * @default false\n */\n dense: PropTypes.bool,\n /**\n * If `true`, vertical padding is removed from the list.\n * @default false\n */\n disablePadding: PropTypes.bool,\n /**\n * The content of the subheader, normally `ListSubheader`.\n */\n subheader: PropTypes.node,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default List;","// A change of the browser zoom change the scrollbar size.\n// Credit https://github.com/twbs/bootstrap/blob/488fd8afc535ca3a6ad4dc581f5e89217b6a36ac/js/src/util/scrollbar.js#L14-L18\nexport default function getScrollbarSize(win = window) {\n // https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes\n const documentWidth = win.document.documentElement.clientWidth;\n return win.innerWidth - documentWidth;\n}","import getScrollbarSize from '@mui/utils/getScrollbarSize';\nexport default getScrollbarSize;","import ownerWindow from '@mui/utils/ownerWindow';\nexport default ownerWindow;","'use client';\n\nimport * as React from 'react';\nimport { isFragment } from 'react-is';\nimport PropTypes from 'prop-types';\nimport ownerDocument from \"../utils/ownerDocument.js\";\nimport List from \"../List/index.js\";\nimport getScrollbarSize from \"../utils/getScrollbarSize.js\";\nimport useForkRef from \"../utils/useForkRef.js\";\nimport useEnhancedEffect from \"../utils/useEnhancedEffect.js\";\nimport { ownerWindow } from \"../utils/index.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction nextItem(list, item, disableListWrap) {\n if (list === item) {\n return list.firstChild;\n }\n if (item && item.nextElementSibling) {\n return item.nextElementSibling;\n }\n return disableListWrap ? null : list.firstChild;\n}\nfunction previousItem(list, item, disableListWrap) {\n if (list === item) {\n return disableListWrap ? list.firstChild : list.lastChild;\n }\n if (item && item.previousElementSibling) {\n return item.previousElementSibling;\n }\n return disableListWrap ? null : list.lastChild;\n}\nfunction textCriteriaMatches(nextFocus, textCriteria) {\n if (textCriteria === undefined) {\n return true;\n }\n let text = nextFocus.innerText;\n if (text === undefined) {\n // jsdom doesn't support innerText\n text = nextFocus.textContent;\n }\n text = text.trim().toLowerCase();\n if (text.length === 0) {\n return false;\n }\n if (textCriteria.repeating) {\n return text[0] === textCriteria.keys[0];\n }\n return text.startsWith(textCriteria.keys.join(''));\n}\nfunction moveFocus(list, currentFocus, disableListWrap, disabledItemsFocusable, traversalFunction, textCriteria) {\n let wrappedOnce = false;\n let nextFocus = traversalFunction(list, currentFocus, currentFocus ? disableListWrap : false);\n while (nextFocus) {\n // Prevent infinite loop.\n if (nextFocus === list.firstChild) {\n if (wrappedOnce) {\n return false;\n }\n wrappedOnce = true;\n }\n\n // Same logic as useAutocomplete.js\n const nextFocusDisabled = disabledItemsFocusable ? false : nextFocus.disabled || nextFocus.getAttribute('aria-disabled') === 'true';\n if (!nextFocus.hasAttribute('tabindex') || !textCriteriaMatches(nextFocus, textCriteria) || nextFocusDisabled) {\n // Move to the next element.\n nextFocus = traversalFunction(list, nextFocus, disableListWrap);\n } else {\n nextFocus.focus();\n return true;\n }\n }\n return false;\n}\n\n/**\n * A permanently displayed menu following https://www.w3.org/WAI/ARIA/apg/patterns/menu-button/.\n * It's exposed to help customization of the [`Menu`](/material-ui/api/menu/) component if you\n * use it separately you need to move focus into the component manually. Once\n * the focus is placed inside the component it is fully keyboard accessible.\n */\nconst MenuList = /*#__PURE__*/React.forwardRef(function MenuList(props, ref) {\n const {\n // private\n // eslint-disable-next-line react/prop-types\n actions,\n autoFocus = false,\n autoFocusItem = false,\n children,\n className,\n disabledItemsFocusable = false,\n disableListWrap = false,\n onKeyDown,\n variant = 'selectedMenu',\n ...other\n } = props;\n const listRef = React.useRef(null);\n const textCriteriaRef = React.useRef({\n keys: [],\n repeating: true,\n previousKeyMatched: true,\n lastTime: null\n });\n useEnhancedEffect(() => {\n if (autoFocus) {\n listRef.current.focus();\n }\n }, [autoFocus]);\n React.useImperativeHandle(actions, () => ({\n adjustStyleForScrollbar: (containerElement, {\n direction\n }) => {\n // Let's ignore that piece of logic if users are already overriding the width\n // of the menu.\n const noExplicitWidth = !listRef.current.style.width;\n if (containerElement.clientHeight < listRef.current.clientHeight && noExplicitWidth) {\n const scrollbarSize = `${getScrollbarSize(ownerWindow(containerElement))}px`;\n listRef.current.style[direction === 'rtl' ? 'paddingLeft' : 'paddingRight'] = scrollbarSize;\n listRef.current.style.width = `calc(100% + ${scrollbarSize})`;\n }\n return listRef.current;\n }\n }), []);\n const handleKeyDown = event => {\n const list = listRef.current;\n const key = event.key;\n const isModifierKeyPressed = event.ctrlKey || event.metaKey || event.altKey;\n if (isModifierKeyPressed) {\n if (onKeyDown) {\n onKeyDown(event);\n }\n return;\n }\n\n /**\n * @type {Element} - will always be defined since we are in a keydown handler\n * attached to an element. A keydown event is either dispatched to the activeElement\n * or document.body or document.documentElement. Only the first case will\n * trigger this specific handler.\n */\n const currentFocus = ownerDocument(list).activeElement;\n if (key === 'ArrowDown') {\n // Prevent scroll of the page\n event.preventDefault();\n moveFocus(list, currentFocus, disableListWrap, disabledItemsFocusable, nextItem);\n } else if (key === 'ArrowUp') {\n event.preventDefault();\n moveFocus(list, currentFocus, disableListWrap, disabledItemsFocusable, previousItem);\n } else if (key === 'Home') {\n event.preventDefault();\n moveFocus(list, null, disableListWrap, disabledItemsFocusable, nextItem);\n } else if (key === 'End') {\n event.preventDefault();\n moveFocus(list, null, disableListWrap, disabledItemsFocusable, previousItem);\n } else if (key.length === 1) {\n const criteria = textCriteriaRef.current;\n const lowerKey = key.toLowerCase();\n const currTime = performance.now();\n if (criteria.keys.length > 0) {\n // Reset\n if (currTime - criteria.lastTime > 500) {\n criteria.keys = [];\n criteria.repeating = true;\n criteria.previousKeyMatched = true;\n } else if (criteria.repeating && lowerKey !== criteria.keys[0]) {\n criteria.repeating = false;\n }\n }\n criteria.lastTime = currTime;\n criteria.keys.push(lowerKey);\n const keepFocusOnCurrent = currentFocus && !criteria.repeating && textCriteriaMatches(currentFocus, criteria);\n if (criteria.previousKeyMatched && (keepFocusOnCurrent || moveFocus(list, currentFocus, false, disabledItemsFocusable, nextItem, criteria))) {\n event.preventDefault();\n } else {\n criteria.previousKeyMatched = false;\n }\n }\n if (onKeyDown) {\n onKeyDown(event);\n }\n };\n const handleRef = useForkRef(listRef, ref);\n\n /**\n * the index of the item should receive focus\n * in a `variant=\"selectedMenu\"` it's the first `selected` item\n * otherwise it's the very first item.\n */\n let activeItemIndex = -1;\n // since we inject focus related props into children we have to do a lookahead\n // to check if there is a `selected` item. We're looking for the last `selected`\n // item and use the first valid item as a fallback\n React.Children.forEach(children, (child, index) => {\n if (! /*#__PURE__*/React.isValidElement(child)) {\n if (activeItemIndex === index) {\n activeItemIndex += 1;\n if (activeItemIndex >= children.length) {\n // there are no focusable items within the list.\n activeItemIndex = -1;\n }\n }\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n if (isFragment(child)) {\n console.error([\"MUI: The Menu component doesn't accept a Fragment as a child.\", 'Consider providing an array instead.'].join('\\n'));\n }\n }\n if (!child.props.disabled) {\n if (variant === 'selectedMenu' && child.props.selected) {\n activeItemIndex = index;\n } else if (activeItemIndex === -1) {\n activeItemIndex = index;\n }\n }\n if (activeItemIndex === index && (child.props.disabled || child.props.muiSkipListHighlight || child.type.muiSkipListHighlight)) {\n activeItemIndex += 1;\n if (activeItemIndex >= children.length) {\n // there are no focusable items within the list.\n activeItemIndex = -1;\n }\n }\n });\n const items = React.Children.map(children, (child, index) => {\n if (index === activeItemIndex) {\n const newChildProps = {};\n if (autoFocusItem) {\n newChildProps.autoFocus = true;\n }\n if (child.props.tabIndex === undefined && variant === 'selectedMenu') {\n newChildProps.tabIndex = 0;\n }\n return /*#__PURE__*/React.cloneElement(child, newChildProps);\n }\n return child;\n });\n return /*#__PURE__*/_jsx(List, {\n role: \"menu\",\n ref: handleRef,\n className: className,\n onKeyDown: handleKeyDown,\n tabIndex: autoFocus ? 0 : -1,\n ...other,\n children: items\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? MenuList.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * If `true`, will focus the `[role=\"menu\"]` container and move into tab order.\n * @default false\n */\n autoFocus: PropTypes.bool,\n /**\n * If `true`, will focus the first menuitem if `variant=\"menu\"` or selected item\n * if `variant=\"selectedMenu\"`.\n * @default false\n */\n autoFocusItem: PropTypes.bool,\n /**\n * MenuList contents, normally `MenuItem`s.\n */\n children: PropTypes.node,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * If `true`, will allow focus on disabled items.\n * @default false\n */\n disabledItemsFocusable: PropTypes.bool,\n /**\n * If `true`, the menu items will not wrap focus.\n * @default false\n */\n disableListWrap: PropTypes.bool,\n /**\n * @ignore\n */\n onKeyDown: PropTypes.func,\n /**\n * The variant to use. Use `menu` to prevent selected items from impacting the initial focus\n * and the vertical alignment relative to the anchor element.\n * @default 'selectedMenu'\n */\n variant: PropTypes.oneOf(['menu', 'selectedMenu'])\n} : void 0;\nexport default MenuList;","import debounce from '@mui/utils/debounce';\nexport default debounce;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport useTimeout from '@mui/utils/useTimeout';\nimport elementAcceptingRef from '@mui/utils/elementAcceptingRef';\nimport getReactElementRef from '@mui/utils/getReactElementRef';\nimport { Transition } from 'react-transition-group';\nimport { useTheme } from \"../zero-styled/index.js\";\nimport { getTransitionProps, reflow } from \"../transitions/utils.js\";\nimport useForkRef from \"../utils/useForkRef.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction getScale(value) {\n return `scale(${value}, ${value ** 2})`;\n}\nconst styles = {\n entering: {\n opacity: 1,\n transform: getScale(1)\n },\n entered: {\n opacity: 1,\n transform: 'none'\n }\n};\n\n/*\n TODO v6: remove\n Conditionally apply a workaround for the CSS transition bug in Safari 15.4 / WebKit browsers.\n */\nconst isWebKit154 = typeof navigator !== 'undefined' && /^((?!chrome|android).)*(safari|mobile)/i.test(navigator.userAgent) && /(os |version\\/)15(.|_)4/i.test(navigator.userAgent);\n\n/**\n * The Grow transition is used by the [Tooltip](/material-ui/react-tooltip/) and\n * [Popover](/material-ui/react-popover/) components.\n * It uses [react-transition-group](https://github.com/reactjs/react-transition-group) internally.\n */\nconst Grow = /*#__PURE__*/React.forwardRef(function Grow(props, ref) {\n const {\n addEndListener,\n appear = true,\n children,\n easing,\n in: inProp,\n onEnter,\n onEntered,\n onEntering,\n onExit,\n onExited,\n onExiting,\n style,\n timeout = 'auto',\n // eslint-disable-next-line react/prop-types\n TransitionComponent = Transition,\n ...other\n } = props;\n const timer = useTimeout();\n const autoTimeout = React.useRef();\n const theme = useTheme();\n const nodeRef = React.useRef(null);\n const handleRef = useForkRef(nodeRef, getReactElementRef(children), ref);\n const normalizedTransitionCallback = callback => maybeIsAppearing => {\n if (callback) {\n const node = nodeRef.current;\n\n // onEnterXxx and onExitXxx callbacks have a different arguments.length value.\n if (maybeIsAppearing === undefined) {\n callback(node);\n } else {\n callback(node, maybeIsAppearing);\n }\n }\n };\n const handleEntering = normalizedTransitionCallback(onEntering);\n const handleEnter = normalizedTransitionCallback((node, isAppearing) => {\n reflow(node); // So the animation always start from the start.\n\n const {\n duration: transitionDuration,\n delay,\n easing: transitionTimingFunction\n } = getTransitionProps({\n style,\n timeout,\n easing\n }, {\n mode: 'enter'\n });\n let duration;\n if (timeout === 'auto') {\n duration = theme.transitions.getAutoHeightDuration(node.clientHeight);\n autoTimeout.current = duration;\n } else {\n duration = transitionDuration;\n }\n node.style.transition = [theme.transitions.create('opacity', {\n duration,\n delay\n }), theme.transitions.create('transform', {\n duration: isWebKit154 ? duration : duration * 0.666,\n delay,\n easing: transitionTimingFunction\n })].join(',');\n if (onEnter) {\n onEnter(node, isAppearing);\n }\n });\n const handleEntered = normalizedTransitionCallback(onEntered);\n const handleExiting = normalizedTransitionCallback(onExiting);\n const handleExit = normalizedTransitionCallback(node => {\n const {\n duration: transitionDuration,\n delay,\n easing: transitionTimingFunction\n } = getTransitionProps({\n style,\n timeout,\n easing\n }, {\n mode: 'exit'\n });\n let duration;\n if (timeout === 'auto') {\n duration = theme.transitions.getAutoHeightDuration(node.clientHeight);\n autoTimeout.current = duration;\n } else {\n duration = transitionDuration;\n }\n node.style.transition = [theme.transitions.create('opacity', {\n duration,\n delay\n }), theme.transitions.create('transform', {\n duration: isWebKit154 ? duration : duration * 0.666,\n delay: isWebKit154 ? delay : delay || duration * 0.333,\n easing: transitionTimingFunction\n })].join(',');\n node.style.opacity = 0;\n node.style.transform = getScale(0.75);\n if (onExit) {\n onExit(node);\n }\n });\n const handleExited = normalizedTransitionCallback(onExited);\n const handleAddEndListener = next => {\n if (timeout === 'auto') {\n timer.start(autoTimeout.current || 0, next);\n }\n if (addEndListener) {\n // Old call signature before `react-transition-group` implemented `nodeRef`\n addEndListener(nodeRef.current, next);\n }\n };\n return /*#__PURE__*/_jsx(TransitionComponent, {\n appear: appear,\n in: inProp,\n nodeRef: nodeRef,\n onEnter: handleEnter,\n onEntered: handleEntered,\n onEntering: handleEntering,\n onExit: handleExit,\n onExited: handleExited,\n onExiting: handleExiting,\n addEndListener: handleAddEndListener,\n timeout: timeout === 'auto' ? null : timeout,\n ...other,\n children: (state, childProps) => {\n return /*#__PURE__*/React.cloneElement(children, {\n style: {\n opacity: 0,\n transform: getScale(0.75),\n visibility: state === 'exited' && !inProp ? 'hidden' : undefined,\n ...styles[state],\n ...style,\n ...children.props.style\n },\n ref: handleRef,\n ...childProps\n });\n }\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Grow.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * Add a custom transition end trigger. Called with the transitioning DOM\n * node and a done callback. Allows for more fine grained transition end\n * logic. Note: Timeouts are still used as a fallback if provided.\n */\n addEndListener: PropTypes.func,\n /**\n * Perform the enter transition when it first mounts if `in` is also `true`.\n * Set this to `false` to disable this behavior.\n * @default true\n */\n appear: PropTypes.bool,\n /**\n * A single child content element.\n */\n children: elementAcceptingRef.isRequired,\n /**\n * The transition timing function.\n * You may specify a single easing or a object containing enter and exit values.\n */\n easing: PropTypes.oneOfType([PropTypes.shape({\n enter: PropTypes.string,\n exit: PropTypes.string\n }), PropTypes.string]),\n /**\n * If `true`, the component will transition in.\n */\n in: PropTypes.bool,\n /**\n * @ignore\n */\n onEnter: PropTypes.func,\n /**\n * @ignore\n */\n onEntered: PropTypes.func,\n /**\n * @ignore\n */\n onEntering: PropTypes.func,\n /**\n * @ignore\n */\n onExit: PropTypes.func,\n /**\n * @ignore\n */\n onExited: PropTypes.func,\n /**\n * @ignore\n */\n onExiting: PropTypes.func,\n /**\n * @ignore\n */\n style: PropTypes.object,\n /**\n * The duration for the transition, in milliseconds.\n * You may specify a single timeout for all transitions, or individually with an object.\n *\n * Set to 'auto' to automatically calculate transition time based on height.\n * @default 'auto'\n */\n timeout: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number\n })])\n} : void 0;\nif (Grow) {\n Grow.muiSupportAuto = true;\n}\nexport default Grow;","'use client';\n\n/* eslint-disable consistent-return, jsx-a11y/no-noninteractive-tabindex */\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { exactProp, elementAcceptingRef, unstable_useForkRef as useForkRef, unstable_ownerDocument as ownerDocument, unstable_getReactElementRef as getReactElementRef } from '@mui/utils';\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\n// Inspired by https://github.com/focus-trap/tabbable\nconst candidatesSelector = ['input', 'select', 'textarea', 'a[href]', 'button', '[tabindex]', 'audio[controls]', 'video[controls]', '[contenteditable]:not([contenteditable=\"false\"])'].join(',');\nfunction getTabIndex(node) {\n const tabindexAttr = parseInt(node.getAttribute('tabindex') || '', 10);\n if (!Number.isNaN(tabindexAttr)) {\n return tabindexAttr;\n }\n\n // Browsers do not return `tabIndex` correctly for contentEditable nodes;\n // https://issues.chromium.org/issues/41283952\n // so if they don't have a tabindex attribute specifically set, assume it's 0.\n // in Chrome,
,
\n * );\n * }\n * ```\n *\n * When the `in` prop is set to `true`, the child component will first receive\n * the class `example-enter`, then the `example-enter-active` will be added in\n * the next tick. `CSSTransition` [forces a\n * reflow](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)\n * between before adding the `example-enter-active`. This is an important trick\n * because it allows us to transition between `example-enter` and\n * `example-enter-active` even though they were added immediately one after\n * another. Most notably, this is what makes it possible for us to animate\n * _appearance_.\n *\n * ```css\n * .my-node-enter {\n * opacity: 0;\n * }\n * .my-node-enter-active {\n * opacity: 1;\n * transition: opacity 200ms;\n * }\n * .my-node-exit {\n * opacity: 1;\n * }\n * .my-node-exit-active {\n * opacity: 0;\n * transition: opacity 200ms;\n * }\n * ```\n *\n * `*-active` classes represent which styles you want to animate **to**, so it's\n * important to add `transition` declaration only to them, otherwise transitions\n * might not behave as intended! This might not be obvious when the transitions\n * are symmetrical, i.e. when `*-enter-active` is the same as `*-exit`, like in\n * the example above (minus `transition`), but it becomes apparent in more\n * complex transitions.\n *\n * **Note**: If you're using the\n * [`appear`](http://reactcommunity.org/react-transition-group/transition#Transition-prop-appear)\n * prop, make sure to define styles for `.appear-*` classes as well.\n */\n\n\nvar CSSTransition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(CSSTransition, _React$Component);\n\n function CSSTransition() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.appliedClasses = {\n appear: {},\n enter: {},\n exit: {}\n };\n\n _this.onEnter = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument[0],\n appearing = _this$resolveArgument[1];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, appearing ? 'appear' : 'enter', 'base');\n\n if (_this.props.onEnter) {\n _this.props.onEnter(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntering = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument2 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument2[0],\n appearing = _this$resolveArgument2[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.addClass(node, type, 'active');\n\n if (_this.props.onEntering) {\n _this.props.onEntering(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntered = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument3 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument3[0],\n appearing = _this$resolveArgument3[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.removeClasses(node, type);\n\n _this.addClass(node, type, 'done');\n\n if (_this.props.onEntered) {\n _this.props.onEntered(maybeNode, maybeAppearing);\n }\n };\n\n _this.onExit = function (maybeNode) {\n var _this$resolveArgument4 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument4[0];\n\n _this.removeClasses(node, 'appear');\n\n _this.removeClasses(node, 'enter');\n\n _this.addClass(node, 'exit', 'base');\n\n if (_this.props.onExit) {\n _this.props.onExit(maybeNode);\n }\n };\n\n _this.onExiting = function (maybeNode) {\n var _this$resolveArgument5 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument5[0];\n\n _this.addClass(node, 'exit', 'active');\n\n if (_this.props.onExiting) {\n _this.props.onExiting(maybeNode);\n }\n };\n\n _this.onExited = function (maybeNode) {\n var _this$resolveArgument6 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument6[0];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, 'exit', 'done');\n\n if (_this.props.onExited) {\n _this.props.onExited(maybeNode);\n }\n };\n\n _this.resolveArguments = function (maybeNode, maybeAppearing) {\n return _this.props.nodeRef ? [_this.props.nodeRef.current, maybeNode] // here `maybeNode` is actually `appearing`\n : [maybeNode, maybeAppearing];\n };\n\n _this.getClassNames = function (type) {\n var classNames = _this.props.classNames;\n var isStringClassNames = typeof classNames === 'string';\n var prefix = isStringClassNames && classNames ? classNames + \"-\" : '';\n var baseClassName = isStringClassNames ? \"\" + prefix + type : classNames[type];\n var activeClassName = isStringClassNames ? baseClassName + \"-active\" : classNames[type + \"Active\"];\n var doneClassName = isStringClassNames ? baseClassName + \"-done\" : classNames[type + \"Done\"];\n return {\n baseClassName: baseClassName,\n activeClassName: activeClassName,\n doneClassName: doneClassName\n };\n };\n\n return _this;\n }\n\n var _proto = CSSTransition.prototype;\n\n _proto.addClass = function addClass(node, type, phase) {\n var className = this.getClassNames(type)[phase + \"ClassName\"];\n\n var _this$getClassNames = this.getClassNames('enter'),\n doneClassName = _this$getClassNames.doneClassName;\n\n if (type === 'appear' && phase === 'done' && doneClassName) {\n className += \" \" + doneClassName;\n } // This is to force a repaint,\n // which is necessary in order to transition styles when adding a class name.\n\n\n if (phase === 'active') {\n if (node) forceReflow(node);\n }\n\n if (className) {\n this.appliedClasses[type][phase] = className;\n\n _addClass(node, className);\n }\n };\n\n _proto.removeClasses = function removeClasses(node, type) {\n var _this$appliedClasses$ = this.appliedClasses[type],\n baseClassName = _this$appliedClasses$.base,\n activeClassName = _this$appliedClasses$.active,\n doneClassName = _this$appliedClasses$.done;\n this.appliedClasses[type] = {};\n\n if (baseClassName) {\n removeClass(node, baseClassName);\n }\n\n if (activeClassName) {\n removeClass(node, activeClassName);\n }\n\n if (doneClassName) {\n removeClass(node, doneClassName);\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n _ = _this$props.classNames,\n props = _objectWithoutPropertiesLoose(_this$props, [\"classNames\"]);\n\n return /*#__PURE__*/React.createElement(Transition, _extends({}, props, {\n onEnter: this.onEnter,\n onEntered: this.onEntered,\n onEntering: this.onEntering,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited\n }));\n };\n\n return CSSTransition;\n}(React.Component);\n\nCSSTransition.defaultProps = {\n classNames: ''\n};\nCSSTransition.propTypes = process.env.NODE_ENV !== \"production\" ? _extends({}, Transition.propTypes, {\n /**\n * The animation classNames applied to the component as it appears, enters,\n * exits or has finished the transition. A single name can be provided, which\n * will be suffixed for each stage, e.g. `classNames=\"fade\"` applies:\n *\n * - `fade-appear`, `fade-appear-active`, `fade-appear-done`\n * - `fade-enter`, `fade-enter-active`, `fade-enter-done`\n * - `fade-exit`, `fade-exit-active`, `fade-exit-done`\n *\n * A few details to note about how these classes are applied:\n *\n * 1. They are _joined_ with the ones that are already defined on the child\n * component, so if you want to add some base styles, you can use\n * `className` without worrying that it will be overridden.\n *\n * 2. If the transition component mounts with `in={false}`, no classes are\n * applied yet. You might be expecting `*-exit-done`, but if you think\n * about it, a component cannot finish exiting if it hasn't entered yet.\n *\n * 2. `fade-appear-done` and `fade-enter-done` will _both_ be applied. This\n * allows you to define different behavior for when appearing is done and\n * when regular entering is done, using selectors like\n * `.fade-enter-done:not(.fade-appear-done)`. For example, you could apply\n * an epic entrance animation when element first appears in the DOM using\n * [Animate.css](https://daneden.github.io/animate.css/). Otherwise you can\n * simply use `fade-enter-done` for defining both cases.\n *\n * Each individual classNames can also be specified independently like:\n *\n * ```js\n * classNames={{\n * appear: 'my-appear',\n * appearActive: 'my-active-appear',\n * appearDone: 'my-done-appear',\n * enter: 'my-enter',\n * enterActive: 'my-active-enter',\n * enterDone: 'my-done-enter',\n * exit: 'my-exit',\n * exitActive: 'my-active-exit',\n * exitDone: 'my-done-exit',\n * }}\n * ```\n *\n * If you want to set these classes using CSS Modules:\n *\n * ```js\n * import styles from './styles.css';\n * ```\n *\n * you might want to use camelCase in your CSS file, that way could simply\n * spread them instead of listing them one by one:\n *\n * ```js\n * classNames={{ ...styles }}\n * ```\n *\n * @type {string | {\n * appear?: string,\n * appearActive?: string,\n * appearDone?: string,\n * enter?: string,\n * enterActive?: string,\n * enterDone?: string,\n * exit?: string,\n * exitActive?: string,\n * exitDone?: string,\n * }}\n */\n classNames: classNamesShape,\n\n /**\n * A `` callback fired immediately after the 'enter' or 'appear' class is\n * applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEnter: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter-active' or\n * 'appear-active' class is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter' or\n * 'appear' classes are **removed** and the `done` class is added to the DOM node.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntered: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' class is\n * applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExit: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit-active' is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExiting: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' classes\n * are **removed** and the `exit-done` class is added to the DOM node.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExited: PropTypes.func\n}) : {};\nexport default CSSTransition;","import hasClass from './hasClass';\n/**\n * Adds a CSS class to a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\nexport default function addClass(element, className) {\n if (element.classList) element.classList.add(className);else if (!hasClass(element, className)) if (typeof element.className === 'string') element.className = element.className + \" \" + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + \" \" + className);\n}","/**\n * Checks if a given element has a CSS class.\n * \n * @param element the element\n * @param className the CSS class name\n */\nexport default function hasClass(element, className) {\n if (element.classList) return !!className && element.classList.contains(className);\n return (\" \" + (element.className.baseVal || element.className) + \" \").indexOf(\" \" + className + \" \") !== -1;\n}","import { unstable_generateUtilityClass as generateUtilityClass, unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nexport const getPickersSlideTransitionUtilityClass = slot => generateUtilityClass('MuiPickersSlideTransition', slot);\nexport const pickersSlideTransitionClasses = generateUtilityClasses('MuiPickersSlideTransition', ['root', 'slideEnter-left', 'slideEnter-right', 'slideEnterActive', 'slideExit', 'slideExitActiveLeft-left', 'slideExitActiveLeft-right']);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\", \"className\", \"reduceAnimations\", \"slideDirection\", \"transKey\", \"classes\"];\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport { styled, useTheme, useThemeProps } from '@mui/material/styles';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { CSSTransition, TransitionGroup } from 'react-transition-group';\nimport { getPickersSlideTransitionUtilityClass, pickersSlideTransitionClasses } from \"./pickersSlideTransitionClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n slideDirection\n } = ownerState;\n const slots = {\n root: ['root'],\n exit: ['slideExit'],\n enterActive: ['slideEnterActive'],\n enter: [`slideEnter-${slideDirection}`],\n exitActive: [`slideExitActiveLeft-${slideDirection}`]\n };\n return composeClasses(slots, getPickersSlideTransitionUtilityClass, classes);\n};\nconst PickersSlideTransitionRoot = styled(TransitionGroup, {\n name: 'MuiPickersSlideTransition',\n slot: 'Root',\n overridesResolver: (_, styles) => [styles.root, {\n [`.${pickersSlideTransitionClasses['slideEnter-left']}`]: styles['slideEnter-left']\n }, {\n [`.${pickersSlideTransitionClasses['slideEnter-right']}`]: styles['slideEnter-right']\n }, {\n [`.${pickersSlideTransitionClasses.slideEnterActive}`]: styles.slideEnterActive\n }, {\n [`.${pickersSlideTransitionClasses.slideExit}`]: styles.slideExit\n }, {\n [`.${pickersSlideTransitionClasses['slideExitActiveLeft-left']}`]: styles['slideExitActiveLeft-left']\n }, {\n [`.${pickersSlideTransitionClasses['slideExitActiveLeft-right']}`]: styles['slideExitActiveLeft-right']\n }]\n})(({\n theme\n}) => {\n const slideTransition = theme.transitions.create('transform', {\n duration: theme.transitions.duration.complex,\n easing: 'cubic-bezier(0.35, 0.8, 0.4, 1)'\n });\n return {\n display: 'block',\n position: 'relative',\n overflowX: 'hidden',\n '& > *': {\n position: 'absolute',\n top: 0,\n right: 0,\n left: 0\n },\n [`& .${pickersSlideTransitionClasses['slideEnter-left']}`]: {\n willChange: 'transform',\n transform: 'translate(100%)',\n zIndex: 1\n },\n [`& .${pickersSlideTransitionClasses['slideEnter-right']}`]: {\n willChange: 'transform',\n transform: 'translate(-100%)',\n zIndex: 1\n },\n [`& .${pickersSlideTransitionClasses.slideEnterActive}`]: {\n transform: 'translate(0%)',\n transition: slideTransition\n },\n [`& .${pickersSlideTransitionClasses.slideExit}`]: {\n transform: 'translate(0%)'\n },\n [`& .${pickersSlideTransitionClasses['slideExitActiveLeft-left']}`]: {\n willChange: 'transform',\n transform: 'translate(-100%)',\n transition: slideTransition,\n zIndex: 0\n },\n [`& .${pickersSlideTransitionClasses['slideExitActiveLeft-right']}`]: {\n willChange: 'transform',\n transform: 'translate(100%)',\n transition: slideTransition,\n zIndex: 0\n }\n };\n});\n\n/**\n * @ignore - do not document.\n */\nexport function PickersSlideTransition(inProps) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiPickersSlideTransition'\n });\n const {\n children,\n className,\n reduceAnimations,\n transKey\n // extracting `classes` from `other`\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const classes = useUtilityClasses(props);\n const theme = useTheme();\n if (reduceAnimations) {\n return /*#__PURE__*/_jsx(\"div\", {\n className: clsx(classes.root, className),\n children: children\n });\n }\n const transitionClasses = {\n exit: classes.exit,\n enterActive: classes.enterActive,\n enter: classes.enter,\n exitActive: classes.exitActive\n };\n return /*#__PURE__*/_jsx(PickersSlideTransitionRoot, {\n className: clsx(classes.root, className),\n childFactory: element => /*#__PURE__*/React.cloneElement(element, {\n classNames: transitionClasses\n }),\n role: \"presentation\",\n children: /*#__PURE__*/_jsx(CSSTransition, _extends({\n mountOnEnter: true,\n unmountOnExit: true,\n timeout: theme.transitions.duration.complex,\n classNames: transitionClasses\n }, other, {\n children: children\n }), transKey)\n });\n}","import { unstable_generateUtilityClass as generateUtilityClass, unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nexport const getDayCalendarUtilityClass = slot => generateUtilityClass('MuiDayCalendar', slot);\nexport const dayCalendarClasses = generateUtilityClasses('MuiDayCalendar', ['root', 'header', 'weekDayLabel', 'loadingContainer', 'slideTransition', 'monthContainer', 'weekContainer', 'weekNumberLabel', 'weekNumber']);","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"parentProps\", \"day\", \"focusableDay\", \"selectedDays\", \"isDateDisabled\", \"currentMonthNumber\", \"isViewFocused\"],\n _excluded2 = [\"ownerState\"];\nimport * as React from 'react';\nimport useEventCallback from '@mui/utils/useEventCallback';\nimport Typography from '@mui/material/Typography';\nimport useSlotProps from '@mui/utils/useSlotProps';\nimport { useRtl } from '@mui/system/RtlProvider';\nimport { styled, useThemeProps } from '@mui/material/styles';\nimport { unstable_composeClasses as composeClasses, unstable_useControlled as useControlled } from '@mui/utils';\nimport clsx from 'clsx';\nimport { PickersDay } from \"../PickersDay/PickersDay.js\";\nimport { usePickersTranslations } from \"../hooks/usePickersTranslations.js\";\nimport { useUtils, useNow } from \"../internals/hooks/useUtils.js\";\nimport { DAY_SIZE, DAY_MARGIN } from \"../internals/constants/dimensions.js\";\nimport { PickersSlideTransition } from \"./PickersSlideTransition.js\";\nimport { useIsDateDisabled } from \"./useIsDateDisabled.js\";\nimport { findClosestEnabledDate, getWeekdays } from \"../internals/utils/date-utils.js\";\nimport { getDayCalendarUtilityClass } from \"./dayCalendarClasses.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n header: ['header'],\n weekDayLabel: ['weekDayLabel'],\n loadingContainer: ['loadingContainer'],\n slideTransition: ['slideTransition'],\n monthContainer: ['monthContainer'],\n weekContainer: ['weekContainer'],\n weekNumberLabel: ['weekNumberLabel'],\n weekNumber: ['weekNumber']\n };\n return composeClasses(slots, getDayCalendarUtilityClass, classes);\n};\nconst weeksContainerHeight = (DAY_SIZE + DAY_MARGIN * 2) * 6;\nconst PickersCalendarDayRoot = styled('div', {\n name: 'MuiDayCalendar',\n slot: 'Root',\n overridesResolver: (_, styles) => styles.root\n})({});\nconst PickersCalendarDayHeader = styled('div', {\n name: 'MuiDayCalendar',\n slot: 'Header',\n overridesResolver: (_, styles) => styles.header\n})({\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center'\n});\nconst PickersCalendarWeekDayLabel = styled(Typography, {\n name: 'MuiDayCalendar',\n slot: 'WeekDayLabel',\n overridesResolver: (_, styles) => styles.weekDayLabel\n})(({\n theme\n}) => ({\n width: 36,\n height: 40,\n margin: '0 2px',\n textAlign: 'center',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n color: (theme.vars || theme).palette.text.secondary\n}));\nconst PickersCalendarWeekNumberLabel = styled(Typography, {\n name: 'MuiDayCalendar',\n slot: 'WeekNumberLabel',\n overridesResolver: (_, styles) => styles.weekNumberLabel\n})(({\n theme\n}) => ({\n width: 36,\n height: 40,\n margin: '0 2px',\n textAlign: 'center',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n color: theme.palette.text.disabled\n}));\nconst PickersCalendarWeekNumber = styled(Typography, {\n name: 'MuiDayCalendar',\n slot: 'WeekNumber',\n overridesResolver: (_, styles) => styles.weekNumber\n})(({\n theme\n}) => _extends({}, theme.typography.caption, {\n width: DAY_SIZE,\n height: DAY_SIZE,\n padding: 0,\n margin: `0 ${DAY_MARGIN}px`,\n color: theme.palette.text.disabled,\n fontSize: '0.75rem',\n alignItems: 'center',\n justifyContent: 'center',\n display: 'inline-flex'\n}));\nconst PickersCalendarLoadingContainer = styled('div', {\n name: 'MuiDayCalendar',\n slot: 'LoadingContainer',\n overridesResolver: (_, styles) => styles.loadingContainer\n})({\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n minHeight: weeksContainerHeight\n});\nconst PickersCalendarSlideTransition = styled(PickersSlideTransition, {\n name: 'MuiDayCalendar',\n slot: 'SlideTransition',\n overridesResolver: (_, styles) => styles.slideTransition\n})({\n minHeight: weeksContainerHeight\n});\nconst PickersCalendarWeekContainer = styled('div', {\n name: 'MuiDayCalendar',\n slot: 'MonthContainer',\n overridesResolver: (_, styles) => styles.monthContainer\n})({\n overflow: 'hidden'\n});\nconst PickersCalendarWeek = styled('div', {\n name: 'MuiDayCalendar',\n slot: 'WeekContainer',\n overridesResolver: (_, styles) => styles.weekContainer\n})({\n margin: `${DAY_MARGIN}px 0`,\n display: 'flex',\n justifyContent: 'center'\n});\nfunction WrappedDay(_ref) {\n let {\n parentProps,\n day,\n focusableDay,\n selectedDays,\n isDateDisabled,\n currentMonthNumber,\n isViewFocused\n } = _ref,\n other = _objectWithoutPropertiesLoose(_ref, _excluded);\n const {\n disabled,\n disableHighlightToday,\n isMonthSwitchingAnimating,\n showDaysOutsideCurrentMonth,\n slots,\n slotProps,\n timezone\n } = parentProps;\n const utils = useUtils();\n const now = useNow(timezone);\n const isFocusableDay = focusableDay !== null && utils.isSameDay(day, focusableDay);\n const isSelected = selectedDays.some(selectedDay => utils.isSameDay(selectedDay, day));\n const isToday = utils.isSameDay(day, now);\n const Day = slots?.day ?? PickersDay;\n // We don't want to pass to ownerState down, to avoid re-rendering all the day whenever a prop changes.\n const _useSlotProps = useSlotProps({\n elementType: Day,\n externalSlotProps: slotProps?.day,\n additionalProps: _extends({\n disableHighlightToday,\n showDaysOutsideCurrentMonth,\n role: 'gridcell',\n isAnimating: isMonthSwitchingAnimating,\n // it is used in date range dragging logic by accessing `dataset.timestamp`\n 'data-timestamp': utils.toJsDate(day).valueOf()\n }, other),\n ownerState: _extends({}, parentProps, {\n day,\n selected: isSelected\n })\n }),\n dayProps = _objectWithoutPropertiesLoose(_useSlotProps, _excluded2);\n const isDisabled = React.useMemo(() => disabled || isDateDisabled(day), [disabled, isDateDisabled, day]);\n const outsideCurrentMonth = React.useMemo(() => utils.getMonth(day) !== currentMonthNumber, [utils, day, currentMonthNumber]);\n const isFirstVisibleCell = React.useMemo(() => {\n const startOfMonth = utils.startOfMonth(utils.setMonth(day, currentMonthNumber));\n if (!showDaysOutsideCurrentMonth) {\n return utils.isSameDay(day, startOfMonth);\n }\n return utils.isSameDay(day, utils.startOfWeek(startOfMonth));\n }, [currentMonthNumber, day, showDaysOutsideCurrentMonth, utils]);\n const isLastVisibleCell = React.useMemo(() => {\n const endOfMonth = utils.endOfMonth(utils.setMonth(day, currentMonthNumber));\n if (!showDaysOutsideCurrentMonth) {\n return utils.isSameDay(day, endOfMonth);\n }\n return utils.isSameDay(day, utils.endOfWeek(endOfMonth));\n }, [currentMonthNumber, day, showDaysOutsideCurrentMonth, utils]);\n return /*#__PURE__*/_jsx(Day, _extends({}, dayProps, {\n day: day,\n disabled: isDisabled,\n autoFocus: isViewFocused && isFocusableDay,\n today: isToday,\n outsideCurrentMonth: outsideCurrentMonth,\n isFirstVisibleCell: isFirstVisibleCell,\n isLastVisibleCell: isLastVisibleCell,\n selected: isSelected,\n tabIndex: isFocusableDay ? 0 : -1,\n \"aria-selected\": isSelected,\n \"aria-current\": isToday ? 'date' : undefined\n }));\n}\n\n/**\n * @ignore - do not document.\n */\nexport function DayCalendar(inProps) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiDayCalendar'\n });\n const utils = useUtils();\n const {\n onFocusedDayChange,\n className,\n currentMonth,\n selectedDays,\n focusedDay,\n loading,\n onSelectedDaysChange,\n onMonthSwitchingAnimationEnd,\n readOnly,\n reduceAnimations,\n renderLoading = () => /*#__PURE__*/_jsx(\"span\", {\n children: \"...\"\n }),\n slideDirection,\n TransitionProps,\n disablePast,\n disableFuture,\n minDate,\n maxDate,\n shouldDisableDate,\n shouldDisableMonth,\n shouldDisableYear,\n dayOfWeekFormatter = date => utils.format(date, 'weekdayShort').charAt(0).toUpperCase(),\n hasFocus,\n onFocusedViewChange,\n gridLabelId,\n displayWeekNumber,\n fixedWeekNumber,\n autoFocus,\n timezone\n } = props;\n const now = useNow(timezone);\n const classes = useUtilityClasses(props);\n const isRtl = useRtl();\n const isDateDisabled = useIsDateDisabled({\n shouldDisableDate,\n shouldDisableMonth,\n shouldDisableYear,\n minDate,\n maxDate,\n disablePast,\n disableFuture,\n timezone\n });\n const translations = usePickersTranslations();\n const [internalHasFocus, setInternalHasFocus] = useControlled({\n name: 'DayCalendar',\n state: 'hasFocus',\n controlled: hasFocus,\n default: autoFocus ?? false\n });\n const [internalFocusedDay, setInternalFocusedDay] = React.useState(() => focusedDay || now);\n const handleDaySelect = useEventCallback(day => {\n if (readOnly) {\n return;\n }\n onSelectedDaysChange(day);\n });\n const focusDay = day => {\n if (!isDateDisabled(day)) {\n onFocusedDayChange(day);\n setInternalFocusedDay(day);\n onFocusedViewChange?.(true);\n setInternalHasFocus(true);\n }\n };\n const handleKeyDown = useEventCallback((event, day) => {\n switch (event.key) {\n case 'ArrowUp':\n focusDay(utils.addDays(day, -7));\n event.preventDefault();\n break;\n case 'ArrowDown':\n focusDay(utils.addDays(day, 7));\n event.preventDefault();\n break;\n case 'ArrowLeft':\n {\n const newFocusedDayDefault = utils.addDays(day, isRtl ? 1 : -1);\n const nextAvailableMonth = utils.addMonths(day, isRtl ? 1 : -1);\n const closestDayToFocus = findClosestEnabledDate({\n utils,\n date: newFocusedDayDefault,\n minDate: isRtl ? newFocusedDayDefault : utils.startOfMonth(nextAvailableMonth),\n maxDate: isRtl ? utils.endOfMonth(nextAvailableMonth) : newFocusedDayDefault,\n isDateDisabled,\n timezone\n });\n focusDay(closestDayToFocus || newFocusedDayDefault);\n event.preventDefault();\n break;\n }\n case 'ArrowRight':\n {\n const newFocusedDayDefault = utils.addDays(day, isRtl ? -1 : 1);\n const nextAvailableMonth = utils.addMonths(day, isRtl ? -1 : 1);\n const closestDayToFocus = findClosestEnabledDate({\n utils,\n date: newFocusedDayDefault,\n minDate: isRtl ? utils.startOfMonth(nextAvailableMonth) : newFocusedDayDefault,\n maxDate: isRtl ? newFocusedDayDefault : utils.endOfMonth(nextAvailableMonth),\n isDateDisabled,\n timezone\n });\n focusDay(closestDayToFocus || newFocusedDayDefault);\n event.preventDefault();\n break;\n }\n case 'Home':\n focusDay(utils.startOfWeek(day));\n event.preventDefault();\n break;\n case 'End':\n focusDay(utils.endOfWeek(day));\n event.preventDefault();\n break;\n case 'PageUp':\n focusDay(utils.addMonths(day, 1));\n event.preventDefault();\n break;\n case 'PageDown':\n focusDay(utils.addMonths(day, -1));\n event.preventDefault();\n break;\n default:\n break;\n }\n });\n const handleFocus = useEventCallback((event, day) => focusDay(day));\n const handleBlur = useEventCallback((event, day) => {\n if (internalHasFocus && utils.isSameDay(internalFocusedDay, day)) {\n onFocusedViewChange?.(false);\n }\n });\n const currentMonthNumber = utils.getMonth(currentMonth);\n const currentYearNumber = utils.getYear(currentMonth);\n const validSelectedDays = React.useMemo(() => selectedDays.filter(day => !!day).map(day => utils.startOfDay(day)), [utils, selectedDays]);\n\n // need a new ref whenever the `key` of the transition changes: https://reactcommunity.org/react-transition-group/transition/#Transition-prop-nodeRef.\n const transitionKey = `${currentYearNumber}-${currentMonthNumber}`;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const slideNodeRef = React.useMemo(() => /*#__PURE__*/React.createRef(), [transitionKey]);\n const focusableDay = React.useMemo(() => {\n const startOfMonth = utils.startOfMonth(currentMonth);\n const endOfMonth = utils.endOfMonth(currentMonth);\n if (isDateDisabled(internalFocusedDay) || utils.isAfterDay(internalFocusedDay, endOfMonth) || utils.isBeforeDay(internalFocusedDay, startOfMonth)) {\n return findClosestEnabledDate({\n utils,\n date: internalFocusedDay,\n minDate: startOfMonth,\n maxDate: endOfMonth,\n disablePast,\n disableFuture,\n isDateDisabled,\n timezone\n });\n }\n return internalFocusedDay;\n }, [currentMonth, disableFuture, disablePast, internalFocusedDay, isDateDisabled, utils, timezone]);\n const weeksToDisplay = React.useMemo(() => {\n const currentMonthWithTimezone = utils.setTimezone(currentMonth, timezone);\n const toDisplay = utils.getWeekArray(currentMonthWithTimezone);\n let nextMonth = utils.addMonths(currentMonthWithTimezone, 1);\n while (fixedWeekNumber && toDisplay.length < fixedWeekNumber) {\n const additionalWeeks = utils.getWeekArray(nextMonth);\n const hasCommonWeek = utils.isSameDay(toDisplay[toDisplay.length - 1][0], additionalWeeks[0][0]);\n additionalWeeks.slice(hasCommonWeek ? 1 : 0).forEach(week => {\n if (toDisplay.length < fixedWeekNumber) {\n toDisplay.push(week);\n }\n });\n nextMonth = utils.addMonths(nextMonth, 1);\n }\n return toDisplay;\n }, [currentMonth, fixedWeekNumber, utils, timezone]);\n return /*#__PURE__*/_jsxs(PickersCalendarDayRoot, {\n role: \"grid\",\n \"aria-labelledby\": gridLabelId,\n className: classes.root,\n children: [/*#__PURE__*/_jsxs(PickersCalendarDayHeader, {\n role: \"row\",\n className: classes.header,\n children: [displayWeekNumber && /*#__PURE__*/_jsx(PickersCalendarWeekNumberLabel, {\n variant: \"caption\",\n role: \"columnheader\",\n \"aria-label\": translations.calendarWeekNumberHeaderLabel,\n className: classes.weekNumberLabel,\n children: translations.calendarWeekNumberHeaderText\n }), getWeekdays(utils, now).map((weekday, i) => /*#__PURE__*/_jsx(PickersCalendarWeekDayLabel, {\n variant: \"caption\",\n role: \"columnheader\",\n \"aria-label\": utils.format(weekday, 'weekday'),\n className: classes.weekDayLabel,\n children: dayOfWeekFormatter(weekday)\n }, i.toString()))]\n }), loading ? /*#__PURE__*/_jsx(PickersCalendarLoadingContainer, {\n className: classes.loadingContainer,\n children: renderLoading()\n }) : /*#__PURE__*/_jsx(PickersCalendarSlideTransition, _extends({\n transKey: transitionKey,\n onExited: onMonthSwitchingAnimationEnd,\n reduceAnimations: reduceAnimations,\n slideDirection: slideDirection,\n className: clsx(className, classes.slideTransition)\n }, TransitionProps, {\n nodeRef: slideNodeRef,\n children: /*#__PURE__*/_jsx(PickersCalendarWeekContainer, {\n ref: slideNodeRef,\n role: \"rowgroup\",\n className: classes.monthContainer,\n children: weeksToDisplay.map((week, index) => /*#__PURE__*/_jsxs(PickersCalendarWeek, {\n role: \"row\",\n className: classes.weekContainer\n // fix issue of announcing row 1 as row 2\n // caused by week day labels row\n ,\n \"aria-rowindex\": index + 1,\n children: [displayWeekNumber && /*#__PURE__*/_jsx(PickersCalendarWeekNumber, {\n className: classes.weekNumber,\n role: \"rowheader\",\n \"aria-label\": translations.calendarWeekNumberAriaLabelText(utils.getWeekNumber(week[0])),\n children: translations.calendarWeekNumberText(utils.getWeekNumber(week[0]))\n }), week.map((day, dayIndex) => /*#__PURE__*/_jsx(WrappedDay, {\n parentProps: props,\n day: day,\n selectedDays: validSelectedDays,\n focusableDay: focusableDay,\n onKeyDown: handleKeyDown,\n onFocus: handleFocus,\n onBlur: handleBlur,\n onDaySelect: handleDaySelect,\n isDateDisabled: isDateDisabled,\n currentMonthNumber: currentMonthNumber,\n isViewFocused: internalHasFocus\n // fix issue of announcing column 1 as column 2 when `displayWeekNumber` is enabled\n ,\n \"aria-colindex\": dayIndex + 1\n }, day.toString()))]\n }, `week-${week[0]}`))\n })\n }))]\n });\n}","import { unstable_generateUtilityClass as generateUtilityClass, unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nexport function getPickersMonthUtilityClass(slot) {\n return generateUtilityClass('MuiPickersMonth', slot);\n}\nexport const pickersMonthClasses = generateUtilityClasses('MuiPickersMonth', ['root', 'monthButton', 'disabled', 'selected']);","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"autoFocus\", \"className\", \"children\", \"disabled\", \"selected\", \"value\", \"tabIndex\", \"onClick\", \"onKeyDown\", \"onFocus\", \"onBlur\", \"aria-current\", \"aria-label\", \"monthsPerRow\", \"slots\", \"slotProps\"];\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport { styled, alpha, useThemeProps } from '@mui/material/styles';\nimport useSlotProps from '@mui/utils/useSlotProps';\nimport composeClasses from '@mui/utils/composeClasses';\nimport useEnhancedEffect from '@mui/utils/useEnhancedEffect';\nimport { getPickersMonthUtilityClass, pickersMonthClasses } from \"./pickersMonthClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n disabled,\n selected,\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n monthButton: ['monthButton', disabled && 'disabled', selected && 'selected']\n };\n return composeClasses(slots, getPickersMonthUtilityClass, classes);\n};\nconst PickersMonthRoot = styled('div', {\n name: 'MuiPickersMonth',\n slot: 'Root',\n overridesResolver: (_, styles) => [styles.root]\n})({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexBasis: '33.3%',\n variants: [{\n props: {\n monthsPerRow: 4\n },\n style: {\n flexBasis: '25%'\n }\n }]\n});\nconst MonthCalendarButton = styled('button', {\n name: 'MuiPickersMonth',\n slot: 'MonthButton',\n overridesResolver: (_, styles) => [styles.monthButton, {\n [`&.${pickersMonthClasses.disabled}`]: styles.disabled\n }, {\n [`&.${pickersMonthClasses.selected}`]: styles.selected\n }]\n})(({\n theme\n}) => _extends({\n color: 'unset',\n backgroundColor: 'transparent',\n border: 0,\n outline: 0\n}, theme.typography.subtitle1, {\n margin: '8px 0',\n height: 36,\n width: 72,\n borderRadius: 18,\n cursor: 'pointer',\n '&:focus': {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.action.activeChannel} / ${theme.vars.palette.action.hoverOpacity})` : alpha(theme.palette.action.active, theme.palette.action.hoverOpacity)\n },\n '&:hover': {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.action.activeChannel} / ${theme.vars.palette.action.hoverOpacity})` : alpha(theme.palette.action.active, theme.palette.action.hoverOpacity)\n },\n '&:disabled': {\n cursor: 'auto',\n pointerEvents: 'none'\n },\n [`&.${pickersMonthClasses.disabled}`]: {\n color: (theme.vars || theme).palette.text.secondary\n },\n [`&.${pickersMonthClasses.selected}`]: {\n color: (theme.vars || theme).palette.primary.contrastText,\n backgroundColor: (theme.vars || theme).palette.primary.main,\n '&:focus, &:hover': {\n backgroundColor: (theme.vars || theme).palette.primary.dark\n }\n }\n}));\n\n/**\n * @ignore - do not document.\n */\nexport const PickersMonth = /*#__PURE__*/React.memo(function PickersMonth(inProps) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiPickersMonth'\n });\n const {\n autoFocus,\n className,\n children,\n disabled,\n selected,\n value,\n tabIndex,\n onClick,\n onKeyDown,\n onFocus,\n onBlur,\n 'aria-current': ariaCurrent,\n 'aria-label': ariaLabel\n // We don't want to forward this prop to the root element\n ,\n\n slots,\n slotProps\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ref = React.useRef(null);\n const classes = useUtilityClasses(props);\n\n // We can't forward the `autoFocus` to the button because it is a native button, not a MUI Button\n useEnhancedEffect(() => {\n if (autoFocus) {\n // `ref.current` being `null` would be a bug in MUI.\n ref.current?.focus();\n }\n }, [autoFocus]);\n const MonthButton = slots?.monthButton ?? MonthCalendarButton;\n const monthButtonProps = useSlotProps({\n elementType: MonthButton,\n externalSlotProps: slotProps?.monthButton,\n additionalProps: {\n children,\n disabled,\n tabIndex,\n ref,\n type: 'button',\n role: 'radio',\n 'aria-current': ariaCurrent,\n 'aria-checked': selected,\n 'aria-label': ariaLabel,\n onClick: event => onClick(event, value),\n onKeyDown: event => onKeyDown(event, value),\n onFocus: event => onFocus(event, value),\n onBlur: event => onBlur(event, value)\n },\n ownerState: props,\n className: classes.monthButton\n });\n return /*#__PURE__*/_jsx(PickersMonthRoot, _extends({\n className: clsx(classes.root, className),\n ownerState: props\n }, other, {\n children: /*#__PURE__*/_jsx(MonthButton, _extends({}, monthButtonProps))\n }));\n});","import { unstable_generateUtilityClass as generateUtilityClass, unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nexport function getMonthCalendarUtilityClass(slot) {\n return generateUtilityClass('MuiMonthCalendar', slot);\n}\nexport const monthCalendarClasses = generateUtilityClasses('MuiMonthCalendar', ['root']);","'use client';\n\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"value\", \"defaultValue\", \"referenceDate\", \"disabled\", \"disableFuture\", \"disablePast\", \"maxDate\", \"minDate\", \"onChange\", \"shouldDisableMonth\", \"readOnly\", \"disableHighlightToday\", \"autoFocus\", \"onMonthFocus\", \"hasFocus\", \"onFocusedViewChange\", \"monthsPerRow\", \"timezone\", \"gridLabelId\", \"slots\", \"slotProps\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { useRtl } from '@mui/system/RtlProvider';\nimport { styled, useThemeProps } from '@mui/material/styles';\nimport { unstable_useControlled as useControlled, unstable_composeClasses as composeClasses, unstable_useEventCallback as useEventCallback } from '@mui/utils';\nimport { PickersMonth } from \"./PickersMonth.js\";\nimport { useUtils, useNow, useDefaultDates } from \"../internals/hooks/useUtils.js\";\nimport { getMonthCalendarUtilityClass } from \"./monthCalendarClasses.js\";\nimport { applyDefaultDate, getMonthsInYear } from \"../internals/utils/date-utils.js\";\nimport { singleItemValueManager } from \"../internals/utils/valueManagers.js\";\nimport { SECTION_TYPE_GRANULARITY } from \"../internals/utils/getDefaultReferenceDate.js\";\nimport { useControlledValueWithTimezone } from \"../internals/hooks/useValueWithTimezone.js\";\nimport { DIALOG_WIDTH } from \"../internals/constants/dimensions.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getMonthCalendarUtilityClass, classes);\n};\nexport function useMonthCalendarDefaultizedProps(props, name) {\n const utils = useUtils();\n const defaultDates = useDefaultDates();\n const themeProps = useThemeProps({\n props,\n name\n });\n return _extends({\n disableFuture: false,\n disablePast: false\n }, themeProps, {\n minDate: applyDefaultDate(utils, themeProps.minDate, defaultDates.minDate),\n maxDate: applyDefaultDate(utils, themeProps.maxDate, defaultDates.maxDate)\n });\n}\nconst MonthCalendarRoot = styled('div', {\n name: 'MuiMonthCalendar',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n display: 'flex',\n flexWrap: 'wrap',\n alignContent: 'stretch',\n padding: '0 4px',\n width: DIALOG_WIDTH,\n // avoid padding increasing width over defined\n boxSizing: 'border-box'\n});\n/**\n * Demos:\n *\n * - [DateCalendar](https://mui.com/x/react-date-pickers/date-calendar/)\n *\n * API:\n *\n * - [MonthCalendar API](https://mui.com/x/api/date-pickers/month-calendar/)\n */\nexport const MonthCalendar = /*#__PURE__*/React.forwardRef(function MonthCalendar(inProps, ref) {\n const props = useMonthCalendarDefaultizedProps(inProps, 'MuiMonthCalendar');\n const {\n className,\n value: valueProp,\n defaultValue,\n referenceDate: referenceDateProp,\n disabled,\n disableFuture,\n disablePast,\n maxDate,\n minDate,\n onChange,\n shouldDisableMonth,\n readOnly,\n autoFocus = false,\n onMonthFocus,\n hasFocus,\n onFocusedViewChange,\n monthsPerRow = 3,\n timezone: timezoneProp,\n gridLabelId,\n slots,\n slotProps\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const {\n value,\n handleValueChange,\n timezone\n } = useControlledValueWithTimezone({\n name: 'MonthCalendar',\n timezone: timezoneProp,\n value: valueProp,\n defaultValue,\n onChange: onChange,\n valueManager: singleItemValueManager\n });\n const now = useNow(timezone);\n const isRtl = useRtl();\n const utils = useUtils();\n const referenceDate = React.useMemo(() => singleItemValueManager.getInitialReferenceValue({\n value,\n utils,\n props,\n timezone,\n referenceDate: referenceDateProp,\n granularity: SECTION_TYPE_GRANULARITY.month\n }), [] // eslint-disable-line react-hooks/exhaustive-deps\n );\n const ownerState = props;\n const classes = useUtilityClasses(ownerState);\n const todayMonth = React.useMemo(() => utils.getMonth(now), [utils, now]);\n const selectedMonth = React.useMemo(() => {\n if (value != null) {\n return utils.getMonth(value);\n }\n return null;\n }, [value, utils]);\n const [focusedMonth, setFocusedMonth] = React.useState(() => selectedMonth || utils.getMonth(referenceDate));\n const [internalHasFocus, setInternalHasFocus] = useControlled({\n name: 'MonthCalendar',\n state: 'hasFocus',\n controlled: hasFocus,\n default: autoFocus ?? false\n });\n const changeHasFocus = useEventCallback(newHasFocus => {\n setInternalHasFocus(newHasFocus);\n if (onFocusedViewChange) {\n onFocusedViewChange(newHasFocus);\n }\n });\n const isMonthDisabled = React.useCallback(dateToValidate => {\n const firstEnabledMonth = utils.startOfMonth(disablePast && utils.isAfter(now, minDate) ? now : minDate);\n const lastEnabledMonth = utils.startOfMonth(disableFuture && utils.isBefore(now, maxDate) ? now : maxDate);\n const monthToValidate = utils.startOfMonth(dateToValidate);\n if (utils.isBefore(monthToValidate, firstEnabledMonth)) {\n return true;\n }\n if (utils.isAfter(monthToValidate, lastEnabledMonth)) {\n return true;\n }\n if (!shouldDisableMonth) {\n return false;\n }\n return shouldDisableMonth(monthToValidate);\n }, [disableFuture, disablePast, maxDate, minDate, now, shouldDisableMonth, utils]);\n const handleMonthSelection = useEventCallback((event, month) => {\n if (readOnly) {\n return;\n }\n const newDate = utils.setMonth(value ?? referenceDate, month);\n handleValueChange(newDate);\n });\n const focusMonth = useEventCallback(month => {\n if (!isMonthDisabled(utils.setMonth(value ?? referenceDate, month))) {\n setFocusedMonth(month);\n changeHasFocus(true);\n if (onMonthFocus) {\n onMonthFocus(month);\n }\n }\n });\n React.useEffect(() => {\n setFocusedMonth(prevFocusedMonth => selectedMonth !== null && prevFocusedMonth !== selectedMonth ? selectedMonth : prevFocusedMonth);\n }, [selectedMonth]);\n const handleKeyDown = useEventCallback((event, month) => {\n const monthsInYear = 12;\n const monthsInRow = 3;\n switch (event.key) {\n case 'ArrowUp':\n focusMonth((monthsInYear + month - monthsInRow) % monthsInYear);\n event.preventDefault();\n break;\n case 'ArrowDown':\n focusMonth((monthsInYear + month + monthsInRow) % monthsInYear);\n event.preventDefault();\n break;\n case 'ArrowLeft':\n focusMonth((monthsInYear + month + (isRtl ? 1 : -1)) % monthsInYear);\n event.preventDefault();\n break;\n case 'ArrowRight':\n focusMonth((monthsInYear + month + (isRtl ? -1 : 1)) % monthsInYear);\n event.preventDefault();\n break;\n default:\n break;\n }\n });\n const handleMonthFocus = useEventCallback((event, month) => {\n focusMonth(month);\n });\n const handleMonthBlur = useEventCallback((event, month) => {\n if (focusedMonth === month) {\n changeHasFocus(false);\n }\n });\n return /*#__PURE__*/_jsx(MonthCalendarRoot, _extends({\n ref: ref,\n className: clsx(classes.root, className),\n ownerState: ownerState,\n role: \"radiogroup\",\n \"aria-labelledby\": gridLabelId\n }, other, {\n children: getMonthsInYear(utils, value ?? referenceDate).map(month => {\n const monthNumber = utils.getMonth(month);\n const monthText = utils.format(month, 'monthShort');\n const monthLabel = utils.format(month, 'month');\n const isSelected = monthNumber === selectedMonth;\n const isDisabled = disabled || isMonthDisabled(month);\n return /*#__PURE__*/_jsx(PickersMonth, {\n selected: isSelected,\n value: monthNumber,\n onClick: handleMonthSelection,\n onKeyDown: handleKeyDown,\n autoFocus: internalHasFocus && monthNumber === focusedMonth,\n disabled: isDisabled,\n tabIndex: monthNumber === focusedMonth && !isDisabled ? 0 : -1,\n onFocus: handleMonthFocus,\n onBlur: handleMonthBlur,\n \"aria-current\": todayMonth === monthNumber ? 'date' : undefined,\n \"aria-label\": monthLabel,\n monthsPerRow: monthsPerRow,\n slots: slots,\n slotProps: slotProps,\n children: monthText\n }, monthText);\n })\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? MonthCalendar.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n autoFocus: PropTypes.bool,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n className: PropTypes.string,\n /**\n * The default selected value.\n * Used when the component is not controlled.\n */\n defaultValue: PropTypes.object,\n /**\n * If `true` picker is disabled\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, disable values after the current date for date components, time for time components and both for date time components.\n * @default false\n */\n disableFuture: PropTypes.bool,\n /**\n * If `true`, today's date is rendering without highlighting with circle.\n * @default false\n */\n disableHighlightToday: PropTypes.bool,\n /**\n * If `true`, disable values before the current date for date components, time for time components and both for date time components.\n * @default false\n */\n disablePast: PropTypes.bool,\n gridLabelId: PropTypes.string,\n hasFocus: PropTypes.bool,\n /**\n * Maximal selectable date.\n * @default 2099-12-31\n */\n maxDate: PropTypes.object,\n /**\n * Minimal selectable date.\n * @default 1900-01-01\n */\n minDate: PropTypes.object,\n /**\n * Months rendered per row.\n * @default 3\n */\n monthsPerRow: PropTypes.oneOf([3, 4]),\n /**\n * Callback fired when the value changes.\n * @template TDate\n * @param {TDate} value The new value.\n */\n onChange: PropTypes.func,\n onFocusedViewChange: PropTypes.func,\n onMonthFocus: PropTypes.func,\n /**\n * If `true` picker is readonly\n */\n readOnly: PropTypes.bool,\n /**\n * The date used to generate the new value when both `value` and `defaultValue` are empty.\n * @default The closest valid month using the validation props, except callbacks such as `shouldDisableMonth`.\n */\n referenceDate: PropTypes.object,\n /**\n * Disable specific month.\n * @template TDate\n * @param {TDate} month The month to test.\n * @returns {boolean} If `true`, the month will be disabled.\n */\n shouldDisableMonth: PropTypes.func,\n /**\n * The props used for each component slot.\n * @default {}\n */\n slotProps: PropTypes.object,\n /**\n * Overridable component slots.\n * @default {}\n */\n slots: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * Choose which timezone to use for the value.\n * Example: \"default\", \"system\", \"UTC\", \"America/New_York\".\n * If you pass values from other timezones to some props, they will be converted to this timezone before being used.\n * @see See the {@link https://mui.com/x/react-date-pickers/timezone/ timezones documentation} for more details.\n * @default The timezone of the `value` or `defaultValue` prop is defined, 'default' otherwise.\n */\n timezone: PropTypes.string,\n /**\n * The selected value.\n * Used when the component is controlled.\n */\n value: PropTypes.object\n} : void 0;","import { unstable_generateUtilityClass as generateUtilityClass, unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nexport function getPickersYearUtilityClass(slot) {\n return generateUtilityClass('MuiPickersYear', slot);\n}\nexport const pickersYearClasses = generateUtilityClasses('MuiPickersYear', ['root', 'yearButton', 'selected', 'disabled']);","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"autoFocus\", \"className\", \"children\", \"disabled\", \"selected\", \"value\", \"tabIndex\", \"onClick\", \"onKeyDown\", \"onFocus\", \"onBlur\", \"aria-current\", \"yearsPerRow\", \"slots\", \"slotProps\"];\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport { styled, alpha, useThemeProps } from '@mui/material/styles';\nimport useSlotProps from '@mui/utils/useSlotProps';\nimport composeClasses from '@mui/utils/composeClasses';\nimport useEnhancedEffect from '@mui/utils/useEnhancedEffect';\nimport { getPickersYearUtilityClass, pickersYearClasses } from \"./pickersYearClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n disabled,\n selected,\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n yearButton: ['yearButton', disabled && 'disabled', selected && 'selected']\n };\n return composeClasses(slots, getPickersYearUtilityClass, classes);\n};\nconst PickersYearRoot = styled('div', {\n name: 'MuiPickersYear',\n slot: 'Root',\n overridesResolver: (_, styles) => [styles.root]\n})({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexBasis: '33.3%',\n variants: [{\n props: {\n yearsPerRow: 4\n },\n style: {\n flexBasis: '25%'\n }\n }]\n});\nconst YearCalendarButton = styled('button', {\n name: 'MuiPickersYear',\n slot: 'YearButton',\n overridesResolver: (_, styles) => [styles.yearButton, {\n [`&.${pickersYearClasses.disabled}`]: styles.disabled\n }, {\n [`&.${pickersYearClasses.selected}`]: styles.selected\n }]\n})(({\n theme\n}) => _extends({\n color: 'unset',\n backgroundColor: 'transparent',\n border: 0,\n outline: 0\n}, theme.typography.subtitle1, {\n margin: '6px 0',\n height: 36,\n width: 72,\n borderRadius: 18,\n cursor: 'pointer',\n '&:focus': {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.action.activeChannel} / ${theme.vars.palette.action.focusOpacity})` : alpha(theme.palette.action.active, theme.palette.action.focusOpacity)\n },\n '&:hover': {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.action.activeChannel} / ${theme.vars.palette.action.hoverOpacity})` : alpha(theme.palette.action.active, theme.palette.action.hoverOpacity)\n },\n '&:disabled': {\n cursor: 'auto',\n pointerEvents: 'none'\n },\n [`&.${pickersYearClasses.disabled}`]: {\n color: (theme.vars || theme).palette.text.secondary\n },\n [`&.${pickersYearClasses.selected}`]: {\n color: (theme.vars || theme).palette.primary.contrastText,\n backgroundColor: (theme.vars || theme).palette.primary.main,\n '&:focus, &:hover': {\n backgroundColor: (theme.vars || theme).palette.primary.dark\n }\n }\n}));\n\n/**\n * @ignore - internal component.\n */\nexport const PickersYear = /*#__PURE__*/React.memo(function PickersYear(inProps) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiPickersYear'\n });\n const {\n autoFocus,\n className,\n children,\n disabled,\n selected,\n value,\n tabIndex,\n onClick,\n onKeyDown,\n onFocus,\n onBlur,\n 'aria-current': ariaCurrent\n // We don't want to forward this prop to the root element\n ,\n\n slots,\n slotProps\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ref = React.useRef(null);\n const classes = useUtilityClasses(props);\n\n // We can't forward the `autoFocus` to the button because it is a native button, not a MUI Button\n useEnhancedEffect(() => {\n if (autoFocus) {\n // `ref.current` being `null` would be a bug in MUI.\n ref.current?.focus();\n }\n }, [autoFocus]);\n const YearButton = slots?.yearButton ?? YearCalendarButton;\n const yearButtonProps = useSlotProps({\n elementType: YearButton,\n externalSlotProps: slotProps?.yearButton,\n additionalProps: {\n children,\n disabled,\n tabIndex,\n ref,\n type: 'button',\n role: 'radio',\n 'aria-current': ariaCurrent,\n 'aria-checked': selected,\n onClick: event => onClick(event, value),\n onKeyDown: event => onKeyDown(event, value),\n onFocus: event => onFocus(event, value),\n onBlur: event => onBlur(event, value)\n },\n ownerState: props,\n className: classes.yearButton\n });\n return /*#__PURE__*/_jsx(PickersYearRoot, _extends({\n className: clsx(classes.root, className),\n ownerState: props\n }, other, {\n children: /*#__PURE__*/_jsx(YearButton, _extends({}, yearButtonProps))\n }));\n});","import { unstable_generateUtilityClass as generateUtilityClass, unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nexport function getYearCalendarUtilityClass(slot) {\n return generateUtilityClass('MuiYearCalendar', slot);\n}\nexport const yearCalendarClasses = generateUtilityClasses('MuiYearCalendar', ['root']);","'use client';\n\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"autoFocus\", \"className\", \"value\", \"defaultValue\", \"referenceDate\", \"disabled\", \"disableFuture\", \"disablePast\", \"maxDate\", \"minDate\", \"onChange\", \"readOnly\", \"shouldDisableYear\", \"disableHighlightToday\", \"onYearFocus\", \"hasFocus\", \"onFocusedViewChange\", \"yearsOrder\", \"yearsPerRow\", \"timezone\", \"gridLabelId\", \"slots\", \"slotProps\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { useRtl } from '@mui/system/RtlProvider';\nimport { styled, useThemeProps } from '@mui/material/styles';\nimport { unstable_useForkRef as useForkRef, unstable_composeClasses as composeClasses, unstable_useControlled as useControlled, unstable_useEventCallback as useEventCallback } from '@mui/utils';\nimport { PickersYear } from \"./PickersYear.js\";\nimport { useUtils, useNow, useDefaultDates } from \"../internals/hooks/useUtils.js\";\nimport { getYearCalendarUtilityClass } from \"./yearCalendarClasses.js\";\nimport { applyDefaultDate } from \"../internals/utils/date-utils.js\";\nimport { singleItemValueManager } from \"../internals/utils/valueManagers.js\";\nimport { SECTION_TYPE_GRANULARITY } from \"../internals/utils/getDefaultReferenceDate.js\";\nimport { useControlledValueWithTimezone } from \"../internals/hooks/useValueWithTimezone.js\";\nimport { DIALOG_WIDTH, MAX_CALENDAR_HEIGHT } from \"../internals/constants/dimensions.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getYearCalendarUtilityClass, classes);\n};\nfunction useYearCalendarDefaultizedProps(props, name) {\n const utils = useUtils();\n const defaultDates = useDefaultDates();\n const themeProps = useThemeProps({\n props,\n name\n });\n return _extends({\n disablePast: false,\n disableFuture: false\n }, themeProps, {\n yearsPerRow: themeProps.yearsPerRow ?? 3,\n minDate: applyDefaultDate(utils, themeProps.minDate, defaultDates.minDate),\n maxDate: applyDefaultDate(utils, themeProps.maxDate, defaultDates.maxDate)\n });\n}\nconst YearCalendarRoot = styled('div', {\n name: 'MuiYearCalendar',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'wrap',\n overflowY: 'auto',\n height: '100%',\n padding: '0 4px',\n width: DIALOG_WIDTH,\n maxHeight: MAX_CALENDAR_HEIGHT,\n // avoid padding increasing width over defined\n boxSizing: 'border-box',\n position: 'relative'\n});\n/**\n * Demos:\n *\n * - [DateCalendar](https://mui.com/x/react-date-pickers/date-calendar/)\n *\n * API:\n *\n * - [YearCalendar API](https://mui.com/x/api/date-pickers/year-calendar/)\n */\nexport const YearCalendar = /*#__PURE__*/React.forwardRef(function YearCalendar(inProps, ref) {\n const props = useYearCalendarDefaultizedProps(inProps, 'MuiYearCalendar');\n const {\n autoFocus,\n className,\n value: valueProp,\n defaultValue,\n referenceDate: referenceDateProp,\n disabled,\n disableFuture,\n disablePast,\n maxDate,\n minDate,\n onChange,\n readOnly,\n shouldDisableYear,\n onYearFocus,\n hasFocus,\n onFocusedViewChange,\n yearsOrder = 'asc',\n yearsPerRow,\n timezone: timezoneProp,\n gridLabelId,\n slots,\n slotProps\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const {\n value,\n handleValueChange,\n timezone\n } = useControlledValueWithTimezone({\n name: 'YearCalendar',\n timezone: timezoneProp,\n value: valueProp,\n defaultValue,\n onChange: onChange,\n valueManager: singleItemValueManager\n });\n const now = useNow(timezone);\n const isRtl = useRtl();\n const utils = useUtils();\n const referenceDate = React.useMemo(() => singleItemValueManager.getInitialReferenceValue({\n value,\n utils,\n props,\n timezone,\n referenceDate: referenceDateProp,\n granularity: SECTION_TYPE_GRANULARITY.year\n }), [] // eslint-disable-line react-hooks/exhaustive-deps\n );\n const ownerState = props;\n const classes = useUtilityClasses(ownerState);\n const todayYear = React.useMemo(() => utils.getYear(now), [utils, now]);\n const selectedYear = React.useMemo(() => {\n if (value != null) {\n return utils.getYear(value);\n }\n return null;\n }, [value, utils]);\n const [focusedYear, setFocusedYear] = React.useState(() => selectedYear || utils.getYear(referenceDate));\n const [internalHasFocus, setInternalHasFocus] = useControlled({\n name: 'YearCalendar',\n state: 'hasFocus',\n controlled: hasFocus,\n default: autoFocus ?? false\n });\n const changeHasFocus = useEventCallback(newHasFocus => {\n setInternalHasFocus(newHasFocus);\n if (onFocusedViewChange) {\n onFocusedViewChange(newHasFocus);\n }\n });\n const isYearDisabled = React.useCallback(dateToValidate => {\n if (disablePast && utils.isBeforeYear(dateToValidate, now)) {\n return true;\n }\n if (disableFuture && utils.isAfterYear(dateToValidate, now)) {\n return true;\n }\n if (minDate && utils.isBeforeYear(dateToValidate, minDate)) {\n return true;\n }\n if (maxDate && utils.isAfterYear(dateToValidate, maxDate)) {\n return true;\n }\n if (!shouldDisableYear) {\n return false;\n }\n const yearToValidate = utils.startOfYear(dateToValidate);\n return shouldDisableYear(yearToValidate);\n }, [disableFuture, disablePast, maxDate, minDate, now, shouldDisableYear, utils]);\n const handleYearSelection = useEventCallback((event, year) => {\n if (readOnly) {\n return;\n }\n const newDate = utils.setYear(value ?? referenceDate, year);\n handleValueChange(newDate);\n });\n const focusYear = useEventCallback(year => {\n if (!isYearDisabled(utils.setYear(value ?? referenceDate, year))) {\n setFocusedYear(year);\n changeHasFocus(true);\n onYearFocus?.(year);\n }\n });\n React.useEffect(() => {\n setFocusedYear(prevFocusedYear => selectedYear !== null && prevFocusedYear !== selectedYear ? selectedYear : prevFocusedYear);\n }, [selectedYear]);\n const verticalDirection = yearsOrder !== 'desc' ? yearsPerRow * 1 : yearsPerRow * -1;\n const horizontalDirection = isRtl && yearsOrder === 'asc' || !isRtl && yearsOrder === 'desc' ? -1 : 1;\n const handleKeyDown = useEventCallback((event, year) => {\n switch (event.key) {\n case 'ArrowUp':\n focusYear(year - verticalDirection);\n event.preventDefault();\n break;\n case 'ArrowDown':\n focusYear(year + verticalDirection);\n event.preventDefault();\n break;\n case 'ArrowLeft':\n focusYear(year - horizontalDirection);\n event.preventDefault();\n break;\n case 'ArrowRight':\n focusYear(year + horizontalDirection);\n event.preventDefault();\n break;\n default:\n break;\n }\n });\n const handleYearFocus = useEventCallback((event, year) => {\n focusYear(year);\n });\n const handleYearBlur = useEventCallback((event, year) => {\n if (focusedYear === year) {\n changeHasFocus(false);\n }\n });\n const scrollerRef = React.useRef(null);\n const handleRef = useForkRef(ref, scrollerRef);\n React.useEffect(() => {\n if (autoFocus || scrollerRef.current === null) {\n return;\n }\n const tabbableButton = scrollerRef.current.querySelector('[tabindex=\"0\"]');\n if (!tabbableButton) {\n return;\n }\n\n // Taken from useScroll in x-data-grid, but vertically centered\n const offsetHeight = tabbableButton.offsetHeight;\n const offsetTop = tabbableButton.offsetTop;\n const clientHeight = scrollerRef.current.clientHeight;\n const scrollTop = scrollerRef.current.scrollTop;\n const elementBottom = offsetTop + offsetHeight;\n if (offsetHeight > clientHeight || offsetTop < scrollTop) {\n // Button already visible\n return;\n }\n scrollerRef.current.scrollTop = elementBottom - clientHeight / 2 - offsetHeight / 2;\n }, [autoFocus]);\n const yearRange = utils.getYearRange([minDate, maxDate]);\n if (yearsOrder === 'desc') {\n yearRange.reverse();\n }\n return /*#__PURE__*/_jsx(YearCalendarRoot, _extends({\n ref: handleRef,\n className: clsx(classes.root, className),\n ownerState: ownerState,\n role: \"radiogroup\",\n \"aria-labelledby\": gridLabelId\n }, other, {\n children: yearRange.map(year => {\n const yearNumber = utils.getYear(year);\n const isSelected = yearNumber === selectedYear;\n const isDisabled = disabled || isYearDisabled(year);\n return /*#__PURE__*/_jsx(PickersYear, {\n selected: isSelected,\n value: yearNumber,\n onClick: handleYearSelection,\n onKeyDown: handleKeyDown,\n autoFocus: internalHasFocus && yearNumber === focusedYear,\n disabled: isDisabled,\n tabIndex: yearNumber === focusedYear && !isDisabled ? 0 : -1,\n onFocus: handleYearFocus,\n onBlur: handleYearBlur,\n \"aria-current\": todayYear === yearNumber ? 'date' : undefined,\n yearsPerRow: yearsPerRow,\n slots: slots,\n slotProps: slotProps,\n children: utils.format(year, 'year')\n }, utils.format(year, 'year'));\n })\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? YearCalendar.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n autoFocus: PropTypes.bool,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n className: PropTypes.string,\n /**\n * The default selected value.\n * Used when the component is not controlled.\n */\n defaultValue: PropTypes.object,\n /**\n * If `true` picker is disabled\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, disable values after the current date for date components, time for time components and both for date time components.\n * @default false\n */\n disableFuture: PropTypes.bool,\n /**\n * If `true`, today's date is rendering without highlighting with circle.\n * @default false\n */\n disableHighlightToday: PropTypes.bool,\n /**\n * If `true`, disable values before the current date for date components, time for time components and both for date time components.\n * @default false\n */\n disablePast: PropTypes.bool,\n gridLabelId: PropTypes.string,\n hasFocus: PropTypes.bool,\n /**\n * Maximal selectable date.\n * @default 2099-12-31\n */\n maxDate: PropTypes.object,\n /**\n * Minimal selectable date.\n * @default 1900-01-01\n */\n minDate: PropTypes.object,\n /**\n * Callback fired when the value changes.\n * @template TDate\n * @param {TDate} value The new value.\n */\n onChange: PropTypes.func,\n onFocusedViewChange: PropTypes.func,\n onYearFocus: PropTypes.func,\n /**\n * If `true` picker is readonly\n */\n readOnly: PropTypes.bool,\n /**\n * The date used to generate the new value when both `value` and `defaultValue` are empty.\n * @default The closest valid year using the validation props, except callbacks such as `shouldDisableYear`.\n */\n referenceDate: PropTypes.object,\n /**\n * Disable specific year.\n * @template TDate\n * @param {TDate} year The year to test.\n * @returns {boolean} If `true`, the year will be disabled.\n */\n shouldDisableYear: PropTypes.func,\n /**\n * The props used for each component slot.\n * @default {}\n */\n slotProps: PropTypes.object,\n /**\n * Overridable component slots.\n * @default {}\n */\n slots: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * Choose which timezone to use for the value.\n * Example: \"default\", \"system\", \"UTC\", \"America/New_York\".\n * If you pass values from other timezones to some props, they will be converted to this timezone before being used.\n * @see See the {@link https://mui.com/x/react-date-pickers/timezone/ timezones documentation} for more details.\n * @default The timezone of the `value` or `defaultValue` prop is defined, 'default' otherwise.\n */\n timezone: PropTypes.string,\n /**\n * The selected value.\n * Used when the component is controlled.\n */\n value: PropTypes.object,\n /**\n * Years are displayed in ascending (chronological) order by default.\n * If `desc`, years are displayed in descending order.\n * @default 'asc'\n */\n yearsOrder: PropTypes.oneOf(['asc', 'desc']),\n /**\n * Years rendered per row.\n * @default 3\n */\n yearsPerRow: PropTypes.oneOf([3, 4])\n} : void 0;","import { unstable_generateUtilityClass as generateUtilityClass, unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nexport function getPickersArrowSwitcherUtilityClass(slot) {\n return generateUtilityClass('MuiPickersArrowSwitcher', slot);\n}\nexport const pickersArrowSwitcherClasses = generateUtilityClasses('MuiPickersArrowSwitcher', ['root', 'spacer', 'button', 'previousIconButton', 'nextIconButton', 'leftArrowIcon', 'rightArrowIcon']);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\", \"className\", \"slots\", \"slotProps\", \"isNextDisabled\", \"isNextHidden\", \"onGoToNext\", \"nextLabel\", \"isPreviousDisabled\", \"isPreviousHidden\", \"onGoToPrevious\", \"previousLabel\", \"labelId\"],\n _excluded2 = [\"ownerState\"],\n _excluded3 = [\"ownerState\"];\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport Typography from '@mui/material/Typography';\nimport { useRtl } from '@mui/system/RtlProvider';\nimport { styled, useThemeProps } from '@mui/material/styles';\nimport composeClasses from '@mui/utils/composeClasses';\nimport useSlotProps from '@mui/utils/useSlotProps';\nimport IconButton from '@mui/material/IconButton';\nimport { ArrowLeftIcon, ArrowRightIcon } from \"../../../icons/index.js\";\nimport { getPickersArrowSwitcherUtilityClass } from \"./pickersArrowSwitcherClasses.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst PickersArrowSwitcherRoot = styled('div', {\n name: 'MuiPickersArrowSwitcher',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n display: 'flex'\n});\nconst PickersArrowSwitcherSpacer = styled('div', {\n name: 'MuiPickersArrowSwitcher',\n slot: 'Spacer',\n overridesResolver: (props, styles) => styles.spacer\n})(({\n theme\n}) => ({\n width: theme.spacing(3)\n}));\nconst PickersArrowSwitcherButton = styled(IconButton, {\n name: 'MuiPickersArrowSwitcher',\n slot: 'Button',\n overridesResolver: (props, styles) => styles.button\n})({\n variants: [{\n props: {\n hidden: true\n },\n style: {\n visibility: 'hidden'\n }\n }]\n});\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n spacer: ['spacer'],\n button: ['button'],\n previousIconButton: ['previousIconButton'],\n nextIconButton: ['nextIconButton'],\n leftArrowIcon: ['leftArrowIcon'],\n rightArrowIcon: ['rightArrowIcon']\n };\n return composeClasses(slots, getPickersArrowSwitcherUtilityClass, classes);\n};\nexport const PickersArrowSwitcher = /*#__PURE__*/React.forwardRef(function PickersArrowSwitcher(inProps, ref) {\n const isRtl = useRtl();\n const props = useThemeProps({\n props: inProps,\n name: 'MuiPickersArrowSwitcher'\n });\n const {\n children,\n className,\n slots,\n slotProps,\n isNextDisabled,\n isNextHidden,\n onGoToNext,\n nextLabel,\n isPreviousDisabled,\n isPreviousHidden,\n onGoToPrevious,\n previousLabel,\n labelId\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = props;\n const classes = useUtilityClasses(ownerState);\n const nextProps = {\n isDisabled: isNextDisabled,\n isHidden: isNextHidden,\n goTo: onGoToNext,\n label: nextLabel\n };\n const previousProps = {\n isDisabled: isPreviousDisabled,\n isHidden: isPreviousHidden,\n goTo: onGoToPrevious,\n label: previousLabel\n };\n const PreviousIconButton = slots?.previousIconButton ?? PickersArrowSwitcherButton;\n const previousIconButtonProps = useSlotProps({\n elementType: PreviousIconButton,\n externalSlotProps: slotProps?.previousIconButton,\n additionalProps: {\n size: 'medium',\n title: previousProps.label,\n 'aria-label': previousProps.label,\n disabled: previousProps.isDisabled,\n edge: 'end',\n onClick: previousProps.goTo\n },\n ownerState: _extends({}, ownerState, {\n hidden: previousProps.isHidden\n }),\n className: clsx(classes.button, classes.previousIconButton)\n });\n const NextIconButton = slots?.nextIconButton ?? PickersArrowSwitcherButton;\n const nextIconButtonProps = useSlotProps({\n elementType: NextIconButton,\n externalSlotProps: slotProps?.nextIconButton,\n additionalProps: {\n size: 'medium',\n title: nextProps.label,\n 'aria-label': nextProps.label,\n disabled: nextProps.isDisabled,\n edge: 'start',\n onClick: nextProps.goTo\n },\n ownerState: _extends({}, ownerState, {\n hidden: nextProps.isHidden\n }),\n className: clsx(classes.button, classes.nextIconButton)\n });\n const LeftArrowIcon = slots?.leftArrowIcon ?? ArrowLeftIcon;\n // The spread is here to avoid this bug mui/material-ui#34056\n const _useSlotProps = useSlotProps({\n elementType: LeftArrowIcon,\n externalSlotProps: slotProps?.leftArrowIcon,\n additionalProps: {\n fontSize: 'inherit'\n },\n ownerState,\n className: classes.leftArrowIcon\n }),\n leftArrowIconProps = _objectWithoutPropertiesLoose(_useSlotProps, _excluded2);\n const RightArrowIcon = slots?.rightArrowIcon ?? ArrowRightIcon;\n // The spread is here to avoid this bug mui/material-ui#34056\n const _useSlotProps2 = useSlotProps({\n elementType: RightArrowIcon,\n externalSlotProps: slotProps?.rightArrowIcon,\n additionalProps: {\n fontSize: 'inherit'\n },\n ownerState,\n className: classes.rightArrowIcon\n }),\n rightArrowIconProps = _objectWithoutPropertiesLoose(_useSlotProps2, _excluded3);\n return /*#__PURE__*/_jsxs(PickersArrowSwitcherRoot, _extends({\n ref: ref,\n className: clsx(classes.root, className),\n ownerState: ownerState\n }, other, {\n children: [/*#__PURE__*/_jsx(PreviousIconButton, _extends({}, previousIconButtonProps, {\n children: isRtl ? /*#__PURE__*/_jsx(RightArrowIcon, _extends({}, rightArrowIconProps)) : /*#__PURE__*/_jsx(LeftArrowIcon, _extends({}, leftArrowIconProps))\n })), children ? /*#__PURE__*/_jsx(Typography, {\n variant: \"subtitle1\",\n component: \"span\",\n id: labelId,\n children: children\n }) : /*#__PURE__*/_jsx(PickersArrowSwitcherSpacer, {\n className: classes.spacer,\n ownerState: ownerState\n }), /*#__PURE__*/_jsx(NextIconButton, _extends({}, nextIconButtonProps, {\n children: isRtl ? /*#__PURE__*/_jsx(LeftArrowIcon, _extends({}, leftArrowIconProps)) : /*#__PURE__*/_jsx(RightArrowIcon, _extends({}, rightArrowIconProps))\n }))]\n }));\n});","import { unstable_generateUtilityClass as generateUtilityClass, unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nexport const getPickersCalendarHeaderUtilityClass = slot => generateUtilityClass('MuiPickersCalendarHeader', slot);\nexport const pickersCalendarHeaderClasses = generateUtilityClasses('MuiPickersCalendarHeader', ['root', 'labelContainer', 'label', 'switchViewButton', 'switchViewIcon']);","'use client';\n\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"slots\", \"slotProps\", \"currentMonth\", \"disabled\", \"disableFuture\", \"disablePast\", \"maxDate\", \"minDate\", \"onMonthChange\", \"onViewChange\", \"view\", \"reduceAnimations\", \"views\", \"labelId\", \"className\", \"timezone\", \"format\"],\n _excluded2 = [\"ownerState\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport Fade from '@mui/material/Fade';\nimport { styled, useThemeProps } from '@mui/material/styles';\nimport useSlotProps from '@mui/utils/useSlotProps';\nimport composeClasses from '@mui/utils/composeClasses';\nimport IconButton from '@mui/material/IconButton';\nimport { usePickersTranslations } from \"../hooks/usePickersTranslations.js\";\nimport { useUtils } from \"../internals/hooks/useUtils.js\";\nimport { PickersFadeTransitionGroup } from \"../DateCalendar/PickersFadeTransitionGroup.js\";\nimport { ArrowDropDownIcon } from \"../icons/index.js\";\nimport { PickersArrowSwitcher } from \"../internals/components/PickersArrowSwitcher/index.js\";\nimport { usePreviousMonthDisabled, useNextMonthDisabled } from \"../internals/hooks/date-helpers-hooks.js\";\nimport { getPickersCalendarHeaderUtilityClass, pickersCalendarHeaderClasses } from \"./pickersCalendarHeaderClasses.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n labelContainer: ['labelContainer'],\n label: ['label'],\n switchViewButton: ['switchViewButton'],\n switchViewIcon: ['switchViewIcon']\n };\n return composeClasses(slots, getPickersCalendarHeaderUtilityClass, classes);\n};\nconst PickersCalendarHeaderRoot = styled('div', {\n name: 'MuiPickersCalendarHeader',\n slot: 'Root',\n overridesResolver: (_, styles) => styles.root\n})({\n display: 'flex',\n alignItems: 'center',\n marginTop: 12,\n marginBottom: 4,\n paddingLeft: 24,\n paddingRight: 12,\n // prevent jumping in safari\n maxHeight: 40,\n minHeight: 40\n});\nconst PickersCalendarHeaderLabelContainer = styled('div', {\n name: 'MuiPickersCalendarHeader',\n slot: 'LabelContainer',\n overridesResolver: (_, styles) => styles.labelContainer\n})(({\n theme\n}) => _extends({\n display: 'flex',\n overflow: 'hidden',\n alignItems: 'center',\n cursor: 'pointer',\n marginRight: 'auto'\n}, theme.typography.body1, {\n fontWeight: theme.typography.fontWeightMedium\n}));\nconst PickersCalendarHeaderLabel = styled('div', {\n name: 'MuiPickersCalendarHeader',\n slot: 'Label',\n overridesResolver: (_, styles) => styles.label\n})({\n marginRight: 6\n});\nconst PickersCalendarHeaderSwitchViewButton = styled(IconButton, {\n name: 'MuiPickersCalendarHeader',\n slot: 'SwitchViewButton',\n overridesResolver: (_, styles) => styles.switchViewButton\n})({\n marginRight: 'auto',\n variants: [{\n props: {\n view: 'year'\n },\n style: {\n [`.${pickersCalendarHeaderClasses.switchViewIcon}`]: {\n transform: 'rotate(180deg)'\n }\n }\n }]\n});\nconst PickersCalendarHeaderSwitchViewIcon = styled(ArrowDropDownIcon, {\n name: 'MuiPickersCalendarHeader',\n slot: 'SwitchViewIcon',\n overridesResolver: (_, styles) => styles.switchViewIcon\n})(({\n theme\n}) => ({\n willChange: 'transform',\n transition: theme.transitions.create('transform'),\n transform: 'rotate(0deg)'\n}));\n/**\n * Demos:\n *\n * - [DateCalendar](https://mui.com/x/react-date-pickers/date-calendar/)\n * - [DateRangeCalendar](https://mui.com/x/react-date-pickers/date-range-calendar/)\n * - [Custom slots and subcomponents](https://mui.com/x/react-date-pickers/custom-components/)\n *\n * API:\n *\n * - [PickersCalendarHeader API](https://mui.com/x/api/date-pickers/pickers-calendar-header/)\n */\nconst PickersCalendarHeader = /*#__PURE__*/React.forwardRef(function PickersCalendarHeader(inProps, ref) {\n const translations = usePickersTranslations();\n const utils = useUtils();\n const props = useThemeProps({\n props: inProps,\n name: 'MuiPickersCalendarHeader'\n });\n const {\n slots,\n slotProps,\n currentMonth: month,\n disabled,\n disableFuture,\n disablePast,\n maxDate,\n minDate,\n onMonthChange,\n onViewChange,\n view,\n reduceAnimations,\n views,\n labelId,\n className,\n timezone,\n format = `${utils.formats.month} ${utils.formats.year}`\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = props;\n const classes = useUtilityClasses(props);\n const SwitchViewButton = slots?.switchViewButton ?? PickersCalendarHeaderSwitchViewButton;\n const switchViewButtonProps = useSlotProps({\n elementType: SwitchViewButton,\n externalSlotProps: slotProps?.switchViewButton,\n additionalProps: {\n size: 'small',\n 'aria-label': translations.calendarViewSwitchingButtonAriaLabel(view)\n },\n ownerState,\n className: classes.switchViewButton\n });\n const SwitchViewIcon = slots?.switchViewIcon ?? PickersCalendarHeaderSwitchViewIcon;\n // The spread is here to avoid this bug mui/material-ui#34056\n const _useSlotProps = useSlotProps({\n elementType: SwitchViewIcon,\n externalSlotProps: slotProps?.switchViewIcon,\n ownerState,\n className: classes.switchViewIcon\n }),\n switchViewIconProps = _objectWithoutPropertiesLoose(_useSlotProps, _excluded2);\n const selectNextMonth = () => onMonthChange(utils.addMonths(month, 1), 'left');\n const selectPreviousMonth = () => onMonthChange(utils.addMonths(month, -1), 'right');\n const isNextMonthDisabled = useNextMonthDisabled(month, {\n disableFuture,\n maxDate,\n timezone\n });\n const isPreviousMonthDisabled = usePreviousMonthDisabled(month, {\n disablePast,\n minDate,\n timezone\n });\n const handleToggleView = () => {\n if (views.length === 1 || !onViewChange || disabled) {\n return;\n }\n if (views.length === 2) {\n onViewChange(views.find(el => el !== view) || views[0]);\n } else {\n // switching only between first 2\n const nextIndexToOpen = views.indexOf(view) !== 0 ? 0 : 1;\n onViewChange(views[nextIndexToOpen]);\n }\n };\n\n // No need to display more information\n if (views.length === 1 && views[0] === 'year') {\n return null;\n }\n const label = utils.formatByString(month, format);\n return /*#__PURE__*/_jsxs(PickersCalendarHeaderRoot, _extends({}, other, {\n ownerState: ownerState,\n className: clsx(classes.root, className),\n ref: ref,\n children: [/*#__PURE__*/_jsxs(PickersCalendarHeaderLabelContainer, {\n role: \"presentation\",\n onClick: handleToggleView,\n ownerState: ownerState\n // putting this on the label item element below breaks when using transition\n ,\n \"aria-live\": \"polite\",\n className: classes.labelContainer,\n children: [/*#__PURE__*/_jsx(PickersFadeTransitionGroup, {\n reduceAnimations: reduceAnimations,\n transKey: label,\n children: /*#__PURE__*/_jsx(PickersCalendarHeaderLabel, {\n id: labelId,\n ownerState: ownerState,\n className: classes.label,\n children: label\n })\n }), views.length > 1 && !disabled && /*#__PURE__*/_jsx(SwitchViewButton, _extends({}, switchViewButtonProps, {\n children: /*#__PURE__*/_jsx(SwitchViewIcon, _extends({}, switchViewIconProps))\n }))]\n }), /*#__PURE__*/_jsx(Fade, {\n in: view === 'day',\n children: /*#__PURE__*/_jsx(PickersArrowSwitcher, {\n slots: slots,\n slotProps: slotProps,\n onGoToPrevious: selectPreviousMonth,\n isPreviousDisabled: isPreviousMonthDisabled,\n previousLabel: translations.previousMonth,\n onGoToNext: selectNextMonth,\n isNextDisabled: isNextMonthDisabled,\n nextLabel: translations.nextMonth\n })\n })]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? PickersCalendarHeader.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n className: PropTypes.string,\n currentMonth: PropTypes.object.isRequired,\n disabled: PropTypes.bool,\n disableFuture: PropTypes.bool,\n disablePast: PropTypes.bool,\n /**\n * Format used to display the date.\n * @default `${adapter.formats.month} ${adapter.formats.year}`\n */\n format: PropTypes.string,\n /**\n * Id of the calendar text element.\n * It is used to establish an `aria-labelledby` relationship with the calendar `grid` element.\n */\n labelId: PropTypes.string,\n maxDate: PropTypes.object.isRequired,\n minDate: PropTypes.object.isRequired,\n onMonthChange: PropTypes.func.isRequired,\n onViewChange: PropTypes.func,\n reduceAnimations: PropTypes.bool.isRequired,\n /**\n * The props used for each component slot.\n * @default {}\n */\n slotProps: PropTypes.object,\n /**\n * Overridable component slots.\n * @default {}\n */\n slots: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n timezone: PropTypes.string.isRequired,\n view: PropTypes.oneOf(['day', 'month', 'year']).isRequired,\n views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'month', 'year']).isRequired).isRequired\n} : void 0;\nexport { PickersCalendarHeader };","import * as React from 'react';\nimport { useUtils } from \"./useUtils.js\";\nimport { getMeridiem, convertToMeridiem } from \"../utils/time-utils.js\";\nexport function useNextMonthDisabled(month, {\n disableFuture,\n maxDate,\n timezone\n}) {\n const utils = useUtils();\n return React.useMemo(() => {\n const now = utils.date(undefined, timezone);\n const lastEnabledMonth = utils.startOfMonth(disableFuture && utils.isBefore(now, maxDate) ? now : maxDate);\n return !utils.isAfter(lastEnabledMonth, month);\n }, [disableFuture, maxDate, month, utils, timezone]);\n}\nexport function usePreviousMonthDisabled(month, {\n disablePast,\n minDate,\n timezone\n}) {\n const utils = useUtils();\n return React.useMemo(() => {\n const now = utils.date(undefined, timezone);\n const firstEnabledMonth = utils.startOfMonth(disablePast && utils.isAfter(now, minDate) ? now : minDate);\n return !utils.isBefore(firstEnabledMonth, month);\n }, [disablePast, minDate, month, utils, timezone]);\n}\nexport function useMeridiemMode(date, ampm, onChange, selectionState) {\n const utils = useUtils();\n const meridiemMode = getMeridiem(date, utils);\n const handleMeridiemChange = React.useCallback(mode => {\n const timeWithMeridiem = date == null ? null : convertToMeridiem(date, mode, Boolean(ampm), utils);\n onChange(timeWithMeridiem, selectionState ?? 'partial');\n }, [ampm, date, onChange, selectionState, utils]);\n return {\n meridiemMode,\n handleMeridiemChange\n };\n}","import { styled } from '@mui/material/styles';\nimport { DIALOG_WIDTH, VIEW_HEIGHT } from \"../../constants/dimensions.js\";\nexport const PickerViewRoot = styled('div')({\n overflow: 'hidden',\n width: DIALOG_WIDTH,\n maxHeight: VIEW_HEIGHT,\n display: 'flex',\n flexDirection: 'column',\n margin: '0 auto'\n});","import { unstable_generateUtilityClass as generateUtilityClass, unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nexport const getDateCalendarUtilityClass = slot => generateUtilityClass('MuiDateCalendar', slot);\nexport const dateCalendarClasses = generateUtilityClasses('MuiDateCalendar', ['root', 'viewTransitionContainer']);","'use client';\n\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"autoFocus\", \"onViewChange\", \"value\", \"defaultValue\", \"referenceDate\", \"disableFuture\", \"disablePast\", \"onChange\", \"onYearChange\", \"onMonthChange\", \"reduceAnimations\", \"shouldDisableDate\", \"shouldDisableMonth\", \"shouldDisableYear\", \"view\", \"views\", \"openTo\", \"className\", \"disabled\", \"readOnly\", \"minDate\", \"maxDate\", \"disableHighlightToday\", \"focusedView\", \"onFocusedViewChange\", \"showDaysOutsideCurrentMonth\", \"fixedWeekNumber\", \"dayOfWeekFormatter\", \"slots\", \"slotProps\", \"loading\", \"renderLoading\", \"displayWeekNumber\", \"yearsOrder\", \"yearsPerRow\", \"monthsPerRow\", \"timezone\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport useSlotProps from '@mui/utils/useSlotProps';\nimport { styled, useThemeProps } from '@mui/material/styles';\nimport { unstable_composeClasses as composeClasses, unstable_useId as useId, unstable_useEventCallback as useEventCallback } from '@mui/utils';\nimport { useCalendarState } from \"./useCalendarState.js\";\nimport { useDefaultDates, useUtils } from \"../internals/hooks/useUtils.js\";\nimport { PickersFadeTransitionGroup } from \"./PickersFadeTransitionGroup.js\";\nimport { DayCalendar } from \"./DayCalendar.js\";\nimport { MonthCalendar } from \"../MonthCalendar/index.js\";\nimport { YearCalendar } from \"../YearCalendar/index.js\";\nimport { useViews } from \"../internals/hooks/useViews.js\";\nimport { PickersCalendarHeader } from \"../PickersCalendarHeader/index.js\";\nimport { findClosestEnabledDate, applyDefaultDate, mergeDateAndTime } from \"../internals/utils/date-utils.js\";\nimport { PickerViewRoot } from \"../internals/components/PickerViewRoot/index.js\";\nimport { useDefaultReduceAnimations } from \"../internals/hooks/useDefaultReduceAnimations.js\";\nimport { getDateCalendarUtilityClass } from \"./dateCalendarClasses.js\";\nimport { useControlledValueWithTimezone } from \"../internals/hooks/useValueWithTimezone.js\";\nimport { singleItemValueManager } from \"../internals/utils/valueManagers.js\";\nimport { VIEW_HEIGHT } from \"../internals/constants/dimensions.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n viewTransitionContainer: ['viewTransitionContainer']\n };\n return composeClasses(slots, getDateCalendarUtilityClass, classes);\n};\nfunction useDateCalendarDefaultizedProps(props, name) {\n const utils = useUtils();\n const defaultDates = useDefaultDates();\n const defaultReduceAnimations = useDefaultReduceAnimations();\n const themeProps = useThemeProps({\n props,\n name\n });\n return _extends({}, themeProps, {\n loading: themeProps.loading ?? false,\n disablePast: themeProps.disablePast ?? false,\n disableFuture: themeProps.disableFuture ?? false,\n openTo: themeProps.openTo ?? 'day',\n views: themeProps.views ?? ['year', 'day'],\n reduceAnimations: themeProps.reduceAnimations ?? defaultReduceAnimations,\n renderLoading: themeProps.renderLoading ?? (() => /*#__PURE__*/_jsx(\"span\", {\n children: \"...\"\n })),\n minDate: applyDefaultDate(utils, themeProps.minDate, defaultDates.minDate),\n maxDate: applyDefaultDate(utils, themeProps.maxDate, defaultDates.maxDate)\n });\n}\nconst DateCalendarRoot = styled(PickerViewRoot, {\n name: 'MuiDateCalendar',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n display: 'flex',\n flexDirection: 'column',\n height: VIEW_HEIGHT\n});\nconst DateCalendarViewTransitionContainer = styled(PickersFadeTransitionGroup, {\n name: 'MuiDateCalendar',\n slot: 'ViewTransitionContainer',\n overridesResolver: (props, styles) => styles.viewTransitionContainer\n})({});\n/**\n * Demos:\n *\n * - [DatePicker](https://mui.com/x/react-date-pickers/date-picker/)\n * - [DateCalendar](https://mui.com/x/react-date-pickers/date-calendar/)\n * - [Validation](https://mui.com/x/react-date-pickers/validation/)\n *\n * API:\n *\n * - [DateCalendar API](https://mui.com/x/api/date-pickers/date-calendar/)\n */\nexport const DateCalendar = /*#__PURE__*/React.forwardRef(function DateCalendar(inProps, ref) {\n const utils = useUtils();\n const id = useId();\n const props = useDateCalendarDefaultizedProps(inProps, 'MuiDateCalendar');\n const {\n autoFocus,\n onViewChange,\n value: valueProp,\n defaultValue,\n referenceDate: referenceDateProp,\n disableFuture,\n disablePast,\n onChange,\n onYearChange,\n onMonthChange,\n reduceAnimations,\n shouldDisableDate,\n shouldDisableMonth,\n shouldDisableYear,\n view: inView,\n views,\n openTo,\n className,\n disabled,\n readOnly,\n minDate,\n maxDate,\n disableHighlightToday,\n focusedView: inFocusedView,\n onFocusedViewChange,\n showDaysOutsideCurrentMonth,\n fixedWeekNumber,\n dayOfWeekFormatter,\n slots,\n slotProps,\n loading,\n renderLoading,\n displayWeekNumber,\n yearsOrder,\n yearsPerRow,\n monthsPerRow,\n timezone: timezoneProp\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const {\n value,\n handleValueChange,\n timezone\n } = useControlledValueWithTimezone({\n name: 'DateCalendar',\n timezone: timezoneProp,\n value: valueProp,\n defaultValue,\n onChange,\n valueManager: singleItemValueManager\n });\n const {\n view,\n setView,\n focusedView,\n setFocusedView,\n goToNextView,\n setValueAndGoToNextView\n } = useViews({\n view: inView,\n views,\n openTo,\n onChange: handleValueChange,\n onViewChange,\n autoFocus,\n focusedView: inFocusedView,\n onFocusedViewChange\n });\n const {\n referenceDate,\n calendarState,\n changeFocusedDay,\n changeMonth,\n handleChangeMonth,\n isDateDisabled,\n onMonthSwitchingAnimationEnd\n } = useCalendarState({\n value,\n referenceDate: referenceDateProp,\n reduceAnimations,\n onMonthChange,\n minDate,\n maxDate,\n shouldDisableDate,\n disablePast,\n disableFuture,\n timezone\n });\n\n // When disabled, limit the view to the selected date\n const minDateWithDisabled = disabled && value || minDate;\n const maxDateWithDisabled = disabled && value || maxDate;\n const gridLabelId = `${id}-grid-label`;\n const hasFocus = focusedView !== null;\n const CalendarHeader = slots?.calendarHeader ?? PickersCalendarHeader;\n const calendarHeaderProps = useSlotProps({\n elementType: CalendarHeader,\n externalSlotProps: slotProps?.calendarHeader,\n additionalProps: {\n views,\n view,\n currentMonth: calendarState.currentMonth,\n onViewChange: setView,\n onMonthChange: (newMonth, direction) => handleChangeMonth({\n newMonth,\n direction\n }),\n minDate: minDateWithDisabled,\n maxDate: maxDateWithDisabled,\n disabled,\n disablePast,\n disableFuture,\n reduceAnimations,\n timezone,\n labelId: gridLabelId\n },\n ownerState: props\n });\n const handleDateMonthChange = useEventCallback(newDate => {\n const startOfMonth = utils.startOfMonth(newDate);\n const endOfMonth = utils.endOfMonth(newDate);\n const closestEnabledDate = isDateDisabled(newDate) ? findClosestEnabledDate({\n utils,\n date: newDate,\n minDate: utils.isBefore(minDate, startOfMonth) ? startOfMonth : minDate,\n maxDate: utils.isAfter(maxDate, endOfMonth) ? endOfMonth : maxDate,\n disablePast,\n disableFuture,\n isDateDisabled,\n timezone\n }) : newDate;\n if (closestEnabledDate) {\n setValueAndGoToNextView(closestEnabledDate, 'finish');\n onMonthChange?.(startOfMonth);\n } else {\n goToNextView();\n changeMonth(startOfMonth);\n }\n changeFocusedDay(closestEnabledDate, true);\n });\n const handleDateYearChange = useEventCallback(newDate => {\n const startOfYear = utils.startOfYear(newDate);\n const endOfYear = utils.endOfYear(newDate);\n const closestEnabledDate = isDateDisabled(newDate) ? findClosestEnabledDate({\n utils,\n date: newDate,\n minDate: utils.isBefore(minDate, startOfYear) ? startOfYear : minDate,\n maxDate: utils.isAfter(maxDate, endOfYear) ? endOfYear : maxDate,\n disablePast,\n disableFuture,\n isDateDisabled,\n timezone\n }) : newDate;\n if (closestEnabledDate) {\n setValueAndGoToNextView(closestEnabledDate, 'finish');\n onYearChange?.(closestEnabledDate);\n } else {\n goToNextView();\n changeMonth(startOfYear);\n }\n changeFocusedDay(closestEnabledDate, true);\n });\n const handleSelectedDayChange = useEventCallback(day => {\n if (day) {\n // If there is a date already selected, then we want to keep its time\n return handleValueChange(mergeDateAndTime(utils, day, value ?? referenceDate), 'finish', view);\n }\n return handleValueChange(day, 'finish', view);\n });\n React.useEffect(() => {\n if (value != null && utils.isValid(value)) {\n changeMonth(value);\n }\n }, [value]); // eslint-disable-line\n\n const ownerState = props;\n const classes = useUtilityClasses(ownerState);\n const baseDateValidationProps = {\n disablePast,\n disableFuture,\n maxDate,\n minDate\n };\n const commonViewProps = {\n disableHighlightToday,\n readOnly,\n disabled,\n timezone,\n gridLabelId,\n slots,\n slotProps\n };\n const prevOpenViewRef = React.useRef(view);\n React.useEffect(() => {\n // If the view change and the focus was on the previous view\n // Then we update the focus.\n if (prevOpenViewRef.current === view) {\n return;\n }\n if (focusedView === prevOpenViewRef.current) {\n setFocusedView(view, true);\n }\n prevOpenViewRef.current = view;\n }, [focusedView, setFocusedView, view]);\n const selectedDays = React.useMemo(() => [value], [value]);\n return /*#__PURE__*/_jsxs(DateCalendarRoot, _extends({\n ref: ref,\n className: clsx(classes.root, className),\n ownerState: ownerState\n }, other, {\n children: [/*#__PURE__*/_jsx(CalendarHeader, _extends({}, calendarHeaderProps, {\n slots: slots,\n slotProps: slotProps\n })), /*#__PURE__*/_jsx(DateCalendarViewTransitionContainer, {\n reduceAnimations: reduceAnimations,\n className: classes.viewTransitionContainer,\n transKey: view,\n ownerState: ownerState,\n children: /*#__PURE__*/_jsxs(\"div\", {\n children: [view === 'year' && /*#__PURE__*/_jsx(YearCalendar, _extends({}, baseDateValidationProps, commonViewProps, {\n value: value,\n onChange: handleDateYearChange,\n shouldDisableYear: shouldDisableYear,\n hasFocus: hasFocus,\n onFocusedViewChange: isViewFocused => setFocusedView('year', isViewFocused),\n yearsOrder: yearsOrder,\n yearsPerRow: yearsPerRow,\n referenceDate: referenceDate\n })), view === 'month' && /*#__PURE__*/_jsx(MonthCalendar, _extends({}, baseDateValidationProps, commonViewProps, {\n hasFocus: hasFocus,\n className: className,\n value: value,\n onChange: handleDateMonthChange,\n shouldDisableMonth: shouldDisableMonth,\n onFocusedViewChange: isViewFocused => setFocusedView('month', isViewFocused),\n monthsPerRow: monthsPerRow,\n referenceDate: referenceDate\n })), view === 'day' && /*#__PURE__*/_jsx(DayCalendar, _extends({}, calendarState, baseDateValidationProps, commonViewProps, {\n onMonthSwitchingAnimationEnd: onMonthSwitchingAnimationEnd,\n onFocusedDayChange: changeFocusedDay,\n reduceAnimations: reduceAnimations,\n selectedDays: selectedDays,\n onSelectedDaysChange: handleSelectedDayChange,\n shouldDisableDate: shouldDisableDate,\n shouldDisableMonth: shouldDisableMonth,\n shouldDisableYear: shouldDisableYear,\n hasFocus: hasFocus,\n onFocusedViewChange: isViewFocused => setFocusedView('day', isViewFocused),\n showDaysOutsideCurrentMonth: showDaysOutsideCurrentMonth,\n fixedWeekNumber: fixedWeekNumber,\n dayOfWeekFormatter: dayOfWeekFormatter,\n displayWeekNumber: displayWeekNumber,\n loading: loading,\n renderLoading: renderLoading\n }))]\n })\n })]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? DateCalendar.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * If `true`, the main element is focused during the first mount.\n * This main element is:\n * - the element chosen by the visible view if any (i.e: the selected day on the `day` view).\n * - the `input` element if there is a field rendered.\n */\n autoFocus: PropTypes.bool,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n className: PropTypes.string,\n /**\n * Formats the day of week displayed in the calendar header.\n * @param {TDate} date The date of the day of week provided by the adapter.\n * @returns {string} The name to display.\n * @default (date: TDate) => adapter.format(date, 'weekdayShort').charAt(0).toUpperCase()\n */\n dayOfWeekFormatter: PropTypes.func,\n /**\n * The default selected value.\n * Used when the component is not controlled.\n */\n defaultValue: PropTypes.object,\n /**\n * If `true`, the picker and text field are disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, disable values after the current date for date components, time for time components and both for date time components.\n * @default false\n */\n disableFuture: PropTypes.bool,\n /**\n * If `true`, today's date is rendering without highlighting with circle.\n * @default false\n */\n disableHighlightToday: PropTypes.bool,\n /**\n * If `true`, disable values before the current date for date components, time for time components and both for date time components.\n * @default false\n */\n disablePast: PropTypes.bool,\n /**\n * If `true`, the week number will be display in the calendar.\n */\n displayWeekNumber: PropTypes.bool,\n /**\n * The day view will show as many weeks as needed after the end of the current month to match this value.\n * Put it to 6 to have a fixed number of weeks in Gregorian calendars\n */\n fixedWeekNumber: PropTypes.number,\n /**\n * Controlled focused view.\n */\n focusedView: PropTypes.oneOf(['day', 'month', 'year']),\n /**\n * If `true`, calls `renderLoading` instead of rendering the day calendar.\n * Can be used to preload information and show it in calendar.\n * @default false\n */\n loading: PropTypes.bool,\n /**\n * Maximal selectable date.\n * @default 2099-12-31\n */\n maxDate: PropTypes.object,\n /**\n * Minimal selectable date.\n * @default 1900-01-01\n */\n minDate: PropTypes.object,\n /**\n * Months rendered per row.\n * @default 3\n */\n monthsPerRow: PropTypes.oneOf([3, 4]),\n /**\n * Callback fired when the value changes.\n * @template TValue The value type. It will be the same type as `value` or `null`. It can be in `[start, end]` format in case of range value.\n * @template TView The view type. Will be one of date or time views.\n * @param {TValue} value The new value.\n * @param {PickerSelectionState | undefined} selectionState Indicates if the date selection is complete.\n * @param {TView | undefined} selectedView Indicates the view in which the selection has been made.\n */\n onChange: PropTypes.func,\n /**\n * Callback fired on focused view change.\n * @template TView\n * @param {TView} view The new view to focus or not.\n * @param {boolean} hasFocus `true` if the view should be focused.\n */\n onFocusedViewChange: PropTypes.func,\n /**\n * Callback fired on month change.\n * @template TDate\n * @param {TDate} month The new month.\n */\n onMonthChange: PropTypes.func,\n /**\n * Callback fired on view change.\n * @template TView\n * @param {TView} view The new view.\n */\n onViewChange: PropTypes.func,\n /**\n * Callback fired on year change.\n * @template TDate\n * @param {TDate} year The new year.\n */\n onYearChange: PropTypes.func,\n /**\n * The default visible view.\n * Used when the component view is not controlled.\n * Must be a valid option from `views` list.\n */\n openTo: PropTypes.oneOf(['day', 'month', 'year']),\n /**\n * Make picker read only.\n * @default false\n */\n readOnly: PropTypes.bool,\n /**\n * If `true`, disable heavy animations.\n * @default `@media(prefers-reduced-motion: reduce)` || `navigator.userAgent` matches Android <10 or iOS <13\n */\n reduceAnimations: PropTypes.bool,\n /**\n * The date used to generate the new value when both `value` and `defaultValue` are empty.\n * @default The closest valid date using the validation props, except callbacks such as `shouldDisableDate`.\n */\n referenceDate: PropTypes.object,\n /**\n * Component displaying when passed `loading` true.\n * @returns {React.ReactNode} The node to render when loading.\n * @default () => ...\n */\n renderLoading: PropTypes.func,\n /**\n * Disable specific date.\n *\n * Warning: This function can be called multiple times (for example when rendering date calendar, checking if focus can be moved to a certain date, etc.). Expensive computations can impact performance.\n *\n * @template TDate\n * @param {TDate} day The date to test.\n * @returns {boolean} If `true` the date will be disabled.\n */\n shouldDisableDate: PropTypes.func,\n /**\n * Disable specific month.\n * @template TDate\n * @param {TDate} month The month to test.\n * @returns {boolean} If `true`, the month will be disabled.\n */\n shouldDisableMonth: PropTypes.func,\n /**\n * Disable specific year.\n * @template TDate\n * @param {TDate} year The year to test.\n * @returns {boolean} If `true`, the year will be disabled.\n */\n shouldDisableYear: PropTypes.func,\n /**\n * If `true`, days outside the current month are rendered:\n *\n * - if `fixedWeekNumber` is defined, renders days to have the weeks requested.\n *\n * - if `fixedWeekNumber` is not defined, renders day to fill the first and last week of the current month.\n *\n * - ignored if `calendars` equals more than `1` on range pickers.\n * @default false\n */\n showDaysOutsideCurrentMonth: PropTypes.bool,\n /**\n * The props used for each component slot.\n * @default {}\n */\n slotProps: PropTypes.object,\n /**\n * Overridable component slots.\n * @default {}\n */\n slots: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * Choose which timezone to use for the value.\n * Example: \"default\", \"system\", \"UTC\", \"America/New_York\".\n * If you pass values from other timezones to some props, they will be converted to this timezone before being used.\n * @see See the {@link https://mui.com/x/react-date-pickers/timezone/ timezones documentation} for more details.\n * @default The timezone of the `value` or `defaultValue` prop is defined, 'default' otherwise.\n */\n timezone: PropTypes.string,\n /**\n * The selected value.\n * Used when the component is controlled.\n */\n value: PropTypes.object,\n /**\n * The visible view.\n * Used when the component view is controlled.\n * Must be a valid option from `views` list.\n */\n view: PropTypes.oneOf(['day', 'month', 'year']),\n /**\n * Available views.\n */\n views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'month', 'year']).isRequired),\n /**\n * Years are displayed in ascending (chronological) order by default.\n * If `desc`, years are displayed in descending order.\n * @default 'asc'\n */\n yearsOrder: PropTypes.oneOf(['asc', 'desc']),\n /**\n * Years rendered per row.\n * @default 3\n */\n yearsPerRow: PropTypes.oneOf([3, 4])\n} : void 0;","import * as React from 'react';\nimport { DateCalendar } from \"../DateCalendar/index.js\";\nimport { isDatePickerView } from \"../internals/utils/date-utils.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const renderDateViewCalendar = ({\n view,\n onViewChange,\n views,\n focusedView,\n onFocusedViewChange,\n value,\n defaultValue,\n referenceDate,\n onChange,\n className,\n classes,\n disableFuture,\n disablePast,\n minDate,\n maxDate,\n shouldDisableDate,\n shouldDisableMonth,\n shouldDisableYear,\n reduceAnimations,\n onMonthChange,\n monthsPerRow,\n onYearChange,\n yearsOrder,\n yearsPerRow,\n slots,\n slotProps,\n loading,\n renderLoading,\n disableHighlightToday,\n readOnly,\n disabled,\n showDaysOutsideCurrentMonth,\n dayOfWeekFormatter,\n sx,\n autoFocus,\n fixedWeekNumber,\n displayWeekNumber,\n timezone\n}) => /*#__PURE__*/_jsx(DateCalendar, {\n view: view,\n onViewChange: onViewChange,\n views: views.filter(isDatePickerView),\n focusedView: focusedView && isDatePickerView(focusedView) ? focusedView : null,\n onFocusedViewChange: onFocusedViewChange,\n value: value,\n defaultValue: defaultValue,\n referenceDate: referenceDate,\n onChange: onChange,\n className: className,\n classes: classes,\n disableFuture: disableFuture,\n disablePast: disablePast,\n minDate: minDate,\n maxDate: maxDate,\n shouldDisableDate: shouldDisableDate,\n shouldDisableMonth: shouldDisableMonth,\n shouldDisableYear: shouldDisableYear,\n reduceAnimations: reduceAnimations,\n onMonthChange: onMonthChange,\n monthsPerRow: monthsPerRow,\n onYearChange: onYearChange,\n yearsOrder: yearsOrder,\n yearsPerRow: yearsPerRow,\n slots: slots,\n slotProps: slotProps,\n loading: loading,\n renderLoading: renderLoading,\n disableHighlightToday: disableHighlightToday,\n readOnly: readOnly,\n disabled: disabled,\n showDaysOutsideCurrentMonth: showDaysOutsideCurrentMonth,\n dayOfWeekFormatter: dayOfWeekFormatter,\n sx: sx,\n autoFocus: autoFocus,\n fixedWeekNumber: fixedWeekNumber,\n displayWeekNumber: displayWeekNumber,\n timezone: timezone\n});","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport resolveComponentProps from '@mui/utils/resolveComponentProps';\nimport { refType } from '@mui/utils';\nimport { singleItemValueManager } from \"../internals/utils/valueManagers.js\";\nimport { useDatePickerDefaultizedProps } from \"../DatePicker/shared.js\";\nimport { usePickersTranslations } from \"../hooks/usePickersTranslations.js\";\nimport { useUtils } from \"../internals/hooks/useUtils.js\";\nimport { validateDate, extractValidationProps } from \"../validation/index.js\";\nimport { useDesktopPicker } from \"../internals/hooks/useDesktopPicker/index.js\";\nimport { CalendarIcon } from \"../icons/index.js\";\nimport { DateField } from \"../DateField/index.js\";\nimport { renderDateViewCalendar } from \"../dateViewRenderers/index.js\";\nimport { resolveDateFormat } from \"../internals/utils/date-utils.js\";\nimport { buildGetOpenDialogAriaText } from \"../locales/utils/getPickersLocalization.js\";\n/**\n * Demos:\n *\n * - [DatePicker](https://mui.com/x/react-date-pickers/date-picker/)\n * - [Validation](https://mui.com/x/react-date-pickers/validation/)\n *\n * API:\n *\n * - [DesktopDatePicker API](https://mui.com/x/api/date-pickers/desktop-date-picker/)\n */\nconst DesktopDatePicker = /*#__PURE__*/React.forwardRef(function DesktopDatePicker(inProps, ref) {\n const translations = usePickersTranslations();\n const utils = useUtils();\n\n // Props with the default values common to all date pickers\n const defaultizedProps = useDatePickerDefaultizedProps(inProps, 'MuiDesktopDatePicker');\n const viewRenderers = _extends({\n day: renderDateViewCalendar,\n month: renderDateViewCalendar,\n year: renderDateViewCalendar\n }, defaultizedProps.viewRenderers);\n\n // Props with the default values specific to the desktop variant\n const props = _extends({}, defaultizedProps, {\n viewRenderers,\n format: resolveDateFormat(utils, defaultizedProps, false),\n yearsPerRow: defaultizedProps.yearsPerRow ?? 4,\n slots: _extends({\n openPickerIcon: CalendarIcon,\n field: DateField\n }, defaultizedProps.slots),\n slotProps: _extends({}, defaultizedProps.slotProps, {\n field: ownerState => _extends({}, resolveComponentProps(defaultizedProps.slotProps?.field, ownerState), extractValidationProps(defaultizedProps), {\n ref\n }),\n toolbar: _extends({\n hidden: true\n }, defaultizedProps.slotProps?.toolbar)\n })\n });\n const {\n renderPicker\n } = useDesktopPicker({\n props,\n valueManager: singleItemValueManager,\n valueType: 'date',\n getOpenDialogAriaText: buildGetOpenDialogAriaText({\n utils,\n formatKey: 'fullDate',\n contextTranslation: translations.openDatePickerDialogue,\n propsTranslation: props.localeText?.openDatePickerDialogue\n }),\n validator: validateDate\n });\n return renderPicker();\n});\nDesktopDatePicker.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * If `true`, the main element is focused during the first mount.\n * This main element is:\n * - the element chosen by the visible view if any (i.e: the selected day on the `day` view).\n * - the `input` element if there is a field rendered.\n */\n autoFocus: PropTypes.bool,\n className: PropTypes.string,\n /**\n * If `true`, the popover or modal will close after submitting the full date.\n * @default `true` for desktop, `false` for mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).\n */\n closeOnSelect: PropTypes.bool,\n /**\n * Formats the day of week displayed in the calendar header.\n * @param {TDate} date The date of the day of week provided by the adapter.\n * @returns {string} The name to display.\n * @default (date: TDate) => adapter.format(date, 'weekdayShort').charAt(0).toUpperCase()\n */\n dayOfWeekFormatter: PropTypes.func,\n /**\n * The default value.\n * Used when the component is not controlled.\n */\n defaultValue: PropTypes.object,\n /**\n * If `true`, the picker and text field are disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, disable values after the current date for date components, time for time components and both for date time components.\n * @default false\n */\n disableFuture: PropTypes.bool,\n /**\n * If `true`, today's date is rendering without highlighting with circle.\n * @default false\n */\n disableHighlightToday: PropTypes.bool,\n /**\n * If `true`, the open picker button will not be rendered (renders only the field).\n * @default false\n */\n disableOpenPicker: PropTypes.bool,\n /**\n * If `true`, disable values before the current date for date components, time for time components and both for date time components.\n * @default false\n */\n disablePast: PropTypes.bool,\n /**\n * If `true`, the week number will be display in the calendar.\n */\n displayWeekNumber: PropTypes.bool,\n /**\n * @default false\n */\n enableAccessibleFieldDOMStructure: PropTypes.any,\n /**\n * The day view will show as many weeks as needed after the end of the current month to match this value.\n * Put it to 6 to have a fixed number of weeks in Gregorian calendars\n */\n fixedWeekNumber: PropTypes.number,\n /**\n * Format of the date when rendered in the input(s).\n * Defaults to localized format based on the used `views`.\n */\n format: PropTypes.string,\n /**\n * Density of the format when rendered in the input.\n * Setting `formatDensity` to `\"spacious\"` will add a space before and after each `/`, `-` and `.` character.\n * @default \"dense\"\n */\n formatDensity: PropTypes.oneOf(['dense', 'spacious']),\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n /**\n * The label content.\n */\n label: PropTypes.node,\n /**\n * If `true`, calls `renderLoading` instead of rendering the day calendar.\n * Can be used to preload information and show it in calendar.\n * @default false\n */\n loading: PropTypes.bool,\n /**\n * Locale for components texts.\n * Allows overriding texts coming from `LocalizationProvider` and `theme`.\n */\n localeText: PropTypes.object,\n /**\n * Maximal selectable date.\n * @default 2099-12-31\n */\n maxDate: PropTypes.object,\n /**\n * Minimal selectable date.\n * @default 1900-01-01\n */\n minDate: PropTypes.object,\n /**\n * Months rendered per row.\n * @default 3\n */\n monthsPerRow: PropTypes.oneOf([3, 4]),\n /**\n * Name attribute used by the `input` element in the Field.\n */\n name: PropTypes.string,\n /**\n * Callback fired when the value is accepted.\n * @template TValue The value type. It will be the same type as `value` or `null`. It can be in `[start, end]` format in case of range value.\n * @template TError The validation error type. It will be either `string` or a `null`. It can be in `[start, end]` format in case of range value.\n * @param {TValue} value The value that was just accepted.\n * @param {FieldChangeHandlerContext} context The context containing the validation result of the current value.\n */\n onAccept: PropTypes.func,\n /**\n * Callback fired when the value changes.\n * @template TValue The value type. It will be the same type as `value` or `null`. It can be in `[start, end]` format in case of range value.\n * @template TError The validation error type. It will be either `string` or a `null`. It can be in `[start, end]` format in case of range value.\n * @param {TValue} value The new value.\n * @param {FieldChangeHandlerContext} context The context containing the validation result of the current value.\n */\n onChange: PropTypes.func,\n /**\n * Callback fired when the popup requests to be closed.\n * Use in controlled mode (see `open`).\n */\n onClose: PropTypes.func,\n /**\n * Callback fired when the error associated with the current value changes.\n * When a validation error is detected, the `error` parameter contains a non-null value.\n * This can be used to render an appropriate form error.\n * @template TError The validation error type. It will be either `string` or a `null`. It can be in `[start, end]` format in case of range value.\n * @template TValue The value type. It will be the same type as `value` or `null`. It can be in `[start, end]` format in case of range value.\n * @param {TError} error The reason why the current value is not valid.\n * @param {TValue} value The value associated with the error.\n */\n onError: PropTypes.func,\n /**\n * Callback fired on month change.\n * @template TDate\n * @param {TDate} month The new month.\n */\n onMonthChange: PropTypes.func,\n /**\n * Callback fired when the popup requests to be opened.\n * Use in controlled mode (see `open`).\n */\n onOpen: PropTypes.func,\n /**\n * Callback fired when the selected sections change.\n * @param {FieldSelectedSections} newValue The new selected sections.\n */\n onSelectedSectionsChange: PropTypes.func,\n /**\n * Callback fired on view change.\n * @template TView\n * @param {TView} view The new view.\n */\n onViewChange: PropTypes.func,\n /**\n * Callback fired on year change.\n * @template TDate\n * @param {TDate} year The new year.\n */\n onYearChange: PropTypes.func,\n /**\n * Control the popup or dialog open state.\n * @default false\n */\n open: PropTypes.bool,\n /**\n * The default visible view.\n * Used when the component view is not controlled.\n * Must be a valid option from `views` list.\n */\n openTo: PropTypes.oneOf(['day', 'month', 'year']),\n /**\n * Force rendering in particular orientation.\n */\n orientation: PropTypes.oneOf(['landscape', 'portrait']),\n readOnly: PropTypes.bool,\n /**\n * If `true`, disable heavy animations.\n * @default `@media(prefers-reduced-motion: reduce)` || `navigator.userAgent` matches Android <10 or iOS <13\n */\n reduceAnimations: PropTypes.bool,\n /**\n * The date used to generate the new value when both `value` and `defaultValue` are empty.\n * @default The closest valid date-time using the validation props, except callbacks like `shouldDisable<...>`.\n */\n referenceDate: PropTypes.object,\n /**\n * Component displaying when passed `loading` true.\n * @returns {React.ReactNode} The node to render when loading.\n * @default () => ...\n */\n renderLoading: PropTypes.func,\n /**\n * The currently selected sections.\n * This prop accepts four formats:\n * 1. If a number is provided, the section at this index will be selected.\n * 2. If a string of type `FieldSectionType` is provided, the first section with that name will be selected.\n * 3. If `\"all\"` is provided, all the sections will be selected.\n * 4. If `null` is provided, no section will be selected.\n * If not provided, the selected sections will be handled internally.\n */\n selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number]),\n /**\n * Disable specific date.\n *\n * Warning: This function can be called multiple times (for example when rendering date calendar, checking if focus can be moved to a certain date, etc.). Expensive computations can impact performance.\n *\n * @template TDate\n * @param {TDate} day The date to test.\n * @returns {boolean} If `true` the date will be disabled.\n */\n shouldDisableDate: PropTypes.func,\n /**\n * Disable specific month.\n * @template TDate\n * @param {TDate} month The month to test.\n * @returns {boolean} If `true`, the month will be disabled.\n */\n shouldDisableMonth: PropTypes.func,\n /**\n * Disable specific year.\n * @template TDate\n * @param {TDate} year The year to test.\n * @returns {boolean} If `true`, the year will be disabled.\n */\n shouldDisableYear: PropTypes.func,\n /**\n * If `true`, days outside the current month are rendered:\n *\n * - if `fixedWeekNumber` is defined, renders days to have the weeks requested.\n *\n * - if `fixedWeekNumber` is not defined, renders day to fill the first and last week of the current month.\n *\n * - ignored if `calendars` equals more than `1` on range pickers.\n * @default false\n */\n showDaysOutsideCurrentMonth: PropTypes.bool,\n /**\n * The props used for each component slot.\n * @default {}\n */\n slotProps: PropTypes.object,\n /**\n * Overridable component slots.\n * @default {}\n */\n slots: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * Choose which timezone to use for the value.\n * Example: \"default\", \"system\", \"UTC\", \"America/New_York\".\n * If you pass values from other timezones to some props, they will be converted to this timezone before being used.\n * @see See the {@link https://mui.com/x/react-date-pickers/timezone/ timezones documentation} for more details.\n * @default The timezone of the `value` or `defaultValue` prop is defined, 'default' otherwise.\n */\n timezone: PropTypes.string,\n /**\n * The selected value.\n * Used when the component is controlled.\n */\n value: PropTypes.object,\n /**\n * The visible view.\n * Used when the component view is controlled.\n * Must be a valid option from `views` list.\n */\n view: PropTypes.oneOf(['day', 'month', 'year']),\n /**\n * Define custom view renderers for each section.\n * If `null`, the section will only have field editing.\n * If `undefined`, internally defined view will be used.\n */\n viewRenderers: PropTypes.shape({\n day: PropTypes.func,\n month: PropTypes.func,\n year: PropTypes.func\n }),\n /**\n * Available views.\n */\n views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'month', 'year']).isRequired),\n /**\n * Years are displayed in ascending (chronological) order by default.\n * If `desc`, years are displayed in descending order.\n * @default 'asc'\n */\n yearsOrder: PropTypes.oneOf(['asc', 'desc']),\n /**\n * Years rendered per row.\n * @default 4\n */\n yearsPerRow: PropTypes.oneOf([3, 4])\n};\nexport { DesktopDatePicker };","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getDialogContentUtilityClass(slot) {\n return generateUtilityClass('MuiDialogContent', slot);\n}\nconst dialogContentClasses = generateUtilityClasses('MuiDialogContent', ['root', 'dividers']);\nexport default dialogContentClasses;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getDialogTitleUtilityClass(slot) {\n return generateUtilityClass('MuiDialogTitle', slot);\n}\nconst dialogTitleClasses = generateUtilityClasses('MuiDialogTitle', ['root']);\nexport default dialogTitleClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport { getDialogContentUtilityClass } from \"./dialogContentClasses.js\";\nimport dialogTitleClasses from \"../DialogTitle/dialogTitleClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n dividers\n } = ownerState;\n const slots = {\n root: ['root', dividers && 'dividers']\n };\n return composeClasses(slots, getDialogContentUtilityClass, classes);\n};\nconst DialogContentRoot = styled('div', {\n name: 'MuiDialogContent',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.dividers && styles.dividers];\n }\n})(memoTheme(({\n theme\n}) => ({\n flex: '1 1 auto',\n // Add iOS momentum scrolling for iOS < 13.0\n WebkitOverflowScrolling: 'touch',\n overflowY: 'auto',\n padding: '20px 24px',\n variants: [{\n props: ({\n ownerState\n }) => ownerState.dividers,\n style: {\n padding: '16px 24px',\n borderTop: `1px solid ${(theme.vars || theme).palette.divider}`,\n borderBottom: `1px solid ${(theme.vars || theme).palette.divider}`\n }\n }, {\n props: ({\n ownerState\n }) => !ownerState.dividers,\n style: {\n [`.${dialogTitleClasses.root} + &`]: {\n paddingTop: 0\n }\n }\n }]\n})));\nconst DialogContent = /*#__PURE__*/React.forwardRef(function DialogContent(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiDialogContent'\n });\n const {\n className,\n dividers = false,\n ...other\n } = props;\n const ownerState = {\n ...props,\n dividers\n };\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(DialogContentRoot, {\n className: clsx(classes.root, className),\n ownerState: ownerState,\n ref: ref,\n ...other\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? DialogContent.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * Display the top and bottom dividers.\n * @default false\n */\n dividers: PropTypes.bool,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default DialogContent;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getDialogUtilityClass(slot) {\n return generateUtilityClass('MuiDialog', slot);\n}\nconst dialogClasses = generateUtilityClasses('MuiDialog', ['root', 'scrollPaper', 'scrollBody', 'container', 'paper', 'paperScrollPaper', 'paperScrollBody', 'paperWidthFalse', 'paperWidthXs', 'paperWidthSm', 'paperWidthMd', 'paperWidthLg', 'paperWidthXl', 'paperFullWidth', 'paperFullScreen']);\nexport default dialogClasses;","import * as React from 'react';\nconst DialogContext = /*#__PURE__*/React.createContext({});\nif (process.env.NODE_ENV !== 'production') {\n DialogContext.displayName = 'DialogContext';\n}\nexport default DialogContext;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport useId from '@mui/utils/useId';\nimport capitalize from \"../utils/capitalize.js\";\nimport Modal from \"../Modal/index.js\";\nimport Fade from \"../Fade/index.js\";\nimport Paper from \"../Paper/index.js\";\nimport dialogClasses, { getDialogUtilityClass } from \"./dialogClasses.js\";\nimport DialogContext from \"./DialogContext.js\";\nimport Backdrop from \"../Backdrop/index.js\";\nimport { styled, useTheme } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst DialogBackdrop = styled(Backdrop, {\n name: 'MuiDialog',\n slot: 'Backdrop',\n overrides: (props, styles) => styles.backdrop\n})({\n // Improve scrollable dialog support.\n zIndex: -1\n});\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n scroll,\n maxWidth,\n fullWidth,\n fullScreen\n } = ownerState;\n const slots = {\n root: ['root'],\n container: ['container', `scroll${capitalize(scroll)}`],\n paper: ['paper', `paperScroll${capitalize(scroll)}`, `paperWidth${capitalize(String(maxWidth))}`, fullWidth && 'paperFullWidth', fullScreen && 'paperFullScreen']\n };\n return composeClasses(slots, getDialogUtilityClass, classes);\n};\nconst DialogRoot = styled(Modal, {\n name: 'MuiDialog',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n '@media print': {\n // Use !important to override the Modal inline-style.\n position: 'absolute !important'\n }\n});\nconst DialogContainer = styled('div', {\n name: 'MuiDialog',\n slot: 'Container',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.container, styles[`scroll${capitalize(ownerState.scroll)}`]];\n }\n})({\n height: '100%',\n '@media print': {\n height: 'auto'\n },\n // We disable the focus ring for mouse, touch and keyboard users.\n outline: 0,\n variants: [{\n props: {\n scroll: 'paper'\n },\n style: {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center'\n }\n }, {\n props: {\n scroll: 'body'\n },\n style: {\n overflowY: 'auto',\n overflowX: 'hidden',\n textAlign: 'center',\n '&::after': {\n content: '\"\"',\n display: 'inline-block',\n verticalAlign: 'middle',\n height: '100%',\n width: '0'\n }\n }\n }]\n});\nconst DialogPaper = styled(Paper, {\n name: 'MuiDialog',\n slot: 'Paper',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.paper, styles[`scrollPaper${capitalize(ownerState.scroll)}`], styles[`paperWidth${capitalize(String(ownerState.maxWidth))}`], ownerState.fullWidth && styles.paperFullWidth, ownerState.fullScreen && styles.paperFullScreen];\n }\n})(memoTheme(({\n theme\n}) => ({\n margin: 32,\n position: 'relative',\n overflowY: 'auto',\n '@media print': {\n overflowY: 'visible',\n boxShadow: 'none'\n },\n variants: [{\n props: {\n scroll: 'paper'\n },\n style: {\n display: 'flex',\n flexDirection: 'column',\n maxHeight: 'calc(100% - 64px)'\n }\n }, {\n props: {\n scroll: 'body'\n },\n style: {\n display: 'inline-block',\n verticalAlign: 'middle',\n textAlign: 'initial'\n }\n }, {\n props: ({\n ownerState\n }) => !ownerState.maxWidth,\n style: {\n maxWidth: 'calc(100% - 64px)'\n }\n }, {\n props: {\n maxWidth: 'xs'\n },\n style: {\n maxWidth: theme.breakpoints.unit === 'px' ? Math.max(theme.breakpoints.values.xs, 444) : `max(${theme.breakpoints.values.xs}${theme.breakpoints.unit}, 444px)`,\n [`&.${dialogClasses.paperScrollBody}`]: {\n [theme.breakpoints.down(Math.max(theme.breakpoints.values.xs, 444) + 32 * 2)]: {\n maxWidth: 'calc(100% - 64px)'\n }\n }\n }\n }, ...Object.keys(theme.breakpoints.values).filter(maxWidth => maxWidth !== 'xs').map(maxWidth => ({\n props: {\n maxWidth\n },\n style: {\n maxWidth: `${theme.breakpoints.values[maxWidth]}${theme.breakpoints.unit}`,\n [`&.${dialogClasses.paperScrollBody}`]: {\n [theme.breakpoints.down(theme.breakpoints.values[maxWidth] + 32 * 2)]: {\n maxWidth: 'calc(100% - 64px)'\n }\n }\n }\n })), {\n props: ({\n ownerState\n }) => ownerState.fullWidth,\n style: {\n width: 'calc(100% - 64px)'\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.fullScreen,\n style: {\n margin: 0,\n width: '100%',\n maxWidth: '100%',\n height: '100%',\n maxHeight: 'none',\n borderRadius: 0,\n [`&.${dialogClasses.paperScrollBody}`]: {\n margin: 0,\n maxWidth: '100%'\n }\n }\n }]\n})));\n\n/**\n * Dialogs are overlaid modal paper based components with a backdrop.\n */\nconst Dialog = /*#__PURE__*/React.forwardRef(function Dialog(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiDialog'\n });\n const theme = useTheme();\n const defaultTransitionDuration = {\n enter: theme.transitions.duration.enteringScreen,\n exit: theme.transitions.duration.leavingScreen\n };\n const {\n 'aria-describedby': ariaDescribedby,\n 'aria-labelledby': ariaLabelledbyProp,\n BackdropComponent,\n BackdropProps,\n children,\n className,\n disableEscapeKeyDown = false,\n fullScreen = false,\n fullWidth = false,\n maxWidth = 'sm',\n onBackdropClick,\n onClick,\n onClose,\n open,\n PaperComponent = Paper,\n PaperProps = {},\n scroll = 'paper',\n TransitionComponent = Fade,\n transitionDuration = defaultTransitionDuration,\n TransitionProps,\n ...other\n } = props;\n const ownerState = {\n ...props,\n disableEscapeKeyDown,\n fullScreen,\n fullWidth,\n maxWidth,\n scroll\n };\n const classes = useUtilityClasses(ownerState);\n const backdropClick = React.useRef();\n const handleMouseDown = event => {\n // We don't want to close the dialog when clicking the dialog content.\n // Make sure the event starts and ends on the same DOM element.\n backdropClick.current = event.target === event.currentTarget;\n };\n const handleBackdropClick = event => {\n if (onClick) {\n onClick(event);\n }\n\n // Ignore the events not coming from the \"backdrop\".\n if (!backdropClick.current) {\n return;\n }\n backdropClick.current = null;\n if (onBackdropClick) {\n onBackdropClick(event);\n }\n if (onClose) {\n onClose(event, 'backdropClick');\n }\n };\n const ariaLabelledby = useId(ariaLabelledbyProp);\n const dialogContextValue = React.useMemo(() => {\n return {\n titleId: ariaLabelledby\n };\n }, [ariaLabelledby]);\n return /*#__PURE__*/_jsx(DialogRoot, {\n className: clsx(classes.root, className),\n closeAfterTransition: true,\n components: {\n Backdrop: DialogBackdrop\n },\n componentsProps: {\n backdrop: {\n transitionDuration,\n as: BackdropComponent,\n ...BackdropProps\n }\n },\n disableEscapeKeyDown: disableEscapeKeyDown,\n onClose: onClose,\n open: open,\n ref: ref,\n onClick: handleBackdropClick,\n ownerState: ownerState,\n ...other,\n children: /*#__PURE__*/_jsx(TransitionComponent, {\n appear: true,\n in: open,\n timeout: transitionDuration,\n role: \"presentation\",\n ...TransitionProps,\n children: /*#__PURE__*/_jsx(DialogContainer, {\n className: clsx(classes.container),\n onMouseDown: handleMouseDown,\n ownerState: ownerState,\n children: /*#__PURE__*/_jsx(DialogPaper, {\n as: PaperComponent,\n elevation: 24,\n role: \"dialog\",\n \"aria-describedby\": ariaDescribedby,\n \"aria-labelledby\": ariaLabelledby,\n ...PaperProps,\n className: clsx(classes.paper, PaperProps.className),\n ownerState: ownerState,\n children: /*#__PURE__*/_jsx(DialogContext.Provider, {\n value: dialogContextValue,\n children: children\n })\n })\n })\n })\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Dialog.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The id(s) of the element(s) that describe the dialog.\n */\n 'aria-describedby': PropTypes.string,\n /**\n * The id(s) of the element(s) that label the dialog.\n */\n 'aria-labelledby': PropTypes.string,\n /**\n * A backdrop component. This prop enables custom backdrop rendering.\n * @deprecated Use `slots.backdrop` instead. While this prop currently works, it will be removed in the next major version.\n * Use the `slots.backdrop` prop to make your application ready for the next version of Material UI.\n * @default styled(Backdrop, {\n * name: 'MuiModal',\n * slot: 'Backdrop',\n * overridesResolver: (props, styles) => {\n * return styles.backdrop;\n * },\n * })({\n * zIndex: -1,\n * })\n */\n BackdropComponent: PropTypes.elementType,\n /**\n * @ignore\n */\n BackdropProps: PropTypes.object,\n /**\n * Dialog children, usually the included sub-components.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * If `true`, hitting escape will not fire the `onClose` callback.\n * @default false\n */\n disableEscapeKeyDown: PropTypes.bool,\n /**\n * If `true`, the dialog is full-screen.\n * @default false\n */\n fullScreen: PropTypes.bool,\n /**\n * If `true`, the dialog stretches to `maxWidth`.\n *\n * Notice that the dialog width grow is limited by the default margin.\n * @default false\n */\n fullWidth: PropTypes.bool,\n /**\n * Determine the max-width of the dialog.\n * The dialog width grows with the size of the screen.\n * Set to `false` to disable `maxWidth`.\n * @default 'sm'\n */\n maxWidth: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['xs', 'sm', 'md', 'lg', 'xl', false]), PropTypes.string]),\n /**\n * Callback fired when the backdrop is clicked.\n * @deprecated Use the `onClose` prop with the `reason` argument to handle the `backdropClick` events.\n */\n onBackdropClick: PropTypes.func,\n /**\n * @ignore\n */\n onClick: PropTypes.func,\n /**\n * Callback fired when the component requests to be closed.\n *\n * @param {object} event The event source of the callback.\n * @param {string} reason Can be: `\"escapeKeyDown\"`, `\"backdropClick\"`.\n */\n onClose: PropTypes.func,\n /**\n * If `true`, the component is shown.\n */\n open: PropTypes.bool.isRequired,\n /**\n * The component used to render the body of the dialog.\n * @default Paper\n */\n PaperComponent: PropTypes.elementType,\n /**\n * Props applied to the [`Paper`](https://mui.com/material-ui/api/paper/) element.\n * @default {}\n */\n PaperProps: PropTypes.object,\n /**\n * Determine the container for scrolling the dialog.\n * @default 'paper'\n */\n scroll: PropTypes.oneOf(['body', 'paper']),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The component used for the transition.\n * [Follow this guide](https://mui.com/material-ui/transitions/#transitioncomponent-prop) to learn more about the requirements for this component.\n * @default Fade\n */\n TransitionComponent: PropTypes.elementType,\n /**\n * The duration for the transition, in milliseconds.\n * You may specify a single timeout for all transitions, or individually with an object.\n * @default {\n * enter: theme.transitions.duration.enteringScreen,\n * exit: theme.transitions.duration.leavingScreen,\n * }\n */\n transitionDuration: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number\n })]),\n /**\n * Props applied to the transition element.\n * By default, the element is based on this [`Transition`](https://reactcommunity.org/react-transition-group/transition/) component.\n */\n TransitionProps: PropTypes.object\n} : void 0;\nexport default Dialog;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport DialogContent from '@mui/material/DialogContent';\nimport Fade from '@mui/material/Fade';\nimport MuiDialog, { dialogClasses } from '@mui/material/Dialog';\nimport { styled } from '@mui/material/styles';\nimport { DIALOG_WIDTH } from \"../constants/dimensions.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst PickersModalDialogRoot = styled(MuiDialog)({\n [`& .${dialogClasses.container}`]: {\n outline: 0\n },\n [`& .${dialogClasses.paper}`]: {\n outline: 0,\n minWidth: DIALOG_WIDTH\n }\n});\nconst PickersModalDialogContent = styled(DialogContent)({\n '&:first-of-type': {\n padding: 0\n }\n});\nexport function PickersModalDialog(props) {\n const {\n children,\n onDismiss,\n open,\n slots,\n slotProps\n } = props;\n const Dialog = slots?.dialog ?? PickersModalDialogRoot;\n const Transition = slots?.mobileTransition ?? Fade;\n return /*#__PURE__*/_jsx(Dialog, _extends({\n open: open,\n onClose: onDismiss\n }, slotProps?.dialog, {\n TransitionComponent: Transition,\n TransitionProps: slotProps?.mobileTransition,\n PaperComponent: slots?.mobilePaper,\n PaperProps: slotProps?.mobilePaper,\n children: /*#__PURE__*/_jsx(PickersModalDialogContent, {\n children: children\n })\n }));\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"props\", \"getOpenDialogAriaText\"];\nimport * as React from 'react';\nimport useSlotProps from '@mui/utils/useSlotProps';\nimport useForkRef from '@mui/utils/useForkRef';\nimport useId from '@mui/utils/useId';\nimport { PickersModalDialog } from \"../../components/PickersModalDialog.js\";\nimport { usePicker } from \"../usePicker/index.js\";\nimport { onSpaceOrEnter } from \"../../utils/utils.js\";\nimport { LocalizationProvider } from \"../../../LocalizationProvider/index.js\";\nimport { PickersLayout } from \"../../../PickersLayout/index.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\n/**\n * Hook managing all the single-date mobile pickers:\n * - MobileDatePicker\n * - MobileDateTimePicker\n * - MobileTimePicker\n */\nexport const useMobilePicker = _ref => {\n let {\n props,\n getOpenDialogAriaText\n } = _ref,\n pickerParams = _objectWithoutPropertiesLoose(_ref, _excluded);\n const {\n slots,\n slotProps: innerSlotProps,\n className,\n sx,\n format,\n formatDensity,\n enableAccessibleFieldDOMStructure,\n selectedSections,\n onSelectedSectionsChange,\n timezone,\n name,\n label,\n inputRef,\n readOnly,\n disabled,\n localeText\n } = props;\n const fieldRef = React.useRef(null);\n const labelId = useId();\n const isToolbarHidden = innerSlotProps?.toolbar?.hidden ?? false;\n const {\n open,\n actions,\n layoutProps,\n renderCurrentView,\n fieldProps: pickerFieldProps\n } = usePicker(_extends({}, pickerParams, {\n props,\n fieldRef,\n autoFocusView: true,\n additionalViewProps: {},\n wrapperVariant: 'mobile'\n }));\n const Field = slots.field;\n const fieldProps = useSlotProps({\n elementType: Field,\n externalSlotProps: innerSlotProps?.field,\n additionalProps: _extends({}, pickerFieldProps, isToolbarHidden && {\n id: labelId\n }, !(disabled || readOnly) && {\n onClick: actions.onOpen,\n onKeyDown: onSpaceOrEnter(actions.onOpen)\n }, {\n readOnly: readOnly ?? true,\n disabled,\n className,\n sx,\n format,\n formatDensity,\n enableAccessibleFieldDOMStructure,\n selectedSections,\n onSelectedSectionsChange,\n timezone,\n label,\n name\n }, inputRef ? {\n inputRef\n } : {}),\n ownerState: props\n });\n\n // TODO: Move to `useSlotProps` when https://github.com/mui/material-ui/pull/35088 will be merged\n fieldProps.inputProps = _extends({}, fieldProps.inputProps, {\n 'aria-label': getOpenDialogAriaText(pickerFieldProps.value)\n });\n const slotsForField = _extends({\n textField: slots.textField\n }, fieldProps.slots);\n const Layout = slots.layout ?? PickersLayout;\n let labelledById = labelId;\n if (isToolbarHidden) {\n if (label) {\n labelledById = `${labelId}-label`;\n } else {\n labelledById = undefined;\n }\n }\n const slotProps = _extends({}, innerSlotProps, {\n toolbar: _extends({}, innerSlotProps?.toolbar, {\n titleId: labelId\n }),\n mobilePaper: _extends({\n 'aria-labelledby': labelledById\n }, innerSlotProps?.mobilePaper)\n });\n const handleFieldRef = useForkRef(fieldRef, fieldProps.unstableFieldRef);\n const renderPicker = () => /*#__PURE__*/_jsxs(LocalizationProvider, {\n localeText: localeText,\n children: [/*#__PURE__*/_jsx(Field, _extends({}, fieldProps, {\n slots: slotsForField,\n slotProps: slotProps,\n unstableFieldRef: handleFieldRef\n })), /*#__PURE__*/_jsx(PickersModalDialog, _extends({}, actions, {\n open: open,\n slots: slots,\n slotProps: slotProps,\n children: /*#__PURE__*/_jsx(Layout, _extends({}, layoutProps, slotProps?.layout, {\n slots: slots,\n slotProps: slotProps,\n children: renderCurrentView()\n }))\n }))]\n });\n return {\n renderPicker\n };\n};","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport resolveComponentProps from '@mui/utils/resolveComponentProps';\nimport { refType } from '@mui/utils';\nimport { useMobilePicker } from \"../internals/hooks/useMobilePicker/index.js\";\nimport { useDatePickerDefaultizedProps } from \"../DatePicker/shared.js\";\nimport { usePickersTranslations } from \"../hooks/usePickersTranslations.js\";\nimport { useUtils } from \"../internals/hooks/useUtils.js\";\nimport { extractValidationProps, validateDate } from \"../validation/index.js\";\nimport { DateField } from \"../DateField/index.js\";\nimport { singleItemValueManager } from \"../internals/utils/valueManagers.js\";\nimport { renderDateViewCalendar } from \"../dateViewRenderers/index.js\";\nimport { resolveDateFormat } from \"../internals/utils/date-utils.js\";\nimport { buildGetOpenDialogAriaText } from \"../locales/utils/getPickersLocalization.js\";\n/**\n * Demos:\n *\n * - [DatePicker](https://mui.com/x/react-date-pickers/date-picker/)\n * - [Validation](https://mui.com/x/react-date-pickers/validation/)\n *\n * API:\n *\n * - [MobileDatePicker API](https://mui.com/x/api/date-pickers/mobile-date-picker/)\n */\nconst MobileDatePicker = /*#__PURE__*/React.forwardRef(function MobileDatePicker(inProps, ref) {\n const translations = usePickersTranslations();\n const utils = useUtils();\n\n // Props with the default values common to all date pickers\n const defaultizedProps = useDatePickerDefaultizedProps(inProps, 'MuiMobileDatePicker');\n const viewRenderers = _extends({\n day: renderDateViewCalendar,\n month: renderDateViewCalendar,\n year: renderDateViewCalendar\n }, defaultizedProps.viewRenderers);\n\n // Props with the default values specific to the mobile variant\n const props = _extends({}, defaultizedProps, {\n viewRenderers,\n format: resolveDateFormat(utils, defaultizedProps, false),\n slots: _extends({\n field: DateField\n }, defaultizedProps.slots),\n slotProps: _extends({}, defaultizedProps.slotProps, {\n field: ownerState => _extends({}, resolveComponentProps(defaultizedProps.slotProps?.field, ownerState), extractValidationProps(defaultizedProps), {\n ref\n }),\n toolbar: _extends({\n hidden: false\n }, defaultizedProps.slotProps?.toolbar)\n })\n });\n const {\n renderPicker\n } = useMobilePicker({\n props,\n valueManager: singleItemValueManager,\n valueType: 'date',\n getOpenDialogAriaText: buildGetOpenDialogAriaText({\n utils,\n formatKey: 'fullDate',\n contextTranslation: translations.openDatePickerDialogue,\n propsTranslation: props.localeText?.openDatePickerDialogue\n }),\n validator: validateDate\n });\n return renderPicker();\n});\nMobileDatePicker.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * If `true`, the main element is focused during the first mount.\n * This main element is:\n * - the element chosen by the visible view if any (i.e: the selected day on the `day` view).\n * - the `input` element if there is a field rendered.\n */\n autoFocus: PropTypes.bool,\n className: PropTypes.string,\n /**\n * If `true`, the popover or modal will close after submitting the full date.\n * @default `true` for desktop, `false` for mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).\n */\n closeOnSelect: PropTypes.bool,\n /**\n * Formats the day of week displayed in the calendar header.\n * @param {TDate} date The date of the day of week provided by the adapter.\n * @returns {string} The name to display.\n * @default (date: TDate) => adapter.format(date, 'weekdayShort').charAt(0).toUpperCase()\n */\n dayOfWeekFormatter: PropTypes.func,\n /**\n * The default value.\n * Used when the component is not controlled.\n */\n defaultValue: PropTypes.object,\n /**\n * If `true`, the picker and text field are disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, disable values after the current date for date components, time for time components and both for date time components.\n * @default false\n */\n disableFuture: PropTypes.bool,\n /**\n * If `true`, today's date is rendering without highlighting with circle.\n * @default false\n */\n disableHighlightToday: PropTypes.bool,\n /**\n * If `true`, the open picker button will not be rendered (renders only the field).\n * @default false\n */\n disableOpenPicker: PropTypes.bool,\n /**\n * If `true`, disable values before the current date for date components, time for time components and both for date time components.\n * @default false\n */\n disablePast: PropTypes.bool,\n /**\n * If `true`, the week number will be display in the calendar.\n */\n displayWeekNumber: PropTypes.bool,\n /**\n * @default false\n */\n enableAccessibleFieldDOMStructure: PropTypes.any,\n /**\n * The day view will show as many weeks as needed after the end of the current month to match this value.\n * Put it to 6 to have a fixed number of weeks in Gregorian calendars\n */\n fixedWeekNumber: PropTypes.number,\n /**\n * Format of the date when rendered in the input(s).\n * Defaults to localized format based on the used `views`.\n */\n format: PropTypes.string,\n /**\n * Density of the format when rendered in the input.\n * Setting `formatDensity` to `\"spacious\"` will add a space before and after each `/`, `-` and `.` character.\n * @default \"dense\"\n */\n formatDensity: PropTypes.oneOf(['dense', 'spacious']),\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n /**\n * The label content.\n */\n label: PropTypes.node,\n /**\n * If `true`, calls `renderLoading` instead of rendering the day calendar.\n * Can be used to preload information and show it in calendar.\n * @default false\n */\n loading: PropTypes.bool,\n /**\n * Locale for components texts.\n * Allows overriding texts coming from `LocalizationProvider` and `theme`.\n */\n localeText: PropTypes.object,\n /**\n * Maximal selectable date.\n * @default 2099-12-31\n */\n maxDate: PropTypes.object,\n /**\n * Minimal selectable date.\n * @default 1900-01-01\n */\n minDate: PropTypes.object,\n /**\n * Months rendered per row.\n * @default 3\n */\n monthsPerRow: PropTypes.oneOf([3, 4]),\n /**\n * Name attribute used by the `input` element in the Field.\n */\n name: PropTypes.string,\n /**\n * Callback fired when the value is accepted.\n * @template TValue The value type. It will be the same type as `value` or `null`. It can be in `[start, end]` format in case of range value.\n * @template TError The validation error type. It will be either `string` or a `null`. It can be in `[start, end]` format in case of range value.\n * @param {TValue} value The value that was just accepted.\n * @param {FieldChangeHandlerContext} context The context containing the validation result of the current value.\n */\n onAccept: PropTypes.func,\n /**\n * Callback fired when the value changes.\n * @template TValue The value type. It will be the same type as `value` or `null`. It can be in `[start, end]` format in case of range value.\n * @template TError The validation error type. It will be either `string` or a `null`. It can be in `[start, end]` format in case of range value.\n * @param {TValue} value The new value.\n * @param {FieldChangeHandlerContext} context The context containing the validation result of the current value.\n */\n onChange: PropTypes.func,\n /**\n * Callback fired when the popup requests to be closed.\n * Use in controlled mode (see `open`).\n */\n onClose: PropTypes.func,\n /**\n * Callback fired when the error associated with the current value changes.\n * When a validation error is detected, the `error` parameter contains a non-null value.\n * This can be used to render an appropriate form error.\n * @template TError The validation error type. It will be either `string` or a `null`. It can be in `[start, end]` format in case of range value.\n * @template TValue The value type. It will be the same type as `value` or `null`. It can be in `[start, end]` format in case of range value.\n * @param {TError} error The reason why the current value is not valid.\n * @param {TValue} value The value associated with the error.\n */\n onError: PropTypes.func,\n /**\n * Callback fired on month change.\n * @template TDate\n * @param {TDate} month The new month.\n */\n onMonthChange: PropTypes.func,\n /**\n * Callback fired when the popup requests to be opened.\n * Use in controlled mode (see `open`).\n */\n onOpen: PropTypes.func,\n /**\n * Callback fired when the selected sections change.\n * @param {FieldSelectedSections} newValue The new selected sections.\n */\n onSelectedSectionsChange: PropTypes.func,\n /**\n * Callback fired on view change.\n * @template TView\n * @param {TView} view The new view.\n */\n onViewChange: PropTypes.func,\n /**\n * Callback fired on year change.\n * @template TDate\n * @param {TDate} year The new year.\n */\n onYearChange: PropTypes.func,\n /**\n * Control the popup or dialog open state.\n * @default false\n */\n open: PropTypes.bool,\n /**\n * The default visible view.\n * Used when the component view is not controlled.\n * Must be a valid option from `views` list.\n */\n openTo: PropTypes.oneOf(['day', 'month', 'year']),\n /**\n * Force rendering in particular orientation.\n */\n orientation: PropTypes.oneOf(['landscape', 'portrait']),\n readOnly: PropTypes.bool,\n /**\n * If `true`, disable heavy animations.\n * @default `@media(prefers-reduced-motion: reduce)` || `navigator.userAgent` matches Android <10 or iOS <13\n */\n reduceAnimations: PropTypes.bool,\n /**\n * The date used to generate the new value when both `value` and `defaultValue` are empty.\n * @default The closest valid date-time using the validation props, except callbacks like `shouldDisable<...>`.\n */\n referenceDate: PropTypes.object,\n /**\n * Component displaying when passed `loading` true.\n * @returns {React.ReactNode} The node to render when loading.\n * @default () => ...\n */\n renderLoading: PropTypes.func,\n /**\n * The currently selected sections.\n * This prop accepts four formats:\n * 1. If a number is provided, the section at this index will be selected.\n * 2. If a string of type `FieldSectionType` is provided, the first section with that name will be selected.\n * 3. If `\"all\"` is provided, all the sections will be selected.\n * 4. If `null` is provided, no section will be selected.\n * If not provided, the selected sections will be handled internally.\n */\n selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number]),\n /**\n * Disable specific date.\n *\n * Warning: This function can be called multiple times (for example when rendering date calendar, checking if focus can be moved to a certain date, etc.). Expensive computations can impact performance.\n *\n * @template TDate\n * @param {TDate} day The date to test.\n * @returns {boolean} If `true` the date will be disabled.\n */\n shouldDisableDate: PropTypes.func,\n /**\n * Disable specific month.\n * @template TDate\n * @param {TDate} month The month to test.\n * @returns {boolean} If `true`, the month will be disabled.\n */\n shouldDisableMonth: PropTypes.func,\n /**\n * Disable specific year.\n * @template TDate\n * @param {TDate} year The year to test.\n * @returns {boolean} If `true`, the year will be disabled.\n */\n shouldDisableYear: PropTypes.func,\n /**\n * If `true`, days outside the current month are rendered:\n *\n * - if `fixedWeekNumber` is defined, renders days to have the weeks requested.\n *\n * - if `fixedWeekNumber` is not defined, renders day to fill the first and last week of the current month.\n *\n * - ignored if `calendars` equals more than `1` on range pickers.\n * @default false\n */\n showDaysOutsideCurrentMonth: PropTypes.bool,\n /**\n * The props used for each component slot.\n * @default {}\n */\n slotProps: PropTypes.object,\n /**\n * Overridable component slots.\n * @default {}\n */\n slots: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * Choose which timezone to use for the value.\n * Example: \"default\", \"system\", \"UTC\", \"America/New_York\".\n * If you pass values from other timezones to some props, they will be converted to this timezone before being used.\n * @see See the {@link https://mui.com/x/react-date-pickers/timezone/ timezones documentation} for more details.\n * @default The timezone of the `value` or `defaultValue` prop is defined, 'default' otherwise.\n */\n timezone: PropTypes.string,\n /**\n * The selected value.\n * Used when the component is controlled.\n */\n value: PropTypes.object,\n /**\n * The visible view.\n * Used when the component view is controlled.\n * Must be a valid option from `views` list.\n */\n view: PropTypes.oneOf(['day', 'month', 'year']),\n /**\n * Define custom view renderers for each section.\n * If `null`, the section will only have field editing.\n * If `undefined`, internally defined view will be used.\n */\n viewRenderers: PropTypes.shape({\n day: PropTypes.func,\n month: PropTypes.func,\n year: PropTypes.func\n }),\n /**\n * Available views.\n */\n views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'month', 'year']).isRequired),\n /**\n * Years are displayed in ascending (chronological) order by default.\n * If `desc`, years are displayed in descending order.\n * @default 'asc'\n */\n yearsOrder: PropTypes.oneOf(['asc', 'desc']),\n /**\n * Years rendered per row.\n * @default 3\n */\n yearsPerRow: PropTypes.oneOf([3, 4])\n};\nexport { MobileDatePicker };","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"desktopModeMediaQuery\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport useMediaQuery from '@mui/material/useMediaQuery';\nimport { useThemeProps } from '@mui/material/styles';\nimport { refType } from '@mui/utils';\nimport { DesktopDatePicker } from \"../DesktopDatePicker/index.js\";\nimport { MobileDatePicker } from \"../MobileDatePicker/index.js\";\nimport { DEFAULT_DESKTOP_MODE_MEDIA_QUERY } from \"../internals/utils/utils.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Demos:\n *\n * - [DatePicker](https://mui.com/x/react-date-pickers/date-picker/)\n * - [Validation](https://mui.com/x/react-date-pickers/validation/)\n *\n * API:\n *\n * - [DatePicker API](https://mui.com/x/api/date-pickers/date-picker/)\n */\nconst DatePicker = /*#__PURE__*/React.forwardRef(function DatePicker(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiDatePicker'\n });\n const {\n desktopModeMediaQuery = DEFAULT_DESKTOP_MODE_MEDIA_QUERY\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n // defaults to `true` in environments where `window.matchMedia` would not be available (i.e. test/jsdom)\n const isDesktop = useMediaQuery(desktopModeMediaQuery, {\n defaultMatches: true\n });\n if (isDesktop) {\n return /*#__PURE__*/_jsx(DesktopDatePicker, _extends({\n ref: ref\n }, other));\n }\n return /*#__PURE__*/_jsx(MobileDatePicker, _extends({\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? DatePicker.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * If `true`, the main element is focused during the first mount.\n * This main element is:\n * - the element chosen by the visible view if any (i.e: the selected day on the `day` view).\n * - the `input` element if there is a field rendered.\n */\n autoFocus: PropTypes.bool,\n className: PropTypes.string,\n /**\n * If `true`, the popover or modal will close after submitting the full date.\n * @default `true` for desktop, `false` for mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).\n */\n closeOnSelect: PropTypes.bool,\n /**\n * Formats the day of week displayed in the calendar header.\n * @param {TDate} date The date of the day of week provided by the adapter.\n * @returns {string} The name to display.\n * @default (date: TDate) => adapter.format(date, 'weekdayShort').charAt(0).toUpperCase()\n */\n dayOfWeekFormatter: PropTypes.func,\n /**\n * The default value.\n * Used when the component is not controlled.\n */\n defaultValue: PropTypes.object,\n /**\n * CSS media query when `Mobile` mode will be changed to `Desktop`.\n * @default '@media (pointer: fine)'\n * @example '@media (min-width: 720px)' or theme.breakpoints.up(\"sm\")\n */\n desktopModeMediaQuery: PropTypes.string,\n /**\n * If `true`, the picker and text field are disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, disable values after the current date for date components, time for time components and both for date time components.\n * @default false\n */\n disableFuture: PropTypes.bool,\n /**\n * If `true`, today's date is rendering without highlighting with circle.\n * @default false\n */\n disableHighlightToday: PropTypes.bool,\n /**\n * If `true`, the open picker button will not be rendered (renders only the field).\n * @default false\n */\n disableOpenPicker: PropTypes.bool,\n /**\n * If `true`, disable values before the current date for date components, time for time components and both for date time components.\n * @default false\n */\n disablePast: PropTypes.bool,\n /**\n * If `true`, the week number will be display in the calendar.\n */\n displayWeekNumber: PropTypes.bool,\n /**\n * @default false\n */\n enableAccessibleFieldDOMStructure: PropTypes.any,\n /**\n * The day view will show as many weeks as needed after the end of the current month to match this value.\n * Put it to 6 to have a fixed number of weeks in Gregorian calendars\n */\n fixedWeekNumber: PropTypes.number,\n /**\n * Format of the date when rendered in the input(s).\n * Defaults to localized format based on the used `views`.\n */\n format: PropTypes.string,\n /**\n * Density of the format when rendered in the input.\n * Setting `formatDensity` to `\"spacious\"` will add a space before and after each `/`, `-` and `.` character.\n * @default \"dense\"\n */\n formatDensity: PropTypes.oneOf(['dense', 'spacious']),\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n /**\n * The label content.\n */\n label: PropTypes.node,\n /**\n * If `true`, calls `renderLoading` instead of rendering the day calendar.\n * Can be used to preload information and show it in calendar.\n * @default false\n */\n loading: PropTypes.bool,\n /**\n * Locale for components texts.\n * Allows overriding texts coming from `LocalizationProvider` and `theme`.\n */\n localeText: PropTypes.object,\n /**\n * Maximal selectable date.\n * @default 2099-12-31\n */\n maxDate: PropTypes.object,\n /**\n * Minimal selectable date.\n * @default 1900-01-01\n */\n minDate: PropTypes.object,\n /**\n * Months rendered per row.\n * @default 3\n */\n monthsPerRow: PropTypes.oneOf([3, 4]),\n /**\n * Name attribute used by the `input` element in the Field.\n */\n name: PropTypes.string,\n /**\n * Callback fired when the value is accepted.\n * @template TValue The value type. It will be the same type as `value` or `null`. It can be in `[start, end]` format in case of range value.\n * @template TError The validation error type. It will be either `string` or a `null`. It can be in `[start, end]` format in case of range value.\n * @param {TValue} value The value that was just accepted.\n * @param {FieldChangeHandlerContext} context The context containing the validation result of the current value.\n */\n onAccept: PropTypes.func,\n /**\n * Callback fired when the value changes.\n * @template TValue The value type. It will be the same type as `value` or `null`. It can be in `[start, end]` format in case of range value.\n * @template TError The validation error type. It will be either `string` or a `null`. It can be in `[start, end]` format in case of range value.\n * @param {TValue} value The new value.\n * @param {FieldChangeHandlerContext} context The context containing the validation result of the current value.\n */\n onChange: PropTypes.func,\n /**\n * Callback fired when the popup requests to be closed.\n * Use in controlled mode (see `open`).\n */\n onClose: PropTypes.func,\n /**\n * Callback fired when the error associated with the current value changes.\n * When a validation error is detected, the `error` parameter contains a non-null value.\n * This can be used to render an appropriate form error.\n * @template TError The validation error type. It will be either `string` or a `null`. It can be in `[start, end]` format in case of range value.\n * @template TValue The value type. It will be the same type as `value` or `null`. It can be in `[start, end]` format in case of range value.\n * @param {TError} error The reason why the current value is not valid.\n * @param {TValue} value The value associated with the error.\n */\n onError: PropTypes.func,\n /**\n * Callback fired on month change.\n * @template TDate\n * @param {TDate} month The new month.\n */\n onMonthChange: PropTypes.func,\n /**\n * Callback fired when the popup requests to be opened.\n * Use in controlled mode (see `open`).\n */\n onOpen: PropTypes.func,\n /**\n * Callback fired when the selected sections change.\n * @param {FieldSelectedSections} newValue The new selected sections.\n */\n onSelectedSectionsChange: PropTypes.func,\n /**\n * Callback fired on view change.\n * @template TView\n * @param {TView} view The new view.\n */\n onViewChange: PropTypes.func,\n /**\n * Callback fired on year change.\n * @template TDate\n * @param {TDate} year The new year.\n */\n onYearChange: PropTypes.func,\n /**\n * Control the popup or dialog open state.\n * @default false\n */\n open: PropTypes.bool,\n /**\n * The default visible view.\n * Used when the component view is not controlled.\n * Must be a valid option from `views` list.\n */\n openTo: PropTypes.oneOf(['day', 'month', 'year']),\n /**\n * Force rendering in particular orientation.\n */\n orientation: PropTypes.oneOf(['landscape', 'portrait']),\n readOnly: PropTypes.bool,\n /**\n * If `true`, disable heavy animations.\n * @default `@media(prefers-reduced-motion: reduce)` || `navigator.userAgent` matches Android <10 or iOS <13\n */\n reduceAnimations: PropTypes.bool,\n /**\n * The date used to generate the new value when both `value` and `defaultValue` are empty.\n * @default The closest valid date-time using the validation props, except callbacks like `shouldDisable<...>`.\n */\n referenceDate: PropTypes.object,\n /**\n * Component displaying when passed `loading` true.\n * @returns {React.ReactNode} The node to render when loading.\n * @default () => ...\n */\n renderLoading: PropTypes.func,\n /**\n * The currently selected sections.\n * This prop accepts four formats:\n * 1. If a number is provided, the section at this index will be selected.\n * 2. If a string of type `FieldSectionType` is provided, the first section with that name will be selected.\n * 3. If `\"all\"` is provided, all the sections will be selected.\n * 4. If `null` is provided, no section will be selected.\n * If not provided, the selected sections will be handled internally.\n */\n selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number]),\n /**\n * Disable specific date.\n *\n * Warning: This function can be called multiple times (for example when rendering date calendar, checking if focus can be moved to a certain date, etc.). Expensive computations can impact performance.\n *\n * @template TDate\n * @param {TDate} day The date to test.\n * @returns {boolean} If `true` the date will be disabled.\n */\n shouldDisableDate: PropTypes.func,\n /**\n * Disable specific month.\n * @template TDate\n * @param {TDate} month The month to test.\n * @returns {boolean} If `true`, the month will be disabled.\n */\n shouldDisableMonth: PropTypes.func,\n /**\n * Disable specific year.\n * @template TDate\n * @param {TDate} year The year to test.\n * @returns {boolean} If `true`, the year will be disabled.\n */\n shouldDisableYear: PropTypes.func,\n /**\n * If `true`, days outside the current month are rendered:\n *\n * - if `fixedWeekNumber` is defined, renders days to have the weeks requested.\n *\n * - if `fixedWeekNumber` is not defined, renders day to fill the first and last week of the current month.\n *\n * - ignored if `calendars` equals more than `1` on range pickers.\n * @default false\n */\n showDaysOutsideCurrentMonth: PropTypes.bool,\n /**\n * The props used for each component slot.\n * @default {}\n */\n slotProps: PropTypes.object,\n /**\n * Overridable component slots.\n * @default {}\n */\n slots: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * Choose which timezone to use for the value.\n * Example: \"default\", \"system\", \"UTC\", \"America/New_York\".\n * If you pass values from other timezones to some props, they will be converted to this timezone before being used.\n * @see See the {@link https://mui.com/x/react-date-pickers/timezone/ timezones documentation} for more details.\n * @default The timezone of the `value` or `defaultValue` prop is defined, 'default' otherwise.\n */\n timezone: PropTypes.string,\n /**\n * The selected value.\n * Used when the component is controlled.\n */\n value: PropTypes.object,\n /**\n * The visible view.\n * Used when the component view is controlled.\n * Must be a valid option from `views` list.\n */\n view: PropTypes.oneOf(['day', 'month', 'year']),\n /**\n * Define custom view renderers for each section.\n * If `null`, the section will only have field editing.\n * If `undefined`, internally defined view will be used.\n */\n viewRenderers: PropTypes.shape({\n day: PropTypes.func,\n month: PropTypes.func,\n year: PropTypes.func\n }),\n /**\n * Available views.\n */\n views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'month', 'year']).isRequired),\n /**\n * Years are displayed in ascending (chronological) order by default.\n * If `desc`, years are displayed in descending order.\n * @default 'asc'\n */\n yearsOrder: PropTypes.oneOf(['asc', 'desc']),\n /**\n * Years rendered per row.\n * @default 4 on desktop, 3 on mobile\n */\n yearsPerRow: PropTypes.oneOf([3, 4])\n} : void 0;\nexport { DatePicker };","import _extends from \"@babel/runtime/helpers/esm/extends\";\n/* eslint-disable class-methods-use-this */\nimport defaultDayjs from 'dayjs';\nimport weekOfYearPlugin from 'dayjs/plugin/weekOfYear';\nimport customParseFormatPlugin from 'dayjs/plugin/customParseFormat';\nimport localizedFormatPlugin from 'dayjs/plugin/localizedFormat';\nimport isBetweenPlugin from 'dayjs/plugin/isBetween';\nimport advancedFormatPlugin from 'dayjs/plugin/advancedFormat';\nimport { warnOnce } from '@mui/x-internals/warning';\ndefaultDayjs.extend(localizedFormatPlugin);\ndefaultDayjs.extend(weekOfYearPlugin);\ndefaultDayjs.extend(isBetweenPlugin);\ndefaultDayjs.extend(advancedFormatPlugin);\nconst formatTokenMap = {\n // Year\n YY: 'year',\n YYYY: {\n sectionType: 'year',\n contentType: 'digit',\n maxLength: 4\n },\n // Month\n M: {\n sectionType: 'month',\n contentType: 'digit',\n maxLength: 2\n },\n MM: 'month',\n MMM: {\n sectionType: 'month',\n contentType: 'letter'\n },\n MMMM: {\n sectionType: 'month',\n contentType: 'letter'\n },\n // Day of the month\n D: {\n sectionType: 'day',\n contentType: 'digit',\n maxLength: 2\n },\n DD: 'day',\n Do: {\n sectionType: 'day',\n contentType: 'digit-with-letter'\n },\n // Day of the week\n d: {\n sectionType: 'weekDay',\n contentType: 'digit',\n maxLength: 2\n },\n dd: {\n sectionType: 'weekDay',\n contentType: 'letter'\n },\n ddd: {\n sectionType: 'weekDay',\n contentType: 'letter'\n },\n dddd: {\n sectionType: 'weekDay',\n contentType: 'letter'\n },\n // Meridiem\n A: 'meridiem',\n a: 'meridiem',\n // Hours\n H: {\n sectionType: 'hours',\n contentType: 'digit',\n maxLength: 2\n },\n HH: 'hours',\n h: {\n sectionType: 'hours',\n contentType: 'digit',\n maxLength: 2\n },\n hh: 'hours',\n // Minutes\n m: {\n sectionType: 'minutes',\n contentType: 'digit',\n maxLength: 2\n },\n mm: 'minutes',\n // Seconds\n s: {\n sectionType: 'seconds',\n contentType: 'digit',\n maxLength: 2\n },\n ss: 'seconds'\n};\nconst defaultFormats = {\n year: 'YYYY',\n month: 'MMMM',\n monthShort: 'MMM',\n dayOfMonth: 'D',\n dayOfMonthFull: 'Do',\n weekday: 'dddd',\n weekdayShort: 'dd',\n hours24h: 'HH',\n hours12h: 'hh',\n meridiem: 'A',\n minutes: 'mm',\n seconds: 'ss',\n fullDate: 'll',\n keyboardDate: 'L',\n shortDate: 'MMM D',\n normalDate: 'D MMMM',\n normalDateWithWeekday: 'ddd, MMM D',\n fullTime: 'LT',\n fullTime12h: 'hh:mm A',\n fullTime24h: 'HH:mm',\n keyboardDateTime: 'L LT',\n keyboardDateTime12h: 'L hh:mm A',\n keyboardDateTime24h: 'L HH:mm'\n};\nconst MISSING_UTC_PLUGIN = ['Missing UTC plugin', 'To be able to use UTC or timezones, you have to enable the `utc` plugin', 'Find more information on https://mui.com/x/react-date-pickers/timezone/#day-js-and-utc'].join('\\n');\nconst MISSING_TIMEZONE_PLUGIN = ['Missing timezone plugin', 'To be able to use timezones, you have to enable both the `utc` and the `timezone` plugin', 'Find more information on https://mui.com/x/react-date-pickers/timezone/#day-js-and-timezone'].join('\\n');\nconst withLocale = (dayjs, locale) => !locale ? dayjs : (...args) => dayjs(...args).locale(locale);\n/**\n * Based on `@date-io/dayjs`\n *\n * MIT License\n *\n * Copyright (c) 2017 Dmitriy Kovalenko\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nexport class AdapterDayjs {\n constructor({\n locale: _locale,\n formats\n } = {}) {\n this.isMUIAdapter = true;\n this.isTimezoneCompatible = true;\n this.lib = 'dayjs';\n this.dayjs = void 0;\n this.locale = void 0;\n this.formats = void 0;\n this.escapedCharacters = {\n start: '[',\n end: ']'\n };\n this.formatTokenMap = formatTokenMap;\n this.setLocaleToValue = value => {\n const expectedLocale = this.getCurrentLocaleCode();\n if (expectedLocale === value.locale()) {\n return value;\n }\n return value.locale(expectedLocale);\n };\n this.hasUTCPlugin = () => typeof defaultDayjs.utc !== 'undefined';\n this.hasTimezonePlugin = () => typeof defaultDayjs.tz !== 'undefined';\n this.isSame = (value, comparing, comparisonTemplate) => {\n const comparingInValueTimezone = this.setTimezone(comparing, this.getTimezone(value));\n return value.format(comparisonTemplate) === comparingInValueTimezone.format(comparisonTemplate);\n };\n /**\n * Replaces \"default\" by undefined and \"system\" by the system timezone before passing it to `dayjs`.\n */\n this.cleanTimezone = timezone => {\n switch (timezone) {\n case 'default':\n {\n return undefined;\n }\n case 'system':\n {\n return defaultDayjs.tz.guess();\n }\n default:\n {\n return timezone;\n }\n }\n };\n this.createSystemDate = value => {\n if (this.hasUTCPlugin() && this.hasTimezonePlugin()) {\n const timezone = defaultDayjs.tz.guess();\n\n // We can't change the system timezone in the tests\n /* istanbul ignore next */\n if (timezone !== 'UTC') {\n return defaultDayjs.tz(value, timezone);\n }\n return defaultDayjs(value);\n }\n return defaultDayjs(value);\n };\n this.createUTCDate = value => {\n /* istanbul ignore next */\n if (!this.hasUTCPlugin()) {\n throw new Error(MISSING_UTC_PLUGIN);\n }\n return defaultDayjs.utc(value);\n };\n this.createTZDate = (value, timezone) => {\n /* istanbul ignore next */\n if (!this.hasUTCPlugin()) {\n throw new Error(MISSING_UTC_PLUGIN);\n }\n\n /* istanbul ignore next */\n if (!this.hasTimezonePlugin()) {\n throw new Error(MISSING_TIMEZONE_PLUGIN);\n }\n const keepLocalTime = value !== undefined && !value.endsWith('Z');\n return defaultDayjs(value).tz(this.cleanTimezone(timezone), keepLocalTime);\n };\n this.getLocaleFormats = () => {\n const locales = defaultDayjs.Ls;\n const locale = this.locale || 'en';\n let localeObject = locales[locale];\n if (localeObject === undefined) {\n /* istanbul ignore next */\n if (process.env.NODE_ENV !== 'production') {\n warnOnce(['MUI X: Your locale has not been found.', 'Either the locale key is not a supported one. Locales supported by dayjs are available here: https://github.com/iamkun/dayjs/tree/dev/src/locale.', \"Or you forget to import the locale from 'dayjs/locale/{localeUsed}'\", 'fallback on English locale.']);\n }\n localeObject = locales.en;\n }\n return localeObject.formats;\n };\n /**\n * If the new day does not have the same offset as the old one (when switching to summer day time for example),\n * Then dayjs will not automatically adjust the offset (moment does).\n * We have to parse again the value to make sure the `fixOffset` method is applied.\n * See https://github.com/iamkun/dayjs/blob/b3624de619d6e734cd0ffdbbd3502185041c1b60/src/plugin/timezone/index.js#L72\n */\n this.adjustOffset = value => {\n if (!this.hasTimezonePlugin()) {\n return value;\n }\n const timezone = this.getTimezone(value);\n if (timezone !== 'UTC') {\n const fixedValue = value.tz(this.cleanTimezone(timezone), true);\n // @ts-ignore\n if (fixedValue.$offset === (value.$offset ?? 0)) {\n return value;\n }\n // Change only what is needed to avoid creating a new object with unwanted data\n // Especially important when used in an environment where utc or timezone dates are used only in some places\n // Reference: https://github.com/mui/mui-x/issues/13290\n // @ts-ignore\n value.$offset = fixedValue.$offset;\n }\n return value;\n };\n this.date = (value, timezone = 'default') => {\n if (value === null) {\n return null;\n }\n let parsedValue;\n if (timezone === 'UTC') {\n parsedValue = this.createUTCDate(value);\n } else if (timezone === 'system' || timezone === 'default' && !this.hasTimezonePlugin()) {\n parsedValue = this.createSystemDate(value);\n } else {\n parsedValue = this.createTZDate(value, timezone);\n }\n if (this.locale === undefined) {\n return parsedValue;\n }\n return parsedValue.locale(this.locale);\n };\n this.getInvalidDate = () => defaultDayjs(new Date('Invalid date'));\n this.getTimezone = value => {\n if (this.hasTimezonePlugin()) {\n // @ts-ignore\n const zone = value.$x?.$timezone;\n if (zone) {\n return zone;\n }\n }\n if (this.hasUTCPlugin() && value.isUTC()) {\n return 'UTC';\n }\n return 'system';\n };\n this.setTimezone = (value, timezone) => {\n if (this.getTimezone(value) === timezone) {\n return value;\n }\n if (timezone === 'UTC') {\n /* istanbul ignore next */\n if (!this.hasUTCPlugin()) {\n throw new Error(MISSING_UTC_PLUGIN);\n }\n return value.utc();\n }\n\n // We know that we have the UTC plugin.\n // Otherwise, the value timezone would always equal \"system\".\n // And it would be caught by the first \"if\" of this method.\n if (timezone === 'system') {\n return value.local();\n }\n if (!this.hasTimezonePlugin()) {\n if (timezone === 'default') {\n return value;\n }\n\n /* istanbul ignore next */\n throw new Error(MISSING_TIMEZONE_PLUGIN);\n }\n return defaultDayjs.tz(value, this.cleanTimezone(timezone));\n };\n this.toJsDate = value => {\n return value.toDate();\n };\n this.parse = (value, format) => {\n if (value === '') {\n return null;\n }\n return this.dayjs(value, format, this.locale, true);\n };\n this.getCurrentLocaleCode = () => {\n return this.locale || 'en';\n };\n this.is12HourCycleInCurrentLocale = () => {\n /* istanbul ignore next */\n return /A|a/.test(this.getLocaleFormats().LT || '');\n };\n this.expandFormat = format => {\n const localeFormats = this.getLocaleFormats();\n\n // @see https://github.com/iamkun/dayjs/blob/dev/src/plugin/localizedFormat/index.js\n const t = formatBis => formatBis.replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g, (_, a, b) => a || b.slice(1));\n return format.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g, (_, a, b) => {\n const B = b && b.toUpperCase();\n return a || localeFormats[b] || t(localeFormats[B]);\n });\n };\n this.isValid = value => {\n if (value == null) {\n return false;\n }\n return value.isValid();\n };\n this.format = (value, formatKey) => {\n return this.formatByString(value, this.formats[formatKey]);\n };\n this.formatByString = (value, formatString) => {\n return this.dayjs(value).format(formatString);\n };\n this.formatNumber = numberToFormat => {\n return numberToFormat;\n };\n this.isEqual = (value, comparing) => {\n if (value === null && comparing === null) {\n return true;\n }\n if (value === null || comparing === null) {\n return false;\n }\n return value.toDate().getTime() === comparing.toDate().getTime();\n };\n this.isSameYear = (value, comparing) => {\n return this.isSame(value, comparing, 'YYYY');\n };\n this.isSameMonth = (value, comparing) => {\n return this.isSame(value, comparing, 'YYYY-MM');\n };\n this.isSameDay = (value, comparing) => {\n return this.isSame(value, comparing, 'YYYY-MM-DD');\n };\n this.isSameHour = (value, comparing) => {\n return value.isSame(comparing, 'hour');\n };\n this.isAfter = (value, comparing) => {\n return value > comparing;\n };\n this.isAfterYear = (value, comparing) => {\n if (!this.hasUTCPlugin()) {\n return value.isAfter(comparing, 'year');\n }\n return !this.isSameYear(value, comparing) && value.utc() > comparing.utc();\n };\n this.isAfterDay = (value, comparing) => {\n if (!this.hasUTCPlugin()) {\n return value.isAfter(comparing, 'day');\n }\n return !this.isSameDay(value, comparing) && value.utc() > comparing.utc();\n };\n this.isBefore = (value, comparing) => {\n return value < comparing;\n };\n this.isBeforeYear = (value, comparing) => {\n if (!this.hasUTCPlugin()) {\n return value.isBefore(comparing, 'year');\n }\n return !this.isSameYear(value, comparing) && value.utc() < comparing.utc();\n };\n this.isBeforeDay = (value, comparing) => {\n if (!this.hasUTCPlugin()) {\n return value.isBefore(comparing, 'day');\n }\n return !this.isSameDay(value, comparing) && value.utc() < comparing.utc();\n };\n this.isWithinRange = (value, [start, end]) => {\n return value >= start && value <= end;\n };\n this.startOfYear = value => {\n return this.adjustOffset(value.startOf('year'));\n };\n this.startOfMonth = value => {\n return this.adjustOffset(value.startOf('month'));\n };\n this.startOfWeek = value => {\n return this.adjustOffset(this.setLocaleToValue(value).startOf('week'));\n };\n this.startOfDay = value => {\n return this.adjustOffset(value.startOf('day'));\n };\n this.endOfYear = value => {\n return this.adjustOffset(value.endOf('year'));\n };\n this.endOfMonth = value => {\n return this.adjustOffset(value.endOf('month'));\n };\n this.endOfWeek = value => {\n return this.adjustOffset(this.setLocaleToValue(value).endOf('week'));\n };\n this.endOfDay = value => {\n return this.adjustOffset(value.endOf('day'));\n };\n this.addYears = (value, amount) => {\n return this.adjustOffset(amount < 0 ? value.subtract(Math.abs(amount), 'year') : value.add(amount, 'year'));\n };\n this.addMonths = (value, amount) => {\n return this.adjustOffset(amount < 0 ? value.subtract(Math.abs(amount), 'month') : value.add(amount, 'month'));\n };\n this.addWeeks = (value, amount) => {\n return this.adjustOffset(amount < 0 ? value.subtract(Math.abs(amount), 'week') : value.add(amount, 'week'));\n };\n this.addDays = (value, amount) => {\n return this.adjustOffset(amount < 0 ? value.subtract(Math.abs(amount), 'day') : value.add(amount, 'day'));\n };\n this.addHours = (value, amount) => {\n return this.adjustOffset(amount < 0 ? value.subtract(Math.abs(amount), 'hour') : value.add(amount, 'hour'));\n };\n this.addMinutes = (value, amount) => {\n return this.adjustOffset(amount < 0 ? value.subtract(Math.abs(amount), 'minute') : value.add(amount, 'minute'));\n };\n this.addSeconds = (value, amount) => {\n return this.adjustOffset(amount < 0 ? value.subtract(Math.abs(amount), 'second') : value.add(amount, 'second'));\n };\n this.getYear = value => {\n return value.year();\n };\n this.getMonth = value => {\n return value.month();\n };\n this.getDate = value => {\n return value.date();\n };\n this.getHours = value => {\n return value.hour();\n };\n this.getMinutes = value => {\n return value.minute();\n };\n this.getSeconds = value => {\n return value.second();\n };\n this.getMilliseconds = value => {\n return value.millisecond();\n };\n this.setYear = (value, year) => {\n return this.adjustOffset(value.set('year', year));\n };\n this.setMonth = (value, month) => {\n return this.adjustOffset(value.set('month', month));\n };\n this.setDate = (value, date) => {\n return this.adjustOffset(value.set('date', date));\n };\n this.setHours = (value, hours) => {\n return this.adjustOffset(value.set('hour', hours));\n };\n this.setMinutes = (value, minutes) => {\n return this.adjustOffset(value.set('minute', minutes));\n };\n this.setSeconds = (value, seconds) => {\n return this.adjustOffset(value.set('second', seconds));\n };\n this.setMilliseconds = (value, milliseconds) => {\n return this.adjustOffset(value.set('millisecond', milliseconds));\n };\n this.getDaysInMonth = value => {\n return value.daysInMonth();\n };\n this.getWeekArray = value => {\n const start = this.startOfWeek(this.startOfMonth(value));\n const end = this.endOfWeek(this.endOfMonth(value));\n let count = 0;\n let current = start;\n const nestedWeeks = [];\n while (current < end) {\n const weekNumber = Math.floor(count / 7);\n nestedWeeks[weekNumber] = nestedWeeks[weekNumber] || [];\n nestedWeeks[weekNumber].push(current);\n current = this.addDays(current, 1);\n count += 1;\n }\n return nestedWeeks;\n };\n this.getWeekNumber = value => {\n return value.week();\n };\n this.getYearRange = ([start, end]) => {\n const startDate = this.startOfYear(start);\n const endDate = this.endOfYear(end);\n const years = [];\n let current = startDate;\n while (this.isBefore(current, endDate)) {\n years.push(current);\n current = this.addYears(current, 1);\n }\n return years;\n };\n this.dayjs = withLocale(defaultDayjs, _locale);\n this.locale = _locale;\n this.formats = _extends({}, defaultFormats, formats);\n\n // Moved plugins to the constructor to allow for users to use options on the library\n // for reference: https://github.com/mui/mui-x/pull/11151\n defaultDayjs.extend(customParseFormatPlugin);\n }\n getDayOfWeek(value) {\n return value.day() + 1;\n }\n}","\"use client\";\n\nimport createSvgIcon from './utils/createSvgIcon';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14\"\n}), 'Search');","//BacktestingParameters.js\n\nimport React from 'react';\nimport {\n TextField, \n Typography, \n Box, \n InputAdornment,\n Paper,\n Divider,\n Select, \n MenuItem, \n FormControl, \n InputLabel\n} from '@mui/material';\nimport dayjs from 'dayjs';\nimport { DatePicker } from '@mui/x-date-pickers/DatePicker';\nimport { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider';\nimport { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs';\nimport SearchIcon from '@mui/icons-material/Search';\n\nconst BacktestingParameters = ({\n asset,\n setAsset,\n dataSource, \n setDataSource,\n startDate,\n setStartDate,\n endDate,\n setEndDate,\n fees,\n setFees,\n slippage,\n setSlippage,\n }) => {\n return (\n \n \n Backtesting Parameters\n \n \n \n {/* Asset Symbol */}\n setAsset(e.target.value)}\n InputProps={{\n startAdornment: (\n \n \n \n ),\n }}\n variant=\"outlined\"\n fullWidth\n />\n\n {/* Data Source */}\n \n Data Source\n setDataSource(e.target.value)}\n >\n Yahoo Finance\n Binance\n \n \n \n {/* Dates */}\n \n \n \n setStartDate(date ? date.format('YYYY-MM-DD') : '')\n }\n renderInput={(params) => (\n \n )}\n />\n \n setEndDate(date ? date.format('YYYY-MM-DD') : '')\n }\n renderInput={(params) => (\n \n )}\n />\n \n \n \n {/* Fees and Slippage */}\n \n setFees(e.target.value)}\n InputProps={{\n endAdornment: (\n \n \n ),\n }}\n variant=\"outlined\"\n fullWidth\n />\n setSlippage(e.target.value)}\n InputProps={{\n endAdornment: (\n \n \n ),\n }}\n variant=\"outlined\"\n fullWidth\n />\n \n \n \n );\n };\n\n export default BacktestingParameters;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getFormGroupUtilityClass(slot) {\n return generateUtilityClass('MuiFormGroup', slot);\n}\nconst formGroupClasses = generateUtilityClasses('MuiFormGroup', ['root', 'row', 'error']);\nexport default formGroupClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { styled } from \"../zero-styled/index.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport { getFormGroupUtilityClass } from \"./formGroupClasses.js\";\nimport useFormControl from \"../FormControl/useFormControl.js\";\nimport formControlState from \"../FormControl/formControlState.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n row,\n error\n } = ownerState;\n const slots = {\n root: ['root', row && 'row', error && 'error']\n };\n return composeClasses(slots, getFormGroupUtilityClass, classes);\n};\nconst FormGroupRoot = styled('div', {\n name: 'MuiFormGroup',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.row && styles.row];\n }\n})({\n display: 'flex',\n flexDirection: 'column',\n flexWrap: 'wrap',\n variants: [{\n props: {\n row: true\n },\n style: {\n flexDirection: 'row'\n }\n }]\n});\n\n/**\n * `FormGroup` wraps controls such as `Checkbox` and `Switch`.\n * It provides compact row layout.\n * For the `Radio`, you should be using the `RadioGroup` component instead of this one.\n */\nconst FormGroup = /*#__PURE__*/React.forwardRef(function FormGroup(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiFormGroup'\n });\n const {\n className,\n row = false,\n ...other\n } = props;\n const muiFormControl = useFormControl();\n const fcs = formControlState({\n props,\n muiFormControl,\n states: ['error']\n });\n const ownerState = {\n ...props,\n row,\n error: fcs.error\n };\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(FormGroupRoot, {\n className: clsx(classes.root, className),\n ownerState: ownerState,\n ref: ref,\n ...other\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? FormGroup.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * Display group of elements in a compact row.\n * @default false\n */\n row: PropTypes.bool,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default FormGroup;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getRadioGroupUtilityClass(slot) {\n return generateUtilityClass('MuiRadioGroup', slot);\n}\nconst radioGroupClasses = generateUtilityClasses('MuiRadioGroup', ['root', 'row', 'error']);\nexport default radioGroupClasses;","import * as React from 'react';\n/**\n * @ignore - internal component.\n */\nconst RadioGroupContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== 'production') {\n RadioGroupContext.displayName = 'RadioGroupContext';\n}\nexport default RadioGroupContext;","'use client';\n\nimport useId from '@mui/utils/useId';\nexport default useId;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport FormGroup from \"../FormGroup/index.js\";\nimport { getRadioGroupUtilityClass } from \"./radioGroupClasses.js\";\nimport useForkRef from \"../utils/useForkRef.js\";\nimport useControlled from \"../utils/useControlled.js\";\nimport RadioGroupContext from \"./RadioGroupContext.js\";\nimport useId from \"../utils/useId.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = props => {\n const {\n classes,\n row,\n error\n } = props;\n const slots = {\n root: ['root', row && 'row', error && 'error']\n };\n return composeClasses(slots, getRadioGroupUtilityClass, classes);\n};\nconst RadioGroup = /*#__PURE__*/React.forwardRef(function RadioGroup(props, ref) {\n const {\n // private\n // eslint-disable-next-line react/prop-types\n actions,\n children,\n className,\n defaultValue,\n name: nameProp,\n onChange,\n value: valueProp,\n ...other\n } = props;\n const rootRef = React.useRef(null);\n const classes = useUtilityClasses(props);\n const [value, setValueState] = useControlled({\n controlled: valueProp,\n default: defaultValue,\n name: 'RadioGroup'\n });\n React.useImperativeHandle(actions, () => ({\n focus: () => {\n let input = rootRef.current.querySelector('input:not(:disabled):checked');\n if (!input) {\n input = rootRef.current.querySelector('input:not(:disabled)');\n }\n if (input) {\n input.focus();\n }\n }\n }), []);\n const handleRef = useForkRef(ref, rootRef);\n const name = useId(nameProp);\n const contextValue = React.useMemo(() => ({\n name,\n onChange(event) {\n setValueState(event.target.value);\n if (onChange) {\n onChange(event, event.target.value);\n }\n },\n value\n }), [name, onChange, setValueState, value]);\n return /*#__PURE__*/_jsx(RadioGroupContext.Provider, {\n value: contextValue,\n children: /*#__PURE__*/_jsx(FormGroup, {\n role: \"radiogroup\",\n ref: handleRef,\n className: clsx(classes.root, className),\n ...other,\n children: children\n })\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? RadioGroup.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The default value. Use when the component is not controlled.\n */\n defaultValue: PropTypes.any,\n /**\n * The name used to reference the value of the control.\n * If you don't provide this prop, it falls back to a randomly generated name.\n */\n name: PropTypes.string,\n /**\n * Callback fired when a radio button is selected.\n *\n * @param {React.ChangeEvent} event The event source of the callback.\n * @param {string} value The value of the selected radio button.\n * You can pull out the new value by accessing `event.target.value` (string).\n */\n onChange: PropTypes.func,\n /**\n * Value of the selected radio button. The DOM API casts this to a string.\n */\n value: PropTypes.any\n} : void 0;\nexport default RadioGroup;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getFormControlLabelUtilityClasses(slot) {\n return generateUtilityClass('MuiFormControlLabel', slot);\n}\nconst formControlLabelClasses = generateUtilityClasses('MuiFormControlLabel', ['root', 'labelPlacementStart', 'labelPlacementTop', 'labelPlacementBottom', 'disabled', 'label', 'error', 'required', 'asterisk']);\nexport default formControlLabelClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport refType from '@mui/utils/refType';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { useFormControl } from \"../FormControl/index.js\";\nimport { styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport Typography from \"../Typography/index.js\";\nimport capitalize from \"../utils/capitalize.js\";\nimport formControlLabelClasses, { getFormControlLabelUtilityClasses } from \"./formControlLabelClasses.js\";\nimport formControlState from \"../FormControl/formControlState.js\";\nimport useSlot from \"../utils/useSlot.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n disabled,\n labelPlacement,\n error,\n required\n } = ownerState;\n const slots = {\n root: ['root', disabled && 'disabled', `labelPlacement${capitalize(labelPlacement)}`, error && 'error', required && 'required'],\n label: ['label', disabled && 'disabled'],\n asterisk: ['asterisk', error && 'error']\n };\n return composeClasses(slots, getFormControlLabelUtilityClasses, classes);\n};\nexport const FormControlLabelRoot = styled('label', {\n name: 'MuiFormControlLabel',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [{\n [`& .${formControlLabelClasses.label}`]: styles.label\n }, styles.root, styles[`labelPlacement${capitalize(ownerState.labelPlacement)}`]];\n }\n})(memoTheme(({\n theme\n}) => ({\n display: 'inline-flex',\n alignItems: 'center',\n cursor: 'pointer',\n // For correct alignment with the text.\n verticalAlign: 'middle',\n WebkitTapHighlightColor: 'transparent',\n marginLeft: -11,\n marginRight: 16,\n // used for row presentation of radio/checkbox\n [`&.${formControlLabelClasses.disabled}`]: {\n cursor: 'default'\n },\n [`& .${formControlLabelClasses.label}`]: {\n [`&.${formControlLabelClasses.disabled}`]: {\n color: (theme.vars || theme).palette.text.disabled\n }\n },\n variants: [{\n props: {\n labelPlacement: 'start'\n },\n style: {\n flexDirection: 'row-reverse',\n marginRight: -11\n }\n }, {\n props: {\n labelPlacement: 'top'\n },\n style: {\n flexDirection: 'column-reverse'\n }\n }, {\n props: {\n labelPlacement: 'bottom'\n },\n style: {\n flexDirection: 'column'\n }\n }, {\n props: ({\n labelPlacement\n }) => labelPlacement === 'start' || labelPlacement === 'top' || labelPlacement === 'bottom',\n style: {\n marginLeft: 16 // used for row presentation of radio/checkbox\n }\n }]\n})));\nconst AsteriskComponent = styled('span', {\n name: 'MuiFormControlLabel',\n slot: 'Asterisk',\n overridesResolver: (props, styles) => styles.asterisk\n})(memoTheme(({\n theme\n}) => ({\n [`&.${formControlLabelClasses.error}`]: {\n color: (theme.vars || theme).palette.error.main\n }\n})));\n\n/**\n * Drop-in replacement of the `Radio`, `Switch` and `Checkbox` component.\n * Use this component if you want to display an extra label.\n */\nconst FormControlLabel = /*#__PURE__*/React.forwardRef(function FormControlLabel(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiFormControlLabel'\n });\n const {\n checked,\n className,\n componentsProps = {},\n control,\n disabled: disabledProp,\n disableTypography,\n inputRef,\n label: labelProp,\n labelPlacement = 'end',\n name,\n onChange,\n required: requiredProp,\n slots = {},\n slotProps = {},\n value,\n ...other\n } = props;\n const muiFormControl = useFormControl();\n const disabled = disabledProp ?? control.props.disabled ?? muiFormControl?.disabled;\n const required = requiredProp ?? control.props.required;\n const controlProps = {\n disabled,\n required\n };\n ['checked', 'name', 'onChange', 'value', 'inputRef'].forEach(key => {\n if (typeof control.props[key] === 'undefined' && typeof props[key] !== 'undefined') {\n controlProps[key] = props[key];\n }\n });\n const fcs = formControlState({\n props,\n muiFormControl,\n states: ['error']\n });\n const ownerState = {\n ...props,\n disabled,\n labelPlacement,\n required,\n error: fcs.error\n };\n const classes = useUtilityClasses(ownerState);\n const externalForwardedProps = {\n slots,\n slotProps: {\n ...componentsProps,\n ...slotProps\n }\n };\n const [TypographySlot, typographySlotProps] = useSlot('typography', {\n elementType: Typography,\n externalForwardedProps,\n ownerState\n });\n let label = labelProp;\n if (label != null && label.type !== Typography && !disableTypography) {\n label = /*#__PURE__*/_jsx(TypographySlot, {\n component: \"span\",\n ...typographySlotProps,\n className: clsx(classes.label, typographySlotProps?.className),\n children: label\n });\n }\n return /*#__PURE__*/_jsxs(FormControlLabelRoot, {\n className: clsx(classes.root, className),\n ownerState: ownerState,\n ref: ref,\n ...other,\n children: [/*#__PURE__*/React.cloneElement(control, controlProps), required ? /*#__PURE__*/_jsxs(\"div\", {\n children: [label, /*#__PURE__*/_jsxs(AsteriskComponent, {\n ownerState: ownerState,\n \"aria-hidden\": true,\n className: classes.asterisk,\n children: [\"\\u2009\", '*']\n })]\n }) : label]\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? FormControlLabel.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * If `true`, the component appears selected.\n */\n checked: PropTypes.bool,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The props used for each slot inside.\n * @default {}\n * @deprecated use the `slotProps` prop instead. This prop will be removed in v7. See [Migrating from deprecated APIs](https://mui.com/material-ui/migration/migrating-from-deprecated-apis/) for more details.\n */\n componentsProps: PropTypes.shape({\n typography: PropTypes.object\n }),\n /**\n * A control element. For instance, it can be a `Radio`, a `Switch` or a `Checkbox`.\n */\n control: PropTypes.element.isRequired,\n /**\n * If `true`, the control is disabled.\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, the label is rendered as it is passed without an additional typography node.\n */\n disableTypography: PropTypes.bool,\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n /**\n * A text or an element to be used in an enclosing label element.\n */\n label: PropTypes.node,\n /**\n * The position of the label.\n * @default 'end'\n */\n labelPlacement: PropTypes.oneOf(['bottom', 'end', 'start', 'top']),\n /**\n * @ignore\n */\n name: PropTypes.string,\n /**\n * Callback fired when the state is changed.\n *\n * @param {React.SyntheticEvent} event The event source of the callback.\n * You can pull out the new checked state by accessing `event.target.checked` (boolean).\n */\n onChange: PropTypes.func,\n /**\n * If `true`, the label will indicate that the `input` is required.\n */\n required: PropTypes.bool,\n /**\n * The props used for each slot inside.\n * @default {}\n */\n slotProps: PropTypes.shape({\n typography: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The components used for each slot inside.\n * @default {}\n */\n slots: PropTypes.shape({\n typography: PropTypes.elementType\n }),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The value of the component.\n */\n value: PropTypes.any\n} : void 0;\nexport default FormControlLabel;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getSwitchBaseUtilityClass(slot) {\n return generateUtilityClass('PrivateSwitchBase', slot);\n}\nconst switchBaseClasses = generateUtilityClasses('PrivateSwitchBase', ['root', 'checked', 'disabled', 'input', 'edgeStart', 'edgeEnd']);\nexport default switchBaseClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport refType from '@mui/utils/refType';\nimport composeClasses from '@mui/utils/composeClasses';\nimport capitalize from \"../utils/capitalize.js\";\nimport rootShouldForwardProp from \"../styles/rootShouldForwardProp.js\";\nimport { styled } from \"../zero-styled/index.js\";\nimport useControlled from \"../utils/useControlled.js\";\nimport useFormControl from \"../FormControl/useFormControl.js\";\nimport ButtonBase from \"../ButtonBase/index.js\";\nimport { getSwitchBaseUtilityClass } from \"./switchBaseClasses.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n checked,\n disabled,\n edge\n } = ownerState;\n const slots = {\n root: ['root', checked && 'checked', disabled && 'disabled', edge && `edge${capitalize(edge)}`],\n input: ['input']\n };\n return composeClasses(slots, getSwitchBaseUtilityClass, classes);\n};\nconst SwitchBaseRoot = styled(ButtonBase)({\n padding: 9,\n borderRadius: '50%',\n variants: [{\n props: {\n edge: 'start',\n size: 'small'\n },\n style: {\n marginLeft: -3\n }\n }, {\n props: ({\n edge,\n ownerState\n }) => edge === 'start' && ownerState.size !== 'small',\n style: {\n marginLeft: -12\n }\n }, {\n props: {\n edge: 'end',\n size: 'small'\n },\n style: {\n marginRight: -3\n }\n }, {\n props: ({\n edge,\n ownerState\n }) => edge === 'end' && ownerState.size !== 'small',\n style: {\n marginRight: -12\n }\n }]\n});\nconst SwitchBaseInput = styled('input', {\n shouldForwardProp: rootShouldForwardProp\n})({\n cursor: 'inherit',\n position: 'absolute',\n opacity: 0,\n width: '100%',\n height: '100%',\n top: 0,\n left: 0,\n margin: 0,\n padding: 0,\n zIndex: 1\n});\n\n/**\n * @ignore - internal component.\n */\nconst SwitchBase = /*#__PURE__*/React.forwardRef(function SwitchBase(props, ref) {\n const {\n autoFocus,\n checked: checkedProp,\n checkedIcon,\n className,\n defaultChecked,\n disabled: disabledProp,\n disableFocusRipple = false,\n edge = false,\n icon,\n id,\n inputProps,\n inputRef,\n name,\n onBlur,\n onChange,\n onFocus,\n readOnly,\n required = false,\n tabIndex,\n type,\n value,\n ...other\n } = props;\n const [checked, setCheckedState] = useControlled({\n controlled: checkedProp,\n default: Boolean(defaultChecked),\n name: 'SwitchBase',\n state: 'checked'\n });\n const muiFormControl = useFormControl();\n const handleFocus = event => {\n if (onFocus) {\n onFocus(event);\n }\n if (muiFormControl && muiFormControl.onFocus) {\n muiFormControl.onFocus(event);\n }\n };\n const handleBlur = event => {\n if (onBlur) {\n onBlur(event);\n }\n if (muiFormControl && muiFormControl.onBlur) {\n muiFormControl.onBlur(event);\n }\n };\n const handleInputChange = event => {\n // Workaround for https://github.com/facebook/react/issues/9023\n if (event.nativeEvent.defaultPrevented) {\n return;\n }\n const newChecked = event.target.checked;\n setCheckedState(newChecked);\n if (onChange) {\n // TODO v6: remove the second argument.\n onChange(event, newChecked);\n }\n };\n let disabled = disabledProp;\n if (muiFormControl) {\n if (typeof disabled === 'undefined') {\n disabled = muiFormControl.disabled;\n }\n }\n const hasLabelFor = type === 'checkbox' || type === 'radio';\n const ownerState = {\n ...props,\n checked,\n disabled,\n disableFocusRipple,\n edge\n };\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsxs(SwitchBaseRoot, {\n component: \"span\",\n className: clsx(classes.root, className),\n centerRipple: true,\n focusRipple: !disableFocusRipple,\n disabled: disabled,\n tabIndex: null,\n role: undefined,\n onFocus: handleFocus,\n onBlur: handleBlur,\n ownerState: ownerState,\n ref: ref,\n ...other,\n children: [/*#__PURE__*/_jsx(SwitchBaseInput, {\n autoFocus: autoFocus,\n checked: checkedProp,\n defaultChecked: defaultChecked,\n className: classes.input,\n disabled: disabled,\n id: hasLabelFor ? id : undefined,\n name: name,\n onChange: handleInputChange,\n readOnly: readOnly,\n ref: inputRef,\n required: required,\n ownerState: ownerState,\n tabIndex: tabIndex,\n type: type,\n ...(type === 'checkbox' && value === undefined ? {} : {\n value\n }),\n ...inputProps\n }), checked ? checkedIcon : icon]\n });\n});\n\n// NB: If changed, please update Checkbox, Switch and Radio\n// so that the API documentation is updated.\nprocess.env.NODE_ENV !== \"production\" ? SwitchBase.propTypes = {\n /**\n * If `true`, the `input` element is focused during the first mount.\n */\n autoFocus: PropTypes.bool,\n /**\n * If `true`, the component is checked.\n */\n checked: PropTypes.bool,\n /**\n * The icon to display when the component is checked.\n */\n checkedIcon: PropTypes.node.isRequired,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * @ignore\n */\n defaultChecked: PropTypes.bool,\n /**\n * If `true`, the component is disabled.\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, the keyboard focus ripple is disabled.\n * @default false\n */\n disableFocusRipple: PropTypes.bool,\n /**\n * If given, uses a negative margin to counteract the padding on one\n * side (this is often helpful for aligning the left or right\n * side of the icon with content above or below, without ruining the border\n * size and shape).\n * @default false\n */\n edge: PropTypes.oneOf(['end', 'start', false]),\n /**\n * The icon to display when the component is unchecked.\n */\n icon: PropTypes.node.isRequired,\n /**\n * The id of the `input` element.\n */\n id: PropTypes.string,\n /**\n * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n */\n inputProps: PropTypes.object,\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n /*\n * @ignore\n */\n name: PropTypes.string,\n /**\n * @ignore\n */\n onBlur: PropTypes.func,\n /**\n * Callback fired when the state is changed.\n *\n * @param {object} event The event source of the callback.\n * You can pull out the new checked state by accessing `event.target.checked` (boolean).\n */\n onChange: PropTypes.func,\n /**\n * @ignore\n */\n onFocus: PropTypes.func,\n /**\n * It prevents the user from changing the value of the field\n * (not from interacting with the field).\n */\n readOnly: PropTypes.bool,\n /**\n * If `true`, the `input` element is required.\n */\n required: PropTypes.bool,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.object,\n /**\n * @ignore\n */\n tabIndex: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * The input component prop `type`.\n */\n type: PropTypes.string.isRequired,\n /**\n * The value of the component.\n */\n value: PropTypes.any\n} : void 0;\nexport default SwitchBase;","'use client';\n\nimport * as React from 'react';\nimport createSvgIcon from \"../../utils/createSvgIcon.js\";\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"\n}), 'RadioButtonUnchecked');","'use client';\n\nimport * as React from 'react';\nimport createSvgIcon from \"../../utils/createSvgIcon.js\";\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M8.465 8.465C9.37 7.56 10.62 7 12 7C14.76 7 17 9.24 17 12C17 13.38 16.44 14.63 15.535 15.535C14.63 16.44 13.38 17 12 17C9.24 17 7 14.76 7 12C7 10.62 7.56 9.37 8.465 8.465Z\"\n}), 'RadioButtonChecked');","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport RadioButtonUncheckedIcon from \"../internal/svg-icons/RadioButtonUnchecked.js\";\nimport RadioButtonCheckedIcon from \"../internal/svg-icons/RadioButtonChecked.js\";\nimport rootShouldForwardProp from \"../styles/rootShouldForwardProp.js\";\nimport { styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst RadioButtonIconRoot = styled('span', {\n shouldForwardProp: rootShouldForwardProp\n})({\n position: 'relative',\n display: 'flex'\n});\nconst RadioButtonIconBackground = styled(RadioButtonUncheckedIcon)({\n // Scale applied to prevent dot misalignment in Safari\n transform: 'scale(1)'\n});\nconst RadioButtonIconDot = styled(RadioButtonCheckedIcon)(memoTheme(({\n theme\n}) => ({\n left: 0,\n position: 'absolute',\n transform: 'scale(0)',\n transition: theme.transitions.create('transform', {\n easing: theme.transitions.easing.easeIn,\n duration: theme.transitions.duration.shortest\n }),\n variants: [{\n props: {\n checked: true\n },\n style: {\n transform: 'scale(1)',\n transition: theme.transitions.create('transform', {\n easing: theme.transitions.easing.easeOut,\n duration: theme.transitions.duration.shortest\n })\n }\n }]\n})));\n\n/**\n * @ignore - internal component.\n */\nfunction RadioButtonIcon(props) {\n const {\n checked = false,\n classes = {},\n fontSize\n } = props;\n const ownerState = {\n ...props,\n checked\n };\n return /*#__PURE__*/_jsxs(RadioButtonIconRoot, {\n className: classes.root,\n ownerState: ownerState,\n children: [/*#__PURE__*/_jsx(RadioButtonIconBackground, {\n fontSize: fontSize,\n className: classes.background,\n ownerState: ownerState\n }), /*#__PURE__*/_jsx(RadioButtonIconDot, {\n fontSize: fontSize,\n className: classes.dot,\n ownerState: ownerState\n })]\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? RadioButtonIcon.propTypes /* remove-proptypes */ = {\n /**\n * If `true`, the component is checked.\n */\n checked: PropTypes.bool,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * The size of the component.\n * `small` is equivalent to the dense radio styling.\n */\n fontSize: PropTypes.oneOf(['small', 'medium'])\n} : void 0;\nexport default RadioButtonIcon;","import createChainedFunction from '@mui/utils/createChainedFunction';\nexport default createChainedFunction;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getRadioUtilityClass(slot) {\n return generateUtilityClass('MuiRadio', slot);\n}\nconst radioClasses = generateUtilityClasses('MuiRadio', ['root', 'checked', 'disabled', 'colorPrimary', 'colorSecondary', 'sizeSmall']);\nexport default radioClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport refType from '@mui/utils/refType';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { alpha } from '@mui/system/colorManipulator';\nimport SwitchBase from \"../internal/SwitchBase.js\";\nimport RadioButtonIcon from \"./RadioButtonIcon.js\";\nimport capitalize from \"../utils/capitalize.js\";\nimport createChainedFunction from \"../utils/createChainedFunction.js\";\nimport useFormControl from \"../FormControl/useFormControl.js\";\nimport useRadioGroup from \"../RadioGroup/useRadioGroup.js\";\nimport radioClasses, { getRadioUtilityClass } from \"./radioClasses.js\";\nimport rootShouldForwardProp from \"../styles/rootShouldForwardProp.js\";\nimport { styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport createSimplePaletteValueFilter from \"../utils/createSimplePaletteValueFilter.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n color,\n size\n } = ownerState;\n const slots = {\n root: ['root', `color${capitalize(color)}`, size !== 'medium' && `size${capitalize(size)}`]\n };\n return {\n ...classes,\n ...composeClasses(slots, getRadioUtilityClass, classes)\n };\n};\nconst RadioRoot = styled(SwitchBase, {\n shouldForwardProp: prop => rootShouldForwardProp(prop) || prop === 'classes',\n name: 'MuiRadio',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.size !== 'medium' && styles[`size${capitalize(ownerState.size)}`], styles[`color${capitalize(ownerState.color)}`]];\n }\n})(memoTheme(({\n theme\n}) => ({\n color: (theme.vars || theme).palette.text.secondary,\n [`&.${radioClasses.disabled}`]: {\n color: (theme.vars || theme).palette.action.disabled\n },\n variants: [{\n props: {\n color: 'default',\n disabled: false,\n disableRipple: false\n },\n style: {\n '&:hover': {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.action.activeChannel} / ${theme.vars.palette.action.hoverOpacity})` : alpha(theme.palette.action.active, theme.palette.action.hoverOpacity)\n }\n }\n }, ...Object.entries(theme.palette).filter(createSimplePaletteValueFilter()).map(([color]) => ({\n props: {\n color,\n disabled: false,\n disableRipple: false\n },\n style: {\n '&:hover': {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette[color].mainChannel} / ${theme.vars.palette.action.hoverOpacity})` : alpha(theme.palette[color].main, theme.palette.action.hoverOpacity)\n }\n }\n })), ...Object.entries(theme.palette).filter(createSimplePaletteValueFilter()).map(([color]) => ({\n props: {\n color,\n disabled: false\n },\n style: {\n [`&.${radioClasses.checked}`]: {\n color: (theme.vars || theme).palette[color].main\n }\n }\n })), {\n // Should be last to override other colors\n props: {\n disableRipple: false\n },\n style: {\n // Reset on touch devices, it doesn't add specificity\n '&:hover': {\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n }\n }\n }]\n})));\nfunction areEqualValues(a, b) {\n if (typeof b === 'object' && b !== null) {\n return a === b;\n }\n\n // The value could be a number, the DOM will stringify it anyway.\n return String(a) === String(b);\n}\nconst defaultCheckedIcon = /*#__PURE__*/_jsx(RadioButtonIcon, {\n checked: true\n});\nconst defaultIcon = /*#__PURE__*/_jsx(RadioButtonIcon, {});\nconst Radio = /*#__PURE__*/React.forwardRef(function Radio(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiRadio'\n });\n const {\n checked: checkedProp,\n checkedIcon = defaultCheckedIcon,\n color = 'primary',\n icon = defaultIcon,\n name: nameProp,\n onChange: onChangeProp,\n size = 'medium',\n className,\n disabled: disabledProp,\n disableRipple = false,\n ...other\n } = props;\n const muiFormControl = useFormControl();\n let disabled = disabledProp;\n if (muiFormControl) {\n if (typeof disabled === 'undefined') {\n disabled = muiFormControl.disabled;\n }\n }\n disabled ??= false;\n const ownerState = {\n ...props,\n disabled,\n disableRipple,\n color,\n size\n };\n const classes = useUtilityClasses(ownerState);\n const radioGroup = useRadioGroup();\n let checked = checkedProp;\n const onChange = createChainedFunction(onChangeProp, radioGroup && radioGroup.onChange);\n let name = nameProp;\n if (radioGroup) {\n if (typeof checked === 'undefined') {\n checked = areEqualValues(radioGroup.value, props.value);\n }\n if (typeof name === 'undefined') {\n name = radioGroup.name;\n }\n }\n return /*#__PURE__*/_jsx(RadioRoot, {\n type: \"radio\",\n icon: /*#__PURE__*/React.cloneElement(icon, {\n fontSize: defaultIcon.props.fontSize ?? size\n }),\n checkedIcon: /*#__PURE__*/React.cloneElement(checkedIcon, {\n fontSize: defaultCheckedIcon.props.fontSize ?? size\n }),\n disabled: disabled,\n ownerState: ownerState,\n classes: classes,\n name: name,\n checked: checked,\n onChange: onChange,\n ref: ref,\n className: clsx(classes.root, className),\n ...other\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Radio.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * If `true`, the component is checked.\n */\n checked: PropTypes.bool,\n /**\n * The icon to display when the component is checked.\n * @default \n */\n checkedIcon: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).\n * @default 'primary'\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['default', 'primary', 'secondary', 'error', 'info', 'success', 'warning']), PropTypes.string]),\n /**\n * If `true`, the component is disabled.\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, the ripple effect is disabled.\n * @default false\n */\n disableRipple: PropTypes.bool,\n /**\n * The icon to display when the component is unchecked.\n * @default \n */\n icon: PropTypes.node,\n /**\n * The id of the `input` element.\n */\n id: PropTypes.string,\n /**\n * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n */\n inputProps: PropTypes.object,\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n /**\n * Name attribute of the `input` element.\n */\n name: PropTypes.string,\n /**\n * Callback fired when the state is changed.\n *\n * @param {React.ChangeEvent} event The event source of the callback.\n * You can pull out the new value by accessing `event.target.value` (string).\n * You can pull out the new checked state by accessing `event.target.checked` (boolean).\n */\n onChange: PropTypes.func,\n /**\n * If `true`, the `input` element is required.\n * @default false\n */\n required: PropTypes.bool,\n /**\n * The size of the component.\n * `small` is equivalent to the dense radio styling.\n * @default 'medium'\n */\n size: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['medium', 'small']), PropTypes.string]),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The value of the component. The DOM API casts this to a string.\n */\n value: PropTypes.any\n} : void 0;\nexport default Radio;","'use client';\n\nimport * as React from 'react';\nimport RadioGroupContext from \"./RadioGroupContext.js\";\nexport default function useRadioGroup() {\n return React.useContext(RadioGroupContext);\n}","\"use client\";\n\nimport createSvgIcon from './utils/createSvgIcon';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"m12 8-6 6 1.41 1.41L12 10.83l4.59 4.58L18 14z\"\n}), 'ExpandLess');","\"use client\";\n\nimport createSvgIcon from './utils/createSvgIcon';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2m0 16H8V7h11z\"\n}), 'ContentCopy');","\"use client\";\n\nimport createSvgIcon from './utils/createSvgIcon';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6zM19 4h-3.5l-1-1h-5l-1 1H5v2h14z\"\n}), 'Delete');","\"use client\";\n\nimport createSvgIcon from './utils/createSvgIcon';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6z\"\n}), 'Add');","\"use client\";\n\nimport createSvgIcon from './utils/createSvgIcon';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M11 18c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2m-2-8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2m0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2m6 4c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2m0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2m0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2\"\n}), 'DragIndicator');","\"use client\";\n\nimport createSvgIcon from './utils/createSvgIcon';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"m10 17 5-5-5-5z\"\n}), 'ArrowRight');","import React, { useState, useCallback, useEffect } from 'react';\nimport { Box, Button, Typography, Paper, IconButton, TextField } from '@mui/material';\nimport DeleteIcon from '@mui/icons-material/Delete';\nimport DragIndicatorIcon from '@mui/icons-material/DragIndicator';\nimport ArrowRightIcon from '@mui/icons-material/ArrowRight';\n\nconst FunctionBuilder = ({ \n initialExpression = '', \n onChange,\n availableIndicators\n}) => {\n const [stack, setStack] = useState([]);\n const [expression, setExpression] = useState(initialExpression);\n\n const functions = [\n { name: 'max', minParams: 2, maxParams: null },\n { name: 'min', minParams: 2, maxParams: null },\n { name: 'mean', minParams: 2, maxParams: null },\n { name: 'add', minParams: 2, maxParams: null },\n { name: 'subtract', minParams: 2, maxParams: 2 },\n { name: 'multiply', minParams: 2, maxParams: null },\n { name: 'divide', minParams: 2, maxParams: 2 }\n ];\n\n const generateExpression = useCallback((currentStack) => {\n let expr = '';\n let lastFunction = null;\n \n currentStack.forEach((item, index) => {\n if (item.type === 'function') {\n expr = `${item.name}(${expr}${expr ? ', ' : ''}`\n lastFunction = item;\n } else if (item.type === 'indicator') {\n const params = Object.entries(item.params)\n .map(([_, value]) => value)\n .filter(value => value !== '')\n .join(',');\n \n expr += `${item.name}(${params})`;\n \n if (lastFunction && index < currentStack.length - 1) {\n expr += ', ';\n }\n }\n });\n \n // Close any open function parentheses\n let depth = currentStack.filter(item => item.type === 'function').length;\n expr += ')'.repeat(depth);\n\n return expr;\n }, []);\n\n useEffect(() => {\n const newExpression = generateExpression(stack);\n if (newExpression !== expression) {\n setExpression(newExpression);\n onChange(newExpression);\n }\n }, [stack, generateExpression, onChange, expression]);\n\n const addFunction = useCallback((func) => {\n setStack(prevStack => [...prevStack, { \n type: 'function', \n name: func.name,\n params: [],\n minParams: func.minParams,\n maxParams: func.maxParams\n }]);\n }, []);\n\n const addIndicator = useCallback((indicator) => {\n setStack(prevStack => [...prevStack, { \n type: 'indicator',\n name: indicator.name,\n params: indicator.params.reduce((acc, param) => ({\n ...acc,\n [param]: param === 'series' ? 'Close' : ''\n }), {})\n }]);\n }, []);\n\n const updateIndicatorParam = useCallback((index, param, value) => {\n setStack(prevStack => {\n const newStack = [...prevStack];\n if (!newStack[index].params) {\n newStack[index].params = {};\n }\n newStack[index].params[param] = value;\n return newStack;\n });\n }, []);\n\n const removeItem = useCallback((index) => {\n setStack(prevStack => prevStack.filter((_, i) => i !== index));\n }, []);\n\n return (\n \n {/* Functions Section */}\n \n \n Functions\n \n \n {functions.map((func) => (\n addFunction(func)}\n variant=\"outlined\"\n size=\"small\"\n sx={{\n textTransform: 'none',\n backgroundColor: 'primary.50',\n borderColor: 'primary.200',\n color: 'primary.700',\n '&:hover': {\n backgroundColor: 'primary.100',\n borderColor: 'primary.300',\n }\n }}\n >\n {func.name}()\n \n ))}\n \n \n\n {/* Indicators Section */}\n \n \n Indicators\n \n \n {availableIndicators.map((indicator) => (\n addIndicator(indicator)}\n variant=\"outlined\"\n size=\"small\"\n sx={{\n textTransform: 'none',\n backgroundColor: 'success.50',\n borderColor: 'success.200',\n color: 'success.700',\n '&:hover': {\n backgroundColor: 'success.100',\n borderColor: 'success.300',\n }\n }}\n >\n {indicator.name}\n \n ))}\n \n \n\n {/* Expression Stack */}\n \n {stack.map((item, index) => (\n \n \n \n \n \n {item.name}\n \n \n {item.type === 'indicator' && item.params && (\n \n {Object.entries(item.params).map(([param, value]) => (\n updateIndicatorParam(index, param, e.target.value)}\n sx={{ width: '120px' }}\n />\n ))}\n \n )}\n \n\n removeItem(index)}\n sx={{ color: 'error.main' }}\n >\n \n \n\n {index < stack.length - 1 && (\n \n )}\n
\n ))}\n \n\n {/* Expression Preview */}\n \n \n Generated Expression\n \n \n {expression}\n \n \n \n );\n};\n\nexport default FunctionBuilder;\n\n\n\n\n\n\n","import React from 'react';\nimport {\n Box,\n Grid,\n TextField,\n FormControl,\n InputLabel,\n Select,\n MenuItem,\n IconButton,\n RadioGroup,\n FormControlLabel,\n Radio,\n Typography,\n Paper,\n} from '@mui/material';\nimport { Delete as DeleteIcon } from '@mui/icons-material';\nimport FunctionBuilder from './FunctionBuilder';\n\n// In RuleComponent.js, modify the IndicatorSection component:\n\nconst IndicatorSection = ({\n side,\n indicator,\n updateRule,\n updateIndicatorParam,\n strategyIndex,\n ruleIndex,\n ruleType,\n indicators,\n onIndicatorSelect\n}) => {\n const handleTypeChange = (type) => {\n updateRule(\n strategyIndex,\n ruleIndex,\n ruleType,\n `${side}IndicatorType`,\n type\n );\n\n // Reset appropriate fields based on type\n if (type === 'simple') {\n updateRule(\n strategyIndex,\n ruleIndex,\n ruleType,\n `${side}IndicatorExpression`,\n ''\n );\n } else {\n updateRule(\n strategyIndex,\n ruleIndex,\n ruleType,\n `${side}IndicatorName`,\n ''\n );\n }\n\n // Always ensure useRightIndicator is true when on right side\n if (side === 'right') {\n updateRule(\n strategyIndex,\n ruleIndex,\n ruleType,\n 'useRightIndicator',\n true\n );\n }\n };\n\n return (\n \n \n {side.charAt(0).toUpperCase() + side.slice(1)} Side\n \n \n {/* Indicator Type Toggle */}\n handleTypeChange(e.target.value)}\n >\n } \n label=\"Simple\" \n />\n } \n label=\"Composite\" \n />\n \n\n {indicator?.type === 'simple' ? (\n <>\n \n Indicator\n \n updateRule(\n strategyIndex,\n ruleIndex,\n ruleType,\n `${side}IndicatorName`,\n e.target.value\n )\n )}\n >\n {indicators.map((ind) => (\n \n {ind.name}\n \n ))}\n \n \n\n {indicator?.name && indicators\n .find((i) => i.name === indicator.name)\n ?.params.map((param) => (\n \n updateIndicatorParam(\n strategyIndex,\n ruleIndex,\n ruleType,\n side,\n param,\n e.target.value\n )\n }\n variant=\"outlined\"\n fullWidth\n sx={{ mt: 1 }}\n />\n ))}\n \n ) : (\n \n \n updateRule(\n strategyIndex,\n ruleIndex,\n ruleType,\n `${side}IndicatorExpression`,\n expression\n )\n }\n availableIndicators={indicators}\n />\n \n )}\n \n );\n};\n\nconst RuleComponent = ({\n rule,\n ruleIndex,\n strategyIndex,\n ruleType,\n updateRule,\n updateIndicatorParam,\n removeRule,\n indicators,\n}) => {\n // Handler for when right indicator is updated\n const handleRightIndicatorUpdate = (e) => {\n const indicatorName = e.target.value;\n updateRule(\n strategyIndex,\n ruleIndex,\n ruleType,\n 'rightIndicatorName',\n indicatorName\n );\n \n updateRule(\n strategyIndex,\n ruleIndex,\n ruleType,\n 'useRightIndicator',\n true\n );\n\n const selectedIndicator = indicators.find(i => i.name === indicatorName);\n if (selectedIndicator?.params.includes('series')) {\n updateIndicatorParam(\n strategyIndex,\n ruleIndex,\n ruleType,\n 'right',\n 'series',\n 'Close'\n );\n }\n };\n\n return (\n \n \n {/* Logical Operator (for rules after the first one) */}\n {ruleIndex > 0 && (\n \n \n Logic\n \n updateRule(\n strategyIndex,\n ruleIndex,\n ruleType,\n 'logicalOperator',\n e.target.value\n )\n }\n >\n AND\n OR\n \n \n \n )}\n\n \n \n \n {/* Left Side */}\n \n \n \n\n {/* Operator */}\n \n \n \n Operator\n \n updateRule(\n strategyIndex,\n ruleIndex,\n ruleType,\n 'operator',\n e.target.value\n )\n }\n >\n {['<', '<=', '>', '>=', '==', '!='].map((op) => (\n \n {op}\n \n ))}\n \n \n \n \n\n {/* Right Side */}\n \n \n \n \n\n {/* Delete Button */}\n \n removeRule(strategyIndex, ruleIndex, ruleType)}\n color=\"error\"\n size=\"small\"\n >\n \n \n \n \n \n \n \n );\n};\n\nexport default RuleComponent;","import React, { useState } from 'react';\nimport {\n Box,\n Typography,\n Divider,\n TextField,\n FormControl,\n InputLabel,\n Select,\n MenuItem,\n Button,\n IconButton,\n Paper,\n Collapse,\n Chip,\n} from '@mui/material';\nimport { Add as AddIcon, ExpandMore as ExpandMoreIcon, ExpandLess as ExpandLessIcon } from '@mui/icons-material';\nimport RuleComponent from './RuleComponent';\n\nconst RegimeFilter = ({\n strategy,\n strategyIndex,\n updateStrategy,\n updateRule,\n updateIndicatorParam,\n removeRule,\n addRule,\n INDICATORS\n}) => {\n const [expanded, setExpanded] = useState(false);\n const addEntryRegimeRule = () => addRule(strategyIndex, 'entryRegimeRules');\n const addExitRegimeRule = () => addRule(strategyIndex, 'exitRegimeRules');\n \n // Format rule into readable string\n const formatRule = (rule) => {\n const leftPart = rule.leftIndicator.type === 'simple' \n ? rule.leftIndicator.name\n : 'Custom';\n \n const rightPart = rule.useRightIndicator \n ? (rule.rightIndicator.type === 'simple' \n ? `${rule.rightIndicator.name}(${rule.rightIndicator.params?.window || ''})`\n : 'Custom')\n : rule.rightValue;\n \n return `${leftPart} ${rule.operator} ${rightPart}`;\n };\n \n // Helper function to display rules in summary\n const getRulesSummary = (rules, type) => {\n if (!rules || rules.length === 0) return null;\n \n return (\n \n {rules.map((rule, index) => (\n \n ))}\n \n );\n };\n \n // Helper function to summarize regime rules\n const getRegimeSummary = () => {\n const hasRegimeFilter = strategy.regimeAsset || \n strategy.regimeEntryAction || \n strategy.regimeExitAction;\n \n if (!hasRegimeFilter) {\n return null;\n }\n \n return (\n \n {strategy.regimeAsset && (\n \n \n Asset:\n \n \n \n )}\n \n {strategy.regimeEntryAction && (\n \n \n \n Entry Control:\n \n \n \n ({strategy.entryRegimeRules?.length || 0} {strategy.entryRegimeRules?.length === 1 ? 'rule' : 'rules'})\n \n \n {getRulesSummary(strategy.entryRegimeRules, 'entry')}\n \n )}\n \n {strategy.regimeExitAction && (\n \n \n \n Exit Control:\n \n \n \n ({strategy.exitRegimeRules?.length || 0} {strategy.exitRegimeRules?.length === 1 ? 'rule' : 'rules'})\n \n \n {getRulesSummary(strategy.exitRegimeRules, 'exit')}\n \n )}\n \n );\n };\n \n return (\n \n \n \n Regime Filter\n \n setExpanded(!expanded)} size=\"small\">\n {expanded ? : }\n \n \n \n\n {/* Show summary when collapsed */}\n {!expanded && getRegimeSummary()}\n\n {/* Main content when expanded */}\n \n {/* Regime Filter Asset */}\n updateStrategy(strategyIndex, 'regimeAsset', e.target.value)}\n variant=\"outlined\"\n fullWidth\n sx={{ mb: 3 }}\n helperText=\"Asset to base the regime filter on (e.g., BTC-USD)\"\n />\n\n {/* Entry Regime Rules */}\n \n \n Entry Regime Rules\n \n \n \n When Rules Are True, Allow Only\n updateStrategy(strategyIndex, 'regimeEntryAction', e.target.value || null)}\n >\n No Entry Control\n Long Entries\n Short Entries\n \n \n\n {strategy.regimeEntryAction && (\n <>\n {strategy.entryRegimeRules && strategy.entryRegimeRules.map((rule, ruleIndex) => (\n \n ))}\n\n }\n variant=\"outlined\"\n sx={{ mt: 2 }}\n >\n Add Entry Regime Rule\n \n \n )}\n \n\n {/* Exit Regime Rules */}\n \n \n Exit Regime Rules\n \n \n \n When Rules Are True, Exit All\n updateStrategy(strategyIndex, 'regimeExitAction', e.target.value || null)}\n >\n No Exit Control\n Long Positions\n Short Positions\n \n \n\n {strategy.regimeExitAction && (\n <>\n {strategy.exitRegimeRules && strategy.exitRegimeRules.map((rule, ruleIndex) => (\n \n ))}\n\n }\n variant=\"outlined\"\n sx={{ mt: 2 }}\n >\n Add Exit Regime Rule\n \n \n )}\n \n \n \n );\n};\n\nexport default RegimeFilter;\n","// StrategyBuilder.js\nimport React from 'react';\nimport {\n Typography,\n Box,\n Paper,\n TextField,\n Grid,\n IconButton,\n Button,\n Divider,\n MenuItem,\n FormControl,\n InputLabel,\n Select,\n RadioGroup,\n FormControlLabel,\n Radio,\n InputAdornment,\n Collapse,\n} from '@mui/material';\nimport {\n Delete as DeleteIcon,\n Add as AddIcon,\n ExpandMore as ExpandMoreIcon,\n ExpandLess as ExpandLessIcon,\n ContentCopy as ContentCopyIcon,\n} from '@mui/icons-material';\nimport RuleComponent from './RuleComponent';\nimport RegimeFilter from './RegimeFilter';\n\nconst AVAILABLE_FREQUENCIES = {\n 'Yahoo Finance': ['Daily'],\n 'Binance': ['Daily'], // , '4h', '1h', '30m', '15m', '10m', '5m', '1m'\n};\n\nconst StrategyBuilder = ({\n strategies,\n setStrategies,\n INDICATORS,\n updateStrategy,\n addStrategy,\n deleteStrategy,\n updateRule,\n updateIndicatorParam,\n removeRule,\n addRule,\n toggleStrategyCollapse,\n duplicateStrategy,\n dataSource,\n}) => {\n return (\n \n \n Strategy Builder\n \n \n\n {strategies.map((strategy, strategyIndex) => (\n \n \n \n Strategy {strategyIndex + 1}: {strategy.name}\n \n \n toggleStrategyCollapse(strategyIndex)}\n size=\"small\"\n >\n {strategy.collapsed ? : }\n \n duplicateStrategy(strategyIndex)}\n color=\"primary\"\n size=\"small\"\n >\n \n \n deleteStrategy(strategyIndex)}\n color=\"error\"\n size=\"small\"\n >\n \n \n \n \n\n \n\n {/* Strategy Header and Basic Parameters */}\n \n \n {/* Basic Strategy Parameters */}\n \n {/* First Row - Basic Info */}\n \n \n \n \n updateStrategy(strategyIndex, 'name', e.target.value)\n }\n variant=\"outlined\"\n fullWidth\n size=\"small\"\n />\n \n \n \n Position Type\n \n updateStrategy(\n strategyIndex,\n 'positionType',\n e.target.value\n )\n }\n >\n Long\n Short\n \n \n \n \n \n Data Frequency\n \n updateStrategy(\n strategyIndex,\n 'frequency',\n e.target.value\n )\n }\n >\n {AVAILABLE_FREQUENCIES[dataSource].map((freq) => (\n {freq}\n ))}\n \n \n \n \n \n\n {/* Divider */}\n \n \n \n\n {/* Position Sizing Section */}\n \n \n Position Sizing\n \n \n {/* Method Selection and Allocation */}\n \n \n \n updateStrategy(\n strategyIndex,\n 'allocation',\n parseFloat(e.target.value)\n )\n }\n variant=\"outlined\"\n fullWidth\n size=\"small\"\n InputProps={{\n endAdornment: (\n %\n ),\n }}\n />\n \n \n \n updateStrategy(\n strategyIndex,\n 'position_size_method',\n e.target.value\n )\n }\n >\n }\n label={Fixed Position Size}\n />\n }\n label={Volatility Target Position Sizing}\n />\n \n \n \n\n {/* Fixed Position Size Parameters */}\n {strategy.position_size_method === 'fixed' && (\n \n \n \n \n updateStrategy(\n strategyIndex,\n 'fixed_position_size',\n parseFloat(e.target.value) / 100\n )\n }\n variant=\"outlined\"\n fullWidth\n size=\"small\"\n InputProps={{\n endAdornment: (\n %\n ),\n }}\n />\n \n \n \n )}\n\n {/* Volatility Target Parameters */}\n {strategy.position_size_method === 'volatility_target' && (\n \n \n \n \n updateStrategy(\n strategyIndex,\n 'volatility_target',\n parseFloat(e.target.value)\n )\n }\n variant=\"outlined\"\n fullWidth\n size=\"small\"\n InputProps={{\n endAdornment: (\n %\n ),\n }}\n />\n \n \n \n updateStrategy(\n strategyIndex,\n 'volatility_buffer',\n parseFloat(e.target.value)\n )\n }\n variant=\"outlined\"\n fullWidth\n size=\"small\"\n InputProps={{\n endAdornment: (\n %\n ),\n }}\n />\n \n \n \n updateStrategy(\n strategyIndex,\n 'volatility_lookback',\n parseInt(e.target.value, 10)\n )\n }\n variant=\"outlined\"\n fullWidth\n size=\"small\"\n InputProps={{\n endAdornment: (\n days\n ),\n }}\n />\n \n \n \n updateStrategy(\n strategyIndex,\n 'max_leverage',\n parseFloat(e.target.value)\n )\n }\n variant=\"outlined\"\n fullWidth\n size=\"small\"\n InputProps={{\n endAdornment: (\n x\n ),\n }}\n />\n \n \n \n )}\n \n \n \n \n\n \n\n {/* Entry Rules */}\n \n \n updateStrategy(strategyIndex, 'entryRulesCollapsed', !strategy.entryRulesCollapsed)}\n sx={{ \n display: 'flex', \n justifyContent: 'space-between', \n alignItems: 'center',\n cursor: 'pointer',\n '&:hover': { bgcolor: 'rgba(0, 0, 0, 0.04)' }\n }}\n >\n \n Entry Rules {strategy.entryRules?.length > 0 && `(${strategy.entryRules.length})`}\n \n \n {strategy.entryRulesCollapsed ? : }\n \n \n \n {/* Show summary when collapsed */}\n {strategy.entryRulesCollapsed && strategy.entryRules?.length > 0 && (\n \n {strategy.entryRules.map((rule, idx) => (\n \n {idx > 0 && ` ${rule.logicalOperator.toUpperCase()} `}\n {rule.leftIndicator.type === 'simple' \n ? rule.leftIndicator.name \n : 'Custom Function'} \n {rule.operator} \n {rule.useRightIndicator \n ? (rule.rightIndicator.type === 'simple' \n ? rule.rightIndicator.name \n : 'Custom Function')\n : rule.rightValue}\n \n ))}\n \n )}\n\n \n \n {strategy.entryRules &&\n strategy.entryRules.map((rule, ruleIndex) => (\n \n ))}\n addRule(strategyIndex, 'entryRules')}\n startIcon={}\n variant=\"outlined\"\n sx={{ mt: 2 }}\n >\n Add Entry Rule\n \n \n \n \n \n\n {/* Exit Rules */}\n \n \n updateStrategy(strategyIndex, 'exitRulesCollapsed', !strategy.exitRulesCollapsed)}\n sx={{ \n display: 'flex', \n justifyContent: 'space-between', \n alignItems: 'center',\n cursor: 'pointer',\n '&:hover': { bgcolor: 'rgba(0, 0, 0, 0.04)' }\n }}\n >\n \n Exit Rules {strategy.exitRules?.length > 0 && `(${strategy.exitRules.length})`}\n \n \n {strategy.exitRulesCollapsed ? : }\n \n \n\n {/* Show summary when collapsed */}\n {strategy.exitRulesCollapsed && strategy.exitRules?.length > 0 && (\n \n {strategy.exitRules.map((rule, idx) => (\n \n {idx > 0 && ` ${rule.logicalOperator.toUpperCase()} `}\n {rule.leftIndicator.type === 'simple' \n ? rule.leftIndicator.name \n : 'Custom Function'} \n {rule.operator} \n {rule.useRightIndicator \n ? (rule.rightIndicator.type === 'simple' \n ? rule.rightIndicator.name \n : 'Custom Function')\n : rule.rightValue}\n \n ))}\n \n )}\n\n \n \n {strategy.exitRules &&\n strategy.exitRules.map((rule, ruleIndex) => (\n \n ))}\n addRule(strategyIndex, 'exitRules')}\n startIcon={}\n variant=\"outlined\"\n sx={{ mt: 2 }}\n >\n Add Exit Rule\n \n \n \n \n \n \n \n ))}\n\n }\n >\n Add Strategy\n \n \n );\n};\n\nexport default StrategyBuilder;\n","'use client';\n\nimport * as React from 'react';\nimport createSvgIcon from \"../../utils/createSvgIcon.js\";\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M20 12l-1.41-1.41L13 16.17V4h-2v12.17l-5.58-5.59L4 12l8 8 8-8z\"\n}), 'ArrowDownward');","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getTableSortLabelUtilityClass(slot) {\n return generateUtilityClass('MuiTableSortLabel', slot);\n}\nconst tableSortLabelClasses = generateUtilityClasses('MuiTableSortLabel', ['root', 'active', 'icon', 'iconDirectionDesc', 'iconDirectionAsc', 'directionDesc', 'directionAsc']);\nexport default tableSortLabelClasses;","'use client';\n\nimport composeClasses from '@mui/utils/composeClasses';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport * as React from 'react';\nimport ButtonBase from \"../ButtonBase/index.js\";\nimport ArrowDownwardIcon from \"../internal/svg-icons/ArrowDownward.js\";\nimport { styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport capitalize from \"../utils/capitalize.js\";\nimport tableSortLabelClasses, { getTableSortLabelUtilityClass } from \"./tableSortLabelClasses.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n direction,\n active\n } = ownerState;\n const slots = {\n root: ['root', active && 'active', `direction${capitalize(direction)}`],\n icon: ['icon', `iconDirection${capitalize(direction)}`]\n };\n return composeClasses(slots, getTableSortLabelUtilityClass, classes);\n};\nconst TableSortLabelRoot = styled(ButtonBase, {\n name: 'MuiTableSortLabel',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.active && styles.active];\n }\n})(memoTheme(({\n theme\n}) => ({\n cursor: 'pointer',\n display: 'inline-flex',\n justifyContent: 'flex-start',\n flexDirection: 'inherit',\n alignItems: 'center',\n '&:focus': {\n color: (theme.vars || theme).palette.text.secondary\n },\n '&:hover': {\n color: (theme.vars || theme).palette.text.secondary,\n [`& .${tableSortLabelClasses.icon}`]: {\n opacity: 0.5\n }\n },\n [`&.${tableSortLabelClasses.active}`]: {\n color: (theme.vars || theme).palette.text.primary,\n [`& .${tableSortLabelClasses.icon}`]: {\n opacity: 1,\n color: (theme.vars || theme).palette.text.secondary\n }\n }\n})));\nconst TableSortLabelIcon = styled('span', {\n name: 'MuiTableSortLabel',\n slot: 'Icon',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.icon, styles[`iconDirection${capitalize(ownerState.direction)}`]];\n }\n})(memoTheme(({\n theme\n}) => ({\n fontSize: 18,\n marginRight: 4,\n marginLeft: 4,\n opacity: 0,\n transition: theme.transitions.create(['opacity', 'transform'], {\n duration: theme.transitions.duration.shorter\n }),\n userSelect: 'none',\n variants: [{\n props: {\n direction: 'desc'\n },\n style: {\n transform: 'rotate(0deg)'\n }\n }, {\n props: {\n direction: 'asc'\n },\n style: {\n transform: 'rotate(180deg)'\n }\n }]\n})));\n\n/**\n * A button based label for placing inside `TableCell` for column sorting.\n */\nconst TableSortLabel = /*#__PURE__*/React.forwardRef(function TableSortLabel(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiTableSortLabel'\n });\n const {\n active = false,\n children,\n className,\n direction = 'asc',\n hideSortIcon = false,\n IconComponent = ArrowDownwardIcon,\n ...other\n } = props;\n const ownerState = {\n ...props,\n active,\n direction,\n hideSortIcon,\n IconComponent\n };\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsxs(TableSortLabelRoot, {\n className: clsx(classes.root, className),\n component: \"span\",\n disableRipple: true,\n ownerState: ownerState,\n ref: ref,\n ...other,\n children: [children, hideSortIcon && !active ? null : /*#__PURE__*/_jsx(TableSortLabelIcon, {\n as: IconComponent,\n className: clsx(classes.icon),\n ownerState: ownerState\n })]\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? TableSortLabel.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * If `true`, the label will have the active styling (should be true for the sorted column).\n * @default false\n */\n active: PropTypes.bool,\n /**\n * Label contents, the arrow will be appended automatically.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The current sort direction.\n * @default 'asc'\n */\n direction: PropTypes.oneOf(['asc', 'desc']),\n /**\n * Hide sort icon when active is false.\n * @default false\n */\n hideSortIcon: PropTypes.bool,\n /**\n * Sort icon to use.\n * @default ArrowDownwardIcon\n */\n IconComponent: PropTypes.elementType,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default TableSortLabel;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport Typography from \"../Typography/index.js\";\nimport { styled } from \"../zero-styled/index.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport { getDialogTitleUtilityClass } from \"./dialogTitleClasses.js\";\nimport DialogContext from \"../Dialog/DialogContext.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getDialogTitleUtilityClass, classes);\n};\nconst DialogTitleRoot = styled(Typography, {\n name: 'MuiDialogTitle',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n padding: '16px 24px',\n flex: '0 0 auto'\n});\nconst DialogTitle = /*#__PURE__*/React.forwardRef(function DialogTitle(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiDialogTitle'\n });\n const {\n className,\n id: idProp,\n ...other\n } = props;\n const ownerState = props;\n const classes = useUtilityClasses(ownerState);\n const {\n titleId = idProp\n } = React.useContext(DialogContext);\n return /*#__PURE__*/_jsx(DialogTitleRoot, {\n component: \"h2\",\n className: clsx(classes.root, className),\n ownerState: ownerState,\n ref: ref,\n variant: \"h6\",\n id: idProp ?? titleId,\n ...other\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? DialogTitle.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * @ignore\n */\n id: PropTypes.string,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default DialogTitle;","import React, { useState } from 'react';\nimport { \n Table, TableBody, TableCell, TableContainer, TableHead, TableRow, \n Paper, Typography, Button, Dialog, DialogTitle, DialogContent,\n Accordion, AccordionSummary, AccordionDetails, useTheme, TableSortLabel\n} from '@mui/material';\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore';\nimport dayjs from 'dayjs';\n\nconst TradesTable = ({ trades }) => {\n const [openAllTrades, setOpenAllTrades] = useState(false);\n const [orderBy, setOrderBy] = useState('entry_date');\n const [order, setOrder] = useState('desc');\n const theme = useTheme();\n\n const formatDate = (dateString) => {\n return dayjs(dateString).format('YYYY-MM-DD HH:mm:ss');\n };\n\n const columns = [\n { id: 'strategy', label: 'Strategy', numeric: false },\n { id: 'entry_date', label: 'Entry Date', numeric: false },\n { id: 'exit_date', label: 'Exit Date', numeric: false },\n { id: 'avg_entry_price', label: 'Avg. Entry Price', numeric: true },\n { id: 'avg_exit_price', label: 'Avg. Exit Price', numeric: true },\n { id: 'position', label: 'Position', numeric: true },\n { id: 'trade_return', label: 'Trade Return', numeric: true },\n { id: 'trade_type', label: 'Trade Type', numeric: false },\n ];\n\n const handleRequestSort = (property) => {\n const isAsc = orderBy === property && order === 'asc';\n setOrder(isAsc ? 'desc' : 'asc');\n setOrderBy(property);\n };\n\n const sortTrades = (tradesToSort) => {\n return [...tradesToSort].sort((a, b) => {\n if (!a[orderBy] && !b[orderBy]) return 0;\n if (!a[orderBy]) return 1;\n if (!b[orderBy]) return -1;\n\n const aValue = columns.find(col => col.id === orderBy)?.numeric \n ? Number(a[orderBy]) \n : orderBy.includes('date') \n ? new Date(a[orderBy]).getTime()\n : a[orderBy];\n \n const bValue = columns.find(col => col.id === orderBy)?.numeric \n ? Number(b[orderBy]) \n : orderBy.includes('date') \n ? new Date(b[orderBy]).getTime()\n : b[orderBy];\n\n if (order === 'asc') {\n return aValue < bValue ? -1 : aValue > bValue ? 1 : 0;\n } else {\n return bValue < aValue ? -1 : bValue > aValue ? 1 : 0;\n }\n });\n };\n\n const renderTradeRow = (trade, index) => (\n \n {trade.strategy || 'N/A'}\n {formatDate(trade.entry_date) || 'N/A'}\n {formatDate(trade.exit_date) || 'N/A'}\n {trade.avg_entry_price ? trade.avg_entry_price.toFixed(2) : 'N/A'}\n {trade.avg_exit_price ? trade.avg_exit_price.toFixed(2) : 'N/A'}\n {trade.position ? trade.position.toFixed(4) : 'N/A'}\n {trade.trade_return ? (trade.trade_return * 100).toFixed(2) + '%' : 'N/A'}\n {trade.trade_type || 'N/A'}\n \n );\n\n const renderTableHeader = () => (\n \n \n {columns.map((column) => (\n \n handleRequestSort(column.id)}\n sx={{\n '&.MuiTableSortLabel-root': {\n color: theme.palette.common.white,\n },\n '&.MuiTableSortLabel-root:hover': {\n color: theme.palette.common.white,\n },\n '&.MuiTableSortLabel-root.Mui-active': {\n color: theme.palette.common.white,\n },\n '& .MuiTableSortLabel-icon': {\n color: `${theme.palette.common.white} !important`,\n },\n }}\n >\n {column.label}\n \n \n ))}\n \n \n );\n\n const sortedTrades = sortTrades(trades);\n const displayedTrades = sortedTrades.slice(0, 10);\n\n return (\n \n }\n aria-controls=\"trade-history-content\"\n id=\"trade-history-header\"\n >\n Trade History\n \n \n \n \n {renderTableHeader()}\n \n {displayedTrades.map(renderTradeRow)}\n \n
\n
\n \n {trades.length > 10 && (\n \n )}\n\n setOpenAllTrades(false)} maxWidth=\"lg\" fullWidth>\n All Trades History\n \n \n \n {renderTableHeader()}\n \n {sortedTrades.map(renderTradeRow)}\n \n
\n
\n
\n
\n
\n
\n );\n};\n\nexport default React.memo(TradesTable);","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getSwitchUtilityClass(slot) {\n return generateUtilityClass('MuiSwitch', slot);\n}\nconst switchClasses = generateUtilityClasses('MuiSwitch', ['root', 'edgeStart', 'edgeEnd', 'switchBase', 'colorPrimary', 'colorSecondary', 'sizeSmall', 'sizeMedium', 'checked', 'disabled', 'input', 'thumb', 'track']);\nexport default switchClasses;","'use client';\n\n// @inheritedComponent IconButton\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport refType from '@mui/utils/refType';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { alpha, darken, lighten } from '@mui/system/colorManipulator';\nimport capitalize from \"../utils/capitalize.js\";\nimport createSimplePaletteValueFilter from \"../utils/createSimplePaletteValueFilter.js\";\nimport SwitchBase from \"../internal/SwitchBase.js\";\nimport { styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport switchClasses, { getSwitchUtilityClass } from \"./switchClasses.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n edge,\n size,\n color,\n checked,\n disabled\n } = ownerState;\n const slots = {\n root: ['root', edge && `edge${capitalize(edge)}`, `size${capitalize(size)}`],\n switchBase: ['switchBase', `color${capitalize(color)}`, checked && 'checked', disabled && 'disabled'],\n thumb: ['thumb'],\n track: ['track'],\n input: ['input']\n };\n const composedClasses = composeClasses(slots, getSwitchUtilityClass, classes);\n return {\n ...classes,\n // forward the disabled and checked classes to the SwitchBase\n ...composedClasses\n };\n};\nconst SwitchRoot = styled('span', {\n name: 'MuiSwitch',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.edge && styles[`edge${capitalize(ownerState.edge)}`], styles[`size${capitalize(ownerState.size)}`]];\n }\n})({\n display: 'inline-flex',\n width: 34 + 12 * 2,\n height: 14 + 12 * 2,\n overflow: 'hidden',\n padding: 12,\n boxSizing: 'border-box',\n position: 'relative',\n flexShrink: 0,\n zIndex: 0,\n // Reset the stacking context.\n verticalAlign: 'middle',\n // For correct alignment with the text.\n '@media print': {\n colorAdjust: 'exact'\n },\n variants: [{\n props: {\n edge: 'start'\n },\n style: {\n marginLeft: -8\n }\n }, {\n props: {\n edge: 'end'\n },\n style: {\n marginRight: -8\n }\n }, {\n props: {\n size: 'small'\n },\n style: {\n width: 40,\n height: 24,\n padding: 7,\n [`& .${switchClasses.thumb}`]: {\n width: 16,\n height: 16\n },\n [`& .${switchClasses.switchBase}`]: {\n padding: 4,\n [`&.${switchClasses.checked}`]: {\n transform: 'translateX(16px)'\n }\n }\n }\n }]\n});\nconst SwitchSwitchBase = styled(SwitchBase, {\n name: 'MuiSwitch',\n slot: 'SwitchBase',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.switchBase, {\n [`& .${switchClasses.input}`]: styles.input\n }, ownerState.color !== 'default' && styles[`color${capitalize(ownerState.color)}`]];\n }\n})(memoTheme(({\n theme\n}) => ({\n position: 'absolute',\n top: 0,\n left: 0,\n zIndex: 1,\n // Render above the focus ripple.\n color: theme.vars ? theme.vars.palette.Switch.defaultColor : `${theme.palette.mode === 'light' ? theme.palette.common.white : theme.palette.grey[300]}`,\n transition: theme.transitions.create(['left', 'transform'], {\n duration: theme.transitions.duration.shortest\n }),\n [`&.${switchClasses.checked}`]: {\n transform: 'translateX(20px)'\n },\n [`&.${switchClasses.disabled}`]: {\n color: theme.vars ? theme.vars.palette.Switch.defaultDisabledColor : `${theme.palette.mode === 'light' ? theme.palette.grey[100] : theme.palette.grey[600]}`\n },\n [`&.${switchClasses.checked} + .${switchClasses.track}`]: {\n opacity: 0.5\n },\n [`&.${switchClasses.disabled} + .${switchClasses.track}`]: {\n opacity: theme.vars ? theme.vars.opacity.switchTrackDisabled : `${theme.palette.mode === 'light' ? 0.12 : 0.2}`\n },\n [`& .${switchClasses.input}`]: {\n left: '-100%',\n width: '300%'\n }\n})), memoTheme(({\n theme\n}) => ({\n '&:hover': {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.action.activeChannel} / ${theme.vars.palette.action.hoverOpacity})` : alpha(theme.palette.action.active, theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n },\n variants: [...Object.entries(theme.palette).filter(createSimplePaletteValueFilter(['light'])) // check all the used fields in the style below\n .map(([color]) => ({\n props: {\n color\n },\n style: {\n [`&.${switchClasses.checked}`]: {\n color: (theme.vars || theme).palette[color].main,\n '&:hover': {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette[color].mainChannel} / ${theme.vars.palette.action.hoverOpacity})` : alpha(theme.palette[color].main, theme.palette.action.hoverOpacity),\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n },\n [`&.${switchClasses.disabled}`]: {\n color: theme.vars ? theme.vars.palette.Switch[`${color}DisabledColor`] : `${theme.palette.mode === 'light' ? lighten(theme.palette[color].main, 0.62) : darken(theme.palette[color].main, 0.55)}`\n }\n },\n [`&.${switchClasses.checked} + .${switchClasses.track}`]: {\n backgroundColor: (theme.vars || theme).palette[color].main\n }\n }\n }))]\n})));\nconst SwitchTrack = styled('span', {\n name: 'MuiSwitch',\n slot: 'Track',\n overridesResolver: (props, styles) => styles.track\n})(memoTheme(({\n theme\n}) => ({\n height: '100%',\n width: '100%',\n borderRadius: 14 / 2,\n zIndex: -1,\n transition: theme.transitions.create(['opacity', 'background-color'], {\n duration: theme.transitions.duration.shortest\n }),\n backgroundColor: theme.vars ? theme.vars.palette.common.onBackground : `${theme.palette.mode === 'light' ? theme.palette.common.black : theme.palette.common.white}`,\n opacity: theme.vars ? theme.vars.opacity.switchTrack : `${theme.palette.mode === 'light' ? 0.38 : 0.3}`\n})));\nconst SwitchThumb = styled('span', {\n name: 'MuiSwitch',\n slot: 'Thumb',\n overridesResolver: (props, styles) => styles.thumb\n})(memoTheme(({\n theme\n}) => ({\n boxShadow: (theme.vars || theme).shadows[1],\n backgroundColor: 'currentColor',\n width: 20,\n height: 20,\n borderRadius: '50%'\n})));\nconst Switch = /*#__PURE__*/React.forwardRef(function Switch(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiSwitch'\n });\n const {\n className,\n color = 'primary',\n edge = false,\n size = 'medium',\n sx,\n ...other\n } = props;\n const ownerState = {\n ...props,\n color,\n edge,\n size\n };\n const classes = useUtilityClasses(ownerState);\n const icon = /*#__PURE__*/_jsx(SwitchThumb, {\n className: classes.thumb,\n ownerState: ownerState\n });\n return /*#__PURE__*/_jsxs(SwitchRoot, {\n className: clsx(classes.root, className),\n sx: sx,\n ownerState: ownerState,\n children: [/*#__PURE__*/_jsx(SwitchSwitchBase, {\n type: \"checkbox\",\n icon: icon,\n checkedIcon: icon,\n ref: ref,\n ownerState: ownerState,\n ...other,\n classes: {\n ...classes,\n root: classes.switchBase\n }\n }), /*#__PURE__*/_jsx(SwitchTrack, {\n className: classes.track,\n ownerState: ownerState\n })]\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Switch.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * If `true`, the component is checked.\n */\n checked: PropTypes.bool,\n /**\n * The icon to display when the component is checked.\n */\n checkedIcon: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).\n * @default 'primary'\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['default', 'primary', 'secondary', 'error', 'info', 'success', 'warning']), PropTypes.string]),\n /**\n * The default checked state. Use when the component is not controlled.\n */\n defaultChecked: PropTypes.bool,\n /**\n * If `true`, the component is disabled.\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, the ripple effect is disabled.\n * @default false\n */\n disableRipple: PropTypes.bool,\n /**\n * If given, uses a negative margin to counteract the padding on one\n * side (this is often helpful for aligning the left or right\n * side of the icon with content above or below, without ruining the border\n * size and shape).\n * @default false\n */\n edge: PropTypes.oneOf(['end', 'start', false]),\n /**\n * The icon to display when the component is unchecked.\n */\n icon: PropTypes.node,\n /**\n * The id of the `input` element.\n */\n id: PropTypes.string,\n /**\n * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n */\n inputProps: PropTypes.object,\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n /**\n * Callback fired when the state is changed.\n *\n * @param {React.ChangeEvent} event The event source of the callback.\n * You can pull out the new value by accessing `event.target.value` (string).\n * You can pull out the new checked state by accessing `event.target.checked` (boolean).\n */\n onChange: PropTypes.func,\n /**\n * If `true`, the `input` element is required.\n * @default false\n */\n required: PropTypes.bool,\n /**\n * The size of the component.\n * `small` is equivalent to the dense switch styling.\n * @default 'medium'\n */\n size: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['medium', 'small']), PropTypes.string]),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The value of the component. The DOM API casts this to a string.\n * The browser uses \"on\" as the default value.\n */\n value: PropTypes.any\n} : void 0;\nexport default Switch;","import isString from 'lodash/isString';\nimport isNan from 'lodash/isNaN';\nimport get from 'lodash/get';\nimport lodashIsNumber from 'lodash/isNumber';\nexport var mathSign = function mathSign(value) {\n if (value === 0) {\n return 0;\n }\n if (value > 0) {\n return 1;\n }\n return -1;\n};\nexport var isPercent = function isPercent(value) {\n return isString(value) && value.indexOf('%') === value.length - 1;\n};\nexport var isNumber = function isNumber(value) {\n return lodashIsNumber(value) && !isNan(value);\n};\nexport var isNumOrStr = function isNumOrStr(value) {\n return isNumber(value) || isString(value);\n};\nvar idCounter = 0;\nexport var uniqueId = function uniqueId(prefix) {\n var id = ++idCounter;\n return \"\".concat(prefix || '').concat(id);\n};\n\n/**\n * Get percent value of a total value\n * @param {number|string} percent A percent\n * @param {number} totalValue Total value\n * @param {number} defaultValue The value returned when percent is undefined or invalid\n * @param {boolean} validate If set to be true, the result will be validated\n * @return {number} value\n */\nexport var getPercentValue = function getPercentValue(percent, totalValue) {\n var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var validate = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n if (!isNumber(percent) && !isString(percent)) {\n return defaultValue;\n }\n var value;\n if (isPercent(percent)) {\n var index = percent.indexOf('%');\n value = totalValue * parseFloat(percent.slice(0, index)) / 100;\n } else {\n value = +percent;\n }\n if (isNan(value)) {\n value = defaultValue;\n }\n if (validate && value > totalValue) {\n value = totalValue;\n }\n return value;\n};\nexport var getAnyElementOfObject = function getAnyElementOfObject(obj) {\n if (!obj) {\n return null;\n }\n var keys = Object.keys(obj);\n if (keys && keys.length) {\n return obj[keys[0]];\n }\n return null;\n};\nexport var hasDuplicate = function hasDuplicate(ary) {\n if (!Array.isArray(ary)) {\n return false;\n }\n var len = ary.length;\n var cache = {};\n for (var i = 0; i < len; i++) {\n if (!cache[ary[i]]) {\n cache[ary[i]] = true;\n } else {\n return true;\n }\n }\n return false;\n};\n\n/* @todo consider to rename this function into `getInterpolator` */\nexport var interpolateNumber = function interpolateNumber(numberA, numberB) {\n if (isNumber(numberA) && isNumber(numberB)) {\n return function (t) {\n return numberA + t * (numberB - numberA);\n };\n }\n return function () {\n return numberB;\n };\n};\nexport function findEntryInArray(ary, specifiedKey, specifiedValue) {\n if (!ary || !ary.length) {\n return null;\n }\n return ary.find(function (entry) {\n return entry && (typeof specifiedKey === 'function' ? specifiedKey(entry) : get(entry, specifiedKey)) === specifiedValue;\n });\n}\n\n/**\n * The least square linear regression\n * @param {Array} data The array of points\n * @returns {Object} The domain of x, and the parameter of linear function\n */\nexport var getLinearRegression = function getLinearRegression(data) {\n if (!data || !data.length) {\n return null;\n }\n var len = data.length;\n var xsum = 0;\n var ysum = 0;\n var xysum = 0;\n var xxsum = 0;\n var xmin = Infinity;\n var xmax = -Infinity;\n var xcurrent = 0;\n var ycurrent = 0;\n for (var i = 0; i < len; i++) {\n xcurrent = data[i].cx || 0;\n ycurrent = data[i].cy || 0;\n xsum += xcurrent;\n ysum += ycurrent;\n xysum += xcurrent * ycurrent;\n xxsum += xcurrent * xcurrent;\n xmin = Math.min(xmin, xcurrent);\n xmax = Math.max(xmax, xcurrent);\n }\n var a = len * xxsum !== xsum * xsum ? (len * xysum - xsum * ysum) / (len * xxsum - xsum * xsum) : 0;\n return {\n xmin: xmin,\n xmax: xmax,\n a: a,\n b: (ysum - a * xsum) / len\n };\n};","/* eslint no-console: 0 */\nvar isDev = process.env.NODE_ENV !== 'production';\nexport var warn = function warn(condition, format) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n if (isDev && typeof console !== 'undefined' && console.warn) {\n if (format === undefined) {\n console.warn('LogUtils requires an error message argument');\n }\n if (!condition) {\n if (format === undefined) {\n console.warn('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var argIndex = 0;\n console.warn(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n }\n }\n }\n};","export function shallowEqual(a, b) {\n /* eslint-disable no-restricted-syntax */\n for (var key in a) {\n if ({}.hasOwnProperty.call(a, key) && (!{}.hasOwnProperty.call(b, key) || a[key] !== b[key])) {\n return false;\n }\n }\n for (var _key in b) {\n if ({}.hasOwnProperty.call(b, _key) && !{}.hasOwnProperty.call(a, _key)) {\n return false;\n }\n }\n return true;\n}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nimport { isValidElement } from 'react';\nimport isObject from 'lodash/isObject';\n\n/**\n * Determines how values are stacked:\n *\n * - `none` is the default, it adds values on top of each other. No smarts. Negative values will overlap.\n * - `expand` make it so that the values always add up to 1 - so the chart will look like a rectangle.\n * - `wiggle` and `silhouette` tries to keep the chart centered.\n * - `sign` stacks positive values above zero and negative values below zero. Similar to `none` but handles negatives.\n * - `positive` ignores all negative values, and then behaves like \\`none\\`.\n *\n * Also see https://d3js.org/d3-shape/stack#stack-offsets\n * (note that the `diverging` offset in d3 is named `sign` in recharts)\n */\n\n//\n// Event Handler Types -- Copied from @types/react/index.d.ts and adapted for Props.\n//\n\nvar SVGContainerPropKeys = ['viewBox', 'children'];\nexport var SVGElementPropKeys = ['aria-activedescendant', 'aria-atomic', 'aria-autocomplete', 'aria-busy', 'aria-checked', 'aria-colcount', 'aria-colindex', 'aria-colspan', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-details', 'aria-disabled', 'aria-errormessage', 'aria-expanded', 'aria-flowto', 'aria-haspopup', 'aria-hidden', 'aria-invalid', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-level', 'aria-live', 'aria-modal', 'aria-multiline', 'aria-multiselectable', 'aria-orientation', 'aria-owns', 'aria-placeholder', 'aria-posinset', 'aria-pressed', 'aria-readonly', 'aria-relevant', 'aria-required', 'aria-roledescription', 'aria-rowcount', 'aria-rowindex', 'aria-rowspan', 'aria-selected', 'aria-setsize', 'aria-sort', 'aria-valuemax', 'aria-valuemin', 'aria-valuenow', 'aria-valuetext', 'className', 'color', 'height', 'id', 'lang', 'max', 'media', 'method', 'min', 'name', 'style',\n/*\n * removed 'type' SVGElementPropKey because we do not currently use any SVG elements\n * that can use it and it conflicts with the recharts prop 'type'\n * https://github.com/recharts/recharts/pull/3327\n * https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/type\n */\n// 'type',\n'target', 'width', 'role', 'tabIndex', 'accentHeight', 'accumulate', 'additive', 'alignmentBaseline', 'allowReorder', 'alphabetic', 'amplitude', 'arabicForm', 'ascent', 'attributeName', 'attributeType', 'autoReverse', 'azimuth', 'baseFrequency', 'baselineShift', 'baseProfile', 'bbox', 'begin', 'bias', 'by', 'calcMode', 'capHeight', 'clip', 'clipPath', 'clipPathUnits', 'clipRule', 'colorInterpolation', 'colorInterpolationFilters', 'colorProfile', 'colorRendering', 'contentScriptType', 'contentStyleType', 'cursor', 'cx', 'cy', 'd', 'decelerate', 'descent', 'diffuseConstant', 'direction', 'display', 'divisor', 'dominantBaseline', 'dur', 'dx', 'dy', 'edgeMode', 'elevation', 'enableBackground', 'end', 'exponent', 'externalResourcesRequired', 'fill', 'fillOpacity', 'fillRule', 'filter', 'filterRes', 'filterUnits', 'floodColor', 'floodOpacity', 'focusable', 'fontFamily', 'fontSize', 'fontSizeAdjust', 'fontStretch', 'fontStyle', 'fontVariant', 'fontWeight', 'format', 'from', 'fx', 'fy', 'g1', 'g2', 'glyphName', 'glyphOrientationHorizontal', 'glyphOrientationVertical', 'glyphRef', 'gradientTransform', 'gradientUnits', 'hanging', 'horizAdvX', 'horizOriginX', 'href', 'ideographic', 'imageRendering', 'in2', 'in', 'intercept', 'k1', 'k2', 'k3', 'k4', 'k', 'kernelMatrix', 'kernelUnitLength', 'kerning', 'keyPoints', 'keySplines', 'keyTimes', 'lengthAdjust', 'letterSpacing', 'lightingColor', 'limitingConeAngle', 'local', 'markerEnd', 'markerHeight', 'markerMid', 'markerStart', 'markerUnits', 'markerWidth', 'mask', 'maskContentUnits', 'maskUnits', 'mathematical', 'mode', 'numOctaves', 'offset', 'opacity', 'operator', 'order', 'orient', 'orientation', 'origin', 'overflow', 'overlinePosition', 'overlineThickness', 'paintOrder', 'panose1', 'pathLength', 'patternContentUnits', 'patternTransform', 'patternUnits', 'pointerEvents', 'pointsAtX', 'pointsAtY', 'pointsAtZ', 'preserveAlpha', 'preserveAspectRatio', 'primitiveUnits', 'r', 'radius', 'refX', 'refY', 'renderingIntent', 'repeatCount', 'repeatDur', 'requiredExtensions', 'requiredFeatures', 'restart', 'result', 'rotate', 'rx', 'ry', 'seed', 'shapeRendering', 'slope', 'spacing', 'specularConstant', 'specularExponent', 'speed', 'spreadMethod', 'startOffset', 'stdDeviation', 'stemh', 'stemv', 'stitchTiles', 'stopColor', 'stopOpacity', 'strikethroughPosition', 'strikethroughThickness', 'string', 'stroke', 'strokeDasharray', 'strokeDashoffset', 'strokeLinecap', 'strokeLinejoin', 'strokeMiterlimit', 'strokeOpacity', 'strokeWidth', 'surfaceScale', 'systemLanguage', 'tableValues', 'targetX', 'targetY', 'textAnchor', 'textDecoration', 'textLength', 'textRendering', 'to', 'transform', 'u1', 'u2', 'underlinePosition', 'underlineThickness', 'unicode', 'unicodeBidi', 'unicodeRange', 'unitsPerEm', 'vAlphabetic', 'values', 'vectorEffect', 'version', 'vertAdvY', 'vertOriginX', 'vertOriginY', 'vHanging', 'vIdeographic', 'viewTarget', 'visibility', 'vMathematical', 'widths', 'wordSpacing', 'writingMode', 'x1', 'x2', 'x', 'xChannelSelector', 'xHeight', 'xlinkActuate', 'xlinkArcrole', 'xlinkHref', 'xlinkRole', 'xlinkShow', 'xlinkTitle', 'xlinkType', 'xmlBase', 'xmlLang', 'xmlns', 'xmlnsXlink', 'xmlSpace', 'y1', 'y2', 'y', 'yChannelSelector', 'z', 'zoomAndPan', 'ref', 'key', 'angle'];\nvar PolyElementKeys = ['points', 'pathLength'];\n\n/** svg element types that have specific attribute filtration requirements */\n\n/** map of svg element types to unique svg attributes that belong to that element */\nexport var FilteredElementKeyMap = {\n svg: SVGContainerPropKeys,\n polygon: PolyElementKeys,\n polyline: PolyElementKeys\n};\nexport var EventKeys = ['dangerouslySetInnerHTML', 'onCopy', 'onCopyCapture', 'onCut', 'onCutCapture', 'onPaste', 'onPasteCapture', 'onCompositionEnd', 'onCompositionEndCapture', 'onCompositionStart', 'onCompositionStartCapture', 'onCompositionUpdate', 'onCompositionUpdateCapture', 'onFocus', 'onFocusCapture', 'onBlur', 'onBlurCapture', 'onChange', 'onChangeCapture', 'onBeforeInput', 'onBeforeInputCapture', 'onInput', 'onInputCapture', 'onReset', 'onResetCapture', 'onSubmit', 'onSubmitCapture', 'onInvalid', 'onInvalidCapture', 'onLoad', 'onLoadCapture', 'onError', 'onErrorCapture', 'onKeyDown', 'onKeyDownCapture', 'onKeyPress', 'onKeyPressCapture', 'onKeyUp', 'onKeyUpCapture', 'onAbort', 'onAbortCapture', 'onCanPlay', 'onCanPlayCapture', 'onCanPlayThrough', 'onCanPlayThroughCapture', 'onDurationChange', 'onDurationChangeCapture', 'onEmptied', 'onEmptiedCapture', 'onEncrypted', 'onEncryptedCapture', 'onEnded', 'onEndedCapture', 'onLoadedData', 'onLoadedDataCapture', 'onLoadedMetadata', 'onLoadedMetadataCapture', 'onLoadStart', 'onLoadStartCapture', 'onPause', 'onPauseCapture', 'onPlay', 'onPlayCapture', 'onPlaying', 'onPlayingCapture', 'onProgress', 'onProgressCapture', 'onRateChange', 'onRateChangeCapture', 'onSeeked', 'onSeekedCapture', 'onSeeking', 'onSeekingCapture', 'onStalled', 'onStalledCapture', 'onSuspend', 'onSuspendCapture', 'onTimeUpdate', 'onTimeUpdateCapture', 'onVolumeChange', 'onVolumeChangeCapture', 'onWaiting', 'onWaitingCapture', 'onAuxClick', 'onAuxClickCapture', 'onClick', 'onClickCapture', 'onContextMenu', 'onContextMenuCapture', 'onDoubleClick', 'onDoubleClickCapture', 'onDrag', 'onDragCapture', 'onDragEnd', 'onDragEndCapture', 'onDragEnter', 'onDragEnterCapture', 'onDragExit', 'onDragExitCapture', 'onDragLeave', 'onDragLeaveCapture', 'onDragOver', 'onDragOverCapture', 'onDragStart', 'onDragStartCapture', 'onDrop', 'onDropCapture', 'onMouseDown', 'onMouseDownCapture', 'onMouseEnter', 'onMouseLeave', 'onMouseMove', 'onMouseMoveCapture', 'onMouseOut', 'onMouseOutCapture', 'onMouseOver', 'onMouseOverCapture', 'onMouseUp', 'onMouseUpCapture', 'onSelect', 'onSelectCapture', 'onTouchCancel', 'onTouchCancelCapture', 'onTouchEnd', 'onTouchEndCapture', 'onTouchMove', 'onTouchMoveCapture', 'onTouchStart', 'onTouchStartCapture', 'onPointerDown', 'onPointerDownCapture', 'onPointerMove', 'onPointerMoveCapture', 'onPointerUp', 'onPointerUpCapture', 'onPointerCancel', 'onPointerCancelCapture', 'onPointerEnter', 'onPointerEnterCapture', 'onPointerLeave', 'onPointerLeaveCapture', 'onPointerOver', 'onPointerOverCapture', 'onPointerOut', 'onPointerOutCapture', 'onGotPointerCapture', 'onGotPointerCaptureCapture', 'onLostPointerCapture', 'onLostPointerCaptureCapture', 'onScroll', 'onScrollCapture', 'onWheel', 'onWheelCapture', 'onAnimationStart', 'onAnimationStartCapture', 'onAnimationEnd', 'onAnimationEndCapture', 'onAnimationIteration', 'onAnimationIterationCapture', 'onTransitionEnd', 'onTransitionEndCapture'];\n\n/** The type of easing function to use for animations */\n\n/** Specifies the duration of animation, the unit of this option is ms. */\n\n/** the offset of a chart, which define the blank space all around */\n\n/**\n * The domain of axis.\n * This is the definition\n *\n * Numeric domain is always defined by an array of exactly two values, for the min and the max of the axis.\n * Categorical domain is defined as array of all possible values.\n *\n * Can be specified in many ways:\n * - array of numbers\n * - with special strings like 'dataMin' and 'dataMax'\n * - with special string math like 'dataMin - 100'\n * - with keyword 'auto'\n * - or a function\n * - array of functions\n * - or a combination of the above\n */\n\n/**\n * NumberDomain is an evaluated {@link AxisDomain}.\n * Unlike {@link AxisDomain}, it has no variety - it's a tuple of two number.\n * This is after all the keywords and functions were evaluated and what is left is [min, max].\n *\n * Know that the min, max values are not guaranteed to be nice numbers - values like -Infinity or NaN are possible.\n *\n * There are also `category` axes that have different things than numbers in their domain.\n */\n\n/** The props definition of base axis */\n\n/** Defines how ticks are placed and whether / how tick collisions are handled.\n * 'preserveStart' keeps the left tick on collision and ensures that the first tick is always shown.\n * 'preserveEnd' keeps the right tick on collision and ensures that the last tick is always shown.\n * 'preserveStartEnd' keeps the left tick on collision and ensures that the first and last ticks are always shown.\n * 'equidistantPreserveStart' selects a number N such that every nTh tick will be shown without collision.\n */\n\nexport var adaptEventHandlers = function adaptEventHandlers(props, newHandler) {\n if (!props || typeof props === 'function' || typeof props === 'boolean') {\n return null;\n }\n var inputProps = props;\n if ( /*#__PURE__*/isValidElement(props)) {\n inputProps = props.props;\n }\n if (!isObject(inputProps)) {\n return null;\n }\n var out = {};\n Object.keys(inputProps).forEach(function (key) {\n if (EventKeys.includes(key)) {\n out[key] = newHandler || function (e) {\n return inputProps[key](inputProps, e);\n };\n }\n });\n return out;\n};\nvar getEventHandlerOfChild = function getEventHandlerOfChild(originalHandler, data, index) {\n return function (e) {\n originalHandler(data, index, e);\n return null;\n };\n};\nexport var adaptEventsOfChild = function adaptEventsOfChild(props, data, index) {\n if (!isObject(props) || _typeof(props) !== 'object') {\n return null;\n }\n var out = null;\n Object.keys(props).forEach(function (key) {\n var item = props[key];\n if (EventKeys.includes(key) && typeof item === 'function') {\n if (!out) out = {};\n out[key] = getEventHandlerOfChild(item, data, index);\n }\n });\n return out;\n};","var _excluded = [\"children\"],\n _excluded2 = [\"children\"];\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nimport get from 'lodash/get';\nimport isNil from 'lodash/isNil';\nimport isString from 'lodash/isString';\nimport isFunction from 'lodash/isFunction';\nimport isObject from 'lodash/isObject';\nimport { Children, isValidElement } from 'react';\nimport { isFragment } from 'react-is';\nimport { isNumber } from './DataUtils';\nimport { shallowEqual } from './ShallowEqual';\nimport { FilteredElementKeyMap, SVGElementPropKeys, EventKeys } from './types';\nvar REACT_BROWSER_EVENT_MAP = {\n click: 'onClick',\n mousedown: 'onMouseDown',\n mouseup: 'onMouseUp',\n mouseover: 'onMouseOver',\n mousemove: 'onMouseMove',\n mouseout: 'onMouseOut',\n mouseenter: 'onMouseEnter',\n mouseleave: 'onMouseLeave',\n touchcancel: 'onTouchCancel',\n touchend: 'onTouchEnd',\n touchmove: 'onTouchMove',\n touchstart: 'onTouchStart'\n};\nexport var SCALE_TYPES = ['auto', 'linear', 'pow', 'sqrt', 'log', 'identity', 'time', 'band', 'point', 'ordinal', 'quantile', 'quantize', 'utc', 'sequential', 'threshold'];\nexport var LEGEND_TYPES = ['plainline', 'line', 'square', 'rect', 'circle', 'cross', 'diamond', 'star', 'triangle', 'wye', 'none'];\nexport var TOOLTIP_TYPES = ['none'];\n\n/**\n * Get the display name of a component\n * @param {Object} Comp Specified Component\n * @return {String} Display name of Component\n */\nexport var getDisplayName = function getDisplayName(Comp) {\n if (typeof Comp === 'string') {\n return Comp;\n }\n if (!Comp) {\n return '';\n }\n return Comp.displayName || Comp.name || 'Component';\n};\n\n// `toArray` gets called multiple times during the render\n// so we can memoize last invocation (since reference to `children` is the same)\nvar lastChildren = null;\nvar lastResult = null;\nexport var toArray = function toArray(children) {\n if (children === lastChildren && Array.isArray(lastResult)) {\n return lastResult;\n }\n var result = [];\n Children.forEach(children, function (child) {\n if (isNil(child)) return;\n if (isFragment(child)) {\n result = result.concat(toArray(child.props.children));\n } else {\n result.push(child);\n }\n });\n lastResult = result;\n lastChildren = children;\n return result;\n};\n\n/*\n * Find and return all matched children by type.\n * `type` must be a React.ComponentType\n */\nexport function findAllByType(children, type) {\n var result = [];\n var types = [];\n if (Array.isArray(type)) {\n types = type.map(function (t) {\n return getDisplayName(t);\n });\n } else {\n types = [getDisplayName(type)];\n }\n toArray(children).forEach(function (child) {\n var childType = get(child, 'type.displayName') || get(child, 'type.name');\n if (types.indexOf(childType) !== -1) {\n result.push(child);\n }\n });\n return result;\n}\n\n/*\n * Return the first matched child by type, return null otherwise.\n * `type` must be a React.ComponentType\n */\nexport function findChildByType(children, type) {\n var result = findAllByType(children, type);\n return result && result[0];\n}\n\n/*\n * Create a new array of children excluding the ones matched the type\n */\nexport var withoutType = function withoutType(children, type) {\n var newChildren = [];\n var types;\n if (Array.isArray(type)) {\n types = type.map(function (t) {\n return getDisplayName(t);\n });\n } else {\n types = [getDisplayName(type)];\n }\n toArray(children).forEach(function (child) {\n var displayName = get(child, 'type.displayName');\n if (displayName && types.indexOf(displayName) !== -1) {\n return;\n }\n newChildren.push(child);\n });\n return newChildren;\n};\n\n/**\n * validate the width and height props of a chart element\n * @param {Object} el A chart element\n * @return {Boolean} true If the props width and height are number, and greater than 0\n */\nexport var validateWidthHeight = function validateWidthHeight(el) {\n if (!el || !el.props) {\n return false;\n }\n var _el$props = el.props,\n width = _el$props.width,\n height = _el$props.height;\n if (!isNumber(width) || width <= 0 || !isNumber(height) || height <= 0) {\n return false;\n }\n return true;\n};\nvar SVG_TAGS = ['a', 'altGlyph', 'altGlyphDef', 'altGlyphItem', 'animate', 'animateColor', 'animateMotion', 'animateTransform', 'circle', 'clipPath', 'color-profile', 'cursor', 'defs', 'desc', 'ellipse', 'feBlend', 'feColormatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence', 'filter', 'font', 'font-face', 'font-face-format', 'font-face-name', 'font-face-url', 'foreignObject', 'g', 'glyph', 'glyphRef', 'hkern', 'image', 'line', 'lineGradient', 'marker', 'mask', 'metadata', 'missing-glyph', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'script', 'set', 'stop', 'style', 'svg', 'switch', 'symbol', 'text', 'textPath', 'title', 'tref', 'tspan', 'use', 'view', 'vkern'];\nvar isSvgElement = function isSvgElement(child) {\n return child && child.type && isString(child.type) && SVG_TAGS.indexOf(child.type) >= 0;\n};\nexport var isDotProps = function isDotProps(dot) {\n return dot && _typeof(dot) === 'object' && 'cx' in dot && 'cy' in dot && 'r' in dot;\n};\n\n/**\n * Checks if the property is valid to spread onto an SVG element or onto a specific component\n * @param {unknown} property property value currently being compared\n * @param {string} key property key currently being compared\n * @param {boolean} includeEvents if events are included in spreadable props\n * @param {boolean} svgElementType checks against map of SVG element types to attributes\n * @returns {boolean} is prop valid\n */\nexport var isValidSpreadableProp = function isValidSpreadableProp(property, key, includeEvents, svgElementType) {\n var _FilteredElementKeyMa;\n /**\n * If the svg element type is explicitly included, check against the filtered element key map\n * to determine if there are attributes that should only exist on that element type.\n * @todo Add an internal cjs version of https://github.com/wooorm/svg-element-attributes for full coverage.\n */\n var matchingElementTypeKeys = (_FilteredElementKeyMa = FilteredElementKeyMap === null || FilteredElementKeyMap === void 0 ? void 0 : FilteredElementKeyMap[svgElementType]) !== null && _FilteredElementKeyMa !== void 0 ? _FilteredElementKeyMa : [];\n return !isFunction(property) && (svgElementType && matchingElementTypeKeys.includes(key) || SVGElementPropKeys.includes(key)) || includeEvents && EventKeys.includes(key);\n};\n\n/**\n * Filter all the svg elements of children\n * @param {Array} children The children of a react element\n * @return {Array} All the svg elements\n */\nexport var filterSvgElements = function filterSvgElements(children) {\n var svgElements = [];\n toArray(children).forEach(function (entry) {\n if (isSvgElement(entry)) {\n svgElements.push(entry);\n }\n });\n return svgElements;\n};\nexport var filterProps = function filterProps(props, includeEvents, svgElementType) {\n if (!props || typeof props === 'function' || typeof props === 'boolean') {\n return null;\n }\n var inputProps = props;\n if ( /*#__PURE__*/isValidElement(props)) {\n inputProps = props.props;\n }\n if (!isObject(inputProps)) {\n return null;\n }\n var out = {};\n\n /**\n * Props are blindly spread onto SVG elements. This loop filters out properties that we don't want to spread.\n * Items filtered out are as follows:\n * - functions in properties that are SVG attributes (functions are included when includeEvents is true)\n * - props that are SVG attributes but don't matched the passed svgElementType\n * - any prop that is not in SVGElementPropKeys (or in EventKeys if includeEvents is true)\n */\n Object.keys(inputProps).forEach(function (key) {\n var _inputProps;\n if (isValidSpreadableProp((_inputProps = inputProps) === null || _inputProps === void 0 ? void 0 : _inputProps[key], key, includeEvents, svgElementType)) {\n out[key] = inputProps[key];\n }\n });\n return out;\n};\n\n/**\n * Wether props of children changed\n * @param {Object} nextChildren The latest children\n * @param {Object} prevChildren The prev children\n * @return {Boolean} equal or not\n */\nexport var isChildrenEqual = function isChildrenEqual(nextChildren, prevChildren) {\n if (nextChildren === prevChildren) {\n return true;\n }\n var count = Children.count(nextChildren);\n if (count !== Children.count(prevChildren)) {\n return false;\n }\n if (count === 0) {\n return true;\n }\n if (count === 1) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return isSingleChildEqual(Array.isArray(nextChildren) ? nextChildren[0] : nextChildren, Array.isArray(prevChildren) ? prevChildren[0] : prevChildren);\n }\n for (var i = 0; i < count; i++) {\n var nextChild = nextChildren[i];\n var prevChild = prevChildren[i];\n if (Array.isArray(nextChild) || Array.isArray(prevChild)) {\n if (!isChildrenEqual(nextChild, prevChild)) {\n return false;\n }\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n } else if (!isSingleChildEqual(nextChild, prevChild)) {\n return false;\n }\n }\n return true;\n};\nexport var isSingleChildEqual = function isSingleChildEqual(nextChild, prevChild) {\n if (isNil(nextChild) && isNil(prevChild)) {\n return true;\n }\n if (!isNil(nextChild) && !isNil(prevChild)) {\n var _ref = nextChild.props || {},\n nextChildren = _ref.children,\n nextProps = _objectWithoutProperties(_ref, _excluded);\n var _ref2 = prevChild.props || {},\n prevChildren = _ref2.children,\n prevProps = _objectWithoutProperties(_ref2, _excluded2);\n if (nextChildren && prevChildren) {\n return shallowEqual(nextProps, prevProps) && isChildrenEqual(nextChildren, prevChildren);\n }\n if (!nextChildren && !prevChildren) {\n return shallowEqual(nextProps, prevProps);\n }\n return false;\n }\n return false;\n};\nexport var renderByOrder = function renderByOrder(children, renderMap) {\n var elements = [];\n var record = {};\n toArray(children).forEach(function (child, index) {\n if (isSvgElement(child)) {\n elements.push(child);\n } else if (child) {\n var displayName = getDisplayName(child.type);\n var _ref3 = renderMap[displayName] || {},\n handler = _ref3.handler,\n once = _ref3.once;\n if (handler && (!once || !record[displayName])) {\n var results = handler(child, displayName, index);\n elements.push(results);\n record[displayName] = true;\n }\n }\n });\n return elements;\n};\nexport var getReactEventByType = function getReactEventByType(e) {\n var type = e && e.type;\n if (type && REACT_BROWSER_EVENT_MAP[type]) {\n return REACT_BROWSER_EVENT_MAP[type];\n }\n return null;\n};\nexport var parseChildIndex = function parseChildIndex(child, children) {\n return toArray(children).indexOf(child);\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n/**\n * @fileOverview Wrapper component to make charts adapt to the size of parent * DOM\n */\nimport clsx from 'clsx';\nimport React, { forwardRef, cloneElement, useState, useImperativeHandle, useRef, useEffect, useMemo, useCallback } from 'react';\nimport throttle from 'lodash/throttle';\nimport { isElement } from 'react-is';\nimport { isPercent } from '../util/DataUtils';\nimport { warn } from '../util/LogUtils';\nimport { getDisplayName } from '../util/ReactUtils';\nexport var ResponsiveContainer = /*#__PURE__*/forwardRef(function (_ref, ref) {\n var aspect = _ref.aspect,\n _ref$initialDimension = _ref.initialDimension,\n initialDimension = _ref$initialDimension === void 0 ? {\n width: -1,\n height: -1\n } : _ref$initialDimension,\n _ref$width = _ref.width,\n width = _ref$width === void 0 ? '100%' : _ref$width,\n _ref$height = _ref.height,\n height = _ref$height === void 0 ? '100%' : _ref$height,\n _ref$minWidth = _ref.minWidth,\n minWidth = _ref$minWidth === void 0 ? 0 : _ref$minWidth,\n minHeight = _ref.minHeight,\n maxHeight = _ref.maxHeight,\n children = _ref.children,\n _ref$debounce = _ref.debounce,\n debounce = _ref$debounce === void 0 ? 0 : _ref$debounce,\n id = _ref.id,\n className = _ref.className,\n onResize = _ref.onResize,\n _ref$style = _ref.style,\n style = _ref$style === void 0 ? {} : _ref$style;\n var containerRef = useRef(null);\n var onResizeRef = useRef();\n onResizeRef.current = onResize;\n useImperativeHandle(ref, function () {\n return Object.defineProperty(containerRef.current, 'current', {\n get: function get() {\n // eslint-disable-next-line no-console\n console.warn('The usage of ref.current.current is deprecated and will no longer be supported.');\n return containerRef.current;\n },\n configurable: true\n });\n });\n var _useState = useState({\n containerWidth: initialDimension.width,\n containerHeight: initialDimension.height\n }),\n _useState2 = _slicedToArray(_useState, 2),\n sizes = _useState2[0],\n setSizes = _useState2[1];\n var setContainerSize = useCallback(function (newWidth, newHeight) {\n setSizes(function (prevState) {\n var roundedWidth = Math.round(newWidth);\n var roundedHeight = Math.round(newHeight);\n if (prevState.containerWidth === roundedWidth && prevState.containerHeight === roundedHeight) {\n return prevState;\n }\n return {\n containerWidth: roundedWidth,\n containerHeight: roundedHeight\n };\n });\n }, []);\n useEffect(function () {\n var callback = function callback(entries) {\n var _onResizeRef$current;\n var _entries$0$contentRec = entries[0].contentRect,\n containerWidth = _entries$0$contentRec.width,\n containerHeight = _entries$0$contentRec.height;\n setContainerSize(containerWidth, containerHeight);\n (_onResizeRef$current = onResizeRef.current) === null || _onResizeRef$current === void 0 || _onResizeRef$current.call(onResizeRef, containerWidth, containerHeight);\n };\n if (debounce > 0) {\n callback = throttle(callback, debounce, {\n trailing: true,\n leading: false\n });\n }\n var observer = new ResizeObserver(callback);\n var _containerRef$current = containerRef.current.getBoundingClientRect(),\n containerWidth = _containerRef$current.width,\n containerHeight = _containerRef$current.height;\n setContainerSize(containerWidth, containerHeight);\n observer.observe(containerRef.current);\n return function () {\n observer.disconnect();\n };\n }, [setContainerSize, debounce]);\n var chartContent = useMemo(function () {\n var containerWidth = sizes.containerWidth,\n containerHeight = sizes.containerHeight;\n if (containerWidth < 0 || containerHeight < 0) {\n return null;\n }\n warn(isPercent(width) || isPercent(height), \"The width(%s) and height(%s) are both fixed numbers,\\n maybe you don't need to use a ResponsiveContainer.\", width, height);\n warn(!aspect || aspect > 0, 'The aspect(%s) must be greater than zero.', aspect);\n var calculatedWidth = isPercent(width) ? containerWidth : width;\n var calculatedHeight = isPercent(height) ? containerHeight : height;\n if (aspect && aspect > 0) {\n // Preserve the desired aspect ratio\n if (calculatedWidth) {\n // Will default to using width for aspect ratio\n calculatedHeight = calculatedWidth / aspect;\n } else if (calculatedHeight) {\n // But we should also take height into consideration\n calculatedWidth = calculatedHeight * aspect;\n }\n\n // if maxHeight is set, overwrite if calculatedHeight is greater than maxHeight\n if (maxHeight && calculatedHeight > maxHeight) {\n calculatedHeight = maxHeight;\n }\n }\n warn(calculatedWidth > 0 || calculatedHeight > 0, \"The width(%s) and height(%s) of chart should be greater than 0,\\n please check the style of container, or the props width(%s) and height(%s),\\n or add a minWidth(%s) or minHeight(%s) or use aspect(%s) to control the\\n height and width.\", calculatedWidth, calculatedHeight, width, height, minWidth, minHeight, aspect);\n var isCharts = !Array.isArray(children) && isElement(children) && getDisplayName(children.type).endsWith('Chart');\n return React.Children.map(children, function (child) {\n if (isElement(child)) {\n return /*#__PURE__*/cloneElement(child, _objectSpread({\n width: calculatedWidth,\n height: calculatedHeight\n }, isCharts ? {\n style: _objectSpread({\n height: '100%',\n width: '100%',\n maxHeight: calculatedHeight,\n maxWidth: calculatedWidth\n }, child.props.style)\n } : {}));\n }\n return child;\n });\n }, [aspect, children, height, maxHeight, minHeight, minWidth, sizes, width]);\n return /*#__PURE__*/React.createElement(\"div\", {\n id: id ? \"\".concat(id) : undefined,\n className: clsx('recharts-responsive-container', className),\n style: _objectSpread(_objectSpread({}, style), {}, {\n width: width,\n height: height,\n minWidth: minWidth,\n minHeight: minHeight,\n maxHeight: maxHeight\n }),\n ref: containerRef\n }, chartContent);\n});","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n var provided = typeof message === 'function' ? message() : message;\n var value = provided ? \"\".concat(prefix, \": \").concat(provided) : prefix;\n throw new Error(value);\n}\n\nexport { invariant as default };\n","var _excluded = [\"children\", \"width\", \"height\", \"viewBox\", \"className\", \"style\", \"title\", \"desc\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n/**\n * @fileOverview Surface\n */\nimport React from 'react';\nimport clsx from 'clsx';\nimport { filterProps } from '../util/ReactUtils';\nexport function Surface(props) {\n var children = props.children,\n width = props.width,\n height = props.height,\n viewBox = props.viewBox,\n className = props.className,\n style = props.style,\n title = props.title,\n desc = props.desc,\n others = _objectWithoutProperties(props, _excluded);\n var svgView = viewBox || {\n width: width,\n height: height,\n x: 0,\n y: 0\n };\n var layerClass = clsx('recharts-surface', className);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({}, filterProps(others, true, 'svg'), {\n className: layerClass,\n width: width,\n height: height,\n style: style,\n viewBox: \"\".concat(svgView.x, \" \").concat(svgView.y, \" \").concat(svgView.width, \" \").concat(svgView.height)\n }), /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"desc\", null, desc), children);\n}","var _excluded = [\"children\", \"className\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\nimport clsx from 'clsx';\nimport { filterProps } from '../util/ReactUtils';\nexport var Layer = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var children = props.children,\n className = props.className,\n others = _objectWithoutProperties(props, _excluded);\n var layerClass = clsx('recharts-layer', className);\n return /*#__PURE__*/React.createElement(\"g\", _extends({\n className: layerClass\n }, filterProps(others, true), {\n ref: ref\n }), children);\n});","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Default Tooltip Content\n */\n\nimport React from 'react';\nimport sortBy from 'lodash/sortBy';\nimport isNil from 'lodash/isNil';\nimport clsx from 'clsx';\nimport { isNumOrStr } from '../util/DataUtils';\nfunction defaultFormatter(value) {\n return Array.isArray(value) && isNumOrStr(value[0]) && isNumOrStr(value[1]) ? value.join(' ~ ') : value;\n}\nexport var DefaultTooltipContent = function DefaultTooltipContent(props) {\n var _props$separator = props.separator,\n separator = _props$separator === void 0 ? ' : ' : _props$separator,\n _props$contentStyle = props.contentStyle,\n contentStyle = _props$contentStyle === void 0 ? {} : _props$contentStyle,\n _props$itemStyle = props.itemStyle,\n itemStyle = _props$itemStyle === void 0 ? {} : _props$itemStyle,\n _props$labelStyle = props.labelStyle,\n labelStyle = _props$labelStyle === void 0 ? {} : _props$labelStyle,\n payload = props.payload,\n formatter = props.formatter,\n itemSorter = props.itemSorter,\n wrapperClassName = props.wrapperClassName,\n labelClassName = props.labelClassName,\n label = props.label,\n labelFormatter = props.labelFormatter,\n _props$accessibilityL = props.accessibilityLayer,\n accessibilityLayer = _props$accessibilityL === void 0 ? false : _props$accessibilityL;\n var renderContent = function renderContent() {\n if (payload && payload.length) {\n var listStyle = {\n padding: 0,\n margin: 0\n };\n var items = (itemSorter ? sortBy(payload, itemSorter) : payload).map(function (entry, i) {\n if (entry.type === 'none') {\n return null;\n }\n var finalItemStyle = _objectSpread({\n display: 'block',\n paddingTop: 4,\n paddingBottom: 4,\n color: entry.color || '#000'\n }, itemStyle);\n var finalFormatter = entry.formatter || formatter || defaultFormatter;\n var value = entry.value,\n name = entry.name;\n var finalValue = value;\n var finalName = name;\n if (finalFormatter && finalValue != null && finalName != null) {\n var formatted = finalFormatter(value, name, entry, i, payload);\n if (Array.isArray(formatted)) {\n var _formatted = _slicedToArray(formatted, 2);\n finalValue = _formatted[0];\n finalName = _formatted[1];\n } else {\n finalValue = formatted;\n }\n }\n return (\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(\"li\", {\n className: \"recharts-tooltip-item\",\n key: \"tooltip-item-\".concat(i),\n style: finalItemStyle\n }, isNumOrStr(finalName) ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-name\"\n }, finalName) : null, isNumOrStr(finalName) ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-separator\"\n }, separator) : null, /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-value\"\n }, finalValue), /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-unit\"\n }, entry.unit || ''))\n );\n });\n return /*#__PURE__*/React.createElement(\"ul\", {\n className: \"recharts-tooltip-item-list\",\n style: listStyle\n }, items);\n }\n return null;\n };\n var finalStyle = _objectSpread({\n margin: 0,\n padding: 10,\n backgroundColor: '#fff',\n border: '1px solid #ccc',\n whiteSpace: 'nowrap'\n }, contentStyle);\n var finalLabelStyle = _objectSpread({\n margin: 0\n }, labelStyle);\n var hasLabel = !isNil(label);\n var finalLabel = hasLabel ? label : '';\n var wrapperCN = clsx('recharts-default-tooltip', wrapperClassName);\n var labelCN = clsx('recharts-tooltip-label', labelClassName);\n if (hasLabel && labelFormatter && payload !== undefined && payload !== null) {\n finalLabel = labelFormatter(label, payload);\n }\n var accessibilityAttributes = accessibilityLayer ? {\n role: 'status',\n 'aria-live': 'assertive'\n } : {};\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: wrapperCN,\n style: finalStyle\n }, accessibilityAttributes), /*#__PURE__*/React.createElement(\"p\", {\n className: labelCN,\n style: finalLabelStyle\n }, /*#__PURE__*/React.isValidElement(finalLabel) ? finalLabel : \"\".concat(finalLabel)), renderContent());\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport clsx from 'clsx';\nimport { isNumber } from '../DataUtils';\nvar CSS_CLASS_PREFIX = 'recharts-tooltip-wrapper';\nvar TOOLTIP_HIDDEN = {\n visibility: 'hidden'\n};\nexport function getTooltipCSSClassName(_ref) {\n var coordinate = _ref.coordinate,\n translateX = _ref.translateX,\n translateY = _ref.translateY;\n return clsx(CSS_CLASS_PREFIX, _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(CSS_CLASS_PREFIX, \"-right\"), isNumber(translateX) && coordinate && isNumber(coordinate.x) && translateX >= coordinate.x), \"\".concat(CSS_CLASS_PREFIX, \"-left\"), isNumber(translateX) && coordinate && isNumber(coordinate.x) && translateX < coordinate.x), \"\".concat(CSS_CLASS_PREFIX, \"-bottom\"), isNumber(translateY) && coordinate && isNumber(coordinate.y) && translateY >= coordinate.y), \"\".concat(CSS_CLASS_PREFIX, \"-top\"), isNumber(translateY) && coordinate && isNumber(coordinate.y) && translateY < coordinate.y));\n}\nexport function getTooltipTranslateXY(_ref2) {\n var allowEscapeViewBox = _ref2.allowEscapeViewBox,\n coordinate = _ref2.coordinate,\n key = _ref2.key,\n offsetTopLeft = _ref2.offsetTopLeft,\n position = _ref2.position,\n reverseDirection = _ref2.reverseDirection,\n tooltipDimension = _ref2.tooltipDimension,\n viewBox = _ref2.viewBox,\n viewBoxDimension = _ref2.viewBoxDimension;\n if (position && isNumber(position[key])) {\n return position[key];\n }\n var negative = coordinate[key] - tooltipDimension - offsetTopLeft;\n var positive = coordinate[key] + offsetTopLeft;\n if (allowEscapeViewBox[key]) {\n return reverseDirection[key] ? negative : positive;\n }\n if (reverseDirection[key]) {\n var _tooltipBoundary = negative;\n var _viewBoxBoundary = viewBox[key];\n if (_tooltipBoundary < _viewBoxBoundary) {\n return Math.max(positive, viewBox[key]);\n }\n return Math.max(negative, viewBox[key]);\n }\n var tooltipBoundary = positive + tooltipDimension;\n var viewBoxBoundary = viewBox[key] + viewBoxDimension;\n if (tooltipBoundary > viewBoxBoundary) {\n return Math.max(negative, viewBox[key]);\n }\n return Math.max(positive, viewBox[key]);\n}\nexport function getTransformStyle(_ref3) {\n var translateX = _ref3.translateX,\n translateY = _ref3.translateY,\n useTranslate3d = _ref3.useTranslate3d;\n return {\n transform: useTranslate3d ? \"translate3d(\".concat(translateX, \"px, \").concat(translateY, \"px, 0)\") : \"translate(\".concat(translateX, \"px, \").concat(translateY, \"px)\")\n };\n}\nexport function getTooltipTranslate(_ref4) {\n var allowEscapeViewBox = _ref4.allowEscapeViewBox,\n coordinate = _ref4.coordinate,\n offsetTopLeft = _ref4.offsetTopLeft,\n position = _ref4.position,\n reverseDirection = _ref4.reverseDirection,\n tooltipBox = _ref4.tooltipBox,\n useTranslate3d = _ref4.useTranslate3d,\n viewBox = _ref4.viewBox;\n var cssProperties, translateX, translateY;\n if (tooltipBox.height > 0 && tooltipBox.width > 0 && coordinate) {\n translateX = getTooltipTranslateXY({\n allowEscapeViewBox: allowEscapeViewBox,\n coordinate: coordinate,\n key: 'x',\n offsetTopLeft: offsetTopLeft,\n position: position,\n reverseDirection: reverseDirection,\n tooltipDimension: tooltipBox.width,\n viewBox: viewBox,\n viewBoxDimension: viewBox.width\n });\n translateY = getTooltipTranslateXY({\n allowEscapeViewBox: allowEscapeViewBox,\n coordinate: coordinate,\n key: 'y',\n offsetTopLeft: offsetTopLeft,\n position: position,\n reverseDirection: reverseDirection,\n tooltipDimension: tooltipBox.height,\n viewBox: viewBox,\n viewBoxDimension: viewBox.height\n });\n cssProperties = getTransformStyle({\n translateX: translateX,\n translateY: translateY,\n useTranslate3d: useTranslate3d\n });\n } else {\n cssProperties = TOOLTIP_HIDDEN;\n }\n return {\n cssProperties: cssProperties,\n cssClasses: getTooltipCSSClassName({\n translateX: translateX,\n translateY: translateY,\n coordinate: coordinate\n })\n };\n}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport React, { PureComponent } from 'react';\nimport { getTooltipTranslate } from '../util/tooltip/translate';\nvar EPSILON = 1;\nexport var TooltipBoundingBox = /*#__PURE__*/function (_PureComponent) {\n _inherits(TooltipBoundingBox, _PureComponent);\n function TooltipBoundingBox() {\n var _this;\n _classCallCheck(this, TooltipBoundingBox);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _callSuper(this, TooltipBoundingBox, [].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n dismissed: false,\n dismissedAtCoordinate: {\n x: 0,\n y: 0\n },\n lastBoundingBox: {\n width: -1,\n height: -1\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleKeyDown\", function (event) {\n if (event.key === 'Escape') {\n var _this$props$coordinat, _this$props$coordinat2, _this$props$coordinat3, _this$props$coordinat4;\n _this.setState({\n dismissed: true,\n dismissedAtCoordinate: {\n x: (_this$props$coordinat = (_this$props$coordinat2 = _this.props.coordinate) === null || _this$props$coordinat2 === void 0 ? void 0 : _this$props$coordinat2.x) !== null && _this$props$coordinat !== void 0 ? _this$props$coordinat : 0,\n y: (_this$props$coordinat3 = (_this$props$coordinat4 = _this.props.coordinate) === null || _this$props$coordinat4 === void 0 ? void 0 : _this$props$coordinat4.y) !== null && _this$props$coordinat3 !== void 0 ? _this$props$coordinat3 : 0\n }\n });\n }\n });\n return _this;\n }\n _createClass(TooltipBoundingBox, [{\n key: \"updateBBox\",\n value: function updateBBox() {\n if (this.wrapperNode && this.wrapperNode.getBoundingClientRect) {\n var box = this.wrapperNode.getBoundingClientRect();\n if (Math.abs(box.width - this.state.lastBoundingBox.width) > EPSILON || Math.abs(box.height - this.state.lastBoundingBox.height) > EPSILON) {\n this.setState({\n lastBoundingBox: {\n width: box.width,\n height: box.height\n }\n });\n }\n } else if (this.state.lastBoundingBox.width !== -1 || this.state.lastBoundingBox.height !== -1) {\n this.setState({\n lastBoundingBox: {\n width: -1,\n height: -1\n }\n });\n }\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n document.addEventListener('keydown', this.handleKeyDown);\n this.updateBBox();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n document.removeEventListener('keydown', this.handleKeyDown);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n var _this$props$coordinat5, _this$props$coordinat6;\n if (this.props.active) {\n this.updateBBox();\n }\n if (!this.state.dismissed) {\n return;\n }\n if (((_this$props$coordinat5 = this.props.coordinate) === null || _this$props$coordinat5 === void 0 ? void 0 : _this$props$coordinat5.x) !== this.state.dismissedAtCoordinate.x || ((_this$props$coordinat6 = this.props.coordinate) === null || _this$props$coordinat6 === void 0 ? void 0 : _this$props$coordinat6.y) !== this.state.dismissedAtCoordinate.y) {\n this.state.dismissed = false;\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n var _this$props = this.props,\n active = _this$props.active,\n allowEscapeViewBox = _this$props.allowEscapeViewBox,\n animationDuration = _this$props.animationDuration,\n animationEasing = _this$props.animationEasing,\n children = _this$props.children,\n coordinate = _this$props.coordinate,\n hasPayload = _this$props.hasPayload,\n isAnimationActive = _this$props.isAnimationActive,\n offset = _this$props.offset,\n position = _this$props.position,\n reverseDirection = _this$props.reverseDirection,\n useTranslate3d = _this$props.useTranslate3d,\n viewBox = _this$props.viewBox,\n wrapperStyle = _this$props.wrapperStyle;\n var _getTooltipTranslate = getTooltipTranslate({\n allowEscapeViewBox: allowEscapeViewBox,\n coordinate: coordinate,\n offsetTopLeft: offset,\n position: position,\n reverseDirection: reverseDirection,\n tooltipBox: this.state.lastBoundingBox,\n useTranslate3d: useTranslate3d,\n viewBox: viewBox\n }),\n cssClasses = _getTooltipTranslate.cssClasses,\n cssProperties = _getTooltipTranslate.cssProperties;\n var outerStyle = _objectSpread(_objectSpread({\n transition: isAnimationActive && active ? \"transform \".concat(animationDuration, \"ms \").concat(animationEasing) : undefined\n }, cssProperties), {}, {\n pointerEvents: 'none',\n visibility: !this.state.dismissed && active && hasPayload ? 'visible' : 'hidden',\n position: 'absolute',\n top: 0,\n left: 0\n }, wrapperStyle);\n return (\n /*#__PURE__*/\n // This element allow listening to the `Escape` key.\n // See https://github.com/recharts/recharts/pull/2925\n React.createElement(\"div\", {\n tabIndex: -1,\n className: cssClasses,\n style: outerStyle,\n ref: function ref(node) {\n _this2.wrapperNode = node;\n }\n }, children)\n );\n }\n }]);\n return TooltipBoundingBox;\n}(PureComponent);","var parseIsSsrByDefault = function parseIsSsrByDefault() {\n return !(typeof window !== 'undefined' && window.document && window.document.createElement && window.setTimeout);\n};\nexport var Global = {\n isSsr: parseIsSsrByDefault(),\n get: function get(key) {\n return Global[key];\n },\n set: function set(key, value) {\n if (typeof key === 'string') {\n Global[key] = value;\n } else {\n var keys = Object.keys(key);\n if (keys && keys.length) {\n keys.forEach(function (k) {\n Global[k] = key[k];\n });\n }\n }\n }\n};","import uniqBy from 'lodash/uniqBy';\nimport isFunction from 'lodash/isFunction';\n\n/**\n * This is configuration option that decides how to filter for unique values only:\n *\n * - `false` means \"no filter\"\n * - `true` means \"use recharts default filter\"\n * - function means \"use return of this function as the default key\"\n */\n\nexport function getUniqPayload(payload, option, defaultUniqBy) {\n if (option === true) {\n return uniqBy(payload, defaultUniqBy);\n }\n if (isFunction(option)) {\n return uniqBy(payload, option);\n }\n return payload;\n}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Tooltip\n */\nimport React, { PureComponent } from 'react';\nimport { DefaultTooltipContent } from './DefaultTooltipContent';\nimport { TooltipBoundingBox } from './TooltipBoundingBox';\nimport { Global } from '../util/Global';\nimport { getUniqPayload } from '../util/payload/getUniqPayload';\nfunction defaultUniqBy(entry) {\n return entry.dataKey;\n}\nfunction renderContent(content, props) {\n if ( /*#__PURE__*/React.isValidElement(content)) {\n return /*#__PURE__*/React.cloneElement(content, props);\n }\n if (typeof content === 'function') {\n return /*#__PURE__*/React.createElement(content, props);\n }\n return /*#__PURE__*/React.createElement(DefaultTooltipContent, props);\n}\nexport var Tooltip = /*#__PURE__*/function (_PureComponent) {\n _inherits(Tooltip, _PureComponent);\n function Tooltip() {\n _classCallCheck(this, Tooltip);\n return _callSuper(this, Tooltip, arguments);\n }\n _createClass(Tooltip, [{\n key: \"render\",\n value: function render() {\n var _this = this;\n var _this$props = this.props,\n active = _this$props.active,\n allowEscapeViewBox = _this$props.allowEscapeViewBox,\n animationDuration = _this$props.animationDuration,\n animationEasing = _this$props.animationEasing,\n content = _this$props.content,\n coordinate = _this$props.coordinate,\n filterNull = _this$props.filterNull,\n isAnimationActive = _this$props.isAnimationActive,\n offset = _this$props.offset,\n payload = _this$props.payload,\n payloadUniqBy = _this$props.payloadUniqBy,\n position = _this$props.position,\n reverseDirection = _this$props.reverseDirection,\n useTranslate3d = _this$props.useTranslate3d,\n viewBox = _this$props.viewBox,\n wrapperStyle = _this$props.wrapperStyle;\n var finalPayload = payload !== null && payload !== void 0 ? payload : [];\n if (filterNull && finalPayload.length) {\n finalPayload = getUniqPayload(payload.filter(function (entry) {\n return entry.value != null && (entry.hide !== true || _this.props.includeHidden);\n }), payloadUniqBy, defaultUniqBy);\n }\n var hasPayload = finalPayload.length > 0;\n return /*#__PURE__*/React.createElement(TooltipBoundingBox, {\n allowEscapeViewBox: allowEscapeViewBox,\n animationDuration: animationDuration,\n animationEasing: animationEasing,\n isAnimationActive: isAnimationActive,\n active: active,\n coordinate: coordinate,\n hasPayload: hasPayload,\n offset: offset,\n position: position,\n reverseDirection: reverseDirection,\n useTranslate3d: useTranslate3d,\n viewBox: viewBox,\n wrapperStyle: wrapperStyle\n }, renderContent(content, _objectSpread(_objectSpread({}, this.props), {}, {\n payload: finalPayload\n })));\n }\n }]);\n return Tooltip;\n}(PureComponent);\n_defineProperty(Tooltip, \"displayName\", 'Tooltip');\n_defineProperty(Tooltip, \"defaultProps\", {\n accessibilityLayer: false,\n allowEscapeViewBox: {\n x: false,\n y: false\n },\n animationDuration: 400,\n animationEasing: 'ease',\n contentStyle: {},\n coordinate: {\n x: 0,\n y: 0\n },\n cursor: true,\n cursorStyle: {},\n filterNull: true,\n isAnimationActive: !Global.isSsr,\n itemStyle: {},\n labelStyle: {},\n offset: 10,\n reverseDirection: {\n x: false,\n y: false\n },\n separator: ' : ',\n trigger: 'hover',\n useTranslate3d: false,\n viewBox: {\n x: 0,\n y: 0,\n height: 0,\n width: 0\n },\n wrapperStyle: {}\n});","export const abs = Math.abs;\nexport const atan2 = Math.atan2;\nexport const cos = Math.cos;\nexport const max = Math.max;\nexport const min = Math.min;\nexport const sin = Math.sin;\nexport const sqrt = Math.sqrt;\n\nexport const epsilon = 1e-12;\nexport const pi = Math.PI;\nexport const halfPi = pi / 2;\nexport const tau = 2 * pi;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n","import {pi, sqrt, tau} from \"../math.js\";\n\nexport default {\n draw(context, size) {\n const r = sqrt(size / pi);\n context.moveTo(r, 0);\n context.arc(0, 0, r, 0, tau);\n }\n};\n","import {sqrt} from \"../math.js\";\n\nexport default {\n draw(context, size) {\n const r = sqrt(size / 5) / 2;\n context.moveTo(-3 * r, -r);\n context.lineTo(-r, -r);\n context.lineTo(-r, -3 * r);\n context.lineTo(r, -3 * r);\n context.lineTo(r, -r);\n context.lineTo(3 * r, -r);\n context.lineTo(3 * r, r);\n context.lineTo(r, r);\n context.lineTo(r, 3 * r);\n context.lineTo(-r, 3 * r);\n context.lineTo(-r, r);\n context.lineTo(-3 * r, r);\n context.closePath();\n }\n};\n","import {sqrt} from \"../math.js\";\n\nconst tan30 = sqrt(1 / 3);\nconst tan30_2 = tan30 * 2;\n\nexport default {\n draw(context, size) {\n const y = sqrt(size / tan30_2);\n const x = y * tan30;\n context.moveTo(0, -y);\n context.lineTo(x, 0);\n context.lineTo(0, y);\n context.lineTo(-x, 0);\n context.closePath();\n }\n};\n","import {sqrt} from \"../math.js\";\n\nexport default {\n draw(context, size) {\n const w = sqrt(size);\n const x = -w / 2;\n context.rect(x, x, w, w);\n }\n};\n","import {sin, cos, sqrt, pi, tau} from \"../math.js\";\n\nconst ka = 0.89081309152928522810;\nconst kr = sin(pi / 10) / sin(7 * pi / 10);\nconst kx = sin(tau / 10) * kr;\nconst ky = -cos(tau / 10) * kr;\n\nexport default {\n draw(context, size) {\n const r = sqrt(size * ka);\n const x = kx * r;\n const y = ky * r;\n context.moveTo(0, -r);\n context.lineTo(x, y);\n for (let i = 1; i < 5; ++i) {\n const a = tau * i / 5;\n const c = cos(a);\n const s = sin(a);\n context.lineTo(s * r, -c * r);\n context.lineTo(c * x - s * y, s * x + c * y);\n }\n context.closePath();\n }\n};\n","import {sqrt} from \"../math.js\";\n\nconst sqrt3 = sqrt(3);\n\nexport default {\n draw(context, size) {\n const y = -sqrt(size / (sqrt3 * 3));\n context.moveTo(0, y * 2);\n context.lineTo(-sqrt3 * y, -y);\n context.lineTo(sqrt3 * y, -y);\n context.closePath();\n }\n};\n","import {sqrt} from \"../math.js\";\n\nconst c = -0.5;\nconst s = sqrt(3) / 2;\nconst k = 1 / sqrt(12);\nconst a = (k / 2 + 1) * 3;\n\nexport default {\n draw(context, size) {\n const r = sqrt(size / a);\n const x0 = r / 2, y0 = r * k;\n const x1 = x0, y1 = r * k + r;\n const x2 = -x1, y2 = y1;\n context.moveTo(x0, y0);\n context.lineTo(x1, y1);\n context.lineTo(x2, y2);\n context.lineTo(c * x0 - s * y0, s * x0 + c * y0);\n context.lineTo(c * x1 - s * y1, s * x1 + c * y1);\n context.lineTo(c * x2 - s * y2, s * x2 + c * y2);\n context.lineTo(c * x0 + s * y0, c * y0 - s * x0);\n context.lineTo(c * x1 + s * y1, c * y1 - s * x1);\n context.lineTo(c * x2 + s * y2, c * y2 - s * x2);\n context.closePath();\n }\n};\n","export default function(x) {\n return function constant() {\n return x;\n };\n}\n","const pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction append(strings) {\n this._ += strings[0];\n for (let i = 1, n = strings.length; i < n; ++i) {\n this._ += arguments[i] + strings[i];\n }\n}\n\nfunction appendRound(digits) {\n let d = Math.floor(digits);\n if (!(d >= 0)) throw new Error(`invalid digits: ${digits}`);\n if (d > 15) return append;\n const k = 10 ** d;\n return function(strings) {\n this._ += strings[0];\n for (let i = 1, n = strings.length; i < n; ++i) {\n this._ += Math.round(arguments[i] * k) / k + strings[i];\n }\n };\n}\n\nexport class Path {\n constructor(digits) {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n this._append = digits == null ? append : appendRound(digits);\n }\n moveTo(x, y) {\n this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}`;\n }\n closePath() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._append`Z`;\n }\n }\n lineTo(x, y) {\n this._append`L${this._x1 = +x},${this._y1 = +y}`;\n }\n quadraticCurveTo(x1, y1, x, y) {\n this._append`Q${+x1},${+y1},${this._x1 = +x},${this._y1 = +y}`;\n }\n bezierCurveTo(x1, y1, x2, y2, x, y) {\n this._append`C${+x1},${+y1},${+x2},${+y2},${this._x1 = +x},${this._y1 = +y}`;\n }\n arcTo(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(`negative radius: ${r}`);\n\n let x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._append`M${this._x1 = x1},${this._y1 = y1}`;\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._append`L${this._x1 = x1},${this._y1 = y1}`;\n }\n\n // Otherwise, draw an arc!\n else {\n let x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._append`L${x1 + t01 * x01},${y1 + t01 * y01}`;\n }\n\n this._append`A${r},${r},0,0,${+(y01 * x20 > x01 * y20)},${this._x1 = x1 + t21 * x21},${this._y1 = y1 + t21 * y21}`;\n }\n }\n arc(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(`negative radius: ${r}`);\n\n let dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._append`M${x0},${y0}`;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._append`L${x0},${y0}`;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._append`A${r},${r},0,1,${cw},${x - dx},${y - dy}A${r},${r},0,1,${cw},${this._x1 = x0},${this._y1 = y0}`;\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._append`A${r},${r},0,${+(da >= pi)},${cw},${this._x1 = x + r * Math.cos(a1)},${this._y1 = y + r * Math.sin(a1)}`;\n }\n }\n rect(x, y, w, h) {\n this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}h${w = +w}v${+h}h${-w}Z`;\n }\n toString() {\n return this._;\n }\n}\n\nexport function path() {\n return new Path;\n}\n\n// Allow instanceof d3.path\npath.prototype = Path.prototype;\n\nexport function pathRound(digits = 3) {\n return new Path(+digits);\n}\n","import {Path} from \"d3-path\";\n\nexport function withPath(shape) {\n let digits = 3;\n\n shape.digits = function(_) {\n if (!arguments.length) return digits;\n if (_ == null) {\n digits = null;\n } else {\n const d = Math.floor(_);\n if (!(d >= 0)) throw new RangeError(`invalid digits: ${_}`);\n digits = d;\n }\n return shape;\n };\n\n return () => new Path(digits);\n}\n","import {min, sqrt} from \"../math.js\";\n\nconst sqrt3 = sqrt(3);\n\nexport default {\n draw(context, size) {\n const r = sqrt(size + min(size / 28, 0.75)) * 0.59436;\n const t = r / 2;\n const u = t * sqrt3;\n context.moveTo(0, r);\n context.lineTo(0, -r);\n context.moveTo(-u, -t);\n context.lineTo(u, t);\n context.moveTo(-u, t);\n context.lineTo(u, -t);\n }\n};\n","import {sqrt} from \"../math.js\";\n\nconst sqrt3 = sqrt(3);\n\nexport default {\n draw(context, size) {\n const s = sqrt(size) * 0.6824;\n const t = s / 2;\n const u = (s * sqrt3) / 2; // cos(Math.PI / 6)\n context.moveTo(0, -s);\n context.lineTo(u, t);\n context.lineTo(-u, t);\n context.closePath();\n }\n};\n","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar _excluded = [\"type\", \"size\", \"sizeType\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n/**\n * @fileOverview Curve\n */\nimport React from 'react';\nimport upperFirst from 'lodash/upperFirst';\nimport { symbol as shapeSymbol, symbolCircle, symbolCross, symbolDiamond, symbolSquare, symbolStar, symbolTriangle, symbolWye } from 'victory-vendor/d3-shape';\nimport clsx from 'clsx';\nimport { filterProps } from '../util/ReactUtils';\nvar symbolFactories = {\n symbolCircle: symbolCircle,\n symbolCross: symbolCross,\n symbolDiamond: symbolDiamond,\n symbolSquare: symbolSquare,\n symbolStar: symbolStar,\n symbolTriangle: symbolTriangle,\n symbolWye: symbolWye\n};\nvar RADIAN = Math.PI / 180;\nvar getSymbolFactory = function getSymbolFactory(type) {\n var name = \"symbol\".concat(upperFirst(type));\n return symbolFactories[name] || symbolCircle;\n};\nvar calculateAreaSize = function calculateAreaSize(size, sizeType, type) {\n if (sizeType === 'area') {\n return size;\n }\n switch (type) {\n case 'cross':\n return 5 * size * size / 9;\n case 'diamond':\n return 0.5 * size * size / Math.sqrt(3);\n case 'square':\n return size * size;\n case 'star':\n {\n var angle = 18 * RADIAN;\n return 1.25 * size * size * (Math.tan(angle) - Math.tan(angle * 2) * Math.pow(Math.tan(angle), 2));\n }\n case 'triangle':\n return Math.sqrt(3) * size * size / 4;\n case 'wye':\n return (21 - 10 * Math.sqrt(3)) * size * size / 8;\n default:\n return Math.PI * size * size / 4;\n }\n};\nvar registerSymbol = function registerSymbol(key, factory) {\n symbolFactories[\"symbol\".concat(upperFirst(key))] = factory;\n};\nexport var Symbols = function Symbols(_ref) {\n var _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'circle' : _ref$type,\n _ref$size = _ref.size,\n size = _ref$size === void 0 ? 64 : _ref$size,\n _ref$sizeType = _ref.sizeType,\n sizeType = _ref$sizeType === void 0 ? 'area' : _ref$sizeType,\n rest = _objectWithoutProperties(_ref, _excluded);\n var props = _objectSpread(_objectSpread({}, rest), {}, {\n type: type,\n size: size,\n sizeType: sizeType\n });\n\n /**\n * Calculate the path of curve\n * @return {String} path\n */\n var getPath = function getPath() {\n var symbolFactory = getSymbolFactory(type);\n var symbol = shapeSymbol().type(symbolFactory).size(calculateAreaSize(size, sizeType, type));\n return symbol();\n };\n var className = props.className,\n cx = props.cx,\n cy = props.cy;\n var filteredProps = filterProps(props, true);\n if (cx === +cx && cy === +cy && size === +size) {\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filteredProps, {\n className: clsx('recharts-symbols', className),\n transform: \"translate(\".concat(cx, \", \").concat(cy, \")\"),\n d: getPath()\n }));\n }\n return null;\n};\nSymbols.registerSymbol = registerSymbol;","import constant from \"./constant.js\";\nimport {withPath} from \"./path.js\";\nimport asterisk from \"./symbol/asterisk.js\";\nimport circle from \"./symbol/circle.js\";\nimport cross from \"./symbol/cross.js\";\nimport diamond from \"./symbol/diamond.js\";\nimport diamond2 from \"./symbol/diamond2.js\";\nimport plus from \"./symbol/plus.js\";\nimport square from \"./symbol/square.js\";\nimport square2 from \"./symbol/square2.js\";\nimport star from \"./symbol/star.js\";\nimport triangle from \"./symbol/triangle.js\";\nimport triangle2 from \"./symbol/triangle2.js\";\nimport wye from \"./symbol/wye.js\";\nimport times from \"./symbol/times.js\";\n\n// These symbols are designed to be filled.\nexport const symbolsFill = [\n circle,\n cross,\n diamond,\n square,\n star,\n triangle,\n wye\n];\n\n// These symbols are designed to be stroked (with a width of 1.5px and round caps).\nexport const symbolsStroke = [\n circle,\n plus,\n times,\n triangle2,\n asterisk,\n square2,\n diamond2\n];\n\nexport default function Symbol(type, size) {\n let context = null,\n path = withPath(symbol);\n\n type = typeof type === \"function\" ? type : constant(type || circle);\n size = typeof size === \"function\" ? size : constant(size === undefined ? 64 : +size);\n\n function symbol() {\n let buffer;\n if (!context) context = buffer = path();\n type.apply(this, arguments).draw(context, +size.apply(this, arguments));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n symbol.type = function(_) {\n return arguments.length ? (type = typeof _ === \"function\" ? _ : constant(_), symbol) : type;\n };\n\n symbol.size = function(_) {\n return arguments.length ? (size = typeof _ === \"function\" ? _ : constant(+_), symbol) : size;\n };\n\n symbol.context = function(_) {\n return arguments.length ? (context = _ == null ? null : _, symbol) : context;\n };\n\n return symbol;\n}\n","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Default Legend Content\n */\nimport React, { PureComponent } from 'react';\nimport isFunction from 'lodash/isFunction';\nimport clsx from 'clsx';\nimport { warn } from '../util/LogUtils';\nimport { Surface } from '../container/Surface';\nimport { Symbols } from '../shape/Symbols';\nimport { adaptEventsOfChild } from '../util/types';\nvar SIZE = 32;\nexport var DefaultLegendContent = /*#__PURE__*/function (_PureComponent) {\n _inherits(DefaultLegendContent, _PureComponent);\n function DefaultLegendContent() {\n _classCallCheck(this, DefaultLegendContent);\n return _callSuper(this, DefaultLegendContent, arguments);\n }\n _createClass(DefaultLegendContent, [{\n key: \"renderIcon\",\n value:\n /**\n * Render the path of icon\n * @param {Object} data Data of each legend item\n * @return {String} Path element\n */\n function renderIcon(data) {\n var inactiveColor = this.props.inactiveColor;\n var halfSize = SIZE / 2;\n var sixthSize = SIZE / 6;\n var thirdSize = SIZE / 3;\n var color = data.inactive ? inactiveColor : data.color;\n if (data.type === 'plainline') {\n return /*#__PURE__*/React.createElement(\"line\", {\n strokeWidth: 4,\n fill: \"none\",\n stroke: color,\n strokeDasharray: data.payload.strokeDasharray,\n x1: 0,\n y1: halfSize,\n x2: SIZE,\n y2: halfSize,\n className: \"recharts-legend-icon\"\n });\n }\n if (data.type === 'line') {\n return /*#__PURE__*/React.createElement(\"path\", {\n strokeWidth: 4,\n fill: \"none\",\n stroke: color,\n d: \"M0,\".concat(halfSize, \"h\").concat(thirdSize, \"\\n A\").concat(sixthSize, \",\").concat(sixthSize, \",0,1,1,\").concat(2 * thirdSize, \",\").concat(halfSize, \"\\n H\").concat(SIZE, \"M\").concat(2 * thirdSize, \",\").concat(halfSize, \"\\n A\").concat(sixthSize, \",\").concat(sixthSize, \",0,1,1,\").concat(thirdSize, \",\").concat(halfSize),\n className: \"recharts-legend-icon\"\n });\n }\n if (data.type === 'rect') {\n return /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"none\",\n fill: color,\n d: \"M0,\".concat(SIZE / 8, \"h\").concat(SIZE, \"v\").concat(SIZE * 3 / 4, \"h\").concat(-SIZE, \"z\"),\n className: \"recharts-legend-icon\"\n });\n }\n if ( /*#__PURE__*/React.isValidElement(data.legendIcon)) {\n var iconProps = _objectSpread({}, data);\n delete iconProps.legendIcon;\n return /*#__PURE__*/React.cloneElement(data.legendIcon, iconProps);\n }\n return /*#__PURE__*/React.createElement(Symbols, {\n fill: color,\n cx: halfSize,\n cy: halfSize,\n size: SIZE,\n sizeType: \"diameter\",\n type: data.type\n });\n }\n\n /**\n * Draw items of legend\n * @return {ReactElement} Items\n */\n }, {\n key: \"renderItems\",\n value: function renderItems() {\n var _this = this;\n var _this$props = this.props,\n payload = _this$props.payload,\n iconSize = _this$props.iconSize,\n layout = _this$props.layout,\n formatter = _this$props.formatter,\n inactiveColor = _this$props.inactiveColor;\n var viewBox = {\n x: 0,\n y: 0,\n width: SIZE,\n height: SIZE\n };\n var itemStyle = {\n display: layout === 'horizontal' ? 'inline-block' : 'block',\n marginRight: 10\n };\n var svgStyle = {\n display: 'inline-block',\n verticalAlign: 'middle',\n marginRight: 4\n };\n return payload.map(function (entry, i) {\n var finalFormatter = entry.formatter || formatter;\n var className = clsx(_defineProperty(_defineProperty({\n 'recharts-legend-item': true\n }, \"legend-item-\".concat(i), true), \"inactive\", entry.inactive));\n if (entry.type === 'none') {\n return null;\n }\n\n // Do not render entry.value as functions. Always require static string properties.\n var entryValue = !isFunction(entry.value) ? entry.value : null;\n warn(!isFunction(entry.value), \"The name property is also required when using a function for the dataKey of a chart's cartesian components. Ex: \" // eslint-disable-line max-len\n );\n var color = entry.inactive ? inactiveColor : entry.color;\n return /*#__PURE__*/React.createElement(\"li\", _extends({\n className: className,\n style: itemStyle\n // eslint-disable-next-line react/no-array-index-key\n ,\n key: \"legend-item-\".concat(i)\n }, adaptEventsOfChild(_this.props, entry, i)), /*#__PURE__*/React.createElement(Surface, {\n width: iconSize,\n height: iconSize,\n viewBox: viewBox,\n style: svgStyle\n }, _this.renderIcon(entry)), /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-legend-item-text\",\n style: {\n color: color\n }\n }, finalFormatter ? finalFormatter(entryValue, entry, i) : entryValue));\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n payload = _this$props2.payload,\n layout = _this$props2.layout,\n align = _this$props2.align;\n if (!payload || !payload.length) {\n return null;\n }\n var finalStyle = {\n padding: 0,\n margin: 0,\n textAlign: layout === 'horizontal' ? align : 'left'\n };\n return /*#__PURE__*/React.createElement(\"ul\", {\n className: \"recharts-default-legend\",\n style: finalStyle\n }, this.renderItems());\n }\n }]);\n return DefaultLegendContent;\n}(PureComponent);\n_defineProperty(DefaultLegendContent, \"displayName\", 'Legend');\n_defineProperty(DefaultLegendContent, \"defaultProps\", {\n iconSize: 14,\n layout: 'horizontal',\n align: 'center',\n verticalAlign: 'middle',\n inactiveColor: '#ccc'\n});","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar _excluded = [\"ref\"];\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n/**\n * @fileOverview Legend\n */\nimport React, { PureComponent } from 'react';\nimport { DefaultLegendContent } from './DefaultLegendContent';\nimport { isNumber } from '../util/DataUtils';\nimport { getUniqPayload } from '../util/payload/getUniqPayload';\nfunction defaultUniqBy(entry) {\n return entry.value;\n}\nfunction renderContent(content, props) {\n if ( /*#__PURE__*/React.isValidElement(content)) {\n return /*#__PURE__*/React.cloneElement(content, props);\n }\n if (typeof content === 'function') {\n return /*#__PURE__*/React.createElement(content, props);\n }\n var ref = props.ref,\n otherProps = _objectWithoutProperties(props, _excluded);\n return /*#__PURE__*/React.createElement(DefaultLegendContent, otherProps);\n}\nvar EPS = 1;\nexport var Legend = /*#__PURE__*/function (_PureComponent) {\n _inherits(Legend, _PureComponent);\n function Legend() {\n var _this;\n _classCallCheck(this, Legend);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _callSuper(this, Legend, [].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"lastBoundingBox\", {\n width: -1,\n height: -1\n });\n return _this;\n }\n _createClass(Legend, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.updateBBox();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.updateBBox();\n }\n }, {\n key: \"getBBox\",\n value: function getBBox() {\n if (this.wrapperNode && this.wrapperNode.getBoundingClientRect) {\n var _box = this.wrapperNode.getBoundingClientRect();\n _box.height = this.wrapperNode.offsetHeight;\n _box.width = this.wrapperNode.offsetWidth;\n return _box;\n }\n return null;\n }\n }, {\n key: \"updateBBox\",\n value: function updateBBox() {\n var onBBoxUpdate = this.props.onBBoxUpdate;\n var box = this.getBBox();\n if (box) {\n if (Math.abs(box.width - this.lastBoundingBox.width) > EPS || Math.abs(box.height - this.lastBoundingBox.height) > EPS) {\n this.lastBoundingBox.width = box.width;\n this.lastBoundingBox.height = box.height;\n if (onBBoxUpdate) {\n onBBoxUpdate(box);\n }\n }\n } else if (this.lastBoundingBox.width !== -1 || this.lastBoundingBox.height !== -1) {\n this.lastBoundingBox.width = -1;\n this.lastBoundingBox.height = -1;\n if (onBBoxUpdate) {\n onBBoxUpdate(null);\n }\n }\n }\n }, {\n key: \"getBBoxSnapshot\",\n value: function getBBoxSnapshot() {\n if (this.lastBoundingBox.width >= 0 && this.lastBoundingBox.height >= 0) {\n return _objectSpread({}, this.lastBoundingBox);\n }\n return {\n width: 0,\n height: 0\n };\n }\n }, {\n key: \"getDefaultPosition\",\n value: function getDefaultPosition(style) {\n var _this$props = this.props,\n layout = _this$props.layout,\n align = _this$props.align,\n verticalAlign = _this$props.verticalAlign,\n margin = _this$props.margin,\n chartWidth = _this$props.chartWidth,\n chartHeight = _this$props.chartHeight;\n var hPos, vPos;\n if (!style || (style.left === undefined || style.left === null) && (style.right === undefined || style.right === null)) {\n if (align === 'center' && layout === 'vertical') {\n var _box2 = this.getBBoxSnapshot();\n hPos = {\n left: ((chartWidth || 0) - _box2.width) / 2\n };\n } else {\n hPos = align === 'right' ? {\n right: margin && margin.right || 0\n } : {\n left: margin && margin.left || 0\n };\n }\n }\n if (!style || (style.top === undefined || style.top === null) && (style.bottom === undefined || style.bottom === null)) {\n if (verticalAlign === 'middle') {\n var _box3 = this.getBBoxSnapshot();\n vPos = {\n top: ((chartHeight || 0) - _box3.height) / 2\n };\n } else {\n vPos = verticalAlign === 'bottom' ? {\n bottom: margin && margin.bottom || 0\n } : {\n top: margin && margin.top || 0\n };\n }\n }\n return _objectSpread(_objectSpread({}, hPos), vPos);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n var _this$props2 = this.props,\n content = _this$props2.content,\n width = _this$props2.width,\n height = _this$props2.height,\n wrapperStyle = _this$props2.wrapperStyle,\n payloadUniqBy = _this$props2.payloadUniqBy,\n payload = _this$props2.payload;\n var outerStyle = _objectSpread(_objectSpread({\n position: 'absolute',\n width: width || 'auto',\n height: height || 'auto'\n }, this.getDefaultPosition(wrapperStyle)), wrapperStyle);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"recharts-legend-wrapper\",\n style: outerStyle,\n ref: function ref(node) {\n _this2.wrapperNode = node;\n }\n }, renderContent(content, _objectSpread(_objectSpread({}, this.props), {}, {\n payload: getUniqPayload(payload, payloadUniqBy, defaultUniqBy)\n })));\n }\n }], [{\n key: \"getWithHeight\",\n value: function getWithHeight(item, chartWidth) {\n var layout = item.props.layout;\n if (layout === 'vertical' && isNumber(item.props.height)) {\n return {\n height: item.props.height\n };\n }\n if (layout === 'horizontal') {\n return {\n width: item.props.width || chartWidth\n };\n }\n return null;\n }\n }]);\n return Legend;\n}(PureComponent);\n_defineProperty(Legend, \"displayName\", 'Legend');\n_defineProperty(Legend, \"defaultProps\", {\n iconSize: 14,\n layout: 'horizontal',\n align: 'center',\n verticalAlign: 'bottom'\n});","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n/**\n * @fileOverview Dot\n */\nimport React from 'react';\nimport clsx from 'clsx';\nimport { adaptEventHandlers } from '../util/types';\nimport { filterProps } from '../util/ReactUtils';\nexport var Dot = function Dot(props) {\n var cx = props.cx,\n cy = props.cy,\n r = props.r,\n className = props.className;\n var layerClass = clsx('recharts-dot', className);\n if (cx === +cx && cy === +cy && r === +r) {\n return /*#__PURE__*/React.createElement(\"circle\", _extends({}, filterProps(props, false), adaptEventHandlers(props), {\n className: layerClass,\n cx: cx,\n cy: cy,\n r: r\n }));\n }\n return null;\n};","import {\n AnyEqualityComparator,\n Cache,\n CircularState,\n Dictionary,\n State,\n TypeEqualityComparator,\n} from './internalTypes';\n\nconst { getOwnPropertyNames, getOwnPropertySymbols } = Object;\nconst { hasOwnProperty } = Object.prototype;\n\n/**\n * Combine two comparators into a single comparators.\n */\nexport function combineComparators(\n comparatorA: AnyEqualityComparator,\n comparatorB: AnyEqualityComparator,\n) {\n return function isEqual(a: A, b: B, state: State) {\n return comparatorA(a, b, state) && comparatorB(a, b, state);\n };\n}\n\n/**\n * Wrap the provided `areItemsEqual` method to manage the circular state, allowing\n * for circular references to be safely included in the comparison without creating\n * stack overflows.\n */\nexport function createIsCircular<\n AreItemsEqual extends TypeEqualityComparator,\n>(areItemsEqual: AreItemsEqual): AreItemsEqual {\n return function isCircular(\n a: any,\n b: any,\n state: CircularState>,\n ) {\n if (!a || !b || typeof a !== 'object' || typeof b !== 'object') {\n return areItemsEqual(a, b, state);\n }\n\n const { cache } = state;\n\n const cachedA = cache.get(a);\n const cachedB = cache.get(b);\n\n if (cachedA && cachedB) {\n return cachedA === b && cachedB === a;\n }\n\n cache.set(a, b);\n cache.set(b, a);\n\n const result = areItemsEqual(a, b, state);\n\n cache.delete(a);\n cache.delete(b);\n\n return result;\n } as AreItemsEqual;\n}\n\n/**\n * Get the properties to strictly examine, which include both own properties that are\n * not enumerable and symbol properties.\n */\nexport function getStrictProperties(\n object: Dictionary,\n): Array {\n return (getOwnPropertyNames(object) as Array).concat(\n getOwnPropertySymbols(object),\n );\n}\n\n/**\n * Whether the object contains the property passed as an own property.\n */\nexport const hasOwn =\n Object.hasOwn ||\n ((object: Dictionary, property: number | string | symbol) =>\n hasOwnProperty.call(object, property));\n\n/**\n * Whether the values passed are strictly equal or both NaN.\n */\nexport function sameValueZeroEqual(a: any, b: any): boolean {\n return a || b ? a === b : a === b || (a !== a && b !== b);\n}\n","import { getStrictProperties, hasOwn, sameValueZeroEqual } from './utils';\nimport type {\n Dictionary,\n PrimitiveWrapper,\n State,\n TypedArray,\n} from './internalTypes';\n\nconst OWNER = '_owner';\n\nconst { getOwnPropertyDescriptor, keys } = Object;\n\n/**\n * Whether the arrays are equal in value.\n */\nexport function areArraysEqual(a: any[], b: any[], state: State) {\n let index = a.length;\n\n if (b.length !== index) {\n return false;\n }\n\n while (index-- > 0) {\n if (!state.equals(a[index], b[index], index, index, a, b, state)) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Whether the dates passed are equal in value.\n */\nexport function areDatesEqual(a: Date, b: Date): boolean {\n return sameValueZeroEqual(a.getTime(), b.getTime());\n}\n\n/**\n * Whether the `Map`s are equal in value.\n */\nexport function areMapsEqual(\n a: Map,\n b: Map,\n state: State,\n): boolean {\n if (a.size !== b.size) {\n return false;\n }\n\n const matchedIndices: Record = {};\n const aIterable = a.entries();\n\n let index = 0;\n let aResult: IteratorResult<[any, any]>;\n let bResult: IteratorResult<[any, any]>;\n\n while ((aResult = aIterable.next())) {\n if (aResult.done) {\n break;\n }\n\n const bIterable = b.entries();\n\n let hasMatch = false;\n let matchIndex = 0;\n\n while ((bResult = bIterable.next())) {\n if (bResult.done) {\n break;\n }\n\n const [aKey, aValue] = aResult.value;\n const [bKey, bValue] = bResult.value;\n\n if (\n !hasMatch &&\n !matchedIndices[matchIndex] &&\n (hasMatch =\n state.equals(aKey, bKey, index, matchIndex, a, b, state) &&\n state.equals(aValue, bValue, aKey, bKey, a, b, state))\n ) {\n matchedIndices[matchIndex] = true;\n }\n\n matchIndex++;\n }\n\n if (!hasMatch) {\n return false;\n }\n\n index++;\n }\n\n return true;\n}\n\n/**\n * Whether the objects are equal in value.\n */\nexport function areObjectsEqual(\n a: Dictionary,\n b: Dictionary,\n state: State,\n): boolean {\n const properties = keys(a);\n\n let index = properties.length;\n\n if (keys(b).length !== index) {\n return false;\n }\n\n let property: string;\n\n // Decrementing `while` showed faster results than either incrementing or\n // decrementing `for` loop and than an incrementing `while` loop. Declarative\n // methods like `some` / `every` were not used to avoid incurring the garbage\n // cost of anonymous callbacks.\n while (index-- > 0) {\n property = properties[index]!;\n\n if (\n property === OWNER &&\n (a.$$typeof || b.$$typeof) &&\n a.$$typeof !== b.$$typeof\n ) {\n return false;\n }\n\n if (\n !hasOwn(b, property) ||\n !state.equals(a[property], b[property], property, property, a, b, state)\n ) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Whether the objects are equal in value with strict property checking.\n */\nexport function areObjectsEqualStrict(\n a: Dictionary,\n b: Dictionary,\n state: State,\n): boolean {\n const properties = getStrictProperties(a);\n\n let index = properties.length;\n\n if (getStrictProperties(b).length !== index) {\n return false;\n }\n\n let property: string | symbol;\n let descriptorA: ReturnType;\n let descriptorB: ReturnType;\n\n // Decrementing `while` showed faster results than either incrementing or\n // decrementing `for` loop and than an incrementing `while` loop. Declarative\n // methods like `some` / `every` were not used to avoid incurring the garbage\n // cost of anonymous callbacks.\n while (index-- > 0) {\n property = properties[index]!;\n\n if (\n property === OWNER &&\n (a.$$typeof || b.$$typeof) &&\n a.$$typeof !== b.$$typeof\n ) {\n return false;\n }\n\n if (!hasOwn(b, property)) {\n return false;\n }\n\n if (\n !state.equals(a[property], b[property], property, property, a, b, state)\n ) {\n return false;\n }\n\n descriptorA = getOwnPropertyDescriptor(a, property);\n descriptorB = getOwnPropertyDescriptor(b, property);\n\n if (\n (descriptorA || descriptorB) &&\n (!descriptorA ||\n !descriptorB ||\n descriptorA.configurable !== descriptorB.configurable ||\n descriptorA.enumerable !== descriptorB.enumerable ||\n descriptorA.writable !== descriptorB.writable)\n ) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Whether the primitive wrappers passed are equal in value.\n */\nexport function arePrimitiveWrappersEqual(\n a: PrimitiveWrapper,\n b: PrimitiveWrapper,\n): boolean {\n return sameValueZeroEqual(a.valueOf(), b.valueOf());\n}\n\n/**\n * Whether the regexps passed are equal in value.\n */\nexport function areRegExpsEqual(a: RegExp, b: RegExp): boolean {\n return a.source === b.source && a.flags === b.flags;\n}\n\n/**\n * Whether the `Set`s are equal in value.\n */\nexport function areSetsEqual(\n a: Set,\n b: Set,\n state: State,\n): boolean {\n if (a.size !== b.size) {\n return false;\n }\n\n const matchedIndices: Record = {};\n const aIterable = a.values();\n\n let aResult: IteratorResult;\n let bResult: IteratorResult;\n\n while ((aResult = aIterable.next())) {\n if (aResult.done) {\n break;\n }\n\n const bIterable = b.values();\n\n let hasMatch = false;\n let matchIndex = 0;\n\n while ((bResult = bIterable.next())) {\n if (bResult.done) {\n break;\n }\n\n if (\n !hasMatch &&\n !matchedIndices[matchIndex] &&\n (hasMatch = state.equals(\n aResult.value,\n bResult.value,\n aResult.value,\n bResult.value,\n a,\n b,\n state,\n ))\n ) {\n matchedIndices[matchIndex] = true;\n }\n\n matchIndex++;\n }\n\n if (!hasMatch) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Whether the TypedArray instances are equal in value.\n */\nexport function areTypedArraysEqual(a: TypedArray, b: TypedArray) {\n let index = a.length;\n\n if (b.length !== index) {\n return false;\n }\n\n while (index-- > 0) {\n if (a[index] !== b[index]) {\n return false;\n }\n }\n\n return true;\n}\n","import {\n areArraysEqual as areArraysEqualDefault,\n areDatesEqual as areDatesEqualDefault,\n areMapsEqual as areMapsEqualDefault,\n areObjectsEqual as areObjectsEqualDefault,\n areObjectsEqualStrict as areObjectsEqualStrictDefault,\n arePrimitiveWrappersEqual as arePrimitiveWrappersEqualDefault,\n areRegExpsEqual as areRegExpsEqualDefault,\n areSetsEqual as areSetsEqualDefault,\n areTypedArraysEqual,\n} from './equals';\nimport { combineComparators, createIsCircular } from './utils';\nimport type {\n ComparatorConfig,\n CreateState,\n CustomEqualCreatorOptions,\n EqualityComparator,\n InternalEqualityComparator,\n State,\n} from './internalTypes';\n\nconst ARGUMENTS_TAG = '[object Arguments]';\nconst BOOLEAN_TAG = '[object Boolean]';\nconst DATE_TAG = '[object Date]';\nconst MAP_TAG = '[object Map]';\nconst NUMBER_TAG = '[object Number]';\nconst OBJECT_TAG = '[object Object]';\nconst REG_EXP_TAG = '[object RegExp]';\nconst SET_TAG = '[object Set]';\nconst STRING_TAG = '[object String]';\n\nconst { isArray } = Array;\nconst isTypedArray =\n typeof ArrayBuffer === 'function' && ArrayBuffer.isView\n ? ArrayBuffer.isView\n : null;\nconst { assign } = Object;\nconst getTag = Object.prototype.toString.call.bind(\n Object.prototype.toString,\n) as (a: object) => string;\n\ninterface CreateIsEqualOptions {\n circular: boolean;\n comparator: EqualityComparator;\n createState: CreateState | undefined;\n equals: InternalEqualityComparator;\n strict: boolean;\n}\n\n/**\n * Create a comparator method based on the type-specific equality comparators passed.\n */\nexport function createEqualityComparator({\n areArraysEqual,\n areDatesEqual,\n areMapsEqual,\n areObjectsEqual,\n arePrimitiveWrappersEqual,\n areRegExpsEqual,\n areSetsEqual,\n areTypedArraysEqual,\n}: ComparatorConfig): EqualityComparator {\n /**\n * compare the value of the two objects and return true if they are equivalent in values\n */\n return function comparator(a: any, b: any, state: State): boolean {\n // If the items are strictly equal, no need to do a value comparison.\n if (a === b) {\n return true;\n }\n\n // If the items are not non-nullish objects, then the only possibility\n // of them being equal but not strictly is if they are both `NaN`. Since\n // `NaN` is uniquely not equal to itself, we can use self-comparison of\n // both objects, which is faster than `isNaN()`.\n if (\n a == null ||\n b == null ||\n typeof a !== 'object' ||\n typeof b !== 'object'\n ) {\n return a !== a && b !== b;\n }\n\n const constructor = a.constructor;\n\n // Checks are listed in order of commonality of use-case:\n // 1. Common complex object types (plain object, array)\n // 2. Common data values (date, regexp)\n // 3. Less-common complex object types (map, set)\n // 4. Less-common data values (promise, primitive wrappers)\n // Inherently this is both subjective and assumptive, however\n // when reviewing comparable libraries in the wild this order\n // appears to be generally consistent.\n\n // Constructors should match, otherwise there is potential for false positives\n // between class and subclass or custom object and POJO.\n if (constructor !== b.constructor) {\n return false;\n }\n\n // `isPlainObject` only checks against the object's own realm. Cross-realm\n // comparisons are rare, and will be handled in the ultimate fallback, so\n // we can avoid capturing the string tag.\n if (constructor === Object) {\n return areObjectsEqual(a, b, state);\n }\n\n // `isArray()` works on subclasses and is cross-realm, so we can avoid capturing\n // the string tag or doing an `instanceof` check.\n if (isArray(a)) {\n return areArraysEqual(a, b, state);\n }\n\n // `isTypedArray()` works on all possible TypedArray classes, so we can avoid\n // capturing the string tag or comparing against all possible constructors.\n if (isTypedArray != null && isTypedArray(a)) {\n return areTypedArraysEqual(a, b, state);\n }\n\n // Try to fast-path equality checks for other complex object types in the\n // same realm to avoid capturing the string tag. Strict equality is used\n // instead of `instanceof` because it is more performant for the common\n // use-case. If someone is subclassing a native class, it will be handled\n // with the string tag comparison.\n\n if (constructor === Date) {\n return areDatesEqual(a, b, state);\n }\n\n if (constructor === RegExp) {\n return areRegExpsEqual(a, b, state);\n }\n\n if (constructor === Map) {\n return areMapsEqual(a, b, state);\n }\n\n if (constructor === Set) {\n return areSetsEqual(a, b, state);\n }\n\n // Since this is a custom object, capture the string tag to determing its type.\n // This is reasonably performant in modern environments like v8 and SpiderMonkey.\n const tag = getTag(a);\n\n if (tag === DATE_TAG) {\n return areDatesEqual(a, b, state);\n }\n\n if (tag === REG_EXP_TAG) {\n return areRegExpsEqual(a, b, state);\n }\n\n if (tag === MAP_TAG) {\n return areMapsEqual(a, b, state);\n }\n\n if (tag === SET_TAG) {\n return areSetsEqual(a, b, state);\n }\n\n if (tag === OBJECT_TAG) {\n // The exception for value comparison is custom `Promise`-like class instances. These should\n // be treated the same as standard `Promise` objects, which means strict equality, and if\n // it reaches this point then that strict equality comparison has already failed.\n return (\n typeof a.then !== 'function' &&\n typeof b.then !== 'function' &&\n areObjectsEqual(a, b, state)\n );\n }\n\n // If an arguments tag, it should be treated as a standard object.\n if (tag === ARGUMENTS_TAG) {\n return areObjectsEqual(a, b, state);\n }\n\n // As the penultimate fallback, check if the values passed are primitive wrappers. This\n // is very rare in modern JS, which is why it is deprioritized compared to all other object\n // types.\n if (tag === BOOLEAN_TAG || tag === NUMBER_TAG || tag === STRING_TAG) {\n return arePrimitiveWrappersEqual(a, b, state);\n }\n\n // If not matching any tags that require a specific type of comparison, then we hard-code false because\n // the only thing remaining is strict equality, which has already been compared. This is for a few reasons:\n // - Certain types that cannot be introspected (e.g., `WeakMap`). For these types, this is the only\n // comparison that can be made.\n // - For types that can be introspected, but rarely have requirements to be compared\n // (`ArrayBuffer`, `DataView`, etc.), the cost is avoided to prioritize the common\n // use-cases (may be included in a future release, if requested enough).\n // - For types that can be introspected but do not have an objective definition of what\n // equality is (`Error`, etc.), the subjective decision is to be conservative and strictly compare.\n // In all cases, these decisions should be reevaluated based on changes to the language and\n // common development practices.\n return false;\n };\n}\n\n/**\n * Create the configuration object used for building comparators.\n */\nexport function createEqualityComparatorConfig({\n circular,\n createCustomConfig,\n strict,\n}: CustomEqualCreatorOptions): ComparatorConfig {\n let config = {\n areArraysEqual: strict\n ? areObjectsEqualStrictDefault\n : areArraysEqualDefault,\n areDatesEqual: areDatesEqualDefault,\n areMapsEqual: strict\n ? combineComparators(areMapsEqualDefault, areObjectsEqualStrictDefault)\n : areMapsEqualDefault,\n areObjectsEqual: strict\n ? areObjectsEqualStrictDefault\n : areObjectsEqualDefault,\n arePrimitiveWrappersEqual: arePrimitiveWrappersEqualDefault,\n areRegExpsEqual: areRegExpsEqualDefault,\n areSetsEqual: strict\n ? combineComparators(areSetsEqualDefault, areObjectsEqualStrictDefault)\n : areSetsEqualDefault,\n areTypedArraysEqual: strict\n ? areObjectsEqualStrictDefault\n : areTypedArraysEqual,\n };\n\n if (createCustomConfig) {\n config = assign({}, config, createCustomConfig(config));\n }\n\n if (circular) {\n const areArraysEqual = createIsCircular(config.areArraysEqual);\n const areMapsEqual = createIsCircular(config.areMapsEqual);\n const areObjectsEqual = createIsCircular(config.areObjectsEqual);\n const areSetsEqual = createIsCircular(config.areSetsEqual);\n\n config = assign({}, config, {\n areArraysEqual,\n areMapsEqual,\n areObjectsEqual,\n areSetsEqual,\n });\n }\n\n return config;\n}\n\n/**\n * Default equality comparator pass-through, used as the standard `isEqual` creator for\n * use inside the built comparator.\n */\nexport function createInternalEqualityComparator(\n compare: EqualityComparator,\n): InternalEqualityComparator {\n return function (\n a: any,\n b: any,\n _indexOrKeyA: any,\n _indexOrKeyB: any,\n _parentA: any,\n _parentB: any,\n state: State,\n ) {\n return compare(a, b, state);\n };\n}\n\n/**\n * Create the `isEqual` function used by the consuming application.\n */\nexport function createIsEqual({\n circular,\n comparator,\n createState,\n equals,\n strict,\n}: CreateIsEqualOptions) {\n if (createState) {\n return function isEqual(a: A, b: B): boolean {\n const { cache = circular ? new WeakMap() : undefined, meta } =\n createState!();\n\n return comparator(a, b, {\n cache,\n equals,\n meta,\n strict,\n } as State);\n };\n }\n\n if (circular) {\n return function isEqual(a: A, b: B): boolean {\n return comparator(a, b, {\n cache: new WeakMap(),\n equals,\n meta: undefined as Meta,\n strict,\n } as State);\n };\n }\n\n const state = {\n cache: undefined,\n equals,\n meta: undefined,\n strict,\n } as State;\n\n return function isEqual(a: A, b: B): boolean {\n return comparator(a, b, state);\n };\n}\n","import {\n createEqualityComparatorConfig,\n createEqualityComparator,\n createInternalEqualityComparator,\n createIsEqual,\n} from './comparator';\nimport type { CustomEqualCreatorOptions } from './internalTypes';\nimport { sameValueZeroEqual } from './utils';\n\nexport { sameValueZeroEqual };\nexport * from './internalTypes';\n\n/**\n * Whether the items passed are deeply-equal in value.\n */\nexport const deepEqual = createCustomEqual();\n\n/**\n * Whether the items passed are deeply-equal in value based on strict comparison.\n */\nexport const strictDeepEqual = createCustomEqual({ strict: true });\n\n/**\n * Whether the items passed are deeply-equal in value, including circular references.\n */\nexport const circularDeepEqual = createCustomEqual({ circular: true });\n\n/**\n * Whether the items passed are deeply-equal in value, including circular references,\n * based on strict comparison.\n */\nexport const strictCircularDeepEqual = createCustomEqual({\n circular: true,\n strict: true,\n});\n\n/**\n * Whether the items passed are shallowly-equal in value.\n */\nexport const shallowEqual = createCustomEqual({\n createInternalComparator: () => sameValueZeroEqual,\n});\n\n/**\n * Whether the items passed are shallowly-equal in value based on strict comparison\n */\nexport const strictShallowEqual = createCustomEqual({\n strict: true,\n createInternalComparator: () => sameValueZeroEqual,\n});\n\n/**\n * Whether the items passed are shallowly-equal in value, including circular references.\n */\nexport const circularShallowEqual = createCustomEqual({\n circular: true,\n createInternalComparator: () => sameValueZeroEqual,\n});\n\n/**\n * Whether the items passed are shallowly-equal in value, including circular references,\n * based on strict comparison.\n */\nexport const strictCircularShallowEqual = createCustomEqual({\n circular: true,\n createInternalComparator: () => sameValueZeroEqual,\n strict: true,\n});\n\n/**\n * Create a custom equality comparison method.\n *\n * This can be done to create very targeted comparisons in extreme hot-path scenarios\n * where the standard methods are not performant enough, but can also be used to provide\n * support for legacy environments that do not support expected features like\n * `RegExp.prototype.flags` out of the box.\n */\nexport function createCustomEqual(\n options: CustomEqualCreatorOptions = {},\n) {\n const {\n circular = false,\n createInternalComparator: createCustomInternalComparator,\n createState,\n strict = false,\n } = options;\n\n const config = createEqualityComparatorConfig(options);\n const comparator = createEqualityComparator(config);\n const equals = createCustomInternalComparator\n ? createCustomInternalComparator(comparator)\n : createInternalEqualityComparator(comparator);\n\n return createIsEqual({ circular, comparator, createState, equals, strict });\n}\n","function safeRequestAnimationFrame(callback) {\n if (typeof requestAnimationFrame !== 'undefined') requestAnimationFrame(callback);\n}\nexport default function setRafTimeout(callback) {\n var timeout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var currTime = -1;\n var shouldUpdate = function shouldUpdate(now) {\n if (currTime < 0) {\n currTime = now;\n }\n if (now - currTime > timeout) {\n callback(now);\n currTime = -1;\n } else {\n safeRequestAnimationFrame(shouldUpdate);\n }\n };\n requestAnimationFrame(shouldUpdate);\n}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _toArray(arr) { return _arrayWithHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nimport setRafTimeout from './setRafTimeout';\nexport default function createAnimateManager() {\n var currStyle = {};\n var handleChange = function handleChange() {\n return null;\n };\n var shouldStop = false;\n var setStyle = function setStyle(_style) {\n if (shouldStop) {\n return;\n }\n if (Array.isArray(_style)) {\n if (!_style.length) {\n return;\n }\n var styles = _style;\n var _styles = _toArray(styles),\n curr = _styles[0],\n restStyles = _styles.slice(1);\n if (typeof curr === 'number') {\n setRafTimeout(setStyle.bind(null, restStyles), curr);\n return;\n }\n setStyle(curr);\n setRafTimeout(setStyle.bind(null, restStyles));\n return;\n }\n if (_typeof(_style) === 'object') {\n currStyle = _style;\n handleChange(currStyle);\n }\n if (typeof _style === 'function') {\n _style();\n }\n };\n return {\n stop: function stop() {\n shouldStop = true;\n },\n start: function start(style) {\n shouldStop = false;\n setStyle(style);\n },\n subscribe: function subscribe(_handleChange) {\n handleChange = _handleChange;\n return function () {\n handleChange = function handleChange() {\n return null;\n };\n };\n }\n };\n}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/* eslint no-console: 0 */\n\nexport var getIntersectionKeys = function getIntersectionKeys(preObj, nextObj) {\n return [Object.keys(preObj), Object.keys(nextObj)].reduce(function (a, b) {\n return a.filter(function (c) {\n return b.includes(c);\n });\n });\n};\nexport var identity = function identity(param) {\n return param;\n};\n\n/*\n * @description: convert camel case to dash case\n * string => string\n */\nexport var getDashCase = function getDashCase(name) {\n return name.replace(/([A-Z])/g, function (v) {\n return \"-\".concat(v.toLowerCase());\n });\n};\nexport var log = function log() {\n var _console;\n (_console = console).log.apply(_console, arguments);\n};\n\n/*\n * @description: log the value of a varible\n * string => any => any\n */\nexport var debug = function debug(name) {\n return function (item) {\n log(name, item);\n return item;\n };\n};\n\n/*\n * @description: log name, args, return value of a function\n * function => function\n */\nexport var debugf = function debugf(tag, f) {\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var res = f.apply(void 0, args);\n var name = tag || f.name || 'anonymous function';\n var argNames = \"(\".concat(args.map(JSON.stringify).join(', '), \")\");\n log(\"\".concat(name, \": \").concat(argNames, \" => \").concat(JSON.stringify(res)));\n return res;\n };\n};\n\n/*\n * @description: map object on every element in this object.\n * (function, object) => object\n */\nexport var mapObject = function mapObject(fn, obj) {\n return Object.keys(obj).reduce(function (res, key) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, key, fn(key, obj[key])));\n }, {});\n};\nexport var getTransitionVal = function getTransitionVal(props, duration, easing) {\n return props.map(function (prop) {\n return \"\".concat(getDashCase(prop), \" \").concat(duration, \"ms \").concat(easing);\n }).join(',');\n};\nvar isDev = process.env.NODE_ENV !== 'production';\nexport var warn = function warn(condition, format, a, b, c, d, e, f) {\n if (isDev && typeof console !== 'undefined' && console.warn) {\n if (format === undefined) {\n console.warn('LogUtils requires an error message argument');\n }\n if (!condition) {\n if (format === undefined) {\n console.warn('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n console.warn(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n }\n }\n }\n};","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nimport { warn } from './util';\nvar ACCURACY = 1e-4;\nvar cubicBezierFactor = function cubicBezierFactor(c1, c2) {\n return [0, 3 * c1, 3 * c2 - 6 * c1, 3 * c1 - 3 * c2 + 1];\n};\nvar multyTime = function multyTime(params, t) {\n return params.map(function (param, i) {\n return param * Math.pow(t, i);\n }).reduce(function (pre, curr) {\n return pre + curr;\n });\n};\nvar cubicBezier = function cubicBezier(c1, c2) {\n return function (t) {\n var params = cubicBezierFactor(c1, c2);\n return multyTime(params, t);\n };\n};\nvar derivativeCubicBezier = function derivativeCubicBezier(c1, c2) {\n return function (t) {\n var params = cubicBezierFactor(c1, c2);\n var newParams = [].concat(_toConsumableArray(params.map(function (param, i) {\n return param * i;\n }).slice(1)), [0]);\n return multyTime(newParams, t);\n };\n};\n\n// calculate cubic-bezier using Newton's method\nexport var configBezier = function configBezier() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var x1 = args[0],\n y1 = args[1],\n x2 = args[2],\n y2 = args[3];\n if (args.length === 1) {\n switch (args[0]) {\n case 'linear':\n x1 = 0.0;\n y1 = 0.0;\n x2 = 1.0;\n y2 = 1.0;\n break;\n case 'ease':\n x1 = 0.25;\n y1 = 0.1;\n x2 = 0.25;\n y2 = 1.0;\n break;\n case 'ease-in':\n x1 = 0.42;\n y1 = 0.0;\n x2 = 1.0;\n y2 = 1.0;\n break;\n case 'ease-out':\n x1 = 0.42;\n y1 = 0.0;\n x2 = 0.58;\n y2 = 1.0;\n break;\n case 'ease-in-out':\n x1 = 0.0;\n y1 = 0.0;\n x2 = 0.58;\n y2 = 1.0;\n break;\n default:\n {\n var easing = args[0].split('(');\n if (easing[0] === 'cubic-bezier' && easing[1].split(')')[0].split(',').length === 4) {\n var _easing$1$split$0$spl = easing[1].split(')')[0].split(',').map(function (x) {\n return parseFloat(x);\n });\n var _easing$1$split$0$spl2 = _slicedToArray(_easing$1$split$0$spl, 4);\n x1 = _easing$1$split$0$spl2[0];\n y1 = _easing$1$split$0$spl2[1];\n x2 = _easing$1$split$0$spl2[2];\n y2 = _easing$1$split$0$spl2[3];\n } else {\n warn(false, '[configBezier]: arguments should be one of ' + \"oneOf 'linear', 'ease', 'ease-in', 'ease-out', \" + \"'ease-in-out','cubic-bezier(x1,y1,x2,y2)', instead received %s\", args);\n }\n }\n }\n }\n warn([x1, x2, y1, y2].every(function (num) {\n return typeof num === 'number' && num >= 0 && num <= 1;\n }), '[configBezier]: arguments should be x1, y1, x2, y2 of [0, 1] instead received %s', args);\n var curveX = cubicBezier(x1, x2);\n var curveY = cubicBezier(y1, y2);\n var derCurveX = derivativeCubicBezier(x1, x2);\n var rangeValue = function rangeValue(value) {\n if (value > 1) {\n return 1;\n }\n if (value < 0) {\n return 0;\n }\n return value;\n };\n var bezier = function bezier(_t) {\n var t = _t > 1 ? 1 : _t;\n var x = t;\n for (var i = 0; i < 8; ++i) {\n var evalT = curveX(x) - t;\n var derVal = derCurveX(x);\n if (Math.abs(evalT - t) < ACCURACY || derVal < ACCURACY) {\n return curveY(x);\n }\n x = rangeValue(x - evalT / derVal);\n }\n return curveY(x);\n };\n bezier.isStepper = false;\n return bezier;\n};\nexport var configSpring = function configSpring() {\n var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _config$stiff = config.stiff,\n stiff = _config$stiff === void 0 ? 100 : _config$stiff,\n _config$damping = config.damping,\n damping = _config$damping === void 0 ? 8 : _config$damping,\n _config$dt = config.dt,\n dt = _config$dt === void 0 ? 17 : _config$dt;\n var stepper = function stepper(currX, destX, currV) {\n var FSpring = -(currX - destX) * stiff;\n var FDamping = currV * damping;\n var newV = currV + (FSpring - FDamping) * dt / 1000;\n var newX = currV * dt / 1000 + currX;\n if (Math.abs(newX - destX) < ACCURACY && Math.abs(newV) < ACCURACY) {\n return [destX, 0];\n }\n return [newX, newV];\n };\n stepper.isStepper = true;\n stepper.dt = dt;\n return stepper;\n};\nexport var configEasing = function configEasing() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n var easing = args[0];\n if (typeof easing === 'string') {\n switch (easing) {\n case 'ease':\n case 'ease-in-out':\n case 'ease-out':\n case 'ease-in':\n case 'linear':\n return configBezier(easing);\n case 'spring':\n return configSpring();\n default:\n if (easing.split('(')[0] === 'cubic-bezier') {\n return configBezier(easing);\n }\n warn(false, \"[configEasing]: first argument should be one of 'ease', 'ease-in', \" + \"'ease-out', 'ease-in-out','cubic-bezier(x1,y1,x2,y2)', 'linear' and 'spring', instead received %s\", args);\n }\n }\n if (typeof easing === 'function') {\n return easing;\n }\n warn(false, '[configEasing]: first argument type should be function or string, instead received %s', args);\n return null;\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nimport { getIntersectionKeys, mapObject } from './util';\nvar alpha = function alpha(begin, end, k) {\n return begin + (end - begin) * k;\n};\nvar needContinue = function needContinue(_ref) {\n var from = _ref.from,\n to = _ref.to;\n return from !== to;\n};\n\n/*\n * @description: cal new from value and velocity in each stepper\n * @return: { [styleProperty]: { from, to, velocity } }\n */\nvar calStepperVals = function calStepperVals(easing, preVals, steps) {\n var nextStepVals = mapObject(function (key, val) {\n if (needContinue(val)) {\n var _easing = easing(val.from, val.to, val.velocity),\n _easing2 = _slicedToArray(_easing, 2),\n newX = _easing2[0],\n newV = _easing2[1];\n return _objectSpread(_objectSpread({}, val), {}, {\n from: newX,\n velocity: newV\n });\n }\n return val;\n }, preVals);\n if (steps < 1) {\n return mapObject(function (key, val) {\n if (needContinue(val)) {\n return _objectSpread(_objectSpread({}, val), {}, {\n velocity: alpha(val.velocity, nextStepVals[key].velocity, steps),\n from: alpha(val.from, nextStepVals[key].from, steps)\n });\n }\n return val;\n }, preVals);\n }\n return calStepperVals(easing, nextStepVals, steps - 1);\n};\n\n// configure update function\nexport default (function (from, to, easing, duration, render) {\n var interKeys = getIntersectionKeys(from, to);\n var timingStyle = interKeys.reduce(function (res, key) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, key, [from[key], to[key]]));\n }, {});\n var stepperStyle = interKeys.reduce(function (res, key) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, key, {\n from: from[key],\n velocity: 0,\n to: to[key]\n }));\n }, {});\n var cafId = -1;\n var preTime;\n var beginTime;\n var update = function update() {\n return null;\n };\n var getCurrStyle = function getCurrStyle() {\n return mapObject(function (key, val) {\n return val.from;\n }, stepperStyle);\n };\n var shouldStopAnimation = function shouldStopAnimation() {\n return !Object.values(stepperStyle).filter(needContinue).length;\n };\n\n // stepper timing function like spring\n var stepperUpdate = function stepperUpdate(now) {\n if (!preTime) {\n preTime = now;\n }\n var deltaTime = now - preTime;\n var steps = deltaTime / easing.dt;\n stepperStyle = calStepperVals(easing, stepperStyle, steps);\n // get union set and add compatible prefix\n render(_objectSpread(_objectSpread(_objectSpread({}, from), to), getCurrStyle(stepperStyle)));\n preTime = now;\n if (!shouldStopAnimation()) {\n cafId = requestAnimationFrame(update);\n }\n };\n\n // t => val timing function like cubic-bezier\n var timingUpdate = function timingUpdate(now) {\n if (!beginTime) {\n beginTime = now;\n }\n var t = (now - beginTime) / duration;\n var currStyle = mapObject(function (key, val) {\n return alpha.apply(void 0, _toConsumableArray(val).concat([easing(t)]));\n }, timingStyle);\n\n // get union set and add compatible prefix\n render(_objectSpread(_objectSpread(_objectSpread({}, from), to), currStyle));\n if (t < 1) {\n cafId = requestAnimationFrame(update);\n } else {\n var finalStyle = mapObject(function (key, val) {\n return alpha.apply(void 0, _toConsumableArray(val).concat([easing(1)]));\n }, timingStyle);\n render(_objectSpread(_objectSpread(_objectSpread({}, from), to), finalStyle));\n }\n };\n update = easing.isStepper ? stepperUpdate : timingUpdate;\n\n // return start animation method\n return function () {\n requestAnimationFrame(update);\n\n // return stop animation method\n return function () {\n cancelAnimationFrame(cafId);\n };\n };\n});","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar _excluded = [\"children\", \"begin\", \"duration\", \"attributeName\", \"easing\", \"isActive\", \"steps\", \"from\", \"to\", \"canBegin\", \"onAnimationEnd\", \"shouldReAnimate\", \"onAnimationReStart\"];\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nimport React, { PureComponent, cloneElement, Children } from 'react';\nimport PropTypes from 'prop-types';\nimport { deepEqual } from 'fast-equals';\nimport createAnimateManager from './AnimateManager';\nimport { configEasing } from './easing';\nimport configUpdate from './configUpdate';\nimport { getTransitionVal, identity } from './util';\nvar Animate = /*#__PURE__*/function (_PureComponent) {\n _inherits(Animate, _PureComponent);\n var _super = _createSuper(Animate);\n function Animate(props, context) {\n var _this;\n _classCallCheck(this, Animate);\n _this = _super.call(this, props, context);\n var _this$props = _this.props,\n isActive = _this$props.isActive,\n attributeName = _this$props.attributeName,\n from = _this$props.from,\n to = _this$props.to,\n steps = _this$props.steps,\n children = _this$props.children,\n duration = _this$props.duration;\n _this.handleStyleChange = _this.handleStyleChange.bind(_assertThisInitialized(_this));\n _this.changeStyle = _this.changeStyle.bind(_assertThisInitialized(_this));\n if (!isActive || duration <= 0) {\n _this.state = {\n style: {}\n };\n\n // if children is a function and animation is not active, set style to 'to'\n if (typeof children === 'function') {\n _this.state = {\n style: to\n };\n }\n return _possibleConstructorReturn(_this);\n }\n if (steps && steps.length) {\n _this.state = {\n style: steps[0].style\n };\n } else if (from) {\n if (typeof children === 'function') {\n _this.state = {\n style: from\n };\n return _possibleConstructorReturn(_this);\n }\n _this.state = {\n style: attributeName ? _defineProperty({}, attributeName, from) : from\n };\n } else {\n _this.state = {\n style: {}\n };\n }\n return _this;\n }\n _createClass(Animate, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this$props2 = this.props,\n isActive = _this$props2.isActive,\n canBegin = _this$props2.canBegin;\n this.mounted = true;\n if (!isActive || !canBegin) {\n return;\n }\n this.runAnimation(this.props);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var _this$props3 = this.props,\n isActive = _this$props3.isActive,\n canBegin = _this$props3.canBegin,\n attributeName = _this$props3.attributeName,\n shouldReAnimate = _this$props3.shouldReAnimate,\n to = _this$props3.to,\n currentFrom = _this$props3.from;\n var style = this.state.style;\n if (!canBegin) {\n return;\n }\n if (!isActive) {\n var newState = {\n style: attributeName ? _defineProperty({}, attributeName, to) : to\n };\n if (this.state && style) {\n if (attributeName && style[attributeName] !== to || !attributeName && style !== to) {\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState(newState);\n }\n }\n return;\n }\n if (deepEqual(prevProps.to, to) && prevProps.canBegin && prevProps.isActive) {\n return;\n }\n var isTriggered = !prevProps.canBegin || !prevProps.isActive;\n if (this.manager) {\n this.manager.stop();\n }\n if (this.stopJSAnimation) {\n this.stopJSAnimation();\n }\n var from = isTriggered || shouldReAnimate ? currentFrom : prevProps.to;\n if (this.state && style) {\n var _newState = {\n style: attributeName ? _defineProperty({}, attributeName, from) : from\n };\n if (attributeName && style[attributeName] !== from || !attributeName && style !== from) {\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState(_newState);\n }\n }\n this.runAnimation(_objectSpread(_objectSpread({}, this.props), {}, {\n from: from,\n begin: 0\n }));\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.mounted = false;\n var onAnimationEnd = this.props.onAnimationEnd;\n if (this.unSubscribe) {\n this.unSubscribe();\n }\n if (this.manager) {\n this.manager.stop();\n this.manager = null;\n }\n if (this.stopJSAnimation) {\n this.stopJSAnimation();\n }\n if (onAnimationEnd) {\n onAnimationEnd();\n }\n }\n }, {\n key: \"handleStyleChange\",\n value: function handleStyleChange(style) {\n this.changeStyle(style);\n }\n }, {\n key: \"changeStyle\",\n value: function changeStyle(style) {\n if (this.mounted) {\n this.setState({\n style: style\n });\n }\n }\n }, {\n key: \"runJSAnimation\",\n value: function runJSAnimation(props) {\n var _this2 = this;\n var from = props.from,\n to = props.to,\n duration = props.duration,\n easing = props.easing,\n begin = props.begin,\n onAnimationEnd = props.onAnimationEnd,\n onAnimationStart = props.onAnimationStart;\n var startAnimation = configUpdate(from, to, configEasing(easing), duration, this.changeStyle);\n var finalStartAnimation = function finalStartAnimation() {\n _this2.stopJSAnimation = startAnimation();\n };\n this.manager.start([onAnimationStart, begin, finalStartAnimation, duration, onAnimationEnd]);\n }\n }, {\n key: \"runStepAnimation\",\n value: function runStepAnimation(props) {\n var _this3 = this;\n var steps = props.steps,\n begin = props.begin,\n onAnimationStart = props.onAnimationStart;\n var _steps$ = steps[0],\n initialStyle = _steps$.style,\n _steps$$duration = _steps$.duration,\n initialTime = _steps$$duration === void 0 ? 0 : _steps$$duration;\n var addStyle = function addStyle(sequence, nextItem, index) {\n if (index === 0) {\n return sequence;\n }\n var duration = nextItem.duration,\n _nextItem$easing = nextItem.easing,\n easing = _nextItem$easing === void 0 ? 'ease' : _nextItem$easing,\n style = nextItem.style,\n nextProperties = nextItem.properties,\n onAnimationEnd = nextItem.onAnimationEnd;\n var preItem = index > 0 ? steps[index - 1] : nextItem;\n var properties = nextProperties || Object.keys(style);\n if (typeof easing === 'function' || easing === 'spring') {\n return [].concat(_toConsumableArray(sequence), [_this3.runJSAnimation.bind(_this3, {\n from: preItem.style,\n to: style,\n duration: duration,\n easing: easing\n }), duration]);\n }\n var transition = getTransitionVal(properties, duration, easing);\n var newStyle = _objectSpread(_objectSpread(_objectSpread({}, preItem.style), style), {}, {\n transition: transition\n });\n return [].concat(_toConsumableArray(sequence), [newStyle, duration, onAnimationEnd]).filter(identity);\n };\n return this.manager.start([onAnimationStart].concat(_toConsumableArray(steps.reduce(addStyle, [initialStyle, Math.max(initialTime, begin)])), [props.onAnimationEnd]));\n }\n }, {\n key: \"runAnimation\",\n value: function runAnimation(props) {\n if (!this.manager) {\n this.manager = createAnimateManager();\n }\n var begin = props.begin,\n duration = props.duration,\n attributeName = props.attributeName,\n propsTo = props.to,\n easing = props.easing,\n onAnimationStart = props.onAnimationStart,\n onAnimationEnd = props.onAnimationEnd,\n steps = props.steps,\n children = props.children;\n var manager = this.manager;\n this.unSubscribe = manager.subscribe(this.handleStyleChange);\n if (typeof easing === 'function' || typeof children === 'function' || easing === 'spring') {\n this.runJSAnimation(props);\n return;\n }\n if (steps.length > 1) {\n this.runStepAnimation(props);\n return;\n }\n var to = attributeName ? _defineProperty({}, attributeName, propsTo) : propsTo;\n var transition = getTransitionVal(Object.keys(to), duration, easing);\n manager.start([onAnimationStart, begin, _objectSpread(_objectSpread({}, to), {}, {\n transition: transition\n }), duration, onAnimationEnd]);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props4 = this.props,\n children = _this$props4.children,\n begin = _this$props4.begin,\n duration = _this$props4.duration,\n attributeName = _this$props4.attributeName,\n easing = _this$props4.easing,\n isActive = _this$props4.isActive,\n steps = _this$props4.steps,\n from = _this$props4.from,\n to = _this$props4.to,\n canBegin = _this$props4.canBegin,\n onAnimationEnd = _this$props4.onAnimationEnd,\n shouldReAnimate = _this$props4.shouldReAnimate,\n onAnimationReStart = _this$props4.onAnimationReStart,\n others = _objectWithoutProperties(_this$props4, _excluded);\n var count = Children.count(children);\n // eslint-disable-next-line react/destructuring-assignment\n var stateStyle = this.state.style;\n if (typeof children === 'function') {\n return children(stateStyle);\n }\n if (!isActive || count === 0 || duration <= 0) {\n return children;\n }\n var cloneContainer = function cloneContainer(container) {\n var _container$props = container.props,\n _container$props$styl = _container$props.style,\n style = _container$props$styl === void 0 ? {} : _container$props$styl,\n className = _container$props.className;\n var res = /*#__PURE__*/cloneElement(container, _objectSpread(_objectSpread({}, others), {}, {\n style: _objectSpread(_objectSpread({}, style), stateStyle),\n className: className\n }));\n return res;\n };\n if (count === 1) {\n return cloneContainer(Children.only(children));\n }\n return /*#__PURE__*/React.createElement(\"div\", null, Children.map(children, function (child) {\n return cloneContainer(child);\n }));\n }\n }]);\n return Animate;\n}(PureComponent);\nAnimate.displayName = 'Animate';\nAnimate.defaultProps = {\n begin: 0,\n duration: 1000,\n from: '',\n to: '',\n attributeName: '',\n easing: 'ease',\n isActive: true,\n canBegin: true,\n steps: [],\n onAnimationEnd: function onAnimationEnd() {},\n onAnimationStart: function onAnimationStart() {}\n};\nAnimate.propTypes = {\n from: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n to: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n attributeName: PropTypes.string,\n // animation duration\n duration: PropTypes.number,\n begin: PropTypes.number,\n easing: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n steps: PropTypes.arrayOf(PropTypes.shape({\n duration: PropTypes.number.isRequired,\n style: PropTypes.object.isRequired,\n easing: PropTypes.oneOfType([PropTypes.oneOf(['ease', 'ease-in', 'ease-out', 'ease-in-out', 'linear']), PropTypes.func]),\n // transition css properties(dash case), optional\n properties: PropTypes.arrayOf('string'),\n onAnimationEnd: PropTypes.func\n })),\n children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n isActive: PropTypes.bool,\n canBegin: PropTypes.bool,\n onAnimationEnd: PropTypes.func,\n // decide if it should reanimate with initial from style when props change\n shouldReAnimate: PropTypes.bool,\n onAnimationStart: PropTypes.func,\n onAnimationReStart: PropTypes.func\n};\nexport default Animate;","var _excluded = [\"children\", \"appearOptions\", \"enterOptions\", \"leaveOptions\"];\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport React, { Component, Children } from 'react';\nimport { Transition } from 'react-transition-group';\nimport PropTypes from 'prop-types';\nimport Animate from './Animate';\nvar parseDurationOfSingleTransition = function parseDurationOfSingleTransition() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var steps = options.steps,\n duration = options.duration;\n if (steps && steps.length) {\n return steps.reduce(function (result, entry) {\n return result + (Number.isFinite(entry.duration) && entry.duration > 0 ? entry.duration : 0);\n }, 0);\n }\n if (Number.isFinite(duration)) {\n return duration;\n }\n return 0;\n};\nvar AnimateGroupChild = /*#__PURE__*/function (_Component) {\n _inherits(AnimateGroupChild, _Component);\n var _super = _createSuper(AnimateGroupChild);\n function AnimateGroupChild() {\n var _this;\n _classCallCheck(this, AnimateGroupChild);\n _this = _super.call(this);\n _defineProperty(_assertThisInitialized(_this), \"handleEnter\", function (node, isAppearing) {\n var _this$props = _this.props,\n appearOptions = _this$props.appearOptions,\n enterOptions = _this$props.enterOptions;\n _this.handleStyleActive(isAppearing ? appearOptions : enterOptions);\n });\n _defineProperty(_assertThisInitialized(_this), \"handleExit\", function () {\n var leaveOptions = _this.props.leaveOptions;\n _this.handleStyleActive(leaveOptions);\n });\n _this.state = {\n isActive: false\n };\n return _this;\n }\n _createClass(AnimateGroupChild, [{\n key: \"handleStyleActive\",\n value: function handleStyleActive(style) {\n if (style) {\n var onAnimationEnd = style.onAnimationEnd ? function () {\n style.onAnimationEnd();\n } : null;\n this.setState(_objectSpread(_objectSpread({}, style), {}, {\n onAnimationEnd: onAnimationEnd,\n isActive: true\n }));\n }\n }\n }, {\n key: \"parseTimeout\",\n value: function parseTimeout() {\n var _this$props2 = this.props,\n appearOptions = _this$props2.appearOptions,\n enterOptions = _this$props2.enterOptions,\n leaveOptions = _this$props2.leaveOptions;\n return parseDurationOfSingleTransition(appearOptions) + parseDurationOfSingleTransition(enterOptions) + parseDurationOfSingleTransition(leaveOptions);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n var _this$props3 = this.props,\n children = _this$props3.children,\n appearOptions = _this$props3.appearOptions,\n enterOptions = _this$props3.enterOptions,\n leaveOptions = _this$props3.leaveOptions,\n props = _objectWithoutProperties(_this$props3, _excluded);\n return /*#__PURE__*/React.createElement(Transition, _extends({}, props, {\n onEnter: this.handleEnter,\n onExit: this.handleExit,\n timeout: this.parseTimeout()\n }), function () {\n return /*#__PURE__*/React.createElement(Animate, _this2.state, Children.only(children));\n });\n }\n }]);\n return AnimateGroupChild;\n}(Component);\nAnimateGroupChild.propTypes = {\n appearOptions: PropTypes.object,\n enterOptions: PropTypes.object,\n leaveOptions: PropTypes.object,\n children: PropTypes.element\n};\nexport default AnimateGroupChild;","import React, { Children } from 'react';\nimport { TransitionGroup } from 'react-transition-group';\nimport PropTypes from 'prop-types';\nimport AnimateGroupChild from './AnimateGroupChild';\nfunction AnimateGroup(props) {\n var component = props.component,\n children = props.children,\n appear = props.appear,\n enter = props.enter,\n leave = props.leave;\n return /*#__PURE__*/React.createElement(TransitionGroup, {\n component: component\n }, Children.map(children, function (child, index) {\n return /*#__PURE__*/React.createElement(AnimateGroupChild, {\n appearOptions: appear,\n enterOptions: enter,\n leaveOptions: leave,\n key: \"child-\".concat(index) // eslint-disable-line\n }, child);\n }));\n}\nAnimateGroup.propTypes = {\n appear: PropTypes.object,\n enter: PropTypes.object,\n leave: PropTypes.object,\n children: PropTypes.oneOfType([PropTypes.array, PropTypes.element]),\n component: PropTypes.any\n};\nAnimateGroup.defaultProps = {\n component: 'span'\n};\nexport default AnimateGroup;","import Animate from './Animate';\nimport { configBezier, configSpring } from './easing';\nimport AnimateGroup from './AnimateGroup';\nexport { configSpring, configBezier, AnimateGroup };\nexport default Animate;","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Rectangle\n */\nimport React, { useEffect, useRef, useState } from 'react';\nimport clsx from 'clsx';\nimport Animate from 'react-smooth';\nimport { filterProps } from '../util/ReactUtils';\nvar getRectanglePath = function getRectanglePath(x, y, width, height, radius) {\n var maxRadius = Math.min(Math.abs(width) / 2, Math.abs(height) / 2);\n var ySign = height >= 0 ? 1 : -1;\n var xSign = width >= 0 ? 1 : -1;\n var clockWise = height >= 0 && width >= 0 || height < 0 && width < 0 ? 1 : 0;\n var path;\n if (maxRadius > 0 && radius instanceof Array) {\n var newRadius = [0, 0, 0, 0];\n for (var i = 0, len = 4; i < len; i++) {\n newRadius[i] = radius[i] > maxRadius ? maxRadius : radius[i];\n }\n path = \"M\".concat(x, \",\").concat(y + ySign * newRadius[0]);\n if (newRadius[0] > 0) {\n path += \"A \".concat(newRadius[0], \",\").concat(newRadius[0], \",0,0,\").concat(clockWise, \",\").concat(x + xSign * newRadius[0], \",\").concat(y);\n }\n path += \"L \".concat(x + width - xSign * newRadius[1], \",\").concat(y);\n if (newRadius[1] > 0) {\n path += \"A \".concat(newRadius[1], \",\").concat(newRadius[1], \",0,0,\").concat(clockWise, \",\\n \").concat(x + width, \",\").concat(y + ySign * newRadius[1]);\n }\n path += \"L \".concat(x + width, \",\").concat(y + height - ySign * newRadius[2]);\n if (newRadius[2] > 0) {\n path += \"A \".concat(newRadius[2], \",\").concat(newRadius[2], \",0,0,\").concat(clockWise, \",\\n \").concat(x + width - xSign * newRadius[2], \",\").concat(y + height);\n }\n path += \"L \".concat(x + xSign * newRadius[3], \",\").concat(y + height);\n if (newRadius[3] > 0) {\n path += \"A \".concat(newRadius[3], \",\").concat(newRadius[3], \",0,0,\").concat(clockWise, \",\\n \").concat(x, \",\").concat(y + height - ySign * newRadius[3]);\n }\n path += 'Z';\n } else if (maxRadius > 0 && radius === +radius && radius > 0) {\n var _newRadius = Math.min(maxRadius, radius);\n path = \"M \".concat(x, \",\").concat(y + ySign * _newRadius, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x + xSign * _newRadius, \",\").concat(y, \"\\n L \").concat(x + width - xSign * _newRadius, \",\").concat(y, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x + width, \",\").concat(y + ySign * _newRadius, \"\\n L \").concat(x + width, \",\").concat(y + height - ySign * _newRadius, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x + width - xSign * _newRadius, \",\").concat(y + height, \"\\n L \").concat(x + xSign * _newRadius, \",\").concat(y + height, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x, \",\").concat(y + height - ySign * _newRadius, \" Z\");\n } else {\n path = \"M \".concat(x, \",\").concat(y, \" h \").concat(width, \" v \").concat(height, \" h \").concat(-width, \" Z\");\n }\n return path;\n};\nexport var isInRectangle = function isInRectangle(point, rect) {\n if (!point || !rect) {\n return false;\n }\n var px = point.x,\n py = point.y;\n var x = rect.x,\n y = rect.y,\n width = rect.width,\n height = rect.height;\n if (Math.abs(width) > 0 && Math.abs(height) > 0) {\n var minX = Math.min(x, x + width);\n var maxX = Math.max(x, x + width);\n var minY = Math.min(y, y + height);\n var maxY = Math.max(y, y + height);\n return px >= minX && px <= maxX && py >= minY && py <= maxY;\n }\n return false;\n};\nvar defaultProps = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n // The radius of border\n // The radius of four corners when radius is a number\n // The radius of left-top, right-top, right-bottom, left-bottom when radius is an array\n radius: 0,\n isAnimationActive: false,\n isUpdateAnimationActive: false,\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'ease'\n};\nexport var Rectangle = function Rectangle(rectangleProps) {\n var props = _objectSpread(_objectSpread({}, defaultProps), rectangleProps);\n var pathRef = useRef();\n var _useState = useState(-1),\n _useState2 = _slicedToArray(_useState, 2),\n totalLength = _useState2[0],\n setTotalLength = _useState2[1];\n useEffect(function () {\n if (pathRef.current && pathRef.current.getTotalLength) {\n try {\n var pathTotalLength = pathRef.current.getTotalLength();\n if (pathTotalLength) {\n setTotalLength(pathTotalLength);\n }\n } catch (err) {\n // calculate total length error\n }\n }\n }, []);\n var x = props.x,\n y = props.y,\n width = props.width,\n height = props.height,\n radius = props.radius,\n className = props.className;\n var animationEasing = props.animationEasing,\n animationDuration = props.animationDuration,\n animationBegin = props.animationBegin,\n isAnimationActive = props.isAnimationActive,\n isUpdateAnimationActive = props.isUpdateAnimationActive;\n if (x !== +x || y !== +y || width !== +width || height !== +height || width === 0 || height === 0) {\n return null;\n }\n var layerClass = clsx('recharts-rectangle', className);\n if (!isUpdateAnimationActive) {\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(props, true), {\n className: layerClass,\n d: getRectanglePath(x, y, width, height, radius)\n }));\n }\n return /*#__PURE__*/React.createElement(Animate, {\n canBegin: totalLength > 0,\n from: {\n width: width,\n height: height,\n x: x,\n y: y\n },\n to: {\n width: width,\n height: height,\n x: x,\n y: y\n },\n duration: animationDuration,\n animationEasing: animationEasing,\n isActive: isUpdateAnimationActive\n }, function (_ref) {\n var currWidth = _ref.width,\n currHeight = _ref.height,\n currX = _ref.x,\n currY = _ref.y;\n return /*#__PURE__*/React.createElement(Animate, {\n canBegin: totalLength > 0,\n from: \"0px \".concat(totalLength === -1 ? 1 : totalLength, \"px\"),\n to: \"\".concat(totalLength, \"px 0px\"),\n attributeName: \"strokeDasharray\",\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing\n }, /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(props, true), {\n className: layerClass,\n d: getRectanglePath(currX, currY, currWidth, currHeight, radius),\n ref: pathRef\n })));\n });\n};","export function initRange(domain, range) {\n switch (arguments.length) {\n case 0: break;\n case 1: this.range(domain); break;\n default: this.range(range).domain(domain); break;\n }\n return this;\n}\n\nexport function initInterpolator(domain, interpolator) {\n switch (arguments.length) {\n case 0: break;\n case 1: {\n if (typeof domain === \"function\") this.interpolator(domain);\n else this.range(domain);\n break;\n }\n default: {\n this.domain(domain);\n if (typeof interpolator === \"function\") this.interpolator(interpolator);\n else this.range(interpolator);\n break;\n }\n }\n return this;\n}\n","export class InternMap extends Map {\n constructor(entries, key = keyof) {\n super();\n Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}});\n if (entries != null) for (const [key, value] of entries) this.set(key, value);\n }\n get(key) {\n return super.get(intern_get(this, key));\n }\n has(key) {\n return super.has(intern_get(this, key));\n }\n set(key, value) {\n return super.set(intern_set(this, key), value);\n }\n delete(key) {\n return super.delete(intern_delete(this, key));\n }\n}\n\nexport class InternSet extends Set {\n constructor(values, key = keyof) {\n super();\n Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}});\n if (values != null) for (const value of values) this.add(value);\n }\n has(value) {\n return super.has(intern_get(this, value));\n }\n add(value) {\n return super.add(intern_set(this, value));\n }\n delete(value) {\n return super.delete(intern_delete(this, value));\n }\n}\n\nfunction intern_get({_intern, _key}, value) {\n const key = _key(value);\n return _intern.has(key) ? _intern.get(key) : value;\n}\n\nfunction intern_set({_intern, _key}, value) {\n const key = _key(value);\n if (_intern.has(key)) return _intern.get(key);\n _intern.set(key, value);\n return value;\n}\n\nfunction intern_delete({_intern, _key}, value) {\n const key = _key(value);\n if (_intern.has(key)) {\n value = _intern.get(key);\n _intern.delete(key);\n }\n return value;\n}\n\nfunction keyof(value) {\n return value !== null && typeof value === \"object\" ? value.valueOf() : value;\n}\n","import {InternMap} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport const implicit = Symbol(\"implicit\");\n\nexport default function ordinal() {\n var index = new InternMap(),\n domain = [],\n range = [],\n unknown = implicit;\n\n function scale(d) {\n let i = index.get(d);\n if (i === undefined) {\n if (unknown !== implicit) return unknown;\n index.set(d, i = domain.push(d) - 1);\n }\n return range[i % range.length];\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [], index = new InternMap();\n for (const value of _) {\n if (index.has(value)) continue;\n index.set(value, domain.push(value) - 1);\n }\n return scale;\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), scale) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return ordinal(domain, range).unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n","import {range as sequence} from \"d3-array\";\nimport {initRange} from \"./init.js\";\nimport ordinal from \"./ordinal.js\";\n\nexport default function band() {\n var scale = ordinal().unknown(undefined),\n domain = scale.domain,\n ordinalRange = scale.range,\n r0 = 0,\n r1 = 1,\n step,\n bandwidth,\n round = false,\n paddingInner = 0,\n paddingOuter = 0,\n align = 0.5;\n\n delete scale.unknown;\n\n function rescale() {\n var n = domain().length,\n reverse = r1 < r0,\n start = reverse ? r1 : r0,\n stop = reverse ? r0 : r1;\n step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);\n if (round) step = Math.floor(step);\n start += (stop - start - step * (n - paddingInner)) * align;\n bandwidth = step * (1 - paddingInner);\n if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);\n var values = sequence(n).map(function(i) { return start + step * i; });\n return ordinalRange(reverse ? values.reverse() : values);\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? ([r0, r1] = _, r0 = +r0, r1 = +r1, rescale()) : [r0, r1];\n };\n\n scale.rangeRound = function(_) {\n return [r0, r1] = _, r0 = +r0, r1 = +r1, round = true, rescale();\n };\n\n scale.bandwidth = function() {\n return bandwidth;\n };\n\n scale.step = function() {\n return step;\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, rescale()) : round;\n };\n\n scale.padding = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner;\n };\n\n scale.paddingInner = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner;\n };\n\n scale.paddingOuter = function(_) {\n return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter;\n };\n\n scale.align = function(_) {\n return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;\n };\n\n scale.copy = function() {\n return band(domain(), [r0, r1])\n .round(round)\n .paddingInner(paddingInner)\n .paddingOuter(paddingOuter)\n .align(align);\n };\n\n return initRange.apply(rescale(), arguments);\n}\n\nfunction pointish(scale) {\n var copy = scale.copy;\n\n scale.padding = scale.paddingOuter;\n delete scale.paddingInner;\n delete scale.paddingOuter;\n\n scale.copy = function() {\n return pointish(copy());\n };\n\n return scale;\n}\n\nexport function point() {\n return pointish(band.apply(null, arguments).paddingInner(1));\n}\n","export default function range(start, stop, step) {\n start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n\n var i = -1,\n n = Math.max(0, Math.ceil((stop - start) / step)) | 0,\n range = new Array(n);\n\n while (++i < n) {\n range[i] = start + i * step;\n }\n\n return range;\n}\n","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nimport { Global } from './Global';\nvar stringCache = {\n widthCache: {},\n cacheCount: 0\n};\nvar MAX_CACHE_NUM = 2000;\nvar SPAN_STYLE = {\n position: 'absolute',\n top: '-20000px',\n left: 0,\n padding: 0,\n margin: 0,\n border: 'none',\n whiteSpace: 'pre'\n};\nvar STYLE_LIST = ['minWidth', 'maxWidth', 'width', 'minHeight', 'maxHeight', 'height', 'top', 'left', 'fontSize', 'lineHeight', 'padding', 'margin', 'paddingLeft', 'paddingRight', 'paddingTop', 'paddingBottom', 'marginLeft', 'marginRight', 'marginTop', 'marginBottom'];\nvar MEASUREMENT_SPAN_ID = 'recharts_measurement_span';\nfunction autoCompleteStyle(name, value) {\n if (STYLE_LIST.indexOf(name) >= 0 && value === +value) {\n return \"\".concat(value, \"px\");\n }\n return value;\n}\nfunction camelToMiddleLine(text) {\n var strs = text.split('');\n var formatStrs = strs.reduce(function (result, entry) {\n if (entry === entry.toUpperCase()) {\n return [].concat(_toConsumableArray(result), ['-', entry.toLowerCase()]);\n }\n return [].concat(_toConsumableArray(result), [entry]);\n }, []);\n return formatStrs.join('');\n}\nexport var getStyleString = function getStyleString(style) {\n return Object.keys(style).reduce(function (result, s) {\n return \"\".concat(result).concat(camelToMiddleLine(s), \":\").concat(autoCompleteStyle(s, style[s]), \";\");\n }, '');\n};\nfunction removeInvalidKeys(obj) {\n var copyObj = _objectSpread({}, obj);\n Object.keys(copyObj).forEach(function (key) {\n if (!copyObj[key]) {\n delete copyObj[key];\n }\n });\n return copyObj;\n}\nexport var getStringSize = function getStringSize(text) {\n var style = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (text === undefined || text === null || Global.isSsr) {\n return {\n width: 0,\n height: 0\n };\n }\n var copyStyle = removeInvalidKeys(style);\n var cacheKey = JSON.stringify({\n text: text,\n copyStyle: copyStyle\n });\n if (stringCache.widthCache[cacheKey]) {\n return stringCache.widthCache[cacheKey];\n }\n try {\n var measurementSpan = document.getElementById(MEASUREMENT_SPAN_ID);\n if (!measurementSpan) {\n measurementSpan = document.createElement('span');\n measurementSpan.setAttribute('id', MEASUREMENT_SPAN_ID);\n measurementSpan.setAttribute('aria-hidden', 'true');\n document.body.appendChild(measurementSpan);\n }\n // Need to use CSS Object Model (CSSOM) to be able to comply with Content Security Policy (CSP)\n // https://en.wikipedia.org/wiki/Content_Security_Policy\n var measurementSpanStyle = _objectSpread(_objectSpread({}, SPAN_STYLE), copyStyle);\n Object.assign(measurementSpan.style, measurementSpanStyle);\n measurementSpan.textContent = \"\".concat(text);\n var rect = measurementSpan.getBoundingClientRect();\n var result = {\n width: rect.width,\n height: rect.height\n };\n stringCache.widthCache[cacheKey] = result;\n if (++stringCache.cacheCount > MAX_CACHE_NUM) {\n stringCache.cacheCount = 0;\n stringCache.widthCache = {};\n }\n return result;\n } catch (e) {\n return {\n width: 0,\n height: 0\n };\n }\n};\nexport var getOffset = function getOffset(rect) {\n return {\n top: rect.top + window.scrollY - document.documentElement.clientTop,\n left: rect.left + window.scrollX - document.documentElement.clientLeft\n };\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar MULTIPLY_OR_DIVIDE_REGEX = /(-?\\d+(?:\\.\\d+)?[a-zA-Z%]*)([*/])(-?\\d+(?:\\.\\d+)?[a-zA-Z%]*)/;\nvar ADD_OR_SUBTRACT_REGEX = /(-?\\d+(?:\\.\\d+)?[a-zA-Z%]*)([+-])(-?\\d+(?:\\.\\d+)?[a-zA-Z%]*)/;\nvar CSS_LENGTH_UNIT_REGEX = /^px|cm|vh|vw|em|rem|%|mm|in|pt|pc|ex|ch|vmin|vmax|Q$/;\nvar NUM_SPLIT_REGEX = /(-?\\d+(?:\\.\\d+)?)([a-zA-Z%]+)?/;\nvar CONVERSION_RATES = {\n cm: 96 / 2.54,\n mm: 96 / 25.4,\n pt: 96 / 72,\n pc: 96 / 6,\n \"in\": 96,\n Q: 96 / (2.54 * 40),\n px: 1\n};\nvar FIXED_CSS_LENGTH_UNITS = Object.keys(CONVERSION_RATES);\nvar STR_NAN = 'NaN';\nfunction convertToPx(value, unit) {\n return value * CONVERSION_RATES[unit];\n}\nvar DecimalCSS = /*#__PURE__*/function () {\n function DecimalCSS(num, unit) {\n _classCallCheck(this, DecimalCSS);\n this.num = num;\n this.unit = unit;\n this.num = num;\n this.unit = unit;\n if (Number.isNaN(num)) {\n this.unit = '';\n }\n if (unit !== '' && !CSS_LENGTH_UNIT_REGEX.test(unit)) {\n this.num = NaN;\n this.unit = '';\n }\n if (FIXED_CSS_LENGTH_UNITS.includes(unit)) {\n this.num = convertToPx(num, unit);\n this.unit = 'px';\n }\n }\n _createClass(DecimalCSS, [{\n key: \"add\",\n value: function add(other) {\n if (this.unit !== other.unit) {\n return new DecimalCSS(NaN, '');\n }\n return new DecimalCSS(this.num + other.num, this.unit);\n }\n }, {\n key: \"subtract\",\n value: function subtract(other) {\n if (this.unit !== other.unit) {\n return new DecimalCSS(NaN, '');\n }\n return new DecimalCSS(this.num - other.num, this.unit);\n }\n }, {\n key: \"multiply\",\n value: function multiply(other) {\n if (this.unit !== '' && other.unit !== '' && this.unit !== other.unit) {\n return new DecimalCSS(NaN, '');\n }\n return new DecimalCSS(this.num * other.num, this.unit || other.unit);\n }\n }, {\n key: \"divide\",\n value: function divide(other) {\n if (this.unit !== '' && other.unit !== '' && this.unit !== other.unit) {\n return new DecimalCSS(NaN, '');\n }\n return new DecimalCSS(this.num / other.num, this.unit || other.unit);\n }\n }, {\n key: \"toString\",\n value: function toString() {\n return \"\".concat(this.num).concat(this.unit);\n }\n }, {\n key: \"isNaN\",\n value: function isNaN() {\n return Number.isNaN(this.num);\n }\n }], [{\n key: \"parse\",\n value: function parse(str) {\n var _NUM_SPLIT_REGEX$exec;\n var _ref = (_NUM_SPLIT_REGEX$exec = NUM_SPLIT_REGEX.exec(str)) !== null && _NUM_SPLIT_REGEX$exec !== void 0 ? _NUM_SPLIT_REGEX$exec : [],\n _ref2 = _slicedToArray(_ref, 3),\n numStr = _ref2[1],\n unit = _ref2[2];\n return new DecimalCSS(parseFloat(numStr), unit !== null && unit !== void 0 ? unit : '');\n }\n }]);\n return DecimalCSS;\n}();\nfunction calculateArithmetic(expr) {\n if (expr.includes(STR_NAN)) {\n return STR_NAN;\n }\n var newExpr = expr;\n while (newExpr.includes('*') || newExpr.includes('/')) {\n var _MULTIPLY_OR_DIVIDE_R;\n var _ref3 = (_MULTIPLY_OR_DIVIDE_R = MULTIPLY_OR_DIVIDE_REGEX.exec(newExpr)) !== null && _MULTIPLY_OR_DIVIDE_R !== void 0 ? _MULTIPLY_OR_DIVIDE_R : [],\n _ref4 = _slicedToArray(_ref3, 4),\n leftOperand = _ref4[1],\n operator = _ref4[2],\n rightOperand = _ref4[3];\n var lTs = DecimalCSS.parse(leftOperand !== null && leftOperand !== void 0 ? leftOperand : '');\n var rTs = DecimalCSS.parse(rightOperand !== null && rightOperand !== void 0 ? rightOperand : '');\n var result = operator === '*' ? lTs.multiply(rTs) : lTs.divide(rTs);\n if (result.isNaN()) {\n return STR_NAN;\n }\n newExpr = newExpr.replace(MULTIPLY_OR_DIVIDE_REGEX, result.toString());\n }\n while (newExpr.includes('+') || /.-\\d+(?:\\.\\d+)?/.test(newExpr)) {\n var _ADD_OR_SUBTRACT_REGE;\n var _ref5 = (_ADD_OR_SUBTRACT_REGE = ADD_OR_SUBTRACT_REGEX.exec(newExpr)) !== null && _ADD_OR_SUBTRACT_REGE !== void 0 ? _ADD_OR_SUBTRACT_REGE : [],\n _ref6 = _slicedToArray(_ref5, 4),\n _leftOperand = _ref6[1],\n _operator = _ref6[2],\n _rightOperand = _ref6[3];\n var _lTs = DecimalCSS.parse(_leftOperand !== null && _leftOperand !== void 0 ? _leftOperand : '');\n var _rTs = DecimalCSS.parse(_rightOperand !== null && _rightOperand !== void 0 ? _rightOperand : '');\n var _result = _operator === '+' ? _lTs.add(_rTs) : _lTs.subtract(_rTs);\n if (_result.isNaN()) {\n return STR_NAN;\n }\n newExpr = newExpr.replace(ADD_OR_SUBTRACT_REGEX, _result.toString());\n }\n return newExpr;\n}\nvar PARENTHESES_REGEX = /\\(([^()]*)\\)/;\nfunction calculateParentheses(expr) {\n var newExpr = expr;\n while (newExpr.includes('(')) {\n var _PARENTHESES_REGEX$ex = PARENTHESES_REGEX.exec(newExpr),\n _PARENTHESES_REGEX$ex2 = _slicedToArray(_PARENTHESES_REGEX$ex, 2),\n parentheticalExpression = _PARENTHESES_REGEX$ex2[1];\n newExpr = newExpr.replace(PARENTHESES_REGEX, calculateArithmetic(parentheticalExpression));\n }\n return newExpr;\n}\nfunction evaluateExpression(expression) {\n var newExpr = expression.replace(/\\s+/g, '');\n newExpr = calculateParentheses(newExpr);\n newExpr = calculateArithmetic(newExpr);\n return newExpr;\n}\nexport function safeEvaluateExpression(expression) {\n try {\n return evaluateExpression(expression);\n } catch (e) {\n /* istanbul ignore next */\n return STR_NAN;\n }\n}\nexport function reduceCSSCalc(expression) {\n var result = safeEvaluateExpression(expression.slice(5, -1));\n if (result === STR_NAN) {\n // notify the user\n return '';\n }\n return result;\n}","var _excluded = [\"x\", \"y\", \"lineHeight\", \"capHeight\", \"scaleToFit\", \"textAnchor\", \"verticalAnchor\", \"fill\"],\n _excluded2 = [\"dx\", \"dy\", \"angle\", \"className\", \"breakAll\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nimport React, { useMemo } from 'react';\nimport isNil from 'lodash/isNil';\nimport clsx from 'clsx';\nimport { isNumber, isNumOrStr } from '../util/DataUtils';\nimport { Global } from '../util/Global';\nimport { filterProps } from '../util/ReactUtils';\nimport { getStringSize } from '../util/DOMUtils';\nimport { reduceCSSCalc } from '../util/ReduceCSSCalc';\nvar BREAKING_SPACES = /[ \\f\\n\\r\\t\\v\\u2028\\u2029]+/;\nvar calculateWordWidths = function calculateWordWidths(_ref) {\n var children = _ref.children,\n breakAll = _ref.breakAll,\n style = _ref.style;\n try {\n var words = [];\n if (!isNil(children)) {\n if (breakAll) {\n words = children.toString().split('');\n } else {\n words = children.toString().split(BREAKING_SPACES);\n }\n }\n var wordsWithComputedWidth = words.map(function (word) {\n return {\n word: word,\n width: getStringSize(word, style).width\n };\n });\n var spaceWidth = breakAll ? 0 : getStringSize(\"\\xA0\", style).width;\n return {\n wordsWithComputedWidth: wordsWithComputedWidth,\n spaceWidth: spaceWidth\n };\n } catch (e) {\n return null;\n }\n};\nvar calculateWordsByLines = function calculateWordsByLines(_ref2, initialWordsWithComputedWith, spaceWidth, lineWidth, scaleToFit) {\n var maxLines = _ref2.maxLines,\n children = _ref2.children,\n style = _ref2.style,\n breakAll = _ref2.breakAll;\n var shouldLimitLines = isNumber(maxLines);\n var text = children;\n var calculate = function calculate() {\n var words = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n return words.reduce(function (result, _ref3) {\n var word = _ref3.word,\n width = _ref3.width;\n var currentLine = result[result.length - 1];\n if (currentLine && (lineWidth == null || scaleToFit || currentLine.width + width + spaceWidth < Number(lineWidth))) {\n // Word can be added to an existing line\n currentLine.words.push(word);\n currentLine.width += width + spaceWidth;\n } else {\n // Add first word to line or word is too long to scaleToFit on existing line\n var newLine = {\n words: [word],\n width: width\n };\n result.push(newLine);\n }\n return result;\n }, []);\n };\n var originalResult = calculate(initialWordsWithComputedWith);\n var findLongestLine = function findLongestLine(words) {\n return words.reduce(function (a, b) {\n return a.width > b.width ? a : b;\n });\n };\n if (!shouldLimitLines) {\n return originalResult;\n }\n var suffix = '…';\n var checkOverflow = function checkOverflow(index) {\n var tempText = text.slice(0, index);\n var words = calculateWordWidths({\n breakAll: breakAll,\n style: style,\n children: tempText + suffix\n }).wordsWithComputedWidth;\n var result = calculate(words);\n var doesOverflow = result.length > maxLines || findLongestLine(result).width > Number(lineWidth);\n return [doesOverflow, result];\n };\n var start = 0;\n var end = text.length - 1;\n var iterations = 0;\n var trimmedResult;\n while (start <= end && iterations <= text.length - 1) {\n var middle = Math.floor((start + end) / 2);\n var prev = middle - 1;\n var _checkOverflow = checkOverflow(prev),\n _checkOverflow2 = _slicedToArray(_checkOverflow, 2),\n doesPrevOverflow = _checkOverflow2[0],\n result = _checkOverflow2[1];\n var _checkOverflow3 = checkOverflow(middle),\n _checkOverflow4 = _slicedToArray(_checkOverflow3, 1),\n doesMiddleOverflow = _checkOverflow4[0];\n if (!doesPrevOverflow && !doesMiddleOverflow) {\n start = middle + 1;\n }\n if (doesPrevOverflow && doesMiddleOverflow) {\n end = middle - 1;\n }\n if (!doesPrevOverflow && doesMiddleOverflow) {\n trimmedResult = result;\n break;\n }\n iterations++;\n }\n\n // Fallback to originalResult (result without trimming) if we cannot find the\n // where to trim. This should not happen :tm:\n return trimmedResult || originalResult;\n};\nvar getWordsWithoutCalculate = function getWordsWithoutCalculate(children) {\n var words = !isNil(children) ? children.toString().split(BREAKING_SPACES) : [];\n return [{\n words: words\n }];\n};\nvar getWordsByLines = function getWordsByLines(_ref4) {\n var width = _ref4.width,\n scaleToFit = _ref4.scaleToFit,\n children = _ref4.children,\n style = _ref4.style,\n breakAll = _ref4.breakAll,\n maxLines = _ref4.maxLines;\n // Only perform calculations if using features that require them (multiline, scaleToFit)\n if ((width || scaleToFit) && !Global.isSsr) {\n var wordsWithComputedWidth, spaceWidth;\n var wordWidths = calculateWordWidths({\n breakAll: breakAll,\n children: children,\n style: style\n });\n if (wordWidths) {\n var wcw = wordWidths.wordsWithComputedWidth,\n sw = wordWidths.spaceWidth;\n wordsWithComputedWidth = wcw;\n spaceWidth = sw;\n } else {\n return getWordsWithoutCalculate(children);\n }\n return calculateWordsByLines({\n breakAll: breakAll,\n children: children,\n maxLines: maxLines,\n style: style\n }, wordsWithComputedWidth, spaceWidth, width, scaleToFit);\n }\n return getWordsWithoutCalculate(children);\n};\nvar DEFAULT_FILL = '#808080';\nexport var Text = function Text(_ref5) {\n var _ref5$x = _ref5.x,\n propsX = _ref5$x === void 0 ? 0 : _ref5$x,\n _ref5$y = _ref5.y,\n propsY = _ref5$y === void 0 ? 0 : _ref5$y,\n _ref5$lineHeight = _ref5.lineHeight,\n lineHeight = _ref5$lineHeight === void 0 ? '1em' : _ref5$lineHeight,\n _ref5$capHeight = _ref5.capHeight,\n capHeight = _ref5$capHeight === void 0 ? '0.71em' : _ref5$capHeight,\n _ref5$scaleToFit = _ref5.scaleToFit,\n scaleToFit = _ref5$scaleToFit === void 0 ? false : _ref5$scaleToFit,\n _ref5$textAnchor = _ref5.textAnchor,\n textAnchor = _ref5$textAnchor === void 0 ? 'start' : _ref5$textAnchor,\n _ref5$verticalAnchor = _ref5.verticalAnchor,\n verticalAnchor = _ref5$verticalAnchor === void 0 ? 'end' : _ref5$verticalAnchor,\n _ref5$fill = _ref5.fill,\n fill = _ref5$fill === void 0 ? DEFAULT_FILL : _ref5$fill,\n props = _objectWithoutProperties(_ref5, _excluded);\n var wordsByLines = useMemo(function () {\n return getWordsByLines({\n breakAll: props.breakAll,\n children: props.children,\n maxLines: props.maxLines,\n scaleToFit: scaleToFit,\n style: props.style,\n width: props.width\n });\n }, [props.breakAll, props.children, props.maxLines, scaleToFit, props.style, props.width]);\n var dx = props.dx,\n dy = props.dy,\n angle = props.angle,\n className = props.className,\n breakAll = props.breakAll,\n textProps = _objectWithoutProperties(props, _excluded2);\n if (!isNumOrStr(propsX) || !isNumOrStr(propsY)) {\n return null;\n }\n var x = propsX + (isNumber(dx) ? dx : 0);\n var y = propsY + (isNumber(dy) ? dy : 0);\n var startDy;\n switch (verticalAnchor) {\n case 'start':\n startDy = reduceCSSCalc(\"calc(\".concat(capHeight, \")\"));\n break;\n case 'middle':\n startDy = reduceCSSCalc(\"calc(\".concat((wordsByLines.length - 1) / 2, \" * -\").concat(lineHeight, \" + (\").concat(capHeight, \" / 2))\"));\n break;\n default:\n startDy = reduceCSSCalc(\"calc(\".concat(wordsByLines.length - 1, \" * -\").concat(lineHeight, \")\"));\n break;\n }\n var transforms = [];\n if (scaleToFit) {\n var lineWidth = wordsByLines[0].width;\n var width = props.width;\n transforms.push(\"scale(\".concat((isNumber(width) ? width / lineWidth : 1) / lineWidth, \")\"));\n }\n if (angle) {\n transforms.push(\"rotate(\".concat(angle, \", \").concat(x, \", \").concat(y, \")\"));\n }\n if (transforms.length) {\n textProps.transform = transforms.join(' ');\n }\n return /*#__PURE__*/React.createElement(\"text\", _extends({}, filterProps(textProps, true), {\n x: x,\n y: y,\n className: clsx('recharts-text', className),\n textAnchor: textAnchor,\n fill: fill.includes('url') ? DEFAULT_FILL : fill\n }), wordsByLines.map(function (line, index) {\n var words = line.words.join(breakAll ? '' : ' ');\n return /*#__PURE__*/React.createElement(\"tspan\", {\n x: x,\n dy: index === 0 ? startDy : lineHeight,\n key: words\n }, words);\n }));\n};","const e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nfunction tickSpec(start, stop, count) {\n const step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log10(step)),\n error = step / Math.pow(10, power),\n factor = error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1;\n let i1, i2, inc;\n if (power < 0) {\n inc = Math.pow(10, -power) / factor;\n i1 = Math.round(start * inc);\n i2 = Math.round(stop * inc);\n if (i1 / inc < start) ++i1;\n if (i2 / inc > stop) --i2;\n inc = -inc;\n } else {\n inc = Math.pow(10, power) * factor;\n i1 = Math.round(start / inc);\n i2 = Math.round(stop / inc);\n if (i1 * inc < start) ++i1;\n if (i2 * inc > stop) --i2;\n }\n if (i2 < i1 && 0.5 <= count && count < 2) return tickSpec(start, stop, count * 2);\n return [i1, i2, inc];\n}\n\nexport default function ticks(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n if (!(count > 0)) return [];\n if (start === stop) return [start];\n const reverse = stop < start, [i1, i2, inc] = reverse ? tickSpec(stop, start, count) : tickSpec(start, stop, count);\n if (!(i2 >= i1)) return [];\n const n = i2 - i1 + 1, ticks = new Array(n);\n if (reverse) {\n if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) / -inc;\n else for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) * inc;\n } else {\n if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) / -inc;\n else for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) * inc;\n }\n return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n return tickSpec(start, stop, count)[2];\n}\n\nexport function tickStep(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n const reverse = stop < start, inc = reverse ? tickIncrement(stop, start, count) : tickIncrement(start, stop, count);\n return (reverse ? -1 : 1) * (inc < 0 ? 1 / -inc : inc);\n}\n","export default function ascending(a, b) {\n return a == null || b == null ? NaN : a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function descending(a, b) {\n return a == null || b == null ? NaN\n : b < a ? -1\n : b > a ? 1\n : b >= a ? 0\n : NaN;\n}\n","import ascending from \"./ascending.js\";\nimport descending from \"./descending.js\";\n\nexport default function bisector(f) {\n let compare1, compare2, delta;\n\n // If an accessor is specified, promote it to a comparator. In this case we\n // can test whether the search value is (self-) comparable. We can’t do this\n // for a comparator (except for specific, known comparators) because we can’t\n // tell if the comparator is symmetric, and an asymmetric comparator can’t be\n // used to test whether a single value is comparable.\n if (f.length !== 2) {\n compare1 = ascending;\n compare2 = (d, x) => ascending(f(d), x);\n delta = (d, x) => f(d) - x;\n } else {\n compare1 = f === ascending || f === descending ? f : zero;\n compare2 = f;\n delta = f;\n }\n\n function left(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = (lo + hi) >>> 1;\n if (compare2(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n\n function right(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = (lo + hi) >>> 1;\n if (compare2(a[mid], x) <= 0) lo = mid + 1;\n else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n\n function center(a, x, lo = 0, hi = a.length) {\n const i = left(a, x, lo, hi - 1);\n return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i;\n }\n\n return {left, center, right};\n}\n\nfunction zero() {\n return 0;\n}\n","export default function number(x) {\n return x === null ? NaN : +x;\n}\n\nexport function* numbers(values, valueof) {\n if (valueof === undefined) {\n for (let value of values) {\n if (value != null && (value = +value) >= value) {\n yield value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {\n yield value;\n }\n }\n }\n}\n","import ascending from \"./ascending.js\";\nimport bisector from \"./bisector.js\";\nimport number from \"./number.js\";\n\nconst ascendingBisect = bisector(ascending);\nexport const bisectRight = ascendingBisect.right;\nexport const bisectLeft = ascendingBisect.left;\nexport const bisectCenter = bisector(number).center;\nexport default bisectRight;\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(`^rgb\\\\(${reI},${reI},${reI}\\\\)$`),\n reRgbPercent = new RegExp(`^rgb\\\\(${reP},${reP},${reP}\\\\)$`),\n reRgbaInteger = new RegExp(`^rgba\\\\(${reI},${reI},${reI},${reN}\\\\)$`),\n reRgbaPercent = new RegExp(`^rgba\\\\(${reP},${reP},${reP},${reN}\\\\)$`),\n reHslPercent = new RegExp(`^hsl\\\\(${reN},${reP},${reP}\\\\)$`),\n reHslaPercent = new RegExp(`^hsla\\\\(${reN},${reP},${reP},${reN}\\\\)$`);\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHex8: color_formatHex8,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHex8() {\n return this.rgb().formatHex8();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb() {\n return this;\n },\n clamp() {\n return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));\n },\n displayable() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatHex8: rgb_formatHex8,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;\n}\n\nfunction rgb_formatHex8() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;\n}\n\nfunction rgb_formatRgb() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"rgb(\" : \"rgba(\"}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? \")\" : `, ${a})`}`;\n}\n\nfunction clampa(opacity) {\n return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));\n}\n\nfunction clampi(value) {\n return Math.max(0, Math.min(255, Math.round(value) || 0));\n}\n\nfunction hex(value) {\n value = clampi(value);\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n clamp() {\n return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));\n },\n displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"hsl(\" : \"hsla(\"}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? \")\" : `, ${a})`}`;\n }\n}));\n\nfunction clamph(value) {\n value = (value || 0) % 360;\n return value < 0 ? value + 360 : value;\n}\n\nfunction clampt(value) {\n return Math.max(0, Math.min(1, value || 0));\n}\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n + (4 - 6 * t2 + 3 * t3) * v1\n + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n + t3 * v3) / 6;\n}\n\nexport default function(values) {\n var n = values.length - 1;\n return function(t) {\n var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","export default x => () => x;\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","import {basis} from \"./basis.js\";\n\nexport default function(values) {\n var n = values.length;\n return function(t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","import value from \"./value.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n return (isNumberArray(b) ? numberArray : genericArray)(a, b);\n}\n\nexport function genericArray(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(na),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);\n for (; i < nb; ++i) c[i] = b[i];\n\n return function(t) {\n for (i = 0; i < na; ++i) c[i] = x[i](t);\n return c;\n };\n}\n","export default function(a, b) {\n var d = new Date;\n return a = +a, b = +b, function(t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","import value from \"./value.js\";\n\nexport default function(a, b) {\n var i = {},\n c = {},\n k;\n\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n\n for (k in b) {\n if (k in a) {\n i[k] = value(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","export default function(a, b) {\n if (!b) b = [];\n var n = a ? Math.min(b.length, a.length) : 0,\n c = b.slice(),\n i;\n return function(t) {\n for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;\n return c;\n };\n}\n\nexport function isNumberArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n","import {color} from \"d3-color\";\nimport rgb from \"./rgb.js\";\nimport {genericArray} from \"./array.js\";\nimport date from \"./date.js\";\nimport number from \"./number.js\";\nimport object from \"./object.js\";\nimport string from \"./string.js\";\nimport constant from \"./constant.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? constant(b)\n : (t === \"number\" ? number\n : t === \"string\" ? ((c = color(b)) ? (b = c, rgb) : string)\n : b instanceof color ? rgb\n : b instanceof Date ? date\n : isNumberArray(b) ? numberArray\n : Array.isArray(b) ? genericArray\n : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object\n : number)(a, b);\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return Math.round(a * (1 - t) + b * t);\n };\n}\n","export default function number(x) {\n return +x;\n}\n","import {bisect} from \"d3-array\";\nimport {interpolate as interpolateValue, interpolateNumber, interpolateRound} from \"d3-interpolate\";\nimport constant from \"./constant.js\";\nimport number from \"./number.js\";\n\nvar unit = [0, 1];\n\nexport function identity(x) {\n return x;\n}\n\nfunction normalize(a, b) {\n return (b -= (a = +a))\n ? function(x) { return (x - a) / b; }\n : constant(isNaN(b) ? NaN : 0.5);\n}\n\nfunction clamper(a, b) {\n var t;\n if (a > b) t = a, a = b, b = t;\n return function(x) { return Math.max(a, Math.min(b, x)); };\n}\n\n// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].\nfunction bimap(domain, range, interpolate) {\n var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);\n else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);\n return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, interpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1;\n\n // Reverse descending domains.\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n\n while (++i < j) {\n d[i] = normalize(domain[i], domain[i + 1]);\n r[i] = interpolate(range[i], range[i + 1]);\n }\n\n return function(x) {\n var i = bisect(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .range(source.range())\n .interpolate(source.interpolate())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport function transformer() {\n var domain = unit,\n range = unit,\n interpolate = interpolateValue,\n transform,\n untransform,\n unknown,\n clamp = identity,\n piecewise,\n output,\n input;\n\n function rescale() {\n var n = Math.min(domain.length, range.length);\n if (clamp !== identity) clamp = clamper(domain[0], domain[n - 1]);\n piecewise = n > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));\n }\n\n scale.invert = function(y) {\n return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y)));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_, number), rescale()) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = Array.from(_), interpolate = interpolateRound, rescale();\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = _ ? true : identity, rescale()) : clamp !== identity;\n };\n\n scale.interpolate = function(_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t, u) {\n transform = t, untransform = u;\n return rescale();\n };\n}\n\nexport default function continuous() {\n return transformer()(identity, identity);\n}\n","export default function constants(x) {\n return function() {\n return x;\n };\n}\n","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nexport default function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + (this.trim ? \"~\" : \"\")\n + this.type;\n};\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n","export default function(x) {\n return Math.abs(x = Math.round(x)) >= 1e21\n ? x.toLocaleString(\"en\").replace(/,/g, \"\")\n : x.toString(10);\n}\n\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns [\"123\", 0].\nexport function formatDecimalParts(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n var i, coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n","import formatDecimal from \"./formatDecimal.js\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\n\nexport default {\n \"%\": (x, p) => (x * 100).toFixed(p),\n \"b\": (x) => Math.round(x).toString(2),\n \"c\": (x) => x + \"\",\n \"d\": formatDecimal,\n \"e\": (x, p) => x.toExponential(p),\n \"f\": (x, p) => x.toFixed(p),\n \"g\": (x, p) => x.toPrecision(p),\n \"o\": (x) => Math.round(x).toString(8),\n \"p\": (x, p) => formatRounded(x * 100, p),\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": (x) => Math.round(x).toString(16).toUpperCase(),\n \"x\": (x) => Math.round(x).toString(16)\n};\n","export default function(x) {\n return x;\n}\n","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport {prefixExponent} from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\n\nvar map = Array.prototype.map,\n prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"−\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\";\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision === undefined ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n var valueNegative = value < 0 || 1 / value < 0;\n\n // Perform the initial formatting.\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = formatTrim(value);\n\n // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function(value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}\n","export default function(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}\n","export default function(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n}\n","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n","import {tickStep} from \"d3-array\";\nimport {format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound} from \"d3-format\";\n\nexport default function tickFormat(start, stop, count, specifier) {\n var step = tickStep(start, stop, count),\n precision;\n specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n switch (specifier.type) {\n case \"s\": {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;\n return formatPrefix(specifier, value);\n }\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\": {\n if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n break;\n }\n case \"f\":\n case \"%\": {\n if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n return format(specifier);\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}\n","import {ticks, tickIncrement} from \"d3-array\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport tickFormat from \"./tickFormat.js\";\n\nexport function linearish(scale) {\n var domain = scale.domain;\n\n scale.ticks = function(count) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function(count, specifier) {\n var d = domain();\n return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);\n };\n\n scale.nice = function(count) {\n if (count == null) count = 10;\n\n var d = domain();\n var i0 = 0;\n var i1 = d.length - 1;\n var start = d[i0];\n var stop = d[i1];\n var prestep;\n var step;\n var maxIter = 10;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n \n while (maxIter-- > 0) {\n step = tickIncrement(start, stop, count);\n if (step === prestep) {\n d[i0] = start\n d[i1] = stop\n return domain(d);\n } else if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n } else {\n break;\n }\n prestep = step;\n }\n\n return scale;\n };\n\n return scale;\n}\n\nexport default function linear() {\n var scale = continuous();\n\n scale.copy = function() {\n return copy(scale, linear());\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n","import {linearish} from \"./linear.js\";\nimport number from \"./number.js\";\n\nexport default function identity(domain) {\n var unknown;\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : x;\n }\n\n scale.invert = scale;\n\n scale.domain = scale.range = function(_) {\n return arguments.length ? (domain = Array.from(_, number), scale) : domain.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return identity(domain).unknown(unknown);\n };\n\n domain = arguments.length ? Array.from(domain, number) : [0, 1];\n\n return linearish(scale);\n}\n","export default function nice(domain, interval) {\n domain = domain.slice();\n\n var i0 = 0,\n i1 = domain.length - 1,\n x0 = domain[i0],\n x1 = domain[i1],\n t;\n\n if (x1 < x0) {\n t = i0, i0 = i1, i1 = t;\n t = x0, x0 = x1, x1 = t;\n }\n\n domain[i0] = interval.floor(x0);\n domain[i1] = interval.ceil(x1);\n return domain;\n}\n","import {ticks} from \"d3-array\";\nimport {format, formatSpecifier} from \"d3-format\";\nimport nice from \"./nice.js\";\nimport {copy, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformLog(x) {\n return Math.log(x);\n}\n\nfunction transformExp(x) {\n return Math.exp(x);\n}\n\nfunction transformLogn(x) {\n return -Math.log(-x);\n}\n\nfunction transformExpn(x) {\n return -Math.exp(-x);\n}\n\nfunction pow10(x) {\n return isFinite(x) ? +(\"1e\" + x) : x < 0 ? 0 : x;\n}\n\nfunction powp(base) {\n return base === 10 ? pow10\n : base === Math.E ? Math.exp\n : x => Math.pow(base, x);\n}\n\nfunction logp(base) {\n return base === Math.E ? Math.log\n : base === 10 && Math.log10\n || base === 2 && Math.log2\n || (base = Math.log(base), x => Math.log(x) / base);\n}\n\nfunction reflect(f) {\n return (x, k) => -f(-x, k);\n}\n\nexport function loggish(transform) {\n const scale = transform(transformLog, transformExp);\n const domain = scale.domain;\n let base = 10;\n let logs;\n let pows;\n\n function rescale() {\n logs = logp(base), pows = powp(base);\n if (domain()[0] < 0) {\n logs = reflect(logs), pows = reflect(pows);\n transform(transformLogn, transformExpn);\n } else {\n transform(transformLog, transformExp);\n }\n return scale;\n }\n\n scale.base = function(_) {\n return arguments.length ? (base = +_, rescale()) : base;\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.ticks = count => {\n const d = domain();\n let u = d[0];\n let v = d[d.length - 1];\n const r = v < u;\n\n if (r) ([u, v] = [v, u]);\n\n let i = logs(u);\n let j = logs(v);\n let k;\n let t;\n const n = count == null ? 10 : +count;\n let z = [];\n\n if (!(base % 1) && j - i < n) {\n i = Math.floor(i), j = Math.ceil(j);\n if (u > 0) for (; i <= j; ++i) {\n for (k = 1; k < base; ++k) {\n t = i < 0 ? k / pows(-i) : k * pows(i);\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n } else for (; i <= j; ++i) {\n for (k = base - 1; k >= 1; --k) {\n t = i > 0 ? k / pows(-i) : k * pows(i);\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n }\n if (z.length * 2 < n) z = ticks(u, v, n);\n } else {\n z = ticks(i, j, Math.min(j - i, n)).map(pows);\n }\n return r ? z.reverse() : z;\n };\n\n scale.tickFormat = (count, specifier) => {\n if (count == null) count = 10;\n if (specifier == null) specifier = base === 10 ? \"s\" : \",\";\n if (typeof specifier !== \"function\") {\n if (!(base % 1) && (specifier = formatSpecifier(specifier)).precision == null) specifier.trim = true;\n specifier = format(specifier);\n }\n if (count === Infinity) return specifier;\n const k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate?\n return d => {\n let i = d / pows(Math.round(logs(d)));\n if (i * base < base - 0.5) i *= base;\n return i <= k ? specifier(d) : \"\";\n };\n };\n\n scale.nice = () => {\n return domain(nice(domain(), {\n floor: x => pows(Math.floor(logs(x))),\n ceil: x => pows(Math.ceil(logs(x)))\n }));\n };\n\n return scale;\n}\n\nexport default function log() {\n const scale = loggish(transformer()).domain([1, 10]);\n scale.copy = () => copy(scale, log()).base(scale.base());\n initRange.apply(scale, arguments);\n return scale;\n}\n","import {linearish} from \"./linear.js\";\nimport {copy, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformSymlog(c) {\n return function(x) {\n return Math.sign(x) * Math.log1p(Math.abs(x / c));\n };\n}\n\nfunction transformSymexp(c) {\n return function(x) {\n return Math.sign(x) * Math.expm1(Math.abs(x)) * c;\n };\n}\n\nexport function symlogish(transform) {\n var c = 1, scale = transform(transformSymlog(c), transformSymexp(c));\n\n scale.constant = function(_) {\n return arguments.length ? transform(transformSymlog(c = +_), transformSymexp(c)) : c;\n };\n\n return linearish(scale);\n}\n\nexport default function symlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, symlog()).constant(scale.constant());\n };\n\n return initRange.apply(scale, arguments);\n}\n","import {linearish} from \"./linear.js\";\nimport {copy, identity, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformPow(exponent) {\n return function(x) {\n return x < 0 ? -Math.pow(-x, exponent) : Math.pow(x, exponent);\n };\n}\n\nfunction transformSqrt(x) {\n return x < 0 ? -Math.sqrt(-x) : Math.sqrt(x);\n}\n\nfunction transformSquare(x) {\n return x < 0 ? -x * x : x * x;\n}\n\nexport function powish(transform) {\n var scale = transform(identity, identity),\n exponent = 1;\n\n function rescale() {\n return exponent === 1 ? transform(identity, identity)\n : exponent === 0.5 ? transform(transformSqrt, transformSquare)\n : transform(transformPow(exponent), transformPow(1 / exponent));\n }\n\n scale.exponent = function(_) {\n return arguments.length ? (exponent = +_, rescale()) : exponent;\n };\n\n return linearish(scale);\n}\n\nexport default function pow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, pow()).exponent(scale.exponent());\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n\nexport function sqrt() {\n return pow.apply(null, arguments).exponent(0.5);\n}\n","import continuous from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport {linearish} from \"./linear.js\";\nimport number from \"./number.js\";\n\nfunction square(x) {\n return Math.sign(x) * x * x;\n}\n\nfunction unsquare(x) {\n return Math.sign(x) * Math.sqrt(Math.abs(x));\n}\n\nexport default function radial() {\n var squared = continuous(),\n range = [0, 1],\n round = false,\n unknown;\n\n function scale(x) {\n var y = unsquare(squared(x));\n return isNaN(y) ? unknown : round ? Math.round(y) : y;\n }\n\n scale.invert = function(y) {\n return squared.invert(square(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (squared.domain(_), scale) : squared.domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? (squared.range((range = Array.from(_, number)).map(square)), scale) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return scale.range(_).round(true);\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, scale) : round;\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (squared.clamp(_), scale) : squared.clamp();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return radial(squared.domain(), range)\n .round(round)\n .clamp(squared.clamp())\n .unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n","export default function max(values, valueof) {\n let max;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n }\n return max;\n}\n","export default function min(values, valueof) {\n let min;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n }\n return min;\n}\n","import ascending from \"./ascending.js\";\nimport permute from \"./permute.js\";\n\nexport default function sort(values, ...F) {\n if (typeof values[Symbol.iterator] !== \"function\") throw new TypeError(\"values is not iterable\");\n values = Array.from(values);\n let [f] = F;\n if ((f && f.length !== 2) || F.length > 1) {\n const index = Uint32Array.from(values, (d, i) => i);\n if (F.length > 1) {\n F = F.map(f => values.map(f));\n index.sort((i, j) => {\n for (const f of F) {\n const c = ascendingDefined(f[i], f[j]);\n if (c) return c;\n }\n });\n } else {\n f = values.map(f);\n index.sort((i, j) => ascendingDefined(f[i], f[j]));\n }\n return permute(values, index);\n }\n return values.sort(compareDefined(f));\n}\n\nexport function compareDefined(compare = ascending) {\n if (compare === ascending) return ascendingDefined;\n if (typeof compare !== \"function\") throw new TypeError(\"compare is not a function\");\n return (a, b) => {\n const x = compare(a, b);\n if (x || x === 0) return x;\n return (compare(b, b) === 0) - (compare(a, a) === 0);\n };\n}\n\nexport function ascendingDefined(a, b) {\n return (a == null || !(a >= a)) - (b == null || !(b >= b)) || (a < b ? -1 : a > b ? 1 : 0);\n}\n","import {ascendingDefined, compareDefined} from \"./sort.js\";\n\n// Based on https://github.com/mourner/quickselect\n// ISC license, Copyright 2018 Vladimir Agafonkin.\nexport default function quickselect(array, k, left = 0, right = Infinity, compare) {\n k = Math.floor(k);\n left = Math.floor(Math.max(0, left));\n right = Math.floor(Math.min(array.length - 1, right));\n\n if (!(left <= k && k <= right)) return array;\n\n compare = compare === undefined ? ascendingDefined : compareDefined(compare);\n\n while (right > left) {\n if (right - left > 600) {\n const n = right - left + 1;\n const m = k - left + 1;\n const z = Math.log(n);\n const s = 0.5 * Math.exp(2 * z / 3);\n const sd = 0.5 * Math.sqrt(z * s * (n - s) / n) * (m - n / 2 < 0 ? -1 : 1);\n const newLeft = Math.max(left, Math.floor(k - m * s / n + sd));\n const newRight = Math.min(right, Math.floor(k + (n - m) * s / n + sd));\n quickselect(array, k, newLeft, newRight, compare);\n }\n\n const t = array[k];\n let i = left;\n let j = right;\n\n swap(array, left, k);\n if (compare(array[right], t) > 0) swap(array, left, right);\n\n while (i < j) {\n swap(array, i, j), ++i, --j;\n while (compare(array[i], t) < 0) ++i;\n while (compare(array[j], t) > 0) --j;\n }\n\n if (compare(array[left], t) === 0) swap(array, left, j);\n else ++j, swap(array, j, right);\n\n if (j <= k) left = j + 1;\n if (k <= j) right = j - 1;\n }\n\n return array;\n}\n\nfunction swap(array, i, j) {\n const t = array[i];\n array[i] = array[j];\n array[j] = t;\n}\n","import max from \"./max.js\";\nimport maxIndex from \"./maxIndex.js\";\nimport min from \"./min.js\";\nimport minIndex from \"./minIndex.js\";\nimport quickselect from \"./quickselect.js\";\nimport number, {numbers} from \"./number.js\";\nimport {ascendingDefined} from \"./sort.js\";\nimport greatest from \"./greatest.js\";\n\nexport default function quantile(values, p, valueof) {\n values = Float64Array.from(numbers(values, valueof));\n if (!(n = values.length) || isNaN(p = +p)) return;\n if (p <= 0 || n < 2) return min(values);\n if (p >= 1) return max(values);\n var n,\n i = (n - 1) * p,\n i0 = Math.floor(i),\n value0 = max(quickselect(values, i0).subarray(0, i0 + 1)),\n value1 = min(values.subarray(i0 + 1));\n return value0 + (value1 - value0) * (i - i0);\n}\n\nexport function quantileSorted(values, p, valueof = number) {\n if (!(n = values.length) || isNaN(p = +p)) return;\n if (p <= 0 || n < 2) return +valueof(values[0], 0, values);\n if (p >= 1) return +valueof(values[n - 1], n - 1, values);\n var n,\n i = (n - 1) * p,\n i0 = Math.floor(i),\n value0 = +valueof(values[i0], i0, values),\n value1 = +valueof(values[i0 + 1], i0 + 1, values);\n return value0 + (value1 - value0) * (i - i0);\n}\n\nexport function quantileIndex(values, p, valueof = number) {\n if (isNaN(p = +p)) return;\n numbers = Float64Array.from(values, (_, i) => number(valueof(values[i], i, values)));\n if (p <= 0) return minIndex(numbers);\n if (p >= 1) return maxIndex(numbers);\n var numbers,\n index = Uint32Array.from(values, (_, i) => i),\n j = numbers.length - 1,\n i = Math.floor(j * p);\n quickselect(index, i, 0, j, (i, j) => ascendingDefined(numbers[i], numbers[j]));\n i = greatest(index.subarray(0, i + 1), (i) => numbers[i]);\n return i >= 0 ? i : -1;\n}\n","import {ascending, bisect, quantileSorted as threshold} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport default function quantile() {\n var domain = [],\n range = [],\n thresholds = [],\n unknown;\n\n function rescale() {\n var i = 0, n = Math.max(1, range.length);\n thresholds = new Array(n - 1);\n while (++i < n) thresholds[i - 1] = threshold(domain, i / n);\n return scale;\n }\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : range[bisect(thresholds, x)];\n }\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN] : [\n i > 0 ? thresholds[i - 1] : domain[0],\n i < thresholds.length ? thresholds[i] : domain[domain.length - 1]\n ];\n };\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [];\n for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d);\n domain.sort(ascending);\n return rescale();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.quantiles = function() {\n return thresholds.slice();\n };\n\n scale.copy = function() {\n return quantile()\n .domain(domain)\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(scale, arguments);\n}\n","import {bisect} from \"d3-array\";\nimport {linearish} from \"./linear.js\";\nimport {initRange} from \"./init.js\";\n\nexport default function quantize() {\n var x0 = 0,\n x1 = 1,\n n = 1,\n domain = [0.5],\n range = [0, 1],\n unknown;\n\n function scale(x) {\n return x != null && x <= x ? range[bisect(domain, x, 0, n)] : unknown;\n }\n\n function rescale() {\n var i = -1;\n domain = new Array(n);\n while (++i < n) domain[i] = ((i + 1) * x1 - (i - n) * x0) / (n + 1);\n return scale;\n }\n\n scale.domain = function(_) {\n return arguments.length ? ([x0, x1] = _, x0 = +x0, x1 = +x1, rescale()) : [x0, x1];\n };\n\n scale.range = function(_) {\n return arguments.length ? (n = (range = Array.from(_)).length - 1, rescale()) : range.slice();\n };\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN]\n : i < 1 ? [x0, domain[0]]\n : i >= n ? [domain[n - 1], x1]\n : [domain[i - 1], domain[i]];\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : scale;\n };\n\n scale.thresholds = function() {\n return domain.slice();\n };\n\n scale.copy = function() {\n return quantize()\n .domain([x0, x1])\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(linearish(scale), arguments);\n}\n","import {bisect} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport default function threshold() {\n var domain = [0.5],\n range = [0, 1],\n unknown,\n n = 1;\n\n function scale(x) {\n return x != null && x <= x ? range[bisect(domain, x, 0, n)] : unknown;\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : range.slice();\n };\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return [domain[i - 1], domain[i]];\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return threshold()\n .domain(domain)\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(scale, arguments);\n}\n","export const durationSecond = 1000;\nexport const durationMinute = durationSecond * 60;\nexport const durationHour = durationMinute * 60;\nexport const durationDay = durationHour * 24;\nexport const durationWeek = durationDay * 7;\nexport const durationMonth = durationDay * 30;\nexport const durationYear = durationDay * 365;\n","const t0 = new Date, t1 = new Date;\n\nexport function timeInterval(floori, offseti, count, field) {\n\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;\n }\n\n interval.floor = (date) => {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = (date) => {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = (date) => {\n const d0 = interval(date), d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = (date, step) => {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = (start, stop, step) => {\n const range = [];\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n let previous;\n do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n while (previous < start && start < stop);\n return range;\n };\n\n interval.filter = (test) => {\n return timeInterval((date) => {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, (date, step) => {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n }\n }\n });\n };\n\n if (count) {\n interval.count = (start, end) => {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = (step) => {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? (d) => field(d) % step === 0\n : (d) => interval.count(0, d) % step === 0);\n };\n }\n\n return interval;\n}\n","import {timeInterval} from \"./interval.js\";\n\nexport const millisecond = timeInterval(() => {\n // noop\n}, (date, step) => {\n date.setTime(+date + step);\n}, (start, end) => {\n return end - start;\n});\n\n// An optimized implementation for this simple case.\nmillisecond.every = (k) => {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return timeInterval((date) => {\n date.setTime(Math.floor(date / k) * k);\n }, (date, step) => {\n date.setTime(+date + step * k);\n }, (start, end) => {\n return (end - start) / k;\n });\n};\n\nexport const milliseconds = millisecond.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationSecond} from \"./duration.js\";\n\nexport const second = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds());\n}, (date, step) => {\n date.setTime(+date + step * durationSecond);\n}, (start, end) => {\n return (end - start) / durationSecond;\n}, (date) => {\n return date.getUTCSeconds();\n});\n\nexport const seconds = second.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationMinute, durationSecond} from \"./duration.js\";\n\nexport const timeMinute = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}, (date, step) => {\n date.setTime(+date + step * durationMinute);\n}, (start, end) => {\n return (end - start) / durationMinute;\n}, (date) => {\n return date.getMinutes();\n});\n\nexport const timeMinutes = timeMinute.range;\n\nexport const utcMinute = timeInterval((date) => {\n date.setUTCSeconds(0, 0);\n}, (date, step) => {\n date.setTime(+date + step * durationMinute);\n}, (start, end) => {\n return (end - start) / durationMinute;\n}, (date) => {\n return date.getUTCMinutes();\n});\n\nexport const utcMinutes = utcMinute.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationHour, durationMinute, durationSecond} from \"./duration.js\";\n\nexport const timeHour = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}, (date, step) => {\n date.setTime(+date + step * durationHour);\n}, (start, end) => {\n return (end - start) / durationHour;\n}, (date) => {\n return date.getHours();\n});\n\nexport const timeHours = timeHour.range;\n\nexport const utcHour = timeInterval((date) => {\n date.setUTCMinutes(0, 0, 0);\n}, (date, step) => {\n date.setTime(+date + step * durationHour);\n}, (start, end) => {\n return (end - start) / durationHour;\n}, (date) => {\n return date.getUTCHours();\n});\n\nexport const utcHours = utcHour.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationDay, durationMinute} from \"./duration.js\";\n\nexport const timeDay = timeInterval(\n date => date.setHours(0, 0, 0, 0),\n (date, step) => date.setDate(date.getDate() + step),\n (start, end) => (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay,\n date => date.getDate() - 1\n);\n\nexport const timeDays = timeDay.range;\n\nexport const utcDay = timeInterval((date) => {\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step);\n}, (start, end) => {\n return (end - start) / durationDay;\n}, (date) => {\n return date.getUTCDate() - 1;\n});\n\nexport const utcDays = utcDay.range;\n\nexport const unixDay = timeInterval((date) => {\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step);\n}, (start, end) => {\n return (end - start) / durationDay;\n}, (date) => {\n return Math.floor(date / durationDay);\n});\n\nexport const unixDays = unixDay.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationMinute, durationWeek} from \"./duration.js\";\n\nfunction timeWeekday(i) {\n return timeInterval((date) => {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setDate(date.getDate() + step * 7);\n }, (start, end) => {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport const timeSunday = timeWeekday(0);\nexport const timeMonday = timeWeekday(1);\nexport const timeTuesday = timeWeekday(2);\nexport const timeWednesday = timeWeekday(3);\nexport const timeThursday = timeWeekday(4);\nexport const timeFriday = timeWeekday(5);\nexport const timeSaturday = timeWeekday(6);\n\nexport const timeSundays = timeSunday.range;\nexport const timeMondays = timeMonday.range;\nexport const timeTuesdays = timeTuesday.range;\nexport const timeWednesdays = timeWednesday.range;\nexport const timeThursdays = timeThursday.range;\nexport const timeFridays = timeFriday.range;\nexport const timeSaturdays = timeSaturday.range;\n\nfunction utcWeekday(i) {\n return timeInterval((date) => {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, (start, end) => {\n return (end - start) / durationWeek;\n });\n}\n\nexport const utcSunday = utcWeekday(0);\nexport const utcMonday = utcWeekday(1);\nexport const utcTuesday = utcWeekday(2);\nexport const utcWednesday = utcWeekday(3);\nexport const utcThursday = utcWeekday(4);\nexport const utcFriday = utcWeekday(5);\nexport const utcSaturday = utcWeekday(6);\n\nexport const utcSundays = utcSunday.range;\nexport const utcMondays = utcMonday.range;\nexport const utcTuesdays = utcTuesday.range;\nexport const utcWednesdays = utcWednesday.range;\nexport const utcThursdays = utcThursday.range;\nexport const utcFridays = utcFriday.range;\nexport const utcSaturdays = utcSaturday.range;\n","import {timeInterval} from \"./interval.js\";\n\nexport const timeMonth = timeInterval((date) => {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setMonth(date.getMonth() + step);\n}, (start, end) => {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, (date) => {\n return date.getMonth();\n});\n\nexport const timeMonths = timeMonth.range;\n\nexport const utcMonth = timeInterval((date) => {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, (start, end) => {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, (date) => {\n return date.getUTCMonth();\n});\n\nexport const utcMonths = utcMonth.range;\n","import {timeInterval} from \"./interval.js\";\n\nexport const timeYear = timeInterval((date) => {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setFullYear(date.getFullYear() + step);\n}, (start, end) => {\n return end.getFullYear() - start.getFullYear();\n}, (date) => {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\ntimeYear.every = (k) => {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport const timeYears = timeYear.range;\n\nexport const utcYear = timeInterval((date) => {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, (start, end) => {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, (date) => {\n return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = (k) => {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport const utcYears = utcYear.range;\n","import {bisector, tickStep} from \"d3-array\";\nimport {durationDay, durationHour, durationMinute, durationMonth, durationSecond, durationWeek, durationYear} from \"./duration.js\";\nimport {millisecond} from \"./millisecond.js\";\nimport {second} from \"./second.js\";\nimport {timeMinute, utcMinute} from \"./minute.js\";\nimport {timeHour, utcHour} from \"./hour.js\";\nimport {timeDay, unixDay} from \"./day.js\";\nimport {timeSunday, utcSunday} from \"./week.js\";\nimport {timeMonth, utcMonth} from \"./month.js\";\nimport {timeYear, utcYear} from \"./year.js\";\n\nfunction ticker(year, month, week, day, hour, minute) {\n\n const tickIntervals = [\n [second, 1, durationSecond],\n [second, 5, 5 * durationSecond],\n [second, 15, 15 * durationSecond],\n [second, 30, 30 * durationSecond],\n [minute, 1, durationMinute],\n [minute, 5, 5 * durationMinute],\n [minute, 15, 15 * durationMinute],\n [minute, 30, 30 * durationMinute],\n [ hour, 1, durationHour ],\n [ hour, 3, 3 * durationHour ],\n [ hour, 6, 6 * durationHour ],\n [ hour, 12, 12 * durationHour ],\n [ day, 1, durationDay ],\n [ day, 2, 2 * durationDay ],\n [ week, 1, durationWeek ],\n [ month, 1, durationMonth ],\n [ month, 3, 3 * durationMonth ],\n [ year, 1, durationYear ]\n ];\n\n function ticks(start, stop, count) {\n const reverse = stop < start;\n if (reverse) [start, stop] = [stop, start];\n const interval = count && typeof count.range === \"function\" ? count : tickInterval(start, stop, count);\n const ticks = interval ? interval.range(start, +stop + 1) : []; // inclusive stop\n return reverse ? ticks.reverse() : ticks;\n }\n\n function tickInterval(start, stop, count) {\n const target = Math.abs(stop - start) / count;\n const i = bisector(([,, step]) => step).right(tickIntervals, target);\n if (i === tickIntervals.length) return year.every(tickStep(start / durationYear, stop / durationYear, count));\n if (i === 0) return millisecond.every(Math.max(tickStep(start, stop, count), 1));\n const [t, step] = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];\n return t.every(step);\n }\n\n return [ticks, tickInterval];\n}\n\nconst [utcTicks, utcTickInterval] = ticker(utcYear, utcMonth, utcSunday, unixDay, utcHour, utcMinute);\nconst [timeTicks, timeTickInterval] = ticker(timeYear, timeMonth, timeSunday, timeDay, timeHour, timeMinute);\n\nexport {utcTicks, utcTickInterval, timeTicks, timeTickInterval};\n","import {\n timeDay,\n timeSunday,\n timeMonday,\n timeThursday,\n timeYear,\n utcDay,\n utcSunday,\n utcMonday,\n utcThursday,\n utcYear\n} from \"d3-time\";\n\nfunction localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newDate(y, m, d) {\n return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0};\n}\n\nexport default function formatLocale(locale) {\n var locale_dateTime = locale.dateTime,\n locale_date = locale.date,\n locale_time = locale.time,\n locale_periods = locale.periods,\n locale_weekdays = locale.days,\n locale_shortWeekdays = locale.shortDays,\n locale_months = locale.months,\n locale_shortMonths = locale.shortMonths;\n\n var periodRe = formatRe(locale_periods),\n periodLookup = formatLookup(locale_periods),\n weekdayRe = formatRe(locale_weekdays),\n weekdayLookup = formatLookup(locale_weekdays),\n shortWeekdayRe = formatRe(locale_shortWeekdays),\n shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n monthRe = formatRe(locale_months),\n monthLookup = formatLookup(locale_months),\n shortMonthRe = formatRe(locale_shortMonths),\n shortMonthLookup = formatLookup(locale_shortMonths);\n\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"g\": formatYearISO,\n \"G\": formatFullYearISO,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"q\": formatQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"g\": formatUTCYearISO,\n \"G\": formatUTCFullYearISO,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"q\": formatUTCQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"g\": parseYear,\n \"G\": parseFullYear,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"q\": parseQuarter,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n };\n\n // These recursive directive definitions must be deferred.\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n function newFormat(specifier, formats) {\n return function(date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n\n if (!(date instanceof Date)) date = new Date(+date);\n\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n\n function newParse(specifier, Z) {\n return function(string) {\n var d = newDate(1900, undefined, 1),\n i = parseSpecifier(d, specifier, string += \"\", 0),\n week, day;\n if (i != string.length) return null;\n\n // If a UNIX timestamp is specified, return it.\n if (\"Q\" in d) return new Date(d.Q);\n if (\"s\" in d) return new Date(d.s * 1000 + (\"L\" in d ? d.L : 0));\n\n // If this is utcParse, never use the local timezone.\n if (Z && !(\"Z\" in d)) d.Z = 0;\n\n // The am-pm flag is 0 for AM, and 1 for PM.\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\n // If the month was not specified, inherit from the quarter.\n if (d.m === undefined) d.m = \"q\" in d ? d.q : 0;\n\n // Convert day-of-week and week-of-year to day-of-year.\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n if (\"Z\" in d) {\n week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);\n week = utcDay.offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n } else {\n week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);\n week = timeDay.offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n } else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n }\n\n // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n }\n\n // Otherwise, all fields are in local time.\n return localDate(d);\n };\n }\n\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || ((j = parse(d, string, j)) < 0)) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatQuarter(d) {\n return 1 + ~~(d.getMonth() / 3);\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n function formatUTCQuarter(d) {\n return 1 + ~~(d.getUTCMonth() / 3);\n }\n\n return {\n format: function(specifier) {\n var f = newFormat(specifier += \"\", formats);\n f.toString = function() { return specifier; };\n return f;\n },\n parse: function(specifier) {\n var p = newParse(specifier += \"\", false);\n p.toString = function() { return specifier; };\n return p;\n },\n utcFormat: function(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n f.toString = function() { return specifier; };\n return f;\n },\n utcParse: function(specifier) {\n var p = newParse(specifier += \"\", true);\n p.toString = function() { return specifier; };\n return p;\n }\n };\n}\n\nvar pads = {\"-\": \"\", \"_\": \" \", \"0\": \"0\"},\n numberRe = /^\\s*\\d+/, // note: ignores next directive\n percentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n return new Map(names.map((name, i) => [name.toLowerCase(), i]));\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseQuarter(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction dISO(d) {\n var day = d.getDay();\n return (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n}\n\nfunction formatWeekNumberISO(d, p) {\n d = dISO(d);\n return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n return pad(timeMonday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatYearISO(d, p) {\n d = dISO(d);\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatFullYearISO(d, p) {\n var day = d.getDay();\n d = (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\"))\n + pad(z / 60 | 0, \"0\", 2)\n + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction UTCdISO(d) {\n var day = d.getUTCDay();\n return (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n d = UTCdISO(d);\n return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n return pad(utcMonday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCYearISO(d, p) {\n d = UTCdISO(d);\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCFullYearISO(d, p) {\n var day = d.getUTCDay();\n d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n return Math.floor(+d / 1000);\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\n\ndefaultLocale({\n dateTime: \"%x, %X\",\n date: \"%-m/%-d/%Y\",\n time: \"%-I:%M:%S %p\",\n periods: [\"AM\", \"PM\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n timeFormat = locale.format;\n timeParse = locale.parse;\n utcFormat = locale.utcFormat;\n utcParse = locale.utcParse;\n return locale;\n}\n","import {timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeTicks, timeTickInterval} from \"d3-time\";\nimport {timeFormat} from \"d3-time-format\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport nice from \"./nice.js\";\n\nfunction date(t) {\n return new Date(t);\n}\n\nfunction number(t) {\n return t instanceof Date ? +t : +new Date(+t);\n}\n\nexport function calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format) {\n var scale = continuous(),\n invert = scale.invert,\n domain = scale.domain;\n\n var formatMillisecond = format(\".%L\"),\n formatSecond = format(\":%S\"),\n formatMinute = format(\"%I:%M\"),\n formatHour = format(\"%I %p\"),\n formatDay = format(\"%a %d\"),\n formatWeek = format(\"%b %d\"),\n formatMonth = format(\"%B\"),\n formatYear = format(\"%Y\");\n\n function tickFormat(date) {\n return (second(date) < date ? formatMillisecond\n : minute(date) < date ? formatSecond\n : hour(date) < date ? formatMinute\n : day(date) < date ? formatHour\n : month(date) < date ? (week(date) < date ? formatDay : formatWeek)\n : year(date) < date ? formatMonth\n : formatYear)(date);\n }\n\n scale.invert = function(y) {\n return new Date(invert(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? domain(Array.from(_, number)) : domain().map(date);\n };\n\n scale.ticks = function(interval) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], interval == null ? 10 : interval);\n };\n\n scale.tickFormat = function(count, specifier) {\n return specifier == null ? tickFormat : format(specifier);\n };\n\n scale.nice = function(interval) {\n var d = domain();\n if (!interval || typeof interval.range !== \"function\") interval = tickInterval(d[0], d[d.length - 1], interval == null ? 10 : interval);\n return interval ? domain(nice(d, interval)) : scale;\n };\n\n scale.copy = function() {\n return copy(scale, calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format));\n };\n\n return scale;\n}\n\nexport default function time() {\n return initRange.apply(calendar(timeTicks, timeTickInterval, timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]), arguments);\n}\n","import {utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcTicks, utcTickInterval} from \"d3-time\";\nimport {utcFormat} from \"d3-time-format\";\nimport {calendar} from \"./time.js\";\nimport {initRange} from \"./init.js\";\n\nexport default function utcTime() {\n return initRange.apply(calendar(utcTicks, utcTickInterval, utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcFormat).domain([Date.UTC(2000, 0, 1), Date.UTC(2000, 0, 2)]), arguments);\n}\n","import {interpolate, interpolateRound} from \"d3-interpolate\";\nimport {identity} from \"./continuous.js\";\nimport {initInterpolator} from \"./init.js\";\nimport {linearish} from \"./linear.js\";\nimport {loggish} from \"./log.js\";\nimport {symlogish} from \"./symlog.js\";\nimport {powish} from \"./pow.js\";\n\nfunction transformer() {\n var x0 = 0,\n x1 = 1,\n t0,\n t1,\n k10,\n transform,\n interpolator = identity,\n clamp = false,\n unknown;\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : interpolator(k10 === 0 ? 0.5 : (x = (transform(x) - t0) * k10, clamp ? Math.max(0, Math.min(1, x)) : x));\n }\n\n scale.domain = function(_) {\n return arguments.length ? ([x0, x1] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0), scale) : [x0, x1];\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, scale) : clamp;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n function range(interpolate) {\n return function(_) {\n var r0, r1;\n return arguments.length ? ([r0, r1] = _, interpolator = interpolate(r0, r1), scale) : [interpolator(0), interpolator(1)];\n };\n }\n\n scale.range = range(interpolate);\n\n scale.rangeRound = range(interpolateRound);\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t) {\n transform = t, t0 = t(x0), t1 = t(x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0);\n return scale;\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .interpolator(source.interpolator())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport default function sequential() {\n var scale = linearish(transformer()(identity));\n\n scale.copy = function() {\n return copy(scale, sequential());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialLog() {\n var scale = loggish(transformer()).domain([1, 10]);\n\n scale.copy = function() {\n return copy(scale, sequentialLog()).base(scale.base());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialSymlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, sequentialSymlog()).constant(scale.constant());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialPow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, sequentialPow()).exponent(scale.exponent());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialSqrt() {\n return sequentialPow.apply(null, arguments).exponent(0.5);\n}\n","import {ascending, bisect, quantile} from \"d3-array\";\nimport {identity} from \"./continuous.js\";\nimport {initInterpolator} from \"./init.js\";\n\nexport default function sequentialQuantile() {\n var domain = [],\n interpolator = identity;\n\n function scale(x) {\n if (x != null && !isNaN(x = +x)) return interpolator((bisect(domain, x, 1) - 1) / (domain.length - 1));\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [];\n for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d);\n domain.sort(ascending);\n return scale;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n scale.range = function() {\n return domain.map((d, i) => interpolator(i / (domain.length - 1)));\n };\n\n scale.quantiles = function(n) {\n return Array.from({length: n + 1}, (_, i) => quantile(domain, i / n));\n };\n\n scale.copy = function() {\n return sequentialQuantile(interpolator).domain(domain);\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n","import {interpolate, interpolateRound, piecewise} from \"d3-interpolate\";\nimport {identity} from \"./continuous.js\";\nimport {initInterpolator} from \"./init.js\";\nimport {linearish} from \"./linear.js\";\nimport {loggish} from \"./log.js\";\nimport {copy} from \"./sequential.js\";\nimport {symlogish} from \"./symlog.js\";\nimport {powish} from \"./pow.js\";\n\nfunction transformer() {\n var x0 = 0,\n x1 = 0.5,\n x2 = 1,\n s = 1,\n t0,\n t1,\n t2,\n k10,\n k21,\n interpolator = identity,\n transform,\n clamp = false,\n unknown;\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : (x = 0.5 + ((x = +transform(x)) - t1) * (s * x < s * t1 ? k10 : k21), interpolator(clamp ? Math.max(0, Math.min(1, x)) : x));\n }\n\n scale.domain = function(_) {\n return arguments.length ? ([x0, x1, x2] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), t2 = transform(x2 = +x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1, scale) : [x0, x1, x2];\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, scale) : clamp;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n function range(interpolate) {\n return function(_) {\n var r0, r1, r2;\n return arguments.length ? ([r0, r1, r2] = _, interpolator = piecewise(interpolate, [r0, r1, r2]), scale) : [interpolator(0), interpolator(0.5), interpolator(1)];\n };\n }\n\n scale.range = range(interpolate);\n\n scale.rangeRound = range(interpolateRound);\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t) {\n transform = t, t0 = t(x0), t1 = t(x1), t2 = t(x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1;\n return scale;\n };\n}\n\nexport default function diverging() {\n var scale = linearish(transformer()(identity));\n\n scale.copy = function() {\n return copy(scale, diverging());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingLog() {\n var scale = loggish(transformer()).domain([0.1, 1, 10]);\n\n scale.copy = function() {\n return copy(scale, divergingLog()).base(scale.base());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingSymlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, divergingSymlog()).constant(scale.constant());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingPow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, divergingPow()).exponent(scale.exponent());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingSqrt() {\n return divergingPow.apply(null, arguments).exponent(0.5);\n}\n","import {default as value} from \"./value.js\";\n\nexport default function piecewise(interpolate, values) {\n if (values === undefined) values = interpolate, interpolate = value;\n var i = 0, n = values.length - 1, v = values[0], I = new Array(n < 0 ? 0 : n);\n while (i < n) I[i] = interpolate(v, v = values[++i]);\n return function(t) {\n var i = Math.max(0, Math.min(n - 1, Math.floor(t *= n)));\n return I[i](t - i);\n };\n}\n","export default function(series, order) {\n if (!((n = series.length) > 1)) return;\n for (var i = 1, j, s0, s1 = series[order[0]], n, m = s1.length; i < n; ++i) {\n s0 = s1, s1 = series[order[i]];\n for (j = 0; j < m; ++j) {\n s1[j][1] += s1[j][0] = isNaN(s0[j][1]) ? s0[j][0] : s0[j][1];\n }\n }\n}\n","export var slice = Array.prototype.slice;\n\nexport default function(x) {\n return typeof x === \"object\" && \"length\" in x\n ? x // Array, TypedArray, NodeList, array-like\n : Array.from(x); // Map, Set, iterable, string, or anything else\n}\n","export default function(series) {\n var n = series.length, o = new Array(n);\n while (--n >= 0) o[n] = n;\n return o;\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport offsetNone from \"./offset/none.js\";\nimport orderNone from \"./order/none.js\";\n\nfunction stackValue(d, key) {\n return d[key];\n}\n\nfunction stackSeries(key) {\n const series = [];\n series.key = key;\n return series;\n}\n\nexport default function() {\n var keys = constant([]),\n order = orderNone,\n offset = offsetNone,\n value = stackValue;\n\n function stack(data) {\n var sz = Array.from(keys.apply(this, arguments), stackSeries),\n i, n = sz.length, j = -1,\n oz;\n\n for (const d of data) {\n for (i = 0, ++j; i < n; ++i) {\n (sz[i][j] = [0, +value(d, sz[i].key, j, data)]).data = d;\n }\n }\n\n for (i = 0, oz = array(order(sz)); i < n; ++i) {\n sz[oz[i]].index = i;\n }\n\n offset(sz, oz);\n return sz;\n }\n\n stack.keys = function(_) {\n return arguments.length ? (keys = typeof _ === \"function\" ? _ : constant(Array.from(_)), stack) : keys;\n };\n\n stack.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), stack) : value;\n };\n\n stack.order = function(_) {\n return arguments.length ? (order = _ == null ? orderNone : typeof _ === \"function\" ? _ : constant(Array.from(_)), stack) : order;\n };\n\n stack.offset = function(_) {\n return arguments.length ? (offset = _ == null ? offsetNone : _, stack) : offset;\n };\n\n return stack;\n}\n","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nvar identity = function identity(i) {\n return i;\n};\n\nexport var PLACE_HOLDER = {\n '@@functional/placeholder': true\n};\n\nvar isPlaceHolder = function isPlaceHolder(val) {\n return val === PLACE_HOLDER;\n};\n\nvar curry0 = function curry0(fn) {\n return function _curried() {\n if (arguments.length === 0 || arguments.length === 1 && isPlaceHolder(arguments.length <= 0 ? undefined : arguments[0])) {\n return _curried;\n }\n\n return fn.apply(void 0, arguments);\n };\n};\n\nvar curryN = function curryN(n, fn) {\n if (n === 1) {\n return fn;\n }\n\n return curry0(function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var argsLength = args.filter(function (arg) {\n return arg !== PLACE_HOLDER;\n }).length;\n\n if (argsLength >= n) {\n return fn.apply(void 0, args);\n }\n\n return curryN(n - argsLength, curry0(function () {\n for (var _len2 = arguments.length, restArgs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n restArgs[_key2] = arguments[_key2];\n }\n\n var newArgs = args.map(function (arg) {\n return isPlaceHolder(arg) ? restArgs.shift() : arg;\n });\n return fn.apply(void 0, _toConsumableArray(newArgs).concat(restArgs));\n }));\n });\n};\n\nexport var curry = function curry(fn) {\n return curryN(fn.length, fn);\n};\nexport var range = function range(begin, end) {\n var arr = [];\n\n for (var i = begin; i < end; ++i) {\n arr[i - begin] = i;\n }\n\n return arr;\n};\nexport var map = curry(function (fn, arr) {\n if (Array.isArray(arr)) {\n return arr.map(fn);\n }\n\n return Object.keys(arr).map(function (key) {\n return arr[key];\n }).map(fn);\n});\nexport var compose = function compose() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n if (!args.length) {\n return identity;\n }\n\n var fns = args.reverse(); // first function can receive multiply arguments\n\n var firstFn = fns[0];\n var tailsFn = fns.slice(1);\n return function () {\n return tailsFn.reduce(function (res, fn) {\n return fn(res);\n }, firstFn.apply(void 0, arguments));\n };\n};\nexport var reverse = function reverse(arr) {\n if (Array.isArray(arr)) {\n return arr.reverse();\n } // can be string\n\n\n return arr.split('').reverse.join('');\n};\nexport var memoize = function memoize(fn) {\n var lastArgs = null;\n var lastResult = null;\n return function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n if (lastArgs && args.every(function (val, i) {\n return val === lastArgs[i];\n })) {\n return lastResult;\n }\n\n lastArgs = args;\n lastResult = fn.apply(void 0, args);\n return lastResult;\n };\n};","/**\n * @fileOverview 一些公用的运算方法\n * @author xile611\n * @date 2015-09-17\n */\nimport Decimal from 'decimal.js-light';\nimport { curry } from './utils';\n/**\n * 获取数值的位数\n * 其中绝对值属于区间[0.1, 1), 得到的值为0\n * 绝对值属于区间[0.01, 0.1),得到的位数为 -1\n * 绝对值属于区间[0.001, 0.01),得到的位数为 -2\n *\n * @param {Number} value 数值\n * @return {Integer} 位数\n */\n\nfunction getDigitCount(value) {\n var result;\n\n if (value === 0) {\n result = 1;\n } else {\n result = Math.floor(new Decimal(value).abs().log(10).toNumber()) + 1;\n }\n\n return result;\n}\n/**\n * 按照固定的步长获取[start, end)这个区间的数据\n * 并且需要处理js计算精度的问题\n *\n * @param {Decimal} start 起点\n * @param {Decimal} end 终点,不包含该值\n * @param {Decimal} step 步长\n * @return {Array} 若干数值\n */\n\n\nfunction rangeStep(start, end, step) {\n var num = new Decimal(start);\n var i = 0;\n var result = []; // magic number to prevent infinite loop\n\n while (num.lt(end) && i < 100000) {\n result.push(num.toNumber());\n num = num.add(step);\n i++;\n }\n\n return result;\n}\n/**\n * 对数值进行线性插值\n *\n * @param {Number} a 定义域的极点\n * @param {Number} b 定义域的极点\n * @param {Number} t [0, 1]内的某个值\n * @return {Number} 定义域内的某个值\n */\n\n\nvar interpolateNumber = curry(function (a, b, t) {\n var newA = +a;\n var newB = +b;\n return newA + t * (newB - newA);\n});\n/**\n * 线性插值的逆运算\n *\n * @param {Number} a 定义域的极点\n * @param {Number} b 定义域的极点\n * @param {Number} x 可以认为是插值后的一个输出值\n * @return {Number} 当x在 a ~ b这个范围内时,返回值属于[0, 1]\n */\n\nvar uninterpolateNumber = curry(function (a, b, x) {\n var diff = b - +a;\n diff = diff || Infinity;\n return (x - a) / diff;\n});\n/**\n * 线性插值的逆运算,并且有截断的操作\n *\n * @param {Number} a 定义域的极点\n * @param {Number} b 定义域的极点\n * @param {Number} x 可以认为是插值后的一个输出值\n * @return {Number} 当x在 a ~ b这个区间内时,返回值属于[0, 1],\n * 当x不在 a ~ b这个区间时,会截断到 a ~ b 这个区间\n */\n\nvar uninterpolateTruncation = curry(function (a, b, x) {\n var diff = b - +a;\n diff = diff || Infinity;\n return Math.max(0, Math.min(1, (x - a) / diff));\n});\nexport default {\n rangeStep: rangeStep,\n getDigitCount: getDigitCount,\n interpolateNumber: interpolateNumber,\n uninterpolateNumber: uninterpolateNumber,\n uninterpolateTruncation: uninterpolateTruncation\n};","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\n/**\n * @fileOverview calculate tick values of scale\n * @author xile611, arcthur\n * @date 2015-09-17\n */\nimport Decimal from 'decimal.js-light';\nimport { compose, range, memoize, map, reverse } from './util/utils';\nimport Arithmetic from './util/arithmetic';\n/**\n * Calculate a interval of a minimum value and a maximum value\n *\n * @param {Number} min The minimum value\n * @param {Number} max The maximum value\n * @return {Array} An interval\n */\n\nfunction getValidInterval(_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n min = _ref2[0],\n max = _ref2[1];\n\n var validMin = min,\n validMax = max; // exchange\n\n if (min > max) {\n validMin = max;\n validMax = min;\n }\n\n return [validMin, validMax];\n}\n/**\n * Calculate the step which is easy to understand between ticks, like 10, 20, 25\n *\n * @param {Decimal} roughStep The rough step calculated by deviding the\n * difference by the tickCount\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @param {Integer} correctionFactor A correction factor\n * @return {Decimal} The step which is easy to understand between two ticks\n */\n\n\nfunction getFormatStep(roughStep, allowDecimals, correctionFactor) {\n if (roughStep.lte(0)) {\n return new Decimal(0);\n }\n\n var digitCount = Arithmetic.getDigitCount(roughStep.toNumber()); // The ratio between the rough step and the smallest number which has a bigger\n // order of magnitudes than the rough step\n\n var digitCountValue = new Decimal(10).pow(digitCount);\n var stepRatio = roughStep.div(digitCountValue); // When an integer and a float multiplied, the accuracy of result may be wrong\n\n var stepRatioScale = digitCount !== 1 ? 0.05 : 0.1;\n var amendStepRatio = new Decimal(Math.ceil(stepRatio.div(stepRatioScale).toNumber())).add(correctionFactor).mul(stepRatioScale);\n var formatStep = amendStepRatio.mul(digitCountValue);\n return allowDecimals ? formatStep : new Decimal(Math.ceil(formatStep));\n}\n/**\n * calculate the ticks when the minimum value equals to the maximum value\n *\n * @param {Number} value The minimum valuue which is also the maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getTickOfSingleValue(value, tickCount, allowDecimals) {\n var step = 1; // calculate the middle value of ticks\n\n var middle = new Decimal(value);\n\n if (!middle.isint() && allowDecimals) {\n var absVal = Math.abs(value);\n\n if (absVal < 1) {\n // The step should be a float number when the difference is smaller than 1\n step = new Decimal(10).pow(Arithmetic.getDigitCount(value) - 1);\n middle = new Decimal(Math.floor(middle.div(step).toNumber())).mul(step);\n } else if (absVal > 1) {\n // Return the maximum integer which is smaller than 'value' when 'value' is greater than 1\n middle = new Decimal(Math.floor(value));\n }\n } else if (value === 0) {\n middle = new Decimal(Math.floor((tickCount - 1) / 2));\n } else if (!allowDecimals) {\n middle = new Decimal(Math.floor(value));\n }\n\n var middleIndex = Math.floor((tickCount - 1) / 2);\n var fn = compose(map(function (n) {\n return middle.add(new Decimal(n - middleIndex).mul(step)).toNumber();\n }), range);\n return fn(0, tickCount);\n}\n/**\n * Calculate the step\n *\n * @param {Number} min The minimum value of an interval\n * @param {Number} max The maximum value of an interval\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @param {Number} correctionFactor A correction factor\n * @return {Object} The step, minimum value of ticks, maximum value of ticks\n */\n\n\nfunction calculateStep(min, max, tickCount, allowDecimals) {\n var correctionFactor = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;\n\n // dirty hack (for recharts' test)\n if (!Number.isFinite((max - min) / (tickCount - 1))) {\n return {\n step: new Decimal(0),\n tickMin: new Decimal(0),\n tickMax: new Decimal(0)\n };\n } // The step which is easy to understand between two ticks\n\n\n var step = getFormatStep(new Decimal(max).sub(min).div(tickCount - 1), allowDecimals, correctionFactor); // A medial value of ticks\n\n var middle; // When 0 is inside the interval, 0 should be a tick\n\n if (min <= 0 && max >= 0) {\n middle = new Decimal(0);\n } else {\n // calculate the middle value\n middle = new Decimal(min).add(max).div(2); // minus modulo value\n\n middle = middle.sub(new Decimal(middle).mod(step));\n }\n\n var belowCount = Math.ceil(middle.sub(min).div(step).toNumber());\n var upCount = Math.ceil(new Decimal(max).sub(middle).div(step).toNumber());\n var scaleCount = belowCount + upCount + 1;\n\n if (scaleCount > tickCount) {\n // When more ticks need to cover the interval, step should be bigger.\n return calculateStep(min, max, tickCount, allowDecimals, correctionFactor + 1);\n }\n\n if (scaleCount < tickCount) {\n // When less ticks can cover the interval, we should add some additional ticks\n upCount = max > 0 ? upCount + (tickCount - scaleCount) : upCount;\n belowCount = max > 0 ? belowCount : belowCount + (tickCount - scaleCount);\n }\n\n return {\n step: step,\n tickMin: middle.sub(new Decimal(belowCount).mul(step)),\n tickMax: middle.add(new Decimal(upCount).mul(step))\n };\n}\n/**\n * Calculate the ticks of an interval, the count of ticks will be guraranteed\n *\n * @param {Number} min, max min: The minimum value, max: The maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getNiceTickValuesFn(_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n min = _ref4[0],\n max = _ref4[1];\n\n var tickCount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 6;\n var allowDecimals = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n // More than two ticks should be return\n var count = Math.max(tickCount, 2);\n\n var _getValidInterval = getValidInterval([min, max]),\n _getValidInterval2 = _slicedToArray(_getValidInterval, 2),\n cormin = _getValidInterval2[0],\n cormax = _getValidInterval2[1];\n\n if (cormin === -Infinity || cormax === Infinity) {\n var _values = cormax === Infinity ? [cormin].concat(_toConsumableArray(range(0, tickCount - 1).map(function () {\n return Infinity;\n }))) : [].concat(_toConsumableArray(range(0, tickCount - 1).map(function () {\n return -Infinity;\n })), [cormax]);\n\n return min > max ? reverse(_values) : _values;\n }\n\n if (cormin === cormax) {\n return getTickOfSingleValue(cormin, tickCount, allowDecimals);\n } // Get the step between two ticks\n\n\n var _calculateStep = calculateStep(cormin, cormax, count, allowDecimals),\n step = _calculateStep.step,\n tickMin = _calculateStep.tickMin,\n tickMax = _calculateStep.tickMax;\n\n var values = Arithmetic.rangeStep(tickMin, tickMax.add(new Decimal(0.1).mul(step)), step);\n return min > max ? reverse(values) : values;\n}\n/**\n * Calculate the ticks of an interval, the count of ticks won't be guraranteed\n *\n * @param {Number} min, max min: The minimum value, max: The maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getTickValuesFn(_ref5) {\n var _ref6 = _slicedToArray(_ref5, 2),\n min = _ref6[0],\n max = _ref6[1];\n\n var tickCount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 6;\n var allowDecimals = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n // More than two ticks should be return\n var count = Math.max(tickCount, 2);\n\n var _getValidInterval3 = getValidInterval([min, max]),\n _getValidInterval4 = _slicedToArray(_getValidInterval3, 2),\n cormin = _getValidInterval4[0],\n cormax = _getValidInterval4[1];\n\n if (cormin === -Infinity || cormax === Infinity) {\n return [min, max];\n }\n\n if (cormin === cormax) {\n return getTickOfSingleValue(cormin, tickCount, allowDecimals);\n }\n\n var step = getFormatStep(new Decimal(cormax).sub(cormin).div(count - 1), allowDecimals, 0);\n var fn = compose(map(function (n) {\n return new Decimal(cormin).add(new Decimal(n).mul(step)).toNumber();\n }), range);\n var values = fn(0, count).filter(function (entry) {\n return entry >= cormin && entry <= cormax;\n });\n return min > max ? reverse(values) : values;\n}\n/**\n * Calculate the ticks of an interval, the count of ticks won't be guraranteed,\n * but the domain will be guaranteed\n *\n * @param {Number} min, max min: The minimum value, max: The maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getTickValuesFixedDomainFn(_ref7, tickCount) {\n var _ref8 = _slicedToArray(_ref7, 2),\n min = _ref8[0],\n max = _ref8[1];\n\n var allowDecimals = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n // More than two ticks should be return\n var _getValidInterval5 = getValidInterval([min, max]),\n _getValidInterval6 = _slicedToArray(_getValidInterval5, 2),\n cormin = _getValidInterval6[0],\n cormax = _getValidInterval6[1];\n\n if (cormin === -Infinity || cormax === Infinity) {\n return [min, max];\n }\n\n if (cormin === cormax) {\n return [cormin];\n }\n\n var count = Math.max(tickCount, 2);\n var step = getFormatStep(new Decimal(cormax).sub(cormin).div(count - 1), allowDecimals, 0);\n var values = [].concat(_toConsumableArray(Arithmetic.rangeStep(new Decimal(cormin), new Decimal(cormax).sub(new Decimal(0.99).mul(step)), step)), [cormax]);\n return min > max ? reverse(values) : values;\n}\n\nexport var getNiceTickValues = memoize(getNiceTickValuesFn);\nexport var getTickValues = memoize(getTickValuesFn);\nexport var getTickValuesFixedDomain = memoize(getTickValuesFixedDomainFn);","var _excluded = [\"offset\", \"layout\", \"width\", \"dataKey\", \"data\", \"dataPointFormatter\", \"xAxis\", \"yAxis\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n/**\n * @fileOverview Render a group of error bar\n */\nimport React from 'react';\nimport invariant from 'tiny-invariant';\nimport { Layer } from '../container/Layer';\nimport { filterProps } from '../util/ReactUtils';\nexport function ErrorBar(props) {\n var offset = props.offset,\n layout = props.layout,\n width = props.width,\n dataKey = props.dataKey,\n data = props.data,\n dataPointFormatter = props.dataPointFormatter,\n xAxis = props.xAxis,\n yAxis = props.yAxis,\n others = _objectWithoutProperties(props, _excluded);\n var svgProps = filterProps(others, false);\n !!(props.direction === 'x' && xAxis.type !== 'number') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'ErrorBar requires Axis type property to be \"number\".') : invariant(false) : void 0;\n var errorBars = data.map(function (entry) {\n var _dataPointFormatter = dataPointFormatter(entry, dataKey),\n x = _dataPointFormatter.x,\n y = _dataPointFormatter.y,\n value = _dataPointFormatter.value,\n errorVal = _dataPointFormatter.errorVal;\n if (!errorVal) {\n return null;\n }\n var lineCoordinates = [];\n var lowBound, highBound;\n if (Array.isArray(errorVal)) {\n var _errorVal = _slicedToArray(errorVal, 2);\n lowBound = _errorVal[0];\n highBound = _errorVal[1];\n } else {\n lowBound = highBound = errorVal;\n }\n if (layout === 'vertical') {\n // error bar for horizontal charts, the y is fixed, x is a range value\n var scale = xAxis.scale;\n var yMid = y + offset;\n var yMin = yMid + width;\n var yMax = yMid - width;\n var xMin = scale(value - lowBound);\n var xMax = scale(value + highBound);\n\n // the right line of |--|\n lineCoordinates.push({\n x1: xMax,\n y1: yMin,\n x2: xMax,\n y2: yMax\n });\n // the middle line of |--|\n lineCoordinates.push({\n x1: xMin,\n y1: yMid,\n x2: xMax,\n y2: yMid\n });\n // the left line of |--|\n lineCoordinates.push({\n x1: xMin,\n y1: yMin,\n x2: xMin,\n y2: yMax\n });\n } else if (layout === 'horizontal') {\n // error bar for horizontal charts, the x is fixed, y is a range value\n var _scale = yAxis.scale;\n var xMid = x + offset;\n var _xMin = xMid - width;\n var _xMax = xMid + width;\n var _yMin = _scale(value - lowBound);\n var _yMax = _scale(value + highBound);\n\n // the top line\n lineCoordinates.push({\n x1: _xMin,\n y1: _yMax,\n x2: _xMax,\n y2: _yMax\n });\n // the middle line\n lineCoordinates.push({\n x1: xMid,\n y1: _yMin,\n x2: xMid,\n y2: _yMax\n });\n // the bottom line\n lineCoordinates.push({\n x1: _xMin,\n y1: _yMin,\n x2: _xMax,\n y2: _yMin\n });\n }\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: \"recharts-errorBar\",\n key: \"bar-\".concat(lineCoordinates.map(function (c) {\n return \"\".concat(c.x1, \"-\").concat(c.x2, \"-\").concat(c.y1, \"-\").concat(c.y2);\n }))\n }, svgProps), lineCoordinates.map(function (coordinates) {\n return /*#__PURE__*/React.createElement(\"line\", _extends({}, coordinates, {\n key: \"line-\".concat(coordinates.x1, \"-\").concat(coordinates.x2, \"-\").concat(coordinates.y1, \"-\").concat(coordinates.y2)\n }));\n }));\n });\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-errorBars\"\n }, errorBars);\n}\nErrorBar.defaultProps = {\n stroke: 'black',\n strokeWidth: 1.5,\n width: 5,\n offset: 0,\n layout: 'horizontal'\n};\nErrorBar.displayName = 'ErrorBar';","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { Legend } from '../component/Legend';\nimport { getMainColorOfGraphicItem } from './ChartUtils';\nimport { findChildByType } from './ReactUtils';\nexport var getLegendProps = function getLegendProps(_ref) {\n var children = _ref.children,\n formattedGraphicalItems = _ref.formattedGraphicalItems,\n legendWidth = _ref.legendWidth,\n legendContent = _ref.legendContent;\n var legendItem = findChildByType(children, Legend);\n if (!legendItem) {\n return null;\n }\n var legendData;\n if (legendItem.props && legendItem.props.payload) {\n legendData = legendItem.props && legendItem.props.payload;\n } else if (legendContent === 'children') {\n legendData = (formattedGraphicalItems || []).reduce(function (result, _ref2) {\n var item = _ref2.item,\n props = _ref2.props;\n var data = props.sectors || props.data || [];\n return result.concat(data.map(function (entry) {\n return {\n type: legendItem.props.iconType || item.props.legendType,\n value: entry.name,\n color: entry.fill,\n payload: entry\n };\n }));\n }, []);\n } else {\n legendData = (formattedGraphicalItems || []).map(function (_ref3) {\n var item = _ref3.item;\n var _item$props = item.props,\n dataKey = _item$props.dataKey,\n name = _item$props.name,\n legendType = _item$props.legendType,\n hide = _item$props.hide;\n return {\n inactive: hide,\n dataKey: dataKey,\n type: legendItem.props.iconType || legendType || 'square',\n color: getMainColorOfGraphicItem(item),\n value: name || dataKey,\n // @ts-expect-error property strokeDasharray is required in Payload but optional in props\n payload: item.props\n };\n });\n }\n return _objectSpread(_objectSpread(_objectSpread({}, legendItem.props), Legend.getWithHeight(legendItem, legendWidth)), {}, {\n payload: legendData,\n item: legendItem\n });\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nimport * as d3Scales from 'victory-vendor/d3-scale';\nimport { stack as shapeStack, stackOffsetExpand, stackOffsetNone, stackOffsetSilhouette, stackOffsetWiggle, stackOrderNone } from 'victory-vendor/d3-shape';\nimport max from 'lodash/max';\nimport min from 'lodash/min';\nimport isNil from 'lodash/isNil';\nimport isFunction from 'lodash/isFunction';\nimport isString from 'lodash/isString';\nimport get from 'lodash/get';\nimport flatMap from 'lodash/flatMap';\nimport isNan from 'lodash/isNaN';\nimport upperFirst from 'lodash/upperFirst';\nimport isEqual from 'lodash/isEqual';\nimport sortBy from 'lodash/sortBy';\nimport { getNiceTickValues, getTickValuesFixedDomain } from 'recharts-scale';\nimport { ErrorBar } from '../cartesian/ErrorBar';\nimport { findEntryInArray, getPercentValue, isNumber, isNumOrStr, mathSign, uniqueId } from './DataUtils';\nimport { filterProps, findAllByType, getDisplayName } from './ReactUtils';\n// TODO: Cause of circular dependency. Needs refactor.\n// import { RadiusAxisProps, AngleAxisProps } from '../polar/types';\n\nimport { getLegendProps } from './getLegendProps';\n\n// Exported for backwards compatibility\nexport { getLegendProps };\nexport function getValueByDataKey(obj, dataKey, defaultValue) {\n if (isNil(obj) || isNil(dataKey)) {\n return defaultValue;\n }\n if (isNumOrStr(dataKey)) {\n return get(obj, dataKey, defaultValue);\n }\n if (isFunction(dataKey)) {\n return dataKey(obj);\n }\n return defaultValue;\n}\n/**\n * Get domain of data by key.\n * @param {Array} data The data displayed in the chart\n * @param {String} key The unique key of a group of data\n * @param {String} type The type of axis\n * @param {Boolean} filterNil Whether or not filter nil values\n * @return {Array} Domain of data\n */\nexport function getDomainOfDataByKey(data, key, type, filterNil) {\n var flattenData = flatMap(data, function (entry) {\n return getValueByDataKey(entry, key);\n });\n if (type === 'number') {\n // @ts-expect-error parseFloat type only accepts strings\n var domain = flattenData.filter(function (entry) {\n return isNumber(entry) || parseFloat(entry);\n });\n return domain.length ? [min(domain), max(domain)] : [Infinity, -Infinity];\n }\n var validateData = filterNil ? flattenData.filter(function (entry) {\n return !isNil(entry);\n }) : flattenData;\n\n // Supports x-axis of Date type\n return validateData.map(function (entry) {\n return isNumOrStr(entry) || entry instanceof Date ? entry : '';\n });\n}\nexport var calculateActiveTickIndex = function calculateActiveTickIndex(coordinate) {\n var _ticks$length;\n var ticks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var unsortedTicks = arguments.length > 2 ? arguments[2] : undefined;\n var axis = arguments.length > 3 ? arguments[3] : undefined;\n var index = -1;\n var len = (_ticks$length = ticks === null || ticks === void 0 ? void 0 : ticks.length) !== null && _ticks$length !== void 0 ? _ticks$length : 0;\n\n // if there are 1 or less ticks ticks then the active tick is at index 0\n if (len <= 1) {\n return 0;\n }\n if (axis && axis.axisType === 'angleAxis' && Math.abs(Math.abs(axis.range[1] - axis.range[0]) - 360) <= 1e-6) {\n var range = axis.range;\n // ticks are distributed in a circle\n for (var i = 0; i < len; i++) {\n var before = i > 0 ? unsortedTicks[i - 1].coordinate : unsortedTicks[len - 1].coordinate;\n var cur = unsortedTicks[i].coordinate;\n var after = i >= len - 1 ? unsortedTicks[0].coordinate : unsortedTicks[i + 1].coordinate;\n var sameDirectionCoord = void 0;\n if (mathSign(cur - before) !== mathSign(after - cur)) {\n var diffInterval = [];\n if (mathSign(after - cur) === mathSign(range[1] - range[0])) {\n sameDirectionCoord = after;\n var curInRange = cur + range[1] - range[0];\n diffInterval[0] = Math.min(curInRange, (curInRange + before) / 2);\n diffInterval[1] = Math.max(curInRange, (curInRange + before) / 2);\n } else {\n sameDirectionCoord = before;\n var afterInRange = after + range[1] - range[0];\n diffInterval[0] = Math.min(cur, (afterInRange + cur) / 2);\n diffInterval[1] = Math.max(cur, (afterInRange + cur) / 2);\n }\n var sameInterval = [Math.min(cur, (sameDirectionCoord + cur) / 2), Math.max(cur, (sameDirectionCoord + cur) / 2)];\n if (coordinate > sameInterval[0] && coordinate <= sameInterval[1] || coordinate >= diffInterval[0] && coordinate <= diffInterval[1]) {\n index = unsortedTicks[i].index;\n break;\n }\n } else {\n var minValue = Math.min(before, after);\n var maxValue = Math.max(before, after);\n if (coordinate > (minValue + cur) / 2 && coordinate <= (maxValue + cur) / 2) {\n index = unsortedTicks[i].index;\n break;\n }\n }\n }\n } else {\n // ticks are distributed in a single direction\n for (var _i = 0; _i < len; _i++) {\n if (_i === 0 && coordinate <= (ticks[_i].coordinate + ticks[_i + 1].coordinate) / 2 || _i > 0 && _i < len - 1 && coordinate > (ticks[_i].coordinate + ticks[_i - 1].coordinate) / 2 && coordinate <= (ticks[_i].coordinate + ticks[_i + 1].coordinate) / 2 || _i === len - 1 && coordinate > (ticks[_i].coordinate + ticks[_i - 1].coordinate) / 2) {\n index = ticks[_i].index;\n break;\n }\n }\n }\n return index;\n};\n\n/**\n * Get the main color of each graphic item\n * @param {ReactElement} item A graphic item\n * @return {String} Color\n */\nexport var getMainColorOfGraphicItem = function getMainColorOfGraphicItem(item) {\n var _ref = item,\n displayName = _ref.type.displayName; // TODO: check if displayName is valid.\n var _item$props = item.props,\n stroke = _item$props.stroke,\n fill = _item$props.fill;\n var result;\n switch (displayName) {\n case 'Line':\n result = stroke;\n break;\n case 'Area':\n case 'Radar':\n result = stroke && stroke !== 'none' ? stroke : fill;\n break;\n default:\n result = fill;\n break;\n }\n return result;\n};\n/**\n * Calculate the size of all groups for stacked bar graph\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @return {Object} The size of all groups\n */\nexport var getBarSizeList = function getBarSizeList(_ref2) {\n var globalSize = _ref2.barSize,\n totalSize = _ref2.totalSize,\n _ref2$stackGroups = _ref2.stackGroups,\n stackGroups = _ref2$stackGroups === void 0 ? {} : _ref2$stackGroups;\n if (!stackGroups) {\n return {};\n }\n var result = {};\n var numericAxisIds = Object.keys(stackGroups);\n for (var i = 0, len = numericAxisIds.length; i < len; i++) {\n var sgs = stackGroups[numericAxisIds[i]].stackGroups;\n var stackIds = Object.keys(sgs);\n for (var j = 0, sLen = stackIds.length; j < sLen; j++) {\n var _sgs$stackIds$j = sgs[stackIds[j]],\n items = _sgs$stackIds$j.items,\n cateAxisId = _sgs$stackIds$j.cateAxisId;\n var barItems = items.filter(function (item) {\n return getDisplayName(item.type).indexOf('Bar') >= 0;\n });\n if (barItems && barItems.length) {\n var selfSize = barItems[0].props.barSize;\n var cateId = barItems[0].props[cateAxisId];\n if (!result[cateId]) {\n result[cateId] = [];\n }\n var barSize = isNil(selfSize) ? globalSize : selfSize;\n result[cateId].push({\n item: barItems[0],\n stackList: barItems.slice(1),\n barSize: isNil(barSize) ? undefined : getPercentValue(barSize, totalSize, 0)\n });\n }\n }\n }\n return result;\n};\n/**\n * Calculate the size of each bar and offset between start of band and the bar\n *\n * @param {number} bandSize is the size of area where bars can render\n * @param {number | string} barGap is the gap size, as a percentage of `bandSize`.\n * Can be defined as number or percent string\n * @param {number | string} barCategoryGap is the gap size, as a percentage of `bandSize`.\n * Can be defined as number or percent string\n * @param {Array} sizeList Sizes of all groups\n * @param {number} maxBarSize The maximum size of each bar\n * @return {Array} The size and offset of each bar\n */\nexport var getBarPosition = function getBarPosition(_ref3) {\n var barGap = _ref3.barGap,\n barCategoryGap = _ref3.barCategoryGap,\n bandSize = _ref3.bandSize,\n _ref3$sizeList = _ref3.sizeList,\n sizeList = _ref3$sizeList === void 0 ? [] : _ref3$sizeList,\n maxBarSize = _ref3.maxBarSize;\n var len = sizeList.length;\n if (len < 1) return null;\n var realBarGap = getPercentValue(barGap, bandSize, 0, true);\n var result;\n var initialValue = [];\n\n // whether or not is barSize setted by user\n if (sizeList[0].barSize === +sizeList[0].barSize) {\n var useFull = false;\n var fullBarSize = bandSize / len;\n // @ts-expect-error the type check above does not check for type number explicitly\n var sum = sizeList.reduce(function (res, entry) {\n return res + entry.barSize || 0;\n }, 0);\n sum += (len - 1) * realBarGap;\n if (sum >= bandSize) {\n sum -= (len - 1) * realBarGap;\n realBarGap = 0;\n }\n if (sum >= bandSize && fullBarSize > 0) {\n useFull = true;\n fullBarSize *= 0.9;\n sum = len * fullBarSize;\n }\n var offset = (bandSize - sum) / 2 >> 0;\n var prev = {\n offset: offset - realBarGap,\n size: 0\n };\n result = sizeList.reduce(function (res, entry) {\n var newPosition = {\n item: entry.item,\n position: {\n offset: prev.offset + prev.size + realBarGap,\n // @ts-expect-error the type check above does not check for type number explicitly\n size: useFull ? fullBarSize : entry.barSize\n }\n };\n var newRes = [].concat(_toConsumableArray(res), [newPosition]);\n prev = newRes[newRes.length - 1].position;\n if (entry.stackList && entry.stackList.length) {\n entry.stackList.forEach(function (item) {\n newRes.push({\n item: item,\n position: prev\n });\n });\n }\n return newRes;\n }, initialValue);\n } else {\n var _offset = getPercentValue(barCategoryGap, bandSize, 0, true);\n if (bandSize - 2 * _offset - (len - 1) * realBarGap <= 0) {\n realBarGap = 0;\n }\n var originalSize = (bandSize - 2 * _offset - (len - 1) * realBarGap) / len;\n if (originalSize > 1) {\n originalSize >>= 0;\n }\n var size = maxBarSize === +maxBarSize ? Math.min(originalSize, maxBarSize) : originalSize;\n result = sizeList.reduce(function (res, entry, i) {\n var newRes = [].concat(_toConsumableArray(res), [{\n item: entry.item,\n position: {\n offset: _offset + (originalSize + realBarGap) * i + (originalSize - size) / 2,\n size: size\n }\n }]);\n if (entry.stackList && entry.stackList.length) {\n entry.stackList.forEach(function (item) {\n newRes.push({\n item: item,\n position: newRes[newRes.length - 1].position\n });\n });\n }\n return newRes;\n }, initialValue);\n }\n return result;\n};\nexport var appendOffsetOfLegend = function appendOffsetOfLegend(offset, _unused, props, legendBox) {\n var children = props.children,\n width = props.width,\n margin = props.margin;\n var legendWidth = width - (margin.left || 0) - (margin.right || 0);\n var legendProps = getLegendProps({\n children: children,\n legendWidth: legendWidth\n });\n if (legendProps) {\n var _ref4 = legendBox || {},\n boxWidth = _ref4.width,\n boxHeight = _ref4.height;\n var align = legendProps.align,\n verticalAlign = legendProps.verticalAlign,\n layout = legendProps.layout;\n if ((layout === 'vertical' || layout === 'horizontal' && verticalAlign === 'middle') && align !== 'center' && isNumber(offset[align])) {\n return _objectSpread(_objectSpread({}, offset), {}, _defineProperty({}, align, offset[align] + (boxWidth || 0)));\n }\n if ((layout === 'horizontal' || layout === 'vertical' && align === 'center') && verticalAlign !== 'middle' && isNumber(offset[verticalAlign])) {\n return _objectSpread(_objectSpread({}, offset), {}, _defineProperty({}, verticalAlign, offset[verticalAlign] + (boxHeight || 0)));\n }\n }\n return offset;\n};\nvar isErrorBarRelevantForAxis = function isErrorBarRelevantForAxis(layout, axisType, direction) {\n if (isNil(axisType)) {\n return true;\n }\n if (layout === 'horizontal') {\n return axisType === 'yAxis';\n }\n if (layout === 'vertical') {\n return axisType === 'xAxis';\n }\n if (direction === 'x') {\n return axisType === 'xAxis';\n }\n if (direction === 'y') {\n return axisType === 'yAxis';\n }\n return true;\n};\nexport var getDomainOfErrorBars = function getDomainOfErrorBars(data, item, dataKey, layout, axisType) {\n var children = item.props.children;\n var errorBars = findAllByType(children, ErrorBar).filter(function (errorBarChild) {\n return isErrorBarRelevantForAxis(layout, axisType, errorBarChild.props.direction);\n });\n if (errorBars && errorBars.length) {\n var keys = errorBars.map(function (errorBarChild) {\n return errorBarChild.props.dataKey;\n });\n return data.reduce(function (result, entry) {\n var entryValue = getValueByDataKey(entry, dataKey);\n if (isNil(entryValue)) return result;\n var mainValue = Array.isArray(entryValue) ? [min(entryValue), max(entryValue)] : [entryValue, entryValue];\n var errorDomain = keys.reduce(function (prevErrorArr, k) {\n var errorValue = getValueByDataKey(entry, k, 0);\n var lowerValue = mainValue[0] - Math.abs(Array.isArray(errorValue) ? errorValue[0] : errorValue);\n var upperValue = mainValue[1] + Math.abs(Array.isArray(errorValue) ? errorValue[1] : errorValue);\n return [Math.min(lowerValue, prevErrorArr[0]), Math.max(upperValue, prevErrorArr[1])];\n }, [Infinity, -Infinity]);\n return [Math.min(errorDomain[0], result[0]), Math.max(errorDomain[1], result[1])];\n }, [Infinity, -Infinity]);\n }\n return null;\n};\nexport var parseErrorBarsOfAxis = function parseErrorBarsOfAxis(data, items, dataKey, axisType, layout) {\n var domains = items.map(function (item) {\n return getDomainOfErrorBars(data, item, dataKey, layout, axisType);\n }).filter(function (entry) {\n return !isNil(entry);\n });\n if (domains && domains.length) {\n return domains.reduce(function (result, entry) {\n return [Math.min(result[0], entry[0]), Math.max(result[1], entry[1])];\n }, [Infinity, -Infinity]);\n }\n return null;\n};\n\n/**\n * Get domain of data by the configuration of item element\n * @param {Array} data The data displayed in the chart\n * @param {Array} items The instances of item\n * @param {String} type The type of axis, number - Number Axis, category - Category Axis\n * @param {LayoutType} layout The type of layout\n * @param {Boolean} filterNil Whether or not filter nil values\n * @return {Array} Domain\n */\nexport var getDomainOfItemsWithSameAxis = function getDomainOfItemsWithSameAxis(data, items, type, layout, filterNil) {\n var domains = items.map(function (item) {\n var dataKey = item.props.dataKey;\n if (type === 'number' && dataKey) {\n return getDomainOfErrorBars(data, item, dataKey, layout) || getDomainOfDataByKey(data, dataKey, type, filterNil);\n }\n return getDomainOfDataByKey(data, dataKey, type, filterNil);\n });\n if (type === 'number') {\n // Calculate the domain of number axis\n return domains.reduce(\n // @ts-expect-error if (type === number) means that the domain is numerical type\n // - but this link is missing in the type definition\n function (result, entry) {\n return [Math.min(result[0], entry[0]), Math.max(result[1], entry[1])];\n }, [Infinity, -Infinity]);\n }\n var tag = {};\n // Get the union set of category axis\n return domains.reduce(function (result, entry) {\n for (var i = 0, len = entry.length; i < len; i++) {\n // @ts-expect-error Date cannot index an object\n if (!tag[entry[i]]) {\n // @ts-expect-error Date cannot index an object\n tag[entry[i]] = true;\n\n // @ts-expect-error Date cannot index an object\n result.push(entry[i]);\n }\n }\n return result;\n }, []);\n};\nexport var isCategoricalAxis = function isCategoricalAxis(layout, axisType) {\n return layout === 'horizontal' && axisType === 'xAxis' || layout === 'vertical' && axisType === 'yAxis' || layout === 'centric' && axisType === 'angleAxis' || layout === 'radial' && axisType === 'radiusAxis';\n};\n\n/**\n * Calculate the Coordinates of grid\n * @param {Array} ticks The ticks in axis\n * @param {Number} minValue The minimun value of axis\n * @param {Number} maxValue The maximun value of axis\n * @param {boolean} syncWithTicks Synchronize grid lines with ticks or not\n * @return {Array} Coordinates\n */\nexport var getCoordinatesOfGrid = function getCoordinatesOfGrid(ticks, minValue, maxValue, syncWithTicks) {\n if (syncWithTicks) {\n return ticks.map(function (entry) {\n return entry.coordinate;\n });\n }\n var hasMin, hasMax;\n var values = ticks.map(function (entry) {\n if (entry.coordinate === minValue) {\n hasMin = true;\n }\n if (entry.coordinate === maxValue) {\n hasMax = true;\n }\n return entry.coordinate;\n });\n if (!hasMin) {\n values.push(minValue);\n }\n if (!hasMax) {\n values.push(maxValue);\n }\n return values;\n};\n\n/**\n * Get the ticks of an axis\n * @param {Object} axis The configuration of an axis\n * @param {Boolean} isGrid Whether or not are the ticks in grid\n * @param {Boolean} isAll Return the ticks of all the points or not\n * @return {Array} Ticks\n */\nexport var getTicksOfAxis = function getTicksOfAxis(axis, isGrid, isAll) {\n if (!axis) return null;\n var scale = axis.scale;\n var duplicateDomain = axis.duplicateDomain,\n type = axis.type,\n range = axis.range;\n var offsetForBand = axis.realScaleType === 'scaleBand' ? scale.bandwidth() / 2 : 2;\n var offset = (isGrid || isAll) && type === 'category' && scale.bandwidth ? scale.bandwidth() / offsetForBand : 0;\n offset = axis.axisType === 'angleAxis' && (range === null || range === void 0 ? void 0 : range.length) >= 2 ? mathSign(range[0] - range[1]) * 2 * offset : offset;\n\n // The ticks set by user should only affect the ticks adjacent to axis line\n if (isGrid && (axis.ticks || axis.niceTicks)) {\n var result = (axis.ticks || axis.niceTicks).map(function (entry) {\n var scaleContent = duplicateDomain ? duplicateDomain.indexOf(entry) : entry;\n return {\n // If the scaleContent is not a number, the coordinate will be NaN.\n // That could be the case for example with a PointScale and a string as domain.\n coordinate: scale(scaleContent) + offset,\n value: entry,\n offset: offset\n };\n });\n return result.filter(function (row) {\n return !isNan(row.coordinate);\n });\n }\n\n // When axis is a categorial axis, but the type of axis is number or the scale of axis is not \"auto\"\n if (axis.isCategorical && axis.categoricalDomain) {\n return axis.categoricalDomain.map(function (entry, index) {\n return {\n coordinate: scale(entry) + offset,\n value: entry,\n index: index,\n offset: offset\n };\n });\n }\n if (scale.ticks && !isAll) {\n return scale.ticks(axis.tickCount).map(function (entry) {\n return {\n coordinate: scale(entry) + offset,\n value: entry,\n offset: offset\n };\n });\n }\n\n // When axis has duplicated text, serial numbers are used to generate scale\n return scale.domain().map(function (entry, index) {\n return {\n coordinate: scale(entry) + offset,\n value: duplicateDomain ? duplicateDomain[entry] : entry,\n index: index,\n offset: offset\n };\n });\n};\n\n/**\n * combine the handlers\n * @param {Function} defaultHandler Internal private handler\n * @param {Function} childHandler Handler function specified in child component\n * @return {Function} The combined handler\n */\n\nvar handlerWeakMap = new WeakMap();\nexport var combineEventHandlers = function combineEventHandlers(defaultHandler, childHandler) {\n if (typeof childHandler !== 'function') {\n return defaultHandler;\n }\n if (!handlerWeakMap.has(defaultHandler)) {\n handlerWeakMap.set(defaultHandler, new WeakMap());\n }\n var childWeakMap = handlerWeakMap.get(defaultHandler);\n if (childWeakMap.has(childHandler)) {\n return childWeakMap.get(childHandler);\n }\n var combineHandler = function combineHandler() {\n defaultHandler.apply(void 0, arguments);\n childHandler.apply(void 0, arguments);\n };\n childWeakMap.set(childHandler, combineHandler);\n return combineHandler;\n};\n\n/**\n * Parse the scale function of axis\n * @param {Object} axis The option of axis\n * @param {String} chartType The displayName of chart\n * @param {Boolean} hasBar if it has a bar\n * @return {object} The scale function and resolved name\n */\nexport var parseScale = function parseScale(axis, chartType, hasBar) {\n var scale = axis.scale,\n type = axis.type,\n layout = axis.layout,\n axisType = axis.axisType;\n if (scale === 'auto') {\n if (layout === 'radial' && axisType === 'radiusAxis') {\n return {\n scale: d3Scales.scaleBand(),\n realScaleType: 'band'\n };\n }\n if (layout === 'radial' && axisType === 'angleAxis') {\n return {\n scale: d3Scales.scaleLinear(),\n realScaleType: 'linear'\n };\n }\n if (type === 'category' && chartType && (chartType.indexOf('LineChart') >= 0 || chartType.indexOf('AreaChart') >= 0 || chartType.indexOf('ComposedChart') >= 0 && !hasBar)) {\n return {\n scale: d3Scales.scalePoint(),\n realScaleType: 'point'\n };\n }\n if (type === 'category') {\n return {\n scale: d3Scales.scaleBand(),\n realScaleType: 'band'\n };\n }\n return {\n scale: d3Scales.scaleLinear(),\n realScaleType: 'linear'\n };\n }\n if (isString(scale)) {\n var name = \"scale\".concat(upperFirst(scale));\n return {\n scale: (d3Scales[name] || d3Scales.scalePoint)(),\n realScaleType: d3Scales[name] ? name : 'point'\n };\n }\n return isFunction(scale) ? {\n scale: scale\n } : {\n scale: d3Scales.scalePoint(),\n realScaleType: 'point'\n };\n};\nvar EPS = 1e-4;\nexport var checkDomainOfScale = function checkDomainOfScale(scale) {\n var domain = scale.domain();\n if (!domain || domain.length <= 2) {\n return;\n }\n var len = domain.length;\n var range = scale.range();\n var minValue = Math.min(range[0], range[1]) - EPS;\n var maxValue = Math.max(range[0], range[1]) + EPS;\n var first = scale(domain[0]);\n var last = scale(domain[len - 1]);\n if (first < minValue || first > maxValue || last < minValue || last > maxValue) {\n scale.domain([domain[0], domain[len - 1]]);\n }\n};\nexport var findPositionOfBar = function findPositionOfBar(barPosition, child) {\n if (!barPosition) {\n return null;\n }\n for (var i = 0, len = barPosition.length; i < len; i++) {\n if (barPosition[i].item === child) {\n return barPosition[i].position;\n }\n }\n return null;\n};\n\n/**\n * Both value and domain are tuples of two numbers\n * - but the type stays as array of numbers until we have better support in rest of the app\n * @param {Array} value input that will be truncated\n * @param {Array} domain boundaries\n * @returns {Array} tuple of two numbers\n */\nexport var truncateByDomain = function truncateByDomain(value, domain) {\n if (!domain || domain.length !== 2 || !isNumber(domain[0]) || !isNumber(domain[1])) {\n return value;\n }\n var minValue = Math.min(domain[0], domain[1]);\n var maxValue = Math.max(domain[0], domain[1]);\n var result = [value[0], value[1]];\n if (!isNumber(value[0]) || value[0] < minValue) {\n result[0] = minValue;\n }\n if (!isNumber(value[1]) || value[1] > maxValue) {\n result[1] = maxValue;\n }\n if (result[0] > maxValue) {\n result[0] = maxValue;\n }\n if (result[1] < minValue) {\n result[1] = minValue;\n }\n return result;\n};\n\n/**\n * Stacks all positive numbers above zero and all negative numbers below zero.\n *\n * If all values in the series are positive then this behaves the same as 'none' stacker.\n *\n * @param {Array} series from d3-shape Stack\n * @return {Array} series with applied offset\n */\nexport var offsetSign = function offsetSign(series) {\n var n = series.length;\n if (n <= 0) {\n return;\n }\n for (var j = 0, m = series[0].length; j < m; ++j) {\n var positive = 0;\n var negative = 0;\n for (var i = 0; i < n; ++i) {\n var value = isNan(series[i][j][1]) ? series[i][j][0] : series[i][j][1];\n\n /* eslint-disable prefer-destructuring, no-param-reassign */\n if (value >= 0) {\n series[i][j][0] = positive;\n series[i][j][1] = positive + value;\n positive = series[i][j][1];\n } else {\n series[i][j][0] = negative;\n series[i][j][1] = negative + value;\n negative = series[i][j][1];\n }\n /* eslint-enable prefer-destructuring, no-param-reassign */\n }\n }\n};\n\n/**\n * Replaces all negative values with zero when stacking data.\n *\n * If all values in the series are positive then this behaves the same as 'none' stacker.\n *\n * @param {Array} series from d3-shape Stack\n * @return {Array} series with applied offset\n */\nexport var offsetPositive = function offsetPositive(series) {\n var n = series.length;\n if (n <= 0) {\n return;\n }\n for (var j = 0, m = series[0].length; j < m; ++j) {\n var positive = 0;\n for (var i = 0; i < n; ++i) {\n var value = isNan(series[i][j][1]) ? series[i][j][0] : series[i][j][1];\n\n /* eslint-disable prefer-destructuring, no-param-reassign */\n if (value >= 0) {\n series[i][j][0] = positive;\n series[i][j][1] = positive + value;\n positive = series[i][j][1];\n } else {\n series[i][j][0] = 0;\n series[i][j][1] = 0;\n }\n /* eslint-enable prefer-destructuring, no-param-reassign */\n }\n }\n};\n\n/**\n * Function type to compute offset for stacked data.\n *\n * d3-shape has something fishy going on with its types.\n * In @definitelytyped/d3-shape, this function (the offset accessor) is typed as Series<> => void.\n * However! When I actually open the storybook I can see that the offset accessor actually receives Array>.\n * The same I can see in the source code itself:\n * https://github.com/DefinitelyTyped/DefinitelyTyped/discussions/66042\n * That one unfortunately has no types but we can tell it passes three-dimensional array.\n *\n * Which leads me to believe that definitelytyped is wrong on this one.\n * There's open discussion on this topic without much attention:\n * https://github.com/DefinitelyTyped/DefinitelyTyped/discussions/66042\n */\n\nvar STACK_OFFSET_MAP = {\n sign: offsetSign,\n // @ts-expect-error definitelytyped types are incorrect\n expand: stackOffsetExpand,\n // @ts-expect-error definitelytyped types are incorrect\n none: stackOffsetNone,\n // @ts-expect-error definitelytyped types are incorrect\n silhouette: stackOffsetSilhouette,\n // @ts-expect-error definitelytyped types are incorrect\n wiggle: stackOffsetWiggle,\n positive: offsetPositive\n};\nexport var getStackedData = function getStackedData(data, stackItems, offsetType) {\n var dataKeys = stackItems.map(function (item) {\n return item.props.dataKey;\n });\n var offsetAccessor = STACK_OFFSET_MAP[offsetType];\n var stack = shapeStack()\n // @ts-expect-error stack.keys type wants an array of strings, but we provide array of DataKeys\n .keys(dataKeys).value(function (d, key) {\n return +getValueByDataKey(d, key, 0);\n }).order(stackOrderNone)\n // @ts-expect-error definitelytyped types are incorrect\n .offset(offsetAccessor);\n return stack(data);\n};\nexport var getStackGroupsByAxisId = function getStackGroupsByAxisId(data, _items, numericAxisId, cateAxisId, offsetType, reverseStackOrder) {\n if (!data) {\n return null;\n }\n\n // reversing items to affect render order (for layering)\n var items = reverseStackOrder ? _items.reverse() : _items;\n var parentStackGroupsInitialValue = {};\n var stackGroups = items.reduce(function (result, item) {\n var _item$props2 = item.props,\n stackId = _item$props2.stackId,\n hide = _item$props2.hide;\n if (hide) {\n return result;\n }\n var axisId = item.props[numericAxisId];\n var parentGroup = result[axisId] || {\n hasStack: false,\n stackGroups: {}\n };\n if (isNumOrStr(stackId)) {\n var childGroup = parentGroup.stackGroups[stackId] || {\n numericAxisId: numericAxisId,\n cateAxisId: cateAxisId,\n items: []\n };\n childGroup.items.push(item);\n parentGroup.hasStack = true;\n parentGroup.stackGroups[stackId] = childGroup;\n } else {\n parentGroup.stackGroups[uniqueId('_stackId_')] = {\n numericAxisId: numericAxisId,\n cateAxisId: cateAxisId,\n items: [item]\n };\n }\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, axisId, parentGroup));\n }, parentStackGroupsInitialValue);\n var axisStackGroupsInitialValue = {};\n return Object.keys(stackGroups).reduce(function (result, axisId) {\n var group = stackGroups[axisId];\n if (group.hasStack) {\n var stackGroupsInitialValue = {};\n group.stackGroups = Object.keys(group.stackGroups).reduce(function (res, stackId) {\n var g = group.stackGroups[stackId];\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, stackId, {\n numericAxisId: numericAxisId,\n cateAxisId: cateAxisId,\n items: g.items,\n stackedData: getStackedData(data, g.items, offsetType)\n }));\n }, stackGroupsInitialValue);\n }\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, axisId, group));\n }, axisStackGroupsInitialValue);\n};\n\n/**\n * Configure the scale function of axis\n * @param {Object} scale The scale function\n * @param {Object} opts The configuration of axis\n * @return {Object} null\n */\nexport var getTicksOfScale = function getTicksOfScale(scale, opts) {\n var realScaleType = opts.realScaleType,\n type = opts.type,\n tickCount = opts.tickCount,\n originalDomain = opts.originalDomain,\n allowDecimals = opts.allowDecimals;\n var scaleType = realScaleType || opts.scale;\n if (scaleType !== 'auto' && scaleType !== 'linear') {\n return null;\n }\n if (tickCount && type === 'number' && originalDomain && (originalDomain[0] === 'auto' || originalDomain[1] === 'auto')) {\n // Calculate the ticks by the number of grid when the axis is a number axis\n var domain = scale.domain();\n if (!domain.length) {\n return null;\n }\n var tickValues = getNiceTickValues(domain, tickCount, allowDecimals);\n scale.domain([min(tickValues), max(tickValues)]);\n return {\n niceTicks: tickValues\n };\n }\n if (tickCount && type === 'number') {\n var _domain = scale.domain();\n var _tickValues = getTickValuesFixedDomain(_domain, tickCount, allowDecimals);\n return {\n niceTicks: _tickValues\n };\n }\n return null;\n};\nexport function getCateCoordinateOfLine(_ref5) {\n var axis = _ref5.axis,\n ticks = _ref5.ticks,\n bandSize = _ref5.bandSize,\n entry = _ref5.entry,\n index = _ref5.index,\n dataKey = _ref5.dataKey;\n if (axis.type === 'category') {\n // find coordinate of category axis by the value of category\n // @ts-expect-error why does this use direct object access instead of getValueByDataKey?\n if (!axis.allowDuplicatedCategory && axis.dataKey && !isNil(entry[axis.dataKey])) {\n // @ts-expect-error why does this use direct object access instead of getValueByDataKey?\n var matchedTick = findEntryInArray(ticks, 'value', entry[axis.dataKey]);\n if (matchedTick) {\n return matchedTick.coordinate + bandSize / 2;\n }\n }\n return ticks[index] ? ticks[index].coordinate + bandSize / 2 : null;\n }\n var value = getValueByDataKey(entry, !isNil(dataKey) ? dataKey : axis.dataKey);\n return !isNil(value) ? axis.scale(value) : null;\n}\nexport var getCateCoordinateOfBar = function getCateCoordinateOfBar(_ref6) {\n var axis = _ref6.axis,\n ticks = _ref6.ticks,\n offset = _ref6.offset,\n bandSize = _ref6.bandSize,\n entry = _ref6.entry,\n index = _ref6.index;\n if (axis.type === 'category') {\n return ticks[index] ? ticks[index].coordinate + offset : null;\n }\n var value = getValueByDataKey(entry, axis.dataKey, axis.domain[index]);\n return !isNil(value) ? axis.scale(value) - bandSize / 2 + offset : null;\n};\nexport var getBaseValueOfBar = function getBaseValueOfBar(_ref7) {\n var numericAxis = _ref7.numericAxis;\n var domain = numericAxis.scale.domain();\n if (numericAxis.type === 'number') {\n var minValue = Math.min(domain[0], domain[1]);\n var maxValue = Math.max(domain[0], domain[1]);\n if (minValue <= 0 && maxValue >= 0) {\n return 0;\n }\n if (maxValue < 0) {\n return maxValue;\n }\n return minValue;\n }\n return domain[0];\n};\nexport var getStackedDataOfItem = function getStackedDataOfItem(item, stackGroups) {\n var stackId = item.props.stackId;\n if (isNumOrStr(stackId)) {\n var group = stackGroups[stackId];\n if (group) {\n var itemIndex = group.items.indexOf(item);\n return itemIndex >= 0 ? group.stackedData[itemIndex] : null;\n }\n }\n return null;\n};\nvar getDomainOfSingle = function getDomainOfSingle(data) {\n return data.reduce(function (result, entry) {\n return [min(entry.concat([result[0]]).filter(isNumber)), max(entry.concat([result[1]]).filter(isNumber))];\n }, [Infinity, -Infinity]);\n};\nexport var getDomainOfStackGroups = function getDomainOfStackGroups(stackGroups, startIndex, endIndex) {\n return Object.keys(stackGroups).reduce(function (result, stackId) {\n var group = stackGroups[stackId];\n var stackedData = group.stackedData;\n var domain = stackedData.reduce(function (res, entry) {\n var s = getDomainOfSingle(entry.slice(startIndex, endIndex + 1));\n return [Math.min(res[0], s[0]), Math.max(res[1], s[1])];\n }, [Infinity, -Infinity]);\n return [Math.min(domain[0], result[0]), Math.max(domain[1], result[1])];\n }, [Infinity, -Infinity]).map(function (result) {\n return result === Infinity || result === -Infinity ? 0 : result;\n });\n};\nexport var MIN_VALUE_REG = /^dataMin[\\s]*-[\\s]*([0-9]+([.]{1}[0-9]+){0,1})$/;\nexport var MAX_VALUE_REG = /^dataMax[\\s]*\\+[\\s]*([0-9]+([.]{1}[0-9]+){0,1})$/;\nexport var parseSpecifiedDomain = function parseSpecifiedDomain(specifiedDomain, dataDomain, allowDataOverflow) {\n if (isFunction(specifiedDomain)) {\n return specifiedDomain(dataDomain, allowDataOverflow);\n }\n if (!Array.isArray(specifiedDomain)) {\n return dataDomain;\n }\n var domain = [];\n\n /* eslint-disable prefer-destructuring */\n if (isNumber(specifiedDomain[0])) {\n domain[0] = allowDataOverflow ? specifiedDomain[0] : Math.min(specifiedDomain[0], dataDomain[0]);\n } else if (MIN_VALUE_REG.test(specifiedDomain[0])) {\n var value = +MIN_VALUE_REG.exec(specifiedDomain[0])[1];\n domain[0] = dataDomain[0] - value;\n } else if (isFunction(specifiedDomain[0])) {\n domain[0] = specifiedDomain[0](dataDomain[0]);\n } else {\n domain[0] = dataDomain[0];\n }\n if (isNumber(specifiedDomain[1])) {\n domain[1] = allowDataOverflow ? specifiedDomain[1] : Math.max(specifiedDomain[1], dataDomain[1]);\n } else if (MAX_VALUE_REG.test(specifiedDomain[1])) {\n var _value = +MAX_VALUE_REG.exec(specifiedDomain[1])[1];\n domain[1] = dataDomain[1] + _value;\n } else if (isFunction(specifiedDomain[1])) {\n domain[1] = specifiedDomain[1](dataDomain[1]);\n } else {\n domain[1] = dataDomain[1];\n }\n /* eslint-enable prefer-destructuring */\n\n return domain;\n};\n\n/**\n * Calculate the size between two category\n * @param {Object} axis The options of axis\n * @param {Array} ticks The ticks of axis\n * @param {Boolean} isBar if items in axis are bars\n * @return {Number} Size\n */\nexport var getBandSizeOfAxis = function getBandSizeOfAxis(axis, ticks, isBar) {\n // @ts-expect-error we need to rethink scale type\n if (axis && axis.scale && axis.scale.bandwidth) {\n // @ts-expect-error we need to rethink scale type\n var bandWidth = axis.scale.bandwidth();\n if (!isBar || bandWidth > 0) {\n return bandWidth;\n }\n }\n if (axis && ticks && ticks.length >= 2) {\n var orderedTicks = sortBy(ticks, function (o) {\n return o.coordinate;\n });\n var bandSize = Infinity;\n for (var i = 1, len = orderedTicks.length; i < len; i++) {\n var cur = orderedTicks[i];\n var prev = orderedTicks[i - 1];\n bandSize = Math.min((cur.coordinate || 0) - (prev.coordinate || 0), bandSize);\n }\n return bandSize === Infinity ? 0 : bandSize;\n }\n return isBar ? undefined : 0;\n};\n/**\n * parse the domain of a category axis when a domain is specified\n * @param {Array} specifiedDomain The domain specified by users\n * @param {Array} calculatedDomain The domain calculated by dateKey\n * @param {ReactElement} axisChild The axis ReactElement\n * @returns {Array} domains\n */\nexport var parseDomainOfCategoryAxis = function parseDomainOfCategoryAxis(specifiedDomain, calculatedDomain, axisChild) {\n if (!specifiedDomain || !specifiedDomain.length) {\n return calculatedDomain;\n }\n if (isEqual(specifiedDomain, get(axisChild, 'type.defaultProps.domain'))) {\n return calculatedDomain;\n }\n return specifiedDomain;\n};\nexport var getTooltipItem = function getTooltipItem(graphicalItem, payload) {\n var _graphicalItem$props = graphicalItem.props,\n dataKey = _graphicalItem$props.dataKey,\n name = _graphicalItem$props.name,\n unit = _graphicalItem$props.unit,\n formatter = _graphicalItem$props.formatter,\n tooltipType = _graphicalItem$props.tooltipType,\n chartType = _graphicalItem$props.chartType,\n hide = _graphicalItem$props.hide;\n return _objectSpread(_objectSpread({}, filterProps(graphicalItem, false)), {}, {\n dataKey: dataKey,\n unit: unit,\n formatter: formatter,\n name: name || dataKey,\n color: getMainColorOfGraphicItem(graphicalItem),\n value: getValueByDataKey(payload, dataKey),\n type: tooltipType,\n payload: payload,\n chartType: chartType,\n hide: hide\n });\n};","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var i, n, j = 0, m = series[0].length, y; j < m; ++j) {\n for (y = i = 0; i < n; ++i) y += series[i][j][1] || 0;\n if (y) for (i = 0; i < n; ++i) series[i][j][1] /= y;\n }\n none(series, order);\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var j = 0, s0 = series[order[0]], n, m = s0.length; j < m; ++j) {\n for (var i = 0, y = 0; i < n; ++i) y += series[i][j][1] || 0;\n s0[j][1] += s0[j][0] = -y / 2;\n }\n none(series, order);\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0) || !((m = (s0 = series[order[0]]).length) > 0)) return;\n for (var y = 0, j = 1, s0, m, n; j < m; ++j) {\n for (var i = 0, s1 = 0, s2 = 0; i < n; ++i) {\n var si = series[order[i]],\n sij0 = si[j][1] || 0,\n sij1 = si[j - 1][1] || 0,\n s3 = (sij0 - sij1) / 2;\n for (var k = 0; k < i; ++k) {\n var sk = series[order[k]],\n skj0 = sk[j][1] || 0,\n skj1 = sk[j - 1][1] || 0;\n s3 += skj0 - skj1;\n }\n s1 += sij0, s2 += s3 * sij0;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n if (s1) y -= s2 / s1;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n none(series, order);\n}\n","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar PREFIX_LIST = ['Webkit', 'Moz', 'O', 'ms'];\nexport var generatePrefixStyle = function generatePrefixStyle(name, value) {\n if (!name) {\n return null;\n }\n var camelName = name.replace(/(\\w)/, function (v) {\n return v.toUpperCase();\n });\n var result = PREFIX_LIST.reduce(function (res, entry) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, entry + camelName, value));\n }, {});\n result[name] = value;\n return result;\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Brush\n */\nimport React, { PureComponent, Children } from 'react';\nimport clsx from 'clsx';\nimport { scalePoint } from 'victory-vendor/d3-scale';\nimport isFunction from 'lodash/isFunction';\nimport range from 'lodash/range';\nimport { Layer } from '../container/Layer';\nimport { Text } from '../component/Text';\nimport { getValueByDataKey } from '../util/ChartUtils';\nimport { isNumber } from '../util/DataUtils';\nimport { generatePrefixStyle } from '../util/CssPrefixUtils';\nimport { filterProps } from '../util/ReactUtils';\nvar createScale = function createScale(_ref) {\n var data = _ref.data,\n startIndex = _ref.startIndex,\n endIndex = _ref.endIndex,\n x = _ref.x,\n width = _ref.width,\n travellerWidth = _ref.travellerWidth;\n if (!data || !data.length) {\n return {};\n }\n var len = data.length;\n var scale = scalePoint().domain(range(0, len)).range([x, x + width - travellerWidth]);\n var scaleValues = scale.domain().map(function (entry) {\n return scale(entry);\n });\n return {\n isTextActive: false,\n isSlideMoving: false,\n isTravellerMoving: false,\n isTravellerFocused: false,\n startX: scale(startIndex),\n endX: scale(endIndex),\n scale: scale,\n scaleValues: scaleValues\n };\n};\nvar isTouch = function isTouch(e) {\n return e.changedTouches && !!e.changedTouches.length;\n};\nexport var Brush = /*#__PURE__*/function (_PureComponent) {\n _inherits(Brush, _PureComponent);\n function Brush(props) {\n var _this;\n _classCallCheck(this, Brush);\n _this = _callSuper(this, Brush, [props]);\n _defineProperty(_assertThisInitialized(_this), \"handleDrag\", function (e) {\n if (_this.leaveTimer) {\n clearTimeout(_this.leaveTimer);\n _this.leaveTimer = null;\n }\n if (_this.state.isTravellerMoving) {\n _this.handleTravellerMove(e);\n } else if (_this.state.isSlideMoving) {\n _this.handleSlideDrag(e);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleTouchMove\", function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleDrag(e.changedTouches[0]);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleDragEnd\", function () {\n _this.setState({\n isTravellerMoving: false,\n isSlideMoving: false\n }, function () {\n var _this$props = _this.props,\n endIndex = _this$props.endIndex,\n onDragEnd = _this$props.onDragEnd,\n startIndex = _this$props.startIndex;\n onDragEnd === null || onDragEnd === void 0 || onDragEnd({\n endIndex: endIndex,\n startIndex: startIndex\n });\n });\n _this.detachDragEndListener();\n });\n _defineProperty(_assertThisInitialized(_this), \"handleLeaveWrapper\", function () {\n if (_this.state.isTravellerMoving || _this.state.isSlideMoving) {\n _this.leaveTimer = window.setTimeout(_this.handleDragEnd, _this.props.leaveTimeOut);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleEnterSlideOrTraveller\", function () {\n _this.setState({\n isTextActive: true\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"handleLeaveSlideOrTraveller\", function () {\n _this.setState({\n isTextActive: false\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"handleSlideDragStart\", function (e) {\n var event = isTouch(e) ? e.changedTouches[0] : e;\n _this.setState({\n isTravellerMoving: false,\n isSlideMoving: true,\n slideMoveStartX: event.pageX\n });\n _this.attachDragEndListener();\n });\n _this.travellerDragStartHandlers = {\n startX: _this.handleTravellerDragStart.bind(_assertThisInitialized(_this), 'startX'),\n endX: _this.handleTravellerDragStart.bind(_assertThisInitialized(_this), 'endX')\n };\n _this.state = {};\n return _this;\n }\n _createClass(Brush, [{\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.leaveTimer) {\n clearTimeout(this.leaveTimer);\n this.leaveTimer = null;\n }\n this.detachDragEndListener();\n }\n }, {\n key: \"getIndex\",\n value: function getIndex(_ref2) {\n var startX = _ref2.startX,\n endX = _ref2.endX;\n var scaleValues = this.state.scaleValues;\n var _this$props2 = this.props,\n gap = _this$props2.gap,\n data = _this$props2.data;\n var lastIndex = data.length - 1;\n var min = Math.min(startX, endX);\n var max = Math.max(startX, endX);\n var minIndex = Brush.getIndexInRange(scaleValues, min);\n var maxIndex = Brush.getIndexInRange(scaleValues, max);\n return {\n startIndex: minIndex - minIndex % gap,\n endIndex: maxIndex === lastIndex ? lastIndex : maxIndex - maxIndex % gap\n };\n }\n }, {\n key: \"getTextOfTick\",\n value: function getTextOfTick(index) {\n var _this$props3 = this.props,\n data = _this$props3.data,\n tickFormatter = _this$props3.tickFormatter,\n dataKey = _this$props3.dataKey;\n var text = getValueByDataKey(data[index], dataKey, index);\n return isFunction(tickFormatter) ? tickFormatter(text, index) : text;\n }\n }, {\n key: \"attachDragEndListener\",\n value: function attachDragEndListener() {\n window.addEventListener('mouseup', this.handleDragEnd, true);\n window.addEventListener('touchend', this.handleDragEnd, true);\n window.addEventListener('mousemove', this.handleDrag, true);\n }\n }, {\n key: \"detachDragEndListener\",\n value: function detachDragEndListener() {\n window.removeEventListener('mouseup', this.handleDragEnd, true);\n window.removeEventListener('touchend', this.handleDragEnd, true);\n window.removeEventListener('mousemove', this.handleDrag, true);\n }\n }, {\n key: \"handleSlideDrag\",\n value: function handleSlideDrag(e) {\n var _this$state = this.state,\n slideMoveStartX = _this$state.slideMoveStartX,\n startX = _this$state.startX,\n endX = _this$state.endX;\n var _this$props4 = this.props,\n x = _this$props4.x,\n width = _this$props4.width,\n travellerWidth = _this$props4.travellerWidth,\n startIndex = _this$props4.startIndex,\n endIndex = _this$props4.endIndex,\n onChange = _this$props4.onChange;\n var delta = e.pageX - slideMoveStartX;\n if (delta > 0) {\n delta = Math.min(delta, x + width - travellerWidth - endX, x + width - travellerWidth - startX);\n } else if (delta < 0) {\n delta = Math.max(delta, x - startX, x - endX);\n }\n var newIndex = this.getIndex({\n startX: startX + delta,\n endX: endX + delta\n });\n if ((newIndex.startIndex !== startIndex || newIndex.endIndex !== endIndex) && onChange) {\n onChange(newIndex);\n }\n this.setState({\n startX: startX + delta,\n endX: endX + delta,\n slideMoveStartX: e.pageX\n });\n }\n }, {\n key: \"handleTravellerDragStart\",\n value: function handleTravellerDragStart(id, e) {\n var event = isTouch(e) ? e.changedTouches[0] : e;\n this.setState({\n isSlideMoving: false,\n isTravellerMoving: true,\n movingTravellerId: id,\n brushMoveStartX: event.pageX\n });\n this.attachDragEndListener();\n }\n }, {\n key: \"handleTravellerMove\",\n value: function handleTravellerMove(e) {\n var _this$state2 = this.state,\n brushMoveStartX = _this$state2.brushMoveStartX,\n movingTravellerId = _this$state2.movingTravellerId,\n endX = _this$state2.endX,\n startX = _this$state2.startX;\n var prevValue = this.state[movingTravellerId];\n var _this$props5 = this.props,\n x = _this$props5.x,\n width = _this$props5.width,\n travellerWidth = _this$props5.travellerWidth,\n onChange = _this$props5.onChange,\n gap = _this$props5.gap,\n data = _this$props5.data;\n var params = {\n startX: this.state.startX,\n endX: this.state.endX\n };\n var delta = e.pageX - brushMoveStartX;\n if (delta > 0) {\n delta = Math.min(delta, x + width - travellerWidth - prevValue);\n } else if (delta < 0) {\n delta = Math.max(delta, x - prevValue);\n }\n params[movingTravellerId] = prevValue + delta;\n var newIndex = this.getIndex(params);\n var startIndex = newIndex.startIndex,\n endIndex = newIndex.endIndex;\n var isFullGap = function isFullGap() {\n var lastIndex = data.length - 1;\n if (movingTravellerId === 'startX' && (endX > startX ? startIndex % gap === 0 : endIndex % gap === 0) || endX < startX && endIndex === lastIndex || movingTravellerId === 'endX' && (endX > startX ? endIndex % gap === 0 : startIndex % gap === 0) || endX > startX && endIndex === lastIndex) {\n return true;\n }\n return false;\n };\n this.setState(_defineProperty(_defineProperty({}, movingTravellerId, prevValue + delta), \"brushMoveStartX\", e.pageX), function () {\n if (onChange) {\n if (isFullGap()) {\n onChange(newIndex);\n }\n }\n });\n }\n }, {\n key: \"handleTravellerMoveKeyboard\",\n value: function handleTravellerMoveKeyboard(direction, id) {\n var _this2 = this;\n // scaleValues are a list of coordinates. For example: [65, 250, 435, 620, 805, 990].\n var _this$state3 = this.state,\n scaleValues = _this$state3.scaleValues,\n startX = _this$state3.startX,\n endX = _this$state3.endX;\n // currentScaleValue refers to which coordinate the current traveller should be placed at.\n var currentScaleValue = this.state[id];\n var currentIndex = scaleValues.indexOf(currentScaleValue);\n if (currentIndex === -1) {\n return;\n }\n var newIndex = currentIndex + direction;\n if (newIndex === -1 || newIndex >= scaleValues.length) {\n return;\n }\n var newScaleValue = scaleValues[newIndex];\n\n // Prevent travellers from being on top of each other or overlapping\n if (id === 'startX' && newScaleValue >= endX || id === 'endX' && newScaleValue <= startX) {\n return;\n }\n this.setState(_defineProperty({}, id, newScaleValue), function () {\n _this2.props.onChange(_this2.getIndex({\n startX: _this2.state.startX,\n endX: _this2.state.endX\n }));\n });\n }\n }, {\n key: \"renderBackground\",\n value: function renderBackground() {\n var _this$props6 = this.props,\n x = _this$props6.x,\n y = _this$props6.y,\n width = _this$props6.width,\n height = _this$props6.height,\n fill = _this$props6.fill,\n stroke = _this$props6.stroke;\n return /*#__PURE__*/React.createElement(\"rect\", {\n stroke: stroke,\n fill: fill,\n x: x,\n y: y,\n width: width,\n height: height\n });\n }\n }, {\n key: \"renderPanorama\",\n value: function renderPanorama() {\n var _this$props7 = this.props,\n x = _this$props7.x,\n y = _this$props7.y,\n width = _this$props7.width,\n height = _this$props7.height,\n data = _this$props7.data,\n children = _this$props7.children,\n padding = _this$props7.padding;\n var chartElement = Children.only(children);\n if (!chartElement) {\n return null;\n }\n return /*#__PURE__*/React.cloneElement(chartElement, {\n x: x,\n y: y,\n width: width,\n height: height,\n margin: padding,\n compact: true,\n data: data\n });\n }\n }, {\n key: \"renderTravellerLayer\",\n value: function renderTravellerLayer(travellerX, id) {\n var _data$startIndex,\n _data$endIndex,\n _this3 = this;\n var _this$props8 = this.props,\n y = _this$props8.y,\n travellerWidth = _this$props8.travellerWidth,\n height = _this$props8.height,\n traveller = _this$props8.traveller,\n ariaLabel = _this$props8.ariaLabel,\n data = _this$props8.data,\n startIndex = _this$props8.startIndex,\n endIndex = _this$props8.endIndex;\n var x = Math.max(travellerX, this.props.x);\n var travellerProps = _objectSpread(_objectSpread({}, filterProps(this.props, false)), {}, {\n x: x,\n y: y,\n width: travellerWidth,\n height: height\n });\n var ariaLabelBrush = ariaLabel || \"Min value: \".concat((_data$startIndex = data[startIndex]) === null || _data$startIndex === void 0 ? void 0 : _data$startIndex.name, \", Max value: \").concat((_data$endIndex = data[endIndex]) === null || _data$endIndex === void 0 ? void 0 : _data$endIndex.name);\n return /*#__PURE__*/React.createElement(Layer, {\n tabIndex: 0,\n role: \"slider\",\n \"aria-label\": ariaLabelBrush,\n \"aria-valuenow\": travellerX,\n className: \"recharts-brush-traveller\",\n onMouseEnter: this.handleEnterSlideOrTraveller,\n onMouseLeave: this.handleLeaveSlideOrTraveller,\n onMouseDown: this.travellerDragStartHandlers[id],\n onTouchStart: this.travellerDragStartHandlers[id],\n onKeyDown: function onKeyDown(e) {\n if (!['ArrowLeft', 'ArrowRight'].includes(e.key)) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n _this3.handleTravellerMoveKeyboard(e.key === 'ArrowRight' ? 1 : -1, id);\n },\n onFocus: function onFocus() {\n _this3.setState({\n isTravellerFocused: true\n });\n },\n onBlur: function onBlur() {\n _this3.setState({\n isTravellerFocused: false\n });\n },\n style: {\n cursor: 'col-resize'\n }\n }, Brush.renderTraveller(traveller, travellerProps));\n }\n }, {\n key: \"renderSlide\",\n value: function renderSlide(startX, endX) {\n var _this$props9 = this.props,\n y = _this$props9.y,\n height = _this$props9.height,\n stroke = _this$props9.stroke,\n travellerWidth = _this$props9.travellerWidth;\n var x = Math.min(startX, endX) + travellerWidth;\n var width = Math.max(Math.abs(endX - startX) - travellerWidth, 0);\n return /*#__PURE__*/React.createElement(\"rect\", {\n className: \"recharts-brush-slide\",\n onMouseEnter: this.handleEnterSlideOrTraveller,\n onMouseLeave: this.handleLeaveSlideOrTraveller,\n onMouseDown: this.handleSlideDragStart,\n onTouchStart: this.handleSlideDragStart,\n style: {\n cursor: 'move'\n },\n stroke: \"none\",\n fill: stroke,\n fillOpacity: 0.2,\n x: x,\n y: y,\n width: width,\n height: height\n });\n }\n }, {\n key: \"renderText\",\n value: function renderText() {\n var _this$props10 = this.props,\n startIndex = _this$props10.startIndex,\n endIndex = _this$props10.endIndex,\n y = _this$props10.y,\n height = _this$props10.height,\n travellerWidth = _this$props10.travellerWidth,\n stroke = _this$props10.stroke;\n var _this$state4 = this.state,\n startX = _this$state4.startX,\n endX = _this$state4.endX;\n var offset = 5;\n var attrs = {\n pointerEvents: 'none',\n fill: stroke\n };\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-brush-texts\"\n }, /*#__PURE__*/React.createElement(Text, _extends({\n textAnchor: \"end\",\n verticalAnchor: \"middle\",\n x: Math.min(startX, endX) - offset,\n y: y + height / 2\n }, attrs), this.getTextOfTick(startIndex)), /*#__PURE__*/React.createElement(Text, _extends({\n textAnchor: \"start\",\n verticalAnchor: \"middle\",\n x: Math.max(startX, endX) + travellerWidth + offset,\n y: y + height / 2\n }, attrs), this.getTextOfTick(endIndex)));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props11 = this.props,\n data = _this$props11.data,\n className = _this$props11.className,\n children = _this$props11.children,\n x = _this$props11.x,\n y = _this$props11.y,\n width = _this$props11.width,\n height = _this$props11.height,\n alwaysShowText = _this$props11.alwaysShowText;\n var _this$state5 = this.state,\n startX = _this$state5.startX,\n endX = _this$state5.endX,\n isTextActive = _this$state5.isTextActive,\n isSlideMoving = _this$state5.isSlideMoving,\n isTravellerMoving = _this$state5.isTravellerMoving,\n isTravellerFocused = _this$state5.isTravellerFocused;\n if (!data || !data.length || !isNumber(x) || !isNumber(y) || !isNumber(width) || !isNumber(height) || width <= 0 || height <= 0) {\n return null;\n }\n var layerClass = clsx('recharts-brush', className);\n var isPanoramic = React.Children.count(children) === 1;\n var style = generatePrefixStyle('userSelect', 'none');\n return /*#__PURE__*/React.createElement(Layer, {\n className: layerClass,\n onMouseLeave: this.handleLeaveWrapper,\n onTouchMove: this.handleTouchMove,\n style: style\n }, this.renderBackground(), isPanoramic && this.renderPanorama(), this.renderSlide(startX, endX), this.renderTravellerLayer(startX, 'startX'), this.renderTravellerLayer(endX, 'endX'), (isTextActive || isSlideMoving || isTravellerMoving || isTravellerFocused || alwaysShowText) && this.renderText());\n }\n }], [{\n key: \"renderDefaultTraveller\",\n value: function renderDefaultTraveller(props) {\n var x = props.x,\n y = props.y,\n width = props.width,\n height = props.height,\n stroke = props.stroke;\n var lineY = Math.floor(y + height / 2) - 1;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"rect\", {\n x: x,\n y: y,\n width: width,\n height: height,\n fill: stroke,\n stroke: \"none\"\n }), /*#__PURE__*/React.createElement(\"line\", {\n x1: x + 1,\n y1: lineY,\n x2: x + width - 1,\n y2: lineY,\n fill: \"none\",\n stroke: \"#fff\"\n }), /*#__PURE__*/React.createElement(\"line\", {\n x1: x + 1,\n y1: lineY + 2,\n x2: x + width - 1,\n y2: lineY + 2,\n fill: \"none\",\n stroke: \"#fff\"\n }));\n }\n }, {\n key: \"renderTraveller\",\n value: function renderTraveller(option, props) {\n var rectangle;\n if ( /*#__PURE__*/React.isValidElement(option)) {\n rectangle = /*#__PURE__*/React.cloneElement(option, props);\n } else if (isFunction(option)) {\n rectangle = option(props);\n } else {\n rectangle = Brush.renderDefaultTraveller(props);\n }\n return rectangle;\n }\n }, {\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n var data = nextProps.data,\n width = nextProps.width,\n x = nextProps.x,\n travellerWidth = nextProps.travellerWidth,\n updateId = nextProps.updateId,\n startIndex = nextProps.startIndex,\n endIndex = nextProps.endIndex;\n if (data !== prevState.prevData || updateId !== prevState.prevUpdateId) {\n return _objectSpread({\n prevData: data,\n prevTravellerWidth: travellerWidth,\n prevUpdateId: updateId,\n prevX: x,\n prevWidth: width\n }, data && data.length ? createScale({\n data: data,\n width: width,\n x: x,\n travellerWidth: travellerWidth,\n startIndex: startIndex,\n endIndex: endIndex\n }) : {\n scale: null,\n scaleValues: null\n });\n }\n if (prevState.scale && (width !== prevState.prevWidth || x !== prevState.prevX || travellerWidth !== prevState.prevTravellerWidth)) {\n prevState.scale.range([x, x + width - travellerWidth]);\n var scaleValues = prevState.scale.domain().map(function (entry) {\n return prevState.scale(entry);\n });\n return {\n prevData: data,\n prevTravellerWidth: travellerWidth,\n prevUpdateId: updateId,\n prevX: x,\n prevWidth: width,\n startX: prevState.scale(nextProps.startIndex),\n endX: prevState.scale(nextProps.endIndex),\n scaleValues: scaleValues\n };\n }\n return null;\n }\n }, {\n key: \"getIndexInRange\",\n value: function getIndexInRange(valueRange, x) {\n var len = valueRange.length;\n var start = 0;\n var end = len - 1;\n while (end - start > 1) {\n var middle = Math.floor((start + end) / 2);\n if (valueRange[middle] > x) {\n end = middle;\n } else {\n start = middle;\n }\n }\n return x >= valueRange[end] ? end : start;\n }\n }]);\n return Brush;\n}(PureComponent);\n_defineProperty(Brush, \"displayName\", 'Brush');\n_defineProperty(Brush, \"defaultProps\", {\n height: 40,\n travellerWidth: 5,\n gap: 1,\n fill: '#fff',\n stroke: '#666',\n padding: {\n top: 1,\n right: 1,\n bottom: 1,\n left: 1\n },\n leaveTimeOut: 1000,\n alwaysShowText: false\n});","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nimport isNil from 'lodash/isNil';\nimport { isValidElement } from 'react';\nimport isFunction from 'lodash/isFunction';\nimport { getPercentValue } from './DataUtils';\nimport { parseScale, checkDomainOfScale, getTicksOfScale } from './ChartUtils';\nexport var RADIAN = Math.PI / 180;\nexport var degreeToRadian = function degreeToRadian(angle) {\n return angle * Math.PI / 180;\n};\nexport var radianToDegree = function radianToDegree(angleInRadian) {\n return angleInRadian * 180 / Math.PI;\n};\nexport var polarToCartesian = function polarToCartesian(cx, cy, radius, angle) {\n return {\n x: cx + Math.cos(-RADIAN * angle) * radius,\n y: cy + Math.sin(-RADIAN * angle) * radius\n };\n};\nexport var getMaxRadius = function getMaxRadius(width, height) {\n var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n return Math.min(Math.abs(width - (offset.left || 0) - (offset.right || 0)), Math.abs(height - (offset.top || 0) - (offset.bottom || 0))) / 2;\n};\n\n/**\n * Calculate the scale function, position, width, height of axes\n * @param {Object} props Latest props\n * @param {Object} axisMap The configuration of axes\n * @param {Object} offset The offset of main part in the svg element\n * @param {Object} axisType The type of axes, radius-axis or angle-axis\n * @param {String} chartName The name of chart\n * @return {Object} Configuration\n */\nexport var formatAxisMap = function formatAxisMap(props, axisMap, offset, axisType, chartName) {\n var width = props.width,\n height = props.height;\n var startAngle = props.startAngle,\n endAngle = props.endAngle;\n var cx = getPercentValue(props.cx, width, width / 2);\n var cy = getPercentValue(props.cy, height, height / 2);\n var maxRadius = getMaxRadius(width, height, offset);\n var innerRadius = getPercentValue(props.innerRadius, maxRadius, 0);\n var outerRadius = getPercentValue(props.outerRadius, maxRadius, maxRadius * 0.8);\n var ids = Object.keys(axisMap);\n return ids.reduce(function (result, id) {\n var axis = axisMap[id];\n var domain = axis.domain,\n reversed = axis.reversed;\n var range;\n if (isNil(axis.range)) {\n if (axisType === 'angleAxis') {\n range = [startAngle, endAngle];\n } else if (axisType === 'radiusAxis') {\n range = [innerRadius, outerRadius];\n }\n if (reversed) {\n range = [range[1], range[0]];\n }\n } else {\n range = axis.range;\n var _range = range;\n var _range2 = _slicedToArray(_range, 2);\n startAngle = _range2[0];\n endAngle = _range2[1];\n }\n var _parseScale = parseScale(axis, chartName),\n realScaleType = _parseScale.realScaleType,\n scale = _parseScale.scale;\n scale.domain(domain).range(range);\n checkDomainOfScale(scale);\n var ticks = getTicksOfScale(scale, _objectSpread(_objectSpread({}, axis), {}, {\n realScaleType: realScaleType\n }));\n var finalAxis = _objectSpread(_objectSpread(_objectSpread({}, axis), ticks), {}, {\n range: range,\n radius: outerRadius,\n realScaleType: realScaleType,\n scale: scale,\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n startAngle: startAngle,\n endAngle: endAngle\n });\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, id, finalAxis));\n }, {});\n};\nexport var distanceBetweenPoints = function distanceBetweenPoints(point, anotherPoint) {\n var x1 = point.x,\n y1 = point.y;\n var x2 = anotherPoint.x,\n y2 = anotherPoint.y;\n return Math.sqrt(Math.pow(x1 - x2, 2) + Math.pow(y1 - y2, 2));\n};\nexport var getAngleOfPoint = function getAngleOfPoint(_ref, _ref2) {\n var x = _ref.x,\n y = _ref.y;\n var cx = _ref2.cx,\n cy = _ref2.cy;\n var radius = distanceBetweenPoints({\n x: x,\n y: y\n }, {\n x: cx,\n y: cy\n });\n if (radius <= 0) {\n return {\n radius: radius\n };\n }\n var cos = (x - cx) / radius;\n var angleInRadian = Math.acos(cos);\n if (y > cy) {\n angleInRadian = 2 * Math.PI - angleInRadian;\n }\n return {\n radius: radius,\n angle: radianToDegree(angleInRadian),\n angleInRadian: angleInRadian\n };\n};\nexport var formatAngleOfSector = function formatAngleOfSector(_ref3) {\n var startAngle = _ref3.startAngle,\n endAngle = _ref3.endAngle;\n var startCnt = Math.floor(startAngle / 360);\n var endCnt = Math.floor(endAngle / 360);\n var min = Math.min(startCnt, endCnt);\n return {\n startAngle: startAngle - min * 360,\n endAngle: endAngle - min * 360\n };\n};\nvar reverseFormatAngleOfSetor = function reverseFormatAngleOfSetor(angle, _ref4) {\n var startAngle = _ref4.startAngle,\n endAngle = _ref4.endAngle;\n var startCnt = Math.floor(startAngle / 360);\n var endCnt = Math.floor(endAngle / 360);\n var min = Math.min(startCnt, endCnt);\n return angle + min * 360;\n};\nexport var inRangeOfSector = function inRangeOfSector(_ref5, sector) {\n var x = _ref5.x,\n y = _ref5.y;\n var _getAngleOfPoint = getAngleOfPoint({\n x: x,\n y: y\n }, sector),\n radius = _getAngleOfPoint.radius,\n angle = _getAngleOfPoint.angle;\n var innerRadius = sector.innerRadius,\n outerRadius = sector.outerRadius;\n if (radius < innerRadius || radius > outerRadius) {\n return false;\n }\n if (radius === 0) {\n return true;\n }\n var _formatAngleOfSector = formatAngleOfSector(sector),\n startAngle = _formatAngleOfSector.startAngle,\n endAngle = _formatAngleOfSector.endAngle;\n var formatAngle = angle;\n var inRange;\n if (startAngle <= endAngle) {\n while (formatAngle > endAngle) {\n formatAngle -= 360;\n }\n while (formatAngle < startAngle) {\n formatAngle += 360;\n }\n inRange = formatAngle >= startAngle && formatAngle <= endAngle;\n } else {\n while (formatAngle > startAngle) {\n formatAngle -= 360;\n }\n while (formatAngle < endAngle) {\n formatAngle += 360;\n }\n inRange = formatAngle >= endAngle && formatAngle <= startAngle;\n }\n if (inRange) {\n return _objectSpread(_objectSpread({}, sector), {}, {\n radius: radius,\n angle: reverseFormatAngleOfSetor(formatAngle, sector)\n });\n }\n return null;\n};\nexport var getTickClassName = function getTickClassName(tick) {\n return ! /*#__PURE__*/isValidElement(tick) && !isFunction(tick) && typeof tick !== 'boolean' ? tick.className : '';\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar _excluded = [\"offset\"];\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React, { cloneElement, isValidElement, createElement } from 'react';\nimport isNil from 'lodash/isNil';\nimport isFunction from 'lodash/isFunction';\nimport isObject from 'lodash/isObject';\nimport clsx from 'clsx';\nimport { Text } from './Text';\nimport { findAllByType, filterProps } from '../util/ReactUtils';\nimport { isNumOrStr, isNumber, isPercent, getPercentValue, uniqueId, mathSign } from '../util/DataUtils';\nimport { polarToCartesian } from '../util/PolarUtils';\nvar getLabel = function getLabel(props) {\n var value = props.value,\n formatter = props.formatter;\n var label = isNil(props.children) ? value : props.children;\n if (isFunction(formatter)) {\n return formatter(label);\n }\n return label;\n};\nvar getDeltaAngle = function getDeltaAngle(startAngle, endAngle) {\n var sign = mathSign(endAngle - startAngle);\n var deltaAngle = Math.min(Math.abs(endAngle - startAngle), 360);\n return sign * deltaAngle;\n};\nvar renderRadialLabel = function renderRadialLabel(labelProps, label, attrs) {\n var position = labelProps.position,\n viewBox = labelProps.viewBox,\n offset = labelProps.offset,\n className = labelProps.className;\n var _ref = viewBox,\n cx = _ref.cx,\n cy = _ref.cy,\n innerRadius = _ref.innerRadius,\n outerRadius = _ref.outerRadius,\n startAngle = _ref.startAngle,\n endAngle = _ref.endAngle,\n clockWise = _ref.clockWise;\n var radius = (innerRadius + outerRadius) / 2;\n var deltaAngle = getDeltaAngle(startAngle, endAngle);\n var sign = deltaAngle >= 0 ? 1 : -1;\n var labelAngle, direction;\n if (position === 'insideStart') {\n labelAngle = startAngle + sign * offset;\n direction = clockWise;\n } else if (position === 'insideEnd') {\n labelAngle = endAngle - sign * offset;\n direction = !clockWise;\n } else if (position === 'end') {\n labelAngle = endAngle + sign * offset;\n direction = clockWise;\n }\n direction = deltaAngle <= 0 ? direction : !direction;\n var startPoint = polarToCartesian(cx, cy, radius, labelAngle);\n var endPoint = polarToCartesian(cx, cy, radius, labelAngle + (direction ? 1 : -1) * 359);\n var path = \"M\".concat(startPoint.x, \",\").concat(startPoint.y, \"\\n A\").concat(radius, \",\").concat(radius, \",0,1,\").concat(direction ? 0 : 1, \",\\n \").concat(endPoint.x, \",\").concat(endPoint.y);\n var id = isNil(labelProps.id) ? uniqueId('recharts-radial-line-') : labelProps.id;\n return /*#__PURE__*/React.createElement(\"text\", _extends({}, attrs, {\n dominantBaseline: \"central\",\n className: clsx('recharts-radial-bar-label', className)\n }), /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"path\", {\n id: id,\n d: path\n })), /*#__PURE__*/React.createElement(\"textPath\", {\n xlinkHref: \"#\".concat(id)\n }, label));\n};\nvar getAttrsOfPolarLabel = function getAttrsOfPolarLabel(props) {\n var viewBox = props.viewBox,\n offset = props.offset,\n position = props.position;\n var _ref2 = viewBox,\n cx = _ref2.cx,\n cy = _ref2.cy,\n innerRadius = _ref2.innerRadius,\n outerRadius = _ref2.outerRadius,\n startAngle = _ref2.startAngle,\n endAngle = _ref2.endAngle;\n var midAngle = (startAngle + endAngle) / 2;\n if (position === 'outside') {\n var _polarToCartesian = polarToCartesian(cx, cy, outerRadius + offset, midAngle),\n _x = _polarToCartesian.x,\n _y = _polarToCartesian.y;\n return {\n x: _x,\n y: _y,\n textAnchor: _x >= cx ? 'start' : 'end',\n verticalAnchor: 'middle'\n };\n }\n if (position === 'center') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n };\n }\n if (position === 'centerTop') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'start'\n };\n }\n if (position === 'centerBottom') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'end'\n };\n }\n var r = (innerRadius + outerRadius) / 2;\n var _polarToCartesian2 = polarToCartesian(cx, cy, r, midAngle),\n x = _polarToCartesian2.x,\n y = _polarToCartesian2.y;\n return {\n x: x,\n y: y,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n };\n};\nvar getAttrsOfCartesianLabel = function getAttrsOfCartesianLabel(props) {\n var viewBox = props.viewBox,\n parentViewBox = props.parentViewBox,\n offset = props.offset,\n position = props.position;\n var _ref3 = viewBox,\n x = _ref3.x,\n y = _ref3.y,\n width = _ref3.width,\n height = _ref3.height;\n\n // Define vertical offsets and position inverts based on the value being positive or negative\n var verticalSign = height >= 0 ? 1 : -1;\n var verticalOffset = verticalSign * offset;\n var verticalEnd = verticalSign > 0 ? 'end' : 'start';\n var verticalStart = verticalSign > 0 ? 'start' : 'end';\n\n // Define horizontal offsets and position inverts based on the value being positive or negative\n var horizontalSign = width >= 0 ? 1 : -1;\n var horizontalOffset = horizontalSign * offset;\n var horizontalEnd = horizontalSign > 0 ? 'end' : 'start';\n var horizontalStart = horizontalSign > 0 ? 'start' : 'end';\n if (position === 'top') {\n var attrs = {\n x: x + width / 2,\n y: y - verticalSign * offset,\n textAnchor: 'middle',\n verticalAnchor: verticalEnd\n };\n return _objectSpread(_objectSpread({}, attrs), parentViewBox ? {\n height: Math.max(y - parentViewBox.y, 0),\n width: width\n } : {});\n }\n if (position === 'bottom') {\n var _attrs = {\n x: x + width / 2,\n y: y + height + verticalOffset,\n textAnchor: 'middle',\n verticalAnchor: verticalStart\n };\n return _objectSpread(_objectSpread({}, _attrs), parentViewBox ? {\n height: Math.max(parentViewBox.y + parentViewBox.height - (y + height), 0),\n width: width\n } : {});\n }\n if (position === 'left') {\n var _attrs2 = {\n x: x - horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalEnd,\n verticalAnchor: 'middle'\n };\n return _objectSpread(_objectSpread({}, _attrs2), parentViewBox ? {\n width: Math.max(_attrs2.x - parentViewBox.x, 0),\n height: height\n } : {});\n }\n if (position === 'right') {\n var _attrs3 = {\n x: x + width + horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalStart,\n verticalAnchor: 'middle'\n };\n return _objectSpread(_objectSpread({}, _attrs3), parentViewBox ? {\n width: Math.max(parentViewBox.x + parentViewBox.width - _attrs3.x, 0),\n height: height\n } : {});\n }\n var sizeAttrs = parentViewBox ? {\n width: width,\n height: height\n } : {};\n if (position === 'insideLeft') {\n return _objectSpread({\n x: x + horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalStart,\n verticalAnchor: 'middle'\n }, sizeAttrs);\n }\n if (position === 'insideRight') {\n return _objectSpread({\n x: x + width - horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalEnd,\n verticalAnchor: 'middle'\n }, sizeAttrs);\n }\n if (position === 'insideTop') {\n return _objectSpread({\n x: x + width / 2,\n y: y + verticalOffset,\n textAnchor: 'middle',\n verticalAnchor: verticalStart\n }, sizeAttrs);\n }\n if (position === 'insideBottom') {\n return _objectSpread({\n x: x + width / 2,\n y: y + height - verticalOffset,\n textAnchor: 'middle',\n verticalAnchor: verticalEnd\n }, sizeAttrs);\n }\n if (position === 'insideTopLeft') {\n return _objectSpread({\n x: x + horizontalOffset,\n y: y + verticalOffset,\n textAnchor: horizontalStart,\n verticalAnchor: verticalStart\n }, sizeAttrs);\n }\n if (position === 'insideTopRight') {\n return _objectSpread({\n x: x + width - horizontalOffset,\n y: y + verticalOffset,\n textAnchor: horizontalEnd,\n verticalAnchor: verticalStart\n }, sizeAttrs);\n }\n if (position === 'insideBottomLeft') {\n return _objectSpread({\n x: x + horizontalOffset,\n y: y + height - verticalOffset,\n textAnchor: horizontalStart,\n verticalAnchor: verticalEnd\n }, sizeAttrs);\n }\n if (position === 'insideBottomRight') {\n return _objectSpread({\n x: x + width - horizontalOffset,\n y: y + height - verticalOffset,\n textAnchor: horizontalEnd,\n verticalAnchor: verticalEnd\n }, sizeAttrs);\n }\n if (isObject(position) && (isNumber(position.x) || isPercent(position.x)) && (isNumber(position.y) || isPercent(position.y))) {\n return _objectSpread({\n x: x + getPercentValue(position.x, width),\n y: y + getPercentValue(position.y, height),\n textAnchor: 'end',\n verticalAnchor: 'end'\n }, sizeAttrs);\n }\n return _objectSpread({\n x: x + width / 2,\n y: y + height / 2,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n }, sizeAttrs);\n};\nvar isPolar = function isPolar(viewBox) {\n return 'cx' in viewBox && isNumber(viewBox.cx);\n};\nexport function Label(_ref4) {\n var _ref4$offset = _ref4.offset,\n offset = _ref4$offset === void 0 ? 5 : _ref4$offset,\n restProps = _objectWithoutProperties(_ref4, _excluded);\n var props = _objectSpread({\n offset: offset\n }, restProps);\n var viewBox = props.viewBox,\n position = props.position,\n value = props.value,\n children = props.children,\n content = props.content,\n _props$className = props.className,\n className = _props$className === void 0 ? '' : _props$className,\n textBreakAll = props.textBreakAll;\n if (!viewBox || isNil(value) && isNil(children) && ! /*#__PURE__*/isValidElement(content) && !isFunction(content)) {\n return null;\n }\n if ( /*#__PURE__*/isValidElement(content)) {\n return /*#__PURE__*/cloneElement(content, props);\n }\n var label;\n if (isFunction(content)) {\n label = /*#__PURE__*/createElement(content, props);\n if ( /*#__PURE__*/isValidElement(label)) {\n return label;\n }\n } else {\n label = getLabel(props);\n }\n var isPolarLabel = isPolar(viewBox);\n var attrs = filterProps(props, true);\n if (isPolarLabel && (position === 'insideStart' || position === 'insideEnd' || position === 'end')) {\n return renderRadialLabel(props, label, attrs);\n }\n var positionAttrs = isPolarLabel ? getAttrsOfPolarLabel(props) : getAttrsOfCartesianLabel(props);\n return /*#__PURE__*/React.createElement(Text, _extends({\n className: clsx('recharts-label', className)\n }, attrs, positionAttrs, {\n breakAll: textBreakAll\n }), label);\n}\nLabel.displayName = 'Label';\nvar parseViewBox = function parseViewBox(props) {\n var cx = props.cx,\n cy = props.cy,\n angle = props.angle,\n startAngle = props.startAngle,\n endAngle = props.endAngle,\n r = props.r,\n radius = props.radius,\n innerRadius = props.innerRadius,\n outerRadius = props.outerRadius,\n x = props.x,\n y = props.y,\n top = props.top,\n left = props.left,\n width = props.width,\n height = props.height,\n clockWise = props.clockWise,\n labelViewBox = props.labelViewBox;\n if (labelViewBox) {\n return labelViewBox;\n }\n if (isNumber(width) && isNumber(height)) {\n if (isNumber(x) && isNumber(y)) {\n return {\n x: x,\n y: y,\n width: width,\n height: height\n };\n }\n if (isNumber(top) && isNumber(left)) {\n return {\n x: top,\n y: left,\n width: width,\n height: height\n };\n }\n }\n if (isNumber(x) && isNumber(y)) {\n return {\n x: x,\n y: y,\n width: 0,\n height: 0\n };\n }\n if (isNumber(cx) && isNumber(cy)) {\n return {\n cx: cx,\n cy: cy,\n startAngle: startAngle || angle || 0,\n endAngle: endAngle || angle || 0,\n innerRadius: innerRadius || 0,\n outerRadius: outerRadius || radius || r || 0,\n clockWise: clockWise\n };\n }\n if (props.viewBox) {\n return props.viewBox;\n }\n return {};\n};\nvar parseLabel = function parseLabel(label, viewBox) {\n if (!label) {\n return null;\n }\n if (label === true) {\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n viewBox: viewBox\n });\n }\n if (isNumOrStr(label)) {\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n viewBox: viewBox,\n value: label\n });\n }\n if ( /*#__PURE__*/isValidElement(label)) {\n if (label.type === Label) {\n return /*#__PURE__*/cloneElement(label, {\n key: 'label-implicit',\n viewBox: viewBox\n });\n }\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n content: label,\n viewBox: viewBox\n });\n }\n if (isFunction(label)) {\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n content: label,\n viewBox: viewBox\n });\n }\n if (isObject(label)) {\n return /*#__PURE__*/React.createElement(Label, _extends({\n viewBox: viewBox\n }, label, {\n key: \"label-implicit\"\n }));\n }\n return null;\n};\nvar renderCallByParent = function renderCallByParent(parentProps, viewBox) {\n var checkPropsLabel = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n if (!parentProps || !parentProps.children && checkPropsLabel && !parentProps.label) {\n return null;\n }\n var children = parentProps.children;\n var parentViewBox = parseViewBox(parentProps);\n var explicitChildren = findAllByType(children, Label).map(function (child, index) {\n return /*#__PURE__*/cloneElement(child, {\n viewBox: viewBox || parentViewBox,\n // eslint-disable-next-line react/no-array-index-key\n key: \"label-\".concat(index)\n });\n });\n if (!checkPropsLabel) {\n return explicitChildren;\n }\n var implicitLabel = parseLabel(parentProps.label, viewBox || parentViewBox);\n return [implicitLabel].concat(_toConsumableArray(explicitChildren));\n};\nLabel.parseViewBox = parseViewBox;\nLabel.renderCallByParent = renderCallByParent;","export var ifOverflowMatches = function ifOverflowMatches(props, value) {\n var alwaysShow = props.alwaysShow;\n var ifOverflow = props.ifOverflow;\n if (alwaysShow) {\n ifOverflow = 'extendDomain';\n }\n return ifOverflow === value;\n};","/**\n * @fileOverview Cross\n */\n\nexport var Cell = function Cell(_props) {\n return null;\n};\nCell.displayName = 'Cell';","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar _excluded = [\"valueAccessor\"],\n _excluded2 = [\"data\", \"dataKey\", \"clockWise\", \"id\", \"textBreakAll\"];\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React, { cloneElement } from 'react';\nimport isNil from 'lodash/isNil';\nimport isObject from 'lodash/isObject';\nimport isFunction from 'lodash/isFunction';\nimport last from 'lodash/last';\nimport { Label } from './Label';\nimport { Layer } from '../container/Layer';\nimport { findAllByType, filterProps } from '../util/ReactUtils';\nimport { getValueByDataKey } from '../util/ChartUtils';\nvar defaultAccessor = function defaultAccessor(entry) {\n return Array.isArray(entry.value) ? last(entry.value) : entry.value;\n};\nexport function LabelList(_ref) {\n var _ref$valueAccessor = _ref.valueAccessor,\n valueAccessor = _ref$valueAccessor === void 0 ? defaultAccessor : _ref$valueAccessor,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var data = restProps.data,\n dataKey = restProps.dataKey,\n clockWise = restProps.clockWise,\n id = restProps.id,\n textBreakAll = restProps.textBreakAll,\n others = _objectWithoutProperties(restProps, _excluded2);\n if (!data || !data.length) {\n return null;\n }\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-label-list\"\n }, data.map(function (entry, index) {\n var value = isNil(dataKey) ? valueAccessor(entry, index) : getValueByDataKey(entry && entry.payload, dataKey);\n var idProps = isNil(id) ? {} : {\n id: \"\".concat(id, \"-\").concat(index)\n };\n return /*#__PURE__*/React.createElement(Label, _extends({}, filterProps(entry, true), others, idProps, {\n parentViewBox: entry.parentViewBox,\n value: value,\n textBreakAll: textBreakAll,\n viewBox: Label.parseViewBox(isNil(clockWise) ? entry : _objectSpread(_objectSpread({}, entry), {}, {\n clockWise: clockWise\n })),\n key: \"label-\".concat(index) // eslint-disable-line react/no-array-index-key\n ,\n index: index\n }));\n }));\n}\nLabelList.displayName = 'LabelList';\nfunction parseLabelList(label, data) {\n if (!label) {\n return null;\n }\n if (label === true) {\n return /*#__PURE__*/React.createElement(LabelList, {\n key: \"labelList-implicit\",\n data: data\n });\n }\n if ( /*#__PURE__*/React.isValidElement(label) || isFunction(label)) {\n return /*#__PURE__*/React.createElement(LabelList, {\n key: \"labelList-implicit\",\n data: data,\n content: label\n });\n }\n if (isObject(label)) {\n return /*#__PURE__*/React.createElement(LabelList, _extends({\n data: data\n }, label, {\n key: \"labelList-implicit\"\n }));\n }\n return null;\n}\nfunction renderCallByParent(parentProps, data) {\n var checkPropsLabel = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n if (!parentProps || !parentProps.children && checkPropsLabel && !parentProps.label) {\n return null;\n }\n var children = parentProps.children;\n var explicitChildren = findAllByType(children, LabelList).map(function (child, index) {\n return /*#__PURE__*/cloneElement(child, {\n data: data,\n // eslint-disable-next-line react/no-array-index-key\n key: \"labelList-\".concat(index)\n });\n });\n if (!checkPropsLabel) {\n return explicitChildren;\n }\n var implicitLabelList = parseLabelList(parentProps.label, data);\n return [implicitLabelList].concat(_toConsumableArray(explicitChildren));\n}\nLabelList.renderCallByParent = renderCallByParent;","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Rectangle\n */\nimport React, { useEffect, useRef, useState } from 'react';\nimport clsx from 'clsx';\nimport Animate from 'react-smooth';\nimport { filterProps } from '../util/ReactUtils';\nvar getTrapezoidPath = function getTrapezoidPath(x, y, upperWidth, lowerWidth, height) {\n var widthGap = upperWidth - lowerWidth;\n var path;\n path = \"M \".concat(x, \",\").concat(y);\n path += \"L \".concat(x + upperWidth, \",\").concat(y);\n path += \"L \".concat(x + upperWidth - widthGap / 2, \",\").concat(y + height);\n path += \"L \".concat(x + upperWidth - widthGap / 2 - lowerWidth, \",\").concat(y + height);\n path += \"L \".concat(x, \",\").concat(y, \" Z\");\n return path;\n};\nvar defaultProps = {\n x: 0,\n y: 0,\n upperWidth: 0,\n lowerWidth: 0,\n height: 0,\n isUpdateAnimationActive: false,\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'ease'\n};\nexport var Trapezoid = function Trapezoid(props) {\n var trapezoidProps = _objectSpread(_objectSpread({}, defaultProps), props);\n var pathRef = useRef();\n var _useState = useState(-1),\n _useState2 = _slicedToArray(_useState, 2),\n totalLength = _useState2[0],\n setTotalLength = _useState2[1];\n useEffect(function () {\n if (pathRef.current && pathRef.current.getTotalLength) {\n try {\n var pathTotalLength = pathRef.current.getTotalLength();\n if (pathTotalLength) {\n setTotalLength(pathTotalLength);\n }\n } catch (err) {\n // calculate total length error\n }\n }\n }, []);\n var x = trapezoidProps.x,\n y = trapezoidProps.y,\n upperWidth = trapezoidProps.upperWidth,\n lowerWidth = trapezoidProps.lowerWidth,\n height = trapezoidProps.height,\n className = trapezoidProps.className;\n var animationEasing = trapezoidProps.animationEasing,\n animationDuration = trapezoidProps.animationDuration,\n animationBegin = trapezoidProps.animationBegin,\n isUpdateAnimationActive = trapezoidProps.isUpdateAnimationActive;\n if (x !== +x || y !== +y || upperWidth !== +upperWidth || lowerWidth !== +lowerWidth || height !== +height || upperWidth === 0 && lowerWidth === 0 || height === 0) {\n return null;\n }\n var layerClass = clsx('recharts-trapezoid', className);\n if (!isUpdateAnimationActive) {\n return /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(trapezoidProps, true), {\n className: layerClass,\n d: getTrapezoidPath(x, y, upperWidth, lowerWidth, height)\n })));\n }\n return /*#__PURE__*/React.createElement(Animate, {\n canBegin: totalLength > 0,\n from: {\n upperWidth: 0,\n lowerWidth: 0,\n height: height,\n x: x,\n y: y\n },\n to: {\n upperWidth: upperWidth,\n lowerWidth: lowerWidth,\n height: height,\n x: x,\n y: y\n },\n duration: animationDuration,\n animationEasing: animationEasing,\n isActive: isUpdateAnimationActive\n }, function (_ref) {\n var currUpperWidth = _ref.upperWidth,\n currLowerWidth = _ref.lowerWidth,\n currHeight = _ref.height,\n currX = _ref.x,\n currY = _ref.y;\n return /*#__PURE__*/React.createElement(Animate, {\n canBegin: totalLength > 0,\n from: \"0px \".concat(totalLength === -1 ? 1 : totalLength, \"px\"),\n to: \"\".concat(totalLength, \"px 0px\"),\n attributeName: \"strokeDasharray\",\n begin: animationBegin,\n duration: animationDuration,\n easing: animationEasing\n }, /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(trapezoidProps, true), {\n className: layerClass,\n d: getTrapezoidPath(currX, currY, currUpperWidth, currLowerWidth, currHeight),\n ref: pathRef\n })));\n });\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Sector\n */\nimport React from 'react';\nimport clsx from 'clsx';\nimport { filterProps } from '../util/ReactUtils';\nimport { polarToCartesian, RADIAN } from '../util/PolarUtils';\nimport { getPercentValue, mathSign } from '../util/DataUtils';\nvar getDeltaAngle = function getDeltaAngle(startAngle, endAngle) {\n var sign = mathSign(endAngle - startAngle);\n var deltaAngle = Math.min(Math.abs(endAngle - startAngle), 359.999);\n return sign * deltaAngle;\n};\nvar getTangentCircle = function getTangentCircle(_ref) {\n var cx = _ref.cx,\n cy = _ref.cy,\n radius = _ref.radius,\n angle = _ref.angle,\n sign = _ref.sign,\n isExternal = _ref.isExternal,\n cornerRadius = _ref.cornerRadius,\n cornerIsExternal = _ref.cornerIsExternal;\n var centerRadius = cornerRadius * (isExternal ? 1 : -1) + radius;\n var theta = Math.asin(cornerRadius / centerRadius) / RADIAN;\n var centerAngle = cornerIsExternal ? angle : angle + sign * theta;\n var center = polarToCartesian(cx, cy, centerRadius, centerAngle);\n // The coordinate of point which is tangent to the circle\n var circleTangency = polarToCartesian(cx, cy, radius, centerAngle);\n // The coordinate of point which is tangent to the radius line\n var lineTangencyAngle = cornerIsExternal ? angle - sign * theta : angle;\n var lineTangency = polarToCartesian(cx, cy, centerRadius * Math.cos(theta * RADIAN), lineTangencyAngle);\n return {\n center: center,\n circleTangency: circleTangency,\n lineTangency: lineTangency,\n theta: theta\n };\n};\nvar getSectorPath = function getSectorPath(_ref2) {\n var cx = _ref2.cx,\n cy = _ref2.cy,\n innerRadius = _ref2.innerRadius,\n outerRadius = _ref2.outerRadius,\n startAngle = _ref2.startAngle,\n endAngle = _ref2.endAngle;\n var angle = getDeltaAngle(startAngle, endAngle);\n\n // When the angle of sector equals to 360, star point and end point coincide\n var tempEndAngle = startAngle + angle;\n var outerStartPoint = polarToCartesian(cx, cy, outerRadius, startAngle);\n var outerEndPoint = polarToCartesian(cx, cy, outerRadius, tempEndAngle);\n var path = \"M \".concat(outerStartPoint.x, \",\").concat(outerStartPoint.y, \"\\n A \").concat(outerRadius, \",\").concat(outerRadius, \",0,\\n \").concat(+(Math.abs(angle) > 180), \",\").concat(+(startAngle > tempEndAngle), \",\\n \").concat(outerEndPoint.x, \",\").concat(outerEndPoint.y, \"\\n \");\n if (innerRadius > 0) {\n var innerStartPoint = polarToCartesian(cx, cy, innerRadius, startAngle);\n var innerEndPoint = polarToCartesian(cx, cy, innerRadius, tempEndAngle);\n path += \"L \".concat(innerEndPoint.x, \",\").concat(innerEndPoint.y, \"\\n A \").concat(innerRadius, \",\").concat(innerRadius, \",0,\\n \").concat(+(Math.abs(angle) > 180), \",\").concat(+(startAngle <= tempEndAngle), \",\\n \").concat(innerStartPoint.x, \",\").concat(innerStartPoint.y, \" Z\");\n } else {\n path += \"L \".concat(cx, \",\").concat(cy, \" Z\");\n }\n return path;\n};\nvar getSectorWithCorner = function getSectorWithCorner(_ref3) {\n var cx = _ref3.cx,\n cy = _ref3.cy,\n innerRadius = _ref3.innerRadius,\n outerRadius = _ref3.outerRadius,\n cornerRadius = _ref3.cornerRadius,\n forceCornerRadius = _ref3.forceCornerRadius,\n cornerIsExternal = _ref3.cornerIsExternal,\n startAngle = _ref3.startAngle,\n endAngle = _ref3.endAngle;\n var sign = mathSign(endAngle - startAngle);\n var _getTangentCircle = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: outerRadius,\n angle: startAngle,\n sign: sign,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n soct = _getTangentCircle.circleTangency,\n solt = _getTangentCircle.lineTangency,\n sot = _getTangentCircle.theta;\n var _getTangentCircle2 = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: outerRadius,\n angle: endAngle,\n sign: -sign,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n eoct = _getTangentCircle2.circleTangency,\n eolt = _getTangentCircle2.lineTangency,\n eot = _getTangentCircle2.theta;\n var outerArcAngle = cornerIsExternal ? Math.abs(startAngle - endAngle) : Math.abs(startAngle - endAngle) - sot - eot;\n if (outerArcAngle < 0) {\n if (forceCornerRadius) {\n return \"M \".concat(solt.x, \",\").concat(solt.y, \"\\n a\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,1,\").concat(cornerRadius * 2, \",0\\n a\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,1,\").concat(-cornerRadius * 2, \",0\\n \");\n }\n return getSectorPath({\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n startAngle: startAngle,\n endAngle: endAngle\n });\n }\n var path = \"M \".concat(solt.x, \",\").concat(solt.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(soct.x, \",\").concat(soct.y, \"\\n A\").concat(outerRadius, \",\").concat(outerRadius, \",0,\").concat(+(outerArcAngle > 180), \",\").concat(+(sign < 0), \",\").concat(eoct.x, \",\").concat(eoct.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(eolt.x, \",\").concat(eolt.y, \"\\n \");\n if (innerRadius > 0) {\n var _getTangentCircle3 = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: innerRadius,\n angle: startAngle,\n sign: sign,\n isExternal: true,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n sict = _getTangentCircle3.circleTangency,\n silt = _getTangentCircle3.lineTangency,\n sit = _getTangentCircle3.theta;\n var _getTangentCircle4 = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: innerRadius,\n angle: endAngle,\n sign: -sign,\n isExternal: true,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n eict = _getTangentCircle4.circleTangency,\n eilt = _getTangentCircle4.lineTangency,\n eit = _getTangentCircle4.theta;\n var innerArcAngle = cornerIsExternal ? Math.abs(startAngle - endAngle) : Math.abs(startAngle - endAngle) - sit - eit;\n if (innerArcAngle < 0 && cornerRadius === 0) {\n return \"\".concat(path, \"L\").concat(cx, \",\").concat(cy, \"Z\");\n }\n path += \"L\".concat(eilt.x, \",\").concat(eilt.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(eict.x, \",\").concat(eict.y, \"\\n A\").concat(innerRadius, \",\").concat(innerRadius, \",0,\").concat(+(innerArcAngle > 180), \",\").concat(+(sign > 0), \",\").concat(sict.x, \",\").concat(sict.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(silt.x, \",\").concat(silt.y, \"Z\");\n } else {\n path += \"L\".concat(cx, \",\").concat(cy, \"Z\");\n }\n return path;\n};\nvar defaultProps = {\n cx: 0,\n cy: 0,\n innerRadius: 0,\n outerRadius: 0,\n startAngle: 0,\n endAngle: 0,\n cornerRadius: 0,\n forceCornerRadius: false,\n cornerIsExternal: false\n};\nexport var Sector = function Sector(sectorProps) {\n var props = _objectSpread(_objectSpread({}, defaultProps), sectorProps);\n var cx = props.cx,\n cy = props.cy,\n innerRadius = props.innerRadius,\n outerRadius = props.outerRadius,\n cornerRadius = props.cornerRadius,\n forceCornerRadius = props.forceCornerRadius,\n cornerIsExternal = props.cornerIsExternal,\n startAngle = props.startAngle,\n endAngle = props.endAngle,\n className = props.className;\n if (outerRadius < innerRadius || startAngle === endAngle) {\n return null;\n }\n var layerClass = clsx('recharts-sector', className);\n var deltaRadius = outerRadius - innerRadius;\n var cr = getPercentValue(cornerRadius, deltaRadius, 0, true);\n var path;\n if (cr > 0 && Math.abs(startAngle - endAngle) < 360) {\n path = getSectorWithCorner({\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n cornerRadius: Math.min(cr, deltaRadius / 2),\n forceCornerRadius: forceCornerRadius,\n cornerIsExternal: cornerIsExternal,\n startAngle: startAngle,\n endAngle: endAngle\n });\n } else {\n path = getSectorPath({\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n startAngle: startAngle,\n endAngle: endAngle\n });\n }\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(props, true), {\n className: layerClass,\n d: path,\n role: \"img\"\n }));\n};","var _excluded = [\"option\", \"shapeType\", \"propTransformer\", \"activeClassName\", \"isActive\"];\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport React, { isValidElement, cloneElement } from 'react';\nimport isFunction from 'lodash/isFunction';\nimport isPlainObject from 'lodash/isPlainObject';\nimport isBoolean from 'lodash/isBoolean';\nimport isEqual from 'lodash/isEqual';\nimport { Rectangle } from '../shape/Rectangle';\nimport { Trapezoid } from '../shape/Trapezoid';\nimport { Sector } from '../shape/Sector';\nimport { Layer } from '../container/Layer';\nimport { Symbols } from '../shape/Symbols';\n\n/**\n * This is an abstraction for rendering a user defined prop for a customized shape in several forms.\n *\n * is the root and will handle taking in:\n * - an object of svg properties\n * - a boolean\n * - a render prop(inline function that returns jsx)\n * - a react element\n *\n * is a subcomponent of and used to match a component\n * to the value of props.shapeType that is passed to the root.\n *\n */\n\nfunction defaultPropTransformer(option, props) {\n return _objectSpread(_objectSpread({}, props), option);\n}\nfunction isSymbolsProps(shapeType, _elementProps) {\n return shapeType === 'symbols';\n}\nfunction ShapeSelector(_ref) {\n var shapeType = _ref.shapeType,\n elementProps = _ref.elementProps;\n switch (shapeType) {\n case 'rectangle':\n return /*#__PURE__*/React.createElement(Rectangle, elementProps);\n case 'trapezoid':\n return /*#__PURE__*/React.createElement(Trapezoid, elementProps);\n case 'sector':\n return /*#__PURE__*/React.createElement(Sector, elementProps);\n case 'symbols':\n if (isSymbolsProps(shapeType, elementProps)) {\n return /*#__PURE__*/React.createElement(Symbols, elementProps);\n }\n break;\n default:\n return null;\n }\n}\nexport function getPropsFromShapeOption(option) {\n if ( /*#__PURE__*/isValidElement(option)) {\n return option.props;\n }\n return option;\n}\nexport function Shape(_ref2) {\n var option = _ref2.option,\n shapeType = _ref2.shapeType,\n _ref2$propTransformer = _ref2.propTransformer,\n propTransformer = _ref2$propTransformer === void 0 ? defaultPropTransformer : _ref2$propTransformer,\n _ref2$activeClassName = _ref2.activeClassName,\n activeClassName = _ref2$activeClassName === void 0 ? 'recharts-active-shape' : _ref2$activeClassName,\n isActive = _ref2.isActive,\n props = _objectWithoutProperties(_ref2, _excluded);\n var shape;\n if ( /*#__PURE__*/isValidElement(option)) {\n shape = /*#__PURE__*/cloneElement(option, _objectSpread(_objectSpread({}, props), getPropsFromShapeOption(option)));\n } else if (isFunction(option)) {\n shape = option(props);\n } else if (isPlainObject(option) && !isBoolean(option)) {\n var nextProps = propTransformer(option, props);\n shape = /*#__PURE__*/React.createElement(ShapeSelector, {\n shapeType: shapeType,\n elementProps: nextProps\n });\n } else {\n var elementProps = props;\n shape = /*#__PURE__*/React.createElement(ShapeSelector, {\n shapeType: shapeType,\n elementProps: elementProps\n });\n }\n if (isActive) {\n return /*#__PURE__*/React.createElement(Layer, {\n className: activeClassName\n }, shape);\n }\n return shape;\n}\n\n/**\n * This is an abstraction to handle identifying the active index from a tooltip mouse interaction\n */\n\nexport function isFunnel(graphicalItem, _item) {\n return _item != null && 'trapezoids' in graphicalItem.props;\n}\nexport function isPie(graphicalItem, _item) {\n return _item != null && 'sectors' in graphicalItem.props;\n}\nexport function isScatter(graphicalItem, _item) {\n return _item != null && 'points' in graphicalItem.props;\n}\nexport function compareFunnel(shapeData, activeTooltipItem) {\n var _activeTooltipItem$la, _activeTooltipItem$la2;\n var xMatches = shapeData.x === (activeTooltipItem === null || activeTooltipItem === void 0 || (_activeTooltipItem$la = activeTooltipItem.labelViewBox) === null || _activeTooltipItem$la === void 0 ? void 0 : _activeTooltipItem$la.x) || shapeData.x === activeTooltipItem.x;\n var yMatches = shapeData.y === (activeTooltipItem === null || activeTooltipItem === void 0 || (_activeTooltipItem$la2 = activeTooltipItem.labelViewBox) === null || _activeTooltipItem$la2 === void 0 ? void 0 : _activeTooltipItem$la2.y) || shapeData.y === activeTooltipItem.y;\n return xMatches && yMatches;\n}\nexport function comparePie(shapeData, activeTooltipItem) {\n var startAngleMatches = shapeData.endAngle === activeTooltipItem.endAngle;\n var endAngleMatches = shapeData.startAngle === activeTooltipItem.startAngle;\n return startAngleMatches && endAngleMatches;\n}\nexport function compareScatter(shapeData, activeTooltipItem) {\n var xMatches = shapeData.x === activeTooltipItem.x;\n var yMatches = shapeData.y === activeTooltipItem.y;\n var zMatches = shapeData.z === activeTooltipItem.z;\n return xMatches && yMatches && zMatches;\n}\nfunction getComparisonFn(graphicalItem, activeItem) {\n var comparison;\n if (isFunnel(graphicalItem, activeItem)) {\n comparison = compareFunnel;\n } else if (isPie(graphicalItem, activeItem)) {\n comparison = comparePie;\n } else if (isScatter(graphicalItem, activeItem)) {\n comparison = compareScatter;\n }\n return comparison;\n}\nfunction getShapeDataKey(graphicalItem, activeItem) {\n var shapeKey;\n if (isFunnel(graphicalItem, activeItem)) {\n shapeKey = 'trapezoids';\n } else if (isPie(graphicalItem, activeItem)) {\n shapeKey = 'sectors';\n } else if (isScatter(graphicalItem, activeItem)) {\n shapeKey = 'points';\n }\n return shapeKey;\n}\nfunction getActiveShapeTooltipPayload(graphicalItem, activeItem) {\n if (isFunnel(graphicalItem, activeItem)) {\n var _activeItem$tooltipPa;\n return (_activeItem$tooltipPa = activeItem.tooltipPayload) === null || _activeItem$tooltipPa === void 0 || (_activeItem$tooltipPa = _activeItem$tooltipPa[0]) === null || _activeItem$tooltipPa === void 0 || (_activeItem$tooltipPa = _activeItem$tooltipPa.payload) === null || _activeItem$tooltipPa === void 0 ? void 0 : _activeItem$tooltipPa.payload;\n }\n if (isPie(graphicalItem, activeItem)) {\n var _activeItem$tooltipPa2;\n return (_activeItem$tooltipPa2 = activeItem.tooltipPayload) === null || _activeItem$tooltipPa2 === void 0 || (_activeItem$tooltipPa2 = _activeItem$tooltipPa2[0]) === null || _activeItem$tooltipPa2 === void 0 || (_activeItem$tooltipPa2 = _activeItem$tooltipPa2.payload) === null || _activeItem$tooltipPa2 === void 0 ? void 0 : _activeItem$tooltipPa2.payload;\n }\n if (isScatter(graphicalItem, activeItem)) {\n return activeItem.payload;\n }\n return {};\n}\n/**\n *\n * @param {GetActiveShapeIndexForTooltip} arg an object of incoming attributes from Tooltip\n * @returns {number}\n *\n * To handle possible duplicates in the data set,\n * match both the data value of the active item to a data value on a graph item,\n * and match the mouse coordinates of the active item to the coordinates of in a particular components shape data.\n * This assumes equal lengths of shape objects to data items.\n */\nexport function getActiveShapeIndexForTooltip(_ref3) {\n var activeTooltipItem = _ref3.activeTooltipItem,\n graphicalItem = _ref3.graphicalItem,\n itemData = _ref3.itemData;\n var shapeKey = getShapeDataKey(graphicalItem, activeTooltipItem);\n var tooltipPayload = getActiveShapeTooltipPayload(graphicalItem, activeTooltipItem);\n var activeItemMatches = itemData.filter(function (datum, dataIndex) {\n var valuesMatch = isEqual(tooltipPayload, datum);\n var mouseCoordinateMatches = graphicalItem.props[shapeKey].filter(function (shapeData) {\n var comparison = getComparisonFn(graphicalItem, activeTooltipItem);\n return comparison(shapeData, activeTooltipItem);\n });\n\n // get the last index in case of multiple matches\n var indexOfMouseCoordinates = graphicalItem.props[shapeKey].indexOf(mouseCoordinateMatches[mouseCoordinateMatches.length - 1]);\n var coordinatesMatch = dataIndex === indexOfMouseCoordinates;\n return valuesMatch && coordinatesMatch;\n });\n\n // get the last index in case of multiple matches\n var activeIndex = itemData.indexOf(activeItemMatches[activeItemMatches.length - 1]);\n return activeIndex;\n}","var _excluded = [\"x\", \"y\"];\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\nimport invariant from 'tiny-invariant';\nimport { Shape } from './ActiveShapeUtils';\n\n// Rectangle props is expecting x, y, height, width as numbers, name as a string, and radius as a custom type\n// When props are being spread in from a user defined component in Bar,\n// the prop types of an SVGElement have these typed as something else.\n// This function will return the passed in props\n// along with x, y, height as numbers, name as a string, and radius as number | [number, number, number, number]\nfunction typeguardBarRectangleProps(_ref, props) {\n var xProp = _ref.x,\n yProp = _ref.y,\n option = _objectWithoutProperties(_ref, _excluded);\n var xValue = \"\".concat(xProp);\n var x = parseInt(xValue, 10);\n var yValue = \"\".concat(yProp);\n var y = parseInt(yValue, 10);\n var heightValue = \"\".concat(props.height || option.height);\n var height = parseInt(heightValue, 10);\n var widthValue = \"\".concat(props.width || option.width);\n var width = parseInt(widthValue, 10);\n return _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, props), option), x ? {\n x: x\n } : {}), y ? {\n y: y\n } : {}), {}, {\n height: height,\n width: width,\n name: props.name,\n radius: props.radius\n });\n}\nexport function BarRectangle(props) {\n return /*#__PURE__*/React.createElement(Shape, _extends({\n shapeType: \"rectangle\",\n propTransformer: typeguardBarRectangleProps,\n activeClassName: \"recharts-active-bar\"\n }, props));\n}\n/**\n * Safely gets minPointSize from from the minPointSize prop if it is a function\n * @param minPointSize minPointSize as passed to the Bar component\n * @param defaultValue default minPointSize\n * @returns minPointSize\n */\nexport var minPointSizeCallback = function minPointSizeCallback(minPointSize) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n return function (value, index) {\n if (typeof minPointSize === 'number') return minPointSize;\n var isValueNumber = typeof value === 'number';\n if (isValueNumber) {\n return minPointSize(value, index);\n }\n !isValueNumber ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"minPointSize callback function received a value with type of \".concat(_typeof(value), \". Currently only numbers are supported.\")) : invariant(false) : void 0;\n return defaultValue;\n };\n};","var _excluded = [\"value\", \"background\"];\nvar _Bar;\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Render a group of bar\n */\nimport React, { PureComponent } from 'react';\nimport clsx from 'clsx';\nimport Animate from 'react-smooth';\nimport isEqual from 'lodash/isEqual';\nimport isNil from 'lodash/isNil';\nimport { Layer } from '../container/Layer';\nimport { ErrorBar } from './ErrorBar';\nimport { Cell } from '../component/Cell';\nimport { LabelList } from '../component/LabelList';\nimport { uniqueId, mathSign, interpolateNumber } from '../util/DataUtils';\nimport { filterProps, findAllByType } from '../util/ReactUtils';\nimport { Global } from '../util/Global';\nimport { getCateCoordinateOfBar, getValueByDataKey, truncateByDomain, getBaseValueOfBar, findPositionOfBar, getTooltipItem } from '../util/ChartUtils';\nimport { adaptEventsOfChild } from '../util/types';\nimport { BarRectangle, minPointSizeCallback } from '../util/BarUtils';\nexport var Bar = /*#__PURE__*/function (_PureComponent) {\n _inherits(Bar, _PureComponent);\n function Bar() {\n var _this;\n _classCallCheck(this, Bar);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _callSuper(this, Bar, [].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n isAnimationFinished: false\n });\n _defineProperty(_assertThisInitialized(_this), \"id\", uniqueId('recharts-bar-'));\n _defineProperty(_assertThisInitialized(_this), \"handleAnimationEnd\", function () {\n var onAnimationEnd = _this.props.onAnimationEnd;\n _this.setState({\n isAnimationFinished: true\n });\n if (onAnimationEnd) {\n onAnimationEnd();\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleAnimationStart\", function () {\n var onAnimationStart = _this.props.onAnimationStart;\n _this.setState({\n isAnimationFinished: false\n });\n if (onAnimationStart) {\n onAnimationStart();\n }\n });\n return _this;\n }\n _createClass(Bar, [{\n key: \"renderRectanglesStatically\",\n value: function renderRectanglesStatically(data) {\n var _this2 = this;\n var _this$props = this.props,\n shape = _this$props.shape,\n dataKey = _this$props.dataKey,\n activeIndex = _this$props.activeIndex,\n activeBar = _this$props.activeBar;\n var baseProps = filterProps(this.props, false);\n return data && data.map(function (entry, i) {\n var isActive = i === activeIndex;\n var option = isActive ? activeBar : shape;\n var props = _objectSpread(_objectSpread(_objectSpread({}, baseProps), entry), {}, {\n isActive: isActive,\n option: option,\n index: i,\n dataKey: dataKey,\n onAnimationStart: _this2.handleAnimationStart,\n onAnimationEnd: _this2.handleAnimationEnd\n });\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: \"recharts-bar-rectangle\"\n }, adaptEventsOfChild(_this2.props, entry, i), {\n key: \"rectangle-\".concat(entry === null || entry === void 0 ? void 0 : entry.x, \"-\").concat(entry === null || entry === void 0 ? void 0 : entry.y, \"-\").concat(entry === null || entry === void 0 ? void 0 : entry.value)\n }), /*#__PURE__*/React.createElement(BarRectangle, props));\n });\n }\n }, {\n key: \"renderRectanglesWithAnimation\",\n value: function renderRectanglesWithAnimation() {\n var _this3 = this;\n var _this$props2 = this.props,\n data = _this$props2.data,\n layout = _this$props2.layout,\n isAnimationActive = _this$props2.isAnimationActive,\n animationBegin = _this$props2.animationBegin,\n animationDuration = _this$props2.animationDuration,\n animationEasing = _this$props2.animationEasing,\n animationId = _this$props2.animationId;\n var prevData = this.state.prevData;\n return /*#__PURE__*/React.createElement(Animate, {\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing,\n from: {\n t: 0\n },\n to: {\n t: 1\n },\n key: \"bar-\".concat(animationId),\n onAnimationEnd: this.handleAnimationEnd,\n onAnimationStart: this.handleAnimationStart\n }, function (_ref) {\n var t = _ref.t;\n var stepData = data.map(function (entry, index) {\n var prev = prevData && prevData[index];\n if (prev) {\n var interpolatorX = interpolateNumber(prev.x, entry.x);\n var interpolatorY = interpolateNumber(prev.y, entry.y);\n var interpolatorWidth = interpolateNumber(prev.width, entry.width);\n var interpolatorHeight = interpolateNumber(prev.height, entry.height);\n return _objectSpread(_objectSpread({}, entry), {}, {\n x: interpolatorX(t),\n y: interpolatorY(t),\n width: interpolatorWidth(t),\n height: interpolatorHeight(t)\n });\n }\n if (layout === 'horizontal') {\n var _interpolatorHeight = interpolateNumber(0, entry.height);\n var h = _interpolatorHeight(t);\n return _objectSpread(_objectSpread({}, entry), {}, {\n y: entry.y + entry.height - h,\n height: h\n });\n }\n var interpolator = interpolateNumber(0, entry.width);\n var w = interpolator(t);\n return _objectSpread(_objectSpread({}, entry), {}, {\n width: w\n });\n });\n return /*#__PURE__*/React.createElement(Layer, null, _this3.renderRectanglesStatically(stepData));\n });\n }\n }, {\n key: \"renderRectangles\",\n value: function renderRectangles() {\n var _this$props3 = this.props,\n data = _this$props3.data,\n isAnimationActive = _this$props3.isAnimationActive;\n var prevData = this.state.prevData;\n if (isAnimationActive && data && data.length && (!prevData || !isEqual(prevData, data))) {\n return this.renderRectanglesWithAnimation();\n }\n return this.renderRectanglesStatically(data);\n }\n }, {\n key: \"renderBackground\",\n value: function renderBackground() {\n var _this4 = this;\n var _this$props4 = this.props,\n data = _this$props4.data,\n dataKey = _this$props4.dataKey,\n activeIndex = _this$props4.activeIndex;\n var backgroundProps = filterProps(this.props.background, false);\n return data.map(function (entry, i) {\n var value = entry.value,\n background = entry.background,\n rest = _objectWithoutProperties(entry, _excluded);\n if (!background) {\n return null;\n }\n var props = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, rest), {}, {\n fill: '#eee'\n }, background), backgroundProps), adaptEventsOfChild(_this4.props, entry, i)), {}, {\n onAnimationStart: _this4.handleAnimationStart,\n onAnimationEnd: _this4.handleAnimationEnd,\n dataKey: dataKey,\n index: i,\n key: \"background-bar-\".concat(i),\n className: 'recharts-bar-background-rectangle'\n });\n return /*#__PURE__*/React.createElement(BarRectangle, _extends({\n option: _this4.props.background,\n isActive: i === activeIndex\n }, props));\n });\n }\n }, {\n key: \"renderErrorBar\",\n value: function renderErrorBar(needClip, clipPathId) {\n if (this.props.isAnimationActive && !this.state.isAnimationFinished) {\n return null;\n }\n var _this$props5 = this.props,\n data = _this$props5.data,\n xAxis = _this$props5.xAxis,\n yAxis = _this$props5.yAxis,\n layout = _this$props5.layout,\n children = _this$props5.children;\n var errorBarItems = findAllByType(children, ErrorBar);\n if (!errorBarItems) {\n return null;\n }\n var offset = layout === 'vertical' ? data[0].height / 2 : data[0].width / 2;\n var dataPointFormatter = function dataPointFormatter(dataPoint, dataKey) {\n /**\n * if the value coming from `getComposedData` is an array then this is a stacked bar chart.\n * arr[1] represents end value of the bar since the data is in the form of [startValue, endValue].\n * */\n var value = Array.isArray(dataPoint.value) ? dataPoint.value[1] : dataPoint.value;\n return {\n x: dataPoint.x,\n y: dataPoint.y,\n value: value,\n errorVal: getValueByDataKey(dataPoint, dataKey)\n };\n };\n var errorBarProps = {\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null\n };\n return /*#__PURE__*/React.createElement(Layer, errorBarProps, errorBarItems.map(function (item) {\n return /*#__PURE__*/React.cloneElement(item, {\n key: \"error-bar-\".concat(clipPathId, \"-\").concat(item.props.dataKey),\n data: data,\n xAxis: xAxis,\n yAxis: yAxis,\n layout: layout,\n offset: offset,\n dataPointFormatter: dataPointFormatter\n });\n }));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props6 = this.props,\n hide = _this$props6.hide,\n data = _this$props6.data,\n className = _this$props6.className,\n xAxis = _this$props6.xAxis,\n yAxis = _this$props6.yAxis,\n left = _this$props6.left,\n top = _this$props6.top,\n width = _this$props6.width,\n height = _this$props6.height,\n isAnimationActive = _this$props6.isAnimationActive,\n background = _this$props6.background,\n id = _this$props6.id;\n if (hide || !data || !data.length) {\n return null;\n }\n var isAnimationFinished = this.state.isAnimationFinished;\n var layerClass = clsx('recharts-bar', className);\n var needClipX = xAxis && xAxis.allowDataOverflow;\n var needClipY = yAxis && yAxis.allowDataOverflow;\n var needClip = needClipX || needClipY;\n var clipPathId = isNil(id) ? this.id : id;\n return /*#__PURE__*/React.createElement(Layer, {\n className: layerClass\n }, needClipX || needClipY ? /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clipPath-\".concat(clipPathId)\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: needClipX ? left : left - width / 2,\n y: needClipY ? top : top - height / 2,\n width: needClipX ? width : width * 2,\n height: needClipY ? height : height * 2\n }))) : null, /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-bar-rectangles\",\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null\n }, background ? this.renderBackground() : null, this.renderRectangles()), this.renderErrorBar(needClip, clipPathId), (!isAnimationActive || isAnimationFinished) && LabelList.renderCallByParent(this.props, data));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n if (nextProps.animationId !== prevState.prevAnimationId) {\n return {\n prevAnimationId: nextProps.animationId,\n curData: nextProps.data,\n prevData: prevState.curData\n };\n }\n if (nextProps.data !== prevState.curData) {\n return {\n curData: nextProps.data\n };\n }\n return null;\n }\n }]);\n return Bar;\n}(PureComponent);\n_Bar = Bar;\n_defineProperty(Bar, \"displayName\", 'Bar');\n_defineProperty(Bar, \"defaultProps\", {\n xAxisId: 0,\n yAxisId: 0,\n legendType: 'rect',\n minPointSize: 0,\n hide: false,\n data: [],\n layout: 'vertical',\n activeBar: false,\n isAnimationActive: !Global.isSsr,\n animationBegin: 0,\n animationDuration: 400,\n animationEasing: 'ease'\n});\n/**\n * Compose the data of each group\n * @param {Object} props Props for the component\n * @param {Object} item An instance of Bar\n * @param {Array} barPosition The offset and size of each bar\n * @param {Object} xAxis The configuration of x-axis\n * @param {Object} yAxis The configuration of y-axis\n * @param {Array} stackedData The stacked data of a bar item\n * @return{Array} Composed data\n */\n_defineProperty(Bar, \"getComposedData\", function (_ref2) {\n var props = _ref2.props,\n item = _ref2.item,\n barPosition = _ref2.barPosition,\n bandSize = _ref2.bandSize,\n xAxis = _ref2.xAxis,\n yAxis = _ref2.yAxis,\n xAxisTicks = _ref2.xAxisTicks,\n yAxisTicks = _ref2.yAxisTicks,\n stackedData = _ref2.stackedData,\n dataStartIndex = _ref2.dataStartIndex,\n displayedData = _ref2.displayedData,\n offset = _ref2.offset;\n var pos = findPositionOfBar(barPosition, item);\n if (!pos) {\n return null;\n }\n var layout = props.layout;\n var _item$props = item.props,\n dataKey = _item$props.dataKey,\n children = _item$props.children,\n minPointSizeProp = _item$props.minPointSize;\n var numericAxis = layout === 'horizontal' ? yAxis : xAxis;\n var stackedDomain = stackedData ? numericAxis.scale.domain() : null;\n var baseValue = getBaseValueOfBar({\n numericAxis: numericAxis\n });\n var cells = findAllByType(children, Cell);\n var rects = displayedData.map(function (entry, index) {\n var value, x, y, width, height, background;\n if (stackedData) {\n value = truncateByDomain(stackedData[dataStartIndex + index], stackedDomain);\n } else {\n value = getValueByDataKey(entry, dataKey);\n if (!Array.isArray(value)) {\n value = [baseValue, value];\n }\n }\n var minPointSize = minPointSizeCallback(minPointSizeProp, _Bar.defaultProps.minPointSize)(value[1], index);\n if (layout === 'horizontal') {\n var _ref4;\n var _ref3 = [yAxis.scale(value[0]), yAxis.scale(value[1])],\n baseValueScale = _ref3[0],\n currentValueScale = _ref3[1];\n x = getCateCoordinateOfBar({\n axis: xAxis,\n ticks: xAxisTicks,\n bandSize: bandSize,\n offset: pos.offset,\n entry: entry,\n index: index\n });\n y = (_ref4 = currentValueScale !== null && currentValueScale !== void 0 ? currentValueScale : baseValueScale) !== null && _ref4 !== void 0 ? _ref4 : undefined;\n width = pos.size;\n var computedHeight = baseValueScale - currentValueScale;\n height = Number.isNaN(computedHeight) ? 0 : computedHeight;\n background = {\n x: x,\n y: yAxis.y,\n width: width,\n height: yAxis.height\n };\n if (Math.abs(minPointSize) > 0 && Math.abs(height) < Math.abs(minPointSize)) {\n var delta = mathSign(height || minPointSize) * (Math.abs(minPointSize) - Math.abs(height));\n y -= delta;\n height += delta;\n }\n } else {\n var _ref5 = [xAxis.scale(value[0]), xAxis.scale(value[1])],\n _baseValueScale = _ref5[0],\n _currentValueScale = _ref5[1];\n x = _baseValueScale;\n y = getCateCoordinateOfBar({\n axis: yAxis,\n ticks: yAxisTicks,\n bandSize: bandSize,\n offset: pos.offset,\n entry: entry,\n index: index\n });\n width = _currentValueScale - _baseValueScale;\n height = pos.size;\n background = {\n x: xAxis.x,\n y: y,\n width: xAxis.width,\n height: height\n };\n if (Math.abs(minPointSize) > 0 && Math.abs(width) < Math.abs(minPointSize)) {\n var _delta = mathSign(width || minPointSize) * (Math.abs(minPointSize) - Math.abs(width));\n width += _delta;\n }\n }\n return _objectSpread(_objectSpread(_objectSpread({}, entry), {}, {\n x: x,\n y: y,\n width: width,\n height: height,\n value: stackedData ? value : value[1],\n payload: entry,\n background: background\n }, cells && cells[index] && cells[index].props), {}, {\n tooltipPayload: [getTooltipItem(item, entry)],\n tooltipPosition: {\n x: x + width / 2,\n y: y + height / 2\n }\n });\n });\n return _objectSpread({\n data: rects,\n layout: layout\n }, offset);\n});","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport mapValues from 'lodash/mapValues';\nimport every from 'lodash/every';\nimport { getTicksOfScale, parseScale, checkDomainOfScale, getBandSizeOfAxis } from './ChartUtils';\nimport { findChildByType } from './ReactUtils';\nimport { getPercentValue } from './DataUtils';\nimport { Bar } from '../cartesian/Bar';\n\n/**\n * Calculate the scale function, position, width, height of axes\n * @param {Object} props Latest props\n * @param {Object} axisMap The configuration of axes\n * @param {Object} offset The offset of main part in the svg element\n * @param {String} axisType The type of axes, x-axis or y-axis\n * @param {String} chartName The name of chart\n * @return {Object} Configuration\n */\nexport var formatAxisMap = function formatAxisMap(props, axisMap, offset, axisType, chartName) {\n var width = props.width,\n height = props.height,\n layout = props.layout,\n children = props.children;\n var ids = Object.keys(axisMap);\n var steps = {\n left: offset.left,\n leftMirror: offset.left,\n right: width - offset.right,\n rightMirror: width - offset.right,\n top: offset.top,\n topMirror: offset.top,\n bottom: height - offset.bottom,\n bottomMirror: height - offset.bottom\n };\n var hasBar = !!findChildByType(children, Bar);\n return ids.reduce(function (result, id) {\n var axis = axisMap[id];\n var orientation = axis.orientation,\n domain = axis.domain,\n _axis$padding = axis.padding,\n padding = _axis$padding === void 0 ? {} : _axis$padding,\n mirror = axis.mirror,\n reversed = axis.reversed;\n var offsetKey = \"\".concat(orientation).concat(mirror ? 'Mirror' : '');\n var calculatedPadding, range, x, y, needSpace;\n if (axis.type === 'number' && (axis.padding === 'gap' || axis.padding === 'no-gap')) {\n var diff = domain[1] - domain[0];\n var smallestDistanceBetweenValues = Infinity;\n var sortedValues = axis.categoricalDomain.sort();\n sortedValues.forEach(function (value, index) {\n if (index > 0) {\n smallestDistanceBetweenValues = Math.min((value || 0) - (sortedValues[index - 1] || 0), smallestDistanceBetweenValues);\n }\n });\n if (Number.isFinite(smallestDistanceBetweenValues)) {\n var smallestDistanceInPercent = smallestDistanceBetweenValues / diff;\n var rangeWidth = axis.layout === 'vertical' ? offset.height : offset.width;\n if (axis.padding === 'gap') {\n calculatedPadding = smallestDistanceInPercent * rangeWidth / 2;\n }\n if (axis.padding === 'no-gap') {\n var gap = getPercentValue(props.barCategoryGap, smallestDistanceInPercent * rangeWidth);\n var halfBand = smallestDistanceInPercent * rangeWidth / 2;\n calculatedPadding = halfBand - gap - (halfBand - gap) / rangeWidth * gap;\n }\n }\n }\n if (axisType === 'xAxis') {\n range = [offset.left + (padding.left || 0) + (calculatedPadding || 0), offset.left + offset.width - (padding.right || 0) - (calculatedPadding || 0)];\n } else if (axisType === 'yAxis') {\n range = layout === 'horizontal' ? [offset.top + offset.height - (padding.bottom || 0), offset.top + (padding.top || 0)] : [offset.top + (padding.top || 0) + (calculatedPadding || 0), offset.top + offset.height - (padding.bottom || 0) - (calculatedPadding || 0)];\n } else {\n range = axis.range;\n }\n if (reversed) {\n range = [range[1], range[0]];\n }\n var _parseScale = parseScale(axis, chartName, hasBar),\n scale = _parseScale.scale,\n realScaleType = _parseScale.realScaleType;\n scale.domain(domain).range(range);\n checkDomainOfScale(scale);\n var ticks = getTicksOfScale(scale, _objectSpread(_objectSpread({}, axis), {}, {\n realScaleType: realScaleType\n }));\n if (axisType === 'xAxis') {\n needSpace = orientation === 'top' && !mirror || orientation === 'bottom' && mirror;\n x = offset.left;\n y = steps[offsetKey] - needSpace * axis.height;\n } else if (axisType === 'yAxis') {\n needSpace = orientation === 'left' && !mirror || orientation === 'right' && mirror;\n x = steps[offsetKey] - needSpace * axis.width;\n y = offset.top;\n }\n var finalAxis = _objectSpread(_objectSpread(_objectSpread({}, axis), ticks), {}, {\n realScaleType: realScaleType,\n x: x,\n y: y,\n scale: scale,\n width: axisType === 'xAxis' ? offset.width : axis.width,\n height: axisType === 'yAxis' ? offset.height : axis.height\n });\n finalAxis.bandSize = getBandSizeOfAxis(finalAxis, ticks);\n if (!axis.hide && axisType === 'xAxis') {\n steps[offsetKey] += (needSpace ? -1 : 1) * finalAxis.height;\n } else if (!axis.hide) {\n steps[offsetKey] += (needSpace ? -1 : 1) * finalAxis.width;\n }\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, id, finalAxis));\n }, {});\n};\nexport var rectWithPoints = function rectWithPoints(_ref, _ref2) {\n var x1 = _ref.x,\n y1 = _ref.y;\n var x2 = _ref2.x,\n y2 = _ref2.y;\n return {\n x: Math.min(x1, x2),\n y: Math.min(y1, y2),\n width: Math.abs(x2 - x1),\n height: Math.abs(y2 - y1)\n };\n};\n\n/**\n * Compute the x, y, width, and height of a box from two reference points.\n * @param {Object} coords x1, x2, y1, and y2\n * @return {Object} object\n */\nexport var rectWithCoords = function rectWithCoords(_ref3) {\n var x1 = _ref3.x1,\n y1 = _ref3.y1,\n x2 = _ref3.x2,\n y2 = _ref3.y2;\n return rectWithPoints({\n x: x1,\n y: y1\n }, {\n x: x2,\n y: y2\n });\n};\nexport var ScaleHelper = /*#__PURE__*/function () {\n function ScaleHelper(scale) {\n _classCallCheck(this, ScaleHelper);\n this.scale = scale;\n }\n _createClass(ScaleHelper, [{\n key: \"domain\",\n get: function get() {\n return this.scale.domain;\n }\n }, {\n key: \"range\",\n get: function get() {\n return this.scale.range;\n }\n }, {\n key: \"rangeMin\",\n get: function get() {\n return this.range()[0];\n }\n }, {\n key: \"rangeMax\",\n get: function get() {\n return this.range()[1];\n }\n }, {\n key: \"bandwidth\",\n get: function get() {\n return this.scale.bandwidth;\n }\n }, {\n key: \"apply\",\n value: function apply(value) {\n var _ref4 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n bandAware = _ref4.bandAware,\n position = _ref4.position;\n if (value === undefined) {\n return undefined;\n }\n if (position) {\n switch (position) {\n case 'start':\n {\n return this.scale(value);\n }\n case 'middle':\n {\n var offset = this.bandwidth ? this.bandwidth() / 2 : 0;\n return this.scale(value) + offset;\n }\n case 'end':\n {\n var _offset = this.bandwidth ? this.bandwidth() : 0;\n return this.scale(value) + _offset;\n }\n default:\n {\n return this.scale(value);\n }\n }\n }\n if (bandAware) {\n var _offset2 = this.bandwidth ? this.bandwidth() / 2 : 0;\n return this.scale(value) + _offset2;\n }\n return this.scale(value);\n }\n }, {\n key: \"isInRange\",\n value: function isInRange(value) {\n var range = this.range();\n var first = range[0];\n var last = range[range.length - 1];\n return first <= last ? value >= first && value <= last : value >= last && value <= first;\n }\n }], [{\n key: \"create\",\n value: function create(obj) {\n return new ScaleHelper(obj);\n }\n }]);\n return ScaleHelper;\n}();\n_defineProperty(ScaleHelper, \"EPS\", 1e-4);\nexport var createLabeledScales = function createLabeledScales(options) {\n var scales = Object.keys(options).reduce(function (res, key) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, key, ScaleHelper.create(options[key])));\n }, {});\n return _objectSpread(_objectSpread({}, scales), {}, {\n apply: function apply(coord) {\n var _ref5 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n bandAware = _ref5.bandAware,\n position = _ref5.position;\n return mapValues(coord, function (value, label) {\n return scales[label].apply(value, {\n bandAware: bandAware,\n position: position\n });\n });\n },\n isInRange: function isInRange(coord) {\n return every(coord, function (value, label) {\n return scales[label].isInRange(value);\n });\n }\n });\n};\n\n/** Normalizes the angle so that 0 <= angle < 180.\n * @param {number} angle Angle in degrees.\n * @return {number} the normalized angle with a value of at least 0 and never greater or equal to 180. */\nexport function normalizeAngle(angle) {\n return (angle % 180 + 180) % 180;\n}\n\n/** Calculates the width of the largest horizontal line that fits inside a rectangle that is displayed at an angle.\n * @param {Object} size Width and height of the text in a horizontal position.\n * @param {number} angle Angle in degrees in which the text is displayed.\n * @return {number} The width of the largest horizontal line that fits inside a rectangle that is displayed at an angle.\n */\nexport var getAngledRectangleWidth = function getAngledRectangleWidth(_ref6) {\n var width = _ref6.width,\n height = _ref6.height;\n var angle = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Ensure angle is >= 0 && < 180\n var normalizedAngle = normalizeAngle(angle);\n var angleRadians = normalizedAngle * Math.PI / 180;\n\n /* Depending on the height and width of the rectangle, we may need to use different formulas to calculate the angled\n * width. This threshold defines when each formula should kick in. */\n var angleThreshold = Math.atan(height / width);\n var angledWidth = angleRadians > angleThreshold && angleRadians < Math.PI - angleThreshold ? height / Math.sin(angleRadians) : width / Math.cos(angleRadians);\n return Math.abs(angledWidth);\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Reference Dot\n */\nimport React from 'react';\nimport isFunction from 'lodash/isFunction';\nimport clsx from 'clsx';\nimport { Layer } from '../container/Layer';\nimport { Dot } from '../shape/Dot';\nimport { Label } from '../component/Label';\nimport { isNumOrStr } from '../util/DataUtils';\nimport { ifOverflowMatches } from '../util/IfOverflowMatches';\nimport { createLabeledScales } from '../util/CartesianUtils';\nimport { warn } from '../util/LogUtils';\nimport { filterProps } from '../util/ReactUtils';\nvar getCoordinate = function getCoordinate(props) {\n var x = props.x,\n y = props.y,\n xAxis = props.xAxis,\n yAxis = props.yAxis;\n var scales = createLabeledScales({\n x: xAxis.scale,\n y: yAxis.scale\n });\n var result = scales.apply({\n x: x,\n y: y\n }, {\n bandAware: true\n });\n if (ifOverflowMatches(props, 'discard') && !scales.isInRange(result)) {\n return null;\n }\n return result;\n};\nexport function ReferenceDot(props) {\n var x = props.x,\n y = props.y,\n r = props.r,\n alwaysShow = props.alwaysShow,\n clipPathId = props.clipPathId;\n var isX = isNumOrStr(x);\n var isY = isNumOrStr(y);\n warn(alwaysShow === undefined, 'The alwaysShow prop is deprecated. Please use ifOverflow=\"extendDomain\" instead.');\n if (!isX || !isY) {\n return null;\n }\n var coordinate = getCoordinate(props);\n if (!coordinate) {\n return null;\n }\n var cx = coordinate.x,\n cy = coordinate.y;\n var shape = props.shape,\n className = props.className;\n var clipPath = ifOverflowMatches(props, 'hidden') ? \"url(#\".concat(clipPathId, \")\") : undefined;\n var dotProps = _objectSpread(_objectSpread({\n clipPath: clipPath\n }, filterProps(props, true)), {}, {\n cx: cx,\n cy: cy\n });\n return /*#__PURE__*/React.createElement(Layer, {\n className: clsx('recharts-reference-dot', className)\n }, ReferenceDot.renderDot(shape, dotProps), Label.renderCallByParent(props, {\n x: cx - r,\n y: cy - r,\n width: 2 * r,\n height: 2 * r\n }));\n}\nReferenceDot.displayName = 'ReferenceDot';\nReferenceDot.defaultProps = {\n isFront: false,\n ifOverflow: 'discard',\n xAxisId: 0,\n yAxisId: 0,\n r: 10,\n fill: '#fff',\n stroke: '#ccc',\n fillOpacity: 1,\n strokeWidth: 1\n};\nReferenceDot.renderDot = function (option, props) {\n var dot;\n if ( /*#__PURE__*/React.isValidElement(option)) {\n dot = /*#__PURE__*/React.cloneElement(option, props);\n } else if (isFunction(option)) {\n dot = option(props);\n } else {\n dot = /*#__PURE__*/React.createElement(Dot, _extends({}, props, {\n cx: props.cx,\n cy: props.cy,\n className: \"recharts-reference-dot-dot\"\n }));\n }\n return dot;\n};","import memoize from 'lodash/memoize';\n/**\n * This is memoized because the viewBox is unlikely to change often\n * - but because it is computed from offset, any change to it would re-render all children.\n *\n * And because we have many readers of the viewBox, and update it only rarely,\n * then let's optimize with memoization.\n */\nexport var calculateViewBox = memoize(function (offset) {\n return {\n x: offset.left,\n y: offset.top,\n width: offset.width,\n height: offset.height\n };\n}, function (offset) {\n return ['l', offset.left, 't', offset.top, 'w', offset.width, 'h', offset.height].join('');\n});","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nimport React, { createContext, useContext } from 'react';\nimport invariant from 'tiny-invariant';\nimport find from 'lodash/find';\nimport every from 'lodash/every';\nimport { calculateViewBox } from '../util/calculateViewBox';\nimport { getAnyElementOfObject } from '../util/DataUtils';\nexport var XAxisContext = /*#__PURE__*/createContext(undefined);\nexport var YAxisContext = /*#__PURE__*/createContext(undefined);\nexport var ViewBoxContext = /*#__PURE__*/createContext(undefined);\nexport var OffsetContext = /*#__PURE__*/createContext({});\nexport var ClipPathIdContext = /*#__PURE__*/createContext(undefined);\nexport var ChartHeightContext = /*#__PURE__*/createContext(0);\nexport var ChartWidthContext = /*#__PURE__*/createContext(0);\n\n/**\n * Will add all the properties required to render all individual Recharts components into a React Context.\n *\n * If you want to read these properties, see the collection of hooks exported from this file.\n *\n * @param {object} props CategoricalChartState, plus children\n * @returns {ReactElement} React Context Provider\n */\nexport var ChartLayoutContextProvider = function ChartLayoutContextProvider(props) {\n var _props$state = props.state,\n xAxisMap = _props$state.xAxisMap,\n yAxisMap = _props$state.yAxisMap,\n offset = _props$state.offset,\n clipPathId = props.clipPathId,\n children = props.children,\n width = props.width,\n height = props.height;\n\n /**\n * Perhaps we should compute this property when reading? Let's see what is more often used\n */\n var viewBox = calculateViewBox(offset);\n\n /*\n * This pretends to be a single context but actually is split into multiple smaller ones.\n * Why?\n * Because one React Context only allows to set one value.\n * But we need to set multiple values.\n * If we do that with one context, then we force re-render on components that might not even be interested\n * in the part of the state that has changed.\n *\n * By splitting into smaller contexts, we allow each components to be optimized and only re-render when its dependencies change.\n *\n * To actually achieve the optimal re-render, it is necessary to use React.memo().\n * See the test file for details.\n */\n return /*#__PURE__*/React.createElement(XAxisContext.Provider, {\n value: xAxisMap\n }, /*#__PURE__*/React.createElement(YAxisContext.Provider, {\n value: yAxisMap\n }, /*#__PURE__*/React.createElement(OffsetContext.Provider, {\n value: offset\n }, /*#__PURE__*/React.createElement(ViewBoxContext.Provider, {\n value: viewBox\n }, /*#__PURE__*/React.createElement(ClipPathIdContext.Provider, {\n value: clipPathId\n }, /*#__PURE__*/React.createElement(ChartHeightContext.Provider, {\n value: height\n }, /*#__PURE__*/React.createElement(ChartWidthContext.Provider, {\n value: width\n }, children)))))));\n};\nexport var useClipPathId = function useClipPathId() {\n return useContext(ClipPathIdContext);\n};\nfunction getKeysForDebug(object) {\n var keys = Object.keys(object);\n if (keys.length === 0) {\n return 'There are no available ids.';\n }\n return \"Available ids are: \".concat(keys, \".\");\n}\n\n/**\n * This either finds and returns Axis by the specified ID, or throws an exception if an axis with this ID does not exist.\n *\n * @param xAxisId identifier of the axis - it's either autogenerated ('0'), or passed via `id` prop as \n * @returns axis configuration object\n * @throws Error if no axis with this ID exists\n */\nexport var useXAxisOrThrow = function useXAxisOrThrow(xAxisId) {\n var xAxisMap = useContext(XAxisContext);\n !(xAxisMap != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Could not find Recharts context; are you sure this is rendered inside a Recharts wrapper component?') : invariant(false) : void 0;\n var xAxis = xAxisMap[xAxisId];\n !(xAxis != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Could not find xAxis by id \\\"\".concat(xAxisId, \"\\\" [\").concat(_typeof(xAxisId), \"]. \").concat(getKeysForDebug(xAxisMap))) : invariant(false) : void 0;\n return xAxis;\n};\n\n/**\n * This will find an arbitrary first XAxis. If there's exactly one it always returns that one\n * - but if there are multiple then it can return any of those.\n *\n * If you want specific XAxis out of multiple then prefer using useXAxisOrThrow\n *\n * @returns X axisOptions, or undefined - if there are no X axes\n */\nexport var useArbitraryXAxis = function useArbitraryXAxis() {\n var xAxisMap = useContext(XAxisContext);\n return getAnyElementOfObject(xAxisMap);\n};\n\n/**\n * This will find an arbitrary first YAxis. If there's exactly one it always returns that one\n * - but if there are multiple then it can return any of those.\n *\n * If you want specific YAxis out of multiple then prefer using useXAxisOrThrow\n *\n * @returns Y axisOptions, or undefined - if there are no Y axes\n */\nexport var useArbitraryYAxis = function useArbitraryYAxis() {\n var yAxisMap = useContext(YAxisContext);\n return getAnyElementOfObject(yAxisMap);\n};\n\n/**\n * This hooks will:\n * 1st attempt to find an YAxis that has all elements in its domain finite\n * If no such axis exists, it will return an arbitrary YAxis\n * if there are no Y axes then it returns undefined\n *\n * @returns Either Y axisOptions, or undefined if there are no Y axes\n */\nexport var useYAxisWithFiniteDomainOrRandom = function useYAxisWithFiniteDomainOrRandom() {\n var yAxisMap = useContext(YAxisContext);\n var yAxisWithFiniteDomain = find(yAxisMap, function (axis) {\n return every(axis.domain, Number.isFinite);\n });\n return yAxisWithFiniteDomain || getAnyElementOfObject(yAxisMap);\n};\n\n/**\n * This either finds and returns Axis by the specified ID, or throws an exception if an axis with this ID does not exist.\n *\n * @param yAxisId identifier of the axis - it's either autogenerated ('0'), or passed via `id` prop as \n * @returns axis configuration object\n * @throws Error if no axis with this ID exists\n */\nexport var useYAxisOrThrow = function useYAxisOrThrow(yAxisId) {\n var yAxisMap = useContext(YAxisContext);\n !(yAxisMap != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Could not find Recharts context; are you sure this is rendered inside a Recharts wrapper component?') : invariant(false) : void 0;\n var yAxis = yAxisMap[yAxisId];\n !(yAxis != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Could not find yAxis by id \\\"\".concat(yAxisId, \"\\\" [\").concat(_typeof(yAxisId), \"]. \").concat(getKeysForDebug(yAxisMap))) : invariant(false) : void 0;\n return yAxis;\n};\nexport var useViewBox = function useViewBox() {\n var viewBox = useContext(ViewBoxContext);\n return viewBox;\n};\nexport var useOffset = function useOffset() {\n return useContext(OffsetContext);\n};\nexport var useChartWidth = function useChartWidth() {\n return useContext(ChartWidthContext);\n};\nexport var useChartHeight = function useChartHeight() {\n return useContext(ChartHeightContext);\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n/**\n * @fileOverview Reference Line\n */\nimport React from 'react';\nimport isFunction from 'lodash/isFunction';\nimport some from 'lodash/some';\nimport clsx from 'clsx';\nimport { Layer } from '../container/Layer';\nimport { Label } from '../component/Label';\nimport { ifOverflowMatches } from '../util/IfOverflowMatches';\nimport { isNumOrStr } from '../util/DataUtils';\nimport { createLabeledScales, rectWithCoords } from '../util/CartesianUtils';\nimport { warn } from '../util/LogUtils';\nimport { filterProps } from '../util/ReactUtils';\nimport { useClipPathId, useViewBox, useXAxisOrThrow, useYAxisOrThrow } from '../context/chartLayoutContext';\n\n/**\n * This excludes `viewBox` prop from svg for two reasons:\n * 1. The components wants viewBox of object type, and svg wants string\n * - so there's a conflict, and the component will throw if it gets string\n * 2. Internally the component calls `filterProps` which filters the viewBox away anyway\n */\n\nvar renderLine = function renderLine(option, props) {\n var line;\n if ( /*#__PURE__*/React.isValidElement(option)) {\n line = /*#__PURE__*/React.cloneElement(option, props);\n } else if (isFunction(option)) {\n line = option(props);\n } else {\n line = /*#__PURE__*/React.createElement(\"line\", _extends({}, props, {\n className: \"recharts-reference-line-line\"\n }));\n }\n return line;\n};\n// TODO: ScaleHelper\nexport var getEndPoints = function getEndPoints(scales, isFixedX, isFixedY, isSegment, viewBox, position, xAxisOrientation, yAxisOrientation, props) {\n var x = viewBox.x,\n y = viewBox.y,\n width = viewBox.width,\n height = viewBox.height;\n if (isFixedY) {\n var yCoord = props.y;\n var coord = scales.y.apply(yCoord, {\n position: position\n });\n if (ifOverflowMatches(props, 'discard') && !scales.y.isInRange(coord)) {\n return null;\n }\n var points = [{\n x: x + width,\n y: coord\n }, {\n x: x,\n y: coord\n }];\n return yAxisOrientation === 'left' ? points.reverse() : points;\n }\n if (isFixedX) {\n var xCoord = props.x;\n var _coord = scales.x.apply(xCoord, {\n position: position\n });\n if (ifOverflowMatches(props, 'discard') && !scales.x.isInRange(_coord)) {\n return null;\n }\n var _points = [{\n x: _coord,\n y: y + height\n }, {\n x: _coord,\n y: y\n }];\n return xAxisOrientation === 'top' ? _points.reverse() : _points;\n }\n if (isSegment) {\n var segment = props.segment;\n var _points2 = segment.map(function (p) {\n return scales.apply(p, {\n position: position\n });\n });\n if (ifOverflowMatches(props, 'discard') && some(_points2, function (p) {\n return !scales.isInRange(p);\n })) {\n return null;\n }\n return _points2;\n }\n return null;\n};\nexport function ReferenceLine(props) {\n var fixedX = props.x,\n fixedY = props.y,\n segment = props.segment,\n xAxisId = props.xAxisId,\n yAxisId = props.yAxisId,\n shape = props.shape,\n className = props.className,\n alwaysShow = props.alwaysShow;\n var clipPathId = useClipPathId();\n var xAxis = useXAxisOrThrow(xAxisId);\n var yAxis = useYAxisOrThrow(yAxisId);\n var viewBox = useViewBox();\n if (!clipPathId || !viewBox) {\n return null;\n }\n warn(alwaysShow === undefined, 'The alwaysShow prop is deprecated. Please use ifOverflow=\"extendDomain\" instead.');\n var scales = createLabeledScales({\n x: xAxis.scale,\n y: yAxis.scale\n });\n var isX = isNumOrStr(fixedX);\n var isY = isNumOrStr(fixedY);\n var isSegment = segment && segment.length === 2;\n var endPoints = getEndPoints(scales, isX, isY, isSegment, viewBox, props.position, xAxis.orientation, yAxis.orientation, props);\n if (!endPoints) {\n return null;\n }\n var _endPoints = _slicedToArray(endPoints, 2),\n _endPoints$ = _endPoints[0],\n x1 = _endPoints$.x,\n y1 = _endPoints$.y,\n _endPoints$2 = _endPoints[1],\n x2 = _endPoints$2.x,\n y2 = _endPoints$2.y;\n var clipPath = ifOverflowMatches(props, 'hidden') ? \"url(#\".concat(clipPathId, \")\") : undefined;\n var lineProps = _objectSpread(_objectSpread({\n clipPath: clipPath\n }, filterProps(props, true)), {}, {\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n });\n return /*#__PURE__*/React.createElement(Layer, {\n className: clsx('recharts-reference-line', className)\n }, renderLine(shape, lineProps), Label.renderCallByParent(props, rectWithCoords({\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n })));\n}\nReferenceLine.displayName = 'ReferenceLine';\nReferenceLine.defaultProps = {\n isFront: false,\n ifOverflow: 'discard',\n xAxisId: 0,\n yAxisId: 0,\n fill: 'none',\n stroke: '#ccc',\n fillOpacity: 1,\n strokeWidth: 1,\n position: 'middle'\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Reference Line\n */\nimport React from 'react';\nimport isFunction from 'lodash/isFunction';\nimport clsx from 'clsx';\nimport { Layer } from '../container/Layer';\nimport { Label } from '../component/Label';\nimport { createLabeledScales, rectWithPoints } from '../util/CartesianUtils';\nimport { ifOverflowMatches } from '../util/IfOverflowMatches';\nimport { isNumOrStr } from '../util/DataUtils';\nimport { warn } from '../util/LogUtils';\nimport { Rectangle } from '../shape/Rectangle';\nimport { filterProps } from '../util/ReactUtils';\nvar getRect = function getRect(hasX1, hasX2, hasY1, hasY2, props) {\n var xValue1 = props.x1,\n xValue2 = props.x2,\n yValue1 = props.y1,\n yValue2 = props.y2,\n xAxis = props.xAxis,\n yAxis = props.yAxis;\n if (!xAxis || !yAxis) return null;\n var scales = createLabeledScales({\n x: xAxis.scale,\n y: yAxis.scale\n });\n var p1 = {\n x: hasX1 ? scales.x.apply(xValue1, {\n position: 'start'\n }) : scales.x.rangeMin,\n y: hasY1 ? scales.y.apply(yValue1, {\n position: 'start'\n }) : scales.y.rangeMin\n };\n var p2 = {\n x: hasX2 ? scales.x.apply(xValue2, {\n position: 'end'\n }) : scales.x.rangeMax,\n y: hasY2 ? scales.y.apply(yValue2, {\n position: 'end'\n }) : scales.y.rangeMax\n };\n if (ifOverflowMatches(props, 'discard') && (!scales.isInRange(p1) || !scales.isInRange(p2))) {\n return null;\n }\n return rectWithPoints(p1, p2);\n};\nexport function ReferenceArea(props) {\n var x1 = props.x1,\n x2 = props.x2,\n y1 = props.y1,\n y2 = props.y2,\n className = props.className,\n alwaysShow = props.alwaysShow,\n clipPathId = props.clipPathId;\n warn(alwaysShow === undefined, 'The alwaysShow prop is deprecated. Please use ifOverflow=\"extendDomain\" instead.');\n var hasX1 = isNumOrStr(x1);\n var hasX2 = isNumOrStr(x2);\n var hasY1 = isNumOrStr(y1);\n var hasY2 = isNumOrStr(y2);\n var shape = props.shape;\n if (!hasX1 && !hasX2 && !hasY1 && !hasY2 && !shape) {\n return null;\n }\n var rect = getRect(hasX1, hasX2, hasY1, hasY2, props);\n if (!rect && !shape) {\n return null;\n }\n var clipPath = ifOverflowMatches(props, 'hidden') ? \"url(#\".concat(clipPathId, \")\") : undefined;\n return /*#__PURE__*/React.createElement(Layer, {\n className: clsx('recharts-reference-area', className)\n }, ReferenceArea.renderRect(shape, _objectSpread(_objectSpread({\n clipPath: clipPath\n }, filterProps(props, true)), rect)), Label.renderCallByParent(props, rect));\n}\nReferenceArea.displayName = 'ReferenceArea';\nReferenceArea.defaultProps = {\n isFront: false,\n ifOverflow: 'discard',\n xAxisId: 0,\n yAxisId: 0,\n r: 10,\n fill: '#ccc',\n fillOpacity: 0.5,\n stroke: 'none',\n strokeWidth: 1\n};\nReferenceArea.renderRect = function (option, props) {\n var rect;\n if ( /*#__PURE__*/React.isValidElement(option)) {\n rect = /*#__PURE__*/React.cloneElement(option, props);\n } else if (isFunction(option)) {\n rect = option(props);\n } else {\n rect = /*#__PURE__*/React.createElement(Rectangle, _extends({}, props, {\n className: \"recharts-reference-area-rect\"\n }));\n }\n return rect;\n};","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nimport { ReferenceDot } from '../cartesian/ReferenceDot';\nimport { ReferenceLine } from '../cartesian/ReferenceLine';\nimport { ReferenceArea } from '../cartesian/ReferenceArea';\nimport { ifOverflowMatches } from './IfOverflowMatches';\nimport { findAllByType } from './ReactUtils';\nimport { isNumber } from './DataUtils';\nexport var detectReferenceElementsDomain = function detectReferenceElementsDomain(children, domain, axisId, axisType, specifiedTicks) {\n var lines = findAllByType(children, ReferenceLine);\n var dots = findAllByType(children, ReferenceDot);\n var elements = [].concat(_toConsumableArray(lines), _toConsumableArray(dots));\n var areas = findAllByType(children, ReferenceArea);\n var idKey = \"\".concat(axisType, \"Id\");\n var valueKey = axisType[0];\n var finalDomain = domain;\n if (elements.length) {\n finalDomain = elements.reduce(function (result, el) {\n if (el.props[idKey] === axisId && ifOverflowMatches(el.props, 'extendDomain') && isNumber(el.props[valueKey])) {\n var value = el.props[valueKey];\n return [Math.min(result[0], value), Math.max(result[1], value)];\n }\n return result;\n }, finalDomain);\n }\n if (areas.length) {\n var key1 = \"\".concat(valueKey, \"1\");\n var key2 = \"\".concat(valueKey, \"2\");\n finalDomain = areas.reduce(function (result, el) {\n if (el.props[idKey] === axisId && ifOverflowMatches(el.props, 'extendDomain') && isNumber(el.props[key1]) && isNumber(el.props[key2])) {\n var value1 = el.props[key1];\n var value2 = el.props[key2];\n return [Math.min(result[0], value1, value2), Math.max(result[1], value1, value2)];\n }\n return result;\n }, finalDomain);\n }\n if (specifiedTicks && specifiedTicks.length) {\n finalDomain = specifiedTicks.reduce(function (result, tick) {\n if (isNumber(tick)) {\n return [Math.min(result[0], tick), Math.max(result[1], tick)];\n }\n return result;\n }, finalDomain);\n }\n return finalDomain;\n};","import EventEmitter from 'eventemitter3';\nvar eventCenter = new EventEmitter();\nexport { eventCenter };\nexport var SYNC_EVENT = 'recharts.syncMouseEvents';","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nexport var AccessibilityManager = /*#__PURE__*/function () {\n function AccessibilityManager() {\n _classCallCheck(this, AccessibilityManager);\n _defineProperty(this, \"activeIndex\", 0);\n _defineProperty(this, \"coordinateList\", []);\n _defineProperty(this, \"layout\", 'horizontal');\n }\n _createClass(AccessibilityManager, [{\n key: \"setDetails\",\n value: function setDetails(_ref) {\n var _ref2;\n var _ref$coordinateList = _ref.coordinateList,\n coordinateList = _ref$coordinateList === void 0 ? null : _ref$coordinateList,\n _ref$container = _ref.container,\n container = _ref$container === void 0 ? null : _ref$container,\n _ref$layout = _ref.layout,\n layout = _ref$layout === void 0 ? null : _ref$layout,\n _ref$offset = _ref.offset,\n offset = _ref$offset === void 0 ? null : _ref$offset,\n _ref$mouseHandlerCall = _ref.mouseHandlerCallback,\n mouseHandlerCallback = _ref$mouseHandlerCall === void 0 ? null : _ref$mouseHandlerCall;\n this.coordinateList = (_ref2 = coordinateList !== null && coordinateList !== void 0 ? coordinateList : this.coordinateList) !== null && _ref2 !== void 0 ? _ref2 : [];\n this.container = container !== null && container !== void 0 ? container : this.container;\n this.layout = layout !== null && layout !== void 0 ? layout : this.layout;\n this.offset = offset !== null && offset !== void 0 ? offset : this.offset;\n this.mouseHandlerCallback = mouseHandlerCallback !== null && mouseHandlerCallback !== void 0 ? mouseHandlerCallback : this.mouseHandlerCallback;\n\n // Keep activeIndex in the bounds between 0 and the last coordinate index\n this.activeIndex = Math.min(Math.max(this.activeIndex, 0), this.coordinateList.length - 1);\n }\n }, {\n key: \"focus\",\n value: function focus() {\n this.spoofMouse();\n }\n }, {\n key: \"keyboardEvent\",\n value: function keyboardEvent(e) {\n // The AccessibilityManager relies on the Tooltip component. When tooltips suddenly stop existing,\n // it can cause errors. We use this function to check. We don't want arrow keys to be processed\n // if there are no tooltips, since that will cause unexpected behavior of users.\n if (this.coordinateList.length === 0) {\n return;\n }\n switch (e.key) {\n case 'ArrowRight':\n {\n if (this.layout !== 'horizontal') {\n return;\n }\n this.activeIndex = Math.min(this.activeIndex + 1, this.coordinateList.length - 1);\n this.spoofMouse();\n break;\n }\n case 'ArrowLeft':\n {\n if (this.layout !== 'horizontal') {\n return;\n }\n this.activeIndex = Math.max(this.activeIndex - 1, 0);\n this.spoofMouse();\n break;\n }\n default:\n {\n break;\n }\n }\n }\n }, {\n key: \"setIndex\",\n value: function setIndex(newIndex) {\n this.activeIndex = newIndex;\n }\n }, {\n key: \"spoofMouse\",\n value: function spoofMouse() {\n var _window, _window2;\n if (this.layout !== 'horizontal') {\n return;\n }\n\n // This can happen when the tooltips suddenly stop existing as children of the component\n // That update doesn't otherwise fire events, so we have to double check here.\n if (this.coordinateList.length === 0) {\n return;\n }\n var _this$container$getBo = this.container.getBoundingClientRect(),\n x = _this$container$getBo.x,\n y = _this$container$getBo.y,\n height = _this$container$getBo.height;\n var coordinate = this.coordinateList[this.activeIndex].coordinate;\n var scrollOffsetX = ((_window = window) === null || _window === void 0 ? void 0 : _window.scrollX) || 0;\n var scrollOffsetY = ((_window2 = window) === null || _window2 === void 0 ? void 0 : _window2.scrollY) || 0;\n var pageX = x + coordinate + scrollOffsetX;\n var pageY = y + this.offset.top + height / 2 + scrollOffsetY;\n this.mouseHandlerCallback({\n pageX: pageX,\n pageY: pageY\n });\n }\n }]);\n return AccessibilityManager;\n}();","export default function() {}\n","export function point(that, x, y) {\n that._context.bezierCurveTo(\n (2 * that._x0 + that._x1) / 3,\n (2 * that._y0 + that._y1) / 3,\n (that._x0 + 2 * that._x1) / 3,\n (that._y0 + 2 * that._y1) / 3,\n (that._x0 + 4 * that._x1 + x) / 6,\n (that._y0 + 4 * that._y1 + y) / 6\n );\n}\n\nexport function Basis(context) {\n this._context = context;\n}\n\nBasis.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 3: point(this, this._x1, this._y1); // falls through\n case 2: this._context.lineTo(this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // falls through\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new Basis(context);\n}\n","import noop from \"../noop.js\";\nimport {point} from \"./basis.js\";\n\nfunction BasisClosed(context) {\n this._context = context;\n}\n\nBasisClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x2, this._y2);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3);\n this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x2, this._y2);\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x2 = x, this._y2 = y; break;\n case 1: this._point = 2; this._x3 = x, this._y3 = y; break;\n case 2: this._point = 3; this._x4 = x, this._y4 = y; this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6); break;\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisClosed(context);\n}\n","import {point} from \"./basis.js\";\n\nfunction BasisOpen(context) {\n this._context = context;\n}\n\nBasisOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; var x0 = (this._x0 + 4 * this._x1 + x) / 6, y0 = (this._y0 + 4 * this._y1 + y) / 6; this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0); break;\n case 3: this._point = 4; // falls through\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisOpen(context);\n}\n","import pointRadial from \"../pointRadial.js\";\n\nclass Bump {\n constructor(context, x) {\n this._context = context;\n this._x = x;\n }\n areaStart() {\n this._line = 0;\n }\n areaEnd() {\n this._line = NaN;\n }\n lineStart() {\n this._point = 0;\n }\n lineEnd() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n }\n point(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: {\n this._point = 1;\n if (this._line) this._context.lineTo(x, y);\n else this._context.moveTo(x, y);\n break;\n }\n case 1: this._point = 2; // falls through\n default: {\n if (this._x) this._context.bezierCurveTo(this._x0 = (this._x0 + x) / 2, this._y0, this._x0, y, x, y);\n else this._context.bezierCurveTo(this._x0, this._y0 = (this._y0 + y) / 2, x, this._y0, x, y);\n break;\n }\n }\n this._x0 = x, this._y0 = y;\n }\n}\n\nclass BumpRadial {\n constructor(context) {\n this._context = context;\n }\n lineStart() {\n this._point = 0;\n }\n lineEnd() {}\n point(x, y) {\n x = +x, y = +y;\n if (this._point === 0) {\n this._point = 1;\n } else {\n const p0 = pointRadial(this._x0, this._y0);\n const p1 = pointRadial(this._x0, this._y0 = (this._y0 + y) / 2);\n const p2 = pointRadial(x, this._y0);\n const p3 = pointRadial(x, y);\n this._context.moveTo(...p0);\n this._context.bezierCurveTo(...p1, ...p2, ...p3);\n }\n this._x0 = x, this._y0 = y;\n }\n}\n\nexport function bumpX(context) {\n return new Bump(context, true);\n}\n\nexport function bumpY(context) {\n return new Bump(context, false);\n}\n\nexport function bumpRadial(context) {\n return new BumpRadial(context);\n}\n","import noop from \"../noop.js\";\n\nfunction LinearClosed(context) {\n this._context = context;\n}\n\nLinearClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._point) this._context.closePath();\n },\n point: function(x, y) {\n x = +x, y = +y;\n if (this._point) this._context.lineTo(x, y);\n else this._point = 1, this._context.moveTo(x, y);\n }\n};\n\nexport default function(context) {\n return new LinearClosed(context);\n}\n","function Linear(context) {\n this._context = context;\n}\n\nLinear.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // falls through\n default: this._context.lineTo(x, y); break;\n }\n }\n};\n\nexport default function(context) {\n return new Linear(context);\n}\n","function sign(x) {\n return x < 0 ? -1 : 1;\n}\n\n// Calculate the slopes of the tangents (Hermite-type interpolation) based on\n// the following paper: Steffen, M. 1990. A Simple Method for Monotonic\n// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO.\n// NOV(II), P. 443, 1990.\nfunction slope3(that, x2, y2) {\n var h0 = that._x1 - that._x0,\n h1 = x2 - that._x1,\n s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0),\n s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0),\n p = (s0 * h1 + s1 * h0) / (h0 + h1);\n return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;\n}\n\n// Calculate a one-sided slope.\nfunction slope2(that, t) {\n var h = that._x1 - that._x0;\n return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t;\n}\n\n// According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations\n// \"you can express cubic Hermite interpolation in terms of cubic Bézier curves\n// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1\".\nfunction point(that, t0, t1) {\n var x0 = that._x0,\n y0 = that._y0,\n x1 = that._x1,\n y1 = that._y1,\n dx = (x1 - x0) / 3;\n that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1);\n}\n\nfunction MonotoneX(context) {\n this._context = context;\n}\n\nMonotoneX.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 =\n this._t0 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x1, this._y1); break;\n case 3: point(this, this._t0, slope2(this, this._t0)); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n var t1 = NaN;\n\n x = +x, y = +y;\n if (x === this._x1 && y === this._y1) return; // Ignore coincident points.\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; point(this, slope2(this, t1 = slope3(this, x, y)), t1); break;\n default: point(this, this._t0, t1 = slope3(this, x, y)); break;\n }\n\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n this._t0 = t1;\n }\n}\n\nfunction MonotoneY(context) {\n this._context = new ReflectContext(context);\n}\n\n(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x, y) {\n MonotoneX.prototype.point.call(this, y, x);\n};\n\nfunction ReflectContext(context) {\n this._context = context;\n}\n\nReflectContext.prototype = {\n moveTo: function(x, y) { this._context.moveTo(y, x); },\n closePath: function() { this._context.closePath(); },\n lineTo: function(x, y) { this._context.lineTo(y, x); },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) { this._context.bezierCurveTo(y1, x1, y2, x2, y, x); }\n};\n\nexport function monotoneX(context) {\n return new MonotoneX(context);\n}\n\nexport function monotoneY(context) {\n return new MonotoneY(context);\n}\n","function Natural(context) {\n this._context = context;\n}\n\nNatural.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = [];\n this._y = [];\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n n = x.length;\n\n if (n) {\n this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]);\n if (n === 2) {\n this._context.lineTo(x[1], y[1]);\n } else {\n var px = controlPoints(x),\n py = controlPoints(y);\n for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) {\n this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]);\n }\n }\n }\n\n if (this._line || (this._line !== 0 && n === 1)) this._context.closePath();\n this._line = 1 - this._line;\n this._x = this._y = null;\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\n// See https://www.particleincell.com/2012/bezier-splines/ for derivation.\nfunction controlPoints(x) {\n var i,\n n = x.length - 1,\n m,\n a = new Array(n),\n b = new Array(n),\n r = new Array(n);\n a[0] = 0, b[0] = 2, r[0] = x[0] + 2 * x[1];\n for (i = 1; i < n - 1; ++i) a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1];\n a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n];\n for (i = 1; i < n; ++i) m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1];\n a[n - 1] = r[n - 1] / b[n - 1];\n for (i = n - 2; i >= 0; --i) a[i] = (r[i] - a[i + 1]) / b[i];\n b[n - 1] = (x[n] + a[n - 1]) / 2;\n for (i = 0; i < n - 1; ++i) b[i] = 2 * x[i + 1] - a[i + 1];\n return [a, b];\n}\n\nexport default function(context) {\n return new Natural(context);\n}\n","function Step(context, t) {\n this._context = context;\n this._t = t;\n}\n\nStep.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = this._y = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (0 < this._t && this._t < 1 && this._point === 2) this._context.lineTo(this._x, this._y);\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n if (this._line >= 0) this._t = 1 - this._t, this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // falls through\n default: {\n if (this._t <= 0) {\n this._context.lineTo(this._x, y);\n this._context.lineTo(x, y);\n } else {\n var x1 = this._x * (1 - this._t) + x * this._t;\n this._context.lineTo(x1, this._y);\n this._context.lineTo(x1, y);\n }\n break;\n }\n }\n this._x = x, this._y = y;\n }\n};\n\nexport default function(context) {\n return new Step(context, 0.5);\n}\n\nexport function stepBefore(context) {\n return new Step(context, 0);\n}\n\nexport function stepAfter(context) {\n return new Step(context, 1);\n}\n","export function x(p) {\n return p[0];\n}\n\nexport function y(p) {\n return p[1];\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport {withPath} from \"./path.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function(x, y) {\n var defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null,\n path = withPath(line);\n\n x = typeof x === \"function\" ? x : (x === undefined) ? pointX : constant(x);\n y = typeof y === \"function\" ? y : (y === undefined) ? pointY : constant(y);\n\n function line(data) {\n var i,\n n = (data = array(data)).length,\n d,\n defined0 = false,\n buffer;\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) output.lineStart();\n else output.lineEnd();\n }\n if (defined0) output.point(+x(d, i, data), +y(d, i, data));\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n line.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), line) : x;\n };\n\n line.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), line) : y;\n };\n\n line.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), line) : defined;\n };\n\n line.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;\n };\n\n line.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;\n };\n\n return line;\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport line from \"./line.js\";\nimport {withPath} from \"./path.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function(x0, y0, y1) {\n var x1 = null,\n defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null,\n path = withPath(area);\n\n x0 = typeof x0 === \"function\" ? x0 : (x0 === undefined) ? pointX : constant(+x0);\n y0 = typeof y0 === \"function\" ? y0 : (y0 === undefined) ? constant(0) : constant(+y0);\n y1 = typeof y1 === \"function\" ? y1 : (y1 === undefined) ? pointY : constant(+y1);\n\n function area(data) {\n var i,\n j,\n k,\n n = (data = array(data)).length,\n d,\n defined0 = false,\n buffer,\n x0z = new Array(n),\n y0z = new Array(n);\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) {\n j = i;\n output.areaStart();\n output.lineStart();\n } else {\n output.lineEnd();\n output.lineStart();\n for (k = i - 1; k >= j; --k) {\n output.point(x0z[k], y0z[k]);\n }\n output.lineEnd();\n output.areaEnd();\n }\n }\n if (defined0) {\n x0z[i] = +x0(d, i, data), y0z[i] = +y0(d, i, data);\n output.point(x1 ? +x1(d, i, data) : x0z[i], y1 ? +y1(d, i, data) : y0z[i]);\n }\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n function arealine() {\n return line().defined(defined).curve(curve).context(context);\n }\n\n area.x = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), x1 = null, area) : x0;\n };\n\n area.x0 = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), area) : x0;\n };\n\n area.x1 = function(_) {\n return arguments.length ? (x1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : x1;\n };\n\n area.y = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), y1 = null, area) : y0;\n };\n\n area.y0 = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), area) : y0;\n };\n\n area.y1 = function(_) {\n return arguments.length ? (y1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : y1;\n };\n\n area.lineX0 =\n area.lineY0 = function() {\n return arealine().x(x0).y(y0);\n };\n\n area.lineY1 = function() {\n return arealine().x(x0).y(y1);\n };\n\n area.lineX1 = function() {\n return arealine().x(x1).y(y0);\n };\n\n area.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), area) : defined;\n };\n\n area.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), area) : curve;\n };\n\n area.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), area) : context;\n };\n\n return area;\n}\n","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Curve\n */\nimport React from 'react';\nimport { line as shapeLine, area as shapeArea, curveBasisClosed, curveBasisOpen, curveBasis, curveBumpX, curveBumpY, curveLinearClosed, curveLinear, curveMonotoneX, curveMonotoneY, curveNatural, curveStep, curveStepAfter, curveStepBefore } from 'victory-vendor/d3-shape';\nimport upperFirst from 'lodash/upperFirst';\nimport isFunction from 'lodash/isFunction';\nimport clsx from 'clsx';\nimport { adaptEventHandlers } from '../util/types';\nimport { filterProps } from '../util/ReactUtils';\nimport { isNumber } from '../util/DataUtils';\nvar CURVE_FACTORIES = {\n curveBasisClosed: curveBasisClosed,\n curveBasisOpen: curveBasisOpen,\n curveBasis: curveBasis,\n curveBumpX: curveBumpX,\n curveBumpY: curveBumpY,\n curveLinearClosed: curveLinearClosed,\n curveLinear: curveLinear,\n curveMonotoneX: curveMonotoneX,\n curveMonotoneY: curveMonotoneY,\n curveNatural: curveNatural,\n curveStep: curveStep,\n curveStepAfter: curveStepAfter,\n curveStepBefore: curveStepBefore\n};\nvar defined = function defined(p) {\n return p.x === +p.x && p.y === +p.y;\n};\nvar getX = function getX(p) {\n return p.x;\n};\nvar getY = function getY(p) {\n return p.y;\n};\nvar getCurveFactory = function getCurveFactory(type, layout) {\n if (isFunction(type)) {\n return type;\n }\n var name = \"curve\".concat(upperFirst(type));\n if ((name === 'curveMonotone' || name === 'curveBump') && layout) {\n return CURVE_FACTORIES[\"\".concat(name).concat(layout === 'vertical' ? 'Y' : 'X')];\n }\n return CURVE_FACTORIES[name] || curveLinear;\n};\n/**\n * Calculate the path of curve. Returns null if points is an empty array.\n * @return path or null\n */\nexport var getPath = function getPath(_ref) {\n var _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'linear' : _ref$type,\n _ref$points = _ref.points,\n points = _ref$points === void 0 ? [] : _ref$points,\n baseLine = _ref.baseLine,\n layout = _ref.layout,\n _ref$connectNulls = _ref.connectNulls,\n connectNulls = _ref$connectNulls === void 0 ? false : _ref$connectNulls;\n var curveFactory = getCurveFactory(type, layout);\n var formatPoints = connectNulls ? points.filter(function (entry) {\n return defined(entry);\n }) : points;\n var lineFunction;\n if (Array.isArray(baseLine)) {\n var formatBaseLine = connectNulls ? baseLine.filter(function (base) {\n return defined(base);\n }) : baseLine;\n var areaPoints = formatPoints.map(function (entry, index) {\n return _objectSpread(_objectSpread({}, entry), {}, {\n base: formatBaseLine[index]\n });\n });\n if (layout === 'vertical') {\n lineFunction = shapeArea().y(getY).x1(getX).x0(function (d) {\n return d.base.x;\n });\n } else {\n lineFunction = shapeArea().x(getX).y1(getY).y0(function (d) {\n return d.base.y;\n });\n }\n lineFunction.defined(defined).curve(curveFactory);\n return lineFunction(areaPoints);\n }\n if (layout === 'vertical' && isNumber(baseLine)) {\n lineFunction = shapeArea().y(getY).x1(getX).x0(baseLine);\n } else if (isNumber(baseLine)) {\n lineFunction = shapeArea().x(getX).y1(getY).y0(baseLine);\n } else {\n lineFunction = shapeLine().x(getX).y(getY);\n }\n lineFunction.defined(defined).curve(curveFactory);\n return lineFunction(formatPoints);\n};\nexport var Curve = function Curve(props) {\n var className = props.className,\n points = props.points,\n path = props.path,\n pathRef = props.pathRef;\n if ((!points || !points.length) && !path) {\n return null;\n }\n var realPath = points && points.length ? getPath(props) : path;\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(props, false), adaptEventHandlers(props), {\n className: clsx('recharts-curve', className),\n d: realPath,\n ref: pathRef\n }));\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar _excluded = [\"x\", \"y\", \"top\", \"left\", \"width\", \"height\", \"className\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n/**\n * @fileOverview Cross\n */\nimport React from 'react';\nimport clsx from 'clsx';\nimport { isNumber } from '../util/DataUtils';\nimport { filterProps } from '../util/ReactUtils';\nvar getPath = function getPath(x, y, width, height, top, left) {\n return \"M\".concat(x, \",\").concat(top, \"v\").concat(height, \"M\").concat(left, \",\").concat(y, \"h\").concat(width);\n};\nexport var Cross = function Cross(_ref) {\n var _ref$x = _ref.x,\n x = _ref$x === void 0 ? 0 : _ref$x,\n _ref$y = _ref.y,\n y = _ref$y === void 0 ? 0 : _ref$y,\n _ref$top = _ref.top,\n top = _ref$top === void 0 ? 0 : _ref$top,\n _ref$left = _ref.left,\n left = _ref$left === void 0 ? 0 : _ref$left,\n _ref$width = _ref.width,\n width = _ref$width === void 0 ? 0 : _ref$width,\n _ref$height = _ref.height,\n height = _ref$height === void 0 ? 0 : _ref$height,\n className = _ref.className,\n rest = _objectWithoutProperties(_ref, _excluded);\n var props = _objectSpread({\n x: x,\n y: y,\n top: top,\n left: left,\n width: width,\n height: height\n }, rest);\n if (!isNumber(x) || !isNumber(y) || !isNumber(width) || !isNumber(height) || !isNumber(top) || !isNumber(left)) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(props, true), {\n className: clsx('recharts-cross', className),\n d: getPath(x, y, width, height, top, left)\n }));\n};","import { polarToCartesian } from '../PolarUtils';\n/**\n * Only applicable for radial layouts\n * @param {Object} activeCoordinate ChartCoordinate\n * @returns {Object} RadialCursorPoints\n */\nexport function getRadialCursorPoints(activeCoordinate) {\n var cx = activeCoordinate.cx,\n cy = activeCoordinate.cy,\n radius = activeCoordinate.radius,\n startAngle = activeCoordinate.startAngle,\n endAngle = activeCoordinate.endAngle;\n var startPoint = polarToCartesian(cx, cy, radius, startAngle);\n var endPoint = polarToCartesian(cx, cy, radius, endAngle);\n return {\n points: [startPoint, endPoint],\n cx: cx,\n cy: cy,\n radius: radius,\n startAngle: startAngle,\n endAngle: endAngle\n };\n}","import { polarToCartesian } from '../PolarUtils';\nimport { getRadialCursorPoints } from './getRadialCursorPoints';\nexport function getCursorPoints(layout, activeCoordinate, offset) {\n var x1, y1, x2, y2;\n if (layout === 'horizontal') {\n x1 = activeCoordinate.x;\n x2 = x1;\n y1 = offset.top;\n y2 = offset.top + offset.height;\n } else if (layout === 'vertical') {\n y1 = activeCoordinate.y;\n y2 = y1;\n x1 = offset.left;\n x2 = offset.left + offset.width;\n } else if (activeCoordinate.cx != null && activeCoordinate.cy != null) {\n if (layout === 'centric') {\n var cx = activeCoordinate.cx,\n cy = activeCoordinate.cy,\n innerRadius = activeCoordinate.innerRadius,\n outerRadius = activeCoordinate.outerRadius,\n angle = activeCoordinate.angle;\n var innerPoint = polarToCartesian(cx, cy, innerRadius, angle);\n var outerPoint = polarToCartesian(cx, cy, outerRadius, angle);\n x1 = innerPoint.x;\n y1 = innerPoint.y;\n x2 = outerPoint.x;\n y2 = outerPoint.y;\n } else {\n return getRadialCursorPoints(activeCoordinate);\n }\n }\n return [{\n x: x1,\n y: y1\n }, {\n x: x2,\n y: y2\n }];\n}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { cloneElement, createElement, isValidElement } from 'react';\nimport clsx from 'clsx';\nimport { Curve } from '../shape/Curve';\nimport { Cross } from '../shape/Cross';\nimport { getCursorRectangle } from '../util/cursor/getCursorRectangle';\nimport { Rectangle } from '../shape/Rectangle';\nimport { getRadialCursorPoints } from '../util/cursor/getRadialCursorPoints';\nimport { Sector } from '../shape/Sector';\nimport { getCursorPoints } from '../util/cursor/getCursorPoints';\nimport { filterProps } from '../util/ReactUtils';\n/*\n * Cursor is the background, or a highlight,\n * that shows when user mouses over or activates\n * an area.\n *\n * It usually shows together with a tooltip\n * to emphasise which part of the chart does the tooltip refer to.\n */\nexport function Cursor(props) {\n var element = props.element,\n tooltipEventType = props.tooltipEventType,\n isActive = props.isActive,\n activeCoordinate = props.activeCoordinate,\n activePayload = props.activePayload,\n offset = props.offset,\n activeTooltipIndex = props.activeTooltipIndex,\n tooltipAxisBandSize = props.tooltipAxisBandSize,\n layout = props.layout,\n chartName = props.chartName;\n if (!element || !element.props.cursor || !isActive || !activeCoordinate || chartName !== 'ScatterChart' && tooltipEventType !== 'axis') {\n return null;\n }\n var restProps;\n var cursorComp = Curve;\n if (chartName === 'ScatterChart') {\n restProps = activeCoordinate;\n cursorComp = Cross;\n } else if (chartName === 'BarChart') {\n restProps = getCursorRectangle(layout, activeCoordinate, offset, tooltipAxisBandSize);\n cursorComp = Rectangle;\n } else if (layout === 'radial') {\n var _getRadialCursorPoint = getRadialCursorPoints(activeCoordinate),\n cx = _getRadialCursorPoint.cx,\n cy = _getRadialCursorPoint.cy,\n radius = _getRadialCursorPoint.radius,\n startAngle = _getRadialCursorPoint.startAngle,\n endAngle = _getRadialCursorPoint.endAngle;\n restProps = {\n cx: cx,\n cy: cy,\n startAngle: startAngle,\n endAngle: endAngle,\n innerRadius: radius,\n outerRadius: radius\n };\n cursorComp = Sector;\n } else {\n restProps = {\n points: getCursorPoints(layout, activeCoordinate, offset)\n };\n cursorComp = Curve;\n }\n var cursorProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread({\n stroke: '#ccc',\n pointerEvents: 'none'\n }, offset), restProps), filterProps(element.props.cursor, false)), {}, {\n payload: activePayload,\n payloadIndex: activeTooltipIndex,\n className: clsx('recharts-tooltip-cursor', element.props.cursor.className)\n });\n return /*#__PURE__*/isValidElement(element.props.cursor) ? /*#__PURE__*/cloneElement(element.props.cursor, cursorProps) : /*#__PURE__*/createElement(cursorComp, cursorProps);\n}","export function getCursorRectangle(layout, activeCoordinate, offset, tooltipAxisBandSize) {\n var halfSize = tooltipAxisBandSize / 2;\n return {\n stroke: 'none',\n fill: '#ccc',\n x: layout === 'horizontal' ? activeCoordinate.x - halfSize : offset.left + 0.5,\n y: layout === 'horizontal' ? offset.top + 0.5 : activeCoordinate.y - halfSize,\n width: layout === 'horizontal' ? tooltipAxisBandSize : offset.width - 1,\n height: layout === 'horizontal' ? offset.height - 1 : tooltipAxisBandSize\n };\n}","var _excluded = [\"item\"],\n _excluded2 = [\"children\", \"className\", \"width\", \"height\", \"style\", \"compact\", \"title\", \"desc\"];\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport React, { Component, cloneElement, isValidElement } from 'react';\nimport isNil from 'lodash/isNil';\nimport isFunction from 'lodash/isFunction';\nimport range from 'lodash/range';\nimport get from 'lodash/get';\nimport sortBy from 'lodash/sortBy';\nimport throttle from 'lodash/throttle';\nimport clsx from 'clsx';\n// eslint-disable-next-line no-restricted-imports\n\nimport invariant from 'tiny-invariant';\nimport { Surface } from '../container/Surface';\nimport { Layer } from '../container/Layer';\nimport { Tooltip } from '../component/Tooltip';\nimport { Legend } from '../component/Legend';\nimport { Dot } from '../shape/Dot';\nimport { isInRectangle } from '../shape/Rectangle';\nimport { filterProps, findAllByType, findChildByType, getDisplayName, getReactEventByType, isChildrenEqual, parseChildIndex, renderByOrder, validateWidthHeight } from '../util/ReactUtils';\nimport { Brush } from '../cartesian/Brush';\nimport { getOffset } from '../util/DOMUtils';\nimport { findEntryInArray, getAnyElementOfObject, hasDuplicate, isNumber, uniqueId } from '../util/DataUtils';\nimport { appendOffsetOfLegend, calculateActiveTickIndex, combineEventHandlers, getBandSizeOfAxis, getBarPosition, getBarSizeList, getDomainOfDataByKey, getDomainOfItemsWithSameAxis, getDomainOfStackGroups, getLegendProps, getMainColorOfGraphicItem, getStackedDataOfItem, getStackGroupsByAxisId, getTicksOfAxis, getTooltipItem, isCategoricalAxis, parseDomainOfCategoryAxis, parseErrorBarsOfAxis, parseSpecifiedDomain } from '../util/ChartUtils';\nimport { detectReferenceElementsDomain } from '../util/DetectReferenceElementsDomain';\nimport { inRangeOfSector, polarToCartesian } from '../util/PolarUtils';\nimport { shallowEqual } from '../util/ShallowEqual';\nimport { eventCenter, SYNC_EVENT } from '../util/Events';\nimport { adaptEventHandlers } from '../util/types';\nimport { AccessibilityManager } from './AccessibilityManager';\nimport { isDomainSpecifiedByUser } from '../util/isDomainSpecifiedByUser';\nimport { getActiveShapeIndexForTooltip, isFunnel, isPie, isScatter } from '../util/ActiveShapeUtils';\nimport { Cursor } from '../component/Cursor';\nimport { ChartLayoutContextProvider } from '../context/chartLayoutContext';\nvar ORIENT_MAP = {\n xAxis: ['bottom', 'top'],\n yAxis: ['left', 'right']\n};\nvar FULL_WIDTH_AND_HEIGHT = {\n width: '100%',\n height: '100%'\n};\nvar originCoordinate = {\n x: 0,\n y: 0\n};\n\n/**\n * This function exists as a temporary workaround.\n *\n * Why? generateCategoricalChart does not render `{children}` directly;\n * instead it passes them through `renderByOrder` function which reads their handlers.\n *\n * So, this is a handler that does nothing.\n * Once we get rid of `renderByOrder` and switch to JSX only, we can get rid of this handler too.\n *\n * @param {JSX} element as is in JSX\n * @returns {JSX} the same element\n */\nfunction renderAsIs(element) {\n return element;\n}\nvar calculateTooltipPos = function calculateTooltipPos(rangeObj, layout) {\n if (layout === 'horizontal') {\n return rangeObj.x;\n }\n if (layout === 'vertical') {\n return rangeObj.y;\n }\n if (layout === 'centric') {\n return rangeObj.angle;\n }\n return rangeObj.radius;\n};\nvar getActiveCoordinate = function getActiveCoordinate(layout, tooltipTicks, activeIndex, rangeObj) {\n var entry = tooltipTicks.find(function (tick) {\n return tick && tick.index === activeIndex;\n });\n if (entry) {\n if (layout === 'horizontal') {\n return {\n x: entry.coordinate,\n y: rangeObj.y\n };\n }\n if (layout === 'vertical') {\n return {\n x: rangeObj.x,\n y: entry.coordinate\n };\n }\n if (layout === 'centric') {\n var _angle = entry.coordinate;\n var _radius = rangeObj.radius;\n return _objectSpread(_objectSpread(_objectSpread({}, rangeObj), polarToCartesian(rangeObj.cx, rangeObj.cy, _radius, _angle)), {}, {\n angle: _angle,\n radius: _radius\n });\n }\n var radius = entry.coordinate;\n var angle = rangeObj.angle;\n return _objectSpread(_objectSpread(_objectSpread({}, rangeObj), polarToCartesian(rangeObj.cx, rangeObj.cy, radius, angle)), {}, {\n angle: angle,\n radius: radius\n });\n }\n return originCoordinate;\n};\nvar getDisplayedData = function getDisplayedData(data, _ref) {\n var graphicalItems = _ref.graphicalItems,\n dataStartIndex = _ref.dataStartIndex,\n dataEndIndex = _ref.dataEndIndex;\n var itemsData = (graphicalItems !== null && graphicalItems !== void 0 ? graphicalItems : []).reduce(function (result, child) {\n var itemData = child.props.data;\n if (itemData && itemData.length) {\n return [].concat(_toConsumableArray(result), _toConsumableArray(itemData));\n }\n return result;\n }, []);\n if (itemsData.length > 0) {\n return itemsData;\n }\n if (data && data.length && isNumber(dataStartIndex) && isNumber(dataEndIndex)) {\n return data.slice(dataStartIndex, dataEndIndex + 1);\n }\n return [];\n};\nfunction getDefaultDomainByAxisType(axisType) {\n return axisType === 'number' ? [0, 'auto'] : undefined;\n}\n\n/**\n * Get the content to be displayed in the tooltip\n * @param {Object} state Current state\n * @param {Array} chartData The data defined in chart\n * @param {Number} activeIndex Active index of data\n * @param {String} activeLabel Active label of data\n * @return {Array} The content of tooltip\n */\nvar getTooltipContent = function getTooltipContent(state, chartData, activeIndex, activeLabel) {\n var graphicalItems = state.graphicalItems,\n tooltipAxis = state.tooltipAxis;\n var displayedData = getDisplayedData(chartData, state);\n if (activeIndex < 0 || !graphicalItems || !graphicalItems.length || activeIndex >= displayedData.length) {\n return null;\n }\n // get data by activeIndex when the axis don't allow duplicated category\n return graphicalItems.reduce(function (result, child) {\n var _child$props$data;\n /**\n * Fixes: https://github.com/recharts/recharts/issues/3669\n * Defaulting to chartData below to fix an edge case where the tooltip does not include data from all charts\n * when a separate dataset is passed to chart prop data and specified on Line/Area/etc prop data\n */\n var data = (_child$props$data = child.props.data) !== null && _child$props$data !== void 0 ? _child$props$data : chartData;\n if (data && state.dataStartIndex + state.dataEndIndex !== 0) {\n data = data.slice(state.dataStartIndex, state.dataEndIndex + 1);\n }\n var payload;\n if (tooltipAxis.dataKey && !tooltipAxis.allowDuplicatedCategory) {\n // graphic child has data props\n var entries = data === undefined ? displayedData : data;\n payload = findEntryInArray(entries, tooltipAxis.dataKey, activeLabel);\n } else {\n payload = data && data[activeIndex] || displayedData[activeIndex];\n }\n if (!payload) {\n return result;\n }\n return [].concat(_toConsumableArray(result), [getTooltipItem(child, payload)]);\n }, []);\n};\n\n/**\n * Returns tooltip data based on a mouse position (as a parameter or in state)\n * @param {Object} state current state\n * @param {Array} chartData the data defined in chart\n * @param {String} layout The layout type of chart\n * @param {Object} rangeObj { x, y } coordinates\n * @return {Object} Tooltip data data\n */\nvar getTooltipData = function getTooltipData(state, chartData, layout, rangeObj) {\n var rangeData = rangeObj || {\n x: state.chartX,\n y: state.chartY\n };\n var pos = calculateTooltipPos(rangeData, layout);\n var ticks = state.orderedTooltipTicks,\n axis = state.tooltipAxis,\n tooltipTicks = state.tooltipTicks;\n var activeIndex = calculateActiveTickIndex(pos, ticks, tooltipTicks, axis);\n if (activeIndex >= 0 && tooltipTicks) {\n var activeLabel = tooltipTicks[activeIndex] && tooltipTicks[activeIndex].value;\n var activePayload = getTooltipContent(state, chartData, activeIndex, activeLabel);\n var activeCoordinate = getActiveCoordinate(layout, ticks, activeIndex, rangeData);\n return {\n activeTooltipIndex: activeIndex,\n activeLabel: activeLabel,\n activePayload: activePayload,\n activeCoordinate: activeCoordinate\n };\n }\n return null;\n};\n\n/**\n * Get the configuration of axis by the options of axis instance\n * @param {Object} props Latest props\n * @param {Array} axes The instance of axes\n * @param {Array} graphicalItems The instances of item\n * @param {String} axisType The type of axis, xAxis - x-axis, yAxis - y-axis\n * @param {String} axisIdKey The unique id of an axis\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @param {Number} dataStartIndex The start index of the data series when a brush is applied\n * @param {Number} dataEndIndex The end index of the data series when a brush is applied\n * @return {Object} Configuration\n */\nexport var getAxisMapByAxes = function getAxisMapByAxes(props, _ref2) {\n var axes = _ref2.axes,\n graphicalItems = _ref2.graphicalItems,\n axisType = _ref2.axisType,\n axisIdKey = _ref2.axisIdKey,\n stackGroups = _ref2.stackGroups,\n dataStartIndex = _ref2.dataStartIndex,\n dataEndIndex = _ref2.dataEndIndex;\n var layout = props.layout,\n children = props.children,\n stackOffset = props.stackOffset;\n var isCategorical = isCategoricalAxis(layout, axisType);\n\n // Eliminate duplicated axes\n return axes.reduce(function (result, child) {\n var _child$props$domain2;\n var _child$props = child.props,\n type = _child$props.type,\n dataKey = _child$props.dataKey,\n allowDataOverflow = _child$props.allowDataOverflow,\n allowDuplicatedCategory = _child$props.allowDuplicatedCategory,\n scale = _child$props.scale,\n ticks = _child$props.ticks,\n includeHidden = _child$props.includeHidden;\n var axisId = child.props[axisIdKey];\n if (result[axisId]) {\n return result;\n }\n var displayedData = getDisplayedData(props.data, {\n graphicalItems: graphicalItems.filter(function (item) {\n return item.props[axisIdKey] === axisId;\n }),\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n var len = displayedData.length;\n var domain, duplicateDomain, categoricalDomain;\n\n /*\n * This is a hack to short-circuit the domain creation here to enhance performance.\n * Usually, the data is used to determine the domain, but when the user specifies\n * a domain upfront (via props), there is no need to calculate the domain start and end,\n * which is very expensive for a larger amount of data.\n * The only thing that would prohibit short-circuiting is when the user doesn't allow data overflow,\n * because the axis is supposed to ignore the specified domain that way.\n */\n if (isDomainSpecifiedByUser(child.props.domain, allowDataOverflow, type)) {\n domain = parseSpecifiedDomain(child.props.domain, null, allowDataOverflow);\n /* The chart can be categorical and have the domain specified in numbers\n * we still need to calculate the categorical domain\n * TODO: refactor this more\n */\n if (isCategorical && (type === 'number' || scale !== 'auto')) {\n categoricalDomain = getDomainOfDataByKey(displayedData, dataKey, 'category');\n }\n }\n\n // if the domain is defaulted we need this for `originalDomain` as well\n var defaultDomain = getDefaultDomainByAxisType(type);\n\n // we didn't create the domain from user's props above, so we need to calculate it\n if (!domain || domain.length === 0) {\n var _child$props$domain;\n var childDomain = (_child$props$domain = child.props.domain) !== null && _child$props$domain !== void 0 ? _child$props$domain : defaultDomain;\n if (dataKey) {\n // has dataKey in \n domain = getDomainOfDataByKey(displayedData, dataKey, type);\n if (type === 'category' && isCategorical) {\n // the field type is category data and this axis is categorical axis\n var duplicate = hasDuplicate(domain);\n if (allowDuplicatedCategory && duplicate) {\n duplicateDomain = domain;\n // When category axis has duplicated text, serial numbers are used to generate scale\n domain = range(0, len);\n } else if (!allowDuplicatedCategory) {\n // remove duplicated category\n domain = parseDomainOfCategoryAxis(childDomain, domain, child).reduce(function (finalDomain, entry) {\n return finalDomain.indexOf(entry) >= 0 ? finalDomain : [].concat(_toConsumableArray(finalDomain), [entry]);\n }, []);\n }\n } else if (type === 'category') {\n // the field type is category data and this axis is numerical axis\n if (!allowDuplicatedCategory) {\n domain = parseDomainOfCategoryAxis(childDomain, domain, child).reduce(function (finalDomain, entry) {\n return finalDomain.indexOf(entry) >= 0 || entry === '' || isNil(entry) ? finalDomain : [].concat(_toConsumableArray(finalDomain), [entry]);\n }, []);\n } else {\n // eliminate undefined or null or empty string\n domain = domain.filter(function (entry) {\n return entry !== '' && !isNil(entry);\n });\n }\n } else if (type === 'number') {\n // the field type is numerical\n var errorBarsDomain = parseErrorBarsOfAxis(displayedData, graphicalItems.filter(function (item) {\n return item.props[axisIdKey] === axisId && (includeHidden || !item.props.hide);\n }), dataKey, axisType, layout);\n if (errorBarsDomain) {\n domain = errorBarsDomain;\n }\n }\n if (isCategorical && (type === 'number' || scale !== 'auto')) {\n categoricalDomain = getDomainOfDataByKey(displayedData, dataKey, 'category');\n }\n } else if (isCategorical) {\n // the axis is a categorical axis\n domain = range(0, len);\n } else if (stackGroups && stackGroups[axisId] && stackGroups[axisId].hasStack && type === 'number') {\n // when stackOffset is 'expand', the domain may be calculated as [0, 1.000000000002]\n domain = stackOffset === 'expand' ? [0, 1] : getDomainOfStackGroups(stackGroups[axisId].stackGroups, dataStartIndex, dataEndIndex);\n } else {\n domain = getDomainOfItemsWithSameAxis(displayedData, graphicalItems.filter(function (item) {\n return item.props[axisIdKey] === axisId && (includeHidden || !item.props.hide);\n }), type, layout, true);\n }\n if (type === 'number') {\n // To detect wether there is any reference lines whose props alwaysShow is true\n domain = detectReferenceElementsDomain(children, domain, axisId, axisType, ticks);\n if (childDomain) {\n domain = parseSpecifiedDomain(childDomain, domain, allowDataOverflow);\n }\n } else if (type === 'category' && childDomain) {\n var axisDomain = childDomain;\n var isDomainValid = domain.every(function (entry) {\n return axisDomain.indexOf(entry) >= 0;\n });\n if (isDomainValid) {\n domain = axisDomain;\n }\n }\n }\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, axisId, _objectSpread(_objectSpread({}, child.props), {}, {\n axisType: axisType,\n domain: domain,\n categoricalDomain: categoricalDomain,\n duplicateDomain: duplicateDomain,\n originalDomain: (_child$props$domain2 = child.props.domain) !== null && _child$props$domain2 !== void 0 ? _child$props$domain2 : defaultDomain,\n isCategorical: isCategorical,\n layout: layout\n })));\n }, {});\n};\n\n/**\n * Get the configuration of axis by the options of item,\n * this kind of axis does not display in chart\n * @param {Object} props Latest props\n * @param {Array} graphicalItems The instances of item\n * @param {ReactElement} Axis Axis Component\n * @param {String} axisType The type of axis, xAxis - x-axis, yAxis - y-axis\n * @param {String} axisIdKey The unique id of an axis\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @param {Number} dataStartIndex The start index of the data series when a brush is applied\n * @param {Number} dataEndIndex The end index of the data series when a brush is applied\n * @return {Object} Configuration\n */\nvar getAxisMapByItems = function getAxisMapByItems(props, _ref3) {\n var graphicalItems = _ref3.graphicalItems,\n Axis = _ref3.Axis,\n axisType = _ref3.axisType,\n axisIdKey = _ref3.axisIdKey,\n stackGroups = _ref3.stackGroups,\n dataStartIndex = _ref3.dataStartIndex,\n dataEndIndex = _ref3.dataEndIndex;\n var layout = props.layout,\n children = props.children;\n var displayedData = getDisplayedData(props.data, {\n graphicalItems: graphicalItems,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n var len = displayedData.length;\n var isCategorical = isCategoricalAxis(layout, axisType);\n var index = -1;\n\n // The default type of x-axis is category axis,\n // The default contents of x-axis is the serial numbers of data\n // The default type of y-axis is number axis\n // The default contents of y-axis is the domain of data\n return graphicalItems.reduce(function (result, child) {\n var axisId = child.props[axisIdKey];\n var originalDomain = getDefaultDomainByAxisType('number');\n if (!result[axisId]) {\n index++;\n var domain;\n if (isCategorical) {\n domain = range(0, len);\n } else if (stackGroups && stackGroups[axisId] && stackGroups[axisId].hasStack) {\n domain = getDomainOfStackGroups(stackGroups[axisId].stackGroups, dataStartIndex, dataEndIndex);\n domain = detectReferenceElementsDomain(children, domain, axisId, axisType);\n } else {\n domain = parseSpecifiedDomain(originalDomain, getDomainOfItemsWithSameAxis(displayedData, graphicalItems.filter(function (item) {\n return item.props[axisIdKey] === axisId && !item.props.hide;\n }), 'number', layout), Axis.defaultProps.allowDataOverflow);\n domain = detectReferenceElementsDomain(children, domain, axisId, axisType);\n }\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, axisId, _objectSpread(_objectSpread({\n axisType: axisType\n }, Axis.defaultProps), {}, {\n hide: true,\n orientation: get(ORIENT_MAP, \"\".concat(axisType, \".\").concat(index % 2), null),\n domain: domain,\n originalDomain: originalDomain,\n isCategorical: isCategorical,\n layout: layout\n // specify scale when no Axis\n // scale: isCategorical ? 'band' : 'linear',\n })));\n }\n return result;\n }, {});\n};\n\n/**\n * Get the configuration of all x-axis or y-axis\n * @param {Object} props Latest props\n * @param {String} axisType The type of axis\n * @param {React.ComponentType} [AxisComp] Axis Component\n * @param {Array} graphicalItems The instances of item\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @param {Number} dataStartIndex The start index of the data series when a brush is applied\n * @param {Number} dataEndIndex The end index of the data series when a brush is applied\n * @return {Object} Configuration\n */\nvar getAxisMap = function getAxisMap(props, _ref4) {\n var _ref4$axisType = _ref4.axisType,\n axisType = _ref4$axisType === void 0 ? 'xAxis' : _ref4$axisType,\n AxisComp = _ref4.AxisComp,\n graphicalItems = _ref4.graphicalItems,\n stackGroups = _ref4.stackGroups,\n dataStartIndex = _ref4.dataStartIndex,\n dataEndIndex = _ref4.dataEndIndex;\n var children = props.children;\n var axisIdKey = \"\".concat(axisType, \"Id\");\n // Get all the instance of Axis\n var axes = findAllByType(children, AxisComp);\n var axisMap = {};\n if (axes && axes.length) {\n axisMap = getAxisMapByAxes(props, {\n axes: axes,\n graphicalItems: graphicalItems,\n axisType: axisType,\n axisIdKey: axisIdKey,\n stackGroups: stackGroups,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n } else if (graphicalItems && graphicalItems.length) {\n axisMap = getAxisMapByItems(props, {\n Axis: AxisComp,\n graphicalItems: graphicalItems,\n axisType: axisType,\n axisIdKey: axisIdKey,\n stackGroups: stackGroups,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n }\n return axisMap;\n};\nvar tooltipTicksGenerator = function tooltipTicksGenerator(axisMap) {\n var axis = getAnyElementOfObject(axisMap);\n var tooltipTicks = getTicksOfAxis(axis, false, true);\n return {\n tooltipTicks: tooltipTicks,\n orderedTooltipTicks: sortBy(tooltipTicks, function (o) {\n return o.coordinate;\n }),\n tooltipAxis: axis,\n tooltipAxisBandSize: getBandSizeOfAxis(axis, tooltipTicks)\n };\n};\n\n/**\n * Returns default, reset state for the categorical chart.\n * @param {Object} props Props object to use when creating the default state\n * @return {Object} Whole new state\n */\nexport var createDefaultState = function createDefaultState(props) {\n var children = props.children,\n defaultShowTooltip = props.defaultShowTooltip;\n var brushItem = findChildByType(children, Brush);\n var startIndex = 0;\n var endIndex = 0;\n if (props.data && props.data.length !== 0) {\n endIndex = props.data.length - 1;\n }\n if (brushItem && brushItem.props) {\n if (brushItem.props.startIndex >= 0) {\n startIndex = brushItem.props.startIndex;\n }\n if (brushItem.props.endIndex >= 0) {\n endIndex = brushItem.props.endIndex;\n }\n }\n return {\n chartX: 0,\n chartY: 0,\n dataStartIndex: startIndex,\n dataEndIndex: endIndex,\n activeTooltipIndex: -1,\n isTooltipActive: Boolean(defaultShowTooltip)\n };\n};\nvar hasGraphicalBarItem = function hasGraphicalBarItem(graphicalItems) {\n if (!graphicalItems || !graphicalItems.length) {\n return false;\n }\n return graphicalItems.some(function (item) {\n var name = getDisplayName(item && item.type);\n return name && name.indexOf('Bar') >= 0;\n });\n};\nvar getAxisNameByLayout = function getAxisNameByLayout(layout) {\n if (layout === 'horizontal') {\n return {\n numericAxisName: 'yAxis',\n cateAxisName: 'xAxis'\n };\n }\n if (layout === 'vertical') {\n return {\n numericAxisName: 'xAxis',\n cateAxisName: 'yAxis'\n };\n }\n if (layout === 'centric') {\n return {\n numericAxisName: 'radiusAxis',\n cateAxisName: 'angleAxis'\n };\n }\n return {\n numericAxisName: 'angleAxis',\n cateAxisName: 'radiusAxis'\n };\n};\n\n/**\n * Calculate the offset of main part in the svg element\n * @param {Object} params.props Latest props\n * @param {Array} params.graphicalItems The instances of item\n * @param {Object} params.xAxisMap The configuration of x-axis\n * @param {Object} params.yAxisMap The configuration of y-axis\n * @param {Object} prevLegendBBox The boundary box of legend\n * @return {Object} The offset of main part in the svg element\n */\nvar calculateOffset = function calculateOffset(_ref5, prevLegendBBox) {\n var props = _ref5.props,\n graphicalItems = _ref5.graphicalItems,\n _ref5$xAxisMap = _ref5.xAxisMap,\n xAxisMap = _ref5$xAxisMap === void 0 ? {} : _ref5$xAxisMap,\n _ref5$yAxisMap = _ref5.yAxisMap,\n yAxisMap = _ref5$yAxisMap === void 0 ? {} : _ref5$yAxisMap;\n var width = props.width,\n height = props.height,\n children = props.children;\n var margin = props.margin || {};\n var brushItem = findChildByType(children, Brush);\n var legendItem = findChildByType(children, Legend);\n var offsetH = Object.keys(yAxisMap).reduce(function (result, id) {\n var entry = yAxisMap[id];\n var orientation = entry.orientation;\n if (!entry.mirror && !entry.hide) {\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, orientation, result[orientation] + entry.width));\n }\n return result;\n }, {\n left: margin.left || 0,\n right: margin.right || 0\n });\n var offsetV = Object.keys(xAxisMap).reduce(function (result, id) {\n var entry = xAxisMap[id];\n var orientation = entry.orientation;\n if (!entry.mirror && !entry.hide) {\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, orientation, get(result, \"\".concat(orientation)) + entry.height));\n }\n return result;\n }, {\n top: margin.top || 0,\n bottom: margin.bottom || 0\n });\n var offset = _objectSpread(_objectSpread({}, offsetV), offsetH);\n var brushBottom = offset.bottom;\n if (brushItem) {\n offset.bottom += brushItem.props.height || Brush.defaultProps.height;\n }\n if (legendItem && prevLegendBBox) {\n // @ts-expect-error margin is optional in props but required in appendOffsetOfLegend\n offset = appendOffsetOfLegend(offset, graphicalItems, props, prevLegendBBox);\n }\n var offsetWidth = width - offset.left - offset.right;\n var offsetHeight = height - offset.top - offset.bottom;\n return _objectSpread(_objectSpread({\n brushBottom: brushBottom\n }, offset), {}, {\n // never return negative values for height and width\n width: Math.max(offsetWidth, 0),\n height: Math.max(offsetHeight, 0)\n });\n};\n// Determine the size of the axis, used for calculation of relative bar sizes\nvar getCartesianAxisSize = function getCartesianAxisSize(axisObj, axisName) {\n if (axisName === 'xAxis') {\n return axisObj[axisName].width;\n }\n if (axisName === 'yAxis') {\n return axisObj[axisName].height;\n }\n // This is only supported for Bar charts (i.e. charts with cartesian axes), so we should never get here\n return undefined;\n};\nexport var generateCategoricalChart = function generateCategoricalChart(_ref6) {\n var _CategoricalChartWrapper;\n var chartName = _ref6.chartName,\n GraphicalChild = _ref6.GraphicalChild,\n _ref6$defaultTooltipE = _ref6.defaultTooltipEventType,\n defaultTooltipEventType = _ref6$defaultTooltipE === void 0 ? 'axis' : _ref6$defaultTooltipE,\n _ref6$validateTooltip = _ref6.validateTooltipEventTypes,\n validateTooltipEventTypes = _ref6$validateTooltip === void 0 ? ['axis'] : _ref6$validateTooltip,\n axisComponents = _ref6.axisComponents,\n legendContent = _ref6.legendContent,\n formatAxisMap = _ref6.formatAxisMap,\n defaultProps = _ref6.defaultProps;\n var getFormatItems = function getFormatItems(props, currentState) {\n var graphicalItems = currentState.graphicalItems,\n stackGroups = currentState.stackGroups,\n offset = currentState.offset,\n updateId = currentState.updateId,\n dataStartIndex = currentState.dataStartIndex,\n dataEndIndex = currentState.dataEndIndex;\n var barSize = props.barSize,\n layout = props.layout,\n barGap = props.barGap,\n barCategoryGap = props.barCategoryGap,\n globalMaxBarSize = props.maxBarSize;\n var _getAxisNameByLayout = getAxisNameByLayout(layout),\n numericAxisName = _getAxisNameByLayout.numericAxisName,\n cateAxisName = _getAxisNameByLayout.cateAxisName;\n var hasBar = hasGraphicalBarItem(graphicalItems);\n var formattedItems = [];\n graphicalItems.forEach(function (item, index) {\n var displayedData = getDisplayedData(props.data, {\n graphicalItems: [item],\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n var _item$props = item.props,\n dataKey = _item$props.dataKey,\n childMaxBarSize = _item$props.maxBarSize;\n // axisId of the numerical axis\n var numericAxisId = item.props[\"\".concat(numericAxisName, \"Id\")];\n // axisId of the categorical axis\n var cateAxisId = item.props[\"\".concat(cateAxisName, \"Id\")];\n var axisObjInitialValue = {};\n var axisObj = axisComponents.reduce(function (result, entry) {\n var _item$type$displayNam, _item$type;\n // map of axisId to axis for a specific axis type\n var axisMap = currentState[\"\".concat(entry.axisType, \"Map\")];\n // axisId of axis we are currently computing\n var id = item.props[\"\".concat(entry.axisType, \"Id\")];\n\n /**\n * tell the user in dev mode that their configuration is incorrect if we cannot find a match between\n * axisId on the chart and axisId on the axis. zAxis does not get passed in the map for ComposedChart,\n * leave it out of the check for now.\n */\n !(axisMap && axisMap[id] || entry.axisType === 'zAxis') ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Specifying a(n) \".concat(entry.axisType, \"Id requires a corresponding \").concat(entry.axisType\n // @ts-expect-error we should stop reading data from ReactElements\n , \"Id on the targeted graphical component \").concat((_item$type$displayNam = item === null || item === void 0 || (_item$type = item.type) === null || _item$type === void 0 ? void 0 : _item$type.displayName) !== null && _item$type$displayNam !== void 0 ? _item$type$displayNam : '')) : invariant(false) : void 0;\n\n // the axis we are currently formatting\n var axis = axisMap[id];\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty(_defineProperty({}, entry.axisType, axis), \"\".concat(entry.axisType, \"Ticks\"), getTicksOfAxis(axis)));\n }, axisObjInitialValue);\n var cateAxis = axisObj[cateAxisName];\n var cateTicks = axisObj[\"\".concat(cateAxisName, \"Ticks\")];\n var stackedData = stackGroups && stackGroups[numericAxisId] && stackGroups[numericAxisId].hasStack && getStackedDataOfItem(item, stackGroups[numericAxisId].stackGroups);\n var itemIsBar = getDisplayName(item.type).indexOf('Bar') >= 0;\n var bandSize = getBandSizeOfAxis(cateAxis, cateTicks);\n var barPosition = [];\n var sizeList = hasBar && getBarSizeList({\n barSize: barSize,\n stackGroups: stackGroups,\n totalSize: getCartesianAxisSize(axisObj, cateAxisName)\n });\n if (itemIsBar) {\n var _ref7, _getBandSizeOfAxis;\n // If it is bar, calculate the position of bar\n var maxBarSize = isNil(childMaxBarSize) ? globalMaxBarSize : childMaxBarSize;\n var barBandSize = (_ref7 = (_getBandSizeOfAxis = getBandSizeOfAxis(cateAxis, cateTicks, true)) !== null && _getBandSizeOfAxis !== void 0 ? _getBandSizeOfAxis : maxBarSize) !== null && _ref7 !== void 0 ? _ref7 : 0;\n barPosition = getBarPosition({\n barGap: barGap,\n barCategoryGap: barCategoryGap,\n bandSize: barBandSize !== bandSize ? barBandSize : bandSize,\n sizeList: sizeList[cateAxisId],\n maxBarSize: maxBarSize\n });\n if (barBandSize !== bandSize) {\n barPosition = barPosition.map(function (pos) {\n return _objectSpread(_objectSpread({}, pos), {}, {\n position: _objectSpread(_objectSpread({}, pos.position), {}, {\n offset: pos.position.offset - barBandSize / 2\n })\n });\n });\n }\n }\n // @ts-expect-error we should stop reading data from ReactElements\n var composedFn = item && item.type && item.type.getComposedData;\n if (composedFn) {\n formattedItems.push({\n props: _objectSpread(_objectSpread({}, composedFn(_objectSpread(_objectSpread({}, axisObj), {}, {\n displayedData: displayedData,\n props: props,\n dataKey: dataKey,\n item: item,\n bandSize: bandSize,\n barPosition: barPosition,\n offset: offset,\n stackedData: stackedData,\n layout: layout,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n }))), {}, _defineProperty(_defineProperty(_defineProperty({\n key: item.key || \"item-\".concat(index)\n }, numericAxisName, axisObj[numericAxisName]), cateAxisName, axisObj[cateAxisName]), \"animationId\", updateId)),\n childIndex: parseChildIndex(item, props.children),\n item: item\n });\n }\n });\n return formattedItems;\n };\n\n /**\n * The AxisMaps are expensive to render on large data sets\n * so provide the ability to store them in state and only update them when necessary\n * they are dependent upon the start and end index of\n * the brush so it's important that this method is called _after_\n * the state is updated with any new start/end indices\n *\n * @param {Object} props The props object to be used for updating the axismaps\n * dataStartIndex: The start index of the data series when a brush is applied\n * dataEndIndex: The end index of the data series when a brush is applied\n * updateId: The update id\n * @param {Object} prevState Prev state\n * @return {Object} state New state to set\n */\n var updateStateOfAxisMapsOffsetAndStackGroups = function updateStateOfAxisMapsOffsetAndStackGroups(_ref8, prevState) {\n var props = _ref8.props,\n dataStartIndex = _ref8.dataStartIndex,\n dataEndIndex = _ref8.dataEndIndex,\n updateId = _ref8.updateId;\n if (!validateWidthHeight({\n props: props\n })) {\n return null;\n }\n var children = props.children,\n layout = props.layout,\n stackOffset = props.stackOffset,\n data = props.data,\n reverseStackOrder = props.reverseStackOrder;\n var _getAxisNameByLayout2 = getAxisNameByLayout(layout),\n numericAxisName = _getAxisNameByLayout2.numericAxisName,\n cateAxisName = _getAxisNameByLayout2.cateAxisName;\n var graphicalItems = findAllByType(children, GraphicalChild);\n var stackGroups = getStackGroupsByAxisId(data, graphicalItems, \"\".concat(numericAxisName, \"Id\"), \"\".concat(cateAxisName, \"Id\"), stackOffset, reverseStackOrder);\n var axisObj = axisComponents.reduce(function (result, entry) {\n var name = \"\".concat(entry.axisType, \"Map\");\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, name, getAxisMap(props, _objectSpread(_objectSpread({}, entry), {}, {\n graphicalItems: graphicalItems,\n stackGroups: entry.axisType === numericAxisName && stackGroups,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n }))));\n }, {});\n var offset = calculateOffset(_objectSpread(_objectSpread({}, axisObj), {}, {\n props: props,\n graphicalItems: graphicalItems\n }), prevState === null || prevState === void 0 ? void 0 : prevState.legendBBox);\n Object.keys(axisObj).forEach(function (key) {\n axisObj[key] = formatAxisMap(props, axisObj[key], offset, key.replace('Map', ''), chartName);\n });\n var cateAxisMap = axisObj[\"\".concat(cateAxisName, \"Map\")];\n var ticksObj = tooltipTicksGenerator(cateAxisMap);\n var formattedGraphicalItems = getFormatItems(props, _objectSpread(_objectSpread({}, axisObj), {}, {\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex,\n updateId: updateId,\n graphicalItems: graphicalItems,\n stackGroups: stackGroups,\n offset: offset\n }));\n return _objectSpread(_objectSpread({\n formattedGraphicalItems: formattedGraphicalItems,\n graphicalItems: graphicalItems,\n offset: offset,\n stackGroups: stackGroups\n }, ticksObj), axisObj);\n };\n return _CategoricalChartWrapper = /*#__PURE__*/function (_Component) {\n _inherits(CategoricalChartWrapper, _Component);\n function CategoricalChartWrapper(_props) {\n var _props$id, _props$throttleDelay;\n var _this;\n _classCallCheck(this, CategoricalChartWrapper);\n _this = _callSuper(this, CategoricalChartWrapper, [_props]);\n _defineProperty(_assertThisInitialized(_this), \"eventEmitterSymbol\", Symbol('rechartsEventEmitter'));\n _defineProperty(_assertThisInitialized(_this), \"accessibilityManager\", new AccessibilityManager());\n _defineProperty(_assertThisInitialized(_this), \"handleLegendBBoxUpdate\", function (box) {\n if (box) {\n var _this$state = _this.state,\n dataStartIndex = _this$state.dataStartIndex,\n dataEndIndex = _this$state.dataEndIndex,\n updateId = _this$state.updateId;\n _this.setState(_objectSpread({\n legendBBox: box\n }, updateStateOfAxisMapsOffsetAndStackGroups({\n props: _this.props,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex,\n updateId: updateId\n }, _objectSpread(_objectSpread({}, _this.state), {}, {\n legendBBox: box\n }))));\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleReceiveSyncEvent\", function (cId, data, emitter) {\n if (_this.props.syncId === cId) {\n if (emitter === _this.eventEmitterSymbol && typeof _this.props.syncMethod !== 'function') {\n return;\n }\n _this.applySyncEvent(data);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleBrushChange\", function (_ref9) {\n var startIndex = _ref9.startIndex,\n endIndex = _ref9.endIndex;\n // Only trigger changes if the extents of the brush have actually changed\n if (startIndex !== _this.state.dataStartIndex || endIndex !== _this.state.dataEndIndex) {\n var updateId = _this.state.updateId;\n _this.setState(function () {\n return _objectSpread({\n dataStartIndex: startIndex,\n dataEndIndex: endIndex\n }, updateStateOfAxisMapsOffsetAndStackGroups({\n props: _this.props,\n dataStartIndex: startIndex,\n dataEndIndex: endIndex,\n updateId: updateId\n }, _this.state));\n });\n _this.triggerSyncEvent({\n dataStartIndex: startIndex,\n dataEndIndex: endIndex\n });\n }\n });\n /**\n * The handler of mouse entering chart\n * @param {Object} e Event object\n * @return {Null} null\n */\n _defineProperty(_assertThisInitialized(_this), \"handleMouseEnter\", function (e) {\n var mouse = _this.getMouseInfo(e);\n if (mouse) {\n var _nextState = _objectSpread(_objectSpread({}, mouse), {}, {\n isTooltipActive: true\n });\n _this.setState(_nextState);\n _this.triggerSyncEvent(_nextState);\n var onMouseEnter = _this.props.onMouseEnter;\n if (isFunction(onMouseEnter)) {\n onMouseEnter(_nextState, e);\n }\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"triggeredAfterMouseMove\", function (e) {\n var mouse = _this.getMouseInfo(e);\n var nextState = mouse ? _objectSpread(_objectSpread({}, mouse), {}, {\n isTooltipActive: true\n }) : {\n isTooltipActive: false\n };\n _this.setState(nextState);\n _this.triggerSyncEvent(nextState);\n var onMouseMove = _this.props.onMouseMove;\n if (isFunction(onMouseMove)) {\n onMouseMove(nextState, e);\n }\n });\n /**\n * The handler of mouse entering a scatter\n * @param {Object} el The active scatter\n * @return {Object} no return\n */\n _defineProperty(_assertThisInitialized(_this), \"handleItemMouseEnter\", function (el) {\n _this.setState(function () {\n return {\n isTooltipActive: true,\n activeItem: el,\n activePayload: el.tooltipPayload,\n activeCoordinate: el.tooltipPosition || {\n x: el.cx,\n y: el.cy\n }\n };\n });\n });\n /**\n * The handler of mouse leaving a scatter\n * @return {Object} no return\n */\n _defineProperty(_assertThisInitialized(_this), \"handleItemMouseLeave\", function () {\n _this.setState(function () {\n return {\n isTooltipActive: false\n };\n });\n });\n /**\n * The handler of mouse moving in chart\n * @param {React.MouseEvent} e Event object\n * @return {void} no return\n */\n _defineProperty(_assertThisInitialized(_this), \"handleMouseMove\", function (e) {\n e.persist();\n _this.throttleTriggeredAfterMouseMove(e);\n });\n /**\n * The handler if mouse leaving chart\n * @param {Object} e Event object\n * @return {Null} no return\n */\n _defineProperty(_assertThisInitialized(_this), \"handleMouseLeave\", function (e) {\n _this.throttleTriggeredAfterMouseMove.cancel();\n var nextState = {\n isTooltipActive: false\n };\n _this.setState(nextState);\n _this.triggerSyncEvent(nextState);\n var onMouseLeave = _this.props.onMouseLeave;\n if (isFunction(onMouseLeave)) {\n onMouseLeave(nextState, e);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleOuterEvent\", function (e) {\n var eventName = getReactEventByType(e);\n var event = get(_this.props, \"\".concat(eventName));\n if (eventName && isFunction(event)) {\n var _mouse;\n var mouse;\n if (/.*touch.*/i.test(eventName)) {\n mouse = _this.getMouseInfo(e.changedTouches[0]);\n } else {\n mouse = _this.getMouseInfo(e);\n }\n event((_mouse = mouse) !== null && _mouse !== void 0 ? _mouse : {}, e);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleClick\", function (e) {\n var mouse = _this.getMouseInfo(e);\n if (mouse) {\n var _nextState2 = _objectSpread(_objectSpread({}, mouse), {}, {\n isTooltipActive: true\n });\n _this.setState(_nextState2);\n _this.triggerSyncEvent(_nextState2);\n var onClick = _this.props.onClick;\n if (isFunction(onClick)) {\n onClick(_nextState2, e);\n }\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleMouseDown\", function (e) {\n var onMouseDown = _this.props.onMouseDown;\n if (isFunction(onMouseDown)) {\n var _nextState3 = _this.getMouseInfo(e);\n onMouseDown(_nextState3, e);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleMouseUp\", function (e) {\n var onMouseUp = _this.props.onMouseUp;\n if (isFunction(onMouseUp)) {\n var _nextState4 = _this.getMouseInfo(e);\n onMouseUp(_nextState4, e);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleTouchMove\", function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.throttleTriggeredAfterMouseMove(e.changedTouches[0]);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleTouchStart\", function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleMouseDown(e.changedTouches[0]);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleTouchEnd\", function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleMouseUp(e.changedTouches[0]);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"triggerSyncEvent\", function (data) {\n if (_this.props.syncId !== undefined) {\n eventCenter.emit(SYNC_EVENT, _this.props.syncId, data, _this.eventEmitterSymbol);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"applySyncEvent\", function (data) {\n var _this$props = _this.props,\n layout = _this$props.layout,\n syncMethod = _this$props.syncMethod;\n var updateId = _this.state.updateId;\n var dataStartIndex = data.dataStartIndex,\n dataEndIndex = data.dataEndIndex;\n if (data.dataStartIndex !== undefined || data.dataEndIndex !== undefined) {\n _this.setState(_objectSpread({\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n }, updateStateOfAxisMapsOffsetAndStackGroups({\n props: _this.props,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex,\n updateId: updateId\n }, _this.state)));\n } else if (data.activeTooltipIndex !== undefined) {\n var chartX = data.chartX,\n chartY = data.chartY;\n var activeTooltipIndex = data.activeTooltipIndex;\n var _this$state2 = _this.state,\n offset = _this$state2.offset,\n tooltipTicks = _this$state2.tooltipTicks;\n if (!offset) {\n return;\n }\n if (typeof syncMethod === 'function') {\n // Call a callback function. If there is an application specific algorithm\n activeTooltipIndex = syncMethod(tooltipTicks, data);\n } else if (syncMethod === 'value') {\n // Set activeTooltipIndex to the index with the same value as data.activeLabel\n // For loop instead of findIndex because the latter is very slow in some browsers\n activeTooltipIndex = -1; // in case we cannot find the element\n for (var i = 0; i < tooltipTicks.length; i++) {\n if (tooltipTicks[i].value === data.activeLabel) {\n activeTooltipIndex = i;\n break;\n }\n }\n }\n var viewBox = _objectSpread(_objectSpread({}, offset), {}, {\n x: offset.left,\n y: offset.top\n });\n // When a categorical chart is combined with another chart, the value of chartX\n // and chartY may beyond the boundaries.\n var validateChartX = Math.min(chartX, viewBox.x + viewBox.width);\n var validateChartY = Math.min(chartY, viewBox.y + viewBox.height);\n var activeLabel = tooltipTicks[activeTooltipIndex] && tooltipTicks[activeTooltipIndex].value;\n var activePayload = getTooltipContent(_this.state, _this.props.data, activeTooltipIndex);\n var activeCoordinate = tooltipTicks[activeTooltipIndex] ? {\n x: layout === 'horizontal' ? tooltipTicks[activeTooltipIndex].coordinate : validateChartX,\n y: layout === 'horizontal' ? validateChartY : tooltipTicks[activeTooltipIndex].coordinate\n } : originCoordinate;\n _this.setState(_objectSpread(_objectSpread({}, data), {}, {\n activeLabel: activeLabel,\n activeCoordinate: activeCoordinate,\n activePayload: activePayload,\n activeTooltipIndex: activeTooltipIndex\n }));\n } else {\n _this.setState(data);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"renderCursor\", function (element) {\n var _element$props$active;\n var _this$state3 = _this.state,\n isTooltipActive = _this$state3.isTooltipActive,\n activeCoordinate = _this$state3.activeCoordinate,\n activePayload = _this$state3.activePayload,\n offset = _this$state3.offset,\n activeTooltipIndex = _this$state3.activeTooltipIndex,\n tooltipAxisBandSize = _this$state3.tooltipAxisBandSize;\n var tooltipEventType = _this.getTooltipEventType();\n // The cursor is a part of the Tooltip, and it should be shown (by default) when the Tooltip is active.\n var isActive = (_element$props$active = element.props.active) !== null && _element$props$active !== void 0 ? _element$props$active : isTooltipActive;\n var layout = _this.props.layout;\n var key = element.key || '_recharts-cursor';\n return /*#__PURE__*/React.createElement(Cursor, {\n key: key,\n activeCoordinate: activeCoordinate,\n activePayload: activePayload,\n activeTooltipIndex: activeTooltipIndex,\n chartName: chartName,\n element: element,\n isActive: isActive,\n layout: layout,\n offset: offset,\n tooltipAxisBandSize: tooltipAxisBandSize,\n tooltipEventType: tooltipEventType\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"renderPolarAxis\", function (element, displayName, index) {\n var axisType = get(element, 'type.axisType');\n var axisMap = get(_this.state, \"\".concat(axisType, \"Map\"));\n var axisOption = axisMap && axisMap[element.props[\"\".concat(axisType, \"Id\")]];\n return /*#__PURE__*/cloneElement(element, _objectSpread(_objectSpread({}, axisOption), {}, {\n className: clsx(axisType, axisOption.className),\n key: element.key || \"\".concat(displayName, \"-\").concat(index),\n ticks: getTicksOfAxis(axisOption, true)\n }));\n });\n _defineProperty(_assertThisInitialized(_this), \"renderPolarGrid\", function (element) {\n var _element$props = element.props,\n radialLines = _element$props.radialLines,\n polarAngles = _element$props.polarAngles,\n polarRadius = _element$props.polarRadius;\n var _this$state4 = _this.state,\n radiusAxisMap = _this$state4.radiusAxisMap,\n angleAxisMap = _this$state4.angleAxisMap;\n var radiusAxis = getAnyElementOfObject(radiusAxisMap);\n var angleAxis = getAnyElementOfObject(angleAxisMap);\n var cx = angleAxis.cx,\n cy = angleAxis.cy,\n innerRadius = angleAxis.innerRadius,\n outerRadius = angleAxis.outerRadius;\n return /*#__PURE__*/cloneElement(element, {\n polarAngles: Array.isArray(polarAngles) ? polarAngles : getTicksOfAxis(angleAxis, true).map(function (entry) {\n return entry.coordinate;\n }),\n polarRadius: Array.isArray(polarRadius) ? polarRadius : getTicksOfAxis(radiusAxis, true).map(function (entry) {\n return entry.coordinate;\n }),\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n key: element.key || 'polar-grid',\n radialLines: radialLines\n });\n });\n /**\n * Draw legend\n * @return {ReactElement} The instance of Legend\n */\n _defineProperty(_assertThisInitialized(_this), \"renderLegend\", function () {\n var formattedGraphicalItems = _this.state.formattedGraphicalItems;\n var _this$props2 = _this.props,\n children = _this$props2.children,\n width = _this$props2.width,\n height = _this$props2.height;\n var margin = _this.props.margin || {};\n var legendWidth = width - (margin.left || 0) - (margin.right || 0);\n var props = getLegendProps({\n children: children,\n formattedGraphicalItems: formattedGraphicalItems,\n legendWidth: legendWidth,\n legendContent: legendContent\n });\n if (!props) {\n return null;\n }\n var item = props.item,\n otherProps = _objectWithoutProperties(props, _excluded);\n return /*#__PURE__*/cloneElement(item, _objectSpread(_objectSpread({}, otherProps), {}, {\n chartWidth: width,\n chartHeight: height,\n margin: margin,\n onBBoxUpdate: _this.handleLegendBBoxUpdate\n }));\n });\n /**\n * Draw Tooltip\n * @return {ReactElement} The instance of Tooltip\n */\n _defineProperty(_assertThisInitialized(_this), \"renderTooltip\", function () {\n var _tooltipItem$props$ac;\n var _this$props3 = _this.props,\n children = _this$props3.children,\n accessibilityLayer = _this$props3.accessibilityLayer;\n var tooltipItem = findChildByType(children, Tooltip);\n if (!tooltipItem) {\n return null;\n }\n var _this$state5 = _this.state,\n isTooltipActive = _this$state5.isTooltipActive,\n activeCoordinate = _this$state5.activeCoordinate,\n activePayload = _this$state5.activePayload,\n activeLabel = _this$state5.activeLabel,\n offset = _this$state5.offset;\n\n // The user can set isActive on the Tooltip,\n // and we respect the user to enable customisation.\n // The Tooltip is active if the user has set isActive, or if the tooltip is active due to a mouse event.\n var isActive = (_tooltipItem$props$ac = tooltipItem.props.active) !== null && _tooltipItem$props$ac !== void 0 ? _tooltipItem$props$ac : isTooltipActive;\n return /*#__PURE__*/cloneElement(tooltipItem, {\n viewBox: _objectSpread(_objectSpread({}, offset), {}, {\n x: offset.left,\n y: offset.top\n }),\n active: isActive,\n label: activeLabel,\n payload: isActive ? activePayload : [],\n coordinate: activeCoordinate,\n accessibilityLayer: accessibilityLayer\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"renderBrush\", function (element) {\n var _this$props4 = _this.props,\n margin = _this$props4.margin,\n data = _this$props4.data;\n var _this$state6 = _this.state,\n offset = _this$state6.offset,\n dataStartIndex = _this$state6.dataStartIndex,\n dataEndIndex = _this$state6.dataEndIndex,\n updateId = _this$state6.updateId;\n\n // TODO: update brush when children update\n return /*#__PURE__*/cloneElement(element, {\n key: element.key || '_recharts-brush',\n onChange: combineEventHandlers(_this.handleBrushChange, element.props.onChange),\n data: data,\n x: isNumber(element.props.x) ? element.props.x : offset.left,\n y: isNumber(element.props.y) ? element.props.y : offset.top + offset.height + offset.brushBottom - (margin.bottom || 0),\n width: isNumber(element.props.width) ? element.props.width : offset.width,\n startIndex: dataStartIndex,\n endIndex: dataEndIndex,\n updateId: \"brush-\".concat(updateId)\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"renderReferenceElement\", function (element, displayName, index) {\n if (!element) {\n return null;\n }\n var _assertThisInitialize = _assertThisInitialized(_this),\n clipPathId = _assertThisInitialize.clipPathId;\n var _this$state7 = _this.state,\n xAxisMap = _this$state7.xAxisMap,\n yAxisMap = _this$state7.yAxisMap,\n offset = _this$state7.offset;\n var _element$props2 = element.props,\n xAxisId = _element$props2.xAxisId,\n yAxisId = _element$props2.yAxisId;\n return /*#__PURE__*/cloneElement(element, {\n key: element.key || \"\".concat(displayName, \"-\").concat(index),\n xAxis: xAxisMap[xAxisId],\n yAxis: yAxisMap[yAxisId],\n viewBox: {\n x: offset.left,\n y: offset.top,\n width: offset.width,\n height: offset.height\n },\n clipPathId: clipPathId\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"renderActivePoints\", function (_ref10) {\n var item = _ref10.item,\n activePoint = _ref10.activePoint,\n basePoint = _ref10.basePoint,\n childIndex = _ref10.childIndex,\n isRange = _ref10.isRange;\n var result = [];\n var key = item.props.key;\n var _item$item$props = item.item.props,\n activeDot = _item$item$props.activeDot,\n dataKey = _item$item$props.dataKey;\n var dotProps = _objectSpread(_objectSpread({\n index: childIndex,\n dataKey: dataKey,\n cx: activePoint.x,\n cy: activePoint.y,\n r: 4,\n fill: getMainColorOfGraphicItem(item.item),\n strokeWidth: 2,\n stroke: '#fff',\n payload: activePoint.payload,\n value: activePoint.value,\n key: \"\".concat(key, \"-activePoint-\").concat(childIndex)\n }, filterProps(activeDot, false)), adaptEventHandlers(activeDot));\n result.push(CategoricalChartWrapper.renderActiveDot(activeDot, dotProps));\n if (basePoint) {\n result.push(CategoricalChartWrapper.renderActiveDot(activeDot, _objectSpread(_objectSpread({}, dotProps), {}, {\n cx: basePoint.x,\n cy: basePoint.y,\n key: \"\".concat(key, \"-basePoint-\").concat(childIndex)\n })));\n } else if (isRange) {\n result.push(null);\n }\n return result;\n });\n _defineProperty(_assertThisInitialized(_this), \"renderGraphicChild\", function (element, displayName, index) {\n var item = _this.filterFormatItem(element, displayName, index);\n if (!item) {\n return null;\n }\n var tooltipEventType = _this.getTooltipEventType();\n var _this$state8 = _this.state,\n isTooltipActive = _this$state8.isTooltipActive,\n tooltipAxis = _this$state8.tooltipAxis,\n activeTooltipIndex = _this$state8.activeTooltipIndex,\n activeLabel = _this$state8.activeLabel;\n var children = _this.props.children;\n var tooltipItem = findChildByType(children, Tooltip);\n var _item$props2 = item.props,\n points = _item$props2.points,\n isRange = _item$props2.isRange,\n baseLine = _item$props2.baseLine;\n var _item$item$props2 = item.item.props,\n activeDot = _item$item$props2.activeDot,\n hide = _item$item$props2.hide,\n activeBar = _item$item$props2.activeBar,\n activeShape = _item$item$props2.activeShape;\n var hasActive = Boolean(!hide && isTooltipActive && tooltipItem && (activeDot || activeBar || activeShape));\n var itemEvents = {};\n if (tooltipEventType !== 'axis' && tooltipItem && tooltipItem.props.trigger === 'click') {\n itemEvents = {\n onClick: combineEventHandlers(_this.handleItemMouseEnter, element.props.onClick)\n };\n } else if (tooltipEventType !== 'axis') {\n itemEvents = {\n onMouseLeave: combineEventHandlers(_this.handleItemMouseLeave, element.props.onMouseLeave),\n onMouseEnter: combineEventHandlers(_this.handleItemMouseEnter, element.props.onMouseEnter)\n };\n }\n var graphicalItem = /*#__PURE__*/cloneElement(element, _objectSpread(_objectSpread({}, item.props), itemEvents));\n function findWithPayload(entry) {\n // TODO needs to verify dataKey is Function\n return typeof tooltipAxis.dataKey === 'function' ? tooltipAxis.dataKey(entry.payload) : null;\n }\n if (hasActive) {\n if (activeTooltipIndex >= 0) {\n var activePoint, basePoint;\n if (tooltipAxis.dataKey && !tooltipAxis.allowDuplicatedCategory) {\n // number transform to string\n var specifiedKey = typeof tooltipAxis.dataKey === 'function' ? findWithPayload : 'payload.'.concat(tooltipAxis.dataKey.toString());\n activePoint = findEntryInArray(points, specifiedKey, activeLabel);\n basePoint = isRange && baseLine && findEntryInArray(baseLine, specifiedKey, activeLabel);\n } else {\n activePoint = points === null || points === void 0 ? void 0 : points[activeTooltipIndex];\n basePoint = isRange && baseLine && baseLine[activeTooltipIndex];\n }\n if (activeShape || activeBar) {\n var activeIndex = element.props.activeIndex !== undefined ? element.props.activeIndex : activeTooltipIndex;\n return [/*#__PURE__*/cloneElement(element, _objectSpread(_objectSpread(_objectSpread({}, item.props), itemEvents), {}, {\n activeIndex: activeIndex\n })), null, null];\n }\n if (!isNil(activePoint)) {\n return [graphicalItem].concat(_toConsumableArray(_this.renderActivePoints({\n item: item,\n activePoint: activePoint,\n basePoint: basePoint,\n childIndex: activeTooltipIndex,\n isRange: isRange\n })));\n }\n } else {\n var _this$getItemByXY;\n /**\n * We hit this block if consumer uses a Tooltip without XAxis and/or YAxis.\n * In which case, this.state.activeTooltipIndex never gets set\n * because the mouse events that trigger that value getting set never get trigged without the axis components.\n *\n * An example usage case is a FunnelChart\n */\n var _ref11 = (_this$getItemByXY = _this.getItemByXY(_this.state.activeCoordinate)) !== null && _this$getItemByXY !== void 0 ? _this$getItemByXY : {\n graphicalItem: graphicalItem\n },\n _ref11$graphicalItem = _ref11.graphicalItem,\n _ref11$graphicalItem$ = _ref11$graphicalItem.item,\n xyItem = _ref11$graphicalItem$ === void 0 ? element : _ref11$graphicalItem$,\n childIndex = _ref11$graphicalItem.childIndex;\n var elementProps = _objectSpread(_objectSpread(_objectSpread({}, item.props), itemEvents), {}, {\n activeIndex: childIndex\n });\n return [/*#__PURE__*/cloneElement(xyItem, elementProps), null, null];\n }\n }\n if (isRange) {\n return [graphicalItem, null, null];\n }\n return [graphicalItem, null];\n });\n _defineProperty(_assertThisInitialized(_this), \"renderCustomized\", function (element, displayName, index) {\n return /*#__PURE__*/cloneElement(element, _objectSpread(_objectSpread({\n key: \"recharts-customized-\".concat(index)\n }, _this.props), _this.state));\n });\n _defineProperty(_assertThisInitialized(_this), \"renderMap\", {\n CartesianGrid: {\n handler: renderAsIs,\n once: true\n },\n ReferenceArea: {\n handler: _this.renderReferenceElement\n },\n ReferenceLine: {\n handler: renderAsIs\n },\n ReferenceDot: {\n handler: _this.renderReferenceElement\n },\n XAxis: {\n handler: renderAsIs\n },\n YAxis: {\n handler: renderAsIs\n },\n Brush: {\n handler: _this.renderBrush,\n once: true\n },\n Bar: {\n handler: _this.renderGraphicChild\n },\n Line: {\n handler: _this.renderGraphicChild\n },\n Area: {\n handler: _this.renderGraphicChild\n },\n Radar: {\n handler: _this.renderGraphicChild\n },\n RadialBar: {\n handler: _this.renderGraphicChild\n },\n Scatter: {\n handler: _this.renderGraphicChild\n },\n Pie: {\n handler: _this.renderGraphicChild\n },\n Funnel: {\n handler: _this.renderGraphicChild\n },\n Tooltip: {\n handler: _this.renderCursor,\n once: true\n },\n PolarGrid: {\n handler: _this.renderPolarGrid,\n once: true\n },\n PolarAngleAxis: {\n handler: _this.renderPolarAxis\n },\n PolarRadiusAxis: {\n handler: _this.renderPolarAxis\n },\n Customized: {\n handler: _this.renderCustomized\n }\n });\n _this.clipPathId = \"\".concat((_props$id = _props.id) !== null && _props$id !== void 0 ? _props$id : uniqueId('recharts'), \"-clip\");\n\n // trigger 60fps\n _this.throttleTriggeredAfterMouseMove = throttle(_this.triggeredAfterMouseMove, (_props$throttleDelay = _props.throttleDelay) !== null && _props$throttleDelay !== void 0 ? _props$throttleDelay : 1000 / 60);\n _this.state = {};\n return _this;\n }\n _createClass(CategoricalChartWrapper, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this$props$margin$le, _this$props$margin$to;\n this.addListener();\n this.accessibilityManager.setDetails({\n container: this.container,\n offset: {\n left: (_this$props$margin$le = this.props.margin.left) !== null && _this$props$margin$le !== void 0 ? _this$props$margin$le : 0,\n top: (_this$props$margin$to = this.props.margin.top) !== null && _this$props$margin$to !== void 0 ? _this$props$margin$to : 0\n },\n coordinateList: this.state.tooltipTicks,\n mouseHandlerCallback: this.triggeredAfterMouseMove,\n layout: this.props.layout\n });\n this.displayDefaultTooltip();\n }\n }, {\n key: \"displayDefaultTooltip\",\n value: function displayDefaultTooltip() {\n var _this$props5 = this.props,\n children = _this$props5.children,\n data = _this$props5.data,\n height = _this$props5.height,\n layout = _this$props5.layout;\n var tooltipElem = findChildByType(children, Tooltip);\n // If the chart doesn't include a element, there's no tooltip to display\n if (!tooltipElem) {\n return;\n }\n var defaultIndex = tooltipElem.props.defaultIndex;\n\n // Protect against runtime errors\n if (typeof defaultIndex !== 'number' || defaultIndex < 0 || defaultIndex > this.state.tooltipTicks.length) {\n return;\n }\n var activeLabel = this.state.tooltipTicks[defaultIndex] && this.state.tooltipTicks[defaultIndex].value;\n var activePayload = getTooltipContent(this.state, data, defaultIndex, activeLabel);\n var independentAxisCoord = this.state.tooltipTicks[defaultIndex].coordinate;\n var dependentAxisCoord = (this.state.offset.top + height) / 2;\n var isHorizontal = layout === 'horizontal';\n var activeCoordinate = isHorizontal ? {\n x: independentAxisCoord,\n y: dependentAxisCoord\n } : {\n y: independentAxisCoord,\n x: dependentAxisCoord\n };\n\n // Unlike other chart types, scatter plot's tooltip positions rely on both X and Y coordinates. Only the scatter plot\n // element knows its own Y coordinates.\n // If there's a scatter plot, we'll want to grab that element for an interrogation.\n var scatterPlotElement = this.state.formattedGraphicalItems.find(function (_ref12) {\n var item = _ref12.item;\n return item.type.name === 'Scatter';\n });\n if (scatterPlotElement) {\n activeCoordinate = _objectSpread(_objectSpread({}, activeCoordinate), scatterPlotElement.props.points[defaultIndex].tooltipPosition);\n activePayload = scatterPlotElement.props.points[defaultIndex].tooltipPayload;\n }\n var nextState = {\n activeTooltipIndex: defaultIndex,\n isTooltipActive: true,\n activeLabel: activeLabel,\n activePayload: activePayload,\n activeCoordinate: activeCoordinate\n };\n this.setState(nextState);\n this.renderCursor(tooltipElem);\n\n // Make sure that anyone who keyboard-only users who tab to the chart will start their\n // cursors at defaultIndex\n this.accessibilityManager.setIndex(defaultIndex);\n }\n }, {\n key: \"getSnapshotBeforeUpdate\",\n value: function getSnapshotBeforeUpdate(prevProps, prevState) {\n if (!this.props.accessibilityLayer) {\n return null;\n }\n if (this.state.tooltipTicks !== prevState.tooltipTicks) {\n this.accessibilityManager.setDetails({\n coordinateList: this.state.tooltipTicks\n });\n }\n if (this.props.layout !== prevProps.layout) {\n this.accessibilityManager.setDetails({\n layout: this.props.layout\n });\n }\n if (this.props.margin !== prevProps.margin) {\n var _this$props$margin$le2, _this$props$margin$to2;\n this.accessibilityManager.setDetails({\n offset: {\n left: (_this$props$margin$le2 = this.props.margin.left) !== null && _this$props$margin$le2 !== void 0 ? _this$props$margin$le2 : 0,\n top: (_this$props$margin$to2 = this.props.margin.top) !== null && _this$props$margin$to2 !== void 0 ? _this$props$margin$to2 : 0\n }\n });\n }\n\n // Something has to be returned for getSnapshotBeforeUpdate\n return null;\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n // Check to see if the Tooltip updated. If so, re-check default tooltip position\n if (!isChildrenEqual([findChildByType(prevProps.children, Tooltip)], [findChildByType(this.props.children, Tooltip)])) {\n this.displayDefaultTooltip();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.removeListener();\n this.throttleTriggeredAfterMouseMove.cancel();\n }\n }, {\n key: \"getTooltipEventType\",\n value: function getTooltipEventType() {\n var tooltipItem = findChildByType(this.props.children, Tooltip);\n if (tooltipItem && typeof tooltipItem.props.shared === 'boolean') {\n var eventType = tooltipItem.props.shared ? 'axis' : 'item';\n return validateTooltipEventTypes.indexOf(eventType) >= 0 ? eventType : defaultTooltipEventType;\n }\n return defaultTooltipEventType;\n }\n\n /**\n * Get the information of mouse in chart, return null when the mouse is not in the chart\n * @param {MousePointer} event The event object\n * @return {Object} Mouse data\n */\n }, {\n key: \"getMouseInfo\",\n value: function getMouseInfo(event) {\n if (!this.container) {\n return null;\n }\n var element = this.container;\n var boundingRect = element.getBoundingClientRect();\n var containerOffset = getOffset(boundingRect);\n var e = {\n chartX: Math.round(event.pageX - containerOffset.left),\n chartY: Math.round(event.pageY - containerOffset.top)\n };\n var scale = boundingRect.width / element.offsetWidth || 1;\n var rangeObj = this.inRange(e.chartX, e.chartY, scale);\n if (!rangeObj) {\n return null;\n }\n var _this$state9 = this.state,\n xAxisMap = _this$state9.xAxisMap,\n yAxisMap = _this$state9.yAxisMap;\n var tooltipEventType = this.getTooltipEventType();\n if (tooltipEventType !== 'axis' && xAxisMap && yAxisMap) {\n var xScale = getAnyElementOfObject(xAxisMap).scale;\n var yScale = getAnyElementOfObject(yAxisMap).scale;\n var xValue = xScale && xScale.invert ? xScale.invert(e.chartX) : null;\n var yValue = yScale && yScale.invert ? yScale.invert(e.chartY) : null;\n return _objectSpread(_objectSpread({}, e), {}, {\n xValue: xValue,\n yValue: yValue\n });\n }\n var toolTipData = getTooltipData(this.state, this.props.data, this.props.layout, rangeObj);\n if (toolTipData) {\n return _objectSpread(_objectSpread({}, e), toolTipData);\n }\n return null;\n }\n }, {\n key: \"inRange\",\n value: function inRange(x, y) {\n var scale = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var layout = this.props.layout;\n var scaledX = x / scale,\n scaledY = y / scale;\n if (layout === 'horizontal' || layout === 'vertical') {\n var offset = this.state.offset;\n var isInRange = scaledX >= offset.left && scaledX <= offset.left + offset.width && scaledY >= offset.top && scaledY <= offset.top + offset.height;\n return isInRange ? {\n x: scaledX,\n y: scaledY\n } : null;\n }\n var _this$state10 = this.state,\n angleAxisMap = _this$state10.angleAxisMap,\n radiusAxisMap = _this$state10.radiusAxisMap;\n if (angleAxisMap && radiusAxisMap) {\n var angleAxis = getAnyElementOfObject(angleAxisMap);\n return inRangeOfSector({\n x: scaledX,\n y: scaledY\n }, angleAxis);\n }\n return null;\n }\n }, {\n key: \"parseEventsOfWrapper\",\n value: function parseEventsOfWrapper() {\n var children = this.props.children;\n var tooltipEventType = this.getTooltipEventType();\n var tooltipItem = findChildByType(children, Tooltip);\n var tooltipEvents = {};\n if (tooltipItem && tooltipEventType === 'axis') {\n if (tooltipItem.props.trigger === 'click') {\n tooltipEvents = {\n onClick: this.handleClick\n };\n } else {\n tooltipEvents = {\n onMouseEnter: this.handleMouseEnter,\n onMouseMove: this.handleMouseMove,\n onMouseLeave: this.handleMouseLeave,\n onTouchMove: this.handleTouchMove,\n onTouchStart: this.handleTouchStart,\n onTouchEnd: this.handleTouchEnd\n };\n }\n }\n\n // @ts-expect-error adaptEventHandlers expects DOM Event but generateCategoricalChart works with React UIEvents\n var outerEvents = adaptEventHandlers(this.props, this.handleOuterEvent);\n return _objectSpread(_objectSpread({}, outerEvents), tooltipEvents);\n }\n }, {\n key: \"addListener\",\n value: function addListener() {\n eventCenter.on(SYNC_EVENT, this.handleReceiveSyncEvent);\n }\n }, {\n key: \"removeListener\",\n value: function removeListener() {\n eventCenter.removeListener(SYNC_EVENT, this.handleReceiveSyncEvent);\n }\n }, {\n key: \"filterFormatItem\",\n value: function filterFormatItem(item, displayName, childIndex) {\n var formattedGraphicalItems = this.state.formattedGraphicalItems;\n for (var i = 0, len = formattedGraphicalItems.length; i < len; i++) {\n var entry = formattedGraphicalItems[i];\n if (entry.item === item || entry.props.key === item.key || displayName === getDisplayName(entry.item.type) && childIndex === entry.childIndex) {\n return entry;\n }\n }\n return null;\n }\n }, {\n key: \"renderClipPath\",\n value: function renderClipPath() {\n var clipPathId = this.clipPathId;\n var _this$state$offset = this.state.offset,\n left = _this$state$offset.left,\n top = _this$state$offset.top,\n height = _this$state$offset.height,\n width = _this$state$offset.width;\n return /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: clipPathId\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: left,\n y: top,\n height: height,\n width: width\n })));\n }\n }, {\n key: \"getXScales\",\n value: function getXScales() {\n var xAxisMap = this.state.xAxisMap;\n return xAxisMap ? Object.entries(xAxisMap).reduce(function (res, _ref13) {\n var _ref14 = _slicedToArray(_ref13, 2),\n axisId = _ref14[0],\n axisProps = _ref14[1];\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, axisId, axisProps.scale));\n }, {}) : null;\n }\n }, {\n key: \"getYScales\",\n value: function getYScales() {\n var yAxisMap = this.state.yAxisMap;\n return yAxisMap ? Object.entries(yAxisMap).reduce(function (res, _ref15) {\n var _ref16 = _slicedToArray(_ref15, 2),\n axisId = _ref16[0],\n axisProps = _ref16[1];\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, axisId, axisProps.scale));\n }, {}) : null;\n }\n }, {\n key: \"getXScaleByAxisId\",\n value: function getXScaleByAxisId(axisId) {\n var _this$state$xAxisMap;\n return (_this$state$xAxisMap = this.state.xAxisMap) === null || _this$state$xAxisMap === void 0 || (_this$state$xAxisMap = _this$state$xAxisMap[axisId]) === null || _this$state$xAxisMap === void 0 ? void 0 : _this$state$xAxisMap.scale;\n }\n }, {\n key: \"getYScaleByAxisId\",\n value: function getYScaleByAxisId(axisId) {\n var _this$state$yAxisMap;\n return (_this$state$yAxisMap = this.state.yAxisMap) === null || _this$state$yAxisMap === void 0 || (_this$state$yAxisMap = _this$state$yAxisMap[axisId]) === null || _this$state$yAxisMap === void 0 ? void 0 : _this$state$yAxisMap.scale;\n }\n }, {\n key: \"getItemByXY\",\n value: function getItemByXY(chartXY) {\n var _this$state11 = this.state,\n formattedGraphicalItems = _this$state11.formattedGraphicalItems,\n activeItem = _this$state11.activeItem;\n if (formattedGraphicalItems && formattedGraphicalItems.length) {\n for (var i = 0, len = formattedGraphicalItems.length; i < len; i++) {\n var graphicalItem = formattedGraphicalItems[i];\n var props = graphicalItem.props,\n item = graphicalItem.item;\n var itemDisplayName = getDisplayName(item.type);\n if (itemDisplayName === 'Bar') {\n var activeBarItem = (props.data || []).find(function (entry) {\n return isInRectangle(chartXY, entry);\n });\n if (activeBarItem) {\n return {\n graphicalItem: graphicalItem,\n payload: activeBarItem\n };\n }\n } else if (itemDisplayName === 'RadialBar') {\n var _activeBarItem = (props.data || []).find(function (entry) {\n return inRangeOfSector(chartXY, entry);\n });\n if (_activeBarItem) {\n return {\n graphicalItem: graphicalItem,\n payload: _activeBarItem\n };\n }\n } else if (isFunnel(graphicalItem, activeItem) || isPie(graphicalItem, activeItem) || isScatter(graphicalItem, activeItem)) {\n var activeIndex = getActiveShapeIndexForTooltip({\n graphicalItem: graphicalItem,\n activeTooltipItem: activeItem,\n itemData: item.props.data\n });\n var childIndex = item.props.activeIndex === undefined ? activeIndex : item.props.activeIndex;\n return {\n graphicalItem: _objectSpread(_objectSpread({}, graphicalItem), {}, {\n childIndex: childIndex\n }),\n payload: isScatter(graphicalItem, activeItem) ? item.props.data[activeIndex] : graphicalItem.props.data[activeIndex]\n };\n }\n }\n }\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n if (!validateWidthHeight(this)) {\n return null;\n }\n var _this$props6 = this.props,\n children = _this$props6.children,\n className = _this$props6.className,\n width = _this$props6.width,\n height = _this$props6.height,\n style = _this$props6.style,\n compact = _this$props6.compact,\n title = _this$props6.title,\n desc = _this$props6.desc,\n others = _objectWithoutProperties(_this$props6, _excluded2);\n var attrs = filterProps(others, false);\n\n // The \"compact\" mode is mainly used as the panorama within Brush\n if (compact) {\n return /*#__PURE__*/React.createElement(ChartLayoutContextProvider, {\n state: this.state,\n width: this.props.width,\n height: this.props.height,\n clipPathId: this.clipPathId\n }, /*#__PURE__*/React.createElement(Surface, _extends({}, attrs, {\n width: width,\n height: height,\n title: title,\n desc: desc\n }), this.renderClipPath(), renderByOrder(children, this.renderMap)));\n }\n if (this.props.accessibilityLayer) {\n var _this$props$tabIndex, _this$props$role;\n // Set tabIndex to 0 by default (can be overwritten)\n attrs.tabIndex = (_this$props$tabIndex = this.props.tabIndex) !== null && _this$props$tabIndex !== void 0 ? _this$props$tabIndex : 0;\n // Set role to img by default (can be overwritten)\n attrs.role = (_this$props$role = this.props.role) !== null && _this$props$role !== void 0 ? _this$props$role : 'application';\n attrs.onKeyDown = function (e) {\n _this2.accessibilityManager.keyboardEvent(e);\n // 'onKeyDown' is not currently a supported prop that can be passed through\n // if it's added, this should be added: this.props.onKeyDown(e);\n };\n attrs.onFocus = function () {\n _this2.accessibilityManager.focus();\n // 'onFocus' is not currently a supported prop that can be passed through\n // if it's added, the focus event should be forwarded to the prop\n };\n }\n var events = this.parseEventsOfWrapper();\n return /*#__PURE__*/React.createElement(ChartLayoutContextProvider, {\n state: this.state,\n width: this.props.width,\n height: this.props.height,\n clipPathId: this.clipPathId\n }, /*#__PURE__*/React.createElement(\"div\", _extends({\n className: clsx('recharts-wrapper', className),\n style: _objectSpread({\n position: 'relative',\n cursor: 'default',\n width: width,\n height: height\n }, style)\n }, events, {\n ref: function ref(node) {\n _this2.container = node;\n }\n }), /*#__PURE__*/React.createElement(Surface, _extends({}, attrs, {\n width: width,\n height: height,\n title: title,\n desc: desc,\n style: FULL_WIDTH_AND_HEIGHT\n }), this.renderClipPath(), renderByOrder(children, this.renderMap)), this.renderLegend(), this.renderTooltip()));\n }\n }]);\n return CategoricalChartWrapper;\n }(Component), _defineProperty(_CategoricalChartWrapper, \"displayName\", chartName), _defineProperty(_CategoricalChartWrapper, \"defaultProps\", _objectSpread({\n layout: 'horizontal',\n stackOffset: 'none',\n barCategoryGap: '10%',\n barGap: 4,\n margin: {\n top: 5,\n right: 5,\n bottom: 5,\n left: 5\n },\n reverseStackOrder: false,\n syncMethod: 'index'\n }, defaultProps)), _defineProperty(_CategoricalChartWrapper, \"getDerivedStateFromProps\", function (nextProps, prevState) {\n var dataKey = nextProps.dataKey,\n data = nextProps.data,\n children = nextProps.children,\n width = nextProps.width,\n height = nextProps.height,\n layout = nextProps.layout,\n stackOffset = nextProps.stackOffset,\n margin = nextProps.margin;\n var dataStartIndex = prevState.dataStartIndex,\n dataEndIndex = prevState.dataEndIndex;\n if (prevState.updateId === undefined) {\n var defaultState = createDefaultState(nextProps);\n return _objectSpread(_objectSpread(_objectSpread({}, defaultState), {}, {\n updateId: 0\n }, updateStateOfAxisMapsOffsetAndStackGroups(_objectSpread(_objectSpread({\n props: nextProps\n }, defaultState), {}, {\n updateId: 0\n }), prevState)), {}, {\n prevDataKey: dataKey,\n prevData: data,\n prevWidth: width,\n prevHeight: height,\n prevLayout: layout,\n prevStackOffset: stackOffset,\n prevMargin: margin,\n prevChildren: children\n });\n }\n if (dataKey !== prevState.prevDataKey || data !== prevState.prevData || width !== prevState.prevWidth || height !== prevState.prevHeight || layout !== prevState.prevLayout || stackOffset !== prevState.prevStackOffset || !shallowEqual(margin, prevState.prevMargin)) {\n var _defaultState = createDefaultState(nextProps);\n\n // Fixes https://github.com/recharts/recharts/issues/2143\n var keepFromPrevState = {\n // (chartX, chartY) are (0,0) in default state, but we want to keep the last mouse position to avoid\n // any flickering\n chartX: prevState.chartX,\n chartY: prevState.chartY,\n // The tooltip should stay active when it was active in the previous render. If this is not\n // the case, the tooltip disappears and immediately re-appears, causing a flickering effect\n isTooltipActive: prevState.isTooltipActive\n };\n var updatesToState = _objectSpread(_objectSpread({}, getTooltipData(prevState, data, layout)), {}, {\n updateId: prevState.updateId + 1\n });\n var newState = _objectSpread(_objectSpread(_objectSpread({}, _defaultState), keepFromPrevState), updatesToState);\n return _objectSpread(_objectSpread(_objectSpread({}, newState), updateStateOfAxisMapsOffsetAndStackGroups(_objectSpread({\n props: nextProps\n }, newState), prevState)), {}, {\n prevDataKey: dataKey,\n prevData: data,\n prevWidth: width,\n prevHeight: height,\n prevLayout: layout,\n prevStackOffset: stackOffset,\n prevMargin: margin,\n prevChildren: children\n });\n }\n if (!isChildrenEqual(children, prevState.prevChildren)) {\n var _brush$props$startInd, _brush$props, _brush$props$endIndex, _brush$props2;\n // specifically check for Brush - if it exists and the start and end indexes are different, re-render with the new ones\n var brush = findChildByType(children, Brush);\n var startIndex = brush ? (_brush$props$startInd = (_brush$props = brush.props) === null || _brush$props === void 0 ? void 0 : _brush$props.startIndex) !== null && _brush$props$startInd !== void 0 ? _brush$props$startInd : dataStartIndex : dataStartIndex;\n var endIndex = brush ? (_brush$props$endIndex = (_brush$props2 = brush.props) === null || _brush$props2 === void 0 ? void 0 : _brush$props2.endIndex) !== null && _brush$props$endIndex !== void 0 ? _brush$props$endIndex : dataEndIndex : dataEndIndex;\n var hasDifferentStartOrEndIndex = startIndex !== dataStartIndex || endIndex !== dataEndIndex;\n\n // update configuration in children\n var hasGlobalData = !isNil(data);\n var newUpdateId = hasGlobalData && !hasDifferentStartOrEndIndex ? prevState.updateId : prevState.updateId + 1;\n return _objectSpread(_objectSpread({\n updateId: newUpdateId\n }, updateStateOfAxisMapsOffsetAndStackGroups(_objectSpread(_objectSpread({\n props: nextProps\n }, prevState), {}, {\n updateId: newUpdateId,\n dataStartIndex: startIndex,\n dataEndIndex: endIndex\n }), prevState)), {}, {\n prevChildren: children,\n dataStartIndex: startIndex,\n dataEndIndex: endIndex\n });\n }\n return null;\n }), _defineProperty(_CategoricalChartWrapper, \"renderActiveDot\", function (option, props) {\n var dot;\n if ( /*#__PURE__*/isValidElement(option)) {\n dot = /*#__PURE__*/cloneElement(option, props);\n } else if (isFunction(option)) {\n dot = option(props);\n } else {\n dot = /*#__PURE__*/React.createElement(Dot, props);\n }\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-active-dot\",\n key: props.key\n }, dot);\n }), _CategoricalChartWrapper;\n};","import { isNumber } from './DataUtils';\n/**\n * Takes a domain and user props to determine whether he provided the domain via props or if we need to calculate it.\n * @param {AxisDomain} domain The potential domain from props\n * @param {Boolean} allowDataOverflow from props\n * @param {String} axisType from props\n * @returns {Boolean} `true` if domain is specified by user\n */\nexport function isDomainSpecifiedByUser(domain, allowDataOverflow, axisType) {\n if (axisType === 'number' && allowDataOverflow === true && Array.isArray(domain)) {\n var domainStart = domain === null || domain === void 0 ? void 0 : domain[0];\n var domainEnd = domain === null || domain === void 0 ? void 0 : domain[1];\n\n /*\n * The `isNumber` check is needed because the user could also provide strings like \"dataMin\" via the domain props.\n * In such case, we have to compute the domain from the data.\n */\n if (!!domainStart && !!domainEnd && isNumber(domainStart) && isNumber(domainEnd)) {\n return true;\n }\n }\n return false;\n}","var _excluded = [\"type\", \"layout\", \"connectNulls\", \"ref\"];\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Line\n */\nimport React, { PureComponent } from 'react';\nimport Animate from 'react-smooth';\nimport isFunction from 'lodash/isFunction';\nimport isNil from 'lodash/isNil';\nimport isEqual from 'lodash/isEqual';\nimport clsx from 'clsx';\nimport { Curve } from '../shape/Curve';\nimport { Dot } from '../shape/Dot';\nimport { Layer } from '../container/Layer';\nimport { LabelList } from '../component/LabelList';\nimport { ErrorBar } from './ErrorBar';\nimport { uniqueId, interpolateNumber } from '../util/DataUtils';\nimport { findAllByType, filterProps, isDotProps } from '../util/ReactUtils';\nimport { Global } from '../util/Global';\nimport { getCateCoordinateOfLine, getValueByDataKey } from '../util/ChartUtils';\nexport var Line = /*#__PURE__*/function (_PureComponent) {\n _inherits(Line, _PureComponent);\n function Line() {\n var _this;\n _classCallCheck(this, Line);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _callSuper(this, Line, [].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n isAnimationFinished: true,\n totalLength: 0\n });\n _defineProperty(_assertThisInitialized(_this), \"generateSimpleStrokeDasharray\", function (totalLength, length) {\n return \"\".concat(length, \"px \").concat(totalLength - length, \"px\");\n });\n _defineProperty(_assertThisInitialized(_this), \"getStrokeDasharray\", function (length, totalLength, lines) {\n var lineLength = lines.reduce(function (pre, next) {\n return pre + next;\n });\n\n // if lineLength is 0 return the default when no strokeDasharray is provided\n if (!lineLength) {\n return _this.generateSimpleStrokeDasharray(totalLength, length);\n }\n var count = Math.floor(length / lineLength);\n var remainLength = length % lineLength;\n var restLength = totalLength - length;\n var remainLines = [];\n for (var i = 0, sum = 0; i < lines.length; sum += lines[i], ++i) {\n if (sum + lines[i] > remainLength) {\n remainLines = [].concat(_toConsumableArray(lines.slice(0, i)), [remainLength - sum]);\n break;\n }\n }\n var emptyLines = remainLines.length % 2 === 0 ? [0, restLength] : [restLength];\n return [].concat(_toConsumableArray(Line.repeat(lines, count)), _toConsumableArray(remainLines), emptyLines).map(function (line) {\n return \"\".concat(line, \"px\");\n }).join(', ');\n });\n _defineProperty(_assertThisInitialized(_this), \"id\", uniqueId('recharts-line-'));\n _defineProperty(_assertThisInitialized(_this), \"pathRef\", function (node) {\n _this.mainCurve = node;\n });\n _defineProperty(_assertThisInitialized(_this), \"handleAnimationEnd\", function () {\n _this.setState({\n isAnimationFinished: true\n });\n if (_this.props.onAnimationEnd) {\n _this.props.onAnimationEnd();\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleAnimationStart\", function () {\n _this.setState({\n isAnimationFinished: false\n });\n if (_this.props.onAnimationStart) {\n _this.props.onAnimationStart();\n }\n });\n return _this;\n }\n _createClass(Line, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (!this.props.isAnimationActive) {\n return;\n }\n var totalLength = this.getTotalLength();\n this.setState({\n totalLength: totalLength\n });\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n if (!this.props.isAnimationActive) {\n return;\n }\n var totalLength = this.getTotalLength();\n if (totalLength !== this.state.totalLength) {\n this.setState({\n totalLength: totalLength\n });\n }\n }\n }, {\n key: \"getTotalLength\",\n value: function getTotalLength() {\n var curveDom = this.mainCurve;\n try {\n return curveDom && curveDom.getTotalLength && curveDom.getTotalLength() || 0;\n } catch (err) {\n return 0;\n }\n }\n }, {\n key: \"renderErrorBar\",\n value: function renderErrorBar(needClip, clipPathId) {\n if (this.props.isAnimationActive && !this.state.isAnimationFinished) {\n return null;\n }\n var _this$props = this.props,\n points = _this$props.points,\n xAxis = _this$props.xAxis,\n yAxis = _this$props.yAxis,\n layout = _this$props.layout,\n children = _this$props.children;\n var errorBarItems = findAllByType(children, ErrorBar);\n if (!errorBarItems) {\n return null;\n }\n var dataPointFormatter = function dataPointFormatter(dataPoint, dataKey) {\n return {\n x: dataPoint.x,\n y: dataPoint.y,\n value: dataPoint.value,\n errorVal: getValueByDataKey(dataPoint.payload, dataKey)\n };\n };\n var errorBarProps = {\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null\n };\n return /*#__PURE__*/React.createElement(Layer, errorBarProps, errorBarItems.map(function (item) {\n return /*#__PURE__*/React.cloneElement(item, {\n key: \"bar-\".concat(item.props.dataKey),\n data: points,\n xAxis: xAxis,\n yAxis: yAxis,\n layout: layout,\n dataPointFormatter: dataPointFormatter\n });\n }));\n }\n }, {\n key: \"renderDots\",\n value: function renderDots(needClip, clipDot, clipPathId) {\n var isAnimationActive = this.props.isAnimationActive;\n if (isAnimationActive && !this.state.isAnimationFinished) {\n return null;\n }\n var _this$props2 = this.props,\n dot = _this$props2.dot,\n points = _this$props2.points,\n dataKey = _this$props2.dataKey;\n var lineProps = filterProps(this.props, false);\n var customDotProps = filterProps(dot, true);\n var dots = points.map(function (entry, i) {\n var dotProps = _objectSpread(_objectSpread(_objectSpread({\n key: \"dot-\".concat(i),\n r: 3\n }, lineProps), customDotProps), {}, {\n value: entry.value,\n dataKey: dataKey,\n cx: entry.x,\n cy: entry.y,\n index: i,\n payload: entry.payload\n });\n return Line.renderDotItem(dot, dotProps);\n });\n var dotsProps = {\n clipPath: needClip ? \"url(#clipPath-\".concat(clipDot ? '' : 'dots-').concat(clipPathId, \")\") : null\n };\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: \"recharts-line-dots\",\n key: \"dots\"\n }, dotsProps), dots);\n }\n }, {\n key: \"renderCurveStatically\",\n value: function renderCurveStatically(points, needClip, clipPathId, props) {\n var _this$props3 = this.props,\n type = _this$props3.type,\n layout = _this$props3.layout,\n connectNulls = _this$props3.connectNulls,\n ref = _this$props3.ref,\n others = _objectWithoutProperties(_this$props3, _excluded);\n var curveProps = _objectSpread(_objectSpread(_objectSpread({}, filterProps(others, true)), {}, {\n fill: 'none',\n className: 'recharts-line-curve',\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null,\n points: points\n }, props), {}, {\n type: type,\n layout: layout,\n connectNulls: connectNulls\n });\n return /*#__PURE__*/React.createElement(Curve, _extends({}, curveProps, {\n pathRef: this.pathRef\n }));\n }\n }, {\n key: \"renderCurveWithAnimation\",\n value: function renderCurveWithAnimation(needClip, clipPathId) {\n var _this2 = this;\n var _this$props4 = this.props,\n points = _this$props4.points,\n strokeDasharray = _this$props4.strokeDasharray,\n isAnimationActive = _this$props4.isAnimationActive,\n animationBegin = _this$props4.animationBegin,\n animationDuration = _this$props4.animationDuration,\n animationEasing = _this$props4.animationEasing,\n animationId = _this$props4.animationId,\n animateNewValues = _this$props4.animateNewValues,\n width = _this$props4.width,\n height = _this$props4.height;\n var _this$state = this.state,\n prevPoints = _this$state.prevPoints,\n totalLength = _this$state.totalLength;\n return /*#__PURE__*/React.createElement(Animate, {\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing,\n from: {\n t: 0\n },\n to: {\n t: 1\n },\n key: \"line-\".concat(animationId),\n onAnimationEnd: this.handleAnimationEnd,\n onAnimationStart: this.handleAnimationStart\n }, function (_ref) {\n var t = _ref.t;\n if (prevPoints) {\n var prevPointsDiffFactor = prevPoints.length / points.length;\n var stepData = points.map(function (entry, index) {\n var prevPointIndex = Math.floor(index * prevPointsDiffFactor);\n if (prevPoints[prevPointIndex]) {\n var prev = prevPoints[prevPointIndex];\n var interpolatorX = interpolateNumber(prev.x, entry.x);\n var interpolatorY = interpolateNumber(prev.y, entry.y);\n return _objectSpread(_objectSpread({}, entry), {}, {\n x: interpolatorX(t),\n y: interpolatorY(t)\n });\n }\n\n // magic number of faking previous x and y location\n if (animateNewValues) {\n var _interpolatorX = interpolateNumber(width * 2, entry.x);\n var _interpolatorY = interpolateNumber(height / 2, entry.y);\n return _objectSpread(_objectSpread({}, entry), {}, {\n x: _interpolatorX(t),\n y: _interpolatorY(t)\n });\n }\n return _objectSpread(_objectSpread({}, entry), {}, {\n x: entry.x,\n y: entry.y\n });\n });\n return _this2.renderCurveStatically(stepData, needClip, clipPathId);\n }\n var interpolator = interpolateNumber(0, totalLength);\n var curLength = interpolator(t);\n var currentStrokeDasharray;\n if (strokeDasharray) {\n var lines = \"\".concat(strokeDasharray).split(/[,\\s]+/gim).map(function (num) {\n return parseFloat(num);\n });\n currentStrokeDasharray = _this2.getStrokeDasharray(curLength, totalLength, lines);\n } else {\n currentStrokeDasharray = _this2.generateSimpleStrokeDasharray(totalLength, curLength);\n }\n return _this2.renderCurveStatically(points, needClip, clipPathId, {\n strokeDasharray: currentStrokeDasharray\n });\n });\n }\n }, {\n key: \"renderCurve\",\n value: function renderCurve(needClip, clipPathId) {\n var _this$props5 = this.props,\n points = _this$props5.points,\n isAnimationActive = _this$props5.isAnimationActive;\n var _this$state2 = this.state,\n prevPoints = _this$state2.prevPoints,\n totalLength = _this$state2.totalLength;\n if (isAnimationActive && points && points.length && (!prevPoints && totalLength > 0 || !isEqual(prevPoints, points))) {\n return this.renderCurveWithAnimation(needClip, clipPathId);\n }\n return this.renderCurveStatically(points, needClip, clipPathId);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _filterProps;\n var _this$props6 = this.props,\n hide = _this$props6.hide,\n dot = _this$props6.dot,\n points = _this$props6.points,\n className = _this$props6.className,\n xAxis = _this$props6.xAxis,\n yAxis = _this$props6.yAxis,\n top = _this$props6.top,\n left = _this$props6.left,\n width = _this$props6.width,\n height = _this$props6.height,\n isAnimationActive = _this$props6.isAnimationActive,\n id = _this$props6.id;\n if (hide || !points || !points.length) {\n return null;\n }\n var isAnimationFinished = this.state.isAnimationFinished;\n var hasSinglePoint = points.length === 1;\n var layerClass = clsx('recharts-line', className);\n var needClipX = xAxis && xAxis.allowDataOverflow;\n var needClipY = yAxis && yAxis.allowDataOverflow;\n var needClip = needClipX || needClipY;\n var clipPathId = isNil(id) ? this.id : id;\n var _ref2 = (_filterProps = filterProps(dot, false)) !== null && _filterProps !== void 0 ? _filterProps : {\n r: 3,\n strokeWidth: 2\n },\n _ref2$r = _ref2.r,\n r = _ref2$r === void 0 ? 3 : _ref2$r,\n _ref2$strokeWidth = _ref2.strokeWidth,\n strokeWidth = _ref2$strokeWidth === void 0 ? 2 : _ref2$strokeWidth;\n var _ref3 = isDotProps(dot) ? dot : {},\n _ref3$clipDot = _ref3.clipDot,\n clipDot = _ref3$clipDot === void 0 ? true : _ref3$clipDot;\n var dotSize = r * 2 + strokeWidth;\n return /*#__PURE__*/React.createElement(Layer, {\n className: layerClass\n }, needClipX || needClipY ? /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clipPath-\".concat(clipPathId)\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: needClipX ? left : left - width / 2,\n y: needClipY ? top : top - height / 2,\n width: needClipX ? width : width * 2,\n height: needClipY ? height : height * 2\n })), !clipDot && /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clipPath-dots-\".concat(clipPathId)\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: left - dotSize / 2,\n y: top - dotSize / 2,\n width: width + dotSize,\n height: height + dotSize\n }))) : null, !hasSinglePoint && this.renderCurve(needClip, clipPathId), this.renderErrorBar(needClip, clipPathId), (hasSinglePoint || dot) && this.renderDots(needClip, clipDot, clipPathId), (!isAnimationActive || isAnimationFinished) && LabelList.renderCallByParent(this.props, points));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n if (nextProps.animationId !== prevState.prevAnimationId) {\n return {\n prevAnimationId: nextProps.animationId,\n curPoints: nextProps.points,\n prevPoints: prevState.curPoints\n };\n }\n if (nextProps.points !== prevState.curPoints) {\n return {\n curPoints: nextProps.points\n };\n }\n return null;\n }\n }, {\n key: \"repeat\",\n value: function repeat(lines, count) {\n var linesUnit = lines.length % 2 !== 0 ? [].concat(_toConsumableArray(lines), [0]) : lines;\n var result = [];\n for (var i = 0; i < count; ++i) {\n result = [].concat(_toConsumableArray(result), _toConsumableArray(linesUnit));\n }\n return result;\n }\n }, {\n key: \"renderDotItem\",\n value: function renderDotItem(option, props) {\n var dotItem;\n if ( /*#__PURE__*/React.isValidElement(option)) {\n dotItem = /*#__PURE__*/React.cloneElement(option, props);\n } else if (isFunction(option)) {\n dotItem = option(props);\n } else {\n var className = clsx('recharts-line-dot', typeof option !== 'boolean' ? option.className : '');\n dotItem = /*#__PURE__*/React.createElement(Dot, _extends({}, props, {\n className: className\n }));\n }\n return dotItem;\n }\n }]);\n return Line;\n}(PureComponent);\n_defineProperty(Line, \"displayName\", 'Line');\n_defineProperty(Line, \"defaultProps\", {\n xAxisId: 0,\n yAxisId: 0,\n connectNulls: false,\n activeDot: true,\n dot: true,\n legendType: 'line',\n stroke: '#3182bd',\n strokeWidth: 1,\n fill: '#fff',\n points: [],\n isAnimationActive: !Global.isSsr,\n animateNewValues: true,\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'ease',\n hide: false,\n label: false\n});\n/**\n * Compose the data of each group\n * @param {Object} props The props from the component\n * @param {Object} xAxis The configuration of x-axis\n * @param {Object} yAxis The configuration of y-axis\n * @param {String} dataKey The unique key of a group\n * @return {Array} Composed data\n */\n_defineProperty(Line, \"getComposedData\", function (_ref4) {\n var props = _ref4.props,\n xAxis = _ref4.xAxis,\n yAxis = _ref4.yAxis,\n xAxisTicks = _ref4.xAxisTicks,\n yAxisTicks = _ref4.yAxisTicks,\n dataKey = _ref4.dataKey,\n bandSize = _ref4.bandSize,\n displayedData = _ref4.displayedData,\n offset = _ref4.offset;\n var layout = props.layout;\n var points = displayedData.map(function (entry, index) {\n var value = getValueByDataKey(entry, dataKey);\n if (layout === 'horizontal') {\n return {\n x: getCateCoordinateOfLine({\n axis: xAxis,\n ticks: xAxisTicks,\n bandSize: bandSize,\n entry: entry,\n index: index\n }),\n y: isNil(value) ? null : yAxis.scale(value),\n value: value,\n payload: entry\n };\n }\n return {\n x: isNil(value) ? null : xAxis.scale(value),\n y: getCateCoordinateOfLine({\n axis: yAxis,\n ticks: yAxisTicks,\n bandSize: bandSize,\n entry: entry,\n index: index\n }),\n value: value,\n payload: entry\n };\n });\n return _objectSpread({\n points: points,\n layout: layout\n }, offset);\n});","/**\n * Given an array and a number N, return a new array which contains every nTh\n * element of the input array. For n below 1, an empty array is returned.\n * If isValid is provided, all candidates must suffice the condition, else undefined is returned.\n * @param {T[]} array An input array.\n * @param {integer} n A number\n * @param {Function} isValid A function to evaluate a candidate form the array\n * @returns {T[]} The result array of the same type as the input array.\n */\nexport function getEveryNthWithCondition(array, n, isValid) {\n if (n < 1) {\n return [];\n }\n if (n === 1 && isValid === undefined) {\n return array;\n }\n var result = [];\n for (var i = 0; i < array.length; i += n) {\n if (isValid === undefined || isValid(array[i]) === true) {\n result.push(array[i]);\n } else {\n return undefined;\n }\n }\n return result;\n}","import { getAngledRectangleWidth } from './CartesianUtils';\nimport { getEveryNthWithCondition } from './getEveryNthWithCondition';\nexport function getAngledTickWidth(contentSize, unitSize, angle) {\n var size = {\n width: contentSize.width + unitSize.width,\n height: contentSize.height + unitSize.height\n };\n return getAngledRectangleWidth(size, angle);\n}\nexport function getTickBoundaries(viewBox, sign, sizeKey) {\n var isWidth = sizeKey === 'width';\n var x = viewBox.x,\n y = viewBox.y,\n width = viewBox.width,\n height = viewBox.height;\n if (sign === 1) {\n return {\n start: isWidth ? x : y,\n end: isWidth ? x + width : y + height\n };\n }\n return {\n start: isWidth ? x + width : y + height,\n end: isWidth ? x : y\n };\n}\nexport function isVisible(sign, tickPosition, getSize, start, end) {\n /* Since getSize() is expensive (it reads the ticks' size from the DOM), we do this check first to avoid calculating\n * the tick's size. */\n if (sign * tickPosition < sign * start || sign * tickPosition > sign * end) {\n return false;\n }\n var size = getSize();\n return sign * (tickPosition - sign * size / 2 - start) >= 0 && sign * (tickPosition + sign * size / 2 - end) <= 0;\n}\nexport function getNumberIntervalTicks(ticks, interval) {\n return getEveryNthWithCondition(ticks, interval + 1);\n}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport isFunction from 'lodash/isFunction';\nimport { mathSign, isNumber } from '../util/DataUtils';\nimport { getStringSize } from '../util/DOMUtils';\nimport { Global } from '../util/Global';\nimport { isVisible, getTickBoundaries, getNumberIntervalTicks, getAngledTickWidth } from '../util/TickUtils';\nimport { getEquidistantTicks } from './getEquidistantTicks';\nfunction getTicksEnd(sign, boundaries, getTickSize, ticks, minTickGap) {\n var result = (ticks || []).slice();\n var len = result.length;\n var start = boundaries.start;\n var end = boundaries.end;\n var _loop = function _loop(i) {\n var entry = result[i];\n var size;\n var getSize = function getSize() {\n if (size === undefined) {\n size = getTickSize(entry, i);\n }\n return size;\n };\n if (i === len - 1) {\n var gap = sign * (entry.coordinate + sign * getSize() / 2 - end);\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: gap > 0 ? entry.coordinate - gap * sign : entry.coordinate\n });\n } else {\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: entry.coordinate\n });\n }\n var isShow = isVisible(sign, entry.tickCoord, getSize, start, end);\n if (isShow) {\n end = entry.tickCoord - sign * (getSize() / 2 + minTickGap);\n result[i] = _objectSpread(_objectSpread({}, entry), {}, {\n isShow: true\n });\n }\n };\n for (var i = len - 1; i >= 0; i--) {\n _loop(i);\n }\n return result;\n}\nfunction getTicksStart(sign, boundaries, getTickSize, ticks, minTickGap, preserveEnd) {\n var result = (ticks || []).slice();\n var len = result.length;\n var start = boundaries.start,\n end = boundaries.end;\n if (preserveEnd) {\n // Try to guarantee the tail to be displayed\n var tail = ticks[len - 1];\n var tailSize = getTickSize(tail, len - 1);\n var tailGap = sign * (tail.coordinate + sign * tailSize / 2 - end);\n result[len - 1] = tail = _objectSpread(_objectSpread({}, tail), {}, {\n tickCoord: tailGap > 0 ? tail.coordinate - tailGap * sign : tail.coordinate\n });\n var isTailShow = isVisible(sign, tail.tickCoord, function () {\n return tailSize;\n }, start, end);\n if (isTailShow) {\n end = tail.tickCoord - sign * (tailSize / 2 + minTickGap);\n result[len - 1] = _objectSpread(_objectSpread({}, tail), {}, {\n isShow: true\n });\n }\n }\n var count = preserveEnd ? len - 1 : len;\n var _loop2 = function _loop2(i) {\n var entry = result[i];\n var size;\n var getSize = function getSize() {\n if (size === undefined) {\n size = getTickSize(entry, i);\n }\n return size;\n };\n if (i === 0) {\n var gap = sign * (entry.coordinate - sign * getSize() / 2 - start);\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: gap < 0 ? entry.coordinate - gap * sign : entry.coordinate\n });\n } else {\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: entry.coordinate\n });\n }\n var isShow = isVisible(sign, entry.tickCoord, getSize, start, end);\n if (isShow) {\n start = entry.tickCoord + sign * (getSize() / 2 + minTickGap);\n result[i] = _objectSpread(_objectSpread({}, entry), {}, {\n isShow: true\n });\n }\n };\n for (var i = 0; i < count; i++) {\n _loop2(i);\n }\n return result;\n}\nexport function getTicks(props, fontSize, letterSpacing) {\n var tick = props.tick,\n ticks = props.ticks,\n viewBox = props.viewBox,\n minTickGap = props.minTickGap,\n orientation = props.orientation,\n interval = props.interval,\n tickFormatter = props.tickFormatter,\n unit = props.unit,\n angle = props.angle;\n if (!ticks || !ticks.length || !tick) {\n return [];\n }\n if (isNumber(interval) || Global.isSsr) {\n return getNumberIntervalTicks(ticks, typeof interval === 'number' && isNumber(interval) ? interval : 0);\n }\n var candidates = [];\n var sizeKey = orientation === 'top' || orientation === 'bottom' ? 'width' : 'height';\n var unitSize = unit && sizeKey === 'width' ? getStringSize(unit, {\n fontSize: fontSize,\n letterSpacing: letterSpacing\n }) : {\n width: 0,\n height: 0\n };\n var getTickSize = function getTickSize(content, index) {\n var value = isFunction(tickFormatter) ? tickFormatter(content.value, index) : content.value;\n // Recharts only supports angles when sizeKey === 'width'\n return sizeKey === 'width' ? getAngledTickWidth(getStringSize(value, {\n fontSize: fontSize,\n letterSpacing: letterSpacing\n }), unitSize, angle) : getStringSize(value, {\n fontSize: fontSize,\n letterSpacing: letterSpacing\n })[sizeKey];\n };\n var sign = ticks.length >= 2 ? mathSign(ticks[1].coordinate - ticks[0].coordinate) : 1;\n var boundaries = getTickBoundaries(viewBox, sign, sizeKey);\n if (interval === 'equidistantPreserveStart') {\n return getEquidistantTicks(sign, boundaries, getTickSize, ticks, minTickGap);\n }\n if (interval === 'preserveStart' || interval === 'preserveStartEnd') {\n candidates = getTicksStart(sign, boundaries, getTickSize, ticks, minTickGap, interval === 'preserveStartEnd');\n } else {\n candidates = getTicksEnd(sign, boundaries, getTickSize, ticks, minTickGap);\n }\n return candidates.filter(function (entry) {\n return entry.isShow;\n });\n}","import { isVisible } from '../util/TickUtils';\nimport { getEveryNthWithCondition } from '../util/getEveryNthWithCondition';\nexport function getEquidistantTicks(sign, boundaries, getTickSize, ticks, minTickGap) {\n var result = (ticks || []).slice();\n var initialStart = boundaries.start,\n end = boundaries.end;\n var index = 0;\n // Premature optimisation idea 1: Estimate a lower bound, and start from there.\n // For now, start from every tick\n var stepsize = 1;\n var start = initialStart;\n var _loop = function _loop() {\n // Given stepsize, evaluate whether every stepsize-th tick can be shown.\n // If it can not, then increase the stepsize by 1, and try again.\n\n var entry = ticks === null || ticks === void 0 ? void 0 : ticks[index];\n\n // Break condition - If we have evaluate all the ticks, then we are done.\n if (entry === undefined) {\n return {\n v: getEveryNthWithCondition(ticks, stepsize)\n };\n }\n\n // Check if the element collides with the next element\n var i = index;\n var size;\n var getSize = function getSize() {\n if (size === undefined) {\n size = getTickSize(entry, i);\n }\n return size;\n };\n var tickCoord = entry.coordinate;\n // We will always show the first tick.\n var isShow = index === 0 || isVisible(sign, tickCoord, getSize, start, end);\n if (!isShow) {\n // Start all over with a larger stepsize\n index = 0;\n start = initialStart;\n stepsize += 1;\n }\n if (isShow) {\n // If it can be shown, update the start\n start = tickCoord + sign * (getSize() / 2 + minTickGap);\n index += stepsize;\n }\n },\n _ret;\n while (stepsize <= result.length) {\n _ret = _loop();\n if (_ret) return _ret.v;\n }\n return [];\n}","var _excluded = [\"viewBox\"],\n _excluded2 = [\"viewBox\"],\n _excluded3 = [\"ticks\"];\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Cartesian Axis\n */\nimport React, { Component } from 'react';\nimport isFunction from 'lodash/isFunction';\nimport get from 'lodash/get';\nimport clsx from 'clsx';\nimport { shallowEqual } from '../util/ShallowEqual';\nimport { Layer } from '../container/Layer';\nimport { Text } from '../component/Text';\nimport { Label } from '../component/Label';\nimport { isNumber } from '../util/DataUtils';\nimport { adaptEventsOfChild } from '../util/types';\nimport { filterProps } from '../util/ReactUtils';\nimport { getTicks } from './getTicks';\n\n/** The orientation of the axis in correspondence to the chart */\n\n/** A unit to be appended to a value */\n\n/** The formatter function of tick */\n\nexport var CartesianAxis = /*#__PURE__*/function (_Component) {\n _inherits(CartesianAxis, _Component);\n function CartesianAxis(props) {\n var _this;\n _classCallCheck(this, CartesianAxis);\n _this = _callSuper(this, CartesianAxis, [props]);\n _this.state = {\n fontSize: '',\n letterSpacing: ''\n };\n return _this;\n }\n _createClass(CartesianAxis, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(_ref, nextState) {\n var viewBox = _ref.viewBox,\n restProps = _objectWithoutProperties(_ref, _excluded);\n // props.viewBox is sometimes generated every time -\n // check that specially as object equality is likely to fail\n var _this$props = this.props,\n viewBoxOld = _this$props.viewBox,\n restPropsOld = _objectWithoutProperties(_this$props, _excluded2);\n return !shallowEqual(viewBox, viewBoxOld) || !shallowEqual(restProps, restPropsOld) || !shallowEqual(nextState, this.state);\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var htmlLayer = this.layerReference;\n if (!htmlLayer) return;\n var tick = htmlLayer.getElementsByClassName('recharts-cartesian-axis-tick-value')[0];\n if (tick) {\n this.setState({\n fontSize: window.getComputedStyle(tick).fontSize,\n letterSpacing: window.getComputedStyle(tick).letterSpacing\n });\n }\n }\n\n /**\n * Calculate the coordinates of endpoints in ticks\n * @param {Object} data The data of a simple tick\n * @return {Object} (x1, y1): The coordinate of endpoint close to tick text\n * (x2, y2): The coordinate of endpoint close to axis\n */\n }, {\n key: \"getTickLineCoord\",\n value: function getTickLineCoord(data) {\n var _this$props2 = this.props,\n x = _this$props2.x,\n y = _this$props2.y,\n width = _this$props2.width,\n height = _this$props2.height,\n orientation = _this$props2.orientation,\n tickSize = _this$props2.tickSize,\n mirror = _this$props2.mirror,\n tickMargin = _this$props2.tickMargin;\n var x1, x2, y1, y2, tx, ty;\n var sign = mirror ? -1 : 1;\n var finalTickSize = data.tickSize || tickSize;\n var tickCoord = isNumber(data.tickCoord) ? data.tickCoord : data.coordinate;\n switch (orientation) {\n case 'top':\n x1 = x2 = data.coordinate;\n y2 = y + +!mirror * height;\n y1 = y2 - sign * finalTickSize;\n ty = y1 - sign * tickMargin;\n tx = tickCoord;\n break;\n case 'left':\n y1 = y2 = data.coordinate;\n x2 = x + +!mirror * width;\n x1 = x2 - sign * finalTickSize;\n tx = x1 - sign * tickMargin;\n ty = tickCoord;\n break;\n case 'right':\n y1 = y2 = data.coordinate;\n x2 = x + +mirror * width;\n x1 = x2 + sign * finalTickSize;\n tx = x1 + sign * tickMargin;\n ty = tickCoord;\n break;\n default:\n x1 = x2 = data.coordinate;\n y2 = y + +mirror * height;\n y1 = y2 + sign * finalTickSize;\n ty = y1 + sign * tickMargin;\n tx = tickCoord;\n break;\n }\n return {\n line: {\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n },\n tick: {\n x: tx,\n y: ty\n }\n };\n }\n }, {\n key: \"getTickTextAnchor\",\n value: function getTickTextAnchor() {\n var _this$props3 = this.props,\n orientation = _this$props3.orientation,\n mirror = _this$props3.mirror;\n var textAnchor;\n switch (orientation) {\n case 'left':\n textAnchor = mirror ? 'start' : 'end';\n break;\n case 'right':\n textAnchor = mirror ? 'end' : 'start';\n break;\n default:\n textAnchor = 'middle';\n break;\n }\n return textAnchor;\n }\n }, {\n key: \"getTickVerticalAnchor\",\n value: function getTickVerticalAnchor() {\n var _this$props4 = this.props,\n orientation = _this$props4.orientation,\n mirror = _this$props4.mirror;\n var verticalAnchor = 'end';\n switch (orientation) {\n case 'left':\n case 'right':\n verticalAnchor = 'middle';\n break;\n case 'top':\n verticalAnchor = mirror ? 'start' : 'end';\n break;\n default:\n verticalAnchor = mirror ? 'end' : 'start';\n break;\n }\n return verticalAnchor;\n }\n }, {\n key: \"renderAxisLine\",\n value: function renderAxisLine() {\n var _this$props5 = this.props,\n x = _this$props5.x,\n y = _this$props5.y,\n width = _this$props5.width,\n height = _this$props5.height,\n orientation = _this$props5.orientation,\n mirror = _this$props5.mirror,\n axisLine = _this$props5.axisLine;\n var props = _objectSpread(_objectSpread(_objectSpread({}, filterProps(this.props, false)), filterProps(axisLine, false)), {}, {\n fill: 'none'\n });\n if (orientation === 'top' || orientation === 'bottom') {\n var needHeight = +(orientation === 'top' && !mirror || orientation === 'bottom' && mirror);\n props = _objectSpread(_objectSpread({}, props), {}, {\n x1: x,\n y1: y + needHeight * height,\n x2: x + width,\n y2: y + needHeight * height\n });\n } else {\n var needWidth = +(orientation === 'left' && !mirror || orientation === 'right' && mirror);\n props = _objectSpread(_objectSpread({}, props), {}, {\n x1: x + needWidth * width,\n y1: y,\n x2: x + needWidth * width,\n y2: y + height\n });\n }\n return /*#__PURE__*/React.createElement(\"line\", _extends({}, props, {\n className: clsx('recharts-cartesian-axis-line', get(axisLine, 'className'))\n }));\n }\n }, {\n key: \"renderTicks\",\n value:\n /**\n * render the ticks\n * @param {Array} ticks The ticks to actually render (overrides what was passed in props)\n * @param {string} fontSize Fontsize to consider for tick spacing\n * @param {string} letterSpacing Letterspacing to consider for tick spacing\n * @return {ReactComponent} renderedTicks\n */\n function renderTicks(ticks, fontSize, letterSpacing) {\n var _this2 = this;\n var _this$props6 = this.props,\n tickLine = _this$props6.tickLine,\n stroke = _this$props6.stroke,\n tick = _this$props6.tick,\n tickFormatter = _this$props6.tickFormatter,\n unit = _this$props6.unit;\n var finalTicks = getTicks(_objectSpread(_objectSpread({}, this.props), {}, {\n ticks: ticks\n }), fontSize, letterSpacing);\n var textAnchor = this.getTickTextAnchor();\n var verticalAnchor = this.getTickVerticalAnchor();\n var axisProps = filterProps(this.props, false);\n var customTickProps = filterProps(tick, false);\n var tickLineProps = _objectSpread(_objectSpread({}, axisProps), {}, {\n fill: 'none'\n }, filterProps(tickLine, false));\n var items = finalTicks.map(function (entry, i) {\n var _this2$getTickLineCoo = _this2.getTickLineCoord(entry),\n lineCoord = _this2$getTickLineCoo.line,\n tickCoord = _this2$getTickLineCoo.tick;\n var tickProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread({\n textAnchor: textAnchor,\n verticalAnchor: verticalAnchor\n }, axisProps), {}, {\n stroke: 'none',\n fill: stroke\n }, customTickProps), tickCoord), {}, {\n index: i,\n payload: entry,\n visibleTicksCount: finalTicks.length,\n tickFormatter: tickFormatter\n });\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: \"recharts-cartesian-axis-tick\",\n key: \"tick-\".concat(entry.value, \"-\").concat(entry.coordinate, \"-\").concat(entry.tickCoord)\n }, adaptEventsOfChild(_this2.props, entry, i)), tickLine && /*#__PURE__*/React.createElement(\"line\", _extends({}, tickLineProps, lineCoord, {\n className: clsx('recharts-cartesian-axis-tick-line', get(tickLine, 'className'))\n })), tick && CartesianAxis.renderTickItem(tick, tickProps, \"\".concat(isFunction(tickFormatter) ? tickFormatter(entry.value, i) : entry.value).concat(unit || '')));\n });\n return /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-axis-ticks\"\n }, items);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n var _this$props7 = this.props,\n axisLine = _this$props7.axisLine,\n width = _this$props7.width,\n height = _this$props7.height,\n ticksGenerator = _this$props7.ticksGenerator,\n className = _this$props7.className,\n hide = _this$props7.hide;\n if (hide) {\n return null;\n }\n var _this$props8 = this.props,\n ticks = _this$props8.ticks,\n noTicksProps = _objectWithoutProperties(_this$props8, _excluded3);\n var finalTicks = ticks;\n if (isFunction(ticksGenerator)) {\n finalTicks = ticks && ticks.length > 0 ? ticksGenerator(this.props) : ticksGenerator(noTicksProps);\n }\n if (width <= 0 || height <= 0 || !finalTicks || !finalTicks.length) {\n return null;\n }\n return /*#__PURE__*/React.createElement(Layer, {\n className: clsx('recharts-cartesian-axis', className),\n ref: function ref(_ref2) {\n _this3.layerReference = _ref2;\n }\n }, axisLine && this.renderAxisLine(), this.renderTicks(finalTicks, this.state.fontSize, this.state.letterSpacing), Label.renderCallByParent(this.props));\n }\n }], [{\n key: \"renderTickItem\",\n value: function renderTickItem(option, props, value) {\n var tickItem;\n if ( /*#__PURE__*/React.isValidElement(option)) {\n tickItem = /*#__PURE__*/React.cloneElement(option, props);\n } else if (isFunction(option)) {\n tickItem = option(props);\n } else {\n tickItem = /*#__PURE__*/React.createElement(Text, _extends({}, props, {\n className: \"recharts-cartesian-axis-tick-value\"\n }), value);\n }\n return tickItem;\n }\n }]);\n return CartesianAxis;\n}(Component);\n_defineProperty(CartesianAxis, \"displayName\", 'CartesianAxis');\n_defineProperty(CartesianAxis, \"defaultProps\", {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n viewBox: {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n },\n // The orientation of axis\n orientation: 'bottom',\n // The ticks\n ticks: [],\n stroke: '#666',\n tickLine: true,\n axisLine: true,\n tick: true,\n mirror: false,\n minTickGap: 5,\n // The width or height of tick\n tickSize: 6,\n tickMargin: 2,\n interval: 'preserveEnd'\n});","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n/**\n * @fileOverview X Axis\n */\n\nimport React from 'react';\nimport clsx from 'clsx';\nimport { useChartHeight, useChartWidth, useXAxisOrThrow } from '../context/chartLayoutContext';\nimport { CartesianAxis } from './CartesianAxis';\nimport { getTicksOfAxis } from '../util/ChartUtils';\n\n/** Define of XAxis props */\n\nexport var XAxis = function XAxis(_ref) {\n var xAxisId = _ref.xAxisId;\n var width = useChartWidth();\n var height = useChartHeight();\n var axisOptions = useXAxisOrThrow(xAxisId);\n if (axisOptions == null) {\n return null;\n }\n return (\n /*#__PURE__*/\n // @ts-expect-error the axisOptions type is not exactly what CartesianAxis is expecting.\n React.createElement(CartesianAxis, _extends({}, axisOptions, {\n className: clsx(\"recharts-\".concat(axisOptions.axisType, \" \").concat(axisOptions.axisType), axisOptions.className),\n viewBox: {\n x: 0,\n y: 0,\n width: width,\n height: height\n },\n ticksGenerator: function ticksGenerator(axis) {\n return getTicksOfAxis(axis, true);\n }\n }))\n );\n};\nXAxis.displayName = 'XAxis';\nXAxis.defaultProps = {\n allowDecimals: true,\n hide: false,\n orientation: 'bottom',\n width: 0,\n height: 30,\n mirror: false,\n xAxisId: 0,\n tickCount: 5,\n type: 'category',\n padding: {\n left: 0,\n right: 0\n },\n allowDataOverflow: false,\n scale: 'auto',\n reversed: false,\n allowDuplicatedCategory: true\n};","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n/**\n * @fileOverview Y Axis\n */\nimport React from 'react';\nimport clsx from 'clsx';\nimport { useChartHeight, useChartWidth, useYAxisOrThrow } from '../context/chartLayoutContext';\nimport { CartesianAxis } from './CartesianAxis';\nimport { getTicksOfAxis } from '../util/ChartUtils';\nexport var YAxis = function YAxis(_ref) {\n var yAxisId = _ref.yAxisId;\n var width = useChartWidth();\n var height = useChartHeight();\n var axisOptions = useYAxisOrThrow(yAxisId);\n if (axisOptions == null) {\n return null;\n }\n return (\n /*#__PURE__*/\n // @ts-expect-error the axisOptions type is not exactly what CartesianAxis is expecting.\n React.createElement(CartesianAxis, _extends({}, axisOptions, {\n className: clsx(\"recharts-\".concat(axisOptions.axisType, \" \").concat(axisOptions.axisType), axisOptions.className),\n viewBox: {\n x: 0,\n y: 0,\n width: width,\n height: height\n },\n ticksGenerator: function ticksGenerator(axis) {\n return getTicksOfAxis(axis, true);\n }\n }))\n );\n};\nYAxis.displayName = 'YAxis';\nYAxis.defaultProps = {\n allowDuplicatedCategory: true,\n allowDecimals: true,\n hide: false,\n orientation: 'left',\n width: 60,\n height: 0,\n mirror: false,\n yAxisId: 0,\n tickCount: 5,\n type: 'number',\n padding: {\n top: 0,\n bottom: 0\n },\n allowDataOverflow: false,\n scale: 'auto',\n reversed: false\n};","/**\n * @fileOverview Line Chart\n */\nimport { generateCategoricalChart } from './generateCategoricalChart';\nimport { Line } from '../cartesian/Line';\nimport { XAxis } from '../cartesian/XAxis';\nimport { YAxis } from '../cartesian/YAxis';\nimport { formatAxisMap } from '../util/CartesianUtils';\nexport var LineChart = generateCategoricalChart({\n chartName: 'LineChart',\n GraphicalChild: Line,\n axisComponents: [{\n axisType: 'xAxis',\n AxisComp: XAxis\n }, {\n axisType: 'yAxis',\n AxisComp: YAxis\n }],\n formatAxisMap: formatAxisMap\n});","var _excluded = [\"x1\", \"y1\", \"x2\", \"y2\", \"key\"],\n _excluded2 = [\"offset\"];\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n/**\n * @fileOverview Cartesian Grid\n */\nimport React from 'react';\nimport isFunction from 'lodash/isFunction';\nimport { warn } from '../util/LogUtils';\nimport { isNumber } from '../util/DataUtils';\nimport { filterProps } from '../util/ReactUtils';\nimport { getCoordinatesOfGrid, getTicksOfAxis } from '../util/ChartUtils';\nimport { getTicks } from './getTicks';\nimport { CartesianAxis } from './CartesianAxis';\nimport { useArbitraryXAxis, useChartHeight, useChartWidth, useOffset, useYAxisWithFiniteDomainOrRandom } from '../context/chartLayoutContext';\n\n/**\n * The {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getCardUtilityClass, classes);\n};\nconst CardRoot = styled(Paper, {\n name: 'MuiCard',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n overflow: 'hidden'\n});\nconst Card = /*#__PURE__*/React.forwardRef(function Card(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiCard'\n });\n const {\n className,\n raised = false,\n ...other\n } = props;\n const ownerState = {\n ...props,\n raised\n };\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(CardRoot, {\n className: clsx(classes.root, className),\n elevation: raised ? 8 : undefined,\n ref: ref,\n ownerState: ownerState,\n ...other\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Card.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * If `true`, the card will use raised styling.\n * @default false\n */\n raised: chainPropTypes(PropTypes.bool, props => {\n if (props.raised && props.variant === 'outlined') {\n return new Error('MUI: Combining `raised={true}` with `variant=\"outlined\"` has no effect.');\n }\n return null;\n }),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default Card;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getCardContentUtilityClass(slot) {\n return generateUtilityClass('MuiCardContent', slot);\n}\nconst cardContentClasses = generateUtilityClasses('MuiCardContent', ['root']);\nexport default cardContentClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { styled } from \"../zero-styled/index.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport { getCardContentUtilityClass } from \"./cardContentClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getCardContentUtilityClass, classes);\n};\nconst CardContentRoot = styled('div', {\n name: 'MuiCardContent',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n padding: 16,\n '&:last-child': {\n paddingBottom: 24\n }\n});\nconst CardContent = /*#__PURE__*/React.forwardRef(function CardContent(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiCardContent'\n });\n const {\n className,\n component = 'div',\n ...other\n } = props;\n const ownerState = {\n ...props,\n component\n };\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(CardContentRoot, {\n as: component,\n className: clsx(classes.root, className),\n ownerState: ownerState,\n ref: ref,\n ...other\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? CardContent.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default CardContent;","'use client';\n\nimport * as React from 'react';\nimport createSvgIcon from \"../../utils/createSvgIcon.js\";\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z\"\n}), 'CheckBoxOutlineBlank');","'use client';\n\nimport * as React from 'react';\nimport createSvgIcon from \"../../utils/createSvgIcon.js\";\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z\"\n}), 'CheckBox');","'use client';\n\nimport * as React from 'react';\nimport createSvgIcon from \"../../utils/createSvgIcon.js\";\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z\"\n}), 'IndeterminateCheckBox');","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getCheckboxUtilityClass(slot) {\n return generateUtilityClass('MuiCheckbox', slot);\n}\nconst checkboxClasses = generateUtilityClasses('MuiCheckbox', ['root', 'checked', 'disabled', 'indeterminate', 'colorPrimary', 'colorSecondary', 'sizeSmall', 'sizeMedium']);\nexport default checkboxClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport refType from '@mui/utils/refType';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { alpha } from '@mui/system/colorManipulator';\nimport SwitchBase from \"../internal/SwitchBase.js\";\nimport CheckBoxOutlineBlankIcon from \"../internal/svg-icons/CheckBoxOutlineBlank.js\";\nimport CheckBoxIcon from \"../internal/svg-icons/CheckBox.js\";\nimport IndeterminateCheckBoxIcon from \"../internal/svg-icons/IndeterminateCheckBox.js\";\nimport capitalize from \"../utils/capitalize.js\";\nimport rootShouldForwardProp from \"../styles/rootShouldForwardProp.js\";\nimport checkboxClasses, { getCheckboxUtilityClass } from \"./checkboxClasses.js\";\nimport { styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport createSimplePaletteValueFilter from \"../utils/createSimplePaletteValueFilter.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n indeterminate,\n color,\n size\n } = ownerState;\n const slots = {\n root: ['root', indeterminate && 'indeterminate', `color${capitalize(color)}`, `size${capitalize(size)}`]\n };\n const composedClasses = composeClasses(slots, getCheckboxUtilityClass, classes);\n return {\n ...classes,\n // forward the disabled and checked classes to the SwitchBase\n ...composedClasses\n };\n};\nconst CheckboxRoot = styled(SwitchBase, {\n shouldForwardProp: prop => rootShouldForwardProp(prop) || prop === 'classes',\n name: 'MuiCheckbox',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.indeterminate && styles.indeterminate, styles[`size${capitalize(ownerState.size)}`], ownerState.color !== 'default' && styles[`color${capitalize(ownerState.color)}`]];\n }\n})(memoTheme(({\n theme\n}) => ({\n color: (theme.vars || theme).palette.text.secondary,\n variants: [{\n props: {\n color: 'default',\n disableRipple: false\n },\n style: {\n '&:hover': {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.action.activeChannel} / ${theme.vars.palette.action.hoverOpacity})` : alpha(theme.palette.action.active, theme.palette.action.hoverOpacity)\n }\n }\n }, ...Object.entries(theme.palette).filter(createSimplePaletteValueFilter()).map(([color]) => ({\n props: {\n color,\n disableRipple: false\n },\n style: {\n '&:hover': {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette[color].mainChannel} / ${theme.vars.palette.action.hoverOpacity})` : alpha(theme.palette[color].main, theme.palette.action.hoverOpacity)\n }\n }\n })), ...Object.entries(theme.palette).filter(createSimplePaletteValueFilter()).map(([color]) => ({\n props: {\n color\n },\n style: {\n [`&.${checkboxClasses.checked}, &.${checkboxClasses.indeterminate}`]: {\n color: (theme.vars || theme).palette[color].main\n },\n [`&.${checkboxClasses.disabled}`]: {\n color: (theme.vars || theme).palette.action.disabled\n }\n }\n })), {\n // Should be last to override other colors\n props: {\n disableRipple: false\n },\n style: {\n // Reset on touch devices, it doesn't add specificity\n '&:hover': {\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n }\n }\n }]\n})));\nconst defaultCheckedIcon = /*#__PURE__*/_jsx(CheckBoxIcon, {});\nconst defaultIcon = /*#__PURE__*/_jsx(CheckBoxOutlineBlankIcon, {});\nconst defaultIndeterminateIcon = /*#__PURE__*/_jsx(IndeterminateCheckBoxIcon, {});\nconst Checkbox = /*#__PURE__*/React.forwardRef(function Checkbox(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiCheckbox'\n });\n const {\n checkedIcon = defaultCheckedIcon,\n color = 'primary',\n icon: iconProp = defaultIcon,\n indeterminate = false,\n indeterminateIcon: indeterminateIconProp = defaultIndeterminateIcon,\n inputProps,\n size = 'medium',\n disableRipple = false,\n className,\n ...other\n } = props;\n const icon = indeterminate ? indeterminateIconProp : iconProp;\n const indeterminateIcon = indeterminate ? indeterminateIconProp : checkedIcon;\n const ownerState = {\n ...props,\n disableRipple,\n color,\n indeterminate,\n size\n };\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(CheckboxRoot, {\n type: \"checkbox\",\n inputProps: {\n 'data-indeterminate': indeterminate,\n ...inputProps\n },\n icon: /*#__PURE__*/React.cloneElement(icon, {\n fontSize: icon.props.fontSize ?? size\n }),\n checkedIcon: /*#__PURE__*/React.cloneElement(indeterminateIcon, {\n fontSize: indeterminateIcon.props.fontSize ?? size\n }),\n ownerState: ownerState,\n ref: ref,\n className: clsx(classes.root, className),\n ...other,\n classes: classes\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Checkbox.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * If `true`, the component is checked.\n */\n checked: PropTypes.bool,\n /**\n * The icon to display when the component is checked.\n * @default \n */\n checkedIcon: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).\n * @default 'primary'\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['default', 'primary', 'secondary', 'error', 'info', 'success', 'warning']), PropTypes.string]),\n /**\n * The default checked state. Use when the component is not controlled.\n */\n defaultChecked: PropTypes.bool,\n /**\n * If `true`, the component is disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, the ripple effect is disabled.\n * @default false\n */\n disableRipple: PropTypes.bool,\n /**\n * The icon to display when the component is unchecked.\n * @default \n */\n icon: PropTypes.node,\n /**\n * The id of the `input` element.\n */\n id: PropTypes.string,\n /**\n * If `true`, the component appears indeterminate.\n * This does not set the native input element to indeterminate due\n * to inconsistent behavior across browsers.\n * However, we set a `data-indeterminate` attribute on the `input`.\n * @default false\n */\n indeterminate: PropTypes.bool,\n /**\n * The icon to display when the component is indeterminate.\n * @default \n */\n indeterminateIcon: PropTypes.node,\n /**\n * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n */\n inputProps: PropTypes.object,\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n /**\n * Callback fired when the state is changed.\n *\n * @param {React.ChangeEvent} event The event source of the callback.\n * You can pull out the new checked state by accessing `event.target.checked` (boolean).\n */\n onChange: PropTypes.func,\n /**\n * If `true`, the `input` element is required.\n * @default false\n */\n required: PropTypes.bool,\n /**\n * The size of the component.\n * `small` is equivalent to the dense checkbox styling.\n * @default 'medium'\n */\n size: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['medium', 'small']), PropTypes.string]),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The value of the component. The DOM API casts this to a string.\n * The browser uses \"on\" as the default value.\n */\n value: PropTypes.any\n} : void 0;\nexport default Checkbox;","import React, { useState, useMemo } from 'react';\nimport { LineChart, Line, XAxis, YAxis, CartesianGrid, Tooltip, Legend, ResponsiveContainer } from 'recharts';\nimport { Card, CardContent, Typography, FormGroup, FormControlLabel, Switch, Checkbox, Box, useTheme } from '@mui/material';\nimport dayjs from 'dayjs';\n\nconst EquityCurveChart = ({ data, strategies, assetName, startDate, endDate }) => {\n const [showBenchmark, setShowBenchmark] = useState(true);\n const [visibleStrategies, setVisibleStrategies] = useState({});\n const [useLogEquity, setUseLogEquity] = useState(false); // Default is off\n const theme = useTheme();\n\n const toggleStrategy = (strategyName) => {\n setVisibleStrategies(prev => ({ ...prev, [strategyName]: !prev[strategyName] }));\n };\n\n const colors = ['#FF6B6B', '#4ECDC4', '#45B7D1', '#FFA07A', '#98D8C8', '#F7DC6F', '#B19CD9', '#FF90B3'];\n\n const formatYAxis = (value) => {\n return useLogEquity ? value.toFixed(0) : value.toFixed(2);\n };\n \n const formatXAxis = (dateStr) => {\n const date = dayjs(dateStr);\n return date.isValid() ? date.format('MMM YYYY') : 'Invalid Date';\n };\n\n const CustomTooltip = ({ active, payload, label }) => {\n if (active && payload && payload.length) {\n const date = dayjs(label);\n return (\n
\n

{`Date: ${date.format('YYYY-MM-DD')}`}

\n {payload.map((entry, index) => (\n

\n {`${entry.name}: ${entry.value.toFixed(2)}`}\n

\n ))}\n
\n );\n }\n return null;\n };\n\n const shouldShowTick = (tickItem) => {\n const date = dayjs(tickItem);\n return date.month() % 4 === 0;\n };\n\n const yAxisDomain = useMemo(() => {\n if (!data || data.length === 0) return [0, 'auto'];\n const allValues = data.flatMap(item => [\n useLogEquity ? item.cumulative_log_equity : item.cumulative_equity,\n useLogEquity ? item.cumulative_log_market_equity : item.cumulative_market_equity,\n ...strategies.map(s => item[`${s.name}_${useLogEquity ? 'cumulative_log_equity' : 'cumulative_equity'}`])\n ].filter(Boolean));\n const minValue = Math.floor(Math.min(...allValues));\n const maxValue = Math.ceil(Math.max(...allValues));\n return [minValue, maxValue];\n }, [data, strategies, useLogEquity]);\n\n return (\n \n \n \n {/* Add any title or additional content here if needed */}\n \n {/* Align toggles and checkbox on opposite sides */}\n \n {/* Left side: Benchmark and Strategy Toggles */}\n \n setShowBenchmark(!showBenchmark)} color=\"primary\" />}\n label=\"Buy & Hold\"\n />\n {strategies.map((strategy, index) => (\n toggleStrategy(strategy.name)}\n color=\"primary\"\n />\n }\n label={strategy.name}\n />\n ))}\n \n {/* Right side: Log Returns Checkbox */}\n setUseLogEquity(!useLogEquity)}\n color=\"primary\"\n />\n }\n label=\"Log Returns\"\n />\n \n \n \n \n shouldShowTick(item.Date)).map(item => item.Date)}\n />\n i + yAxisDomain[0]\n )}\n />\n } />\n \n \n {showBenchmark && (\n \n )}\n {strategies.map((strategy, index) => \n visibleStrategies[strategy.name] && (\n \n )\n )}\n \n \n \n \n );\n};\n\nexport default React.memo(EquityCurveChart);\n\n","import React, { useState, useCallback } from 'react';\nimport { LineChart, Line, XAxis, YAxis, CartesianGrid, Tooltip, Legend, ResponsiveContainer } from 'recharts';\nimport { FormGroup, FormControlLabel, Switch, useTheme } from '@mui/material';\nimport dayjs from 'dayjs';\n\nconst RollingSharpeChart = ({ data, strategies, assetName }) => {\n const [showBenchmark, setShowBenchmark] = useState(true);\n const [visibleStrategies, setVisibleStrategies] = useState({});\n const theme = useTheme();\n\n const colors = ['#FF6B6B', '#4ECDC4', '#45B7D1', '#FFA07A', '#98D8C8', '#F7DC6F', '#B19CD9', '#FF90B3'];\n\n const formatXAxis = useCallback((dateStr) => {\n const date = dayjs(dateStr);\n return date.isValid() ? date.format('MMM YYYY') : '';\n }, []);\n\n const toggleStrategy = useCallback((strategyName) => {\n setVisibleStrategies(prev => ({ ...prev, [strategyName]: !prev[strategyName] }));\n }, []);\n\n const shouldShowTick = (tickItem) => {\n const date = dayjs(tickItem);\n return date.month() % 4 === 0;\n };\n\n const CustomTooltip = useCallback(({ active, payload, label }) => {\n if (active && payload && payload.length) {\n const date = dayjs(label);\n return (\n
\n

{`Date: ${date.format('YYYY-MM-DD')}`}

\n {payload.map((entry, index) => (\n

\n {`${entry.name}: ${entry.value.toFixed(2)}`}\n

\n ))}\n
\n );\n }\n return null;\n }, []);\n\n return (\n <>\n \n setShowBenchmark(!showBenchmark)} color=\"primary\" />}\n label=\"Buy & Hold\"\n />\n {strategies.map((strategy, index) => (\n toggleStrategy(strategy.name)}\n color=\"primary\"\n />\n }\n label={strategy.name}\n />\n ))}\n \n \n \n \n shouldShowTick(item.Date)).map(item => item.Date)}\n />\n \n } />\n \n \n {showBenchmark && (\n \n )}\n {strategies.map((strategy, index) => \n visibleStrategies[strategy.name] && (\n \n )\n )}\n \n \n \n );\n};\n\nexport default React.memo(RollingSharpeChart);\n","import React, { useState, useCallback } from 'react';\nimport { LineChart, Line, XAxis, YAxis, CartesianGrid, Tooltip, Legend, ResponsiveContainer } from 'recharts';\nimport { FormGroup, FormControlLabel, Switch, useTheme } from '@mui/material';\nimport dayjs from 'dayjs';\n\nconst DrawdownChart = ({ data, strategies, assetName }) => {\n const [showBenchmark, setShowBenchmark] = useState(true);\n const [visibleStrategies, setVisibleStrategies] = useState({});\n const theme = useTheme();\n\n const colors = ['#FF6B6B', '#4ECDC4', '#45B7D1', '#FFA07A', '#98D8C8', '#F7DC6F', '#B19CD9', '#FF90B3'];\n\n const formatYAxis = useCallback((value) => `${(value * 100).toFixed(0)}%`, []);\n \n const formatXAxis = useCallback((dateStr) => {\n const date = dayjs(dateStr);\n return date.isValid() ? date.format('MMM YYYY') : '';\n }, []);\n\n const shouldShowTick = (tickItem) => {\n const date = dayjs(tickItem);\n return date.month() % 4 === 0;\n };\n\n const toggleStrategy = useCallback((strategyName) => {\n setVisibleStrategies(prev => ({ ...prev, [strategyName]: !prev[strategyName] }));\n }, []);\n\n const CustomTooltip = useCallback(({ active, payload, label }) => {\n if (active && payload && payload.length) {\n const date = dayjs(label);\n return (\n
\n

{`Date: ${date.format('YYYY-MM-DD')}`}

\n {payload.map((entry, index) => (\n

\n {`${entry.name}: ${(entry.value * 100).toFixed(2)}%`}\n

\n ))}\n
\n );\n }\n return null;\n }, []);\n\n return (\n <>\n \n setShowBenchmark(!showBenchmark)} color=\"primary\" />}\n label=\"Buy & Hold\"\n />\n {strategies.map((strategy, index) => (\n toggleStrategy(strategy.name)}\n color=\"primary\"\n />\n }\n label={strategy.name}\n />\n ))}\n \n \n \n \n shouldShowTick(item.Date)).map(item => item.Date)}\n />\n \n } />\n \n \n {showBenchmark && (\n \n )}\n {strategies.map((strategy, index) => \n visibleStrategies[strategy.name] && (\n \n )\n )}\n \n \n \n );\n};\n\nexport default React.memo(DrawdownChart);\n","import React, { useState } from 'react';\nimport { Card, CardContent, Typography, IconButton, Collapse, Box } from '@mui/material';\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore';\nimport ExpandLessIcon from '@mui/icons-material/ExpandLess';\n\nconst CollapsibleChart = ({ title, children, defaultExpanded = true }) => {\n const [expanded, setExpanded] = useState(defaultExpanded);\n\n return (\n \n \n \n \n {title}\n \n setExpanded(!expanded)}>\n {expanded ? : }\n \n \n \n {children}\n \n \n \n );\n};\n\nexport default CollapsibleChart;","/*!\n * @kurkle/color v0.3.2\n * https://github.com/kurkle/color#readme\n * (c) 2023 Jukka Kurkela\n * Released under the MIT License\n */\nfunction round(v) {\n return v + 0.5 | 0;\n}\nconst lim = (v, l, h) => Math.max(Math.min(v, h), l);\nfunction p2b(v) {\n return lim(round(v * 2.55), 0, 255);\n}\nfunction b2p(v) {\n return lim(round(v / 2.55), 0, 100);\n}\nfunction n2b(v) {\n return lim(round(v * 255), 0, 255);\n}\nfunction b2n(v) {\n return lim(round(v / 2.55) / 100, 0, 1);\n}\nfunction n2p(v) {\n return lim(round(v * 100), 0, 100);\n}\n\nconst map$1 = {0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, A: 10, B: 11, C: 12, D: 13, E: 14, F: 15, a: 10, b: 11, c: 12, d: 13, e: 14, f: 15};\nconst hex = [...'0123456789ABCDEF'];\nconst h1 = b => hex[b & 0xF];\nconst h2 = b => hex[(b & 0xF0) >> 4] + hex[b & 0xF];\nconst eq = b => ((b & 0xF0) >> 4) === (b & 0xF);\nconst isShort = v => eq(v.r) && eq(v.g) && eq(v.b) && eq(v.a);\nfunction hexParse(str) {\n var len = str.length;\n var ret;\n if (str[0] === '#') {\n if (len === 4 || len === 5) {\n ret = {\n r: 255 & map$1[str[1]] * 17,\n g: 255 & map$1[str[2]] * 17,\n b: 255 & map$1[str[3]] * 17,\n a: len === 5 ? map$1[str[4]] * 17 : 255\n };\n } else if (len === 7 || len === 9) {\n ret = {\n r: map$1[str[1]] << 4 | map$1[str[2]],\n g: map$1[str[3]] << 4 | map$1[str[4]],\n b: map$1[str[5]] << 4 | map$1[str[6]],\n a: len === 9 ? (map$1[str[7]] << 4 | map$1[str[8]]) : 255\n };\n }\n }\n return ret;\n}\nconst alpha = (a, f) => a < 255 ? f(a) : '';\nfunction hexString(v) {\n var f = isShort(v) ? h1 : h2;\n return v\n ? '#' + f(v.r) + f(v.g) + f(v.b) + alpha(v.a, f)\n : undefined;\n}\n\nconst HUE_RE = /^(hsla?|hwb|hsv)\\(\\s*([-+.e\\d]+)(?:deg)?[\\s,]+([-+.e\\d]+)%[\\s,]+([-+.e\\d]+)%(?:[\\s,]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction hsl2rgbn(h, s, l) {\n const a = s * Math.min(l, 1 - l);\n const f = (n, k = (n + h / 30) % 12) => l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n return [f(0), f(8), f(4)];\n}\nfunction hsv2rgbn(h, s, v) {\n const f = (n, k = (n + h / 60) % 6) => v - v * s * Math.max(Math.min(k, 4 - k, 1), 0);\n return [f(5), f(3), f(1)];\n}\nfunction hwb2rgbn(h, w, b) {\n const rgb = hsl2rgbn(h, 1, 0.5);\n let i;\n if (w + b > 1) {\n i = 1 / (w + b);\n w *= i;\n b *= i;\n }\n for (i = 0; i < 3; i++) {\n rgb[i] *= 1 - w - b;\n rgb[i] += w;\n }\n return rgb;\n}\nfunction hueValue(r, g, b, d, max) {\n if (r === max) {\n return ((g - b) / d) + (g < b ? 6 : 0);\n }\n if (g === max) {\n return (b - r) / d + 2;\n }\n return (r - g) / d + 4;\n}\nfunction rgb2hsl(v) {\n const range = 255;\n const r = v.r / range;\n const g = v.g / range;\n const b = v.b / range;\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n const l = (max + min) / 2;\n let h, s, d;\n if (max !== min) {\n d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n h = hueValue(r, g, b, d, max);\n h = h * 60 + 0.5;\n }\n return [h | 0, s || 0, l];\n}\nfunction calln(f, a, b, c) {\n return (\n Array.isArray(a)\n ? f(a[0], a[1], a[2])\n : f(a, b, c)\n ).map(n2b);\n}\nfunction hsl2rgb(h, s, l) {\n return calln(hsl2rgbn, h, s, l);\n}\nfunction hwb2rgb(h, w, b) {\n return calln(hwb2rgbn, h, w, b);\n}\nfunction hsv2rgb(h, s, v) {\n return calln(hsv2rgbn, h, s, v);\n}\nfunction hue(h) {\n return (h % 360 + 360) % 360;\n}\nfunction hueParse(str) {\n const m = HUE_RE.exec(str);\n let a = 255;\n let v;\n if (!m) {\n return;\n }\n if (m[5] !== v) {\n a = m[6] ? p2b(+m[5]) : n2b(+m[5]);\n }\n const h = hue(+m[2]);\n const p1 = +m[3] / 100;\n const p2 = +m[4] / 100;\n if (m[1] === 'hwb') {\n v = hwb2rgb(h, p1, p2);\n } else if (m[1] === 'hsv') {\n v = hsv2rgb(h, p1, p2);\n } else {\n v = hsl2rgb(h, p1, p2);\n }\n return {\n r: v[0],\n g: v[1],\n b: v[2],\n a: a\n };\n}\nfunction rotate(v, deg) {\n var h = rgb2hsl(v);\n h[0] = hue(h[0] + deg);\n h = hsl2rgb(h);\n v.r = h[0];\n v.g = h[1];\n v.b = h[2];\n}\nfunction hslString(v) {\n if (!v) {\n return;\n }\n const a = rgb2hsl(v);\n const h = a[0];\n const s = n2p(a[1]);\n const l = n2p(a[2]);\n return v.a < 255\n ? `hsla(${h}, ${s}%, ${l}%, ${b2n(v.a)})`\n : `hsl(${h}, ${s}%, ${l}%)`;\n}\n\nconst map = {\n x: 'dark',\n Z: 'light',\n Y: 're',\n X: 'blu',\n W: 'gr',\n V: 'medium',\n U: 'slate',\n A: 'ee',\n T: 'ol',\n S: 'or',\n B: 'ra',\n C: 'lateg',\n D: 'ights',\n R: 'in',\n Q: 'turquois',\n E: 'hi',\n P: 'ro',\n O: 'al',\n N: 'le',\n M: 'de',\n L: 'yello',\n F: 'en',\n K: 'ch',\n G: 'arks',\n H: 'ea',\n I: 'ightg',\n J: 'wh'\n};\nconst names$1 = {\n OiceXe: 'f0f8ff',\n antiquewEte: 'faebd7',\n aqua: 'ffff',\n aquamarRe: '7fffd4',\n azuY: 'f0ffff',\n beige: 'f5f5dc',\n bisque: 'ffe4c4',\n black: '0',\n blanKedOmond: 'ffebcd',\n Xe: 'ff',\n XeviTet: '8a2be2',\n bPwn: 'a52a2a',\n burlywood: 'deb887',\n caMtXe: '5f9ea0',\n KartYuse: '7fff00',\n KocTate: 'd2691e',\n cSO: 'ff7f50',\n cSnflowerXe: '6495ed',\n cSnsilk: 'fff8dc',\n crimson: 'dc143c',\n cyan: 'ffff',\n xXe: '8b',\n xcyan: '8b8b',\n xgTMnPd: 'b8860b',\n xWay: 'a9a9a9',\n xgYF: '6400',\n xgYy: 'a9a9a9',\n xkhaki: 'bdb76b',\n xmagFta: '8b008b',\n xTivegYF: '556b2f',\n xSange: 'ff8c00',\n xScEd: '9932cc',\n xYd: '8b0000',\n xsOmon: 'e9967a',\n xsHgYF: '8fbc8f',\n xUXe: '483d8b',\n xUWay: '2f4f4f',\n xUgYy: '2f4f4f',\n xQe: 'ced1',\n xviTet: '9400d3',\n dAppRk: 'ff1493',\n dApskyXe: 'bfff',\n dimWay: '696969',\n dimgYy: '696969',\n dodgerXe: '1e90ff',\n fiYbrick: 'b22222',\n flSOwEte: 'fffaf0',\n foYstWAn: '228b22',\n fuKsia: 'ff00ff',\n gaRsbSo: 'dcdcdc',\n ghostwEte: 'f8f8ff',\n gTd: 'ffd700',\n gTMnPd: 'daa520',\n Way: '808080',\n gYF: '8000',\n gYFLw: 'adff2f',\n gYy: '808080',\n honeyMw: 'f0fff0',\n hotpRk: 'ff69b4',\n RdianYd: 'cd5c5c',\n Rdigo: '4b0082',\n ivSy: 'fffff0',\n khaki: 'f0e68c',\n lavFMr: 'e6e6fa',\n lavFMrXsh: 'fff0f5',\n lawngYF: '7cfc00',\n NmoncEffon: 'fffacd',\n ZXe: 'add8e6',\n ZcSO: 'f08080',\n Zcyan: 'e0ffff',\n ZgTMnPdLw: 'fafad2',\n ZWay: 'd3d3d3',\n ZgYF: '90ee90',\n ZgYy: 'd3d3d3',\n ZpRk: 'ffb6c1',\n ZsOmon: 'ffa07a',\n ZsHgYF: '20b2aa',\n ZskyXe: '87cefa',\n ZUWay: '778899',\n ZUgYy: '778899',\n ZstAlXe: 'b0c4de',\n ZLw: 'ffffe0',\n lime: 'ff00',\n limegYF: '32cd32',\n lRF: 'faf0e6',\n magFta: 'ff00ff',\n maPon: '800000',\n VaquamarRe: '66cdaa',\n VXe: 'cd',\n VScEd: 'ba55d3',\n VpurpN: '9370db',\n VsHgYF: '3cb371',\n VUXe: '7b68ee',\n VsprRggYF: 'fa9a',\n VQe: '48d1cc',\n VviTetYd: 'c71585',\n midnightXe: '191970',\n mRtcYam: 'f5fffa',\n mistyPse: 'ffe4e1',\n moccasR: 'ffe4b5',\n navajowEte: 'ffdead',\n navy: '80',\n Tdlace: 'fdf5e6',\n Tive: '808000',\n TivedBb: '6b8e23',\n Sange: 'ffa500',\n SangeYd: 'ff4500',\n ScEd: 'da70d6',\n pOegTMnPd: 'eee8aa',\n pOegYF: '98fb98',\n pOeQe: 'afeeee',\n pOeviTetYd: 'db7093',\n papayawEp: 'ffefd5',\n pHKpuff: 'ffdab9',\n peru: 'cd853f',\n pRk: 'ffc0cb',\n plum: 'dda0dd',\n powMrXe: 'b0e0e6',\n purpN: '800080',\n YbeccapurpN: '663399',\n Yd: 'ff0000',\n Psybrown: 'bc8f8f',\n PyOXe: '4169e1',\n saddNbPwn: '8b4513',\n sOmon: 'fa8072',\n sandybPwn: 'f4a460',\n sHgYF: '2e8b57',\n sHshell: 'fff5ee',\n siFna: 'a0522d',\n silver: 'c0c0c0',\n skyXe: '87ceeb',\n UXe: '6a5acd',\n UWay: '708090',\n UgYy: '708090',\n snow: 'fffafa',\n sprRggYF: 'ff7f',\n stAlXe: '4682b4',\n tan: 'd2b48c',\n teO: '8080',\n tEstN: 'd8bfd8',\n tomato: 'ff6347',\n Qe: '40e0d0',\n viTet: 'ee82ee',\n JHt: 'f5deb3',\n wEte: 'ffffff',\n wEtesmoke: 'f5f5f5',\n Lw: 'ffff00',\n LwgYF: '9acd32'\n};\nfunction unpack() {\n const unpacked = {};\n const keys = Object.keys(names$1);\n const tkeys = Object.keys(map);\n let i, j, k, ok, nk;\n for (i = 0; i < keys.length; i++) {\n ok = nk = keys[i];\n for (j = 0; j < tkeys.length; j++) {\n k = tkeys[j];\n nk = nk.replace(k, map[k]);\n }\n k = parseInt(names$1[ok], 16);\n unpacked[nk] = [k >> 16 & 0xFF, k >> 8 & 0xFF, k & 0xFF];\n }\n return unpacked;\n}\n\nlet names;\nfunction nameParse(str) {\n if (!names) {\n names = unpack();\n names.transparent = [0, 0, 0, 0];\n }\n const a = names[str.toLowerCase()];\n return a && {\n r: a[0],\n g: a[1],\n b: a[2],\n a: a.length === 4 ? a[3] : 255\n };\n}\n\nconst RGB_RE = /^rgba?\\(\\s*([-+.\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?(?:[\\s,/]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction rgbParse(str) {\n const m = RGB_RE.exec(str);\n let a = 255;\n let r, g, b;\n if (!m) {\n return;\n }\n if (m[7] !== r) {\n const v = +m[7];\n a = m[8] ? p2b(v) : lim(v * 255, 0, 255);\n }\n r = +m[1];\n g = +m[3];\n b = +m[5];\n r = 255 & (m[2] ? p2b(r) : lim(r, 0, 255));\n g = 255 & (m[4] ? p2b(g) : lim(g, 0, 255));\n b = 255 & (m[6] ? p2b(b) : lim(b, 0, 255));\n return {\n r: r,\n g: g,\n b: b,\n a: a\n };\n}\nfunction rgbString(v) {\n return v && (\n v.a < 255\n ? `rgba(${v.r}, ${v.g}, ${v.b}, ${b2n(v.a)})`\n : `rgb(${v.r}, ${v.g}, ${v.b})`\n );\n}\n\nconst to = v => v <= 0.0031308 ? v * 12.92 : Math.pow(v, 1.0 / 2.4) * 1.055 - 0.055;\nconst from = v => v <= 0.04045 ? v / 12.92 : Math.pow((v + 0.055) / 1.055, 2.4);\nfunction interpolate(rgb1, rgb2, t) {\n const r = from(b2n(rgb1.r));\n const g = from(b2n(rgb1.g));\n const b = from(b2n(rgb1.b));\n return {\n r: n2b(to(r + t * (from(b2n(rgb2.r)) - r))),\n g: n2b(to(g + t * (from(b2n(rgb2.g)) - g))),\n b: n2b(to(b + t * (from(b2n(rgb2.b)) - b))),\n a: rgb1.a + t * (rgb2.a - rgb1.a)\n };\n}\n\nfunction modHSL(v, i, ratio) {\n if (v) {\n let tmp = rgb2hsl(v);\n tmp[i] = Math.max(0, Math.min(tmp[i] + tmp[i] * ratio, i === 0 ? 360 : 1));\n tmp = hsl2rgb(tmp);\n v.r = tmp[0];\n v.g = tmp[1];\n v.b = tmp[2];\n }\n}\nfunction clone(v, proto) {\n return v ? Object.assign(proto || {}, v) : v;\n}\nfunction fromObject(input) {\n var v = {r: 0, g: 0, b: 0, a: 255};\n if (Array.isArray(input)) {\n if (input.length >= 3) {\n v = {r: input[0], g: input[1], b: input[2], a: 255};\n if (input.length > 3) {\n v.a = n2b(input[3]);\n }\n }\n } else {\n v = clone(input, {r: 0, g: 0, b: 0, a: 1});\n v.a = n2b(v.a);\n }\n return v;\n}\nfunction functionParse(str) {\n if (str.charAt(0) === 'r') {\n return rgbParse(str);\n }\n return hueParse(str);\n}\nclass Color {\n constructor(input) {\n if (input instanceof Color) {\n return input;\n }\n const type = typeof input;\n let v;\n if (type === 'object') {\n v = fromObject(input);\n } else if (type === 'string') {\n v = hexParse(input) || nameParse(input) || functionParse(input);\n }\n this._rgb = v;\n this._valid = !!v;\n }\n get valid() {\n return this._valid;\n }\n get rgb() {\n var v = clone(this._rgb);\n if (v) {\n v.a = b2n(v.a);\n }\n return v;\n }\n set rgb(obj) {\n this._rgb = fromObject(obj);\n }\n rgbString() {\n return this._valid ? rgbString(this._rgb) : undefined;\n }\n hexString() {\n return this._valid ? hexString(this._rgb) : undefined;\n }\n hslString() {\n return this._valid ? hslString(this._rgb) : undefined;\n }\n mix(color, weight) {\n if (color) {\n const c1 = this.rgb;\n const c2 = color.rgb;\n let w2;\n const p = weight === w2 ? 0.5 : weight;\n const w = 2 * p - 1;\n const a = c1.a - c2.a;\n const w1 = ((w * a === -1 ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n w2 = 1 - w1;\n c1.r = 0xFF & w1 * c1.r + w2 * c2.r + 0.5;\n c1.g = 0xFF & w1 * c1.g + w2 * c2.g + 0.5;\n c1.b = 0xFF & w1 * c1.b + w2 * c2.b + 0.5;\n c1.a = p * c1.a + (1 - p) * c2.a;\n this.rgb = c1;\n }\n return this;\n }\n interpolate(color, t) {\n if (color) {\n this._rgb = interpolate(this._rgb, color._rgb, t);\n }\n return this;\n }\n clone() {\n return new Color(this.rgb);\n }\n alpha(a) {\n this._rgb.a = n2b(a);\n return this;\n }\n clearer(ratio) {\n const rgb = this._rgb;\n rgb.a *= 1 - ratio;\n return this;\n }\n greyscale() {\n const rgb = this._rgb;\n const val = round(rgb.r * 0.3 + rgb.g * 0.59 + rgb.b * 0.11);\n rgb.r = rgb.g = rgb.b = val;\n return this;\n }\n opaquer(ratio) {\n const rgb = this._rgb;\n rgb.a *= 1 + ratio;\n return this;\n }\n negate() {\n const v = this._rgb;\n v.r = 255 - v.r;\n v.g = 255 - v.g;\n v.b = 255 - v.b;\n return this;\n }\n lighten(ratio) {\n modHSL(this._rgb, 2, ratio);\n return this;\n }\n darken(ratio) {\n modHSL(this._rgb, 2, -ratio);\n return this;\n }\n saturate(ratio) {\n modHSL(this._rgb, 1, ratio);\n return this;\n }\n desaturate(ratio) {\n modHSL(this._rgb, 1, -ratio);\n return this;\n }\n rotate(deg) {\n rotate(this._rgb, deg);\n return this;\n }\n}\n\nfunction index_esm(input) {\n return new Color(input);\n}\n\nexport { Color, b2n, b2p, index_esm as default, hexParse, hexString, hsl2rgb, hslString, hsv2rgb, hueParse, hwb2rgb, lim, n2b, n2p, nameParse, p2b, rgb2hsl, rgbParse, rgbString, rotate, round };\n","/**\n * @namespace Chart.helpers\n */\n\nimport type {AnyObject} from '../types/basic.js';\nimport type {ActiveDataPoint, ChartEvent} from '../types/index.js';\n\n/**\n * An empty function that can be used, for example, for optional callback.\n */\nexport function noop() {\n /* noop */\n}\n\n/**\n * Returns a unique id, sequentially generated from a global variable.\n */\nexport const uid = (() => {\n let id = 0;\n return () => id++;\n})();\n\n/**\n * Returns true if `value` is neither null nor undefined, else returns false.\n * @param value - The value to test.\n * @since 2.7.0\n */\nexport function isNullOrUndef(value: unknown): value is null | undefined {\n return value === null || typeof value === 'undefined';\n}\n\n/**\n * Returns true if `value` is an array (including typed arrays), else returns false.\n * @param value - The value to test.\n * @function\n */\nexport function isArray(value: unknown): value is T[] {\n if (Array.isArray && Array.isArray(value)) {\n return true;\n }\n const type = Object.prototype.toString.call(value);\n if (type.slice(0, 7) === '[object' && type.slice(-6) === 'Array]') {\n return true;\n }\n return false;\n}\n\n/**\n * Returns true if `value` is an object (excluding null), else returns false.\n * @param value - The value to test.\n * @since 2.7.0\n */\nexport function isObject(value: unknown): value is AnyObject {\n return value !== null && Object.prototype.toString.call(value) === '[object Object]';\n}\n\n/**\n * Returns true if `value` is a finite number, else returns false\n * @param value - The value to test.\n */\nfunction isNumberFinite(value: unknown): value is number {\n return (typeof value === 'number' || value instanceof Number) && isFinite(+value);\n}\nexport {\n isNumberFinite as isFinite,\n};\n\n/**\n * Returns `value` if finite, else returns `defaultValue`.\n * @param value - The value to return if defined.\n * @param defaultValue - The value to return if `value` is not finite.\n */\nexport function finiteOrDefault(value: unknown, defaultValue: number) {\n return isNumberFinite(value) ? value : defaultValue;\n}\n\n/**\n * Returns `value` if defined, else returns `defaultValue`.\n * @param value - The value to return if defined.\n * @param defaultValue - The value to return if `value` is undefined.\n */\nexport function valueOrDefault(value: T | undefined, defaultValue: T) {\n return typeof value === 'undefined' ? defaultValue : value;\n}\n\nexport const toPercentage = (value: number | string, dimension: number) =>\n typeof value === 'string' && value.endsWith('%') ?\n parseFloat(value) / 100\n : +value / dimension;\n\nexport const toDimension = (value: number | string, dimension: number) =>\n typeof value === 'string' && value.endsWith('%') ?\n parseFloat(value) / 100 * dimension\n : +value;\n\n/**\n * Calls `fn` with the given `args` in the scope defined by `thisArg` and returns the\n * value returned by `fn`. If `fn` is not a function, this method returns undefined.\n * @param fn - The function to call.\n * @param args - The arguments with which `fn` should be called.\n * @param [thisArg] - The value of `this` provided for the call to `fn`.\n */\nexport function callback R, TA, R>(\n fn: T | undefined,\n args: unknown[],\n thisArg?: TA\n): R | undefined {\n if (fn && typeof fn.call === 'function') {\n return fn.apply(thisArg, args);\n }\n}\n\n/**\n * Note(SB) for performance sake, this method should only be used when loopable type\n * is unknown or in none intensive code (not called often and small loopable). Else\n * it's preferable to use a regular for() loop and save extra function calls.\n * @param loopable - The object or array to be iterated.\n * @param fn - The function to call for each item.\n * @param [thisArg] - The value of `this` provided for the call to `fn`.\n * @param [reverse] - If true, iterates backward on the loopable.\n */\nexport function each(\n loopable: Record,\n fn: (this: TA, v: T, i: string) => void,\n thisArg?: TA,\n reverse?: boolean\n): void;\nexport function each(\n loopable: T[],\n fn: (this: TA, v: T, i: number) => void,\n thisArg?: TA,\n reverse?: boolean\n): void;\nexport function each(\n loopable: T[] | Record,\n fn: (this: TA, v: T, i: any) => void,\n thisArg?: TA,\n reverse?: boolean\n) {\n let i: number, len: number, keys: string[];\n if (isArray(loopable)) {\n len = loopable.length;\n if (reverse) {\n for (i = len - 1; i >= 0; i--) {\n fn.call(thisArg, loopable[i], i);\n }\n } else {\n for (i = 0; i < len; i++) {\n fn.call(thisArg, loopable[i], i);\n }\n }\n } else if (isObject(loopable)) {\n keys = Object.keys(loopable);\n len = keys.length;\n for (i = 0; i < len; i++) {\n fn.call(thisArg, loopable[keys[i]], keys[i]);\n }\n }\n}\n\n/**\n * Returns true if the `a0` and `a1` arrays have the same content, else returns false.\n * @param a0 - The array to compare\n * @param a1 - The array to compare\n * @private\n */\nexport function _elementsEqual(a0: ActiveDataPoint[], a1: ActiveDataPoint[]) {\n let i: number, ilen: number, v0: ActiveDataPoint, v1: ActiveDataPoint;\n\n if (!a0 || !a1 || a0.length !== a1.length) {\n return false;\n }\n\n for (i = 0, ilen = a0.length; i < ilen; ++i) {\n v0 = a0[i];\n v1 = a1[i];\n\n if (v0.datasetIndex !== v1.datasetIndex || v0.index !== v1.index) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Returns a deep copy of `source` without keeping references on objects and arrays.\n * @param source - The value to clone.\n */\nexport function clone(source: T): T {\n if (isArray(source)) {\n return source.map(clone) as unknown as T;\n }\n\n if (isObject(source)) {\n const target = Object.create(null);\n const keys = Object.keys(source);\n const klen = keys.length;\n let k = 0;\n\n for (; k < klen; ++k) {\n target[keys[k]] = clone(source[keys[k]]);\n }\n\n return target;\n }\n\n return source;\n}\n\nfunction isValidKey(key: string) {\n return ['__proto__', 'prototype', 'constructor'].indexOf(key) === -1;\n}\n\n/**\n * The default merger when Chart.helpers.merge is called without merger option.\n * Note(SB): also used by mergeConfig and mergeScaleConfig as fallback.\n * @private\n */\nexport function _merger(key: string, target: AnyObject, source: AnyObject, options: AnyObject) {\n if (!isValidKey(key)) {\n return;\n }\n\n const tval = target[key];\n const sval = source[key];\n\n if (isObject(tval) && isObject(sval)) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n merge(tval, sval, options);\n } else {\n target[key] = clone(sval);\n }\n}\n\nexport interface MergeOptions {\n merger?: (key: string, target: AnyObject, source: AnyObject, options?: AnyObject) => void;\n}\n\n/**\n * Recursively deep copies `source` properties into `target` with the given `options`.\n * IMPORTANT: `target` is not cloned and will be updated with `source` properties.\n * @param target - The target object in which all sources are merged into.\n * @param source - Object(s) to merge into `target`.\n * @param [options] - Merging options:\n * @param [options.merger] - The merge method (key, target, source, options)\n * @returns The `target` object.\n */\nexport function merge(target: T, source: [], options?: MergeOptions): T;\nexport function merge(target: T, source: S1, options?: MergeOptions): T & S1;\nexport function merge(target: T, source: [S1], options?: MergeOptions): T & S1;\nexport function merge(target: T, source: [S1, S2], options?: MergeOptions): T & S1 & S2;\nexport function merge(target: T, source: [S1, S2, S3], options?: MergeOptions): T & S1 & S2 & S3;\nexport function merge(\n target: T,\n source: [S1, S2, S3, S4],\n options?: MergeOptions\n): T & S1 & S2 & S3 & S4;\nexport function merge(target: T, source: AnyObject[], options?: MergeOptions): AnyObject;\nexport function merge(target: T, source: AnyObject[], options?: MergeOptions): AnyObject {\n const sources = isArray(source) ? source : [source];\n const ilen = sources.length;\n\n if (!isObject(target)) {\n return target as AnyObject;\n }\n\n options = options || {};\n const merger = options.merger || _merger;\n let current: AnyObject;\n\n for (let i = 0; i < ilen; ++i) {\n current = sources[i];\n if (!isObject(current)) {\n continue;\n }\n\n const keys = Object.keys(current);\n for (let k = 0, klen = keys.length; k < klen; ++k) {\n merger(keys[k], target, current, options as AnyObject);\n }\n }\n\n return target;\n}\n\n/**\n * Recursively deep copies `source` properties into `target` *only* if not defined in target.\n * IMPORTANT: `target` is not cloned and will be updated with `source` properties.\n * @param target - The target object in which all sources are merged into.\n * @param source - Object(s) to merge into `target`.\n * @returns The `target` object.\n */\nexport function mergeIf(target: T, source: []): T;\nexport function mergeIf(target: T, source: S1): T & S1;\nexport function mergeIf(target: T, source: [S1]): T & S1;\nexport function mergeIf(target: T, source: [S1, S2]): T & S1 & S2;\nexport function mergeIf(target: T, source: [S1, S2, S3]): T & S1 & S2 & S3;\nexport function mergeIf(target: T, source: [S1, S2, S3, S4]): T & S1 & S2 & S3 & S4;\nexport function mergeIf(target: T, source: AnyObject[]): AnyObject;\nexport function mergeIf(target: T, source: AnyObject[]): AnyObject {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return merge(target, source, {merger: _mergerIf});\n}\n\n/**\n * Merges source[key] in target[key] only if target[key] is undefined.\n * @private\n */\nexport function _mergerIf(key: string, target: AnyObject, source: AnyObject) {\n if (!isValidKey(key)) {\n return;\n }\n\n const tval = target[key];\n const sval = source[key];\n\n if (isObject(tval) && isObject(sval)) {\n mergeIf(tval, sval);\n } else if (!Object.prototype.hasOwnProperty.call(target, key)) {\n target[key] = clone(sval);\n }\n}\n\n/**\n * @private\n */\nexport function _deprecated(scope: string, value: unknown, previous: string, current: string) {\n if (value !== undefined) {\n console.warn(scope + ': \"' + previous +\n '\" is deprecated. Please use \"' + current + '\" instead');\n }\n}\n\n// resolveObjectKey resolver cache\nconst keyResolvers = {\n // Chart.helpers.core resolveObjectKey should resolve empty key to root object\n '': v => v,\n // default resolvers\n x: o => o.x,\n y: o => o.y\n};\n\n/**\n * @private\n */\nexport function _splitKey(key: string) {\n const parts = key.split('.');\n const keys: string[] = [];\n let tmp = '';\n for (const part of parts) {\n tmp += part;\n if (tmp.endsWith('\\\\')) {\n tmp = tmp.slice(0, -1) + '.';\n } else {\n keys.push(tmp);\n tmp = '';\n }\n }\n return keys;\n}\n\nfunction _getKeyResolver(key: string) {\n const keys = _splitKey(key);\n return obj => {\n for (const k of keys) {\n if (k === '') {\n // For backward compatibility:\n // Chart.helpers.core resolveObjectKey should break at empty key\n break;\n }\n obj = obj && obj[k];\n }\n return obj;\n };\n}\n\nexport function resolveObjectKey(obj: AnyObject, key: string): any {\n const resolver = keyResolvers[key] || (keyResolvers[key] = _getKeyResolver(key));\n return resolver(obj);\n}\n\n/**\n * @private\n */\nexport function _capitalize(str: string) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\n\n\nexport const defined = (value: unknown) => typeof value !== 'undefined';\n\nexport const isFunction = (value: unknown): value is (...args: any[]) => any => typeof value === 'function';\n\n// Adapted from https://stackoverflow.com/questions/31128855/comparing-ecma6-sets-for-equality#31129384\nexport const setsEqual = (a: Set, b: Set) => {\n if (a.size !== b.size) {\n return false;\n }\n\n for (const item of a) {\n if (!b.has(item)) {\n return false;\n }\n }\n\n return true;\n};\n\n/**\n * @param e - The event\n * @private\n */\nexport function _isClickEvent(e: ChartEvent) {\n return e.type === 'mouseup' || e.type === 'click' || e.type === 'contextmenu';\n}\n","import type {Point} from '../types/geometric.js';\nimport {isFinite as isFiniteNumber} from './helpers.core.js';\n\n/**\n * @alias Chart.helpers.math\n * @namespace\n */\n\nexport const PI = Math.PI;\nexport const TAU = 2 * PI;\nexport const PITAU = TAU + PI;\nexport const INFINITY = Number.POSITIVE_INFINITY;\nexport const RAD_PER_DEG = PI / 180;\nexport const HALF_PI = PI / 2;\nexport const QUARTER_PI = PI / 4;\nexport const TWO_THIRDS_PI = PI * 2 / 3;\n\nexport const log10 = Math.log10;\nexport const sign = Math.sign;\n\nexport function almostEquals(x: number, y: number, epsilon: number) {\n return Math.abs(x - y) < epsilon;\n}\n\n/**\n * Implementation of the nice number algorithm used in determining where axis labels will go\n */\nexport function niceNum(range: number) {\n const roundedRange = Math.round(range);\n range = almostEquals(range, roundedRange, range / 1000) ? roundedRange : range;\n const niceRange = Math.pow(10, Math.floor(log10(range)));\n const fraction = range / niceRange;\n const niceFraction = fraction <= 1 ? 1 : fraction <= 2 ? 2 : fraction <= 5 ? 5 : 10;\n return niceFraction * niceRange;\n}\n\n/**\n * Returns an array of factors sorted from 1 to sqrt(value)\n * @private\n */\nexport function _factorize(value: number) {\n const result: number[] = [];\n const sqrt = Math.sqrt(value);\n let i: number;\n\n for (i = 1; i < sqrt; i++) {\n if (value % i === 0) {\n result.push(i);\n result.push(value / i);\n }\n }\n if (sqrt === (sqrt | 0)) { // if value is a square number\n result.push(sqrt);\n }\n\n result.sort((a, b) => a - b).pop();\n return result;\n}\n\nexport function isNumber(n: unknown): n is number {\n return !isNaN(parseFloat(n as string)) && isFinite(n as number);\n}\n\nexport function almostWhole(x: number, epsilon: number) {\n const rounded = Math.round(x);\n return ((rounded - epsilon) <= x) && ((rounded + epsilon) >= x);\n}\n\n/**\n * @private\n */\nexport function _setMinAndMaxByKey(\n array: Record[],\n target: { min: number, max: number },\n property: string\n) {\n let i: number, ilen: number, value: number;\n\n for (i = 0, ilen = array.length; i < ilen; i++) {\n value = array[i][property];\n if (!isNaN(value)) {\n target.min = Math.min(target.min, value);\n target.max = Math.max(target.max, value);\n }\n }\n}\n\nexport function toRadians(degrees: number) {\n return degrees * (PI / 180);\n}\n\nexport function toDegrees(radians: number) {\n return radians * (180 / PI);\n}\n\n/**\n * Returns the number of decimal places\n * i.e. the number of digits after the decimal point, of the value of this Number.\n * @param x - A number.\n * @returns The number of decimal places.\n * @private\n */\nexport function _decimalPlaces(x: number) {\n if (!isFiniteNumber(x)) {\n return;\n }\n let e = 1;\n let p = 0;\n while (Math.round(x * e) / e !== x) {\n e *= 10;\n p++;\n }\n return p;\n}\n\n// Gets the angle from vertical upright to the point about a centre.\nexport function getAngleFromPoint(\n centrePoint: Point,\n anglePoint: Point\n) {\n const distanceFromXCenter = anglePoint.x - centrePoint.x;\n const distanceFromYCenter = anglePoint.y - centrePoint.y;\n const radialDistanceFromCenter = Math.sqrt(distanceFromXCenter * distanceFromXCenter + distanceFromYCenter * distanceFromYCenter);\n\n let angle = Math.atan2(distanceFromYCenter, distanceFromXCenter);\n\n if (angle < (-0.5 * PI)) {\n angle += TAU; // make sure the returned angle is in the range of (-PI/2, 3PI/2]\n }\n\n return {\n angle,\n distance: radialDistanceFromCenter\n };\n}\n\nexport function distanceBetweenPoints(pt1: Point, pt2: Point) {\n return Math.sqrt(Math.pow(pt2.x - pt1.x, 2) + Math.pow(pt2.y - pt1.y, 2));\n}\n\n/**\n * Shortest distance between angles, in either direction.\n * @private\n */\nexport function _angleDiff(a: number, b: number) {\n return (a - b + PITAU) % TAU - PI;\n}\n\n/**\n * Normalize angle to be between 0 and 2*PI\n * @private\n */\nexport function _normalizeAngle(a: number) {\n return (a % TAU + TAU) % TAU;\n}\n\n/**\n * @private\n */\nexport function _angleBetween(angle: number, start: number, end: number, sameAngleIsFullCircle?: boolean) {\n const a = _normalizeAngle(angle);\n const s = _normalizeAngle(start);\n const e = _normalizeAngle(end);\n const angleToStart = _normalizeAngle(s - a);\n const angleToEnd = _normalizeAngle(e - a);\n const startToAngle = _normalizeAngle(a - s);\n const endToAngle = _normalizeAngle(a - e);\n return a === s || a === e || (sameAngleIsFullCircle && s === e)\n || (angleToStart > angleToEnd && startToAngle < endToAngle);\n}\n\n/**\n * Limit `value` between `min` and `max`\n * @param value\n * @param min\n * @param max\n * @private\n */\nexport function _limitValue(value: number, min: number, max: number) {\n return Math.max(min, Math.min(max, value));\n}\n\n/**\n * @param {number} value\n * @private\n */\nexport function _int16Range(value: number) {\n return _limitValue(value, -32768, 32767);\n}\n\n/**\n * @param value\n * @param start\n * @param end\n * @param [epsilon]\n * @private\n */\nexport function _isBetween(value: number, start: number, end: number, epsilon = 1e-6) {\n return value >= Math.min(start, end) - epsilon && value <= Math.max(start, end) + epsilon;\n}\n","import {_capitalize} from './helpers.core.js';\n\n/**\n * Binary search\n * @param table - the table search. must be sorted!\n * @param value - value to find\n * @param cmp\n * @private\n */\nexport function _lookup(\n table: number[],\n value: number,\n cmp?: (value: number) => boolean\n): {lo: number, hi: number};\nexport function _lookup(\n table: T[],\n value: number,\n cmp: (value: number) => boolean\n): {lo: number, hi: number};\nexport function _lookup(\n table: unknown[],\n value: number,\n cmp?: (value: number) => boolean\n) {\n cmp = cmp || ((index) => table[index] < value);\n let hi = table.length - 1;\n let lo = 0;\n let mid: number;\n\n while (hi - lo > 1) {\n mid = (lo + hi) >> 1;\n if (cmp(mid)) {\n lo = mid;\n } else {\n hi = mid;\n }\n }\n\n return {lo, hi};\n}\n\n/**\n * Binary search\n * @param table - the table search. must be sorted!\n * @param key - property name for the value in each entry\n * @param value - value to find\n * @param last - lookup last index\n * @private\n */\nexport const _lookupByKey = (\n table: Record[],\n key: string,\n value: number,\n last?: boolean\n) =>\n _lookup(table, value, last\n ? index => {\n const ti = table[index][key];\n return ti < value || ti === value && table[index + 1][key] === value;\n }\n : index => table[index][key] < value);\n\n/**\n * Reverse binary search\n * @param table - the table search. must be sorted!\n * @param key - property name for the value in each entry\n * @param value - value to find\n * @private\n */\nexport const _rlookupByKey = (\n table: Record[],\n key: string,\n value: number\n) =>\n _lookup(table, value, index => table[index][key] >= value);\n\n/**\n * Return subset of `values` between `min` and `max` inclusive.\n * Values are assumed to be in sorted order.\n * @param values - sorted array of values\n * @param min - min value\n * @param max - max value\n */\nexport function _filterBetween(values: number[], min: number, max: number) {\n let start = 0;\n let end = values.length;\n\n while (start < end && values[start] < min) {\n start++;\n }\n while (end > start && values[end - 1] > max) {\n end--;\n }\n\n return start > 0 || end < values.length\n ? values.slice(start, end)\n : values;\n}\n\nconst arrayEvents = ['push', 'pop', 'shift', 'splice', 'unshift'] as const;\n\nexport interface ArrayListener {\n _onDataPush?(...item: T[]): void;\n _onDataPop?(): void;\n _onDataShift?(): void;\n _onDataSplice?(index: number, deleteCount: number, ...items: T[]): void;\n _onDataUnshift?(...item: T[]): void;\n}\n\n/**\n * Hooks the array methods that add or remove values ('push', pop', 'shift', 'splice',\n * 'unshift') and notify the listener AFTER the array has been altered. Listeners are\n * called on the '_onData*' callbacks (e.g. _onDataPush, etc.) with same arguments.\n */\nexport function listenArrayEvents(array: T[], listener: ArrayListener): void;\nexport function listenArrayEvents(array, listener) {\n if (array._chartjs) {\n array._chartjs.listeners.push(listener);\n return;\n }\n\n Object.defineProperty(array, '_chartjs', {\n configurable: true,\n enumerable: false,\n value: {\n listeners: [listener]\n }\n });\n\n arrayEvents.forEach((key) => {\n const method = '_onData' + _capitalize(key);\n const base = array[key];\n\n Object.defineProperty(array, key, {\n configurable: true,\n enumerable: false,\n value(...args) {\n const res = base.apply(this, args);\n\n array._chartjs.listeners.forEach((object) => {\n if (typeof object[method] === 'function') {\n object[method](...args);\n }\n });\n\n return res;\n }\n });\n });\n}\n\n\n/**\n * Removes the given array event listener and cleanup extra attached properties (such as\n * the _chartjs stub and overridden methods) if array doesn't have any more listeners.\n */\nexport function unlistenArrayEvents(array: T[], listener: ArrayListener): void;\nexport function unlistenArrayEvents(array, listener) {\n const stub = array._chartjs;\n if (!stub) {\n return;\n }\n\n const listeners = stub.listeners;\n const index = listeners.indexOf(listener);\n if (index !== -1) {\n listeners.splice(index, 1);\n }\n\n if (listeners.length > 0) {\n return;\n }\n\n arrayEvents.forEach((key) => {\n delete array[key];\n });\n\n delete array._chartjs;\n}\n\n/**\n * @param items\n */\nexport function _arrayUnique(items: T[]) {\n const set = new Set(items);\n\n if (set.size === items.length) {\n return items;\n }\n\n return Array.from(set);\n}\n","import type {ChartMeta, PointElement} from '../types/index.js';\n\nimport {_limitValue} from './helpers.math.js';\nimport {_lookupByKey} from './helpers.collection.js';\n\nexport function fontString(pixelSize: number, fontStyle: string, fontFamily: string) {\n return fontStyle + ' ' + pixelSize + 'px ' + fontFamily;\n}\n\n/**\n* Request animation polyfill\n*/\nexport const requestAnimFrame = (function() {\n if (typeof window === 'undefined') {\n return function(callback) {\n return callback();\n };\n }\n return window.requestAnimationFrame;\n}());\n\n/**\n * Throttles calling `fn` once per animation frame\n * Latest arguments are used on the actual call\n */\nexport function throttled>(\n fn: (...args: TArgs) => void,\n thisArg: any,\n) {\n let argsToUse = [] as TArgs;\n let ticking = false;\n\n return function(...args: TArgs) {\n // Save the args for use later\n argsToUse = args;\n if (!ticking) {\n ticking = true;\n requestAnimFrame.call(window, () => {\n ticking = false;\n fn.apply(thisArg, argsToUse);\n });\n }\n };\n}\n\n/**\n * Debounces calling `fn` for `delay` ms\n */\nexport function debounce>(fn: (...args: TArgs) => void, delay: number) {\n let timeout;\n return function(...args: TArgs) {\n if (delay) {\n clearTimeout(timeout);\n timeout = setTimeout(fn, delay, args);\n } else {\n fn.apply(this, args);\n }\n return delay;\n };\n}\n\n/**\n * Converts 'start' to 'left', 'end' to 'right' and others to 'center'\n * @private\n */\nexport const _toLeftRightCenter = (align: 'start' | 'end' | 'center') => align === 'start' ? 'left' : align === 'end' ? 'right' : 'center';\n\n/**\n * Returns `start`, `end` or `(start + end) / 2` depending on `align`. Defaults to `center`\n * @private\n */\nexport const _alignStartEnd = (align: 'start' | 'end' | 'center', start: number, end: number) => align === 'start' ? start : align === 'end' ? end : (start + end) / 2;\n\n/**\n * Returns `left`, `right` or `(left + right) / 2` depending on `align`. Defaults to `left`\n * @private\n */\nexport const _textX = (align: 'left' | 'right' | 'center', left: number, right: number, rtl: boolean) => {\n const check = rtl ? 'left' : 'right';\n return align === check ? right : align === 'center' ? (left + right) / 2 : left;\n};\n\n/**\n * Return start and count of visible points.\n * @private\n */\nexport function _getStartAndCountOfVisiblePoints(meta: ChartMeta<'line' | 'scatter'>, points: PointElement[], animationsDisabled: boolean) {\n const pointCount = points.length;\n\n let start = 0;\n let count = pointCount;\n\n if (meta._sorted) {\n const {iScale, _parsed} = meta;\n const axis = iScale.axis;\n const {min, max, minDefined, maxDefined} = iScale.getUserBounds();\n\n if (minDefined) {\n start = _limitValue(Math.min(\n // @ts-expect-error Need to type _parsed\n _lookupByKey(_parsed, axis, min).lo,\n // @ts-expect-error Need to fix types on _lookupByKey\n animationsDisabled ? pointCount : _lookupByKey(points, axis, iScale.getPixelForValue(min)).lo),\n 0, pointCount - 1);\n }\n if (maxDefined) {\n count = _limitValue(Math.max(\n // @ts-expect-error Need to type _parsed\n _lookupByKey(_parsed, iScale.axis, max, true).hi + 1,\n // @ts-expect-error Need to fix types on _lookupByKey\n animationsDisabled ? 0 : _lookupByKey(points, axis, iScale.getPixelForValue(max), true).hi + 1),\n start, pointCount) - start;\n } else {\n count = pointCount - start;\n }\n }\n\n return {start, count};\n}\n\n/**\n * Checks if the scale ranges have changed.\n * @param {object} meta - dataset meta.\n * @returns {boolean}\n * @private\n */\nexport function _scaleRangesChanged(meta) {\n const {xScale, yScale, _scaleRanges} = meta;\n const newRanges = {\n xmin: xScale.min,\n xmax: xScale.max,\n ymin: yScale.min,\n ymax: yScale.max\n };\n if (!_scaleRanges) {\n meta._scaleRanges = newRanges;\n return true;\n }\n const changed = _scaleRanges.xmin !== xScale.min\n\t\t|| _scaleRanges.xmax !== xScale.max\n\t\t|| _scaleRanges.ymin !== yScale.min\n\t\t|| _scaleRanges.ymax !== yScale.max;\n\n Object.assign(_scaleRanges, newRanges);\n return changed;\n}\n","import {PI, TAU, HALF_PI} from './helpers.math.js';\n\nconst atEdge = (t: number) => t === 0 || t === 1;\nconst elasticIn = (t: number, s: number, p: number) => -(Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * TAU / p));\nconst elasticOut = (t: number, s: number, p: number) => Math.pow(2, -10 * t) * Math.sin((t - s) * TAU / p) + 1;\n\n/**\n * Easing functions adapted from Robert Penner's easing equations.\n * @namespace Chart.helpers.easing.effects\n * @see http://www.robertpenner.com/easing/\n */\nconst effects = {\n linear: (t: number) => t,\n\n easeInQuad: (t: number) => t * t,\n\n easeOutQuad: (t: number) => -t * (t - 2),\n\n easeInOutQuad: (t: number) => ((t /= 0.5) < 1)\n ? 0.5 * t * t\n : -0.5 * ((--t) * (t - 2) - 1),\n\n easeInCubic: (t: number) => t * t * t,\n\n easeOutCubic: (t: number) => (t -= 1) * t * t + 1,\n\n easeInOutCubic: (t: number) => ((t /= 0.5) < 1)\n ? 0.5 * t * t * t\n : 0.5 * ((t -= 2) * t * t + 2),\n\n easeInQuart: (t: number) => t * t * t * t,\n\n easeOutQuart: (t: number) => -((t -= 1) * t * t * t - 1),\n\n easeInOutQuart: (t: number) => ((t /= 0.5) < 1)\n ? 0.5 * t * t * t * t\n : -0.5 * ((t -= 2) * t * t * t - 2),\n\n easeInQuint: (t: number) => t * t * t * t * t,\n\n easeOutQuint: (t: number) => (t -= 1) * t * t * t * t + 1,\n\n easeInOutQuint: (t: number) => ((t /= 0.5) < 1)\n ? 0.5 * t * t * t * t * t\n : 0.5 * ((t -= 2) * t * t * t * t + 2),\n\n easeInSine: (t: number) => -Math.cos(t * HALF_PI) + 1,\n\n easeOutSine: (t: number) => Math.sin(t * HALF_PI),\n\n easeInOutSine: (t: number) => -0.5 * (Math.cos(PI * t) - 1),\n\n easeInExpo: (t: number) => (t === 0) ? 0 : Math.pow(2, 10 * (t - 1)),\n\n easeOutExpo: (t: number) => (t === 1) ? 1 : -Math.pow(2, -10 * t) + 1,\n\n easeInOutExpo: (t: number) => atEdge(t) ? t : t < 0.5\n ? 0.5 * Math.pow(2, 10 * (t * 2 - 1))\n : 0.5 * (-Math.pow(2, -10 * (t * 2 - 1)) + 2),\n\n easeInCirc: (t: number) => (t >= 1) ? t : -(Math.sqrt(1 - t * t) - 1),\n\n easeOutCirc: (t: number) => Math.sqrt(1 - (t -= 1) * t),\n\n easeInOutCirc: (t: number) => ((t /= 0.5) < 1)\n ? -0.5 * (Math.sqrt(1 - t * t) - 1)\n : 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1),\n\n easeInElastic: (t: number) => atEdge(t) ? t : elasticIn(t, 0.075, 0.3),\n\n easeOutElastic: (t: number) => atEdge(t) ? t : elasticOut(t, 0.075, 0.3),\n\n easeInOutElastic(t: number) {\n const s = 0.1125;\n const p = 0.45;\n return atEdge(t) ? t :\n t < 0.5\n ? 0.5 * elasticIn(t * 2, s, p)\n : 0.5 + 0.5 * elasticOut(t * 2 - 1, s, p);\n },\n\n easeInBack(t: number) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n },\n\n easeOutBack(t: number) {\n const s = 1.70158;\n return (t -= 1) * t * ((s + 1) * t + s) + 1;\n },\n\n easeInOutBack(t: number) {\n let s = 1.70158;\n if ((t /= 0.5) < 1) {\n return 0.5 * (t * t * (((s *= (1.525)) + 1) * t - s));\n }\n return 0.5 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2);\n },\n\n easeInBounce: (t: number) => 1 - effects.easeOutBounce(1 - t),\n\n easeOutBounce(t: number) {\n const m = 7.5625;\n const d = 2.75;\n if (t < (1 / d)) {\n return m * t * t;\n }\n if (t < (2 / d)) {\n return m * (t -= (1.5 / d)) * t + 0.75;\n }\n if (t < (2.5 / d)) {\n return m * (t -= (2.25 / d)) * t + 0.9375;\n }\n return m * (t -= (2.625 / d)) * t + 0.984375;\n },\n\n easeInOutBounce: (t: number) => (t < 0.5)\n ? effects.easeInBounce(t * 2) * 0.5\n : effects.easeOutBounce(t * 2 - 1) * 0.5 + 0.5,\n} as const;\n\nexport type EasingFunction = keyof typeof effects\n\nexport default effects;\n","import {Color} from '@kurkle/color';\n\nexport function isPatternOrGradient(value: unknown): value is CanvasPattern | CanvasGradient {\n if (value && typeof value === 'object') {\n const type = value.toString();\n return type === '[object CanvasPattern]' || type === '[object CanvasGradient]';\n }\n\n return false;\n}\n\nexport function color(value: CanvasGradient): CanvasGradient;\nexport function color(value: CanvasPattern): CanvasPattern;\nexport function color(\n value:\n | string\n | { r: number; g: number; b: number; a: number }\n | [number, number, number]\n | [number, number, number, number]\n): Color;\nexport function color(value) {\n return isPatternOrGradient(value) ? value : new Color(value);\n}\n\nexport function getHoverColor(value: CanvasGradient): CanvasGradient;\nexport function getHoverColor(value: CanvasPattern): CanvasPattern;\nexport function getHoverColor(value: string): string;\nexport function getHoverColor(value) {\n return isPatternOrGradient(value)\n ? value\n : new Color(value).saturate(0.5).darken(0.1).hexString();\n}\n","const numbers = ['x', 'y', 'borderWidth', 'radius', 'tension'];\nconst colors = ['color', 'borderColor', 'backgroundColor'];\n\nexport function applyAnimationsDefaults(defaults) {\n defaults.set('animation', {\n delay: undefined,\n duration: 1000,\n easing: 'easeOutQuart',\n fn: undefined,\n from: undefined,\n loop: undefined,\n to: undefined,\n type: undefined,\n });\n\n defaults.describe('animation', {\n _fallback: false,\n _indexable: false,\n _scriptable: (name) => name !== 'onProgress' && name !== 'onComplete' && name !== 'fn',\n });\n\n defaults.set('animations', {\n colors: {\n type: 'color',\n properties: colors\n },\n numbers: {\n type: 'number',\n properties: numbers\n },\n });\n\n defaults.describe('animations', {\n _fallback: 'animation',\n });\n\n defaults.set('transitions', {\n active: {\n animation: {\n duration: 400\n }\n },\n resize: {\n animation: {\n duration: 0\n }\n },\n show: {\n animations: {\n colors: {\n from: 'transparent'\n },\n visible: {\n type: 'boolean',\n duration: 0 // show immediately\n },\n }\n },\n hide: {\n animations: {\n colors: {\n to: 'transparent'\n },\n visible: {\n type: 'boolean',\n easing: 'linear',\n fn: v => v | 0 // for keeping the dataset visible all the way through the animation\n },\n }\n }\n });\n}\n","\nconst intlCache = new Map();\n\nfunction getNumberFormat(locale: string, options?: Intl.NumberFormatOptions) {\n options = options || {};\n const cacheKey = locale + JSON.stringify(options);\n let formatter = intlCache.get(cacheKey);\n if (!formatter) {\n formatter = new Intl.NumberFormat(locale, options);\n intlCache.set(cacheKey, formatter);\n }\n return formatter;\n}\n\nexport function formatNumber(num: number, locale: string, options?: Intl.NumberFormatOptions) {\n return getNumberFormat(locale, options).format(num);\n}\n","import {isArray} from '../helpers/helpers.core.js';\nimport {formatNumber} from '../helpers/helpers.intl.js';\nimport {log10} from '../helpers/helpers.math.js';\n\n/**\n * Namespace to hold formatters for different types of ticks\n * @namespace Chart.Ticks.formatters\n */\nconst formatters = {\n /**\n * Formatter for value labels\n * @method Chart.Ticks.formatters.values\n * @param value the value to display\n * @return {string|string[]} the label to display\n */\n values(value) {\n return isArray(value) ? /** @type {string[]} */ (value) : '' + value;\n },\n\n /**\n * Formatter for numeric ticks\n * @method Chart.Ticks.formatters.numeric\n * @param tickValue {number} the value to be formatted\n * @param index {number} the position of the tickValue parameter in the ticks array\n * @param ticks {object[]} the list of ticks being converted\n * @return {string} string representation of the tickValue parameter\n */\n numeric(tickValue, index, ticks) {\n if (tickValue === 0) {\n return '0'; // never show decimal places for 0\n }\n\n const locale = this.chart.options.locale;\n let notation;\n let delta = tickValue; // This is used when there are less than 2 ticks as the tick interval.\n\n if (ticks.length > 1) {\n // all ticks are small or there huge numbers; use scientific notation\n const maxTick = Math.max(Math.abs(ticks[0].value), Math.abs(ticks[ticks.length - 1].value));\n if (maxTick < 1e-4 || maxTick > 1e+15) {\n notation = 'scientific';\n }\n\n delta = calculateDelta(tickValue, ticks);\n }\n\n const logDelta = log10(Math.abs(delta));\n\n // When datasets have values approaching Number.MAX_VALUE, the tick calculations might result in\n // infinity and eventually NaN. Passing NaN for minimumFractionDigits or maximumFractionDigits\n // will make the number formatter throw. So instead we check for isNaN and use a fallback value.\n //\n // toFixed has a max of 20 decimal places\n const numDecimal = isNaN(logDelta) ? 1 : Math.max(Math.min(-1 * Math.floor(logDelta), 20), 0);\n\n const options = {notation, minimumFractionDigits: numDecimal, maximumFractionDigits: numDecimal};\n Object.assign(options, this.options.ticks.format);\n\n return formatNumber(tickValue, locale, options);\n },\n\n\n /**\n * Formatter for logarithmic ticks\n * @method Chart.Ticks.formatters.logarithmic\n * @param tickValue {number} the value to be formatted\n * @param index {number} the position of the tickValue parameter in the ticks array\n * @param ticks {object[]} the list of ticks being converted\n * @return {string} string representation of the tickValue parameter\n */\n logarithmic(tickValue, index, ticks) {\n if (tickValue === 0) {\n return '0';\n }\n const remain = ticks[index].significand || (tickValue / (Math.pow(10, Math.floor(log10(tickValue)))));\n if ([1, 2, 3, 5, 10, 15].includes(remain) || index > 0.8 * ticks.length) {\n return formatters.numeric.call(this, tickValue, index, ticks);\n }\n return '';\n }\n\n};\n\n\nfunction calculateDelta(tickValue, ticks) {\n // Figure out how many digits to show\n // The space between the first two ticks might be smaller than normal spacing\n let delta = ticks.length > 3 ? ticks[2].value - ticks[1].value : ticks[1].value - ticks[0].value;\n\n // If we have a number like 2.5 as the delta, figure out how many decimal places we need\n if (Math.abs(delta) >= 1 && tickValue !== Math.floor(tickValue)) {\n // not an integer\n delta = tickValue - Math.floor(tickValue);\n }\n return delta;\n}\n\n/**\n * Namespace to hold static tick generation functions\n * @namespace Chart.Ticks\n */\nexport default {formatters};\n","import {getHoverColor} from '../helpers/helpers.color.js';\nimport {isObject, merge, valueOrDefault} from '../helpers/helpers.core.js';\nimport {applyAnimationsDefaults} from './core.animations.defaults.js';\nimport {applyLayoutsDefaults} from './core.layouts.defaults.js';\nimport {applyScaleDefaults} from './core.scale.defaults.js';\n\nexport const overrides = Object.create(null);\nexport const descriptors = Object.create(null);\n\n/**\n * @param {object} node\n * @param {string} key\n * @return {object}\n */\nfunction getScope(node, key) {\n if (!key) {\n return node;\n }\n const keys = key.split('.');\n for (let i = 0, n = keys.length; i < n; ++i) {\n const k = keys[i];\n node = node[k] || (node[k] = Object.create(null));\n }\n return node;\n}\n\nfunction set(root, scope, values) {\n if (typeof scope === 'string') {\n return merge(getScope(root, scope), values);\n }\n return merge(getScope(root, ''), scope);\n}\n\n/**\n * Please use the module's default export which provides a singleton instance\n * Note: class is exported for typedoc\n */\nexport class Defaults {\n constructor(_descriptors, _appliers) {\n this.animation = undefined;\n this.backgroundColor = 'rgba(0,0,0,0.1)';\n this.borderColor = 'rgba(0,0,0,0.1)';\n this.color = '#666';\n this.datasets = {};\n this.devicePixelRatio = (context) => context.chart.platform.getDevicePixelRatio();\n this.elements = {};\n this.events = [\n 'mousemove',\n 'mouseout',\n 'click',\n 'touchstart',\n 'touchmove'\n ];\n this.font = {\n family: \"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",\n size: 12,\n style: 'normal',\n lineHeight: 1.2,\n weight: null\n };\n this.hover = {};\n this.hoverBackgroundColor = (ctx, options) => getHoverColor(options.backgroundColor);\n this.hoverBorderColor = (ctx, options) => getHoverColor(options.borderColor);\n this.hoverColor = (ctx, options) => getHoverColor(options.color);\n this.indexAxis = 'x';\n this.interaction = {\n mode: 'nearest',\n intersect: true,\n includeInvisible: false\n };\n this.maintainAspectRatio = true;\n this.onHover = null;\n this.onClick = null;\n this.parsing = true;\n this.plugins = {};\n this.responsive = true;\n this.scale = undefined;\n this.scales = {};\n this.showLine = true;\n this.drawActiveElementsOnTop = true;\n\n this.describe(_descriptors);\n this.apply(_appliers);\n }\n\n /**\n\t * @param {string|object} scope\n\t * @param {object} [values]\n\t */\n set(scope, values) {\n return set(this, scope, values);\n }\n\n /**\n\t * @param {string} scope\n\t */\n get(scope) {\n return getScope(this, scope);\n }\n\n /**\n\t * @param {string|object} scope\n\t * @param {object} [values]\n\t */\n describe(scope, values) {\n return set(descriptors, scope, values);\n }\n\n override(scope, values) {\n return set(overrides, scope, values);\n }\n\n /**\n\t * Routes the named defaults to fallback to another scope/name.\n\t * This routing is useful when those target values, like defaults.color, are changed runtime.\n\t * If the values would be copied, the runtime change would not take effect. By routing, the\n\t * fallback is evaluated at each access, so its always up to date.\n\t *\n\t * Example:\n\t *\n\t * \tdefaults.route('elements.arc', 'backgroundColor', '', 'color')\n\t * - reads the backgroundColor from defaults.color when undefined locally\n\t *\n\t * @param {string} scope Scope this route applies to.\n\t * @param {string} name Property name that should be routed to different namespace when not defined here.\n\t * @param {string} targetScope The namespace where those properties should be routed to.\n\t * Empty string ('') is the root of defaults.\n\t * @param {string} targetName The target name in the target scope the property should be routed to.\n\t */\n route(scope, name, targetScope, targetName) {\n const scopeObject = getScope(this, scope);\n const targetScopeObject = getScope(this, targetScope);\n const privateName = '_' + name;\n\n Object.defineProperties(scopeObject, {\n // A private property is defined to hold the actual value, when this property is set in its scope (set in the setter)\n [privateName]: {\n value: scopeObject[name],\n writable: true\n },\n // The actual property is defined as getter/setter so we can do the routing when value is not locally set.\n [name]: {\n enumerable: true,\n get() {\n const local = this[privateName];\n const target = targetScopeObject[targetName];\n if (isObject(local)) {\n return Object.assign({}, target, local);\n }\n return valueOrDefault(local, target);\n },\n set(value) {\n this[privateName] = value;\n }\n }\n });\n }\n\n apply(appliers) {\n appliers.forEach((apply) => apply(this));\n }\n}\n\n// singleton instance\nexport default /* #__PURE__ */ new Defaults({\n _scriptable: (name) => !name.startsWith('on'),\n _indexable: (name) => name !== 'events',\n hover: {\n _fallback: 'interaction'\n },\n interaction: {\n _scriptable: false,\n _indexable: false,\n }\n}, [applyAnimationsDefaults, applyLayoutsDefaults, applyScaleDefaults]);\n","export function applyLayoutsDefaults(defaults) {\n defaults.set('layout', {\n autoPadding: true,\n padding: {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n }\n });\n}\n","import Ticks from './core.ticks.js';\n\nexport function applyScaleDefaults(defaults) {\n defaults.set('scale', {\n display: true,\n offset: false,\n reverse: false,\n beginAtZero: false,\n\n /**\n * Scale boundary strategy (bypassed by min/max time options)\n * - `data`: make sure data are fully visible, ticks outside are removed\n * - `ticks`: make sure ticks are fully visible, data outside are truncated\n * @see https://github.com/chartjs/Chart.js/pull/4556\n * @since 3.0.0\n */\n bounds: 'ticks',\n\n clip: true,\n\n /**\n * Addition grace added to max and reduced from min data value.\n * @since 3.0.0\n */\n grace: 0,\n\n // grid line settings\n grid: {\n display: true,\n lineWidth: 1,\n drawOnChartArea: true,\n drawTicks: true,\n tickLength: 8,\n tickWidth: (_ctx, options) => options.lineWidth,\n tickColor: (_ctx, options) => options.color,\n offset: false,\n },\n\n border: {\n display: true,\n dash: [],\n dashOffset: 0.0,\n width: 1\n },\n\n // scale title\n title: {\n // display property\n display: false,\n\n // actual label\n text: '',\n\n // top/bottom padding\n padding: {\n top: 4,\n bottom: 4\n }\n },\n\n // label settings\n ticks: {\n minRotation: 0,\n maxRotation: 50,\n mirror: false,\n textStrokeWidth: 0,\n textStrokeColor: '',\n padding: 3,\n display: true,\n autoSkip: true,\n autoSkipPadding: 3,\n labelOffset: 0,\n // We pass through arrays to be rendered as multiline labels, we convert Others to strings here.\n callback: Ticks.formatters.values,\n minor: {},\n major: {},\n align: 'center',\n crossAlign: 'near',\n\n showLabelBackdrop: false,\n backdropColor: 'rgba(255, 255, 255, 0.75)',\n backdropPadding: 2,\n }\n });\n\n defaults.route('scale.ticks', 'color', '', 'color');\n defaults.route('scale.grid', 'color', '', 'borderColor');\n defaults.route('scale.border', 'color', '', 'borderColor');\n defaults.route('scale.title', 'color', '', 'color');\n\n defaults.describe('scale', {\n _fallback: false,\n _scriptable: (name) => !name.startsWith('before') && !name.startsWith('after') && name !== 'callback' && name !== 'parser',\n _indexable: (name) => name !== 'borderDash' && name !== 'tickBorderDash' && name !== 'dash',\n });\n\n defaults.describe('scales', {\n _fallback: 'scale',\n });\n\n defaults.describe('scale.ticks', {\n _scriptable: (name) => name !== 'backdropPadding' && name !== 'callback',\n _indexable: (name) => name !== 'backdropPadding',\n });\n}\n","import type {\n Chart,\n Point,\n FontSpec,\n CanvasFontSpec,\n PointStyle,\n RenderTextOpts,\n BackdropOptions\n} from '../types/index.js';\nimport type {\n TRBL,\n SplinePoint,\n RoundedRect,\n TRBLCorners\n} from '../types/geometric.js';\nimport {isArray, isNullOrUndef} from './helpers.core.js';\nimport {PI, TAU, HALF_PI, QUARTER_PI, TWO_THIRDS_PI, RAD_PER_DEG} from './helpers.math.js';\n\n/**\n * Converts the given font object into a CSS font string.\n * @param font - A font object.\n * @return The CSS font string. See https://developer.mozilla.org/en-US/docs/Web/CSS/font\n * @private\n */\nexport function toFontString(font: FontSpec) {\n if (!font || isNullOrUndef(font.size) || isNullOrUndef(font.family)) {\n return null;\n }\n\n return (font.style ? font.style + ' ' : '')\n\t\t+ (font.weight ? font.weight + ' ' : '')\n\t\t+ font.size + 'px '\n\t\t+ font.family;\n}\n\n/**\n * @private\n */\nexport function _measureText(\n ctx: CanvasRenderingContext2D,\n data: Record,\n gc: string[],\n longest: number,\n string: string\n) {\n let textWidth = data[string];\n if (!textWidth) {\n textWidth = data[string] = ctx.measureText(string).width;\n gc.push(string);\n }\n if (textWidth > longest) {\n longest = textWidth;\n }\n return longest;\n}\n\ntype Thing = string | undefined | null\ntype Things = (Thing | Thing[])[]\n\n/**\n * @private\n */\n// eslint-disable-next-line complexity\nexport function _longestText(\n ctx: CanvasRenderingContext2D,\n font: string,\n arrayOfThings: Things,\n cache?: {data?: Record, garbageCollect?: string[], font?: string}\n) {\n cache = cache || {};\n let data = cache.data = cache.data || {};\n let gc = cache.garbageCollect = cache.garbageCollect || [];\n\n if (cache.font !== font) {\n data = cache.data = {};\n gc = cache.garbageCollect = [];\n cache.font = font;\n }\n\n ctx.save();\n\n ctx.font = font;\n let longest = 0;\n const ilen = arrayOfThings.length;\n let i: number, j: number, jlen: number, thing: Thing | Thing[], nestedThing: Thing | Thing[];\n for (i = 0; i < ilen; i++) {\n thing = arrayOfThings[i];\n\n // Undefined strings and arrays should not be measured\n if (thing !== undefined && thing !== null && !isArray(thing)) {\n longest = _measureText(ctx, data, gc, longest, thing);\n } else if (isArray(thing)) {\n // if it is an array lets measure each element\n // to do maybe simplify this function a bit so we can do this more recursively?\n for (j = 0, jlen = thing.length; j < jlen; j++) {\n nestedThing = thing[j];\n // Undefined strings and arrays should not be measured\n if (nestedThing !== undefined && nestedThing !== null && !isArray(nestedThing)) {\n longest = _measureText(ctx, data, gc, longest, nestedThing);\n }\n }\n }\n }\n\n ctx.restore();\n\n const gcLen = gc.length / 2;\n if (gcLen > arrayOfThings.length) {\n for (i = 0; i < gcLen; i++) {\n delete data[gc[i]];\n }\n gc.splice(0, gcLen);\n }\n return longest;\n}\n\n/**\n * Returns the aligned pixel value to avoid anti-aliasing blur\n * @param chart - The chart instance.\n * @param pixel - A pixel value.\n * @param width - The width of the element.\n * @returns The aligned pixel value.\n * @private\n */\nexport function _alignPixel(chart: Chart, pixel: number, width: number) {\n const devicePixelRatio = chart.currentDevicePixelRatio;\n const halfWidth = width !== 0 ? Math.max(width / 2, 0.5) : 0;\n return Math.round((pixel - halfWidth) * devicePixelRatio) / devicePixelRatio + halfWidth;\n}\n\n/**\n * Clears the entire canvas.\n */\nexport function clearCanvas(canvas?: HTMLCanvasElement, ctx?: CanvasRenderingContext2D) {\n if (!ctx && !canvas) {\n return;\n }\n\n ctx = ctx || canvas.getContext('2d');\n\n ctx.save();\n // canvas.width and canvas.height do not consider the canvas transform,\n // while clearRect does\n ctx.resetTransform();\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n ctx.restore();\n}\n\nexport interface DrawPointOptions {\n pointStyle: PointStyle;\n rotation?: number;\n radius: number;\n borderWidth: number;\n}\n\nexport function drawPoint(\n ctx: CanvasRenderingContext2D,\n options: DrawPointOptions,\n x: number,\n y: number\n) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n drawPointLegend(ctx, options, x, y, null);\n}\n\n// eslint-disable-next-line complexity\nexport function drawPointLegend(\n ctx: CanvasRenderingContext2D,\n options: DrawPointOptions,\n x: number,\n y: number,\n w: number\n) {\n let type: string, xOffset: number, yOffset: number, size: number, cornerRadius: number, width: number, xOffsetW: number, yOffsetW: number;\n const style = options.pointStyle;\n const rotation = options.rotation;\n const radius = options.radius;\n let rad = (rotation || 0) * RAD_PER_DEG;\n\n if (style && typeof style === 'object') {\n type = style.toString();\n if (type === '[object HTMLImageElement]' || type === '[object HTMLCanvasElement]') {\n ctx.save();\n ctx.translate(x, y);\n ctx.rotate(rad);\n ctx.drawImage(style, -style.width / 2, -style.height / 2, style.width, style.height);\n ctx.restore();\n return;\n }\n }\n\n if (isNaN(radius) || radius <= 0) {\n return;\n }\n\n ctx.beginPath();\n\n switch (style) {\n // Default includes circle\n default:\n if (w) {\n ctx.ellipse(x, y, w / 2, radius, 0, 0, TAU);\n } else {\n ctx.arc(x, y, radius, 0, TAU);\n }\n ctx.closePath();\n break;\n case 'triangle':\n width = w ? w / 2 : radius;\n ctx.moveTo(x + Math.sin(rad) * width, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * width, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * width, y - Math.cos(rad) * radius);\n ctx.closePath();\n break;\n case 'rectRounded':\n // NOTE: the rounded rect implementation changed to use `arc` instead of\n // `quadraticCurveTo` since it generates better results when rect is\n // almost a circle. 0.516 (instead of 0.5) produces results with visually\n // closer proportion to the previous impl and it is inscribed in the\n // circle with `radius`. For more details, see the following PRs:\n // https://github.com/chartjs/Chart.js/issues/5597\n // https://github.com/chartjs/Chart.js/issues/5858\n cornerRadius = radius * 0.516;\n size = radius - cornerRadius;\n xOffset = Math.cos(rad + QUARTER_PI) * size;\n xOffsetW = Math.cos(rad + QUARTER_PI) * (w ? w / 2 - cornerRadius : size);\n yOffset = Math.sin(rad + QUARTER_PI) * size;\n yOffsetW = Math.sin(rad + QUARTER_PI) * (w ? w / 2 - cornerRadius : size);\n ctx.arc(x - xOffsetW, y - yOffset, cornerRadius, rad - PI, rad - HALF_PI);\n ctx.arc(x + yOffsetW, y - xOffset, cornerRadius, rad - HALF_PI, rad);\n ctx.arc(x + xOffsetW, y + yOffset, cornerRadius, rad, rad + HALF_PI);\n ctx.arc(x - yOffsetW, y + xOffset, cornerRadius, rad + HALF_PI, rad + PI);\n ctx.closePath();\n break;\n case 'rect':\n if (!rotation) {\n size = Math.SQRT1_2 * radius;\n width = w ? w / 2 : size;\n ctx.rect(x - width, y - size, 2 * width, 2 * size);\n break;\n }\n rad += QUARTER_PI;\n /* falls through */\n case 'rectRot':\n xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n ctx.moveTo(x - xOffsetW, y - yOffset);\n ctx.lineTo(x + yOffsetW, y - xOffset);\n ctx.lineTo(x + xOffsetW, y + yOffset);\n ctx.lineTo(x - yOffsetW, y + xOffset);\n ctx.closePath();\n break;\n case 'crossRot':\n rad += QUARTER_PI;\n /* falls through */\n case 'cross':\n xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n ctx.moveTo(x - xOffsetW, y - yOffset);\n ctx.lineTo(x + xOffsetW, y + yOffset);\n ctx.moveTo(x + yOffsetW, y - xOffset);\n ctx.lineTo(x - yOffsetW, y + xOffset);\n break;\n case 'star':\n xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n ctx.moveTo(x - xOffsetW, y - yOffset);\n ctx.lineTo(x + xOffsetW, y + yOffset);\n ctx.moveTo(x + yOffsetW, y - xOffset);\n ctx.lineTo(x - yOffsetW, y + xOffset);\n rad += QUARTER_PI;\n xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n ctx.moveTo(x - xOffsetW, y - yOffset);\n ctx.lineTo(x + xOffsetW, y + yOffset);\n ctx.moveTo(x + yOffsetW, y - xOffset);\n ctx.lineTo(x - yOffsetW, y + xOffset);\n break;\n case 'line':\n xOffset = w ? w / 2 : Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n break;\n case 'dash':\n ctx.moveTo(x, y);\n ctx.lineTo(x + Math.cos(rad) * (w ? w / 2 : radius), y + Math.sin(rad) * radius);\n break;\n case false:\n ctx.closePath();\n break;\n }\n\n ctx.fill();\n if (options.borderWidth > 0) {\n ctx.stroke();\n }\n}\n\n/**\n * Returns true if the point is inside the rectangle\n * @param point - The point to test\n * @param area - The rectangle\n * @param margin - allowed margin\n * @private\n */\nexport function _isPointInArea(\n point: Point,\n area: TRBL,\n margin?: number\n) {\n margin = margin || 0.5; // margin - default is to match rounded decimals\n\n return !area || (point && point.x > area.left - margin && point.x < area.right + margin &&\n\t\tpoint.y > area.top - margin && point.y < area.bottom + margin);\n}\n\nexport function clipArea(ctx: CanvasRenderingContext2D, area: TRBL) {\n ctx.save();\n ctx.beginPath();\n ctx.rect(area.left, area.top, area.right - area.left, area.bottom - area.top);\n ctx.clip();\n}\n\nexport function unclipArea(ctx: CanvasRenderingContext2D) {\n ctx.restore();\n}\n\n/**\n * @private\n */\nexport function _steppedLineTo(\n ctx: CanvasRenderingContext2D,\n previous: Point,\n target: Point,\n flip?: boolean,\n mode?: string\n) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n if (mode === 'middle') {\n const midpoint = (previous.x + target.x) / 2.0;\n ctx.lineTo(midpoint, previous.y);\n ctx.lineTo(midpoint, target.y);\n } else if (mode === 'after' !== !!flip) {\n ctx.lineTo(previous.x, target.y);\n } else {\n ctx.lineTo(target.x, previous.y);\n }\n ctx.lineTo(target.x, target.y);\n}\n\n/**\n * @private\n */\nexport function _bezierCurveTo(\n ctx: CanvasRenderingContext2D,\n previous: SplinePoint,\n target: SplinePoint,\n flip?: boolean\n) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n ctx.bezierCurveTo(\n flip ? previous.cp1x : previous.cp2x,\n flip ? previous.cp1y : previous.cp2y,\n flip ? target.cp2x : target.cp1x,\n flip ? target.cp2y : target.cp1y,\n target.x,\n target.y);\n}\n\nfunction setRenderOpts(ctx: CanvasRenderingContext2D, opts: RenderTextOpts) {\n if (opts.translation) {\n ctx.translate(opts.translation[0], opts.translation[1]);\n }\n\n if (!isNullOrUndef(opts.rotation)) {\n ctx.rotate(opts.rotation);\n }\n\n if (opts.color) {\n ctx.fillStyle = opts.color;\n }\n\n if (opts.textAlign) {\n ctx.textAlign = opts.textAlign;\n }\n\n if (opts.textBaseline) {\n ctx.textBaseline = opts.textBaseline;\n }\n}\n\nfunction decorateText(\n ctx: CanvasRenderingContext2D,\n x: number,\n y: number,\n line: string,\n opts: RenderTextOpts\n) {\n if (opts.strikethrough || opts.underline) {\n /**\n * Now that IE11 support has been dropped, we can use more\n * of the TextMetrics object. The actual bounding boxes\n * are unflagged in Chrome, Firefox, Edge, and Safari so they\n * can be safely used.\n * See https://developer.mozilla.org/en-US/docs/Web/API/TextMetrics#Browser_compatibility\n */\n const metrics = ctx.measureText(line);\n const left = x - metrics.actualBoundingBoxLeft;\n const right = x + metrics.actualBoundingBoxRight;\n const top = y - metrics.actualBoundingBoxAscent;\n const bottom = y + metrics.actualBoundingBoxDescent;\n const yDecoration = opts.strikethrough ? (top + bottom) / 2 : bottom;\n\n ctx.strokeStyle = ctx.fillStyle;\n ctx.beginPath();\n ctx.lineWidth = opts.decorationWidth || 2;\n ctx.moveTo(left, yDecoration);\n ctx.lineTo(right, yDecoration);\n ctx.stroke();\n }\n}\n\nfunction drawBackdrop(ctx: CanvasRenderingContext2D, opts: BackdropOptions) {\n const oldColor = ctx.fillStyle;\n\n ctx.fillStyle = opts.color as string;\n ctx.fillRect(opts.left, opts.top, opts.width, opts.height);\n ctx.fillStyle = oldColor;\n}\n\n/**\n * Render text onto the canvas\n */\nexport function renderText(\n ctx: CanvasRenderingContext2D,\n text: string | string[],\n x: number,\n y: number,\n font: CanvasFontSpec,\n opts: RenderTextOpts = {}\n) {\n const lines = isArray(text) ? text : [text];\n const stroke = opts.strokeWidth > 0 && opts.strokeColor !== '';\n let i: number, line: string;\n\n ctx.save();\n ctx.font = font.string;\n setRenderOpts(ctx, opts);\n\n for (i = 0; i < lines.length; ++i) {\n line = lines[i];\n\n if (opts.backdrop) {\n drawBackdrop(ctx, opts.backdrop);\n }\n\n if (stroke) {\n if (opts.strokeColor) {\n ctx.strokeStyle = opts.strokeColor;\n }\n\n if (!isNullOrUndef(opts.strokeWidth)) {\n ctx.lineWidth = opts.strokeWidth;\n }\n\n ctx.strokeText(line, x, y, opts.maxWidth);\n }\n\n ctx.fillText(line, x, y, opts.maxWidth);\n decorateText(ctx, x, y, line, opts);\n\n y += Number(font.lineHeight);\n }\n\n ctx.restore();\n}\n\n/**\n * Add a path of a rectangle with rounded corners to the current sub-path\n * @param ctx - Context\n * @param rect - Bounding rect\n */\nexport function addRoundedRectPath(\n ctx: CanvasRenderingContext2D,\n rect: RoundedRect & { radius: TRBLCorners }\n) {\n const {x, y, w, h, radius} = rect;\n\n // top left arc\n ctx.arc(x + radius.topLeft, y + radius.topLeft, radius.topLeft, 1.5 * PI, PI, true);\n\n // line from top left to bottom left\n ctx.lineTo(x, y + h - radius.bottomLeft);\n\n // bottom left arc\n ctx.arc(x + radius.bottomLeft, y + h - radius.bottomLeft, radius.bottomLeft, PI, HALF_PI, true);\n\n // line from bottom left to bottom right\n ctx.lineTo(x + w - radius.bottomRight, y + h);\n\n // bottom right arc\n ctx.arc(x + w - radius.bottomRight, y + h - radius.bottomRight, radius.bottomRight, HALF_PI, 0, true);\n\n // line from bottom right to top right\n ctx.lineTo(x + w, y + radius.topRight);\n\n // top right arc\n ctx.arc(x + w - radius.topRight, y + radius.topRight, radius.topRight, 0, -HALF_PI, true);\n\n // line from top right to top left\n ctx.lineTo(x + radius.topLeft, y);\n}\n","import defaults from '../core/core.defaults.js';\nimport {isArray, isObject, toDimension, valueOrDefault} from './helpers.core.js';\nimport {toFontString} from './helpers.canvas.js';\nimport type {ChartArea, FontSpec, Point} from '../types/index.js';\nimport type {TRBL, TRBLCorners} from '../types/geometric.js';\n\nconst LINE_HEIGHT = /^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$/;\nconst FONT_STYLE = /^(normal|italic|initial|inherit|unset|(oblique( -?[0-9]?[0-9]deg)?))$/;\n\n/**\n * @alias Chart.helpers.options\n * @namespace\n */\n/**\n * Converts the given line height `value` in pixels for a specific font `size`.\n * @param value - The lineHeight to parse (eg. 1.6, '14px', '75%', '1.6em').\n * @param size - The font size (in pixels) used to resolve relative `value`.\n * @returns The effective line height in pixels (size * 1.2 if value is invalid).\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/line-height\n * @since 2.7.0\n */\nexport function toLineHeight(value: number | string, size: number): number {\n const matches = ('' + value).match(LINE_HEIGHT);\n if (!matches || matches[1] === 'normal') {\n return size * 1.2;\n }\n\n value = +matches[2];\n\n switch (matches[3]) {\n case 'px':\n return value;\n case '%':\n value /= 100;\n break;\n default:\n break;\n }\n\n return size * value;\n}\n\nconst numberOrZero = (v: unknown) => +v || 0;\n\n/**\n * @param value\n * @param props\n */\nexport function _readValueToProps(value: number | Record, props: K[]): Record;\nexport function _readValueToProps(value: number | Record, props: Record): Record;\nexport function _readValueToProps(value: number | Record, props: string[] | Record) {\n const ret = {};\n const objProps = isObject(props);\n const keys = objProps ? Object.keys(props) : props;\n const read = isObject(value)\n ? objProps\n ? prop => valueOrDefault(value[prop], value[props[prop]])\n : prop => value[prop]\n : () => value;\n\n for (const prop of keys) {\n ret[prop] = numberOrZero(read(prop));\n }\n return ret;\n}\n\n/**\n * Converts the given value into a TRBL object.\n * @param value - If a number, set the value to all TRBL component,\n * else, if an object, use defined properties and sets undefined ones to 0.\n * x / y are shorthands for same value for left/right and top/bottom.\n * @returns The padding values (top, right, bottom, left)\n * @since 3.0.0\n */\nexport function toTRBL(value: number | TRBL | Point) {\n return _readValueToProps(value, {top: 'y', right: 'x', bottom: 'y', left: 'x'});\n}\n\n/**\n * Converts the given value into a TRBL corners object (similar with css border-radius).\n * @param value - If a number, set the value to all TRBL corner components,\n * else, if an object, use defined properties and sets undefined ones to 0.\n * @returns The TRBL corner values (topLeft, topRight, bottomLeft, bottomRight)\n * @since 3.0.0\n */\nexport function toTRBLCorners(value: number | TRBLCorners) {\n return _readValueToProps(value, ['topLeft', 'topRight', 'bottomLeft', 'bottomRight']);\n}\n\n/**\n * Converts the given value into a padding object with pre-computed width/height.\n * @param value - If a number, set the value to all TRBL component,\n * else, if an object, use defined properties and sets undefined ones to 0.\n * x / y are shorthands for same value for left/right and top/bottom.\n * @returns The padding values (top, right, bottom, left, width, height)\n * @since 2.7.0\n */\nexport function toPadding(value?: number | TRBL): ChartArea {\n const obj = toTRBL(value) as ChartArea;\n\n obj.width = obj.left + obj.right;\n obj.height = obj.top + obj.bottom;\n\n return obj;\n}\n\n/**\n * Parses font options and returns the font object.\n * @param options - A object that contains font options to be parsed.\n * @param fallback - A object that contains fallback font options.\n * @return The font object.\n * @private\n */\n\nexport function toFont(options: Partial, fallback?: Partial) {\n options = options || {};\n fallback = fallback || defaults.font as FontSpec;\n\n let size = valueOrDefault(options.size, fallback.size);\n\n if (typeof size === 'string') {\n size = parseInt(size, 10);\n }\n let style = valueOrDefault(options.style, fallback.style);\n if (style && !('' + style).match(FONT_STYLE)) {\n console.warn('Invalid font style specified: \"' + style + '\"');\n style = undefined;\n }\n\n const font = {\n family: valueOrDefault(options.family, fallback.family),\n lineHeight: toLineHeight(valueOrDefault(options.lineHeight, fallback.lineHeight), size),\n size,\n style,\n weight: valueOrDefault(options.weight, fallback.weight),\n string: ''\n };\n\n font.string = toFontString(font);\n return font;\n}\n\n/**\n * Evaluates the given `inputs` sequentially and returns the first defined value.\n * @param inputs - An array of values, falling back to the last value.\n * @param context - If defined and the current value is a function, the value\n * is called with `context` as first argument and the result becomes the new input.\n * @param index - If defined and the current value is an array, the value\n * at `index` become the new input.\n * @param info - object to return information about resolution in\n * @param info.cacheable - Will be set to `false` if option is not cacheable.\n * @since 2.7.0\n */\nexport function resolve(inputs: Array, context?: object, index?: number, info?: { cacheable: boolean }) {\n let cacheable = true;\n let i: number, ilen: number, value: unknown;\n\n for (i = 0, ilen = inputs.length; i < ilen; ++i) {\n value = inputs[i];\n if (value === undefined) {\n continue;\n }\n if (context !== undefined && typeof value === 'function') {\n value = value(context);\n cacheable = false;\n }\n if (index !== undefined && isArray(value)) {\n value = value[index % value.length];\n cacheable = false;\n }\n if (value !== undefined) {\n if (info && !cacheable) {\n info.cacheable = false;\n }\n return value;\n }\n }\n}\n\n/**\n * @param minmax\n * @param grace\n * @param beginAtZero\n * @private\n */\nexport function _addGrace(minmax: { min: number; max: number; }, grace: number | string, beginAtZero: boolean) {\n const {min, max} = minmax;\n const change = toDimension(grace, (max - min) / 2);\n const keepZero = (value: number, add: number) => beginAtZero && value === 0 ? 0 : value + add;\n return {\n min: keepZero(min, -Math.abs(change)),\n max: keepZero(max, change)\n };\n}\n\n/**\n * Create a context inheriting parentContext\n * @param parentContext\n * @param context\n * @returns\n */\nexport function createContext(parentContext: null, context: T): T;\nexport function createContext(parentContext: P, context: T): P & T;\nexport function createContext(parentContext: object, context: object) {\n return Object.assign(Object.create(parentContext), context);\n}\n","/* eslint-disable @typescript-eslint/no-use-before-define */\nimport type {AnyObject} from '../types/basic.js';\nimport type {ChartMeta} from '../types/index.js';\nimport type {\n ResolverObjectKey,\n ResolverCache,\n ResolverProxy,\n DescriptorDefaults,\n Descriptor,\n ContextCache,\n ContextProxy\n} from './helpers.config.types.js';\nimport {isArray, isFunction, isObject, resolveObjectKey, _capitalize} from './helpers.core.js';\n\nexport * from './helpers.config.types.js';\n\n/**\n * Creates a Proxy for resolving raw values for options.\n * @param scopes - The option scopes to look for values, in resolution order\n * @param prefixes - The prefixes for values, in resolution order.\n * @param rootScopes - The root option scopes\n * @param fallback - Parent scopes fallback\n * @param getTarget - callback for getting the target for changed values\n * @returns Proxy\n * @private\n */\nexport function _createResolver<\n T extends AnyObject[] = AnyObject[],\n R extends AnyObject[] = T\n>(\n scopes: T,\n prefixes = [''],\n rootScopes?: R,\n fallback?: ResolverObjectKey,\n getTarget = () => scopes[0]\n) {\n const finalRootScopes = rootScopes || scopes;\n if (typeof fallback === 'undefined') {\n fallback = _resolve('_fallback', scopes);\n }\n const cache: ResolverCache = {\n [Symbol.toStringTag]: 'Object',\n _cacheable: true,\n _scopes: scopes,\n _rootScopes: finalRootScopes,\n _fallback: fallback,\n _getTarget: getTarget,\n override: (scope: AnyObject) => _createResolver([scope, ...scopes], prefixes, finalRootScopes, fallback),\n };\n return new Proxy(cache, {\n /**\n * A trap for the delete operator.\n */\n deleteProperty(target, prop: string) {\n delete target[prop]; // remove from cache\n delete target._keys; // remove cached keys\n delete scopes[0][prop]; // remove from top level scope\n return true;\n },\n\n /**\n * A trap for getting property values.\n */\n get(target, prop: string) {\n return _cached(target, prop,\n () => _resolveWithPrefixes(prop, prefixes, scopes, target));\n },\n\n /**\n * A trap for Object.getOwnPropertyDescriptor.\n * Also used by Object.hasOwnProperty.\n */\n getOwnPropertyDescriptor(target, prop) {\n return Reflect.getOwnPropertyDescriptor(target._scopes[0], prop);\n },\n\n /**\n * A trap for Object.getPrototypeOf.\n */\n getPrototypeOf() {\n return Reflect.getPrototypeOf(scopes[0]);\n },\n\n /**\n * A trap for the in operator.\n */\n has(target, prop: string) {\n return getKeysFromAllScopes(target).includes(prop);\n },\n\n /**\n * A trap for Object.getOwnPropertyNames and Object.getOwnPropertySymbols.\n */\n ownKeys(target) {\n return getKeysFromAllScopes(target);\n },\n\n /**\n * A trap for setting property values.\n */\n set(target, prop: string, value) {\n const storage = target._storage || (target._storage = getTarget());\n target[prop] = storage[prop] = value; // set to top level scope + cache\n delete target._keys; // remove cached keys\n return true;\n }\n }) as ResolverProxy;\n}\n\n/**\n * Returns an Proxy for resolving option values with context.\n * @param proxy - The Proxy returned by `_createResolver`\n * @param context - Context object for scriptable/indexable options\n * @param subProxy - The proxy provided for scriptable options\n * @param descriptorDefaults - Defaults for descriptors\n * @private\n */\nexport function _attachContext<\n T extends AnyObject[] = AnyObject[],\n R extends AnyObject[] = T\n>(\n proxy: ResolverProxy,\n context: AnyObject,\n subProxy?: ResolverProxy,\n descriptorDefaults?: DescriptorDefaults\n) {\n const cache: ContextCache = {\n _cacheable: false,\n _proxy: proxy,\n _context: context,\n _subProxy: subProxy,\n _stack: new Set(),\n _descriptors: _descriptors(proxy, descriptorDefaults),\n setContext: (ctx: AnyObject) => _attachContext(proxy, ctx, subProxy, descriptorDefaults),\n override: (scope: AnyObject) => _attachContext(proxy.override(scope), context, subProxy, descriptorDefaults)\n };\n return new Proxy(cache, {\n /**\n * A trap for the delete operator.\n */\n deleteProperty(target, prop) {\n delete target[prop]; // remove from cache\n delete proxy[prop]; // remove from proxy\n return true;\n },\n\n /**\n * A trap for getting property values.\n */\n get(target, prop: string, receiver) {\n return _cached(target, prop,\n () => _resolveWithContext(target, prop, receiver));\n },\n\n /**\n * A trap for Object.getOwnPropertyDescriptor.\n * Also used by Object.hasOwnProperty.\n */\n getOwnPropertyDescriptor(target, prop) {\n return target._descriptors.allKeys\n ? Reflect.has(proxy, prop) ? {enumerable: true, configurable: true} : undefined\n : Reflect.getOwnPropertyDescriptor(proxy, prop);\n },\n\n /**\n * A trap for Object.getPrototypeOf.\n */\n getPrototypeOf() {\n return Reflect.getPrototypeOf(proxy);\n },\n\n /**\n * A trap for the in operator.\n */\n has(target, prop) {\n return Reflect.has(proxy, prop);\n },\n\n /**\n * A trap for Object.getOwnPropertyNames and Object.getOwnPropertySymbols.\n */\n ownKeys() {\n return Reflect.ownKeys(proxy);\n },\n\n /**\n * A trap for setting property values.\n */\n set(target, prop, value) {\n proxy[prop] = value; // set to proxy\n delete target[prop]; // remove from cache\n return true;\n }\n }) as ContextProxy;\n}\n\n/**\n * @private\n */\nexport function _descriptors(\n proxy: ResolverCache,\n defaults: DescriptorDefaults = {scriptable: true, indexable: true}\n): Descriptor {\n const {_scriptable = defaults.scriptable, _indexable = defaults.indexable, _allKeys = defaults.allKeys} = proxy;\n return {\n allKeys: _allKeys,\n scriptable: _scriptable,\n indexable: _indexable,\n isScriptable: isFunction(_scriptable) ? _scriptable : () => _scriptable,\n isIndexable: isFunction(_indexable) ? _indexable : () => _indexable\n };\n}\n\nconst readKey = (prefix: string, name: string) => prefix ? prefix + _capitalize(name) : name;\nconst needsSubResolver = (prop: string, value: unknown) => isObject(value) && prop !== 'adapters' &&\n (Object.getPrototypeOf(value) === null || value.constructor === Object);\n\nfunction _cached(\n target: AnyObject,\n prop: string,\n resolve: () => unknown\n) {\n if (Object.prototype.hasOwnProperty.call(target, prop) || prop === 'constructor') {\n return target[prop];\n }\n\n const value = resolve();\n // cache the resolved value\n target[prop] = value;\n return value;\n}\n\nfunction _resolveWithContext(\n target: ContextCache,\n prop: string,\n receiver: AnyObject\n) {\n const {_proxy, _context, _subProxy, _descriptors: descriptors} = target;\n let value = _proxy[prop]; // resolve from proxy\n\n // resolve with context\n if (isFunction(value) && descriptors.isScriptable(prop)) {\n value = _resolveScriptable(prop, value, target, receiver);\n }\n if (isArray(value) && value.length) {\n value = _resolveArray(prop, value, target, descriptors.isIndexable);\n }\n if (needsSubResolver(prop, value)) {\n // if the resolved value is an object, create a sub resolver for it\n value = _attachContext(value, _context, _subProxy && _subProxy[prop], descriptors);\n }\n return value;\n}\n\nfunction _resolveScriptable(\n prop: string,\n getValue: (ctx: AnyObject, sub: AnyObject) => unknown,\n target: ContextCache,\n receiver: AnyObject\n) {\n const {_proxy, _context, _subProxy, _stack} = target;\n if (_stack.has(prop)) {\n throw new Error('Recursion detected: ' + Array.from(_stack).join('->') + '->' + prop);\n }\n _stack.add(prop);\n let value = getValue(_context, _subProxy || receiver);\n _stack.delete(prop);\n if (needsSubResolver(prop, value)) {\n // When scriptable option returns an object, create a resolver on that.\n value = createSubResolver(_proxy._scopes, _proxy, prop, value);\n }\n return value;\n}\n\nfunction _resolveArray(\n prop: string,\n value: unknown[],\n target: ContextCache,\n isIndexable: (key: string) => boolean\n) {\n const {_proxy, _context, _subProxy, _descriptors: descriptors} = target;\n\n if (typeof _context.index !== 'undefined' && isIndexable(prop)) {\n return value[_context.index % value.length];\n } else if (isObject(value[0])) {\n // Array of objects, return array or resolvers\n const arr = value;\n const scopes = _proxy._scopes.filter(s => s !== arr);\n value = [];\n for (const item of arr) {\n const resolver = createSubResolver(scopes, _proxy, prop, item);\n value.push(_attachContext(resolver, _context, _subProxy && _subProxy[prop], descriptors));\n }\n }\n return value;\n}\n\nfunction resolveFallback(\n fallback: ResolverObjectKey | ((prop: ResolverObjectKey, value: unknown) => ResolverObjectKey),\n prop: ResolverObjectKey,\n value: unknown\n) {\n return isFunction(fallback) ? fallback(prop, value) : fallback;\n}\n\nconst getScope = (key: ResolverObjectKey, parent: AnyObject) => key === true ? parent\n : typeof key === 'string' ? resolveObjectKey(parent, key) : undefined;\n\nfunction addScopes(\n set: Set,\n parentScopes: AnyObject[],\n key: ResolverObjectKey,\n parentFallback: ResolverObjectKey,\n value: unknown\n) {\n for (const parent of parentScopes) {\n const scope = getScope(key, parent);\n if (scope) {\n set.add(scope);\n const fallback = resolveFallback(scope._fallback, key, value);\n if (typeof fallback !== 'undefined' && fallback !== key && fallback !== parentFallback) {\n // When we reach the descriptor that defines a new _fallback, return that.\n // The fallback will resume to that new scope.\n return fallback;\n }\n } else if (scope === false && typeof parentFallback !== 'undefined' && key !== parentFallback) {\n // Fallback to `false` results to `false`, when falling back to different key.\n // For example `interaction` from `hover` or `plugins.tooltip` and `animation` from `animations`\n return null;\n }\n }\n return false;\n}\n\nfunction createSubResolver(\n parentScopes: AnyObject[],\n resolver: ResolverCache,\n prop: ResolverObjectKey,\n value: unknown\n) {\n const rootScopes = resolver._rootScopes;\n const fallback = resolveFallback(resolver._fallback, prop, value);\n const allScopes = [...parentScopes, ...rootScopes];\n const set = new Set();\n set.add(value);\n let key = addScopesFromKey(set, allScopes, prop, fallback || prop, value);\n if (key === null) {\n return false;\n }\n if (typeof fallback !== 'undefined' && fallback !== prop) {\n key = addScopesFromKey(set, allScopes, fallback, key, value);\n if (key === null) {\n return false;\n }\n }\n return _createResolver(Array.from(set), [''], rootScopes, fallback,\n () => subGetTarget(resolver, prop as string, value));\n}\n\nfunction addScopesFromKey(\n set: Set,\n allScopes: AnyObject[],\n key: ResolverObjectKey,\n fallback: ResolverObjectKey,\n item: unknown\n) {\n while (key) {\n key = addScopes(set, allScopes, key, fallback, item);\n }\n return key;\n}\n\nfunction subGetTarget(\n resolver: ResolverCache,\n prop: string,\n value: unknown\n) {\n const parent = resolver._getTarget();\n if (!(prop in parent)) {\n parent[prop] = {};\n }\n const target = parent[prop];\n if (isArray(target) && isObject(value)) {\n // For array of objects, the object is used to store updated values\n return value;\n }\n return target || {};\n}\n\nfunction _resolveWithPrefixes(\n prop: string,\n prefixes: string[],\n scopes: AnyObject[],\n proxy: ResolverProxy\n) {\n let value: unknown;\n for (const prefix of prefixes) {\n value = _resolve(readKey(prefix, prop), scopes);\n if (typeof value !== 'undefined') {\n return needsSubResolver(prop, value)\n ? createSubResolver(scopes, proxy, prop, value)\n : value;\n }\n }\n}\n\nfunction _resolve(key: string, scopes: AnyObject[]) {\n for (const scope of scopes) {\n if (!scope) {\n continue;\n }\n const value = scope[key];\n if (typeof value !== 'undefined') {\n return value;\n }\n }\n}\n\nfunction getKeysFromAllScopes(target: ResolverCache) {\n let keys = target._keys;\n if (!keys) {\n keys = target._keys = resolveKeysFromAllScopes(target._scopes);\n }\n return keys;\n}\n\nfunction resolveKeysFromAllScopes(scopes: AnyObject[]) {\n const set = new Set();\n for (const scope of scopes) {\n for (const key of Object.keys(scope).filter(k => !k.startsWith('_'))) {\n set.add(key);\n }\n }\n return Array.from(set);\n}\n\nexport function _parseObjectDataRadialScale(\n meta: ChartMeta<'line' | 'scatter'>,\n data: AnyObject[],\n start: number,\n count: number\n) {\n const {iScale} = meta;\n const {key = 'r'} = this._parsing;\n const parsed = new Array<{r: unknown}>(count);\n let i: number, ilen: number, index: number, item: AnyObject;\n\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n item = data[index];\n parsed[i] = {\n r: iScale.parse(resolveObjectKey(item, key), index)\n };\n }\n return parsed;\n}\n","import {almostEquals, distanceBetweenPoints, sign} from './helpers.math.js';\nimport {_isPointInArea} from './helpers.canvas.js';\nimport type {ChartArea} from '../types/index.js';\nimport type {SplinePoint} from '../types/geometric.js';\n\nconst EPSILON = Number.EPSILON || 1e-14;\n\ntype OptionalSplinePoint = SplinePoint | false\nconst getPoint = (points: SplinePoint[], i: number): OptionalSplinePoint => i < points.length && !points[i].skip && points[i];\nconst getValueAxis = (indexAxis: 'x' | 'y') => indexAxis === 'x' ? 'y' : 'x';\n\nexport function splineCurve(\n firstPoint: SplinePoint,\n middlePoint: SplinePoint,\n afterPoint: SplinePoint,\n t: number\n): {\n previous: SplinePoint\n next: SplinePoint\n } {\n // Props to Rob Spencer at scaled innovation for his post on splining between points\n // http://scaledinnovation.com/analytics/splines/aboutSplines.html\n\n // This function must also respect \"skipped\" points\n\n const previous = firstPoint.skip ? middlePoint : firstPoint;\n const current = middlePoint;\n const next = afterPoint.skip ? middlePoint : afterPoint;\n const d01 = distanceBetweenPoints(current, previous);\n const d12 = distanceBetweenPoints(next, current);\n\n let s01 = d01 / (d01 + d12);\n let s12 = d12 / (d01 + d12);\n\n // If all points are the same, s01 & s02 will be inf\n s01 = isNaN(s01) ? 0 : s01;\n s12 = isNaN(s12) ? 0 : s12;\n\n const fa = t * s01; // scaling factor for triangle Ta\n const fb = t * s12;\n\n return {\n previous: {\n x: current.x - fa * (next.x - previous.x),\n y: current.y - fa * (next.y - previous.y)\n },\n next: {\n x: current.x + fb * (next.x - previous.x),\n y: current.y + fb * (next.y - previous.y)\n }\n };\n}\n\n/**\n * Adjust tangents to ensure monotonic properties\n */\nfunction monotoneAdjust(points: SplinePoint[], deltaK: number[], mK: number[]) {\n const pointsLen = points.length;\n\n let alphaK: number, betaK: number, tauK: number, squaredMagnitude: number, pointCurrent: OptionalSplinePoint;\n let pointAfter = getPoint(points, 0);\n for (let i = 0; i < pointsLen - 1; ++i) {\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent || !pointAfter) {\n continue;\n }\n\n if (almostEquals(deltaK[i], 0, EPSILON)) {\n mK[i] = mK[i + 1] = 0;\n continue;\n }\n\n alphaK = mK[i] / deltaK[i];\n betaK = mK[i + 1] / deltaK[i];\n squaredMagnitude = Math.pow(alphaK, 2) + Math.pow(betaK, 2);\n if (squaredMagnitude <= 9) {\n continue;\n }\n\n tauK = 3 / Math.sqrt(squaredMagnitude);\n mK[i] = alphaK * tauK * deltaK[i];\n mK[i + 1] = betaK * tauK * deltaK[i];\n }\n}\n\nfunction monotoneCompute(points: SplinePoint[], mK: number[], indexAxis: 'x' | 'y' = 'x') {\n const valueAxis = getValueAxis(indexAxis);\n const pointsLen = points.length;\n let delta: number, pointBefore: OptionalSplinePoint, pointCurrent: OptionalSplinePoint;\n let pointAfter = getPoint(points, 0);\n\n for (let i = 0; i < pointsLen; ++i) {\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent) {\n continue;\n }\n\n const iPixel = pointCurrent[indexAxis];\n const vPixel = pointCurrent[valueAxis];\n if (pointBefore) {\n delta = (iPixel - pointBefore[indexAxis]) / 3;\n pointCurrent[`cp1${indexAxis}`] = iPixel - delta;\n pointCurrent[`cp1${valueAxis}`] = vPixel - delta * mK[i];\n }\n if (pointAfter) {\n delta = (pointAfter[indexAxis] - iPixel) / 3;\n pointCurrent[`cp2${indexAxis}`] = iPixel + delta;\n pointCurrent[`cp2${valueAxis}`] = vPixel + delta * mK[i];\n }\n }\n}\n\n/**\n * This function calculates Bézier control points in a similar way than |splineCurve|,\n * but preserves monotonicity of the provided data and ensures no local extremums are added\n * between the dataset discrete points due to the interpolation.\n * See : https://en.wikipedia.org/wiki/Monotone_cubic_interpolation\n */\nexport function splineCurveMonotone(points: SplinePoint[], indexAxis: 'x' | 'y' = 'x') {\n const valueAxis = getValueAxis(indexAxis);\n const pointsLen = points.length;\n const deltaK: number[] = Array(pointsLen).fill(0);\n const mK: number[] = Array(pointsLen);\n\n // Calculate slopes (deltaK) and initialize tangents (mK)\n let i, pointBefore: OptionalSplinePoint, pointCurrent: OptionalSplinePoint;\n let pointAfter = getPoint(points, 0);\n\n for (i = 0; i < pointsLen; ++i) {\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent) {\n continue;\n }\n\n if (pointAfter) {\n const slopeDelta = pointAfter[indexAxis] - pointCurrent[indexAxis];\n\n // In the case of two points that appear at the same x pixel, slopeDeltaX is 0\n deltaK[i] = slopeDelta !== 0 ? (pointAfter[valueAxis] - pointCurrent[valueAxis]) / slopeDelta : 0;\n }\n mK[i] = !pointBefore ? deltaK[i]\n : !pointAfter ? deltaK[i - 1]\n : (sign(deltaK[i - 1]) !== sign(deltaK[i])) ? 0\n : (deltaK[i - 1] + deltaK[i]) / 2;\n }\n\n monotoneAdjust(points, deltaK, mK);\n\n monotoneCompute(points, mK, indexAxis);\n}\n\nfunction capControlPoint(pt: number, min: number, max: number) {\n return Math.max(Math.min(pt, max), min);\n}\n\nfunction capBezierPoints(points: SplinePoint[], area: ChartArea) {\n let i, ilen, point, inArea, inAreaPrev;\n let inAreaNext = _isPointInArea(points[0], area);\n for (i = 0, ilen = points.length; i < ilen; ++i) {\n inAreaPrev = inArea;\n inArea = inAreaNext;\n inAreaNext = i < ilen - 1 && _isPointInArea(points[i + 1], area);\n if (!inArea) {\n continue;\n }\n point = points[i];\n if (inAreaPrev) {\n point.cp1x = capControlPoint(point.cp1x, area.left, area.right);\n point.cp1y = capControlPoint(point.cp1y, area.top, area.bottom);\n }\n if (inAreaNext) {\n point.cp2x = capControlPoint(point.cp2x, area.left, area.right);\n point.cp2y = capControlPoint(point.cp2y, area.top, area.bottom);\n }\n }\n}\n\n/**\n * @private\n */\nexport function _updateBezierControlPoints(\n points: SplinePoint[],\n options,\n area: ChartArea,\n loop: boolean,\n indexAxis: 'x' | 'y'\n) {\n let i: number, ilen: number, point: SplinePoint, controlPoints: ReturnType;\n\n // Only consider points that are drawn in case the spanGaps option is used\n if (options.spanGaps) {\n points = points.filter((pt) => !pt.skip);\n }\n\n if (options.cubicInterpolationMode === 'monotone') {\n splineCurveMonotone(points, indexAxis);\n } else {\n let prev = loop ? points[points.length - 1] : points[0];\n for (i = 0, ilen = points.length; i < ilen; ++i) {\n point = points[i];\n controlPoints = splineCurve(\n prev,\n point,\n points[Math.min(i + 1, ilen - (loop ? 0 : 1)) % ilen],\n options.tension\n );\n point.cp1x = controlPoints.previous.x;\n point.cp1y = controlPoints.previous.y;\n point.cp2x = controlPoints.next.x;\n point.cp2y = controlPoints.next.y;\n prev = point;\n }\n }\n\n if (options.capBezierPoints) {\n capBezierPoints(points, area);\n }\n}\n","import type {ChartArea, Scale} from '../types/index.js';\nimport type Chart from '../core/core.controller.js';\nimport type {ChartEvent} from '../types.js';\nimport {INFINITY} from './helpers.math.js';\n\n/**\n * Note: typedefs are auto-exported, so use a made-up `dom` namespace where\n * necessary to avoid duplicates with `export * from './helpers`; see\n * https://github.com/microsoft/TypeScript/issues/46011\n * @typedef { import('../core/core.controller.js').default } dom.Chart\n * @typedef { import('../../types').ChartEvent } ChartEvent\n */\n\n/**\n * @private\n */\nexport function _isDomSupported(): boolean {\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\n\n/**\n * @private\n */\nexport function _getParentNode(domNode: HTMLCanvasElement): HTMLCanvasElement {\n let parent = domNode.parentNode;\n if (parent && parent.toString() === '[object ShadowRoot]') {\n parent = (parent as ShadowRoot).host;\n }\n return parent as HTMLCanvasElement;\n}\n\n/**\n * convert max-width/max-height values that may be percentages into a number\n * @private\n */\n\nfunction parseMaxStyle(styleValue: string | number, node: HTMLElement, parentProperty: string) {\n let valueInPixels: number;\n if (typeof styleValue === 'string') {\n valueInPixels = parseInt(styleValue, 10);\n\n if (styleValue.indexOf('%') !== -1) {\n // percentage * size in dimension\n valueInPixels = (valueInPixels / 100) * node.parentNode[parentProperty];\n }\n } else {\n valueInPixels = styleValue;\n }\n\n return valueInPixels;\n}\n\nconst getComputedStyle = (element: HTMLElement): CSSStyleDeclaration =>\n element.ownerDocument.defaultView.getComputedStyle(element, null);\n\nexport function getStyle(el: HTMLElement, property: string): string {\n return getComputedStyle(el).getPropertyValue(property);\n}\n\nconst positions = ['top', 'right', 'bottom', 'left'];\nfunction getPositionedStyle(styles: CSSStyleDeclaration, style: string, suffix?: string): ChartArea {\n const result = {} as ChartArea;\n suffix = suffix ? '-' + suffix : '';\n for (let i = 0; i < 4; i++) {\n const pos = positions[i];\n result[pos] = parseFloat(styles[style + '-' + pos + suffix]) || 0;\n }\n result.width = result.left + result.right;\n result.height = result.top + result.bottom;\n return result;\n}\n\nconst useOffsetPos = (x: number, y: number, target: HTMLElement | EventTarget) =>\n (x > 0 || y > 0) && (!target || !(target as HTMLElement).shadowRoot);\n\n/**\n * @param e\n * @param canvas\n * @returns Canvas position\n */\nfunction getCanvasPosition(\n e: Event | TouchEvent | MouseEvent,\n canvas: HTMLCanvasElement\n): {\n x: number;\n y: number;\n box: boolean;\n } {\n const touches = (e as TouchEvent).touches;\n const source = (touches && touches.length ? touches[0] : e) as MouseEvent;\n const {offsetX, offsetY} = source as MouseEvent;\n let box = false;\n let x, y;\n if (useOffsetPos(offsetX, offsetY, e.target)) {\n x = offsetX;\n y = offsetY;\n } else {\n const rect = canvas.getBoundingClientRect();\n x = source.clientX - rect.left;\n y = source.clientY - rect.top;\n box = true;\n }\n return {x, y, box};\n}\n\n/**\n * Gets an event's x, y coordinates, relative to the chart area\n * @param event\n * @param chart\n * @returns x and y coordinates of the event\n */\n\nexport function getRelativePosition(\n event: Event | ChartEvent | TouchEvent | MouseEvent,\n chart: Chart\n): { x: number; y: number } {\n if ('native' in event) {\n return event;\n }\n\n const {canvas, currentDevicePixelRatio} = chart;\n const style = getComputedStyle(canvas);\n const borderBox = style.boxSizing === 'border-box';\n const paddings = getPositionedStyle(style, 'padding');\n const borders = getPositionedStyle(style, 'border', 'width');\n const {x, y, box} = getCanvasPosition(event, canvas);\n const xOffset = paddings.left + (box && borders.left);\n const yOffset = paddings.top + (box && borders.top);\n\n let {width, height} = chart;\n if (borderBox) {\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\n return {\n x: Math.round((x - xOffset) / width * canvas.width / currentDevicePixelRatio),\n y: Math.round((y - yOffset) / height * canvas.height / currentDevicePixelRatio)\n };\n}\n\nfunction getContainerSize(canvas: HTMLCanvasElement, width: number, height: number): Partial {\n let maxWidth: number, maxHeight: number;\n\n if (width === undefined || height === undefined) {\n const container = canvas && _getParentNode(canvas);\n if (!container) {\n width = canvas.clientWidth;\n height = canvas.clientHeight;\n } else {\n const rect = container.getBoundingClientRect(); // this is the border box of the container\n const containerStyle = getComputedStyle(container);\n const containerBorder = getPositionedStyle(containerStyle, 'border', 'width');\n const containerPadding = getPositionedStyle(containerStyle, 'padding');\n width = rect.width - containerPadding.width - containerBorder.width;\n height = rect.height - containerPadding.height - containerBorder.height;\n maxWidth = parseMaxStyle(containerStyle.maxWidth, container, 'clientWidth');\n maxHeight = parseMaxStyle(containerStyle.maxHeight, container, 'clientHeight');\n }\n }\n return {\n width,\n height,\n maxWidth: maxWidth || INFINITY,\n maxHeight: maxHeight || INFINITY\n };\n}\n\nconst round1 = (v: number) => Math.round(v * 10) / 10;\n\n// eslint-disable-next-line complexity\nexport function getMaximumSize(\n canvas: HTMLCanvasElement,\n bbWidth?: number,\n bbHeight?: number,\n aspectRatio?: number\n): { width: number; height: number } {\n const style = getComputedStyle(canvas);\n const margins = getPositionedStyle(style, 'margin');\n const maxWidth = parseMaxStyle(style.maxWidth, canvas, 'clientWidth') || INFINITY;\n const maxHeight = parseMaxStyle(style.maxHeight, canvas, 'clientHeight') || INFINITY;\n const containerSize = getContainerSize(canvas, bbWidth, bbHeight);\n let {width, height} = containerSize;\n\n if (style.boxSizing === 'content-box') {\n const borders = getPositionedStyle(style, 'border', 'width');\n const paddings = getPositionedStyle(style, 'padding');\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\n width = Math.max(0, width - margins.width);\n height = Math.max(0, aspectRatio ? width / aspectRatio : height - margins.height);\n width = round1(Math.min(width, maxWidth, containerSize.maxWidth));\n height = round1(Math.min(height, maxHeight, containerSize.maxHeight));\n if (width && !height) {\n // https://github.com/chartjs/Chart.js/issues/4659\n // If the canvas has width, but no height, default to aspectRatio of 2 (canvas default)\n height = round1(width / 2);\n }\n\n const maintainHeight = bbWidth !== undefined || bbHeight !== undefined;\n\n if (maintainHeight && aspectRatio && containerSize.height && height > containerSize.height) {\n height = containerSize.height;\n width = round1(Math.floor(height * aspectRatio));\n }\n\n return {width, height};\n}\n\n/**\n * @param chart\n * @param forceRatio\n * @param forceStyle\n * @returns True if the canvas context size or transformation has changed.\n */\nexport function retinaScale(\n chart: Chart,\n forceRatio: number,\n forceStyle?: boolean\n): boolean | void {\n const pixelRatio = forceRatio || 1;\n const deviceHeight = Math.floor(chart.height * pixelRatio);\n const deviceWidth = Math.floor(chart.width * pixelRatio);\n\n chart.height = Math.floor(chart.height);\n chart.width = Math.floor(chart.width);\n\n const canvas = chart.canvas;\n\n // If no style has been set on the canvas, the render size is used as display size,\n // making the chart visually bigger, so let's enforce it to the \"correct\" values.\n // See https://github.com/chartjs/Chart.js/issues/3575\n if (canvas.style && (forceStyle || (!canvas.style.height && !canvas.style.width))) {\n canvas.style.height = `${chart.height}px`;\n canvas.style.width = `${chart.width}px`;\n }\n\n if (chart.currentDevicePixelRatio !== pixelRatio\n || canvas.height !== deviceHeight\n || canvas.width !== deviceWidth) {\n chart.currentDevicePixelRatio = pixelRatio;\n canvas.height = deviceHeight;\n canvas.width = deviceWidth;\n chart.ctx.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0);\n return true;\n }\n return false;\n}\n\n/**\n * Detects support for options object argument in addEventListener.\n * https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support\n * @private\n */\nexport const supportsEventListenerOptions = (function() {\n let passiveSupported = false;\n try {\n const options = {\n get passive() { // This function will be called when the browser attempts to access the passive property.\n passiveSupported = true;\n return false;\n }\n } as EventListenerOptions;\n\n if (_isDomSupported()) {\n window.addEventListener('test', null, options);\n window.removeEventListener('test', null, options);\n }\n } catch (e) {\n // continue regardless of error\n }\n return passiveSupported;\n}());\n\n/**\n * The \"used\" size is the final value of a dimension property after all calculations have\n * been performed. This method uses the computed style of `element` but returns undefined\n * if the computed style is not expressed in pixels. That can happen in some cases where\n * `element` has a size relative to its parent and this last one is not yet displayed,\n * for example because of `display: none` on a parent node.\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/used_value\n * @returns Size in pixels or undefined if unknown.\n */\n\nexport function readUsedSize(\n element: HTMLElement,\n property: 'width' | 'height'\n): number | undefined {\n const value = getStyle(element, property);\n const matches = value && value.match(/^(\\d+)(\\.\\d+)?px$/);\n return matches ? +matches[1] : undefined;\n}\n","import type {Point, SplinePoint} from '../types/geometric.js';\n\n/**\n * @private\n */\nexport function _pointInLine(p1: Point, p2: Point, t: number, mode?) { // eslint-disable-line @typescript-eslint/no-unused-vars\n return {\n x: p1.x + t * (p2.x - p1.x),\n y: p1.y + t * (p2.y - p1.y)\n };\n}\n\n/**\n * @private\n */\nexport function _steppedInterpolation(\n p1: Point,\n p2: Point,\n t: number, mode: 'middle' | 'after' | unknown\n) {\n return {\n x: p1.x + t * (p2.x - p1.x),\n y: mode === 'middle' ? t < 0.5 ? p1.y : p2.y\n : mode === 'after' ? t < 1 ? p1.y : p2.y\n : t > 0 ? p2.y : p1.y\n };\n}\n\n/**\n * @private\n */\nexport function _bezierInterpolation(p1: SplinePoint, p2: SplinePoint, t: number, mode?) { // eslint-disable-line @typescript-eslint/no-unused-vars\n const cp1 = {x: p1.cp2x, y: p1.cp2y};\n const cp2 = {x: p2.cp1x, y: p2.cp1y};\n const a = _pointInLine(p1, cp1, t);\n const b = _pointInLine(cp1, cp2, t);\n const c = _pointInLine(cp2, p2, t);\n const d = _pointInLine(a, b, t);\n const e = _pointInLine(b, c, t);\n return _pointInLine(d, e, t);\n}\n","export interface RTLAdapter {\n x(x: number): number;\n setWidth(w: number): void;\n textAlign(align: 'center' | 'left' | 'right'): 'center' | 'left' | 'right';\n xPlus(x: number, value: number): number;\n leftForLtr(x: number, itemWidth: number): number;\n}\n\nconst getRightToLeftAdapter = function(rectX: number, width: number): RTLAdapter {\n return {\n x(x) {\n return rectX + rectX + width - x;\n },\n setWidth(w) {\n width = w;\n },\n textAlign(align) {\n if (align === 'center') {\n return align;\n }\n return align === 'right' ? 'left' : 'right';\n },\n xPlus(x, value) {\n return x - value;\n },\n leftForLtr(x, itemWidth) {\n return x - itemWidth;\n },\n };\n};\n\nconst getLeftToRightAdapter = function(): RTLAdapter {\n return {\n x(x) {\n return x;\n },\n setWidth(w) { // eslint-disable-line no-unused-vars\n },\n textAlign(align) {\n return align;\n },\n xPlus(x, value) {\n return x + value;\n },\n leftForLtr(x, _itemWidth) { // eslint-disable-line @typescript-eslint/no-unused-vars\n return x;\n },\n };\n};\n\nexport function getRtlAdapter(rtl: boolean, rectX: number, width: number) {\n return rtl ? getRightToLeftAdapter(rectX, width) : getLeftToRightAdapter();\n}\n\nexport function overrideTextDirection(ctx: CanvasRenderingContext2D, direction: 'ltr' | 'rtl') {\n let style: CSSStyleDeclaration, original: [string, string];\n if (direction === 'ltr' || direction === 'rtl') {\n style = ctx.canvas.style;\n original = [\n style.getPropertyValue('direction'),\n style.getPropertyPriority('direction'),\n ];\n\n style.setProperty('direction', direction, 'important');\n (ctx as { prevTextDirection?: [string, string] }).prevTextDirection = original;\n }\n}\n\nexport function restoreTextDirection(ctx: CanvasRenderingContext2D, original?: [string, string]) {\n if (original !== undefined) {\n delete (ctx as { prevTextDirection?: [string, string] }).prevTextDirection;\n ctx.canvas.style.setProperty('direction', original[0], original[1]);\n }\n}\n","import {_angleBetween, _angleDiff, _isBetween, _normalizeAngle} from './helpers.math.js';\nimport {createContext} from './helpers.options.js';\nimport {isPatternOrGradient} from './helpers.color.js';\n\n/**\n * @typedef { import('../elements/element.line.js').default } LineElement\n * @typedef { import('../elements/element.point.js').default } PointElement\n * @typedef {{start: number, end: number, loop: boolean, style?: any}} Segment\n */\n\nfunction propertyFn(property) {\n if (property === 'angle') {\n return {\n between: _angleBetween,\n compare: _angleDiff,\n normalize: _normalizeAngle,\n };\n }\n return {\n between: _isBetween,\n compare: (a, b) => a - b,\n normalize: x => x\n };\n}\n\nfunction normalizeSegment({start, end, count, loop, style}) {\n return {\n start: start % count,\n end: end % count,\n loop: loop && (end - start + 1) % count === 0,\n style\n };\n}\n\nfunction getSegment(segment, points, bounds) {\n const {property, start: startBound, end: endBound} = bounds;\n const {between, normalize} = propertyFn(property);\n const count = points.length;\n // eslint-disable-next-line prefer-const\n let {start, end, loop} = segment;\n let i, ilen;\n\n if (loop) {\n start += count;\n end += count;\n for (i = 0, ilen = count; i < ilen; ++i) {\n if (!between(normalize(points[start % count][property]), startBound, endBound)) {\n break;\n }\n start--;\n end--;\n }\n start %= count;\n end %= count;\n }\n\n if (end < start) {\n end += count;\n }\n return {start, end, loop, style: segment.style};\n}\n\n/**\n * Returns the sub-segment(s) of a line segment that fall in the given bounds\n * @param {object} segment\n * @param {number} segment.start - start index of the segment, referring the points array\n * @param {number} segment.end - end index of the segment, referring the points array\n * @param {boolean} segment.loop - indicates that the segment is a loop\n * @param {object} [segment.style] - segment style\n * @param {PointElement[]} points - the points that this segment refers to\n * @param {object} [bounds]\n * @param {string} bounds.property - the property of a `PointElement` we are bounding. `x`, `y` or `angle`.\n * @param {number} bounds.start - start value of the property\n * @param {number} bounds.end - end value of the property\n * @private\n **/\nexport function _boundSegment(segment, points, bounds) {\n if (!bounds) {\n return [segment];\n }\n\n const {property, start: startBound, end: endBound} = bounds;\n const count = points.length;\n const {compare, between, normalize} = propertyFn(property);\n const {start, end, loop, style} = getSegment(segment, points, bounds);\n\n const result = [];\n let inside = false;\n let subStart = null;\n let value, point, prevValue;\n\n const startIsBefore = () => between(startBound, prevValue, value) && compare(startBound, prevValue) !== 0;\n const endIsBefore = () => compare(endBound, value) === 0 || between(endBound, prevValue, value);\n const shouldStart = () => inside || startIsBefore();\n const shouldStop = () => !inside || endIsBefore();\n\n for (let i = start, prev = start; i <= end; ++i) {\n point = points[i % count];\n\n if (point.skip) {\n continue;\n }\n\n value = normalize(point[property]);\n\n if (value === prevValue) {\n continue;\n }\n\n inside = between(value, startBound, endBound);\n\n if (subStart === null && shouldStart()) {\n subStart = compare(value, startBound) === 0 ? i : prev;\n }\n\n if (subStart !== null && shouldStop()) {\n result.push(normalizeSegment({start: subStart, end: i, loop, count, style}));\n subStart = null;\n }\n prev = i;\n prevValue = value;\n }\n\n if (subStart !== null) {\n result.push(normalizeSegment({start: subStart, end, loop, count, style}));\n }\n\n return result;\n}\n\n\n/**\n * Returns the segments of the line that are inside given bounds\n * @param {LineElement} line\n * @param {object} [bounds]\n * @param {string} bounds.property - the property we are bounding with. `x`, `y` or `angle`.\n * @param {number} bounds.start - start value of the `property`\n * @param {number} bounds.end - end value of the `property`\n * @private\n */\nexport function _boundSegments(line, bounds) {\n const result = [];\n const segments = line.segments;\n\n for (let i = 0; i < segments.length; i++) {\n const sub = _boundSegment(segments[i], line.points, bounds);\n if (sub.length) {\n result.push(...sub);\n }\n }\n return result;\n}\n\n/**\n * Find start and end index of a line.\n */\nfunction findStartAndEnd(points, count, loop, spanGaps) {\n let start = 0;\n let end = count - 1;\n\n if (loop && !spanGaps) {\n // loop and not spanning gaps, first find a gap to start from\n while (start < count && !points[start].skip) {\n start++;\n }\n }\n\n // find first non skipped point (after the first gap possibly)\n while (start < count && points[start].skip) {\n start++;\n }\n\n // if we looped to count, start needs to be 0\n start %= count;\n\n if (loop) {\n // loop will go past count, if start > 0\n end += start;\n }\n\n while (end > start && points[end % count].skip) {\n end--;\n }\n\n // end could be more than count, normalize\n end %= count;\n\n return {start, end};\n}\n\n/**\n * Compute solid segments from Points, when spanGaps === false\n * @param {PointElement[]} points - the points\n * @param {number} start - start index\n * @param {number} max - max index (can go past count on a loop)\n * @param {boolean} loop - boolean indicating that this would be a loop if no gaps are found\n */\nfunction solidSegments(points, start, max, loop) {\n const count = points.length;\n const result = [];\n let last = start;\n let prev = points[start];\n let end;\n\n for (end = start + 1; end <= max; ++end) {\n const cur = points[end % count];\n if (cur.skip || cur.stop) {\n if (!prev.skip) {\n loop = false;\n result.push({start: start % count, end: (end - 1) % count, loop});\n // @ts-ignore\n start = last = cur.stop ? end : null;\n }\n } else {\n last = end;\n if (prev.skip) {\n start = end;\n }\n }\n prev = cur;\n }\n\n if (last !== null) {\n result.push({start: start % count, end: last % count, loop});\n }\n\n return result;\n}\n\n/**\n * Compute the continuous segments that define the whole line\n * There can be skipped points within a segment, if spanGaps is true.\n * @param {LineElement} line\n * @param {object} [segmentOptions]\n * @return {Segment[]}\n * @private\n */\nexport function _computeSegments(line, segmentOptions) {\n const points = line.points;\n const spanGaps = line.options.spanGaps;\n const count = points.length;\n\n if (!count) {\n return [];\n }\n\n const loop = !!line._loop;\n const {start, end} = findStartAndEnd(points, count, loop, spanGaps);\n\n if (spanGaps === true) {\n return splitByStyles(line, [{start, end, loop}], points, segmentOptions);\n }\n\n const max = end < start ? end + count : end;\n const completeLoop = !!line._fullLoop && start === 0 && end === count - 1;\n return splitByStyles(line, solidSegments(points, start, max, completeLoop), points, segmentOptions);\n}\n\n/**\n * @param {Segment[]} segments\n * @param {PointElement[]} points\n * @param {object} [segmentOptions]\n * @return {Segment[]}\n */\nfunction splitByStyles(line, segments, points, segmentOptions) {\n if (!segmentOptions || !segmentOptions.setContext || !points) {\n return segments;\n }\n return doSplitByStyles(line, segments, points, segmentOptions);\n}\n\n/**\n * @param {LineElement} line\n * @param {Segment[]} segments\n * @param {PointElement[]} points\n * @param {object} [segmentOptions]\n * @return {Segment[]}\n */\nfunction doSplitByStyles(line, segments, points, segmentOptions) {\n const chartContext = line._chart.getContext();\n const baseStyle = readStyle(line.options);\n const {_datasetIndex: datasetIndex, options: {spanGaps}} = line;\n const count = points.length;\n const result = [];\n let prevStyle = baseStyle;\n let start = segments[0].start;\n let i = start;\n\n function addStyle(s, e, l, st) {\n const dir = spanGaps ? -1 : 1;\n if (s === e) {\n return;\n }\n // Style can not start/end on a skipped point, adjust indices accordingly\n s += count;\n while (points[s % count].skip) {\n s -= dir;\n }\n while (points[e % count].skip) {\n e += dir;\n }\n if (s % count !== e % count) {\n result.push({start: s % count, end: e % count, loop: l, style: st});\n prevStyle = st;\n start = e % count;\n }\n }\n\n for (const segment of segments) {\n start = spanGaps ? start : segment.start;\n let prev = points[start % count];\n let style;\n for (i = start + 1; i <= segment.end; i++) {\n const pt = points[i % count];\n style = readStyle(segmentOptions.setContext(createContext(chartContext, {\n type: 'segment',\n p0: prev,\n p1: pt,\n p0DataIndex: (i - 1) % count,\n p1DataIndex: i % count,\n datasetIndex\n })));\n if (styleChanged(style, prevStyle)) {\n addStyle(start, i - 1, segment.loop, prevStyle);\n }\n prev = pt;\n prevStyle = style;\n }\n if (start < i - 1) {\n addStyle(start, i - 1, segment.loop, prevStyle);\n }\n }\n\n return result;\n}\n\nfunction readStyle(options) {\n return {\n backgroundColor: options.backgroundColor,\n borderCapStyle: options.borderCapStyle,\n borderDash: options.borderDash,\n borderDashOffset: options.borderDashOffset,\n borderJoinStyle: options.borderJoinStyle,\n borderWidth: options.borderWidth,\n borderColor: options.borderColor\n };\n}\n\nfunction styleChanged(style, prevStyle) {\n if (!prevStyle) {\n return false;\n }\n const cache = [];\n const replacer = function(key, value) {\n if (!isPatternOrGradient(value)) {\n return value;\n }\n if (!cache.includes(value)) {\n cache.push(value);\n }\n return cache.indexOf(value);\n };\n return JSON.stringify(style, replacer) !== JSON.stringify(prevStyle, replacer);\n}\n","import {requestAnimFrame} from '../helpers/helpers.extras.js';\n\n/**\n * @typedef { import('./core.animation.js').default } Animation\n * @typedef { import('./core.controller.js').default } Chart\n */\n\n/**\n * Please use the module's default export which provides a singleton instance\n * Note: class is export for typedoc\n */\nexport class Animator {\n constructor() {\n this._request = null;\n this._charts = new Map();\n this._running = false;\n this._lastDate = undefined;\n }\n\n /**\n\t * @private\n\t */\n _notify(chart, anims, date, type) {\n const callbacks = anims.listeners[type];\n const numSteps = anims.duration;\n\n callbacks.forEach(fn => fn({\n chart,\n initial: anims.initial,\n numSteps,\n currentStep: Math.min(date - anims.start, numSteps)\n }));\n }\n\n /**\n\t * @private\n\t */\n _refresh() {\n if (this._request) {\n return;\n }\n this._running = true;\n\n this._request = requestAnimFrame.call(window, () => {\n this._update();\n this._request = null;\n\n if (this._running) {\n this._refresh();\n }\n });\n }\n\n /**\n\t * @private\n\t */\n _update(date = Date.now()) {\n let remaining = 0;\n\n this._charts.forEach((anims, chart) => {\n if (!anims.running || !anims.items.length) {\n return;\n }\n const items = anims.items;\n let i = items.length - 1;\n let draw = false;\n let item;\n\n for (; i >= 0; --i) {\n item = items[i];\n\n if (item._active) {\n if (item._total > anims.duration) {\n // if the animation has been updated and its duration prolonged,\n // update to total duration of current animations run (for progress event)\n anims.duration = item._total;\n }\n item.tick(date);\n draw = true;\n } else {\n // Remove the item by replacing it with last item and removing the last\n // A lot faster than splice.\n items[i] = items[items.length - 1];\n items.pop();\n }\n }\n\n if (draw) {\n chart.draw();\n this._notify(chart, anims, date, 'progress');\n }\n\n if (!items.length) {\n anims.running = false;\n this._notify(chart, anims, date, 'complete');\n anims.initial = false;\n }\n\n remaining += items.length;\n });\n\n this._lastDate = date;\n\n if (remaining === 0) {\n this._running = false;\n }\n }\n\n /**\n\t * @private\n\t */\n _getAnims(chart) {\n const charts = this._charts;\n let anims = charts.get(chart);\n if (!anims) {\n anims = {\n running: false,\n initial: true,\n items: [],\n listeners: {\n complete: [],\n progress: []\n }\n };\n charts.set(chart, anims);\n }\n return anims;\n }\n\n /**\n\t * @param {Chart} chart\n\t * @param {string} event - event name\n\t * @param {Function} cb - callback\n\t */\n listen(chart, event, cb) {\n this._getAnims(chart).listeners[event].push(cb);\n }\n\n /**\n\t * Add animations\n\t * @param {Chart} chart\n\t * @param {Animation[]} items - animations\n\t */\n add(chart, items) {\n if (!items || !items.length) {\n return;\n }\n this._getAnims(chart).items.push(...items);\n }\n\n /**\n\t * Counts number of active animations for the chart\n\t * @param {Chart} chart\n\t */\n has(chart) {\n return this._getAnims(chart).items.length > 0;\n }\n\n /**\n\t * Start animating (all charts)\n\t * @param {Chart} chart\n\t */\n start(chart) {\n const anims = this._charts.get(chart);\n if (!anims) {\n return;\n }\n anims.running = true;\n anims.start = Date.now();\n anims.duration = anims.items.reduce((acc, cur) => Math.max(acc, cur._duration), 0);\n this._refresh();\n }\n\n running(chart) {\n if (!this._running) {\n return false;\n }\n const anims = this._charts.get(chart);\n if (!anims || !anims.running || !anims.items.length) {\n return false;\n }\n return true;\n }\n\n /**\n\t * Stop all animations for the chart\n\t * @param {Chart} chart\n\t */\n stop(chart) {\n const anims = this._charts.get(chart);\n if (!anims || !anims.items.length) {\n return;\n }\n const items = anims.items;\n let i = items.length - 1;\n\n for (; i >= 0; --i) {\n items[i].cancel();\n }\n anims.items = [];\n this._notify(chart, anims, Date.now(), 'complete');\n }\n\n /**\n\t * Remove chart from Animator\n\t * @param {Chart} chart\n\t */\n remove(chart) {\n return this._charts.delete(chart);\n }\n}\n\n// singleton instance\nexport default /* #__PURE__ */ new Animator();\n","import effects from '../helpers/helpers.easing.js';\nimport {resolve} from '../helpers/helpers.options.js';\nimport {color as helpersColor} from '../helpers/helpers.color.js';\n\nconst transparent = 'transparent';\nconst interpolators = {\n boolean(from, to, factor) {\n return factor > 0.5 ? to : from;\n },\n /**\n * @param {string} from\n * @param {string} to\n * @param {number} factor\n */\n color(from, to, factor) {\n const c0 = helpersColor(from || transparent);\n const c1 = c0.valid && helpersColor(to || transparent);\n return c1 && c1.valid\n ? c1.mix(c0, factor).hexString()\n : to;\n },\n number(from, to, factor) {\n return from + (to - from) * factor;\n }\n};\n\nexport default class Animation {\n constructor(cfg, target, prop, to) {\n const currentValue = target[prop];\n\n to = resolve([cfg.to, to, currentValue, cfg.from]);\n const from = resolve([cfg.from, currentValue, to]);\n\n this._active = true;\n this._fn = cfg.fn || interpolators[cfg.type || typeof from];\n this._easing = effects[cfg.easing] || effects.linear;\n this._start = Math.floor(Date.now() + (cfg.delay || 0));\n this._duration = this._total = Math.floor(cfg.duration);\n this._loop = !!cfg.loop;\n this._target = target;\n this._prop = prop;\n this._from = from;\n this._to = to;\n this._promises = undefined;\n }\n\n active() {\n return this._active;\n }\n\n update(cfg, to, date) {\n if (this._active) {\n this._notify(false);\n\n const currentValue = this._target[this._prop];\n const elapsed = date - this._start;\n const remain = this._duration - elapsed;\n this._start = date;\n this._duration = Math.floor(Math.max(remain, cfg.duration));\n this._total += elapsed;\n this._loop = !!cfg.loop;\n this._to = resolve([cfg.to, to, currentValue, cfg.from]);\n this._from = resolve([cfg.from, currentValue, to]);\n }\n }\n\n cancel() {\n if (this._active) {\n // update current evaluated value, for smoother animations\n this.tick(Date.now());\n this._active = false;\n this._notify(false);\n }\n }\n\n tick(date) {\n const elapsed = date - this._start;\n const duration = this._duration;\n const prop = this._prop;\n const from = this._from;\n const loop = this._loop;\n const to = this._to;\n let factor;\n\n this._active = from !== to && (loop || (elapsed < duration));\n\n if (!this._active) {\n this._target[prop] = to;\n this._notify(true);\n return;\n }\n\n if (elapsed < 0) {\n this._target[prop] = from;\n return;\n }\n\n factor = (elapsed / duration) % 2;\n factor = loop && factor > 1 ? 2 - factor : factor;\n factor = this._easing(Math.min(1, Math.max(0, factor)));\n\n this._target[prop] = this._fn(from, to, factor);\n }\n\n wait() {\n const promises = this._promises || (this._promises = []);\n return new Promise((res, rej) => {\n promises.push({res, rej});\n });\n }\n\n _notify(resolved) {\n const method = resolved ? 'res' : 'rej';\n const promises = this._promises || [];\n for (let i = 0; i < promises.length; i++) {\n promises[i][method]();\n }\n }\n}\n","import animator from './core.animator.js';\nimport Animation from './core.animation.js';\nimport defaults from './core.defaults.js';\nimport {isArray, isObject} from '../helpers/helpers.core.js';\n\nexport default class Animations {\n constructor(chart, config) {\n this._chart = chart;\n this._properties = new Map();\n this.configure(config);\n }\n\n configure(config) {\n if (!isObject(config)) {\n return;\n }\n\n const animationOptions = Object.keys(defaults.animation);\n const animatedProps = this._properties;\n\n Object.getOwnPropertyNames(config).forEach(key => {\n const cfg = config[key];\n if (!isObject(cfg)) {\n return;\n }\n const resolved = {};\n for (const option of animationOptions) {\n resolved[option] = cfg[option];\n }\n\n (isArray(cfg.properties) && cfg.properties || [key]).forEach((prop) => {\n if (prop === key || !animatedProps.has(prop)) {\n animatedProps.set(prop, resolved);\n }\n });\n });\n }\n\n /**\n\t * Utility to handle animation of `options`.\n\t * @private\n\t */\n _animateOptions(target, values) {\n const newOptions = values.options;\n const options = resolveTargetOptions(target, newOptions);\n if (!options) {\n return [];\n }\n\n const animations = this._createAnimations(options, newOptions);\n if (newOptions.$shared) {\n // Going to shared options:\n // After all animations are done, assign the shared options object to the element\n // So any new updates to the shared options are observed\n awaitAll(target.options.$animations, newOptions).then(() => {\n target.options = newOptions;\n }, () => {\n // rejected, noop\n });\n }\n\n return animations;\n }\n\n /**\n\t * @private\n\t */\n _createAnimations(target, values) {\n const animatedProps = this._properties;\n const animations = [];\n const running = target.$animations || (target.$animations = {});\n const props = Object.keys(values);\n const date = Date.now();\n let i;\n\n for (i = props.length - 1; i >= 0; --i) {\n const prop = props[i];\n if (prop.charAt(0) === '$') {\n continue;\n }\n\n if (prop === 'options') {\n animations.push(...this._animateOptions(target, values));\n continue;\n }\n const value = values[prop];\n let animation = running[prop];\n const cfg = animatedProps.get(prop);\n\n if (animation) {\n if (cfg && animation.active()) {\n // There is an existing active animation, let's update that\n animation.update(cfg, value, date);\n continue;\n } else {\n animation.cancel();\n }\n }\n if (!cfg || !cfg.duration) {\n // not animated, set directly to new value\n target[prop] = value;\n continue;\n }\n\n running[prop] = animation = new Animation(cfg, target, prop, value);\n animations.push(animation);\n }\n return animations;\n }\n\n\n /**\n\t * Update `target` properties to new values, using configured animations\n\t * @param {object} target - object to update\n\t * @param {object} values - new target properties\n\t * @returns {boolean|undefined} - `true` if animations were started\n\t **/\n update(target, values) {\n if (this._properties.size === 0) {\n // Nothing is animated, just apply the new values.\n Object.assign(target, values);\n return;\n }\n\n const animations = this._createAnimations(target, values);\n\n if (animations.length) {\n animator.add(this._chart, animations);\n return true;\n }\n }\n}\n\nfunction awaitAll(animations, properties) {\n const running = [];\n const keys = Object.keys(properties);\n for (let i = 0; i < keys.length; i++) {\n const anim = animations[keys[i]];\n if (anim && anim.active()) {\n running.push(anim.wait());\n }\n }\n // @ts-ignore\n return Promise.all(running);\n}\n\nfunction resolveTargetOptions(target, newOptions) {\n if (!newOptions) {\n return;\n }\n let options = target.options;\n if (!options) {\n target.options = newOptions;\n return;\n }\n if (options.$shared) {\n // Going from shared options to distinct one:\n // Create new options object containing the old shared values and start updating that.\n target.options = options = Object.assign({}, options, {$shared: false, $animations: {}});\n }\n return options;\n}\n","import Animations from './core.animations.js';\nimport defaults from './core.defaults.js';\nimport {isArray, isFinite, isObject, valueOrDefault, resolveObjectKey, defined} from '../helpers/helpers.core.js';\nimport {listenArrayEvents, unlistenArrayEvents} from '../helpers/helpers.collection.js';\nimport {createContext, sign} from '../helpers/index.js';\n\n/**\n * @typedef { import('./core.controller.js').default } Chart\n * @typedef { import('./core.scale.js').default } Scale\n */\n\nfunction scaleClip(scale, allowedOverflow) {\n const opts = scale && scale.options || {};\n const reverse = opts.reverse;\n const min = opts.min === undefined ? allowedOverflow : 0;\n const max = opts.max === undefined ? allowedOverflow : 0;\n return {\n start: reverse ? max : min,\n end: reverse ? min : max\n };\n}\n\nfunction defaultClip(xScale, yScale, allowedOverflow) {\n if (allowedOverflow === false) {\n return false;\n }\n const x = scaleClip(xScale, allowedOverflow);\n const y = scaleClip(yScale, allowedOverflow);\n\n return {\n top: y.end,\n right: x.end,\n bottom: y.start,\n left: x.start\n };\n}\n\nfunction toClip(value) {\n let t, r, b, l;\n\n if (isObject(value)) {\n t = value.top;\n r = value.right;\n b = value.bottom;\n l = value.left;\n } else {\n t = r = b = l = value;\n }\n\n return {\n top: t,\n right: r,\n bottom: b,\n left: l,\n disabled: value === false\n };\n}\n\nfunction getSortedDatasetIndices(chart, filterVisible) {\n const keys = [];\n const metasets = chart._getSortedDatasetMetas(filterVisible);\n let i, ilen;\n\n for (i = 0, ilen = metasets.length; i < ilen; ++i) {\n keys.push(metasets[i].index);\n }\n return keys;\n}\n\nfunction applyStack(stack, value, dsIndex, options = {}) {\n const keys = stack.keys;\n const singleMode = options.mode === 'single';\n let i, ilen, datasetIndex, otherValue;\n\n if (value === null) {\n return;\n }\n\n for (i = 0, ilen = keys.length; i < ilen; ++i) {\n datasetIndex = +keys[i];\n if (datasetIndex === dsIndex) {\n if (options.all) {\n continue;\n }\n break;\n }\n otherValue = stack.values[datasetIndex];\n if (isFinite(otherValue) && (singleMode || (value === 0 || sign(value) === sign(otherValue)))) {\n value += otherValue;\n }\n }\n return value;\n}\n\nfunction convertObjectDataToArray(data, meta) {\n const {iScale, vScale} = meta;\n const iAxisKey = iScale.axis === 'x' ? 'x' : 'y';\n const vAxisKey = vScale.axis === 'x' ? 'x' : 'y';\n const keys = Object.keys(data);\n const adata = new Array(keys.length);\n let i, ilen, key;\n for (i = 0, ilen = keys.length; i < ilen; ++i) {\n key = keys[i];\n adata[i] = {\n [iAxisKey]: key,\n [vAxisKey]: data[key]\n };\n }\n return adata;\n}\n\nfunction isStacked(scale, meta) {\n const stacked = scale && scale.options.stacked;\n return stacked || (stacked === undefined && meta.stack !== undefined);\n}\n\nfunction getStackKey(indexScale, valueScale, meta) {\n return `${indexScale.id}.${valueScale.id}.${meta.stack || meta.type}`;\n}\n\nfunction getUserBounds(scale) {\n const {min, max, minDefined, maxDefined} = scale.getUserBounds();\n return {\n min: minDefined ? min : Number.NEGATIVE_INFINITY,\n max: maxDefined ? max : Number.POSITIVE_INFINITY\n };\n}\n\nfunction getOrCreateStack(stacks, stackKey, indexValue) {\n const subStack = stacks[stackKey] || (stacks[stackKey] = {});\n return subStack[indexValue] || (subStack[indexValue] = {});\n}\n\nfunction getLastIndexInStack(stack, vScale, positive, type) {\n for (const meta of vScale.getMatchingVisibleMetas(type).reverse()) {\n const value = stack[meta.index];\n if ((positive && value > 0) || (!positive && value < 0)) {\n return meta.index;\n }\n }\n\n return null;\n}\n\nfunction updateStacks(controller, parsed) {\n const {chart, _cachedMeta: meta} = controller;\n const stacks = chart._stacks || (chart._stacks = {}); // map structure is {stackKey: {datasetIndex: value}}\n const {iScale, vScale, index: datasetIndex} = meta;\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const key = getStackKey(iScale, vScale, meta);\n const ilen = parsed.length;\n let stack;\n\n for (let i = 0; i < ilen; ++i) {\n const item = parsed[i];\n const {[iAxis]: index, [vAxis]: value} = item;\n const itemStacks = item._stacks || (item._stacks = {});\n stack = itemStacks[vAxis] = getOrCreateStack(stacks, key, index);\n stack[datasetIndex] = value;\n\n stack._top = getLastIndexInStack(stack, vScale, true, meta.type);\n stack._bottom = getLastIndexInStack(stack, vScale, false, meta.type);\n\n const visualValues = stack._visualValues || (stack._visualValues = {});\n visualValues[datasetIndex] = value;\n }\n}\n\nfunction getFirstScaleId(chart, axis) {\n const scales = chart.scales;\n return Object.keys(scales).filter(key => scales[key].axis === axis).shift();\n}\n\nfunction createDatasetContext(parent, index) {\n return createContext(parent,\n {\n active: false,\n dataset: undefined,\n datasetIndex: index,\n index,\n mode: 'default',\n type: 'dataset'\n }\n );\n}\n\nfunction createDataContext(parent, index, element) {\n return createContext(parent, {\n active: false,\n dataIndex: index,\n parsed: undefined,\n raw: undefined,\n element,\n index,\n mode: 'default',\n type: 'data'\n });\n}\n\nfunction clearStacks(meta, items) {\n // Not using meta.index here, because it might be already updated if the dataset changed location\n const datasetIndex = meta.controller.index;\n const axis = meta.vScale && meta.vScale.axis;\n if (!axis) {\n return;\n }\n\n items = items || meta._parsed;\n for (const parsed of items) {\n const stacks = parsed._stacks;\n if (!stacks || stacks[axis] === undefined || stacks[axis][datasetIndex] === undefined) {\n return;\n }\n delete stacks[axis][datasetIndex];\n if (stacks[axis]._visualValues !== undefined && stacks[axis]._visualValues[datasetIndex] !== undefined) {\n delete stacks[axis]._visualValues[datasetIndex];\n }\n }\n}\n\nconst isDirectUpdateMode = (mode) => mode === 'reset' || mode === 'none';\nconst cloneIfNotShared = (cached, shared) => shared ? cached : Object.assign({}, cached);\nconst createStack = (canStack, meta, chart) => canStack && !meta.hidden && meta._stacked\n && {keys: getSortedDatasetIndices(chart, true), values: null};\n\nexport default class DatasetController {\n\n /**\n * @type {any}\n */\n static defaults = {};\n\n /**\n * Element type used to generate a meta dataset (e.g. Chart.element.LineElement).\n */\n static datasetElementType = null;\n\n /**\n * Element type used to generate a meta data (e.g. Chart.element.PointElement).\n */\n static dataElementType = null;\n\n /**\n\t * @param {Chart} chart\n\t * @param {number} datasetIndex\n\t */\n constructor(chart, datasetIndex) {\n this.chart = chart;\n this._ctx = chart.ctx;\n this.index = datasetIndex;\n this._cachedDataOpts = {};\n this._cachedMeta = this.getMeta();\n this._type = this._cachedMeta.type;\n this.options = undefined;\n /** @type {boolean | object} */\n this._parsing = false;\n this._data = undefined;\n this._objectData = undefined;\n this._sharedOptions = undefined;\n this._drawStart = undefined;\n this._drawCount = undefined;\n this.enableOptionSharing = false;\n this.supportsDecimation = false;\n this.$context = undefined;\n this._syncList = [];\n this.datasetElementType = new.target.datasetElementType;\n this.dataElementType = new.target.dataElementType;\n\n this.initialize();\n }\n\n initialize() {\n const meta = this._cachedMeta;\n this.configure();\n this.linkScales();\n meta._stacked = isStacked(meta.vScale, meta);\n this.addElements();\n\n if (this.options.fill && !this.chart.isPluginEnabled('filler')) {\n console.warn(\"Tried to use the 'fill' option without the 'Filler' plugin enabled. Please import and register the 'Filler' plugin and make sure it is not disabled in the options\");\n }\n }\n\n updateIndex(datasetIndex) {\n if (this.index !== datasetIndex) {\n clearStacks(this._cachedMeta);\n }\n this.index = datasetIndex;\n }\n\n linkScales() {\n const chart = this.chart;\n const meta = this._cachedMeta;\n const dataset = this.getDataset();\n\n const chooseId = (axis, x, y, r) => axis === 'x' ? x : axis === 'r' ? r : y;\n\n const xid = meta.xAxisID = valueOrDefault(dataset.xAxisID, getFirstScaleId(chart, 'x'));\n const yid = meta.yAxisID = valueOrDefault(dataset.yAxisID, getFirstScaleId(chart, 'y'));\n const rid = meta.rAxisID = valueOrDefault(dataset.rAxisID, getFirstScaleId(chart, 'r'));\n const indexAxis = meta.indexAxis;\n const iid = meta.iAxisID = chooseId(indexAxis, xid, yid, rid);\n const vid = meta.vAxisID = chooseId(indexAxis, yid, xid, rid);\n meta.xScale = this.getScaleForId(xid);\n meta.yScale = this.getScaleForId(yid);\n meta.rScale = this.getScaleForId(rid);\n meta.iScale = this.getScaleForId(iid);\n meta.vScale = this.getScaleForId(vid);\n }\n\n getDataset() {\n return this.chart.data.datasets[this.index];\n }\n\n getMeta() {\n return this.chart.getDatasetMeta(this.index);\n }\n\n /**\n\t * @param {string} scaleID\n\t * @return {Scale}\n\t */\n getScaleForId(scaleID) {\n return this.chart.scales[scaleID];\n }\n\n /**\n\t * @private\n\t */\n _getOtherScale(scale) {\n const meta = this._cachedMeta;\n return scale === meta.iScale\n ? meta.vScale\n : meta.iScale;\n }\n\n reset() {\n this._update('reset');\n }\n\n /**\n\t * @private\n\t */\n _destroy() {\n const meta = this._cachedMeta;\n if (this._data) {\n unlistenArrayEvents(this._data, this);\n }\n if (meta._stacked) {\n clearStacks(meta);\n }\n }\n\n /**\n\t * @private\n\t */\n _dataCheck() {\n const dataset = this.getDataset();\n const data = dataset.data || (dataset.data = []);\n const _data = this._data;\n\n // In order to correctly handle data addition/deletion animation (and thus simulate\n // real-time charts), we need to monitor these data modifications and synchronize\n // the internal metadata accordingly.\n\n if (isObject(data)) {\n const meta = this._cachedMeta;\n this._data = convertObjectDataToArray(data, meta);\n } else if (_data !== data) {\n if (_data) {\n // This case happens when the user replaced the data array instance.\n unlistenArrayEvents(_data, this);\n // Discard old parsed data and stacks\n const meta = this._cachedMeta;\n clearStacks(meta);\n meta._parsed = [];\n }\n if (data && Object.isExtensible(data)) {\n listenArrayEvents(data, this);\n }\n this._syncList = [];\n this._data = data;\n }\n }\n\n addElements() {\n const meta = this._cachedMeta;\n\n this._dataCheck();\n\n if (this.datasetElementType) {\n meta.dataset = new this.datasetElementType();\n }\n }\n\n buildOrUpdateElements(resetNewElements) {\n const meta = this._cachedMeta;\n const dataset = this.getDataset();\n let stackChanged = false;\n\n this._dataCheck();\n\n // make sure cached _stacked status is current\n const oldStacked = meta._stacked;\n meta._stacked = isStacked(meta.vScale, meta);\n\n // detect change in stack option\n if (meta.stack !== dataset.stack) {\n stackChanged = true;\n // remove values from old stack\n clearStacks(meta);\n meta.stack = dataset.stack;\n }\n\n // Re-sync meta data in case the user replaced the data array or if we missed\n // any updates and so make sure that we handle number of datapoints changing.\n this._resyncElements(resetNewElements);\n\n // if stack changed, update stack values for the whole dataset\n if (stackChanged || oldStacked !== meta._stacked) {\n updateStacks(this, meta._parsed);\n }\n }\n\n /**\n\t * Merges user-supplied and default dataset-level options\n\t * @private\n\t */\n configure() {\n const config = this.chart.config;\n const scopeKeys = config.datasetScopeKeys(this._type);\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys, true);\n this.options = config.createResolver(scopes, this.getContext());\n this._parsing = this.options.parsing;\n this._cachedDataOpts = {};\n }\n\n /**\n\t * @param {number} start\n\t * @param {number} count\n\t */\n parse(start, count) {\n const {_cachedMeta: meta, _data: data} = this;\n const {iScale, _stacked} = meta;\n const iAxis = iScale.axis;\n\n let sorted = start === 0 && count === data.length ? true : meta._sorted;\n let prev = start > 0 && meta._parsed[start - 1];\n let i, cur, parsed;\n\n if (this._parsing === false) {\n meta._parsed = data;\n meta._sorted = true;\n parsed = data;\n } else {\n if (isArray(data[start])) {\n parsed = this.parseArrayData(meta, data, start, count);\n } else if (isObject(data[start])) {\n parsed = this.parseObjectData(meta, data, start, count);\n } else {\n parsed = this.parsePrimitiveData(meta, data, start, count);\n }\n\n const isNotInOrderComparedToPrev = () => cur[iAxis] === null || (prev && cur[iAxis] < prev[iAxis]);\n for (i = 0; i < count; ++i) {\n meta._parsed[i + start] = cur = parsed[i];\n if (sorted) {\n if (isNotInOrderComparedToPrev()) {\n sorted = false;\n }\n prev = cur;\n }\n }\n meta._sorted = sorted;\n }\n\n if (_stacked) {\n updateStacks(this, parsed);\n }\n }\n\n /**\n\t * Parse array of primitive values\n\t * @param {object} meta - dataset meta\n\t * @param {array} data - data array. Example [1,3,4]\n\t * @param {number} start - start index\n\t * @param {number} count - number of items to parse\n\t * @returns {object} parsed item - item containing index and a parsed value\n\t * for each scale id.\n\t * Example: {xScale0: 0, yScale0: 1}\n\t * @protected\n\t */\n parsePrimitiveData(meta, data, start, count) {\n const {iScale, vScale} = meta;\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const labels = iScale.getLabels();\n const singleScale = iScale === vScale;\n const parsed = new Array(count);\n let i, ilen, index;\n\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n parsed[i] = {\n [iAxis]: singleScale || iScale.parse(labels[index], index),\n [vAxis]: vScale.parse(data[index], index)\n };\n }\n return parsed;\n }\n\n /**\n\t * Parse array of arrays\n\t * @param {object} meta - dataset meta\n\t * @param {array} data - data array. Example [[1,2],[3,4]]\n\t * @param {number} start - start index\n\t * @param {number} count - number of items to parse\n\t * @returns {object} parsed item - item containing index and a parsed value\n\t * for each scale id.\n\t * Example: {x: 0, y: 1}\n\t * @protected\n\t */\n parseArrayData(meta, data, start, count) {\n const {xScale, yScale} = meta;\n const parsed = new Array(count);\n let i, ilen, index, item;\n\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n item = data[index];\n parsed[i] = {\n x: xScale.parse(item[0], index),\n y: yScale.parse(item[1], index)\n };\n }\n return parsed;\n }\n\n /**\n\t * Parse array of objects\n\t * @param {object} meta - dataset meta\n\t * @param {array} data - data array. Example [{x:1, y:5}, {x:2, y:10}]\n\t * @param {number} start - start index\n\t * @param {number} count - number of items to parse\n\t * @returns {object} parsed item - item containing index and a parsed value\n\t * for each scale id. _custom is optional\n\t * Example: {xScale0: 0, yScale0: 1, _custom: {r: 10, foo: 'bar'}}\n\t * @protected\n\t */\n parseObjectData(meta, data, start, count) {\n const {xScale, yScale} = meta;\n const {xAxisKey = 'x', yAxisKey = 'y'} = this._parsing;\n const parsed = new Array(count);\n let i, ilen, index, item;\n\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n item = data[index];\n parsed[i] = {\n x: xScale.parse(resolveObjectKey(item, xAxisKey), index),\n y: yScale.parse(resolveObjectKey(item, yAxisKey), index)\n };\n }\n return parsed;\n }\n\n /**\n\t * @protected\n\t */\n getParsed(index) {\n return this._cachedMeta._parsed[index];\n }\n\n /**\n\t * @protected\n\t */\n getDataElement(index) {\n return this._cachedMeta.data[index];\n }\n\n /**\n\t * @protected\n\t */\n applyStack(scale, parsed, mode) {\n const chart = this.chart;\n const meta = this._cachedMeta;\n const value = parsed[scale.axis];\n const stack = {\n keys: getSortedDatasetIndices(chart, true),\n values: parsed._stacks[scale.axis]._visualValues\n };\n return applyStack(stack, value, meta.index, {mode});\n }\n\n /**\n\t * @protected\n\t */\n updateRangeFromParsed(range, scale, parsed, stack) {\n const parsedValue = parsed[scale.axis];\n let value = parsedValue === null ? NaN : parsedValue;\n const values = stack && parsed._stacks[scale.axis];\n if (stack && values) {\n stack.values = values;\n value = applyStack(stack, parsedValue, this._cachedMeta.index);\n }\n range.min = Math.min(range.min, value);\n range.max = Math.max(range.max, value);\n }\n\n /**\n\t * @protected\n\t */\n getMinMax(scale, canStack) {\n const meta = this._cachedMeta;\n const _parsed = meta._parsed;\n const sorted = meta._sorted && scale === meta.iScale;\n const ilen = _parsed.length;\n const otherScale = this._getOtherScale(scale);\n const stack = createStack(canStack, meta, this.chart);\n const range = {min: Number.POSITIVE_INFINITY, max: Number.NEGATIVE_INFINITY};\n const {min: otherMin, max: otherMax} = getUserBounds(otherScale);\n let i, parsed;\n\n function _skip() {\n parsed = _parsed[i];\n const otherValue = parsed[otherScale.axis];\n return !isFinite(parsed[scale.axis]) || otherMin > otherValue || otherMax < otherValue;\n }\n\n for (i = 0; i < ilen; ++i) {\n if (_skip()) {\n continue;\n }\n this.updateRangeFromParsed(range, scale, parsed, stack);\n if (sorted) {\n // if the data is sorted, we don't need to check further from this end of array\n break;\n }\n }\n if (sorted) {\n // in the sorted case, find first non-skipped value from other end of array\n for (i = ilen - 1; i >= 0; --i) {\n if (_skip()) {\n continue;\n }\n this.updateRangeFromParsed(range, scale, parsed, stack);\n break;\n }\n }\n return range;\n }\n\n getAllParsedValues(scale) {\n const parsed = this._cachedMeta._parsed;\n const values = [];\n let i, ilen, value;\n\n for (i = 0, ilen = parsed.length; i < ilen; ++i) {\n value = parsed[i][scale.axis];\n if (isFinite(value)) {\n values.push(value);\n }\n }\n return values;\n }\n\n /**\n\t * @return {number|boolean}\n\t * @protected\n\t */\n getMaxOverflow() {\n return false;\n }\n\n /**\n\t * @protected\n\t */\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const iScale = meta.iScale;\n const vScale = meta.vScale;\n const parsed = this.getParsed(index);\n return {\n label: iScale ? '' + iScale.getLabelForValue(parsed[iScale.axis]) : '',\n value: vScale ? '' + vScale.getLabelForValue(parsed[vScale.axis]) : ''\n };\n }\n\n /**\n\t * @private\n\t */\n _update(mode) {\n const meta = this._cachedMeta;\n this.update(mode || 'default');\n meta._clip = toClip(valueOrDefault(this.options.clip, defaultClip(meta.xScale, meta.yScale, this.getMaxOverflow())));\n }\n\n /**\n\t * @param {string} mode\n\t */\n update(mode) {} // eslint-disable-line no-unused-vars\n\n draw() {\n const ctx = this._ctx;\n const chart = this.chart;\n const meta = this._cachedMeta;\n const elements = meta.data || [];\n const area = chart.chartArea;\n const active = [];\n const start = this._drawStart || 0;\n const count = this._drawCount || (elements.length - start);\n const drawActiveElementsOnTop = this.options.drawActiveElementsOnTop;\n let i;\n\n if (meta.dataset) {\n meta.dataset.draw(ctx, area, start, count);\n }\n\n for (i = start; i < start + count; ++i) {\n const element = elements[i];\n if (element.hidden) {\n continue;\n }\n if (element.active && drawActiveElementsOnTop) {\n active.push(element);\n } else {\n element.draw(ctx, area);\n }\n }\n\n for (i = 0; i < active.length; ++i) {\n active[i].draw(ctx, area);\n }\n }\n\n /**\n\t * Returns a set of predefined style properties that should be used to represent the dataset\n\t * or the data if the index is specified\n\t * @param {number} index - data index\n\t * @param {boolean} [active] - true if hover\n\t * @return {object} style object\n\t */\n getStyle(index, active) {\n const mode = active ? 'active' : 'default';\n return index === undefined && this._cachedMeta.dataset\n ? this.resolveDatasetElementOptions(mode)\n : this.resolveDataElementOptions(index || 0, mode);\n }\n\n /**\n\t * @protected\n\t */\n getContext(index, active, mode) {\n const dataset = this.getDataset();\n let context;\n if (index >= 0 && index < this._cachedMeta.data.length) {\n const element = this._cachedMeta.data[index];\n context = element.$context ||\n (element.$context = createDataContext(this.getContext(), index, element));\n context.parsed = this.getParsed(index);\n context.raw = dataset.data[index];\n context.index = context.dataIndex = index;\n } else {\n context = this.$context ||\n (this.$context = createDatasetContext(this.chart.getContext(), this.index));\n context.dataset = dataset;\n context.index = context.datasetIndex = this.index;\n }\n\n context.active = !!active;\n context.mode = mode;\n return context;\n }\n\n /**\n\t * @param {string} [mode]\n\t * @protected\n\t */\n resolveDatasetElementOptions(mode) {\n return this._resolveElementOptions(this.datasetElementType.id, mode);\n }\n\n /**\n\t * @param {number} index\n\t * @param {string} [mode]\n\t * @protected\n\t */\n resolveDataElementOptions(index, mode) {\n return this._resolveElementOptions(this.dataElementType.id, mode, index);\n }\n\n /**\n\t * @private\n\t */\n _resolveElementOptions(elementType, mode = 'default', index) {\n const active = mode === 'active';\n const cache = this._cachedDataOpts;\n const cacheKey = elementType + '-' + mode;\n const cached = cache[cacheKey];\n const sharing = this.enableOptionSharing && defined(index);\n if (cached) {\n return cloneIfNotShared(cached, sharing);\n }\n const config = this.chart.config;\n const scopeKeys = config.datasetElementScopeKeys(this._type, elementType);\n const prefixes = active ? [`${elementType}Hover`, 'hover', elementType, ''] : [elementType, ''];\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys);\n const names = Object.keys(defaults.elements[elementType]);\n // context is provided as a function, and is called only if needed,\n // so we don't create a context for each element if not needed.\n const context = () => this.getContext(index, active, mode);\n const values = config.resolveNamedOptions(scopes, names, context, prefixes);\n\n if (values.$shared) {\n // `$shared` indicates this set of options can be shared between multiple elements.\n // Sharing is used to reduce number of properties to change during animation.\n values.$shared = sharing;\n\n // We cache options by `mode`, which can be 'active' for example. This enables us\n // to have the 'active' element options and 'default' options to switch between\n // when interacting.\n cache[cacheKey] = Object.freeze(cloneIfNotShared(values, sharing));\n }\n\n return values;\n }\n\n\n /**\n\t * @private\n\t */\n _resolveAnimations(index, transition, active) {\n const chart = this.chart;\n const cache = this._cachedDataOpts;\n const cacheKey = `animation-${transition}`;\n const cached = cache[cacheKey];\n if (cached) {\n return cached;\n }\n let options;\n if (chart.options.animation !== false) {\n const config = this.chart.config;\n const scopeKeys = config.datasetAnimationScopeKeys(this._type, transition);\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys);\n options = config.createResolver(scopes, this.getContext(index, active, transition));\n }\n const animations = new Animations(chart, options && options.animations);\n if (options && options._cacheable) {\n cache[cacheKey] = Object.freeze(animations);\n }\n return animations;\n }\n\n /**\n\t * Utility for getting the options object shared between elements\n\t * @protected\n\t */\n getSharedOptions(options) {\n if (!options.$shared) {\n return;\n }\n return this._sharedOptions || (this._sharedOptions = Object.assign({}, options));\n }\n\n /**\n\t * Utility for determining if `options` should be included in the updated properties\n\t * @protected\n\t */\n includeOptions(mode, sharedOptions) {\n return !sharedOptions || isDirectUpdateMode(mode) || this.chart._animationsDisabled;\n }\n\n /**\n * @todo v4, rename to getSharedOptions and remove excess functions\n */\n _getSharedOptions(start, mode) {\n const firstOpts = this.resolveDataElementOptions(start, mode);\n const previouslySharedOptions = this._sharedOptions;\n const sharedOptions = this.getSharedOptions(firstOpts);\n const includeOptions = this.includeOptions(mode, sharedOptions) || (sharedOptions !== previouslySharedOptions);\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\n return {sharedOptions, includeOptions};\n }\n\n /**\n\t * Utility for updating an element with new properties, using animations when appropriate.\n\t * @protected\n\t */\n updateElement(element, index, properties, mode) {\n if (isDirectUpdateMode(mode)) {\n Object.assign(element, properties);\n } else {\n this._resolveAnimations(index, mode).update(element, properties);\n }\n }\n\n /**\n\t * Utility to animate the shared options, that are potentially affecting multiple elements.\n\t * @protected\n\t */\n updateSharedOptions(sharedOptions, mode, newOptions) {\n if (sharedOptions && !isDirectUpdateMode(mode)) {\n this._resolveAnimations(undefined, mode).update(sharedOptions, newOptions);\n }\n }\n\n /**\n\t * @private\n\t */\n _setStyle(element, index, mode, active) {\n element.active = active;\n const options = this.getStyle(index, active);\n this._resolveAnimations(index, mode, active).update(element, {\n // When going from active to inactive, we need to update to the shared options.\n // This way the once hovered element will end up with the same original shared options instance, after animation.\n options: (!active && this.getSharedOptions(options)) || options\n });\n }\n\n removeHoverStyle(element, datasetIndex, index) {\n this._setStyle(element, index, 'active', false);\n }\n\n setHoverStyle(element, datasetIndex, index) {\n this._setStyle(element, index, 'active', true);\n }\n\n /**\n\t * @private\n\t */\n _removeDatasetHoverStyle() {\n const element = this._cachedMeta.dataset;\n\n if (element) {\n this._setStyle(element, undefined, 'active', false);\n }\n }\n\n /**\n\t * @private\n\t */\n _setDatasetHoverStyle() {\n const element = this._cachedMeta.dataset;\n\n if (element) {\n this._setStyle(element, undefined, 'active', true);\n }\n }\n\n /**\n\t * @private\n\t */\n _resyncElements(resetNewElements) {\n const data = this._data;\n const elements = this._cachedMeta.data;\n\n // Apply changes detected through array listeners\n for (const [method, arg1, arg2] of this._syncList) {\n this[method](arg1, arg2);\n }\n this._syncList = [];\n\n const numMeta = elements.length;\n const numData = data.length;\n const count = Math.min(numData, numMeta);\n\n if (count) {\n // TODO: It is not optimal to always parse the old data\n // This is done because we are not detecting direct assignments:\n // chart.data.datasets[0].data[5] = 10;\n // chart.data.datasets[0].data[5].y = 10;\n this.parse(0, count);\n }\n\n if (numData > numMeta) {\n this._insertElements(numMeta, numData - numMeta, resetNewElements);\n } else if (numData < numMeta) {\n this._removeElements(numData, numMeta - numData);\n }\n }\n\n /**\n\t * @private\n\t */\n _insertElements(start, count, resetNewElements = true) {\n const meta = this._cachedMeta;\n const data = meta.data;\n const end = start + count;\n let i;\n\n const move = (arr) => {\n arr.length += count;\n for (i = arr.length - 1; i >= end; i--) {\n arr[i] = arr[i - count];\n }\n };\n move(data);\n\n for (i = start; i < end; ++i) {\n data[i] = new this.dataElementType();\n }\n\n if (this._parsing) {\n move(meta._parsed);\n }\n this.parse(start, count);\n\n if (resetNewElements) {\n this.updateElements(data, start, count, 'reset');\n }\n }\n\n updateElements(element, start, count, mode) {} // eslint-disable-line no-unused-vars\n\n /**\n\t * @private\n\t */\n _removeElements(start, count) {\n const meta = this._cachedMeta;\n if (this._parsing) {\n const removed = meta._parsed.splice(start, count);\n if (meta._stacked) {\n clearStacks(meta, removed);\n }\n }\n meta.data.splice(start, count);\n }\n\n /**\n\t * @private\n */\n _sync(args) {\n if (this._parsing) {\n this._syncList.push(args);\n } else {\n const [method, arg1, arg2] = args;\n this[method](arg1, arg2);\n }\n this.chart._dataChanges.push([this.index, ...args]);\n }\n\n _onDataPush() {\n const count = arguments.length;\n this._sync(['_insertElements', this.getDataset().data.length - count, count]);\n }\n\n _onDataPop() {\n this._sync(['_removeElements', this._cachedMeta.data.length - 1, 1]);\n }\n\n _onDataShift() {\n this._sync(['_removeElements', 0, 1]);\n }\n\n _onDataSplice(start, count) {\n if (count) {\n this._sync(['_removeElements', start, count]);\n }\n const newCount = arguments.length - 2;\n if (newCount) {\n this._sync(['_insertElements', start, newCount]);\n }\n }\n\n _onDataUnshift() {\n this._sync(['_insertElements', 0, arguments.length]);\n }\n}\n","import DatasetController from '../core/core.datasetController.js';\nimport {\n _arrayUnique, isArray, isNullOrUndef,\n valueOrDefault, resolveObjectKey, sign, defined\n} from '../helpers/index.js';\n\nfunction getAllScaleValues(scale, type) {\n if (!scale._cache.$bar) {\n const visibleMetas = scale.getMatchingVisibleMetas(type);\n let values = [];\n\n for (let i = 0, ilen = visibleMetas.length; i < ilen; i++) {\n values = values.concat(visibleMetas[i].controller.getAllParsedValues(scale));\n }\n scale._cache.$bar = _arrayUnique(values.sort((a, b) => a - b));\n }\n return scale._cache.$bar;\n}\n\n/**\n * Computes the \"optimal\" sample size to maintain bars equally sized while preventing overlap.\n * @private\n */\nfunction computeMinSampleSize(meta) {\n const scale = meta.iScale;\n const values = getAllScaleValues(scale, meta.type);\n let min = scale._length;\n let i, ilen, curr, prev;\n const updateMinAndPrev = () => {\n if (curr === 32767 || curr === -32768) {\n // Ignore truncated pixels\n return;\n }\n if (defined(prev)) {\n // curr - prev === 0 is ignored\n min = Math.min(min, Math.abs(curr - prev) || min);\n }\n prev = curr;\n };\n\n for (i = 0, ilen = values.length; i < ilen; ++i) {\n curr = scale.getPixelForValue(values[i]);\n updateMinAndPrev();\n }\n\n prev = undefined;\n for (i = 0, ilen = scale.ticks.length; i < ilen; ++i) {\n curr = scale.getPixelForTick(i);\n updateMinAndPrev();\n }\n\n return min;\n}\n\n/**\n * Computes an \"ideal\" category based on the absolute bar thickness or, if undefined or null,\n * uses the smallest interval (see computeMinSampleSize) that prevents bar overlapping. This\n * mode currently always generates bars equally sized (until we introduce scriptable options?).\n * @private\n */\nfunction computeFitCategoryTraits(index, ruler, options, stackCount) {\n const thickness = options.barThickness;\n let size, ratio;\n\n if (isNullOrUndef(thickness)) {\n size = ruler.min * options.categoryPercentage;\n ratio = options.barPercentage;\n } else {\n // When bar thickness is enforced, category and bar percentages are ignored.\n // Note(SB): we could add support for relative bar thickness (e.g. barThickness: '50%')\n // and deprecate barPercentage since this value is ignored when thickness is absolute.\n size = thickness * stackCount;\n ratio = 1;\n }\n\n return {\n chunk: size / stackCount,\n ratio,\n start: ruler.pixels[index] - (size / 2)\n };\n}\n\n/**\n * Computes an \"optimal\" category that globally arranges bars side by side (no gap when\n * percentage options are 1), based on the previous and following categories. This mode\n * generates bars with different widths when data are not evenly spaced.\n * @private\n */\nfunction computeFlexCategoryTraits(index, ruler, options, stackCount) {\n const pixels = ruler.pixels;\n const curr = pixels[index];\n let prev = index > 0 ? pixels[index - 1] : null;\n let next = index < pixels.length - 1 ? pixels[index + 1] : null;\n const percent = options.categoryPercentage;\n\n if (prev === null) {\n // first data: its size is double based on the next point or,\n // if it's also the last data, we use the scale size.\n prev = curr - (next === null ? ruler.end - ruler.start : next - curr);\n }\n\n if (next === null) {\n // last data: its size is also double based on the previous point.\n next = curr + curr - prev;\n }\n\n const start = curr - (curr - Math.min(prev, next)) / 2 * percent;\n const size = Math.abs(next - prev) / 2 * percent;\n\n return {\n chunk: size / stackCount,\n ratio: options.barPercentage,\n start\n };\n}\n\nfunction parseFloatBar(entry, item, vScale, i) {\n const startValue = vScale.parse(entry[0], i);\n const endValue = vScale.parse(entry[1], i);\n const min = Math.min(startValue, endValue);\n const max = Math.max(startValue, endValue);\n let barStart = min;\n let barEnd = max;\n\n if (Math.abs(min) > Math.abs(max)) {\n barStart = max;\n barEnd = min;\n }\n\n // Store `barEnd` (furthest away from origin) as parsed value,\n // to make stacking straight forward\n item[vScale.axis] = barEnd;\n\n item._custom = {\n barStart,\n barEnd,\n start: startValue,\n end: endValue,\n min,\n max\n };\n}\n\nfunction parseValue(entry, item, vScale, i) {\n if (isArray(entry)) {\n parseFloatBar(entry, item, vScale, i);\n } else {\n item[vScale.axis] = vScale.parse(entry, i);\n }\n return item;\n}\n\nfunction parseArrayOrPrimitive(meta, data, start, count) {\n const iScale = meta.iScale;\n const vScale = meta.vScale;\n const labels = iScale.getLabels();\n const singleScale = iScale === vScale;\n const parsed = [];\n let i, ilen, item, entry;\n\n for (i = start, ilen = start + count; i < ilen; ++i) {\n entry = data[i];\n item = {};\n item[iScale.axis] = singleScale || iScale.parse(labels[i], i);\n parsed.push(parseValue(entry, item, vScale, i));\n }\n return parsed;\n}\n\nfunction isFloatBar(custom) {\n return custom && custom.barStart !== undefined && custom.barEnd !== undefined;\n}\n\nfunction barSign(size, vScale, actualBase) {\n if (size !== 0) {\n return sign(size);\n }\n return (vScale.isHorizontal() ? 1 : -1) * (vScale.min >= actualBase ? 1 : -1);\n}\n\nfunction borderProps(properties) {\n let reverse, start, end, top, bottom;\n if (properties.horizontal) {\n reverse = properties.base > properties.x;\n start = 'left';\n end = 'right';\n } else {\n reverse = properties.base < properties.y;\n start = 'bottom';\n end = 'top';\n }\n if (reverse) {\n top = 'end';\n bottom = 'start';\n } else {\n top = 'start';\n bottom = 'end';\n }\n return {start, end, reverse, top, bottom};\n}\n\nfunction setBorderSkipped(properties, options, stack, index) {\n let edge = options.borderSkipped;\n const res = {};\n\n if (!edge) {\n properties.borderSkipped = res;\n return;\n }\n\n if (edge === true) {\n properties.borderSkipped = {top: true, right: true, bottom: true, left: true};\n return;\n }\n\n const {start, end, reverse, top, bottom} = borderProps(properties);\n\n if (edge === 'middle' && stack) {\n properties.enableBorderRadius = true;\n if ((stack._top || 0) === index) {\n edge = top;\n } else if ((stack._bottom || 0) === index) {\n edge = bottom;\n } else {\n res[parseEdge(bottom, start, end, reverse)] = true;\n edge = top;\n }\n }\n\n res[parseEdge(edge, start, end, reverse)] = true;\n properties.borderSkipped = res;\n}\n\nfunction parseEdge(edge, a, b, reverse) {\n if (reverse) {\n edge = swap(edge, a, b);\n edge = startEnd(edge, b, a);\n } else {\n edge = startEnd(edge, a, b);\n }\n return edge;\n}\n\nfunction swap(orig, v1, v2) {\n return orig === v1 ? v2 : orig === v2 ? v1 : orig;\n}\n\nfunction startEnd(v, start, end) {\n return v === 'start' ? start : v === 'end' ? end : v;\n}\n\nfunction setInflateAmount(properties, {inflateAmount}, ratio) {\n properties.inflateAmount = inflateAmount === 'auto'\n ? ratio === 1 ? 0.33 : 0\n : inflateAmount;\n}\n\nexport default class BarController extends DatasetController {\n\n static id = 'bar';\n\n /**\n * @type {any}\n */\n static defaults = {\n datasetElementType: false,\n dataElementType: 'bar',\n\n categoryPercentage: 0.8,\n barPercentage: 0.9,\n grouped: true,\n\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'base', 'width', 'height']\n }\n }\n };\n\n /**\n * @type {any}\n */\n static overrides = {\n scales: {\n _index_: {\n type: 'category',\n offset: true,\n grid: {\n offset: true\n }\n },\n _value_: {\n type: 'linear',\n beginAtZero: true,\n }\n }\n };\n\n\n /**\n\t * Overriding primitive data parsing since we support mixed primitive/array\n\t * data for float bars\n\t * @protected\n\t */\n parsePrimitiveData(meta, data, start, count) {\n return parseArrayOrPrimitive(meta, data, start, count);\n }\n\n /**\n\t * Overriding array data parsing since we support mixed primitive/array\n\t * data for float bars\n\t * @protected\n\t */\n parseArrayData(meta, data, start, count) {\n return parseArrayOrPrimitive(meta, data, start, count);\n }\n\n /**\n\t * Overriding object data parsing since we support mixed primitive/array\n\t * value-scale data for float bars\n\t * @protected\n\t */\n parseObjectData(meta, data, start, count) {\n const {iScale, vScale} = meta;\n const {xAxisKey = 'x', yAxisKey = 'y'} = this._parsing;\n const iAxisKey = iScale.axis === 'x' ? xAxisKey : yAxisKey;\n const vAxisKey = vScale.axis === 'x' ? xAxisKey : yAxisKey;\n const parsed = [];\n let i, ilen, item, obj;\n for (i = start, ilen = start + count; i < ilen; ++i) {\n obj = data[i];\n item = {};\n item[iScale.axis] = iScale.parse(resolveObjectKey(obj, iAxisKey), i);\n parsed.push(parseValue(resolveObjectKey(obj, vAxisKey), item, vScale, i));\n }\n return parsed;\n }\n\n /**\n\t * @protected\n\t */\n updateRangeFromParsed(range, scale, parsed, stack) {\n super.updateRangeFromParsed(range, scale, parsed, stack);\n const custom = parsed._custom;\n if (custom && scale === this._cachedMeta.vScale) {\n // float bar: only one end of the bar is considered by `super`\n range.min = Math.min(range.min, custom.min);\n range.max = Math.max(range.max, custom.max);\n }\n }\n\n /**\n\t * @return {number|boolean}\n\t * @protected\n\t */\n getMaxOverflow() {\n return 0;\n }\n\n /**\n\t * @protected\n\t */\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const {iScale, vScale} = meta;\n const parsed = this.getParsed(index);\n const custom = parsed._custom;\n const value = isFloatBar(custom)\n ? '[' + custom.start + ', ' + custom.end + ']'\n : '' + vScale.getLabelForValue(parsed[vScale.axis]);\n\n return {\n label: '' + iScale.getLabelForValue(parsed[iScale.axis]),\n value\n };\n }\n\n initialize() {\n this.enableOptionSharing = true;\n\n super.initialize();\n\n const meta = this._cachedMeta;\n meta.stack = this.getDataset().stack;\n }\n\n update(mode) {\n const meta = this._cachedMeta;\n this.updateElements(meta.data, 0, meta.data.length, mode);\n }\n\n updateElements(bars, start, count, mode) {\n const reset = mode === 'reset';\n const {index, _cachedMeta: {vScale}} = this;\n const base = vScale.getBasePixel();\n const horizontal = vScale.isHorizontal();\n const ruler = this._getRuler();\n const {sharedOptions, includeOptions} = this._getSharedOptions(start, mode);\n\n for (let i = start; i < start + count; i++) {\n const parsed = this.getParsed(i);\n const vpixels = reset || isNullOrUndef(parsed[vScale.axis]) ? {base, head: base} : this._calculateBarValuePixels(i);\n const ipixels = this._calculateBarIndexPixels(i, ruler);\n const stack = (parsed._stacks || {})[vScale.axis];\n\n const properties = {\n horizontal,\n base: vpixels.base,\n enableBorderRadius: !stack || isFloatBar(parsed._custom) || (index === stack._top || index === stack._bottom),\n x: horizontal ? vpixels.head : ipixels.center,\n y: horizontal ? ipixels.center : vpixels.head,\n height: horizontal ? ipixels.size : Math.abs(vpixels.size),\n width: horizontal ? Math.abs(vpixels.size) : ipixels.size\n };\n\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, bars[i].active ? 'active' : mode);\n }\n const options = properties.options || bars[i].options;\n setBorderSkipped(properties, options, stack, index);\n setInflateAmount(properties, options, ruler.ratio);\n this.updateElement(bars[i], i, properties, mode);\n }\n }\n\n /**\n\t * Returns the stacks based on groups and bar visibility.\n\t * @param {number} [last] - The dataset index\n\t * @param {number} [dataIndex] - The data index of the ruler\n\t * @returns {string[]} The list of stack IDs\n\t * @private\n\t */\n _getStacks(last, dataIndex) {\n const {iScale} = this._cachedMeta;\n const metasets = iScale.getMatchingVisibleMetas(this._type)\n .filter(meta => meta.controller.options.grouped);\n const stacked = iScale.options.stacked;\n const stacks = [];\n const currentParsed = this._cachedMeta.controller.getParsed(dataIndex);\n const iScaleValue = currentParsed && currentParsed[iScale.axis];\n\n const skipNull = (meta) => {\n const parsed = meta._parsed.find(item => item[iScale.axis] === iScaleValue);\n const val = parsed && parsed[meta.vScale.axis];\n\n if (isNullOrUndef(val) || isNaN(val)) {\n return true;\n }\n };\n\n for (const meta of metasets) {\n if (dataIndex !== undefined && skipNull(meta)) {\n continue;\n }\n\n // stacked | meta.stack\n // | found | not found | undefined\n // false | x | x | x\n // true | | x |\n // undefined | | x | x\n if (stacked === false || stacks.indexOf(meta.stack) === -1 ||\n\t\t\t\t(stacked === undefined && meta.stack === undefined)) {\n stacks.push(meta.stack);\n }\n if (meta.index === last) {\n break;\n }\n }\n\n // No stacks? that means there is no visible data. Let's still initialize an `undefined`\n // stack where possible invisible bars will be located.\n // https://github.com/chartjs/Chart.js/issues/6368\n if (!stacks.length) {\n stacks.push(undefined);\n }\n\n return stacks;\n }\n\n /**\n\t * Returns the effective number of stacks based on groups and bar visibility.\n\t * @private\n\t */\n _getStackCount(index) {\n return this._getStacks(undefined, index).length;\n }\n\n /**\n\t * Returns the stack index for the given dataset based on groups and bar visibility.\n\t * @param {number} [datasetIndex] - The dataset index\n\t * @param {string} [name] - The stack name to find\n * @param {number} [dataIndex]\n\t * @returns {number} The stack index\n\t * @private\n\t */\n _getStackIndex(datasetIndex, name, dataIndex) {\n const stacks = this._getStacks(datasetIndex, dataIndex);\n const index = (name !== undefined)\n ? stacks.indexOf(name)\n : -1; // indexOf returns -1 if element is not present\n\n return (index === -1)\n ? stacks.length - 1\n : index;\n }\n\n /**\n\t * @private\n\t */\n _getRuler() {\n const opts = this.options;\n const meta = this._cachedMeta;\n const iScale = meta.iScale;\n const pixels = [];\n let i, ilen;\n\n for (i = 0, ilen = meta.data.length; i < ilen; ++i) {\n pixels.push(iScale.getPixelForValue(this.getParsed(i)[iScale.axis], i));\n }\n\n const barThickness = opts.barThickness;\n const min = barThickness || computeMinSampleSize(meta);\n\n return {\n min,\n pixels,\n start: iScale._startPixel,\n end: iScale._endPixel,\n stackCount: this._getStackCount(),\n scale: iScale,\n grouped: opts.grouped,\n // bar thickness ratio used for non-grouped bars\n ratio: barThickness ? 1 : opts.categoryPercentage * opts.barPercentage\n };\n }\n\n /**\n\t * Note: pixel values are not clamped to the scale area.\n\t * @private\n\t */\n _calculateBarValuePixels(index) {\n const {_cachedMeta: {vScale, _stacked, index: datasetIndex}, options: {base: baseValue, minBarLength}} = this;\n const actualBase = baseValue || 0;\n const parsed = this.getParsed(index);\n const custom = parsed._custom;\n const floating = isFloatBar(custom);\n let value = parsed[vScale.axis];\n let start = 0;\n let length = _stacked ? this.applyStack(vScale, parsed, _stacked) : value;\n let head, size;\n\n if (length !== value) {\n start = length - value;\n length = value;\n }\n\n if (floating) {\n value = custom.barStart;\n length = custom.barEnd - custom.barStart;\n // bars crossing origin are not stacked\n if (value !== 0 && sign(value) !== sign(custom.barEnd)) {\n start = 0;\n }\n start += value;\n }\n\n const startValue = !isNullOrUndef(baseValue) && !floating ? baseValue : start;\n let base = vScale.getPixelForValue(startValue);\n\n if (this.chart.getDataVisibility(index)) {\n head = vScale.getPixelForValue(start + length);\n } else {\n // When not visible, no height\n head = base;\n }\n\n size = head - base;\n\n if (Math.abs(size) < minBarLength) {\n size = barSign(size, vScale, actualBase) * minBarLength;\n if (value === actualBase) {\n base -= size / 2;\n }\n const startPixel = vScale.getPixelForDecimal(0);\n const endPixel = vScale.getPixelForDecimal(1);\n const min = Math.min(startPixel, endPixel);\n const max = Math.max(startPixel, endPixel);\n base = Math.max(Math.min(base, max), min);\n head = base + size;\n\n if (_stacked && !floating) {\n // visual data coordinates after applying minBarLength\n parsed._stacks[vScale.axis]._visualValues[datasetIndex] = vScale.getValueForPixel(head) - vScale.getValueForPixel(base);\n }\n }\n\n if (base === vScale.getPixelForValue(actualBase)) {\n const halfGrid = sign(size) * vScale.getLineWidthForValue(actualBase) / 2;\n base += halfGrid;\n size -= halfGrid;\n }\n\n return {\n size,\n base,\n head,\n center: head + size / 2\n };\n }\n\n /**\n\t * @private\n\t */\n _calculateBarIndexPixels(index, ruler) {\n const scale = ruler.scale;\n const options = this.options;\n const skipNull = options.skipNull;\n const maxBarThickness = valueOrDefault(options.maxBarThickness, Infinity);\n let center, size;\n if (ruler.grouped) {\n const stackCount = skipNull ? this._getStackCount(index) : ruler.stackCount;\n const range = options.barThickness === 'flex'\n ? computeFlexCategoryTraits(index, ruler, options, stackCount)\n : computeFitCategoryTraits(index, ruler, options, stackCount);\n\n const stackIndex = this._getStackIndex(this.index, this._cachedMeta.stack, skipNull ? index : undefined);\n center = range.start + (range.chunk * stackIndex) + (range.chunk / 2);\n size = Math.min(maxBarThickness, range.chunk * range.ratio);\n } else {\n // For non-grouped bar charts, exact pixel values are used\n center = scale.getPixelForValue(this.getParsed(index)[scale.axis], index);\n size = Math.min(maxBarThickness, ruler.min * ruler.ratio);\n }\n\n return {\n base: center - size / 2,\n head: center + size / 2,\n center,\n size\n };\n }\n\n draw() {\n const meta = this._cachedMeta;\n const vScale = meta.vScale;\n const rects = meta.data;\n const ilen = rects.length;\n let i = 0;\n\n for (; i < ilen; ++i) {\n if (this.getParsed(i)[vScale.axis] !== null && !rects[i].hidden) {\n rects[i].draw(this._ctx);\n }\n }\n }\n\n}\n","import DatasetController from '../core/core.datasetController.js';\nimport {isNullOrUndef} from '../helpers/index.js';\nimport {isNumber} from '../helpers/helpers.math.js';\nimport {_getStartAndCountOfVisiblePoints, _scaleRangesChanged} from '../helpers/helpers.extras.js';\n\nexport default class LineController extends DatasetController {\n\n static id = 'line';\n\n /**\n * @type {any}\n */\n static defaults = {\n datasetElementType: 'line',\n dataElementType: 'point',\n\n showLine: true,\n spanGaps: false,\n };\n\n /**\n * @type {any}\n */\n static overrides = {\n scales: {\n _index_: {\n type: 'category',\n },\n _value_: {\n type: 'linear',\n },\n }\n };\n\n initialize() {\n this.enableOptionSharing = true;\n this.supportsDecimation = true;\n super.initialize();\n }\n\n update(mode) {\n const meta = this._cachedMeta;\n const {dataset: line, data: points = [], _dataset} = meta;\n // @ts-ignore\n const animationsDisabled = this.chart._animationsDisabled;\n let {start, count} = _getStartAndCountOfVisiblePoints(meta, points, animationsDisabled);\n\n this._drawStart = start;\n this._drawCount = count;\n\n if (_scaleRangesChanged(meta)) {\n start = 0;\n count = points.length;\n }\n\n // Update Line\n line._chart = this.chart;\n line._datasetIndex = this.index;\n line._decimated = !!_dataset._decimated;\n line.points = points;\n\n const options = this.resolveDatasetElementOptions(mode);\n if (!this.options.showLine) {\n options.borderWidth = 0;\n }\n options.segment = this.options.segment;\n this.updateElement(line, undefined, {\n animated: !animationsDisabled,\n options\n }, mode);\n\n // Update Points\n this.updateElements(points, start, count, mode);\n }\n\n updateElements(points, start, count, mode) {\n const reset = mode === 'reset';\n const {iScale, vScale, _stacked, _dataset} = this._cachedMeta;\n const {sharedOptions, includeOptions} = this._getSharedOptions(start, mode);\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const {spanGaps, segment} = this.options;\n const maxGapLength = isNumber(spanGaps) ? spanGaps : Number.POSITIVE_INFINITY;\n const directUpdate = this.chart._animationsDisabled || reset || mode === 'none';\n const end = start + count;\n const pointsCount = points.length;\n let prevParsed = start > 0 && this.getParsed(start - 1);\n\n for (let i = 0; i < pointsCount; ++i) {\n const point = points[i];\n const properties = directUpdate ? point : {};\n\n if (i < start || i >= end) {\n properties.skip = true;\n continue;\n }\n\n const parsed = this.getParsed(i);\n const nullData = isNullOrUndef(parsed[vAxis]);\n const iPixel = properties[iAxis] = iScale.getPixelForValue(parsed[iAxis], i);\n const vPixel = properties[vAxis] = reset || nullData ? vScale.getBasePixel() : vScale.getPixelForValue(_stacked ? this.applyStack(vScale, parsed, _stacked) : parsed[vAxis], i);\n\n properties.skip = isNaN(iPixel) || isNaN(vPixel) || nullData;\n properties.stop = i > 0 && (Math.abs(parsed[iAxis] - prevParsed[iAxis])) > maxGapLength;\n if (segment) {\n properties.parsed = parsed;\n properties.raw = _dataset.data[i];\n }\n\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n }\n\n if (!directUpdate) {\n this.updateElement(point, i, properties, mode);\n }\n\n prevParsed = parsed;\n }\n }\n\n /**\n\t * @protected\n\t */\n getMaxOverflow() {\n const meta = this._cachedMeta;\n const dataset = meta.dataset;\n const border = dataset.options && dataset.options.borderWidth || 0;\n const data = meta.data || [];\n if (!data.length) {\n return border;\n }\n const firstPoint = data[0].size(this.resolveDataElementOptions(0));\n const lastPoint = data[data.length - 1].size(this.resolveDataElementOptions(data.length - 1));\n return Math.max(border, firstPoint, lastPoint) / 2;\n }\n\n draw() {\n const meta = this._cachedMeta;\n meta.dataset.updateControlPoints(this.chart.chartArea, meta.iScale.axis);\n super.draw();\n }\n}\n","/**\n * @namespace Chart._adapters\n * @since 2.8.0\n * @private\n */\n\nimport type {AnyObject} from '../types/basic.js';\nimport type {ChartOptions} from '../types/index.js';\n\nexport type TimeUnit = 'millisecond' | 'second' | 'minute' | 'hour' | 'day' | 'week' | 'month' | 'quarter' | 'year';\n\nexport interface DateAdapter {\n readonly options: T;\n /**\n * Will called with chart options after adapter creation.\n */\n init(this: DateAdapter, chartOptions: ChartOptions): void;\n /**\n * Returns a map of time formats for the supported formatting units defined\n * in Unit as well as 'datetime' representing a detailed date/time string.\n */\n formats(this: DateAdapter): Record;\n /**\n * Parses the given `value` and return the associated timestamp.\n * @param value - the value to parse (usually comes from the data)\n * @param [format] - the expected data format\n */\n parse(this: DateAdapter, value: unknown, format?: TimeUnit): number | null;\n /**\n * Returns the formatted date in the specified `format` for a given `timestamp`.\n * @param timestamp - the timestamp to format\n * @param format - the date/time token\n */\n format(this: DateAdapter, timestamp: number, format: TimeUnit): string;\n /**\n * Adds the specified `amount` of `unit` to the given `timestamp`.\n * @param timestamp - the input timestamp\n * @param amount - the amount to add\n * @param unit - the unit as string\n */\n add(this: DateAdapter, timestamp: number, amount: number, unit: TimeUnit): number;\n /**\n * Returns the number of `unit` between the given timestamps.\n * @param a - the input timestamp (reference)\n * @param b - the timestamp to subtract\n * @param unit - the unit as string\n */\n diff(this: DateAdapter, a: number, b: number, unit: TimeUnit): number;\n /**\n * Returns start of `unit` for the given `timestamp`.\n * @param timestamp - the input timestamp\n * @param unit - the unit as string\n * @param [weekday] - the ISO day of the week with 1 being Monday\n * and 7 being Sunday (only needed if param *unit* is `isoWeek`).\n */\n startOf(this: DateAdapter, timestamp: number, unit: TimeUnit | 'isoWeek', weekday?: number): number;\n /**\n * Returns end of `unit` for the given `timestamp`.\n * @param timestamp - the input timestamp\n * @param unit - the unit as string\n */\n endOf(this: DateAdapter, timestamp: number, unit: TimeUnit | 'isoWeek'): number;\n}\n\nfunction abstract(): T {\n throw new Error('This method is not implemented: Check that a complete date adapter is provided.');\n}\n\n/**\n * Date adapter (current used by the time scale)\n * @namespace Chart._adapters._date\n * @memberof Chart._adapters\n * @private\n */\nclass DateAdapterBase implements DateAdapter {\n\n /**\n * Override default date adapter methods.\n * Accepts type parameter to define options type.\n * @example\n * Chart._adapters._date.override<{myAdapterOption: string}>({\n * init() {\n * console.log(this.options.myAdapterOption);\n * }\n * })\n */\n static override(\n members: Partial, 'options'>>\n ) {\n Object.assign(DateAdapterBase.prototype, members);\n }\n\n readonly options: AnyObject;\n\n constructor(options: AnyObject) {\n this.options = options || {};\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n init() {}\n\n formats(): Record {\n return abstract();\n }\n\n parse(): number | null {\n return abstract();\n }\n\n format(): string {\n return abstract();\n }\n\n add(): number {\n return abstract();\n }\n\n diff(): number {\n return abstract();\n }\n\n startOf(): number {\n return abstract();\n }\n\n endOf(): number {\n return abstract();\n }\n}\n\nexport default {\n _date: DateAdapterBase\n};\n","import {_lookupByKey, _rlookupByKey} from '../helpers/helpers.collection.js';\nimport {getRelativePosition} from '../helpers/helpers.dom.js';\nimport {_angleBetween, getAngleFromPoint} from '../helpers/helpers.math.js';\nimport {_isPointInArea} from '../helpers/index.js';\n\n/**\n * @typedef { import('./core.controller.js').default } Chart\n * @typedef { import('../types/index.js').ChartEvent } ChartEvent\n * @typedef {{axis?: string, intersect?: boolean, includeInvisible?: boolean}} InteractionOptions\n * @typedef {{datasetIndex: number, index: number, element: import('./core.element.js').default}} InteractionItem\n * @typedef { import('../types/index.js').Point } Point\n */\n\n/**\n * Helper function to do binary search when possible\n * @param {object} metaset - the dataset meta\n * @param {string} axis - the axis mode. x|y|xy|r\n * @param {number} value - the value to find\n * @param {boolean} [intersect] - should the element intersect\n * @returns {{lo:number, hi:number}} indices to search data array between\n */\nfunction binarySearch(metaset, axis, value, intersect) {\n const {controller, data, _sorted} = metaset;\n const iScale = controller._cachedMeta.iScale;\n if (iScale && axis === iScale.axis && axis !== 'r' && _sorted && data.length) {\n const lookupMethod = iScale._reversePixels ? _rlookupByKey : _lookupByKey;\n if (!intersect) {\n return lookupMethod(data, axis, value);\n } else if (controller._sharedOptions) {\n // _sharedOptions indicates that each element has equal options -> equal proportions\n // So we can do a ranged binary search based on the range of first element and\n // be confident to get the full range of indices that can intersect with the value.\n const el = data[0];\n const range = typeof el.getRange === 'function' && el.getRange(axis);\n if (range) {\n const start = lookupMethod(data, axis, value - range);\n const end = lookupMethod(data, axis, value + range);\n return {lo: start.lo, hi: end.hi};\n }\n }\n }\n // Default to all elements, when binary search can not be used.\n return {lo: 0, hi: data.length - 1};\n}\n\n/**\n * Helper function to select candidate elements for interaction\n * @param {Chart} chart - the chart\n * @param {string} axis - the axis mode. x|y|xy|r\n * @param {Point} position - the point to be nearest to, in relative coordinates\n * @param {function} handler - the callback to execute for each visible item\n * @param {boolean} [intersect] - consider intersecting items\n */\nfunction evaluateInteractionItems(chart, axis, position, handler, intersect) {\n const metasets = chart.getSortedVisibleDatasetMetas();\n const value = position[axis];\n for (let i = 0, ilen = metasets.length; i < ilen; ++i) {\n const {index, data} = metasets[i];\n const {lo, hi} = binarySearch(metasets[i], axis, value, intersect);\n for (let j = lo; j <= hi; ++j) {\n const element = data[j];\n if (!element.skip) {\n handler(element, index, j);\n }\n }\n }\n}\n\n/**\n * Get a distance metric function for two points based on the\n * axis mode setting\n * @param {string} axis - the axis mode. x|y|xy|r\n */\nfunction getDistanceMetricForAxis(axis) {\n const useX = axis.indexOf('x') !== -1;\n const useY = axis.indexOf('y') !== -1;\n\n return function(pt1, pt2) {\n const deltaX = useX ? Math.abs(pt1.x - pt2.x) : 0;\n const deltaY = useY ? Math.abs(pt1.y - pt2.y) : 0;\n return Math.sqrt(Math.pow(deltaX, 2) + Math.pow(deltaY, 2));\n };\n}\n\n/**\n * Helper function to get the items that intersect the event position\n * @param {Chart} chart - the chart\n * @param {Point} position - the point to be nearest to, in relative coordinates\n * @param {string} axis - the axis mode. x|y|xy|r\n * @param {boolean} [useFinalPosition] - use the element's animation target instead of current position\n * @param {boolean} [includeInvisible] - include invisible points that are outside of the chart area\n * @return {InteractionItem[]} the nearest items\n */\nfunction getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible) {\n const items = [];\n\n if (!includeInvisible && !chart.isPointInArea(position)) {\n return items;\n }\n\n const evaluationFunc = function(element, datasetIndex, index) {\n if (!includeInvisible && !_isPointInArea(element, chart.chartArea, 0)) {\n return;\n }\n if (element.inRange(position.x, position.y, useFinalPosition)) {\n items.push({element, datasetIndex, index});\n }\n };\n\n evaluateInteractionItems(chart, axis, position, evaluationFunc, true);\n return items;\n}\n\n/**\n * Helper function to get the items nearest to the event position for a radial chart\n * @param {Chart} chart - the chart to look at elements from\n * @param {Point} position - the point to be nearest to, in relative coordinates\n * @param {string} axis - the axes along which to measure distance\n * @param {boolean} [useFinalPosition] - use the element's animation target instead of current position\n * @return {InteractionItem[]} the nearest items\n */\nfunction getNearestRadialItems(chart, position, axis, useFinalPosition) {\n let items = [];\n\n function evaluationFunc(element, datasetIndex, index) {\n const {startAngle, endAngle} = element.getProps(['startAngle', 'endAngle'], useFinalPosition);\n const {angle} = getAngleFromPoint(element, {x: position.x, y: position.y});\n\n if (_angleBetween(angle, startAngle, endAngle)) {\n items.push({element, datasetIndex, index});\n }\n }\n\n evaluateInteractionItems(chart, axis, position, evaluationFunc);\n return items;\n}\n\n/**\n * Helper function to get the items nearest to the event position for a cartesian chart\n * @param {Chart} chart - the chart to look at elements from\n * @param {Point} position - the point to be nearest to, in relative coordinates\n * @param {string} axis - the axes along which to measure distance\n * @param {boolean} [intersect] - if true, only consider items that intersect the position\n * @param {boolean} [useFinalPosition] - use the element's animation target instead of current position\n * @param {boolean} [includeInvisible] - include invisible points that are outside of the chart area\n * @return {InteractionItem[]} the nearest items\n */\nfunction getNearestCartesianItems(chart, position, axis, intersect, useFinalPosition, includeInvisible) {\n let items = [];\n const distanceMetric = getDistanceMetricForAxis(axis);\n let minDistance = Number.POSITIVE_INFINITY;\n\n function evaluationFunc(element, datasetIndex, index) {\n const inRange = element.inRange(position.x, position.y, useFinalPosition);\n if (intersect && !inRange) {\n return;\n }\n\n const center = element.getCenterPoint(useFinalPosition);\n const pointInArea = !!includeInvisible || chart.isPointInArea(center);\n if (!pointInArea && !inRange) {\n return;\n }\n\n const distance = distanceMetric(position, center);\n if (distance < minDistance) {\n items = [{element, datasetIndex, index}];\n minDistance = distance;\n } else if (distance === minDistance) {\n // Can have multiple items at the same distance in which case we sort by size\n items.push({element, datasetIndex, index});\n }\n }\n\n evaluateInteractionItems(chart, axis, position, evaluationFunc);\n return items;\n}\n\n/**\n * Helper function to get the items nearest to the event position considering all visible items in the chart\n * @param {Chart} chart - the chart to look at elements from\n * @param {Point} position - the point to be nearest to, in relative coordinates\n * @param {string} axis - the axes along which to measure distance\n * @param {boolean} [intersect] - if true, only consider items that intersect the position\n * @param {boolean} [useFinalPosition] - use the element's animation target instead of current position\n * @param {boolean} [includeInvisible] - include invisible points that are outside of the chart area\n * @return {InteractionItem[]} the nearest items\n */\nfunction getNearestItems(chart, position, axis, intersect, useFinalPosition, includeInvisible) {\n if (!includeInvisible && !chart.isPointInArea(position)) {\n return [];\n }\n\n return axis === 'r' && !intersect\n ? getNearestRadialItems(chart, position, axis, useFinalPosition)\n : getNearestCartesianItems(chart, position, axis, intersect, useFinalPosition, includeInvisible);\n}\n\n/**\n * Helper function to get the items matching along the given X or Y axis\n * @param {Chart} chart - the chart to look at elements from\n * @param {Point} position - the point to be nearest to, in relative coordinates\n * @param {string} axis - the axis to match\n * @param {boolean} [intersect] - if true, only consider items that intersect the position\n * @param {boolean} [useFinalPosition] - use the element's animation target instead of current position\n * @return {InteractionItem[]} the nearest items\n */\nfunction getAxisItems(chart, position, axis, intersect, useFinalPosition) {\n const items = [];\n const rangeMethod = axis === 'x' ? 'inXRange' : 'inYRange';\n let intersectsItem = false;\n\n evaluateInteractionItems(chart, axis, position, (element, datasetIndex, index) => {\n if (element[rangeMethod] && element[rangeMethod](position[axis], useFinalPosition)) {\n items.push({element, datasetIndex, index});\n intersectsItem = intersectsItem || element.inRange(position.x, position.y, useFinalPosition);\n }\n });\n\n // If we want to trigger on an intersect and we don't have any items\n // that intersect the position, return nothing\n if (intersect && !intersectsItem) {\n return [];\n }\n return items;\n}\n\n/**\n * Contains interaction related functions\n * @namespace Chart.Interaction\n */\nexport default {\n // Part of the public API to facilitate developers creating their own modes\n evaluateInteractionItems,\n\n // Helper function for different modes\n modes: {\n /**\n\t\t * Returns items at the same index. If the options.intersect parameter is true, we only return items if we intersect something\n\t\t * If the options.intersect mode is false, we find the nearest item and return the items at the same index as that item\n\t\t * @function Chart.Interaction.modes.index\n\t\t * @since v2.4.0\n\t\t * @param {Chart} chart - the chart we are returning items from\n\t\t * @param {Event} e - the event we are find things at\n\t\t * @param {InteractionOptions} options - options to use\n\t\t * @param {boolean} [useFinalPosition] - use final element position (animation target)\n\t\t * @return {InteractionItem[]} - items that are found\n\t\t */\n index(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n // Default axis for index mode is 'x' to match old behaviour\n const axis = options.axis || 'x';\n const includeInvisible = options.includeInvisible || false;\n const items = options.intersect\n ? getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible)\n : getNearestItems(chart, position, axis, false, useFinalPosition, includeInvisible);\n const elements = [];\n\n if (!items.length) {\n return [];\n }\n\n chart.getSortedVisibleDatasetMetas().forEach((meta) => {\n const index = items[0].index;\n const element = meta.data[index];\n\n // don't count items that are skipped (null data)\n if (element && !element.skip) {\n elements.push({element, datasetIndex: meta.index, index});\n }\n });\n\n return elements;\n },\n\n /**\n\t\t * Returns items in the same dataset. If the options.intersect parameter is true, we only return items if we intersect something\n\t\t * If the options.intersect is false, we find the nearest item and return the items in that dataset\n\t\t * @function Chart.Interaction.modes.dataset\n\t\t * @param {Chart} chart - the chart we are returning items from\n\t\t * @param {Event} e - the event we are find things at\n\t\t * @param {InteractionOptions} options - options to use\n\t\t * @param {boolean} [useFinalPosition] - use final element position (animation target)\n\t\t * @return {InteractionItem[]} - items that are found\n\t\t */\n dataset(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n const includeInvisible = options.includeInvisible || false;\n let items = options.intersect\n ? getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible) :\n getNearestItems(chart, position, axis, false, useFinalPosition, includeInvisible);\n\n if (items.length > 0) {\n const datasetIndex = items[0].datasetIndex;\n const data = chart.getDatasetMeta(datasetIndex).data;\n items = [];\n for (let i = 0; i < data.length; ++i) {\n items.push({element: data[i], datasetIndex, index: i});\n }\n }\n\n return items;\n },\n\n /**\n\t\t * Point mode returns all elements that hit test based on the event position\n\t\t * of the event\n\t\t * @function Chart.Interaction.modes.intersect\n\t\t * @param {Chart} chart - the chart we are returning items from\n\t\t * @param {Event} e - the event we are find things at\n\t\t * @param {InteractionOptions} options - options to use\n\t\t * @param {boolean} [useFinalPosition] - use final element position (animation target)\n\t\t * @return {InteractionItem[]} - items that are found\n\t\t */\n point(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n const includeInvisible = options.includeInvisible || false;\n return getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible);\n },\n\n /**\n\t\t * nearest mode returns the element closest to the point\n\t\t * @function Chart.Interaction.modes.intersect\n\t\t * @param {Chart} chart - the chart we are returning items from\n\t\t * @param {Event} e - the event we are find things at\n\t\t * @param {InteractionOptions} options - options to use\n\t\t * @param {boolean} [useFinalPosition] - use final element position (animation target)\n\t\t * @return {InteractionItem[]} - items that are found\n\t\t */\n nearest(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n const includeInvisible = options.includeInvisible || false;\n return getNearestItems(chart, position, axis, options.intersect, useFinalPosition, includeInvisible);\n },\n\n /**\n\t\t * x mode returns the elements that hit-test at the current x coordinate\n\t\t * @function Chart.Interaction.modes.x\n\t\t * @param {Chart} chart - the chart we are returning items from\n\t\t * @param {Event} e - the event we are find things at\n\t\t * @param {InteractionOptions} options - options to use\n\t\t * @param {boolean} [useFinalPosition] - use final element position (animation target)\n\t\t * @return {InteractionItem[]} - items that are found\n\t\t */\n x(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n return getAxisItems(chart, position, 'x', options.intersect, useFinalPosition);\n },\n\n /**\n\t\t * y mode returns the elements that hit-test at the current y coordinate\n\t\t * @function Chart.Interaction.modes.y\n\t\t * @param {Chart} chart - the chart we are returning items from\n\t\t * @param {Event} e - the event we are find things at\n\t\t * @param {InteractionOptions} options - options to use\n\t\t * @param {boolean} [useFinalPosition] - use final element position (animation target)\n\t\t * @return {InteractionItem[]} - items that are found\n\t\t */\n y(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n return getAxisItems(chart, position, 'y', options.intersect, useFinalPosition);\n }\n }\n};\n","import {defined, each, isObject} from '../helpers/helpers.core.js';\nimport {toPadding} from '../helpers/helpers.options.js';\n\n/**\n * @typedef { import('./core.controller.js').default } Chart\n */\n\nconst STATIC_POSITIONS = ['left', 'top', 'right', 'bottom'];\n\nfunction filterByPosition(array, position) {\n return array.filter(v => v.pos === position);\n}\n\nfunction filterDynamicPositionByAxis(array, axis) {\n return array.filter(v => STATIC_POSITIONS.indexOf(v.pos) === -1 && v.box.axis === axis);\n}\n\nfunction sortByWeight(array, reverse) {\n return array.sort((a, b) => {\n const v0 = reverse ? b : a;\n const v1 = reverse ? a : b;\n return v0.weight === v1.weight ?\n v0.index - v1.index :\n v0.weight - v1.weight;\n });\n}\n\nfunction wrapBoxes(boxes) {\n const layoutBoxes = [];\n let i, ilen, box, pos, stack, stackWeight;\n\n for (i = 0, ilen = (boxes || []).length; i < ilen; ++i) {\n box = boxes[i];\n ({position: pos, options: {stack, stackWeight = 1}} = box);\n layoutBoxes.push({\n index: i,\n box,\n pos,\n horizontal: box.isHorizontal(),\n weight: box.weight,\n stack: stack && (pos + stack),\n stackWeight\n });\n }\n return layoutBoxes;\n}\n\nfunction buildStacks(layouts) {\n const stacks = {};\n for (const wrap of layouts) {\n const {stack, pos, stackWeight} = wrap;\n if (!stack || !STATIC_POSITIONS.includes(pos)) {\n continue;\n }\n const _stack = stacks[stack] || (stacks[stack] = {count: 0, placed: 0, weight: 0, size: 0});\n _stack.count++;\n _stack.weight += stackWeight;\n }\n return stacks;\n}\n\n/**\n * store dimensions used instead of available chartArea in fitBoxes\n **/\nfunction setLayoutDims(layouts, params) {\n const stacks = buildStacks(layouts);\n const {vBoxMaxWidth, hBoxMaxHeight} = params;\n let i, ilen, layout;\n for (i = 0, ilen = layouts.length; i < ilen; ++i) {\n layout = layouts[i];\n const {fullSize} = layout.box;\n const stack = stacks[layout.stack];\n const factor = stack && layout.stackWeight / stack.weight;\n if (layout.horizontal) {\n layout.width = factor ? factor * vBoxMaxWidth : fullSize && params.availableWidth;\n layout.height = hBoxMaxHeight;\n } else {\n layout.width = vBoxMaxWidth;\n layout.height = factor ? factor * hBoxMaxHeight : fullSize && params.availableHeight;\n }\n }\n return stacks;\n}\n\nfunction buildLayoutBoxes(boxes) {\n const layoutBoxes = wrapBoxes(boxes);\n const fullSize = sortByWeight(layoutBoxes.filter(wrap => wrap.box.fullSize), true);\n const left = sortByWeight(filterByPosition(layoutBoxes, 'left'), true);\n const right = sortByWeight(filterByPosition(layoutBoxes, 'right'));\n const top = sortByWeight(filterByPosition(layoutBoxes, 'top'), true);\n const bottom = sortByWeight(filterByPosition(layoutBoxes, 'bottom'));\n const centerHorizontal = filterDynamicPositionByAxis(layoutBoxes, 'x');\n const centerVertical = filterDynamicPositionByAxis(layoutBoxes, 'y');\n\n return {\n fullSize,\n leftAndTop: left.concat(top),\n rightAndBottom: right.concat(centerVertical).concat(bottom).concat(centerHorizontal),\n chartArea: filterByPosition(layoutBoxes, 'chartArea'),\n vertical: left.concat(right).concat(centerVertical),\n horizontal: top.concat(bottom).concat(centerHorizontal)\n };\n}\n\nfunction getCombinedMax(maxPadding, chartArea, a, b) {\n return Math.max(maxPadding[a], chartArea[a]) + Math.max(maxPadding[b], chartArea[b]);\n}\n\nfunction updateMaxPadding(maxPadding, boxPadding) {\n maxPadding.top = Math.max(maxPadding.top, boxPadding.top);\n maxPadding.left = Math.max(maxPadding.left, boxPadding.left);\n maxPadding.bottom = Math.max(maxPadding.bottom, boxPadding.bottom);\n maxPadding.right = Math.max(maxPadding.right, boxPadding.right);\n}\n\nfunction updateDims(chartArea, params, layout, stacks) {\n const {pos, box} = layout;\n const maxPadding = chartArea.maxPadding;\n\n // dynamically placed boxes size is not considered\n if (!isObject(pos)) {\n if (layout.size) {\n // this layout was already counted for, lets first reduce old size\n chartArea[pos] -= layout.size;\n }\n const stack = stacks[layout.stack] || {size: 0, count: 1};\n stack.size = Math.max(stack.size, layout.horizontal ? box.height : box.width);\n layout.size = stack.size / stack.count;\n chartArea[pos] += layout.size;\n }\n\n if (box.getPadding) {\n updateMaxPadding(maxPadding, box.getPadding());\n }\n\n const newWidth = Math.max(0, params.outerWidth - getCombinedMax(maxPadding, chartArea, 'left', 'right'));\n const newHeight = Math.max(0, params.outerHeight - getCombinedMax(maxPadding, chartArea, 'top', 'bottom'));\n const widthChanged = newWidth !== chartArea.w;\n const heightChanged = newHeight !== chartArea.h;\n chartArea.w = newWidth;\n chartArea.h = newHeight;\n\n // return booleans on the changes per direction\n return layout.horizontal\n ? {same: widthChanged, other: heightChanged}\n : {same: heightChanged, other: widthChanged};\n}\n\nfunction handleMaxPadding(chartArea) {\n const maxPadding = chartArea.maxPadding;\n\n function updatePos(pos) {\n const change = Math.max(maxPadding[pos] - chartArea[pos], 0);\n chartArea[pos] += change;\n return change;\n }\n chartArea.y += updatePos('top');\n chartArea.x += updatePos('left');\n updatePos('right');\n updatePos('bottom');\n}\n\nfunction getMargins(horizontal, chartArea) {\n const maxPadding = chartArea.maxPadding;\n\n function marginForPositions(positions) {\n const margin = {left: 0, top: 0, right: 0, bottom: 0};\n positions.forEach((pos) => {\n margin[pos] = Math.max(chartArea[pos], maxPadding[pos]);\n });\n return margin;\n }\n\n return horizontal\n ? marginForPositions(['left', 'right'])\n : marginForPositions(['top', 'bottom']);\n}\n\nfunction fitBoxes(boxes, chartArea, params, stacks) {\n const refitBoxes = [];\n let i, ilen, layout, box, refit, changed;\n\n for (i = 0, ilen = boxes.length, refit = 0; i < ilen; ++i) {\n layout = boxes[i];\n box = layout.box;\n\n box.update(\n layout.width || chartArea.w,\n layout.height || chartArea.h,\n getMargins(layout.horizontal, chartArea)\n );\n const {same, other} = updateDims(chartArea, params, layout, stacks);\n\n // Dimensions changed and there were non full width boxes before this\n // -> we have to refit those\n refit |= same && refitBoxes.length;\n\n // Chart area changed in the opposite direction\n changed = changed || other;\n\n if (!box.fullSize) { // fullSize boxes don't need to be re-fitted in any case\n refitBoxes.push(layout);\n }\n }\n\n return refit && fitBoxes(refitBoxes, chartArea, params, stacks) || changed;\n}\n\nfunction setBoxDims(box, left, top, width, height) {\n box.top = top;\n box.left = left;\n box.right = left + width;\n box.bottom = top + height;\n box.width = width;\n box.height = height;\n}\n\nfunction placeBoxes(boxes, chartArea, params, stacks) {\n const userPadding = params.padding;\n let {x, y} = chartArea;\n\n for (const layout of boxes) {\n const box = layout.box;\n const stack = stacks[layout.stack] || {count: 1, placed: 0, weight: 1};\n const weight = (layout.stackWeight / stack.weight) || 1;\n if (layout.horizontal) {\n const width = chartArea.w * weight;\n const height = stack.size || box.height;\n if (defined(stack.start)) {\n y = stack.start;\n }\n if (box.fullSize) {\n setBoxDims(box, userPadding.left, y, params.outerWidth - userPadding.right - userPadding.left, height);\n } else {\n setBoxDims(box, chartArea.left + stack.placed, y, width, height);\n }\n stack.start = y;\n stack.placed += width;\n y = box.bottom;\n } else {\n const height = chartArea.h * weight;\n const width = stack.size || box.width;\n if (defined(stack.start)) {\n x = stack.start;\n }\n if (box.fullSize) {\n setBoxDims(box, x, userPadding.top, width, params.outerHeight - userPadding.bottom - userPadding.top);\n } else {\n setBoxDims(box, x, chartArea.top + stack.placed, width, height);\n }\n stack.start = x;\n stack.placed += height;\n x = box.right;\n }\n }\n\n chartArea.x = x;\n chartArea.y = y;\n}\n\n/**\n * @interface LayoutItem\n * @typedef {object} LayoutItem\n * @prop {string} position - The position of the item in the chart layout. Possible values are\n * 'left', 'top', 'right', 'bottom', and 'chartArea'\n * @prop {number} weight - The weight used to sort the item. Higher weights are further away from the chart area\n * @prop {boolean} fullSize - if true, and the item is horizontal, then push vertical boxes down\n * @prop {function} isHorizontal - returns true if the layout item is horizontal (ie. top or bottom)\n * @prop {function} update - Takes two parameters: width and height. Returns size of item\n * @prop {function} draw - Draws the element\n * @prop {function} [getPadding] - Returns an object with padding on the edges\n * @prop {number} width - Width of item. Must be valid after update()\n * @prop {number} height - Height of item. Must be valid after update()\n * @prop {number} left - Left edge of the item. Set by layout system and cannot be used in update\n * @prop {number} top - Top edge of the item. Set by layout system and cannot be used in update\n * @prop {number} right - Right edge of the item. Set by layout system and cannot be used in update\n * @prop {number} bottom - Bottom edge of the item. Set by layout system and cannot be used in update\n */\n\n// The layout service is very self explanatory. It's responsible for the layout within a chart.\n// Scales, Legends and Plugins all rely on the layout service and can easily register to be placed anywhere they need\n// It is this service's responsibility of carrying out that layout.\nexport default {\n\n /**\n\t * Register a box to a chart.\n\t * A box is simply a reference to an object that requires layout. eg. Scales, Legend, Title.\n\t * @param {Chart} chart - the chart to use\n\t * @param {LayoutItem} item - the item to add to be laid out\n\t */\n addBox(chart, item) {\n if (!chart.boxes) {\n chart.boxes = [];\n }\n\n // initialize item with default values\n item.fullSize = item.fullSize || false;\n item.position = item.position || 'top';\n item.weight = item.weight || 0;\n // @ts-ignore\n item._layers = item._layers || function() {\n return [{\n z: 0,\n draw(chartArea) {\n item.draw(chartArea);\n }\n }];\n };\n\n chart.boxes.push(item);\n },\n\n /**\n\t * Remove a layoutItem from a chart\n\t * @param {Chart} chart - the chart to remove the box from\n\t * @param {LayoutItem} layoutItem - the item to remove from the layout\n\t */\n removeBox(chart, layoutItem) {\n const index = chart.boxes ? chart.boxes.indexOf(layoutItem) : -1;\n if (index !== -1) {\n chart.boxes.splice(index, 1);\n }\n },\n\n /**\n\t * Sets (or updates) options on the given `item`.\n\t * @param {Chart} chart - the chart in which the item lives (or will be added to)\n\t * @param {LayoutItem} item - the item to configure with the given options\n\t * @param {object} options - the new item options.\n\t */\n configure(chart, item, options) {\n item.fullSize = options.fullSize;\n item.position = options.position;\n item.weight = options.weight;\n },\n\n /**\n\t * Fits boxes of the given chart into the given size by having each box measure itself\n\t * then running a fitting algorithm\n\t * @param {Chart} chart - the chart\n\t * @param {number} width - the width to fit into\n\t * @param {number} height - the height to fit into\n * @param {number} minPadding - minimum padding required for each side of chart area\n\t */\n update(chart, width, height, minPadding) {\n if (!chart) {\n return;\n }\n\n const padding = toPadding(chart.options.layout.padding);\n const availableWidth = Math.max(width - padding.width, 0);\n const availableHeight = Math.max(height - padding.height, 0);\n const boxes = buildLayoutBoxes(chart.boxes);\n const verticalBoxes = boxes.vertical;\n const horizontalBoxes = boxes.horizontal;\n\n // Before any changes are made, notify boxes that an update is about to being\n // This is used to clear any cached data (e.g. scale limits)\n each(chart.boxes, box => {\n if (typeof box.beforeLayout === 'function') {\n box.beforeLayout();\n }\n });\n\n // Essentially we now have any number of boxes on each of the 4 sides.\n // Our canvas looks like the following.\n // The areas L1 and L2 are the left axes. R1 is the right axis, T1 is the top axis and\n // B1 is the bottom axis\n // There are also 4 quadrant-like locations (left to right instead of clockwise) reserved for chart overlays\n // These locations are single-box locations only, when trying to register a chartArea location that is already taken,\n // an error will be thrown.\n //\n // |----------------------------------------------------|\n // | T1 (Full Width) |\n // |----------------------------------------------------|\n // | | | T2 | |\n // | |----|-------------------------------------|----|\n // | | | C1 | | C2 | |\n // | | |----| |----| |\n // | | | | |\n // | L1 | L2 | ChartArea (C0) | R1 |\n // | | | | |\n // | | |----| |----| |\n // | | | C3 | | C4 | |\n // | |----|-------------------------------------|----|\n // | | | B1 | |\n // |----------------------------------------------------|\n // | B2 (Full Width) |\n // |----------------------------------------------------|\n //\n\n const visibleVerticalBoxCount = verticalBoxes.reduce((total, wrap) =>\n wrap.box.options && wrap.box.options.display === false ? total : total + 1, 0) || 1;\n\n const params = Object.freeze({\n outerWidth: width,\n outerHeight: height,\n padding,\n availableWidth,\n availableHeight,\n vBoxMaxWidth: availableWidth / 2 / visibleVerticalBoxCount,\n hBoxMaxHeight: availableHeight / 2\n });\n const maxPadding = Object.assign({}, padding);\n updateMaxPadding(maxPadding, toPadding(minPadding));\n const chartArea = Object.assign({\n maxPadding,\n w: availableWidth,\n h: availableHeight,\n x: padding.left,\n y: padding.top\n }, padding);\n\n const stacks = setLayoutDims(verticalBoxes.concat(horizontalBoxes), params);\n\n // First fit the fullSize boxes, to reduce probability of re-fitting.\n fitBoxes(boxes.fullSize, chartArea, params, stacks);\n\n // Then fit vertical boxes\n fitBoxes(verticalBoxes, chartArea, params, stacks);\n\n // Then fit horizontal boxes\n if (fitBoxes(horizontalBoxes, chartArea, params, stacks)) {\n // if the area changed, re-fit vertical boxes\n fitBoxes(verticalBoxes, chartArea, params, stacks);\n }\n\n handleMaxPadding(chartArea);\n\n // Finally place the boxes to correct coordinates\n placeBoxes(boxes.leftAndTop, chartArea, params, stacks);\n\n // Move to opposite side of chart\n chartArea.x += chartArea.w;\n chartArea.y += chartArea.h;\n\n placeBoxes(boxes.rightAndBottom, chartArea, params, stacks);\n\n chart.chartArea = {\n left: chartArea.left,\n top: chartArea.top,\n right: chartArea.left + chartArea.w,\n bottom: chartArea.top + chartArea.h,\n height: chartArea.h,\n width: chartArea.w,\n };\n\n // Finally update boxes in chartArea (radial scale for example)\n each(boxes.chartArea, (layout) => {\n const box = layout.box;\n Object.assign(box, chart.chartArea);\n box.update(chartArea.w, chartArea.h, {left: 0, top: 0, right: 0, bottom: 0});\n });\n }\n};\n","\n/**\n * @typedef { import('../core/core.controller.js').default } Chart\n */\n\n/**\n * Abstract class that allows abstracting platform dependencies away from the chart.\n */\nexport default class BasePlatform {\n /**\n\t * Called at chart construction time, returns a context2d instance implementing\n\t * the [W3C Canvas 2D Context API standard]{@link https://www.w3.org/TR/2dcontext/}.\n\t * @param {HTMLCanvasElement} canvas - The canvas from which to acquire context (platform specific)\n\t * @param {number} [aspectRatio] - The chart options\n\t */\n acquireContext(canvas, aspectRatio) {} // eslint-disable-line no-unused-vars\n\n /**\n\t * Called at chart destruction time, releases any resources associated to the context\n\t * previously returned by the acquireContext() method.\n\t * @param {CanvasRenderingContext2D} context - The context2d instance\n\t * @returns {boolean} true if the method succeeded, else false\n\t */\n releaseContext(context) { // eslint-disable-line no-unused-vars\n return false;\n }\n\n /**\n\t * Registers the specified listener on the given chart.\n\t * @param {Chart} chart - Chart from which to listen for event\n\t * @param {string} type - The ({@link ChartEvent}) type to listen for\n\t * @param {function} listener - Receives a notification (an object that implements\n\t * the {@link ChartEvent} interface) when an event of the specified type occurs.\n\t */\n addEventListener(chart, type, listener) {} // eslint-disable-line no-unused-vars\n\n /**\n\t * Removes the specified listener previously registered with addEventListener.\n\t * @param {Chart} chart - Chart from which to remove the listener\n\t * @param {string} type - The ({@link ChartEvent}) type to remove\n\t * @param {function} listener - The listener function to remove from the event target.\n\t */\n removeEventListener(chart, type, listener) {} // eslint-disable-line no-unused-vars\n\n /**\n\t * @returns {number} the current devicePixelRatio of the device this platform is connected to.\n\t */\n getDevicePixelRatio() {\n return 1;\n }\n\n /**\n\t * Returns the maximum size in pixels of given canvas element.\n\t * @param {HTMLCanvasElement} element\n\t * @param {number} [width] - content width of parent element\n\t * @param {number} [height] - content height of parent element\n\t * @param {number} [aspectRatio] - aspect ratio to maintain\n\t */\n getMaximumSize(element, width, height, aspectRatio) {\n width = Math.max(0, width || element.width);\n height = height || element.height;\n return {\n width,\n height: Math.max(0, aspectRatio ? Math.floor(width / aspectRatio) : height)\n };\n }\n\n /**\n\t * @param {HTMLCanvasElement} canvas\n\t * @returns {boolean} true if the canvas is attached to the platform, false if not.\n\t */\n isAttached(canvas) { // eslint-disable-line no-unused-vars\n return true;\n }\n\n /**\n * Updates config with platform specific requirements\n * @param {import('../core/core.config.js').default} config\n */\n updateConfig(config) { // eslint-disable-line no-unused-vars\n // no-op\n }\n}\n","/**\n * Platform fallback implementation (minimal).\n * @see https://github.com/chartjs/Chart.js/pull/4591#issuecomment-319575939\n */\n\nimport BasePlatform from './platform.base.js';\n\n/**\n * Platform class for charts without access to the DOM or to many element properties\n * This platform is used by default for any chart passed an OffscreenCanvas.\n * @extends BasePlatform\n */\nexport default class BasicPlatform extends BasePlatform {\n acquireContext(item) {\n // To prevent canvas fingerprinting, some add-ons undefine the getContext\n // method, for example: https://github.com/kkapsner/CanvasBlocker\n // https://github.com/chartjs/Chart.js/issues/2807\n return item && item.getContext && item.getContext('2d') || null;\n }\n updateConfig(config) {\n config.options.animation = false;\n }\n}\n","/**\n * Chart.Platform implementation for targeting a web browser\n */\n\nimport BasePlatform from './platform.base.js';\nimport {_getParentNode, getRelativePosition, supportsEventListenerOptions, readUsedSize, getMaximumSize} from '../helpers/helpers.dom.js';\nimport {throttled} from '../helpers/helpers.extras.js';\nimport {isNullOrUndef} from '../helpers/helpers.core.js';\n\n/**\n * @typedef { import('../core/core.controller.js').default } Chart\n */\n\nconst EXPANDO_KEY = '$chartjs';\n\n/**\n * DOM event types -> Chart.js event types.\n * Note: only events with different types are mapped.\n * @see https://developer.mozilla.org/en-US/docs/Web/Events\n */\nconst EVENT_TYPES = {\n touchstart: 'mousedown',\n touchmove: 'mousemove',\n touchend: 'mouseup',\n pointerenter: 'mouseenter',\n pointerdown: 'mousedown',\n pointermove: 'mousemove',\n pointerup: 'mouseup',\n pointerleave: 'mouseout',\n pointerout: 'mouseout'\n};\n\nconst isNullOrEmpty = value => value === null || value === '';\n/**\n * Initializes the canvas style and render size without modifying the canvas display size,\n * since responsiveness is handled by the controller.resize() method. The config is used\n * to determine the aspect ratio to apply in case no explicit height has been specified.\n * @param {HTMLCanvasElement} canvas\n * @param {number} [aspectRatio]\n */\nfunction initCanvas(canvas, aspectRatio) {\n const style = canvas.style;\n\n // NOTE(SB) canvas.getAttribute('width') !== canvas.width: in the first case it\n // returns null or '' if no explicit value has been set to the canvas attribute.\n const renderHeight = canvas.getAttribute('height');\n const renderWidth = canvas.getAttribute('width');\n\n // Chart.js modifies some canvas values that we want to restore on destroy\n canvas[EXPANDO_KEY] = {\n initial: {\n height: renderHeight,\n width: renderWidth,\n style: {\n display: style.display,\n height: style.height,\n width: style.width\n }\n }\n };\n\n // Force canvas to display as block to avoid extra space caused by inline\n // elements, which would interfere with the responsive resize process.\n // https://github.com/chartjs/Chart.js/issues/2538\n style.display = style.display || 'block';\n // Include possible borders in the size\n style.boxSizing = style.boxSizing || 'border-box';\n\n if (isNullOrEmpty(renderWidth)) {\n const displayWidth = readUsedSize(canvas, 'width');\n if (displayWidth !== undefined) {\n canvas.width = displayWidth;\n }\n }\n\n if (isNullOrEmpty(renderHeight)) {\n if (canvas.style.height === '') {\n // If no explicit render height and style height, let's apply the aspect ratio,\n // which one can be specified by the user but also by charts as default option\n // (i.e. options.aspectRatio). If not specified, use canvas aspect ratio of 2.\n canvas.height = canvas.width / (aspectRatio || 2);\n } else {\n const displayHeight = readUsedSize(canvas, 'height');\n if (displayHeight !== undefined) {\n canvas.height = displayHeight;\n }\n }\n }\n\n return canvas;\n}\n\n// Default passive to true as expected by Chrome for 'touchstart' and 'touchend' events.\n// https://github.com/chartjs/Chart.js/issues/4287\nconst eventListenerOptions = supportsEventListenerOptions ? {passive: true} : false;\n\nfunction addListener(node, type, listener) {\n if (node) {\n node.addEventListener(type, listener, eventListenerOptions);\n }\n}\n\nfunction removeListener(chart, type, listener) {\n if (chart && chart.canvas) {\n chart.canvas.removeEventListener(type, listener, eventListenerOptions);\n }\n}\n\nfunction fromNativeEvent(event, chart) {\n const type = EVENT_TYPES[event.type] || event.type;\n const {x, y} = getRelativePosition(event, chart);\n return {\n type,\n chart,\n native: event,\n x: x !== undefined ? x : null,\n y: y !== undefined ? y : null,\n };\n}\n\nfunction nodeListContains(nodeList, canvas) {\n for (const node of nodeList) {\n if (node === canvas || node.contains(canvas)) {\n return true;\n }\n }\n}\n\nfunction createAttachObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const observer = new MutationObserver(entries => {\n let trigger = false;\n for (const entry of entries) {\n trigger = trigger || nodeListContains(entry.addedNodes, canvas);\n trigger = trigger && !nodeListContains(entry.removedNodes, canvas);\n }\n if (trigger) {\n listener();\n }\n });\n observer.observe(document, {childList: true, subtree: true});\n return observer;\n}\n\nfunction createDetachObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const observer = new MutationObserver(entries => {\n let trigger = false;\n for (const entry of entries) {\n trigger = trigger || nodeListContains(entry.removedNodes, canvas);\n trigger = trigger && !nodeListContains(entry.addedNodes, canvas);\n }\n if (trigger) {\n listener();\n }\n });\n observer.observe(document, {childList: true, subtree: true});\n return observer;\n}\n\nconst drpListeningCharts = new Map();\nlet oldDevicePixelRatio = 0;\n\nfunction onWindowResize() {\n const dpr = window.devicePixelRatio;\n if (dpr === oldDevicePixelRatio) {\n return;\n }\n oldDevicePixelRatio = dpr;\n drpListeningCharts.forEach((resize, chart) => {\n if (chart.currentDevicePixelRatio !== dpr) {\n resize();\n }\n });\n}\n\nfunction listenDevicePixelRatioChanges(chart, resize) {\n if (!drpListeningCharts.size) {\n window.addEventListener('resize', onWindowResize);\n }\n drpListeningCharts.set(chart, resize);\n}\n\nfunction unlistenDevicePixelRatioChanges(chart) {\n drpListeningCharts.delete(chart);\n if (!drpListeningCharts.size) {\n window.removeEventListener('resize', onWindowResize);\n }\n}\n\nfunction createResizeObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const container = canvas && _getParentNode(canvas);\n if (!container) {\n return;\n }\n const resize = throttled((width, height) => {\n const w = container.clientWidth;\n listener(width, height);\n if (w < container.clientWidth) {\n // If the container size shrank during chart resize, let's assume\n // scrollbar appeared. So we resize again with the scrollbar visible -\n // effectively making chart smaller and the scrollbar hidden again.\n // Because we are inside `throttled`, and currently `ticking`, scroll\n // events are ignored during this whole 2 resize process.\n // If we assumed wrong and something else happened, we are resizing\n // twice in a frame (potential performance issue)\n listener();\n }\n }, window);\n\n // @ts-ignore until https://github.com/microsoft/TypeScript/issues/37861 implemented\n const observer = new ResizeObserver(entries => {\n const entry = entries[0];\n const width = entry.contentRect.width;\n const height = entry.contentRect.height;\n // When its container's display is set to 'none' the callback will be called with a\n // size of (0, 0), which will cause the chart to lose its original height, so skip\n // resizing in such case.\n if (width === 0 && height === 0) {\n return;\n }\n resize(width, height);\n });\n observer.observe(container);\n listenDevicePixelRatioChanges(chart, resize);\n\n return observer;\n}\n\nfunction releaseObserver(chart, type, observer) {\n if (observer) {\n observer.disconnect();\n }\n if (type === 'resize') {\n unlistenDevicePixelRatioChanges(chart);\n }\n}\n\nfunction createProxyAndListen(chart, type, listener) {\n const canvas = chart.canvas;\n const proxy = throttled((event) => {\n // This case can occur if the chart is destroyed while waiting\n // for the throttled function to occur. We prevent crashes by checking\n // for a destroyed chart\n if (chart.ctx !== null) {\n listener(fromNativeEvent(event, chart));\n }\n }, chart);\n\n addListener(canvas, type, proxy);\n\n return proxy;\n}\n\n/**\n * Platform class for charts that can access the DOM and global window/document properties\n * @extends BasePlatform\n */\nexport default class DomPlatform extends BasePlatform {\n\n /**\n\t * @param {HTMLCanvasElement} canvas\n\t * @param {number} [aspectRatio]\n\t * @return {CanvasRenderingContext2D|null}\n\t */\n acquireContext(canvas, aspectRatio) {\n // To prevent canvas fingerprinting, some add-ons undefine the getContext\n // method, for example: https://github.com/kkapsner/CanvasBlocker\n // https://github.com/chartjs/Chart.js/issues/2807\n const context = canvas && canvas.getContext && canvas.getContext('2d');\n\n // `instanceof HTMLCanvasElement/CanvasRenderingContext2D` fails when the canvas is\n // inside an iframe or when running in a protected environment. We could guess the\n // types from their toString() value but let's keep things flexible and assume it's\n // a sufficient condition if the canvas has a context2D which has canvas as `canvas`.\n // https://github.com/chartjs/Chart.js/issues/3887\n // https://github.com/chartjs/Chart.js/issues/4102\n // https://github.com/chartjs/Chart.js/issues/4152\n if (context && context.canvas === canvas) {\n // Load platform resources on first chart creation, to make it possible to\n // import the library before setting platform options.\n initCanvas(canvas, aspectRatio);\n return context;\n }\n\n return null;\n }\n\n /**\n\t * @param {CanvasRenderingContext2D} context\n\t */\n releaseContext(context) {\n const canvas = context.canvas;\n if (!canvas[EXPANDO_KEY]) {\n return false;\n }\n\n const initial = canvas[EXPANDO_KEY].initial;\n ['height', 'width'].forEach((prop) => {\n const value = initial[prop];\n if (isNullOrUndef(value)) {\n canvas.removeAttribute(prop);\n } else {\n canvas.setAttribute(prop, value);\n }\n });\n\n const style = initial.style || {};\n Object.keys(style).forEach((key) => {\n canvas.style[key] = style[key];\n });\n\n // The canvas render size might have been changed (and thus the state stack discarded),\n // we can't use save() and restore() to restore the initial state. So make sure that at\n // least the canvas context is reset to the default state by setting the canvas width.\n // https://www.w3.org/TR/2011/WD-html5-20110525/the-canvas-element.html\n // eslint-disable-next-line no-self-assign\n canvas.width = canvas.width;\n\n delete canvas[EXPANDO_KEY];\n return true;\n }\n\n /**\n\t *\n\t * @param {Chart} chart\n\t * @param {string} type\n\t * @param {function} listener\n\t */\n addEventListener(chart, type, listener) {\n // Can have only one listener per type, so make sure previous is removed\n this.removeEventListener(chart, type);\n\n const proxies = chart.$proxies || (chart.$proxies = {});\n const handlers = {\n attach: createAttachObserver,\n detach: createDetachObserver,\n resize: createResizeObserver\n };\n const handler = handlers[type] || createProxyAndListen;\n proxies[type] = handler(chart, type, listener);\n }\n\n\n /**\n\t * @param {Chart} chart\n\t * @param {string} type\n\t */\n removeEventListener(chart, type) {\n const proxies = chart.$proxies || (chart.$proxies = {});\n const proxy = proxies[type];\n\n if (!proxy) {\n return;\n }\n\n const handlers = {\n attach: releaseObserver,\n detach: releaseObserver,\n resize: releaseObserver\n };\n const handler = handlers[type] || removeListener;\n handler(chart, type, proxy);\n proxies[type] = undefined;\n }\n\n getDevicePixelRatio() {\n return window.devicePixelRatio;\n }\n\n /**\n\t * @param {HTMLCanvasElement} canvas\n\t * @param {number} [width] - content width of parent element\n\t * @param {number} [height] - content height of parent element\n\t * @param {number} [aspectRatio] - aspect ratio to maintain\n\t */\n getMaximumSize(canvas, width, height, aspectRatio) {\n return getMaximumSize(canvas, width, height, aspectRatio);\n }\n\n /**\n\t * @param {HTMLCanvasElement} canvas\n\t */\n isAttached(canvas) {\n const container = canvas && _getParentNode(canvas);\n return !!(container && container.isConnected);\n }\n}\n","import type {AnyObject} from '../types/basic.js';\nimport type {Point} from '../types/geometric.js';\nimport type {Animation} from '../types/animation.js';\nimport {isNumber} from '../helpers/helpers.math.js';\n\nexport default class Element {\n\n static defaults = {};\n static defaultRoutes = undefined;\n\n x: number;\n y: number;\n active = false;\n options: O;\n $animations: Record;\n\n tooltipPosition(useFinalPosition: boolean): Point {\n const {x, y} = this.getProps(['x', 'y'], useFinalPosition);\n return {x, y} as Point;\n }\n\n hasValue() {\n return isNumber(this.x) && isNumber(this.y);\n }\n\n /**\n * Gets the current or final value of each prop. Can return extra properties (whole object).\n * @param props - properties to get\n * @param [final] - get the final value (animation target)\n */\n getProps

(props: P, final?: boolean): Pick;\n getProps

(props: P[], final?: boolean): Partial>;\n getProps(props: string[], final?: boolean): Partial> {\n const anims = this.$animations;\n if (!final || !anims) {\n // let's not create an object, if not needed\n return this as Record;\n }\n const ret: Record = {};\n props.forEach((prop) => {\n ret[prop] = anims[prop] && anims[prop].active() ? anims[prop]._to : this[prop as string];\n });\n return ret;\n }\n}\n","import {isNullOrUndef, valueOrDefault} from '../helpers/helpers.core.js';\nimport {_factorize} from '../helpers/helpers.math.js';\n\n\n/**\n * @typedef { import('./core.controller.js').default } Chart\n * @typedef {{value:number | string, label?:string, major?:boolean, $context?:any}} Tick\n */\n\n/**\n * Returns a subset of ticks to be plotted to avoid overlapping labels.\n * @param {import('./core.scale.js').default} scale\n * @param {Tick[]} ticks\n * @return {Tick[]}\n * @private\n */\nexport function autoSkip(scale, ticks) {\n const tickOpts = scale.options.ticks;\n const determinedMaxTicks = determineMaxTicks(scale);\n const ticksLimit = Math.min(tickOpts.maxTicksLimit || determinedMaxTicks, determinedMaxTicks);\n const majorIndices = tickOpts.major.enabled ? getMajorIndices(ticks) : [];\n const numMajorIndices = majorIndices.length;\n const first = majorIndices[0];\n const last = majorIndices[numMajorIndices - 1];\n const newTicks = [];\n\n // If there are too many major ticks to display them all\n if (numMajorIndices > ticksLimit) {\n skipMajors(ticks, newTicks, majorIndices, numMajorIndices / ticksLimit);\n return newTicks;\n }\n\n const spacing = calculateSpacing(majorIndices, ticks, ticksLimit);\n\n if (numMajorIndices > 0) {\n let i, ilen;\n const avgMajorSpacing = numMajorIndices > 1 ? Math.round((last - first) / (numMajorIndices - 1)) : null;\n skip(ticks, newTicks, spacing, isNullOrUndef(avgMajorSpacing) ? 0 : first - avgMajorSpacing, first);\n for (i = 0, ilen = numMajorIndices - 1; i < ilen; i++) {\n skip(ticks, newTicks, spacing, majorIndices[i], majorIndices[i + 1]);\n }\n skip(ticks, newTicks, spacing, last, isNullOrUndef(avgMajorSpacing) ? ticks.length : last + avgMajorSpacing);\n return newTicks;\n }\n skip(ticks, newTicks, spacing);\n return newTicks;\n}\n\nfunction determineMaxTicks(scale) {\n const offset = scale.options.offset;\n const tickLength = scale._tickSize();\n const maxScale = scale._length / tickLength + (offset ? 0 : 1);\n const maxChart = scale._maxLength / tickLength;\n return Math.floor(Math.min(maxScale, maxChart));\n}\n\n/**\n * @param {number[]} majorIndices\n * @param {Tick[]} ticks\n * @param {number} ticksLimit\n */\nfunction calculateSpacing(majorIndices, ticks, ticksLimit) {\n const evenMajorSpacing = getEvenSpacing(majorIndices);\n const spacing = ticks.length / ticksLimit;\n\n // If the major ticks are evenly spaced apart, place the minor ticks\n // so that they divide the major ticks into even chunks\n if (!evenMajorSpacing) {\n return Math.max(spacing, 1);\n }\n\n const factors = _factorize(evenMajorSpacing);\n for (let i = 0, ilen = factors.length - 1; i < ilen; i++) {\n const factor = factors[i];\n if (factor > spacing) {\n return factor;\n }\n }\n return Math.max(spacing, 1);\n}\n\n/**\n * @param {Tick[]} ticks\n */\nfunction getMajorIndices(ticks) {\n const result = [];\n let i, ilen;\n for (i = 0, ilen = ticks.length; i < ilen; i++) {\n if (ticks[i].major) {\n result.push(i);\n }\n }\n return result;\n}\n\n/**\n * @param {Tick[]} ticks\n * @param {Tick[]} newTicks\n * @param {number[]} majorIndices\n * @param {number} spacing\n */\nfunction skipMajors(ticks, newTicks, majorIndices, spacing) {\n let count = 0;\n let next = majorIndices[0];\n let i;\n\n spacing = Math.ceil(spacing);\n for (i = 0; i < ticks.length; i++) {\n if (i === next) {\n newTicks.push(ticks[i]);\n count++;\n next = majorIndices[count * spacing];\n }\n }\n}\n\n/**\n * @param {Tick[]} ticks\n * @param {Tick[]} newTicks\n * @param {number} spacing\n * @param {number} [majorStart]\n * @param {number} [majorEnd]\n */\nfunction skip(ticks, newTicks, spacing, majorStart, majorEnd) {\n const start = valueOrDefault(majorStart, 0);\n const end = Math.min(valueOrDefault(majorEnd, ticks.length), ticks.length);\n let count = 0;\n let length, i, next;\n\n spacing = Math.ceil(spacing);\n if (majorEnd) {\n length = majorEnd - majorStart;\n spacing = length / Math.floor(length / spacing);\n }\n\n next = start;\n\n while (next < 0) {\n count++;\n next = Math.round(start + count * spacing);\n }\n\n for (i = Math.max(start, 0); i < end; i++) {\n if (i === next) {\n newTicks.push(ticks[i]);\n count++;\n next = Math.round(start + count * spacing);\n }\n }\n}\n\n\n/**\n * @param {number[]} arr\n */\nfunction getEvenSpacing(arr) {\n const len = arr.length;\n let i, diff;\n\n if (len < 2) {\n return false;\n }\n\n for (diff = arr[0], i = 1; i < len; ++i) {\n if (arr[i] - arr[i - 1] !== diff) {\n return false;\n }\n }\n return diff;\n}\n","import Element from './core.element.js';\nimport {_alignPixel, _measureText, renderText, clipArea, unclipArea} from '../helpers/helpers.canvas.js';\nimport {callback as call, each, finiteOrDefault, isArray, isFinite, isNullOrUndef, isObject, valueOrDefault} from '../helpers/helpers.core.js';\nimport {toDegrees, toRadians, _int16Range, _limitValue, HALF_PI} from '../helpers/helpers.math.js';\nimport {_alignStartEnd, _toLeftRightCenter} from '../helpers/helpers.extras.js';\nimport {createContext, toFont, toPadding, _addGrace} from '../helpers/helpers.options.js';\nimport {autoSkip} from './core.scale.autoskip.js';\n\nconst reverseAlign = (align) => align === 'left' ? 'right' : align === 'right' ? 'left' : align;\nconst offsetFromEdge = (scale, edge, offset) => edge === 'top' || edge === 'left' ? scale[edge] + offset : scale[edge] - offset;\nconst getTicksLimit = (ticksLength, maxTicksLimit) => Math.min(maxTicksLimit || ticksLength, ticksLength);\n\n/**\n * @typedef { import('../types/index.js').Chart } Chart\n * @typedef {{value:number | string, label?:string, major?:boolean, $context?:any}} Tick\n */\n\n/**\n * Returns a new array containing numItems from arr\n * @param {any[]} arr\n * @param {number} numItems\n */\nfunction sample(arr, numItems) {\n const result = [];\n const increment = arr.length / numItems;\n const len = arr.length;\n let i = 0;\n\n for (; i < len; i += increment) {\n result.push(arr[Math.floor(i)]);\n }\n return result;\n}\n\n/**\n * @param {Scale} scale\n * @param {number} index\n * @param {boolean} offsetGridLines\n */\nfunction getPixelForGridLine(scale, index, offsetGridLines) {\n const length = scale.ticks.length;\n const validIndex = Math.min(index, length - 1);\n const start = scale._startPixel;\n const end = scale._endPixel;\n const epsilon = 1e-6; // 1e-6 is margin in pixels for accumulated error.\n let lineValue = scale.getPixelForTick(validIndex);\n let offset;\n\n if (offsetGridLines) {\n if (length === 1) {\n offset = Math.max(lineValue - start, end - lineValue);\n } else if (index === 0) {\n offset = (scale.getPixelForTick(1) - lineValue) / 2;\n } else {\n offset = (lineValue - scale.getPixelForTick(validIndex - 1)) / 2;\n }\n lineValue += validIndex < index ? offset : -offset;\n\n // Return undefined if the pixel is out of the range\n if (lineValue < start - epsilon || lineValue > end + epsilon) {\n return;\n }\n }\n return lineValue;\n}\n\n/**\n * @param {object} caches\n * @param {number} length\n */\nfunction garbageCollect(caches, length) {\n each(caches, (cache) => {\n const gc = cache.gc;\n const gcLen = gc.length / 2;\n let i;\n if (gcLen > length) {\n for (i = 0; i < gcLen; ++i) {\n delete cache.data[gc[i]];\n }\n gc.splice(0, gcLen);\n }\n });\n}\n\n/**\n * @param {object} options\n */\nfunction getTickMarkLength(options) {\n return options.drawTicks ? options.tickLength : 0;\n}\n\n/**\n * @param {object} options\n */\nfunction getTitleHeight(options, fallback) {\n if (!options.display) {\n return 0;\n }\n\n const font = toFont(options.font, fallback);\n const padding = toPadding(options.padding);\n const lines = isArray(options.text) ? options.text.length : 1;\n\n return (lines * font.lineHeight) + padding.height;\n}\n\nfunction createScaleContext(parent, scale) {\n return createContext(parent, {\n scale,\n type: 'scale'\n });\n}\n\nfunction createTickContext(parent, index, tick) {\n return createContext(parent, {\n tick,\n index,\n type: 'tick'\n });\n}\n\nfunction titleAlign(align, position, reverse) {\n /** @type {CanvasTextAlign} */\n let ret = _toLeftRightCenter(align);\n if ((reverse && position !== 'right') || (!reverse && position === 'right')) {\n ret = reverseAlign(ret);\n }\n return ret;\n}\n\nfunction titleArgs(scale, offset, position, align) {\n const {top, left, bottom, right, chart} = scale;\n const {chartArea, scales} = chart;\n let rotation = 0;\n let maxWidth, titleX, titleY;\n const height = bottom - top;\n const width = right - left;\n\n if (scale.isHorizontal()) {\n titleX = _alignStartEnd(align, left, right);\n\n if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n titleY = scales[positionAxisID].getPixelForValue(value) + height - offset;\n } else if (position === 'center') {\n titleY = (chartArea.bottom + chartArea.top) / 2 + height - offset;\n } else {\n titleY = offsetFromEdge(scale, position, offset);\n }\n maxWidth = right - left;\n } else {\n if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n titleX = scales[positionAxisID].getPixelForValue(value) - width + offset;\n } else if (position === 'center') {\n titleX = (chartArea.left + chartArea.right) / 2 - width + offset;\n } else {\n titleX = offsetFromEdge(scale, position, offset);\n }\n titleY = _alignStartEnd(align, bottom, top);\n rotation = position === 'left' ? -HALF_PI : HALF_PI;\n }\n return {titleX, titleY, maxWidth, rotation};\n}\n\nexport default class Scale extends Element {\n\n // eslint-disable-next-line max-statements\n constructor(cfg) {\n super();\n\n /** @type {string} */\n this.id = cfg.id;\n /** @type {string} */\n this.type = cfg.type;\n /** @type {any} */\n this.options = undefined;\n /** @type {CanvasRenderingContext2D} */\n this.ctx = cfg.ctx;\n /** @type {Chart} */\n this.chart = cfg.chart;\n\n // implements box\n /** @type {number} */\n this.top = undefined;\n /** @type {number} */\n this.bottom = undefined;\n /** @type {number} */\n this.left = undefined;\n /** @type {number} */\n this.right = undefined;\n /** @type {number} */\n this.width = undefined;\n /** @type {number} */\n this.height = undefined;\n this._margins = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n };\n /** @type {number} */\n this.maxWidth = undefined;\n /** @type {number} */\n this.maxHeight = undefined;\n /** @type {number} */\n this.paddingTop = undefined;\n /** @type {number} */\n this.paddingBottom = undefined;\n /** @type {number} */\n this.paddingLeft = undefined;\n /** @type {number} */\n this.paddingRight = undefined;\n\n // scale-specific properties\n /** @type {string=} */\n this.axis = undefined;\n /** @type {number=} */\n this.labelRotation = undefined;\n this.min = undefined;\n this.max = undefined;\n this._range = undefined;\n /** @type {Tick[]} */\n this.ticks = [];\n /** @type {object[]|null} */\n this._gridLineItems = null;\n /** @type {object[]|null} */\n this._labelItems = null;\n /** @type {object|null} */\n this._labelSizes = null;\n this._length = 0;\n this._maxLength = 0;\n this._longestTextCache = {};\n /** @type {number} */\n this._startPixel = undefined;\n /** @type {number} */\n this._endPixel = undefined;\n this._reversePixels = false;\n this._userMax = undefined;\n this._userMin = undefined;\n this._suggestedMax = undefined;\n this._suggestedMin = undefined;\n this._ticksLength = 0;\n this._borderValue = 0;\n this._cache = {};\n this._dataLimitsCached = false;\n this.$context = undefined;\n }\n\n /**\n\t * @param {any} options\n\t * @since 3.0\n\t */\n init(options) {\n this.options = options.setContext(this.getContext());\n\n this.axis = options.axis;\n\n // parse min/max value, so we can properly determine min/max for other scales\n this._userMin = this.parse(options.min);\n this._userMax = this.parse(options.max);\n this._suggestedMin = this.parse(options.suggestedMin);\n this._suggestedMax = this.parse(options.suggestedMax);\n }\n\n /**\n\t * Parse a supported input value to internal representation.\n\t * @param {*} raw\n\t * @param {number} [index]\n\t * @since 3.0\n\t */\n parse(raw, index) { // eslint-disable-line no-unused-vars\n return raw;\n }\n\n /**\n\t * @return {{min: number, max: number, minDefined: boolean, maxDefined: boolean}}\n\t * @protected\n\t * @since 3.0\n\t */\n getUserBounds() {\n let {_userMin, _userMax, _suggestedMin, _suggestedMax} = this;\n _userMin = finiteOrDefault(_userMin, Number.POSITIVE_INFINITY);\n _userMax = finiteOrDefault(_userMax, Number.NEGATIVE_INFINITY);\n _suggestedMin = finiteOrDefault(_suggestedMin, Number.POSITIVE_INFINITY);\n _suggestedMax = finiteOrDefault(_suggestedMax, Number.NEGATIVE_INFINITY);\n return {\n min: finiteOrDefault(_userMin, _suggestedMin),\n max: finiteOrDefault(_userMax, _suggestedMax),\n minDefined: isFinite(_userMin),\n maxDefined: isFinite(_userMax)\n };\n }\n\n /**\n\t * @param {boolean} canStack\n\t * @return {{min: number, max: number}}\n\t * @protected\n\t * @since 3.0\n\t */\n getMinMax(canStack) {\n let {min, max, minDefined, maxDefined} = this.getUserBounds();\n let range;\n\n if (minDefined && maxDefined) {\n return {min, max};\n }\n\n const metas = this.getMatchingVisibleMetas();\n for (let i = 0, ilen = metas.length; i < ilen; ++i) {\n range = metas[i].controller.getMinMax(this, canStack);\n if (!minDefined) {\n min = Math.min(min, range.min);\n }\n if (!maxDefined) {\n max = Math.max(max, range.max);\n }\n }\n\n // Make sure min <= max when only min or max is defined by user and the data is outside that range\n min = maxDefined && min > max ? max : min;\n max = minDefined && min > max ? min : max;\n\n return {\n min: finiteOrDefault(min, finiteOrDefault(max, min)),\n max: finiteOrDefault(max, finiteOrDefault(min, max))\n };\n }\n\n /**\n\t * Get the padding needed for the scale\n\t * @return {{top: number, left: number, bottom: number, right: number}} the necessary padding\n\t * @private\n\t */\n getPadding() {\n return {\n left: this.paddingLeft || 0,\n top: this.paddingTop || 0,\n right: this.paddingRight || 0,\n bottom: this.paddingBottom || 0\n };\n }\n\n /**\n\t * Returns the scale tick objects\n\t * @return {Tick[]}\n\t * @since 2.7\n\t */\n getTicks() {\n return this.ticks;\n }\n\n /**\n\t * @return {string[]}\n\t */\n getLabels() {\n const data = this.chart.data;\n return this.options.labels || (this.isHorizontal() ? data.xLabels : data.yLabels) || data.labels || [];\n }\n\n /**\n * @return {import('../types.js').LabelItem[]}\n */\n getLabelItems(chartArea = this.chart.chartArea) {\n const items = this._labelItems || (this._labelItems = this._computeLabelItems(chartArea));\n return items;\n }\n\n // When a new layout is created, reset the data limits cache\n beforeLayout() {\n this._cache = {};\n this._dataLimitsCached = false;\n }\n\n // These methods are ordered by lifecycle. Utilities then follow.\n // Any function defined here is inherited by all scale types.\n // Any function can be extended by the scale type\n\n beforeUpdate() {\n call(this.options.beforeUpdate, [this]);\n }\n\n /**\n\t * @param {number} maxWidth - the max width in pixels\n\t * @param {number} maxHeight - the max height in pixels\n\t * @param {{top: number, left: number, bottom: number, right: number}} margins - the space between the edge of the other scales and edge of the chart\n\t * This space comes from two sources:\n\t * - padding - space that's required to show the labels at the edges of the scale\n\t * - thickness of scales or legends in another orientation\n\t */\n update(maxWidth, maxHeight, margins) {\n const {beginAtZero, grace, ticks: tickOpts} = this.options;\n const sampleSize = tickOpts.sampleSize;\n\n // Update Lifecycle - Probably don't want to ever extend or overwrite this function ;)\n this.beforeUpdate();\n\n // Absorb the master measurements\n this.maxWidth = maxWidth;\n this.maxHeight = maxHeight;\n this._margins = margins = Object.assign({\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n }, margins);\n\n this.ticks = null;\n this._labelSizes = null;\n this._gridLineItems = null;\n this._labelItems = null;\n\n // Dimensions\n this.beforeSetDimensions();\n this.setDimensions();\n this.afterSetDimensions();\n\n this._maxLength = this.isHorizontal()\n ? this.width + margins.left + margins.right\n : this.height + margins.top + margins.bottom;\n\n // Data min/max\n if (!this._dataLimitsCached) {\n this.beforeDataLimits();\n this.determineDataLimits();\n this.afterDataLimits();\n this._range = _addGrace(this, grace, beginAtZero);\n this._dataLimitsCached = true;\n }\n\n this.beforeBuildTicks();\n\n this.ticks = this.buildTicks() || [];\n\n // Allow modification of ticks in callback.\n this.afterBuildTicks();\n\n // Compute tick rotation and fit using a sampled subset of labels\n // We generally don't need to compute the size of every single label for determining scale size\n const samplingEnabled = sampleSize < this.ticks.length;\n this._convertTicksToLabels(samplingEnabled ? sample(this.ticks, sampleSize) : this.ticks);\n\n // configure is called twice, once here, once from core.controller.updateLayout.\n // Here we haven't been positioned yet, but dimensions are correct.\n // Variables set in configure are needed for calculateLabelRotation, and\n // it's ok that coordinates are not correct there, only dimensions matter.\n this.configure();\n\n // Tick Rotation\n this.beforeCalculateLabelRotation();\n this.calculateLabelRotation(); // Preconditions: number of ticks and sizes of largest labels must be calculated beforehand\n this.afterCalculateLabelRotation();\n\n // Auto-skip\n if (tickOpts.display && (tickOpts.autoSkip || tickOpts.source === 'auto')) {\n this.ticks = autoSkip(this, this.ticks);\n this._labelSizes = null;\n this.afterAutoSkip();\n }\n\n if (samplingEnabled) {\n // Generate labels using all non-skipped ticks\n this._convertTicksToLabels(this.ticks);\n }\n\n this.beforeFit();\n this.fit(); // Preconditions: label rotation and label sizes must be calculated beforehand\n this.afterFit();\n\n // IMPORTANT: after this point, we consider that `this.ticks` will NEVER change!\n\n this.afterUpdate();\n }\n\n /**\n\t * @protected\n\t */\n configure() {\n let reversePixels = this.options.reverse;\n let startPixel, endPixel;\n\n if (this.isHorizontal()) {\n startPixel = this.left;\n endPixel = this.right;\n } else {\n startPixel = this.top;\n endPixel = this.bottom;\n // by default vertical scales are from bottom to top, so pixels are reversed\n reversePixels = !reversePixels;\n }\n this._startPixel = startPixel;\n this._endPixel = endPixel;\n this._reversePixels = reversePixels;\n this._length = endPixel - startPixel;\n this._alignToPixels = this.options.alignToPixels;\n }\n\n afterUpdate() {\n call(this.options.afterUpdate, [this]);\n }\n\n //\n\n beforeSetDimensions() {\n call(this.options.beforeSetDimensions, [this]);\n }\n setDimensions() {\n // Set the unconstrained dimension before label rotation\n if (this.isHorizontal()) {\n // Reset position before calculating rotation\n this.width = this.maxWidth;\n this.left = 0;\n this.right = this.width;\n } else {\n this.height = this.maxHeight;\n\n // Reset position before calculating rotation\n this.top = 0;\n this.bottom = this.height;\n }\n\n // Reset padding\n this.paddingLeft = 0;\n this.paddingTop = 0;\n this.paddingRight = 0;\n this.paddingBottom = 0;\n }\n afterSetDimensions() {\n call(this.options.afterSetDimensions, [this]);\n }\n\n _callHooks(name) {\n this.chart.notifyPlugins(name, this.getContext());\n call(this.options[name], [this]);\n }\n\n // Data limits\n beforeDataLimits() {\n this._callHooks('beforeDataLimits');\n }\n determineDataLimits() {}\n afterDataLimits() {\n this._callHooks('afterDataLimits');\n }\n\n //\n beforeBuildTicks() {\n this._callHooks('beforeBuildTicks');\n }\n /**\n\t * @return {object[]} the ticks\n\t */\n buildTicks() {\n return [];\n }\n afterBuildTicks() {\n this._callHooks('afterBuildTicks');\n }\n\n beforeTickToLabelConversion() {\n call(this.options.beforeTickToLabelConversion, [this]);\n }\n /**\n\t * Convert ticks to label strings\n\t * @param {Tick[]} ticks\n\t */\n generateTickLabels(ticks) {\n const tickOpts = this.options.ticks;\n let i, ilen, tick;\n for (i = 0, ilen = ticks.length; i < ilen; i++) {\n tick = ticks[i];\n tick.label = call(tickOpts.callback, [tick.value, i, ticks], this);\n }\n }\n afterTickToLabelConversion() {\n call(this.options.afterTickToLabelConversion, [this]);\n }\n\n //\n\n beforeCalculateLabelRotation() {\n call(this.options.beforeCalculateLabelRotation, [this]);\n }\n calculateLabelRotation() {\n const options = this.options;\n const tickOpts = options.ticks;\n const numTicks = getTicksLimit(this.ticks.length, options.ticks.maxTicksLimit);\n const minRotation = tickOpts.minRotation || 0;\n const maxRotation = tickOpts.maxRotation;\n let labelRotation = minRotation;\n let tickWidth, maxHeight, maxLabelDiagonal;\n\n if (!this._isVisible() || !tickOpts.display || minRotation >= maxRotation || numTicks <= 1 || !this.isHorizontal()) {\n this.labelRotation = minRotation;\n return;\n }\n\n const labelSizes = this._getLabelSizes();\n const maxLabelWidth = labelSizes.widest.width;\n const maxLabelHeight = labelSizes.highest.height;\n\n // Estimate the width of each grid based on the canvas width, the maximum\n // label width and the number of tick intervals\n const maxWidth = _limitValue(this.chart.width - maxLabelWidth, 0, this.maxWidth);\n tickWidth = options.offset ? this.maxWidth / numTicks : maxWidth / (numTicks - 1);\n\n // Allow 3 pixels x2 padding either side for label readability\n if (maxLabelWidth + 6 > tickWidth) {\n tickWidth = maxWidth / (numTicks - (options.offset ? 0.5 : 1));\n maxHeight = this.maxHeight - getTickMarkLength(options.grid)\n\t\t\t\t- tickOpts.padding - getTitleHeight(options.title, this.chart.options.font);\n maxLabelDiagonal = Math.sqrt(maxLabelWidth * maxLabelWidth + maxLabelHeight * maxLabelHeight);\n labelRotation = toDegrees(Math.min(\n Math.asin(_limitValue((labelSizes.highest.height + 6) / tickWidth, -1, 1)),\n Math.asin(_limitValue(maxHeight / maxLabelDiagonal, -1, 1)) - Math.asin(_limitValue(maxLabelHeight / maxLabelDiagonal, -1, 1))\n ));\n labelRotation = Math.max(minRotation, Math.min(maxRotation, labelRotation));\n }\n\n this.labelRotation = labelRotation;\n }\n afterCalculateLabelRotation() {\n call(this.options.afterCalculateLabelRotation, [this]);\n }\n afterAutoSkip() {}\n\n //\n\n beforeFit() {\n call(this.options.beforeFit, [this]);\n }\n fit() {\n // Reset\n const minSize = {\n width: 0,\n height: 0\n };\n\n const {chart, options: {ticks: tickOpts, title: titleOpts, grid: gridOpts}} = this;\n const display = this._isVisible();\n const isHorizontal = this.isHorizontal();\n\n if (display) {\n const titleHeight = getTitleHeight(titleOpts, chart.options.font);\n if (isHorizontal) {\n minSize.width = this.maxWidth;\n minSize.height = getTickMarkLength(gridOpts) + titleHeight;\n } else {\n minSize.height = this.maxHeight; // fill all the height\n minSize.width = getTickMarkLength(gridOpts) + titleHeight;\n }\n\n // Don't bother fitting the ticks if we are not showing the labels\n if (tickOpts.display && this.ticks.length) {\n const {first, last, widest, highest} = this._getLabelSizes();\n const tickPadding = tickOpts.padding * 2;\n const angleRadians = toRadians(this.labelRotation);\n const cos = Math.cos(angleRadians);\n const sin = Math.sin(angleRadians);\n\n if (isHorizontal) {\n // A horizontal axis is more constrained by the height.\n const labelHeight = tickOpts.mirror ? 0 : sin * widest.width + cos * highest.height;\n minSize.height = Math.min(this.maxHeight, minSize.height + labelHeight + tickPadding);\n } else {\n // A vertical axis is more constrained by the width. Labels are the\n // dominant factor here, so get that length first and account for padding\n const labelWidth = tickOpts.mirror ? 0 : cos * widest.width + sin * highest.height;\n\n minSize.width = Math.min(this.maxWidth, minSize.width + labelWidth + tickPadding);\n }\n this._calculatePadding(first, last, sin, cos);\n }\n }\n\n this._handleMargins();\n\n if (isHorizontal) {\n this.width = this._length = chart.width - this._margins.left - this._margins.right;\n this.height = minSize.height;\n } else {\n this.width = minSize.width;\n this.height = this._length = chart.height - this._margins.top - this._margins.bottom;\n }\n }\n\n _calculatePadding(first, last, sin, cos) {\n const {ticks: {align, padding}, position} = this.options;\n const isRotated = this.labelRotation !== 0;\n const labelsBelowTicks = position !== 'top' && this.axis === 'x';\n\n if (this.isHorizontal()) {\n const offsetLeft = this.getPixelForTick(0) - this.left;\n const offsetRight = this.right - this.getPixelForTick(this.ticks.length - 1);\n let paddingLeft = 0;\n let paddingRight = 0;\n\n // Ensure that our ticks are always inside the canvas. When rotated, ticks are right aligned\n // which means that the right padding is dominated by the font height\n if (isRotated) {\n if (labelsBelowTicks) {\n paddingLeft = cos * first.width;\n paddingRight = sin * last.height;\n } else {\n paddingLeft = sin * first.height;\n paddingRight = cos * last.width;\n }\n } else if (align === 'start') {\n paddingRight = last.width;\n } else if (align === 'end') {\n paddingLeft = first.width;\n } else if (align !== 'inner') {\n paddingLeft = first.width / 2;\n paddingRight = last.width / 2;\n }\n\n // Adjust padding taking into account changes in offsets\n this.paddingLeft = Math.max((paddingLeft - offsetLeft + padding) * this.width / (this.width - offsetLeft), 0);\n this.paddingRight = Math.max((paddingRight - offsetRight + padding) * this.width / (this.width - offsetRight), 0);\n } else {\n let paddingTop = last.height / 2;\n let paddingBottom = first.height / 2;\n\n if (align === 'start') {\n paddingTop = 0;\n paddingBottom = first.height;\n } else if (align === 'end') {\n paddingTop = last.height;\n paddingBottom = 0;\n }\n\n this.paddingTop = paddingTop + padding;\n this.paddingBottom = paddingBottom + padding;\n }\n }\n\n /**\n\t * Handle margins and padding interactions\n\t * @private\n\t */\n _handleMargins() {\n if (this._margins) {\n this._margins.left = Math.max(this.paddingLeft, this._margins.left);\n this._margins.top = Math.max(this.paddingTop, this._margins.top);\n this._margins.right = Math.max(this.paddingRight, this._margins.right);\n this._margins.bottom = Math.max(this.paddingBottom, this._margins.bottom);\n }\n }\n\n afterFit() {\n call(this.options.afterFit, [this]);\n }\n\n // Shared Methods\n /**\n\t * @return {boolean}\n\t */\n isHorizontal() {\n const {axis, position} = this.options;\n return position === 'top' || position === 'bottom' || axis === 'x';\n }\n /**\n\t * @return {boolean}\n\t */\n isFullSize() {\n return this.options.fullSize;\n }\n\n /**\n\t * @param {Tick[]} ticks\n\t * @private\n\t */\n _convertTicksToLabels(ticks) {\n this.beforeTickToLabelConversion();\n\n this.generateTickLabels(ticks);\n\n // Ticks should be skipped when callback returns null or undef, so lets remove those.\n let i, ilen;\n for (i = 0, ilen = ticks.length; i < ilen; i++) {\n if (isNullOrUndef(ticks[i].label)) {\n ticks.splice(i, 1);\n ilen--;\n i--;\n }\n }\n\n this.afterTickToLabelConversion();\n }\n\n /**\n\t * @return {{ first: object, last: object, widest: object, highest: object, widths: Array, heights: array }}\n\t * @private\n\t */\n _getLabelSizes() {\n let labelSizes = this._labelSizes;\n\n if (!labelSizes) {\n const sampleSize = this.options.ticks.sampleSize;\n let ticks = this.ticks;\n if (sampleSize < ticks.length) {\n ticks = sample(ticks, sampleSize);\n }\n\n this._labelSizes = labelSizes = this._computeLabelSizes(ticks, ticks.length, this.options.ticks.maxTicksLimit);\n }\n\n return labelSizes;\n }\n\n /**\n\t * Returns {width, height, offset} objects for the first, last, widest, highest tick\n\t * labels where offset indicates the anchor point offset from the top in pixels.\n\t * @return {{ first: object, last: object, widest: object, highest: object, widths: Array, heights: array }}\n\t * @private\n\t */\n _computeLabelSizes(ticks, length, maxTicksLimit) {\n const {ctx, _longestTextCache: caches} = this;\n const widths = [];\n const heights = [];\n const increment = Math.floor(length / getTicksLimit(length, maxTicksLimit));\n let widestLabelSize = 0;\n let highestLabelSize = 0;\n let i, j, jlen, label, tickFont, fontString, cache, lineHeight, width, height, nestedLabel;\n\n for (i = 0; i < length; i += increment) {\n label = ticks[i].label;\n tickFont = this._resolveTickFontOptions(i);\n ctx.font = fontString = tickFont.string;\n cache = caches[fontString] = caches[fontString] || {data: {}, gc: []};\n lineHeight = tickFont.lineHeight;\n width = height = 0;\n // Undefined labels and arrays should not be measured\n if (!isNullOrUndef(label) && !isArray(label)) {\n width = _measureText(ctx, cache.data, cache.gc, width, label);\n height = lineHeight;\n } else if (isArray(label)) {\n // if it is an array let's measure each element\n for (j = 0, jlen = label.length; j < jlen; ++j) {\n nestedLabel = /** @type {string} */ (label[j]);\n // Undefined labels and arrays should not be measured\n if (!isNullOrUndef(nestedLabel) && !isArray(nestedLabel)) {\n width = _measureText(ctx, cache.data, cache.gc, width, nestedLabel);\n height += lineHeight;\n }\n }\n }\n widths.push(width);\n heights.push(height);\n widestLabelSize = Math.max(width, widestLabelSize);\n highestLabelSize = Math.max(height, highestLabelSize);\n }\n garbageCollect(caches, length);\n\n const widest = widths.indexOf(widestLabelSize);\n const highest = heights.indexOf(highestLabelSize);\n\n const valueAt = (idx) => ({width: widths[idx] || 0, height: heights[idx] || 0});\n\n return {\n first: valueAt(0),\n last: valueAt(length - 1),\n widest: valueAt(widest),\n highest: valueAt(highest),\n widths,\n heights,\n };\n }\n\n /**\n\t * Used to get the label to display in the tooltip for the given value\n\t * @param {*} value\n\t * @return {string}\n\t */\n getLabelForValue(value) {\n return value;\n }\n\n /**\n\t * Returns the location of the given data point. Value can either be an index or a numerical value\n\t * The coordinate (0, 0) is at the upper-left corner of the canvas\n\t * @param {*} value\n\t * @param {number} [index]\n\t * @return {number}\n\t */\n getPixelForValue(value, index) { // eslint-disable-line no-unused-vars\n return NaN;\n }\n\n /**\n\t * Used to get the data value from a given pixel. This is the inverse of getPixelForValue\n\t * The coordinate (0, 0) is at the upper-left corner of the canvas\n\t * @param {number} pixel\n\t * @return {*}\n\t */\n getValueForPixel(pixel) {} // eslint-disable-line no-unused-vars\n\n /**\n\t * Returns the location of the tick at the given index\n\t * The coordinate (0, 0) is at the upper-left corner of the canvas\n\t * @param {number} index\n\t * @return {number}\n\t */\n getPixelForTick(index) {\n const ticks = this.ticks;\n if (index < 0 || index > ticks.length - 1) {\n return null;\n }\n return this.getPixelForValue(ticks[index].value);\n }\n\n /**\n\t * Utility for getting the pixel location of a percentage of scale\n\t * The coordinate (0, 0) is at the upper-left corner of the canvas\n\t * @param {number} decimal\n\t * @return {number}\n\t */\n getPixelForDecimal(decimal) {\n if (this._reversePixels) {\n decimal = 1 - decimal;\n }\n\n const pixel = this._startPixel + decimal * this._length;\n return _int16Range(this._alignToPixels ? _alignPixel(this.chart, pixel, 0) : pixel);\n }\n\n /**\n\t * @param {number} pixel\n\t * @return {number}\n\t */\n getDecimalForPixel(pixel) {\n const decimal = (pixel - this._startPixel) / this._length;\n return this._reversePixels ? 1 - decimal : decimal;\n }\n\n /**\n\t * Returns the pixel for the minimum chart value\n\t * The coordinate (0, 0) is at the upper-left corner of the canvas\n\t * @return {number}\n\t */\n getBasePixel() {\n return this.getPixelForValue(this.getBaseValue());\n }\n\n /**\n\t * @return {number}\n\t */\n getBaseValue() {\n const {min, max} = this;\n\n return min < 0 && max < 0 ? max :\n min > 0 && max > 0 ? min :\n 0;\n }\n\n /**\n\t * @protected\n\t */\n getContext(index) {\n const ticks = this.ticks || [];\n\n if (index >= 0 && index < ticks.length) {\n const tick = ticks[index];\n return tick.$context ||\n\t\t\t\t(tick.$context = createTickContext(this.getContext(), index, tick));\n }\n return this.$context ||\n\t\t\t(this.$context = createScaleContext(this.chart.getContext(), this));\n }\n\n /**\n\t * @return {number}\n\t * @private\n\t */\n _tickSize() {\n const optionTicks = this.options.ticks;\n\n // Calculate space needed by label in axis direction.\n const rot = toRadians(this.labelRotation);\n const cos = Math.abs(Math.cos(rot));\n const sin = Math.abs(Math.sin(rot));\n\n const labelSizes = this._getLabelSizes();\n const padding = optionTicks.autoSkipPadding || 0;\n const w = labelSizes ? labelSizes.widest.width + padding : 0;\n const h = labelSizes ? labelSizes.highest.height + padding : 0;\n\n // Calculate space needed for 1 tick in axis direction.\n return this.isHorizontal()\n ? h * cos > w * sin ? w / cos : h / sin\n : h * sin < w * cos ? h / cos : w / sin;\n }\n\n /**\n\t * @return {boolean}\n\t * @private\n\t */\n _isVisible() {\n const display = this.options.display;\n\n if (display !== 'auto') {\n return !!display;\n }\n\n return this.getMatchingVisibleMetas().length > 0;\n }\n\n /**\n\t * @private\n\t */\n _computeGridLineItems(chartArea) {\n const axis = this.axis;\n const chart = this.chart;\n const options = this.options;\n const {grid, position, border} = options;\n const offset = grid.offset;\n const isHorizontal = this.isHorizontal();\n const ticks = this.ticks;\n const ticksLength = ticks.length + (offset ? 1 : 0);\n const tl = getTickMarkLength(grid);\n const items = [];\n\n const borderOpts = border.setContext(this.getContext());\n const axisWidth = borderOpts.display ? borderOpts.width : 0;\n const axisHalfWidth = axisWidth / 2;\n const alignBorderValue = function(pixel) {\n return _alignPixel(chart, pixel, axisWidth);\n };\n let borderValue, i, lineValue, alignedLineValue;\n let tx1, ty1, tx2, ty2, x1, y1, x2, y2;\n\n if (position === 'top') {\n borderValue = alignBorderValue(this.bottom);\n ty1 = this.bottom - tl;\n ty2 = borderValue - axisHalfWidth;\n y1 = alignBorderValue(chartArea.top) + axisHalfWidth;\n y2 = chartArea.bottom;\n } else if (position === 'bottom') {\n borderValue = alignBorderValue(this.top);\n y1 = chartArea.top;\n y2 = alignBorderValue(chartArea.bottom) - axisHalfWidth;\n ty1 = borderValue + axisHalfWidth;\n ty2 = this.top + tl;\n } else if (position === 'left') {\n borderValue = alignBorderValue(this.right);\n tx1 = this.right - tl;\n tx2 = borderValue - axisHalfWidth;\n x1 = alignBorderValue(chartArea.left) + axisHalfWidth;\n x2 = chartArea.right;\n } else if (position === 'right') {\n borderValue = alignBorderValue(this.left);\n x1 = chartArea.left;\n x2 = alignBorderValue(chartArea.right) - axisHalfWidth;\n tx1 = borderValue + axisHalfWidth;\n tx2 = this.left + tl;\n } else if (axis === 'x') {\n if (position === 'center') {\n borderValue = alignBorderValue((chartArea.top + chartArea.bottom) / 2 + 0.5);\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n borderValue = alignBorderValue(this.chart.scales[positionAxisID].getPixelForValue(value));\n }\n\n y1 = chartArea.top;\n y2 = chartArea.bottom;\n ty1 = borderValue + axisHalfWidth;\n ty2 = ty1 + tl;\n } else if (axis === 'y') {\n if (position === 'center') {\n borderValue = alignBorderValue((chartArea.left + chartArea.right) / 2);\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n borderValue = alignBorderValue(this.chart.scales[positionAxisID].getPixelForValue(value));\n }\n\n tx1 = borderValue - axisHalfWidth;\n tx2 = tx1 - tl;\n x1 = chartArea.left;\n x2 = chartArea.right;\n }\n\n const limit = valueOrDefault(options.ticks.maxTicksLimit, ticksLength);\n const step = Math.max(1, Math.ceil(ticksLength / limit));\n for (i = 0; i < ticksLength; i += step) {\n const context = this.getContext(i);\n const optsAtIndex = grid.setContext(context);\n const optsAtIndexBorder = border.setContext(context);\n\n const lineWidth = optsAtIndex.lineWidth;\n const lineColor = optsAtIndex.color;\n const borderDash = optsAtIndexBorder.dash || [];\n const borderDashOffset = optsAtIndexBorder.dashOffset;\n\n const tickWidth = optsAtIndex.tickWidth;\n const tickColor = optsAtIndex.tickColor;\n const tickBorderDash = optsAtIndex.tickBorderDash || [];\n const tickBorderDashOffset = optsAtIndex.tickBorderDashOffset;\n\n lineValue = getPixelForGridLine(this, i, offset);\n\n // Skip if the pixel is out of the range\n if (lineValue === undefined) {\n continue;\n }\n\n alignedLineValue = _alignPixel(chart, lineValue, lineWidth);\n\n if (isHorizontal) {\n tx1 = tx2 = x1 = x2 = alignedLineValue;\n } else {\n ty1 = ty2 = y1 = y2 = alignedLineValue;\n }\n\n items.push({\n tx1,\n ty1,\n tx2,\n ty2,\n x1,\n y1,\n x2,\n y2,\n width: lineWidth,\n color: lineColor,\n borderDash,\n borderDashOffset,\n tickWidth,\n tickColor,\n tickBorderDash,\n tickBorderDashOffset,\n });\n }\n\n this._ticksLength = ticksLength;\n this._borderValue = borderValue;\n\n return items;\n }\n\n /**\n\t * @private\n\t */\n _computeLabelItems(chartArea) {\n const axis = this.axis;\n const options = this.options;\n const {position, ticks: optionTicks} = options;\n const isHorizontal = this.isHorizontal();\n const ticks = this.ticks;\n const {align, crossAlign, padding, mirror} = optionTicks;\n const tl = getTickMarkLength(options.grid);\n const tickAndPadding = tl + padding;\n const hTickAndPadding = mirror ? -padding : tickAndPadding;\n const rotation = -toRadians(this.labelRotation);\n const items = [];\n let i, ilen, tick, label, x, y, textAlign, pixel, font, lineHeight, lineCount, textOffset;\n let textBaseline = 'middle';\n\n if (position === 'top') {\n y = this.bottom - hTickAndPadding;\n textAlign = this._getXAxisLabelAlignment();\n } else if (position === 'bottom') {\n y = this.top + hTickAndPadding;\n textAlign = this._getXAxisLabelAlignment();\n } else if (position === 'left') {\n const ret = this._getYAxisLabelAlignment(tl);\n textAlign = ret.textAlign;\n x = ret.x;\n } else if (position === 'right') {\n const ret = this._getYAxisLabelAlignment(tl);\n textAlign = ret.textAlign;\n x = ret.x;\n } else if (axis === 'x') {\n if (position === 'center') {\n y = ((chartArea.top + chartArea.bottom) / 2) + tickAndPadding;\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n y = this.chart.scales[positionAxisID].getPixelForValue(value) + tickAndPadding;\n }\n textAlign = this._getXAxisLabelAlignment();\n } else if (axis === 'y') {\n if (position === 'center') {\n x = ((chartArea.left + chartArea.right) / 2) - tickAndPadding;\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n x = this.chart.scales[positionAxisID].getPixelForValue(value);\n }\n textAlign = this._getYAxisLabelAlignment(tl).textAlign;\n }\n\n if (axis === 'y') {\n if (align === 'start') {\n textBaseline = 'top';\n } else if (align === 'end') {\n textBaseline = 'bottom';\n }\n }\n\n const labelSizes = this._getLabelSizes();\n for (i = 0, ilen = ticks.length; i < ilen; ++i) {\n tick = ticks[i];\n label = tick.label;\n\n const optsAtIndex = optionTicks.setContext(this.getContext(i));\n pixel = this.getPixelForTick(i) + optionTicks.labelOffset;\n font = this._resolveTickFontOptions(i);\n lineHeight = font.lineHeight;\n lineCount = isArray(label) ? label.length : 1;\n const halfCount = lineCount / 2;\n const color = optsAtIndex.color;\n const strokeColor = optsAtIndex.textStrokeColor;\n const strokeWidth = optsAtIndex.textStrokeWidth;\n let tickTextAlign = textAlign;\n\n if (isHorizontal) {\n x = pixel;\n\n if (textAlign === 'inner') {\n if (i === ilen - 1) {\n tickTextAlign = !this.options.reverse ? 'right' : 'left';\n } else if (i === 0) {\n tickTextAlign = !this.options.reverse ? 'left' : 'right';\n } else {\n tickTextAlign = 'center';\n }\n }\n\n if (position === 'top') {\n if (crossAlign === 'near' || rotation !== 0) {\n textOffset = -lineCount * lineHeight + lineHeight / 2;\n } else if (crossAlign === 'center') {\n textOffset = -labelSizes.highest.height / 2 - halfCount * lineHeight + lineHeight;\n } else {\n textOffset = -labelSizes.highest.height + lineHeight / 2;\n }\n } else {\n // eslint-disable-next-line no-lonely-if\n if (crossAlign === 'near' || rotation !== 0) {\n textOffset = lineHeight / 2;\n } else if (crossAlign === 'center') {\n textOffset = labelSizes.highest.height / 2 - halfCount * lineHeight;\n } else {\n textOffset = labelSizes.highest.height - lineCount * lineHeight;\n }\n }\n if (mirror) {\n textOffset *= -1;\n }\n if (rotation !== 0 && !optsAtIndex.showLabelBackdrop) {\n x += (lineHeight / 2) * Math.sin(rotation);\n }\n } else {\n y = pixel;\n textOffset = (1 - lineCount) * lineHeight / 2;\n }\n\n let backdrop;\n\n if (optsAtIndex.showLabelBackdrop) {\n const labelPadding = toPadding(optsAtIndex.backdropPadding);\n const height = labelSizes.heights[i];\n const width = labelSizes.widths[i];\n\n let top = textOffset - labelPadding.top;\n let left = 0 - labelPadding.left;\n\n switch (textBaseline) {\n case 'middle':\n top -= height / 2;\n break;\n case 'bottom':\n top -= height;\n break;\n default:\n break;\n }\n\n switch (textAlign) {\n case 'center':\n left -= width / 2;\n break;\n case 'right':\n left -= width;\n break;\n case 'inner':\n if (i === ilen - 1) {\n left -= width;\n } else if (i > 0) {\n left -= width / 2;\n }\n break;\n default:\n break;\n }\n\n backdrop = {\n left,\n top,\n width: width + labelPadding.width,\n height: height + labelPadding.height,\n\n color: optsAtIndex.backdropColor,\n };\n }\n\n items.push({\n label,\n font,\n textOffset,\n options: {\n rotation,\n color,\n strokeColor,\n strokeWidth,\n textAlign: tickTextAlign,\n textBaseline,\n translation: [x, y],\n backdrop,\n }\n });\n }\n\n return items;\n }\n\n _getXAxisLabelAlignment() {\n const {position, ticks} = this.options;\n const rotation = -toRadians(this.labelRotation);\n\n if (rotation) {\n return position === 'top' ? 'left' : 'right';\n }\n\n let align = 'center';\n\n if (ticks.align === 'start') {\n align = 'left';\n } else if (ticks.align === 'end') {\n align = 'right';\n } else if (ticks.align === 'inner') {\n align = 'inner';\n }\n\n return align;\n }\n\n _getYAxisLabelAlignment(tl) {\n const {position, ticks: {crossAlign, mirror, padding}} = this.options;\n const labelSizes = this._getLabelSizes();\n const tickAndPadding = tl + padding;\n const widest = labelSizes.widest.width;\n\n let textAlign;\n let x;\n\n if (position === 'left') {\n if (mirror) {\n x = this.right + padding;\n\n if (crossAlign === 'near') {\n textAlign = 'left';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x += (widest / 2);\n } else {\n textAlign = 'right';\n x += widest;\n }\n } else {\n x = this.right - tickAndPadding;\n\n if (crossAlign === 'near') {\n textAlign = 'right';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x -= (widest / 2);\n } else {\n textAlign = 'left';\n x = this.left;\n }\n }\n } else if (position === 'right') {\n if (mirror) {\n x = this.left + padding;\n\n if (crossAlign === 'near') {\n textAlign = 'right';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x -= (widest / 2);\n } else {\n textAlign = 'left';\n x -= widest;\n }\n } else {\n x = this.left + tickAndPadding;\n\n if (crossAlign === 'near') {\n textAlign = 'left';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x += widest / 2;\n } else {\n textAlign = 'right';\n x = this.right;\n }\n }\n } else {\n textAlign = 'right';\n }\n\n return {textAlign, x};\n }\n\n /**\n\t * @private\n\t */\n _computeLabelArea() {\n if (this.options.ticks.mirror) {\n return;\n }\n\n const chart = this.chart;\n const position = this.options.position;\n\n if (position === 'left' || position === 'right') {\n return {top: 0, left: this.left, bottom: chart.height, right: this.right};\n } if (position === 'top' || position === 'bottom') {\n return {top: this.top, left: 0, bottom: this.bottom, right: chart.width};\n }\n }\n\n /**\n * @protected\n */\n drawBackground() {\n const {ctx, options: {backgroundColor}, left, top, width, height} = this;\n if (backgroundColor) {\n ctx.save();\n ctx.fillStyle = backgroundColor;\n ctx.fillRect(left, top, width, height);\n ctx.restore();\n }\n }\n\n getLineWidthForValue(value) {\n const grid = this.options.grid;\n if (!this._isVisible() || !grid.display) {\n return 0;\n }\n const ticks = this.ticks;\n const index = ticks.findIndex(t => t.value === value);\n if (index >= 0) {\n const opts = grid.setContext(this.getContext(index));\n return opts.lineWidth;\n }\n return 0;\n }\n\n /**\n\t * @protected\n\t */\n drawGrid(chartArea) {\n const grid = this.options.grid;\n const ctx = this.ctx;\n const items = this._gridLineItems || (this._gridLineItems = this._computeGridLineItems(chartArea));\n let i, ilen;\n\n const drawLine = (p1, p2, style) => {\n if (!style.width || !style.color) {\n return;\n }\n ctx.save();\n ctx.lineWidth = style.width;\n ctx.strokeStyle = style.color;\n ctx.setLineDash(style.borderDash || []);\n ctx.lineDashOffset = style.borderDashOffset;\n\n ctx.beginPath();\n ctx.moveTo(p1.x, p1.y);\n ctx.lineTo(p2.x, p2.y);\n ctx.stroke();\n ctx.restore();\n };\n\n if (grid.display) {\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n const item = items[i];\n\n if (grid.drawOnChartArea) {\n drawLine(\n {x: item.x1, y: item.y1},\n {x: item.x2, y: item.y2},\n item\n );\n }\n\n if (grid.drawTicks) {\n drawLine(\n {x: item.tx1, y: item.ty1},\n {x: item.tx2, y: item.ty2},\n {\n color: item.tickColor,\n width: item.tickWidth,\n borderDash: item.tickBorderDash,\n borderDashOffset: item.tickBorderDashOffset\n }\n );\n }\n }\n }\n }\n\n /**\n\t * @protected\n\t */\n drawBorder() {\n const {chart, ctx, options: {border, grid}} = this;\n const borderOpts = border.setContext(this.getContext());\n const axisWidth = border.display ? borderOpts.width : 0;\n if (!axisWidth) {\n return;\n }\n const lastLineWidth = grid.setContext(this.getContext(0)).lineWidth;\n const borderValue = this._borderValue;\n let x1, x2, y1, y2;\n\n if (this.isHorizontal()) {\n x1 = _alignPixel(chart, this.left, axisWidth) - axisWidth / 2;\n x2 = _alignPixel(chart, this.right, lastLineWidth) + lastLineWidth / 2;\n y1 = y2 = borderValue;\n } else {\n y1 = _alignPixel(chart, this.top, axisWidth) - axisWidth / 2;\n y2 = _alignPixel(chart, this.bottom, lastLineWidth) + lastLineWidth / 2;\n x1 = x2 = borderValue;\n }\n ctx.save();\n ctx.lineWidth = borderOpts.width;\n ctx.strokeStyle = borderOpts.color;\n\n ctx.beginPath();\n ctx.moveTo(x1, y1);\n ctx.lineTo(x2, y2);\n ctx.stroke();\n\n ctx.restore();\n }\n\n /**\n\t * @protected\n\t */\n drawLabels(chartArea) {\n const optionTicks = this.options.ticks;\n\n if (!optionTicks.display) {\n return;\n }\n\n const ctx = this.ctx;\n\n const area = this._computeLabelArea();\n if (area) {\n clipArea(ctx, area);\n }\n\n const items = this.getLabelItems(chartArea);\n for (const item of items) {\n const renderTextOptions = item.options;\n const tickFont = item.font;\n const label = item.label;\n const y = item.textOffset;\n renderText(ctx, label, 0, y, tickFont, renderTextOptions);\n }\n\n if (area) {\n unclipArea(ctx);\n }\n }\n\n /**\n\t * @protected\n\t */\n drawTitle() {\n const {ctx, options: {position, title, reverse}} = this;\n\n if (!title.display) {\n return;\n }\n\n const font = toFont(title.font);\n const padding = toPadding(title.padding);\n const align = title.align;\n let offset = font.lineHeight / 2;\n\n if (position === 'bottom' || position === 'center' || isObject(position)) {\n offset += padding.bottom;\n if (isArray(title.text)) {\n offset += font.lineHeight * (title.text.length - 1);\n }\n } else {\n offset += padding.top;\n }\n\n const {titleX, titleY, maxWidth, rotation} = titleArgs(this, offset, position, align);\n\n renderText(ctx, title.text, 0, 0, font, {\n color: title.color,\n maxWidth,\n rotation,\n textAlign: titleAlign(align, position, reverse),\n textBaseline: 'middle',\n translation: [titleX, titleY],\n });\n }\n\n draw(chartArea) {\n if (!this._isVisible()) {\n return;\n }\n\n this.drawBackground();\n this.drawGrid(chartArea);\n this.drawBorder();\n this.drawTitle();\n this.drawLabels(chartArea);\n }\n\n /**\n\t * @return {object[]}\n\t * @private\n\t */\n _layers() {\n const opts = this.options;\n const tz = opts.ticks && opts.ticks.z || 0;\n const gz = valueOrDefault(opts.grid && opts.grid.z, -1);\n const bz = valueOrDefault(opts.border && opts.border.z, 0);\n\n if (!this._isVisible() || this.draw !== Scale.prototype.draw) {\n // backward compatibility: draw has been overridden by custom scale\n return [{\n z: tz,\n draw: (chartArea) => {\n this.draw(chartArea);\n }\n }];\n }\n\n return [{\n z: gz,\n draw: (chartArea) => {\n this.drawBackground();\n this.drawGrid(chartArea);\n this.drawTitle();\n }\n }, {\n z: bz,\n draw: () => {\n this.drawBorder();\n }\n }, {\n z: tz,\n draw: (chartArea) => {\n this.drawLabels(chartArea);\n }\n }];\n }\n\n /**\n\t * Returns visible dataset metas that are attached to this scale\n\t * @param {string} [type] - if specified, also filter by dataset type\n\t * @return {object[]}\n\t */\n getMatchingVisibleMetas(type) {\n const metas = this.chart.getSortedVisibleDatasetMetas();\n const axisID = this.axis + 'AxisID';\n const result = [];\n let i, ilen;\n\n for (i = 0, ilen = metas.length; i < ilen; ++i) {\n const meta = metas[i];\n if (meta[axisID] === this.id && (!type || meta.type === type)) {\n result.push(meta);\n }\n }\n return result;\n }\n\n /**\n\t * @param {number} index\n\t * @return {object}\n\t * @protected\n \t */\n _resolveTickFontOptions(index) {\n const opts = this.options.ticks.setContext(this.getContext(index));\n return toFont(opts.font);\n }\n\n /**\n * @protected\n */\n _maxDigits() {\n const fontSize = this._resolveTickFontOptions(0).lineHeight;\n return (this.isHorizontal() ? this.width : this.height) / fontSize;\n }\n}\n","import {merge} from '../helpers/index.js';\nimport defaults, {overrides} from './core.defaults.js';\n\n/**\n * @typedef {{id: string, defaults: any, overrides?: any, defaultRoutes: any}} IChartComponent\n */\n\nexport default class TypedRegistry {\n constructor(type, scope, override) {\n this.type = type;\n this.scope = scope;\n this.override = override;\n this.items = Object.create(null);\n }\n\n isForType(type) {\n return Object.prototype.isPrototypeOf.call(this.type.prototype, type.prototype);\n }\n\n /**\n\t * @param {IChartComponent} item\n\t * @returns {string} The scope where items defaults were registered to.\n\t */\n register(item) {\n const proto = Object.getPrototypeOf(item);\n let parentScope;\n\n if (isIChartComponent(proto)) {\n // Make sure the parent is registered and note the scope where its defaults are.\n parentScope = this.register(proto);\n }\n\n const items = this.items;\n const id = item.id;\n const scope = this.scope + '.' + id;\n\n if (!id) {\n throw new Error('class does not have id: ' + item);\n }\n\n if (id in items) {\n // already registered\n return scope;\n }\n\n items[id] = item;\n registerDefaults(item, scope, parentScope);\n if (this.override) {\n defaults.override(item.id, item.overrides);\n }\n\n return scope;\n }\n\n /**\n\t * @param {string} id\n\t * @returns {object?}\n\t */\n get(id) {\n return this.items[id];\n }\n\n /**\n\t * @param {IChartComponent} item\n\t */\n unregister(item) {\n const items = this.items;\n const id = item.id;\n const scope = this.scope;\n\n if (id in items) {\n delete items[id];\n }\n\n if (scope && id in defaults[scope]) {\n delete defaults[scope][id];\n if (this.override) {\n delete overrides[id];\n }\n }\n }\n}\n\nfunction registerDefaults(item, scope, parentScope) {\n // Inherit the parent's defaults and keep existing defaults\n const itemDefaults = merge(Object.create(null), [\n parentScope ? defaults.get(parentScope) : {},\n defaults.get(scope),\n item.defaults\n ]);\n\n defaults.set(scope, itemDefaults);\n\n if (item.defaultRoutes) {\n routeDefaults(scope, item.defaultRoutes);\n }\n\n if (item.descriptors) {\n defaults.describe(scope, item.descriptors);\n }\n}\n\nfunction routeDefaults(scope, routes) {\n Object.keys(routes).forEach(property => {\n const propertyParts = property.split('.');\n const sourceName = propertyParts.pop();\n const sourceScope = [scope].concat(propertyParts).join('.');\n const parts = routes[property].split('.');\n const targetName = parts.pop();\n const targetScope = parts.join('.');\n defaults.route(sourceScope, sourceName, targetScope, targetName);\n });\n}\n\nfunction isIChartComponent(proto) {\n return 'id' in proto && 'defaults' in proto;\n}\n","import DatasetController from './core.datasetController.js';\nimport Element from './core.element.js';\nimport Scale from './core.scale.js';\nimport TypedRegistry from './core.typedRegistry.js';\nimport {each, callback as call, _capitalize} from '../helpers/helpers.core.js';\n\n/**\n * Please use the module's default export which provides a singleton instance\n * Note: class is exported for typedoc\n */\nexport class Registry {\n constructor() {\n this.controllers = new TypedRegistry(DatasetController, 'datasets', true);\n this.elements = new TypedRegistry(Element, 'elements');\n this.plugins = new TypedRegistry(Object, 'plugins');\n this.scales = new TypedRegistry(Scale, 'scales');\n // Order is important, Scale has Element in prototype chain,\n // so Scales must be before Elements. Plugins are a fallback, so not listed here.\n this._typedRegistries = [this.controllers, this.scales, this.elements];\n }\n\n /**\n\t * @param {...any} args\n\t */\n add(...args) {\n this._each('register', args);\n }\n\n remove(...args) {\n this._each('unregister', args);\n }\n\n /**\n\t * @param {...typeof DatasetController} args\n\t */\n addControllers(...args) {\n this._each('register', args, this.controllers);\n }\n\n /**\n\t * @param {...typeof Element} args\n\t */\n addElements(...args) {\n this._each('register', args, this.elements);\n }\n\n /**\n\t * @param {...any} args\n\t */\n addPlugins(...args) {\n this._each('register', args, this.plugins);\n }\n\n /**\n\t * @param {...typeof Scale} args\n\t */\n addScales(...args) {\n this._each('register', args, this.scales);\n }\n\n /**\n\t * @param {string} id\n\t * @returns {typeof DatasetController}\n\t */\n getController(id) {\n return this._get(id, this.controllers, 'controller');\n }\n\n /**\n\t * @param {string} id\n\t * @returns {typeof Element}\n\t */\n getElement(id) {\n return this._get(id, this.elements, 'element');\n }\n\n /**\n\t * @param {string} id\n\t * @returns {object}\n\t */\n getPlugin(id) {\n return this._get(id, this.plugins, 'plugin');\n }\n\n /**\n\t * @param {string} id\n\t * @returns {typeof Scale}\n\t */\n getScale(id) {\n return this._get(id, this.scales, 'scale');\n }\n\n /**\n\t * @param {...typeof DatasetController} args\n\t */\n removeControllers(...args) {\n this._each('unregister', args, this.controllers);\n }\n\n /**\n\t * @param {...typeof Element} args\n\t */\n removeElements(...args) {\n this._each('unregister', args, this.elements);\n }\n\n /**\n\t * @param {...any} args\n\t */\n removePlugins(...args) {\n this._each('unregister', args, this.plugins);\n }\n\n /**\n\t * @param {...typeof Scale} args\n\t */\n removeScales(...args) {\n this._each('unregister', args, this.scales);\n }\n\n /**\n\t * @private\n\t */\n _each(method, args, typedRegistry) {\n [...args].forEach(arg => {\n const reg = typedRegistry || this._getRegistryForType(arg);\n if (typedRegistry || reg.isForType(arg) || (reg === this.plugins && arg.id)) {\n this._exec(method, reg, arg);\n } else {\n // Handle loopable args\n // Use case:\n // import * as plugins from './plugins.js';\n // Chart.register(plugins);\n each(arg, item => {\n // If there are mixed types in the loopable, make sure those are\n // registered in correct registry\n // Use case: (treemap exporting controller, elements etc)\n // import * as treemap from 'chartjs-chart-treemap.js';\n // Chart.register(treemap);\n\n const itemReg = typedRegistry || this._getRegistryForType(item);\n this._exec(method, itemReg, item);\n });\n }\n });\n }\n\n /**\n\t * @private\n\t */\n _exec(method, registry, component) {\n const camelMethod = _capitalize(method);\n call(component['before' + camelMethod], [], component); // beforeRegister / beforeUnregister\n registry[method](component);\n call(component['after' + camelMethod], [], component); // afterRegister / afterUnregister\n }\n\n /**\n\t * @private\n\t */\n _getRegistryForType(type) {\n for (let i = 0; i < this._typedRegistries.length; i++) {\n const reg = this._typedRegistries[i];\n if (reg.isForType(type)) {\n return reg;\n }\n }\n // plugins is the fallback registry\n return this.plugins;\n }\n\n /**\n\t * @private\n\t */\n _get(id, typedRegistry, type) {\n const item = typedRegistry.get(id);\n if (item === undefined) {\n throw new Error('\"' + id + '\" is not a registered ' + type + '.');\n }\n return item;\n }\n\n}\n\n// singleton instance\nexport default /* #__PURE__ */ new Registry();\n","import registry from './core.registry.js';\nimport {callback as callCallback, isNullOrUndef, valueOrDefault} from '../helpers/helpers.core.js';\n\n/**\n * @typedef { import('./core.controller.js').default } Chart\n * @typedef { import('../types/index.js').ChartEvent } ChartEvent\n * @typedef { import('../plugins/plugin.tooltip.js').default } Tooltip\n */\n\n/**\n * @callback filterCallback\n * @param {{plugin: object, options: object}} value\n * @param {number} [index]\n * @param {array} [array]\n * @param {object} [thisArg]\n * @return {boolean}\n */\n\n\nexport default class PluginService {\n constructor() {\n this._init = [];\n }\n\n /**\n\t * Calls enabled plugins for `chart` on the specified hook and with the given args.\n\t * This method immediately returns as soon as a plugin explicitly returns false. The\n\t * returned value can be used, for instance, to interrupt the current action.\n\t * @param {Chart} chart - The chart instance for which plugins should be called.\n\t * @param {string} hook - The name of the plugin method to call (e.g. 'beforeUpdate').\n\t * @param {object} [args] - Extra arguments to apply to the hook call.\n * @param {filterCallback} [filter] - Filtering function for limiting which plugins are notified\n\t * @returns {boolean} false if any of the plugins return false, else returns true.\n\t */\n notify(chart, hook, args, filter) {\n if (hook === 'beforeInit') {\n this._init = this._createDescriptors(chart, true);\n this._notify(this._init, chart, 'install');\n }\n\n const descriptors = filter ? this._descriptors(chart).filter(filter) : this._descriptors(chart);\n const result = this._notify(descriptors, chart, hook, args);\n\n if (hook === 'afterDestroy') {\n this._notify(descriptors, chart, 'stop');\n this._notify(this._init, chart, 'uninstall');\n }\n return result;\n }\n\n /**\n\t * @private\n\t */\n _notify(descriptors, chart, hook, args) {\n args = args || {};\n for (const descriptor of descriptors) {\n const plugin = descriptor.plugin;\n const method = plugin[hook];\n const params = [chart, args, descriptor.options];\n if (callCallback(method, params, plugin) === false && args.cancelable) {\n return false;\n }\n }\n\n return true;\n }\n\n invalidate() {\n // When plugins are registered, there is the possibility of a double\n // invalidate situation. In this case, we only want to invalidate once.\n // If we invalidate multiple times, the `_oldCache` is lost and all of the\n // plugins are restarted without being correctly stopped.\n // See https://github.com/chartjs/Chart.js/issues/8147\n if (!isNullOrUndef(this._cache)) {\n this._oldCache = this._cache;\n this._cache = undefined;\n }\n }\n\n /**\n\t * @param {Chart} chart\n\t * @private\n\t */\n _descriptors(chart) {\n if (this._cache) {\n return this._cache;\n }\n\n const descriptors = this._cache = this._createDescriptors(chart);\n\n this._notifyStateChanges(chart);\n\n return descriptors;\n }\n\n _createDescriptors(chart, all) {\n const config = chart && chart.config;\n const options = valueOrDefault(config.options && config.options.plugins, {});\n const plugins = allPlugins(config);\n // options === false => all plugins are disabled\n return options === false && !all ? [] : createDescriptors(chart, plugins, options, all);\n }\n\n /**\n\t * @param {Chart} chart\n\t * @private\n\t */\n _notifyStateChanges(chart) {\n const previousDescriptors = this._oldCache || [];\n const descriptors = this._cache;\n const diff = (a, b) => a.filter(x => !b.some(y => x.plugin.id === y.plugin.id));\n this._notify(diff(previousDescriptors, descriptors), chart, 'stop');\n this._notify(diff(descriptors, previousDescriptors), chart, 'start');\n }\n}\n\n/**\n * @param {import('./core.config.js').default} config\n */\nfunction allPlugins(config) {\n const localIds = {};\n const plugins = [];\n const keys = Object.keys(registry.plugins.items);\n for (let i = 0; i < keys.length; i++) {\n plugins.push(registry.getPlugin(keys[i]));\n }\n\n const local = config.plugins || [];\n for (let i = 0; i < local.length; i++) {\n const plugin = local[i];\n\n if (plugins.indexOf(plugin) === -1) {\n plugins.push(plugin);\n localIds[plugin.id] = true;\n }\n }\n\n return {plugins, localIds};\n}\n\nfunction getOpts(options, all) {\n if (!all && options === false) {\n return null;\n }\n if (options === true) {\n return {};\n }\n return options;\n}\n\nfunction createDescriptors(chart, {plugins, localIds}, options, all) {\n const result = [];\n const context = chart.getContext();\n\n for (const plugin of plugins) {\n const id = plugin.id;\n const opts = getOpts(options[id], all);\n if (opts === null) {\n continue;\n }\n result.push({\n plugin,\n options: pluginOpts(chart.config, {plugin, local: localIds[id]}, opts, context)\n });\n }\n\n return result;\n}\n\nfunction pluginOpts(config, {plugin, local}, opts, context) {\n const keys = config.pluginScopeKeys(plugin);\n const scopes = config.getOptionScopes(opts, keys);\n if (local && plugin.defaults) {\n // make sure plugin defaults are in scopes for local (not registered) plugins\n scopes.push(plugin.defaults);\n }\n return config.createResolver(scopes, context, [''], {\n // These are just defaults that plugins can override\n scriptable: false,\n indexable: false,\n allKeys: true\n });\n}\n","import defaults, {overrides, descriptors} from './core.defaults.js';\nimport {mergeIf, resolveObjectKey, isArray, isFunction, valueOrDefault, isObject} from '../helpers/helpers.core.js';\nimport {_attachContext, _createResolver, _descriptors} from '../helpers/helpers.config.js';\n\nexport function getIndexAxis(type, options) {\n const datasetDefaults = defaults.datasets[type] || {};\n const datasetOptions = (options.datasets || {})[type] || {};\n return datasetOptions.indexAxis || options.indexAxis || datasetDefaults.indexAxis || 'x';\n}\n\nfunction getAxisFromDefaultScaleID(id, indexAxis) {\n let axis = id;\n if (id === '_index_') {\n axis = indexAxis;\n } else if (id === '_value_') {\n axis = indexAxis === 'x' ? 'y' : 'x';\n }\n return axis;\n}\n\nfunction getDefaultScaleIDFromAxis(axis, indexAxis) {\n return axis === indexAxis ? '_index_' : '_value_';\n}\n\nfunction idMatchesAxis(id) {\n if (id === 'x' || id === 'y' || id === 'r') {\n return id;\n }\n}\n\nfunction axisFromPosition(position) {\n if (position === 'top' || position === 'bottom') {\n return 'x';\n }\n if (position === 'left' || position === 'right') {\n return 'y';\n }\n}\n\nexport function determineAxis(id, ...scaleOptions) {\n if (idMatchesAxis(id)) {\n return id;\n }\n for (const opts of scaleOptions) {\n const axis = opts.axis\n || axisFromPosition(opts.position)\n || id.length > 1 && idMatchesAxis(id[0].toLowerCase());\n if (axis) {\n return axis;\n }\n }\n throw new Error(`Cannot determine type of '${id}' axis. Please provide 'axis' or 'position' option.`);\n}\n\nfunction getAxisFromDataset(id, axis, dataset) {\n if (dataset[axis + 'AxisID'] === id) {\n return {axis};\n }\n}\n\nfunction retrieveAxisFromDatasets(id, config) {\n if (config.data && config.data.datasets) {\n const boundDs = config.data.datasets.filter((d) => d.xAxisID === id || d.yAxisID === id);\n if (boundDs.length) {\n return getAxisFromDataset(id, 'x', boundDs[0]) || getAxisFromDataset(id, 'y', boundDs[0]);\n }\n }\n return {};\n}\n\nfunction mergeScaleConfig(config, options) {\n const chartDefaults = overrides[config.type] || {scales: {}};\n const configScales = options.scales || {};\n const chartIndexAxis = getIndexAxis(config.type, options);\n const scales = Object.create(null);\n\n // First figure out first scale id's per axis.\n Object.keys(configScales).forEach(id => {\n const scaleConf = configScales[id];\n if (!isObject(scaleConf)) {\n return console.error(`Invalid scale configuration for scale: ${id}`);\n }\n if (scaleConf._proxy) {\n return console.warn(`Ignoring resolver passed as options for scale: ${id}`);\n }\n const axis = determineAxis(id, scaleConf, retrieveAxisFromDatasets(id, config), defaults.scales[scaleConf.type]);\n const defaultId = getDefaultScaleIDFromAxis(axis, chartIndexAxis);\n const defaultScaleOptions = chartDefaults.scales || {};\n scales[id] = mergeIf(Object.create(null), [{axis}, scaleConf, defaultScaleOptions[axis], defaultScaleOptions[defaultId]]);\n });\n\n // Then merge dataset defaults to scale configs\n config.data.datasets.forEach(dataset => {\n const type = dataset.type || config.type;\n const indexAxis = dataset.indexAxis || getIndexAxis(type, options);\n const datasetDefaults = overrides[type] || {};\n const defaultScaleOptions = datasetDefaults.scales || {};\n Object.keys(defaultScaleOptions).forEach(defaultID => {\n const axis = getAxisFromDefaultScaleID(defaultID, indexAxis);\n const id = dataset[axis + 'AxisID'] || axis;\n scales[id] = scales[id] || Object.create(null);\n mergeIf(scales[id], [{axis}, configScales[id], defaultScaleOptions[defaultID]]);\n });\n });\n\n // apply scale defaults, if not overridden by dataset defaults\n Object.keys(scales).forEach(key => {\n const scale = scales[key];\n mergeIf(scale, [defaults.scales[scale.type], defaults.scale]);\n });\n\n return scales;\n}\n\nfunction initOptions(config) {\n const options = config.options || (config.options = {});\n\n options.plugins = valueOrDefault(options.plugins, {});\n options.scales = mergeScaleConfig(config, options);\n}\n\nfunction initData(data) {\n data = data || {};\n data.datasets = data.datasets || [];\n data.labels = data.labels || [];\n return data;\n}\n\nfunction initConfig(config) {\n config = config || {};\n config.data = initData(config.data);\n\n initOptions(config);\n\n return config;\n}\n\nconst keyCache = new Map();\nconst keysCached = new Set();\n\nfunction cachedKeys(cacheKey, generate) {\n let keys = keyCache.get(cacheKey);\n if (!keys) {\n keys = generate();\n keyCache.set(cacheKey, keys);\n keysCached.add(keys);\n }\n return keys;\n}\n\nconst addIfFound = (set, obj, key) => {\n const opts = resolveObjectKey(obj, key);\n if (opts !== undefined) {\n set.add(opts);\n }\n};\n\nexport default class Config {\n constructor(config) {\n this._config = initConfig(config);\n this._scopeCache = new Map();\n this._resolverCache = new Map();\n }\n\n get platform() {\n return this._config.platform;\n }\n\n get type() {\n return this._config.type;\n }\n\n set type(type) {\n this._config.type = type;\n }\n\n get data() {\n return this._config.data;\n }\n\n set data(data) {\n this._config.data = initData(data);\n }\n\n get options() {\n return this._config.options;\n }\n\n set options(options) {\n this._config.options = options;\n }\n\n get plugins() {\n return this._config.plugins;\n }\n\n update() {\n const config = this._config;\n this.clearCache();\n initOptions(config);\n }\n\n clearCache() {\n this._scopeCache.clear();\n this._resolverCache.clear();\n }\n\n /**\n * Returns the option scope keys for resolving dataset options.\n * These keys do not include the dataset itself, because it is not under options.\n * @param {string} datasetType\n * @return {string[][]}\n */\n datasetScopeKeys(datasetType) {\n return cachedKeys(datasetType,\n () => [[\n `datasets.${datasetType}`,\n ''\n ]]);\n }\n\n /**\n * Returns the option scope keys for resolving dataset animation options.\n * These keys do not include the dataset itself, because it is not under options.\n * @param {string} datasetType\n * @param {string} transition\n * @return {string[][]}\n */\n datasetAnimationScopeKeys(datasetType, transition) {\n return cachedKeys(`${datasetType}.transition.${transition}`,\n () => [\n [\n `datasets.${datasetType}.transitions.${transition}`,\n `transitions.${transition}`,\n ],\n // The following are used for looking up the `animations` and `animation` keys\n [\n `datasets.${datasetType}`,\n ''\n ]\n ]);\n }\n\n /**\n * Returns the options scope keys for resolving element options that belong\n * to an dataset. These keys do not include the dataset itself, because it\n * is not under options.\n * @param {string} datasetType\n * @param {string} elementType\n * @return {string[][]}\n */\n datasetElementScopeKeys(datasetType, elementType) {\n return cachedKeys(`${datasetType}-${elementType}`,\n () => [[\n `datasets.${datasetType}.elements.${elementType}`,\n `datasets.${datasetType}`,\n `elements.${elementType}`,\n ''\n ]]);\n }\n\n /**\n * Returns the options scope keys for resolving plugin options.\n * @param {{id: string, additionalOptionScopes?: string[]}} plugin\n * @return {string[][]}\n */\n pluginScopeKeys(plugin) {\n const id = plugin.id;\n const type = this.type;\n return cachedKeys(`${type}-plugin-${id}`,\n () => [[\n `plugins.${id}`,\n ...plugin.additionalOptionScopes || [],\n ]]);\n }\n\n /**\n * @private\n */\n _cachedScopes(mainScope, resetCache) {\n const _scopeCache = this._scopeCache;\n let cache = _scopeCache.get(mainScope);\n if (!cache || resetCache) {\n cache = new Map();\n _scopeCache.set(mainScope, cache);\n }\n return cache;\n }\n\n /**\n * Resolves the objects from options and defaults for option value resolution.\n * @param {object} mainScope - The main scope object for options\n * @param {string[][]} keyLists - The arrays of keys in resolution order\n * @param {boolean} [resetCache] - reset the cache for this mainScope\n */\n getOptionScopes(mainScope, keyLists, resetCache) {\n const {options, type} = this;\n const cache = this._cachedScopes(mainScope, resetCache);\n const cached = cache.get(keyLists);\n if (cached) {\n return cached;\n }\n\n const scopes = new Set();\n\n keyLists.forEach(keys => {\n if (mainScope) {\n scopes.add(mainScope);\n keys.forEach(key => addIfFound(scopes, mainScope, key));\n }\n keys.forEach(key => addIfFound(scopes, options, key));\n keys.forEach(key => addIfFound(scopes, overrides[type] || {}, key));\n keys.forEach(key => addIfFound(scopes, defaults, key));\n keys.forEach(key => addIfFound(scopes, descriptors, key));\n });\n\n const array = Array.from(scopes);\n if (array.length === 0) {\n array.push(Object.create(null));\n }\n if (keysCached.has(keyLists)) {\n cache.set(keyLists, array);\n }\n return array;\n }\n\n /**\n * Returns the option scopes for resolving chart options\n * @return {object[]}\n */\n chartOptionScopes() {\n const {options, type} = this;\n\n return [\n options,\n overrides[type] || {},\n defaults.datasets[type] || {}, // https://github.com/chartjs/Chart.js/issues/8531\n {type},\n defaults,\n descriptors\n ];\n }\n\n /**\n * @param {object[]} scopes\n * @param {string[]} names\n * @param {function|object} context\n * @param {string[]} [prefixes]\n * @return {object}\n */\n resolveNamedOptions(scopes, names, context, prefixes = ['']) {\n const result = {$shared: true};\n const {resolver, subPrefixes} = getResolver(this._resolverCache, scopes, prefixes);\n let options = resolver;\n if (needContext(resolver, names)) {\n result.$shared = false;\n context = isFunction(context) ? context() : context;\n // subResolver is passed to scriptable options. It should not resolve to hover options.\n const subResolver = this.createResolver(scopes, context, subPrefixes);\n options = _attachContext(resolver, context, subResolver);\n }\n\n for (const prop of names) {\n result[prop] = options[prop];\n }\n return result;\n }\n\n /**\n * @param {object[]} scopes\n * @param {object} [context]\n * @param {string[]} [prefixes]\n * @param {{scriptable: boolean, indexable: boolean, allKeys?: boolean}} [descriptorDefaults]\n */\n createResolver(scopes, context, prefixes = [''], descriptorDefaults) {\n const {resolver} = getResolver(this._resolverCache, scopes, prefixes);\n return isObject(context)\n ? _attachContext(resolver, context, undefined, descriptorDefaults)\n : resolver;\n }\n}\n\nfunction getResolver(resolverCache, scopes, prefixes) {\n let cache = resolverCache.get(scopes);\n if (!cache) {\n cache = new Map();\n resolverCache.set(scopes, cache);\n }\n const cacheKey = prefixes.join();\n let cached = cache.get(cacheKey);\n if (!cached) {\n const resolver = _createResolver(scopes, prefixes);\n cached = {\n resolver,\n subPrefixes: prefixes.filter(p => !p.toLowerCase().includes('hover'))\n };\n cache.set(cacheKey, cached);\n }\n return cached;\n}\n\nconst hasFunction = value => isObject(value)\n && Object.getOwnPropertyNames(value).some((key) => isFunction(value[key]));\n\nfunction needContext(proxy, names) {\n const {isScriptable, isIndexable} = _descriptors(proxy);\n\n for (const prop of names) {\n const scriptable = isScriptable(prop);\n const indexable = isIndexable(prop);\n const value = (indexable || scriptable) && proxy[prop];\n if ((scriptable && (isFunction(value) || hasFunction(value)))\n || (indexable && isArray(value))) {\n return true;\n }\n }\n return false;\n}\n","import animator from './core.animator.js';\nimport defaults, {overrides} from './core.defaults.js';\nimport Interaction from './core.interaction.js';\nimport layouts from './core.layouts.js';\nimport {_detectPlatform} from '../platform/index.js';\nimport PluginService from './core.plugins.js';\nimport registry from './core.registry.js';\nimport Config, {determineAxis, getIndexAxis} from './core.config.js';\nimport {retinaScale, _isDomSupported} from '../helpers/helpers.dom.js';\nimport {each, callback as callCallback, uid, valueOrDefault, _elementsEqual, isNullOrUndef, setsEqual, defined, isFunction, _isClickEvent} from '../helpers/helpers.core.js';\nimport {clearCanvas, clipArea, createContext, unclipArea, _isPointInArea} from '../helpers/index.js';\n// @ts-ignore\nimport {version} from '../../package.json';\nimport {debounce} from '../helpers/helpers.extras.js';\n\n/**\n * @typedef { import('../types/index.js').ChartEvent } ChartEvent\n * @typedef { import('../types/index.js').Point } Point\n */\n\nconst KNOWN_POSITIONS = ['top', 'bottom', 'left', 'right', 'chartArea'];\nfunction positionIsHorizontal(position, axis) {\n return position === 'top' || position === 'bottom' || (KNOWN_POSITIONS.indexOf(position) === -1 && axis === 'x');\n}\n\nfunction compare2Level(l1, l2) {\n return function(a, b) {\n return a[l1] === b[l1]\n ? a[l2] - b[l2]\n : a[l1] - b[l1];\n };\n}\n\nfunction onAnimationsComplete(context) {\n const chart = context.chart;\n const animationOptions = chart.options.animation;\n\n chart.notifyPlugins('afterRender');\n callCallback(animationOptions && animationOptions.onComplete, [context], chart);\n}\n\nfunction onAnimationProgress(context) {\n const chart = context.chart;\n const animationOptions = chart.options.animation;\n callCallback(animationOptions && animationOptions.onProgress, [context], chart);\n}\n\n/**\n * Chart.js can take a string id of a canvas element, a 2d context, or a canvas element itself.\n * Attempt to unwrap the item passed into the chart constructor so that it is a canvas element (if possible).\n */\nfunction getCanvas(item) {\n if (_isDomSupported() && typeof item === 'string') {\n item = document.getElementById(item);\n } else if (item && item.length) {\n // Support for array based queries (such as jQuery)\n item = item[0];\n }\n\n if (item && item.canvas) {\n // Support for any object associated to a canvas (including a context2d)\n item = item.canvas;\n }\n return item;\n}\n\nconst instances = {};\nconst getChart = (key) => {\n const canvas = getCanvas(key);\n return Object.values(instances).filter((c) => c.canvas === canvas).pop();\n};\n\nfunction moveNumericKeys(obj, start, move) {\n const keys = Object.keys(obj);\n for (const key of keys) {\n const intKey = +key;\n if (intKey >= start) {\n const value = obj[key];\n delete obj[key];\n if (move > 0 || intKey > start) {\n obj[intKey + move] = value;\n }\n }\n }\n}\n\n/**\n * @param {ChartEvent} e\n * @param {ChartEvent|null} lastEvent\n * @param {boolean} inChartArea\n * @param {boolean} isClick\n * @returns {ChartEvent|null}\n */\nfunction determineLastEvent(e, lastEvent, inChartArea, isClick) {\n if (!inChartArea || e.type === 'mouseout') {\n return null;\n }\n if (isClick) {\n return lastEvent;\n }\n return e;\n}\n\nfunction getSizeForArea(scale, chartArea, field) {\n return scale.options.clip ? scale[field] : chartArea[field];\n}\n\nfunction getDatasetArea(meta, chartArea) {\n const {xScale, yScale} = meta;\n if (xScale && yScale) {\n return {\n left: getSizeForArea(xScale, chartArea, 'left'),\n right: getSizeForArea(xScale, chartArea, 'right'),\n top: getSizeForArea(yScale, chartArea, 'top'),\n bottom: getSizeForArea(yScale, chartArea, 'bottom')\n };\n }\n return chartArea;\n}\n\nclass Chart {\n\n static defaults = defaults;\n static instances = instances;\n static overrides = overrides;\n static registry = registry;\n static version = version;\n static getChart = getChart;\n\n static register(...items) {\n registry.add(...items);\n invalidatePlugins();\n }\n\n static unregister(...items) {\n registry.remove(...items);\n invalidatePlugins();\n }\n\n // eslint-disable-next-line max-statements\n constructor(item, userConfig) {\n const config = this.config = new Config(userConfig);\n const initialCanvas = getCanvas(item);\n const existingChart = getChart(initialCanvas);\n if (existingChart) {\n throw new Error(\n 'Canvas is already in use. Chart with ID \\'' + existingChart.id + '\\'' +\n\t\t\t\t' must be destroyed before the canvas with ID \\'' + existingChart.canvas.id + '\\' can be reused.'\n );\n }\n\n const options = config.createResolver(config.chartOptionScopes(), this.getContext());\n\n this.platform = new (config.platform || _detectPlatform(initialCanvas))();\n this.platform.updateConfig(config);\n\n const context = this.platform.acquireContext(initialCanvas, options.aspectRatio);\n const canvas = context && context.canvas;\n const height = canvas && canvas.height;\n const width = canvas && canvas.width;\n\n this.id = uid();\n this.ctx = context;\n this.canvas = canvas;\n this.width = width;\n this.height = height;\n this._options = options;\n // Store the previously used aspect ratio to determine if a resize\n // is needed during updates. Do this after _options is set since\n // aspectRatio uses a getter\n this._aspectRatio = this.aspectRatio;\n this._layers = [];\n this._metasets = [];\n this._stacks = undefined;\n this.boxes = [];\n this.currentDevicePixelRatio = undefined;\n this.chartArea = undefined;\n this._active = [];\n this._lastEvent = undefined;\n this._listeners = {};\n /** @type {?{attach?: function, detach?: function, resize?: function}} */\n this._responsiveListeners = undefined;\n this._sortedMetasets = [];\n this.scales = {};\n this._plugins = new PluginService();\n this.$proxies = {};\n this._hiddenIndices = {};\n this.attached = false;\n this._animationsDisabled = undefined;\n this.$context = undefined;\n this._doResize = debounce(mode => this.update(mode), options.resizeDelay || 0);\n this._dataChanges = [];\n\n // Add the chart instance to the global namespace\n instances[this.id] = this;\n\n if (!context || !canvas) {\n // The given item is not a compatible context2d element, let's return before finalizing\n // the chart initialization but after setting basic chart / controller properties that\n // can help to figure out that the chart is not valid (e.g chart.canvas !== null);\n // https://github.com/chartjs/Chart.js/issues/2807\n console.error(\"Failed to create chart: can't acquire context from the given item\");\n return;\n }\n\n animator.listen(this, 'complete', onAnimationsComplete);\n animator.listen(this, 'progress', onAnimationProgress);\n\n this._initialize();\n if (this.attached) {\n this.update();\n }\n }\n\n get aspectRatio() {\n const {options: {aspectRatio, maintainAspectRatio}, width, height, _aspectRatio} = this;\n if (!isNullOrUndef(aspectRatio)) {\n // If aspectRatio is defined in options, use that.\n return aspectRatio;\n }\n\n if (maintainAspectRatio && _aspectRatio) {\n // If maintainAspectRatio is truthly and we had previously determined _aspectRatio, use that\n return _aspectRatio;\n }\n\n // Calculate\n return height ? width / height : null;\n }\n\n get data() {\n return this.config.data;\n }\n\n set data(data) {\n this.config.data = data;\n }\n\n get options() {\n return this._options;\n }\n\n set options(options) {\n this.config.options = options;\n }\n\n get registry() {\n return registry;\n }\n\n /**\n\t * @private\n\t */\n _initialize() {\n // Before init plugin notification\n this.notifyPlugins('beforeInit');\n\n if (this.options.responsive) {\n this.resize();\n } else {\n retinaScale(this, this.options.devicePixelRatio);\n }\n\n this.bindEvents();\n\n // After init plugin notification\n this.notifyPlugins('afterInit');\n\n return this;\n }\n\n clear() {\n clearCanvas(this.canvas, this.ctx);\n return this;\n }\n\n stop() {\n animator.stop(this);\n return this;\n }\n\n /**\n\t * Resize the chart to its container or to explicit dimensions.\n\t * @param {number} [width]\n\t * @param {number} [height]\n\t */\n resize(width, height) {\n if (!animator.running(this)) {\n this._resize(width, height);\n } else {\n this._resizeBeforeDraw = {width, height};\n }\n }\n\n _resize(width, height) {\n const options = this.options;\n const canvas = this.canvas;\n const aspectRatio = options.maintainAspectRatio && this.aspectRatio;\n const newSize = this.platform.getMaximumSize(canvas, width, height, aspectRatio);\n const newRatio = options.devicePixelRatio || this.platform.getDevicePixelRatio();\n const mode = this.width ? 'resize' : 'attach';\n\n this.width = newSize.width;\n this.height = newSize.height;\n this._aspectRatio = this.aspectRatio;\n if (!retinaScale(this, newRatio, true)) {\n return;\n }\n\n this.notifyPlugins('resize', {size: newSize});\n\n callCallback(options.onResize, [this, newSize], this);\n\n if (this.attached) {\n if (this._doResize(mode)) {\n // The resize update is delayed, only draw without updating.\n this.render();\n }\n }\n }\n\n ensureScalesHaveIDs() {\n const options = this.options;\n const scalesOptions = options.scales || {};\n\n each(scalesOptions, (axisOptions, axisID) => {\n axisOptions.id = axisID;\n });\n }\n\n /**\n\t * Builds a map of scale ID to scale object for future lookup.\n\t */\n buildOrUpdateScales() {\n const options = this.options;\n const scaleOpts = options.scales;\n const scales = this.scales;\n const updated = Object.keys(scales).reduce((obj, id) => {\n obj[id] = false;\n return obj;\n }, {});\n let items = [];\n\n if (scaleOpts) {\n items = items.concat(\n Object.keys(scaleOpts).map((id) => {\n const scaleOptions = scaleOpts[id];\n const axis = determineAxis(id, scaleOptions);\n const isRadial = axis === 'r';\n const isHorizontal = axis === 'x';\n return {\n options: scaleOptions,\n dposition: isRadial ? 'chartArea' : isHorizontal ? 'bottom' : 'left',\n dtype: isRadial ? 'radialLinear' : isHorizontal ? 'category' : 'linear'\n };\n })\n );\n }\n\n each(items, (item) => {\n const scaleOptions = item.options;\n const id = scaleOptions.id;\n const axis = determineAxis(id, scaleOptions);\n const scaleType = valueOrDefault(scaleOptions.type, item.dtype);\n\n if (scaleOptions.position === undefined || positionIsHorizontal(scaleOptions.position, axis) !== positionIsHorizontal(item.dposition)) {\n scaleOptions.position = item.dposition;\n }\n\n updated[id] = true;\n let scale = null;\n if (id in scales && scales[id].type === scaleType) {\n scale = scales[id];\n } else {\n const scaleClass = registry.getScale(scaleType);\n scale = new scaleClass({\n id,\n type: scaleType,\n ctx: this.ctx,\n chart: this\n });\n scales[scale.id] = scale;\n }\n\n scale.init(scaleOptions, options);\n });\n // clear up discarded scales\n each(updated, (hasUpdated, id) => {\n if (!hasUpdated) {\n delete scales[id];\n }\n });\n\n each(scales, (scale) => {\n layouts.configure(this, scale, scale.options);\n layouts.addBox(this, scale);\n });\n }\n\n /**\n\t * @private\n\t */\n _updateMetasets() {\n const metasets = this._metasets;\n const numData = this.data.datasets.length;\n const numMeta = metasets.length;\n\n metasets.sort((a, b) => a.index - b.index);\n if (numMeta > numData) {\n for (let i = numData; i < numMeta; ++i) {\n this._destroyDatasetMeta(i);\n }\n metasets.splice(numData, numMeta - numData);\n }\n this._sortedMetasets = metasets.slice(0).sort(compare2Level('order', 'index'));\n }\n\n /**\n\t * @private\n\t */\n _removeUnreferencedMetasets() {\n const {_metasets: metasets, data: {datasets}} = this;\n if (metasets.length > datasets.length) {\n delete this._stacks;\n }\n metasets.forEach((meta, index) => {\n if (datasets.filter(x => x === meta._dataset).length === 0) {\n this._destroyDatasetMeta(index);\n }\n });\n }\n\n buildOrUpdateControllers() {\n const newControllers = [];\n const datasets = this.data.datasets;\n let i, ilen;\n\n this._removeUnreferencedMetasets();\n\n for (i = 0, ilen = datasets.length; i < ilen; i++) {\n const dataset = datasets[i];\n let meta = this.getDatasetMeta(i);\n const type = dataset.type || this.config.type;\n\n if (meta.type && meta.type !== type) {\n this._destroyDatasetMeta(i);\n meta = this.getDatasetMeta(i);\n }\n meta.type = type;\n meta.indexAxis = dataset.indexAxis || getIndexAxis(type, this.options);\n meta.order = dataset.order || 0;\n meta.index = i;\n meta.label = '' + dataset.label;\n meta.visible = this.isDatasetVisible(i);\n\n if (meta.controller) {\n meta.controller.updateIndex(i);\n meta.controller.linkScales();\n } else {\n const ControllerClass = registry.getController(type);\n const {datasetElementType, dataElementType} = defaults.datasets[type];\n Object.assign(ControllerClass, {\n dataElementType: registry.getElement(dataElementType),\n datasetElementType: datasetElementType && registry.getElement(datasetElementType)\n });\n meta.controller = new ControllerClass(this, i);\n newControllers.push(meta.controller);\n }\n }\n\n this._updateMetasets();\n return newControllers;\n }\n\n /**\n\t * Reset the elements of all datasets\n\t * @private\n\t */\n _resetElements() {\n each(this.data.datasets, (dataset, datasetIndex) => {\n this.getDatasetMeta(datasetIndex).controller.reset();\n }, this);\n }\n\n /**\n\t* Resets the chart back to its state before the initial animation\n\t*/\n reset() {\n this._resetElements();\n this.notifyPlugins('reset');\n }\n\n update(mode) {\n const config = this.config;\n\n config.update();\n const options = this._options = config.createResolver(config.chartOptionScopes(), this.getContext());\n const animsDisabled = this._animationsDisabled = !options.animation;\n\n this._updateScales();\n this._checkEventBindings();\n this._updateHiddenIndices();\n\n // plugins options references might have change, let's invalidate the cache\n // https://github.com/chartjs/Chart.js/issues/5111#issuecomment-355934167\n this._plugins.invalidate();\n\n if (this.notifyPlugins('beforeUpdate', {mode, cancelable: true}) === false) {\n return;\n }\n\n // Make sure dataset controllers are updated and new controllers are reset\n const newControllers = this.buildOrUpdateControllers();\n\n this.notifyPlugins('beforeElementsUpdate');\n\n // Make sure all dataset controllers have correct meta data counts\n let minPadding = 0;\n for (let i = 0, ilen = this.data.datasets.length; i < ilen; i++) {\n const {controller} = this.getDatasetMeta(i);\n const reset = !animsDisabled && newControllers.indexOf(controller) === -1;\n // New controllers will be reset after the layout pass, so we only want to modify\n // elements added to new datasets\n controller.buildOrUpdateElements(reset);\n minPadding = Math.max(+controller.getMaxOverflow(), minPadding);\n }\n minPadding = this._minPadding = options.layout.autoPadding ? minPadding : 0;\n this._updateLayout(minPadding);\n\n // Only reset the controllers if we have animations\n if (!animsDisabled) {\n // Can only reset the new controllers after the scales have been updated\n // Reset is done to get the starting point for the initial animation\n each(newControllers, (controller) => {\n controller.reset();\n });\n }\n\n this._updateDatasets(mode);\n\n // Do this before render so that any plugins that need final scale updates can use it\n this.notifyPlugins('afterUpdate', {mode});\n\n this._layers.sort(compare2Level('z', '_idx'));\n\n // Replay last event from before update, or set hover styles on active elements\n const {_active, _lastEvent} = this;\n if (_lastEvent) {\n this._eventHandler(_lastEvent, true);\n } else if (_active.length) {\n this._updateHoverStyles(_active, _active, true);\n }\n\n this.render();\n }\n\n /**\n * @private\n */\n _updateScales() {\n each(this.scales, (scale) => {\n layouts.removeBox(this, scale);\n });\n\n this.ensureScalesHaveIDs();\n this.buildOrUpdateScales();\n }\n\n /**\n * @private\n */\n _checkEventBindings() {\n const options = this.options;\n const existingEvents = new Set(Object.keys(this._listeners));\n const newEvents = new Set(options.events);\n\n if (!setsEqual(existingEvents, newEvents) || !!this._responsiveListeners !== options.responsive) {\n // The configured events have changed. Rebind.\n this.unbindEvents();\n this.bindEvents();\n }\n }\n\n /**\n * @private\n */\n _updateHiddenIndices() {\n const {_hiddenIndices} = this;\n const changes = this._getUniformDataChanges() || [];\n for (const {method, start, count} of changes) {\n const move = method === '_removeElements' ? -count : count;\n moveNumericKeys(_hiddenIndices, start, move);\n }\n }\n\n /**\n * @private\n */\n _getUniformDataChanges() {\n const _dataChanges = this._dataChanges;\n if (!_dataChanges || !_dataChanges.length) {\n return;\n }\n\n this._dataChanges = [];\n const datasetCount = this.data.datasets.length;\n const makeSet = (idx) => new Set(\n _dataChanges\n .filter(c => c[0] === idx)\n .map((c, i) => i + ',' + c.splice(1).join(','))\n );\n\n const changeSet = makeSet(0);\n for (let i = 1; i < datasetCount; i++) {\n if (!setsEqual(changeSet, makeSet(i))) {\n return;\n }\n }\n return Array.from(changeSet)\n .map(c => c.split(','))\n .map(a => ({method: a[1], start: +a[2], count: +a[3]}));\n }\n\n /**\n\t * Updates the chart layout unless a plugin returns `false` to the `beforeLayout`\n\t * hook, in which case, plugins will not be called on `afterLayout`.\n\t * @private\n\t */\n _updateLayout(minPadding) {\n if (this.notifyPlugins('beforeLayout', {cancelable: true}) === false) {\n return;\n }\n\n layouts.update(this, this.width, this.height, minPadding);\n\n const area = this.chartArea;\n const noArea = area.width <= 0 || area.height <= 0;\n\n this._layers = [];\n each(this.boxes, (box) => {\n if (noArea && box.position === 'chartArea') {\n // Skip drawing and configuring chartArea boxes when chartArea is zero or negative\n return;\n }\n\n // configure is called twice, once in core.scale.update and once here.\n // Here the boxes are fully updated and at their final positions.\n if (box.configure) {\n box.configure();\n }\n this._layers.push(...box._layers());\n }, this);\n\n this._layers.forEach((item, index) => {\n item._idx = index;\n });\n\n this.notifyPlugins('afterLayout');\n }\n\n /**\n\t * Updates all datasets unless a plugin returns `false` to the `beforeDatasetsUpdate`\n\t * hook, in which case, plugins will not be called on `afterDatasetsUpdate`.\n\t * @private\n\t */\n _updateDatasets(mode) {\n if (this.notifyPlugins('beforeDatasetsUpdate', {mode, cancelable: true}) === false) {\n return;\n }\n\n for (let i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {\n this.getDatasetMeta(i).controller.configure();\n }\n\n for (let i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {\n this._updateDataset(i, isFunction(mode) ? mode({datasetIndex: i}) : mode);\n }\n\n this.notifyPlugins('afterDatasetsUpdate', {mode});\n }\n\n /**\n\t * Updates dataset at index unless a plugin returns `false` to the `beforeDatasetUpdate`\n\t * hook, in which case, plugins will not be called on `afterDatasetUpdate`.\n\t * @private\n\t */\n _updateDataset(index, mode) {\n const meta = this.getDatasetMeta(index);\n const args = {meta, index, mode, cancelable: true};\n\n if (this.notifyPlugins('beforeDatasetUpdate', args) === false) {\n return;\n }\n\n meta.controller._update(mode);\n\n args.cancelable = false;\n this.notifyPlugins('afterDatasetUpdate', args);\n }\n\n render() {\n if (this.notifyPlugins('beforeRender', {cancelable: true}) === false) {\n return;\n }\n\n if (animator.has(this)) {\n if (this.attached && !animator.running(this)) {\n animator.start(this);\n }\n } else {\n this.draw();\n onAnimationsComplete({chart: this});\n }\n }\n\n draw() {\n let i;\n if (this._resizeBeforeDraw) {\n const {width, height} = this._resizeBeforeDraw;\n // Unset pending resize request now to avoid possible recursion within _resize\n this._resizeBeforeDraw = null;\n this._resize(width, height);\n }\n this.clear();\n\n if (this.width <= 0 || this.height <= 0) {\n return;\n }\n\n if (this.notifyPlugins('beforeDraw', {cancelable: true}) === false) {\n return;\n }\n\n // Because of plugin hooks (before/afterDatasetsDraw), datasets can't\n // currently be part of layers. Instead, we draw\n // layers <= 0 before(default, backward compat), and the rest after\n const layers = this._layers;\n for (i = 0; i < layers.length && layers[i].z <= 0; ++i) {\n layers[i].draw(this.chartArea);\n }\n\n this._drawDatasets();\n\n // Rest of layers\n for (; i < layers.length; ++i) {\n layers[i].draw(this.chartArea);\n }\n\n this.notifyPlugins('afterDraw');\n }\n\n /**\n\t * @private\n\t */\n _getSortedDatasetMetas(filterVisible) {\n const metasets = this._sortedMetasets;\n const result = [];\n let i, ilen;\n\n for (i = 0, ilen = metasets.length; i < ilen; ++i) {\n const meta = metasets[i];\n if (!filterVisible || meta.visible) {\n result.push(meta);\n }\n }\n\n return result;\n }\n\n /**\n\t * Gets the visible dataset metas in drawing order\n\t * @return {object[]}\n\t */\n getSortedVisibleDatasetMetas() {\n return this._getSortedDatasetMetas(true);\n }\n\n /**\n\t * Draws all datasets unless a plugin returns `false` to the `beforeDatasetsDraw`\n\t * hook, in which case, plugins will not be called on `afterDatasetsDraw`.\n\t * @private\n\t */\n _drawDatasets() {\n if (this.notifyPlugins('beforeDatasetsDraw', {cancelable: true}) === false) {\n return;\n }\n\n const metasets = this.getSortedVisibleDatasetMetas();\n for (let i = metasets.length - 1; i >= 0; --i) {\n this._drawDataset(metasets[i]);\n }\n\n this.notifyPlugins('afterDatasetsDraw');\n }\n\n /**\n\t * Draws dataset at index unless a plugin returns `false` to the `beforeDatasetDraw`\n\t * hook, in which case, plugins will not be called on `afterDatasetDraw`.\n\t * @private\n\t */\n _drawDataset(meta) {\n const ctx = this.ctx;\n const clip = meta._clip;\n const useClip = !clip.disabled;\n const area = getDatasetArea(meta, this.chartArea);\n const args = {\n meta,\n index: meta.index,\n cancelable: true\n };\n\n if (this.notifyPlugins('beforeDatasetDraw', args) === false) {\n return;\n }\n\n if (useClip) {\n clipArea(ctx, {\n left: clip.left === false ? 0 : area.left - clip.left,\n right: clip.right === false ? this.width : area.right + clip.right,\n top: clip.top === false ? 0 : area.top - clip.top,\n bottom: clip.bottom === false ? this.height : area.bottom + clip.bottom\n });\n }\n\n meta.controller.draw();\n\n if (useClip) {\n unclipArea(ctx);\n }\n\n args.cancelable = false;\n this.notifyPlugins('afterDatasetDraw', args);\n }\n\n /**\n * Checks whether the given point is in the chart area.\n * @param {Point} point - in relative coordinates (see, e.g., getRelativePosition)\n * @returns {boolean}\n */\n isPointInArea(point) {\n return _isPointInArea(point, this.chartArea, this._minPadding);\n }\n\n getElementsAtEventForMode(e, mode, options, useFinalPosition) {\n const method = Interaction.modes[mode];\n if (typeof method === 'function') {\n return method(this, e, options, useFinalPosition);\n }\n\n return [];\n }\n\n getDatasetMeta(datasetIndex) {\n const dataset = this.data.datasets[datasetIndex];\n const metasets = this._metasets;\n let meta = metasets.filter(x => x && x._dataset === dataset).pop();\n\n if (!meta) {\n meta = {\n type: null,\n data: [],\n dataset: null,\n controller: null,\n hidden: null,\t\t\t// See isDatasetVisible() comment\n xAxisID: null,\n yAxisID: null,\n order: dataset && dataset.order || 0,\n index: datasetIndex,\n _dataset: dataset,\n _parsed: [],\n _sorted: false\n };\n metasets.push(meta);\n }\n\n return meta;\n }\n\n getContext() {\n return this.$context || (this.$context = createContext(null, {chart: this, type: 'chart'}));\n }\n\n getVisibleDatasetCount() {\n return this.getSortedVisibleDatasetMetas().length;\n }\n\n isDatasetVisible(datasetIndex) {\n const dataset = this.data.datasets[datasetIndex];\n if (!dataset) {\n return false;\n }\n\n const meta = this.getDatasetMeta(datasetIndex);\n\n // meta.hidden is a per chart dataset hidden flag override with 3 states: if true or false,\n // the dataset.hidden value is ignored, else if null, the dataset hidden state is returned.\n return typeof meta.hidden === 'boolean' ? !meta.hidden : !dataset.hidden;\n }\n\n setDatasetVisibility(datasetIndex, visible) {\n const meta = this.getDatasetMeta(datasetIndex);\n meta.hidden = !visible;\n }\n\n toggleDataVisibility(index) {\n this._hiddenIndices[index] = !this._hiddenIndices[index];\n }\n\n getDataVisibility(index) {\n return !this._hiddenIndices[index];\n }\n\n /**\n\t * @private\n\t */\n _updateVisibility(datasetIndex, dataIndex, visible) {\n const mode = visible ? 'show' : 'hide';\n const meta = this.getDatasetMeta(datasetIndex);\n const anims = meta.controller._resolveAnimations(undefined, mode);\n\n if (defined(dataIndex)) {\n meta.data[dataIndex].hidden = !visible;\n this.update();\n } else {\n this.setDatasetVisibility(datasetIndex, visible);\n // Animate visible state, so hide animation can be seen. This could be handled better if update / updateDataset returned a Promise.\n anims.update(meta, {visible});\n this.update((ctx) => ctx.datasetIndex === datasetIndex ? mode : undefined);\n }\n }\n\n hide(datasetIndex, dataIndex) {\n this._updateVisibility(datasetIndex, dataIndex, false);\n }\n\n show(datasetIndex, dataIndex) {\n this._updateVisibility(datasetIndex, dataIndex, true);\n }\n\n /**\n\t * @private\n\t */\n _destroyDatasetMeta(datasetIndex) {\n const meta = this._metasets[datasetIndex];\n if (meta && meta.controller) {\n meta.controller._destroy();\n }\n delete this._metasets[datasetIndex];\n }\n\n _stop() {\n let i, ilen;\n this.stop();\n animator.remove(this);\n\n for (i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {\n this._destroyDatasetMeta(i);\n }\n }\n\n destroy() {\n this.notifyPlugins('beforeDestroy');\n const {canvas, ctx} = this;\n\n this._stop();\n this.config.clearCache();\n\n if (canvas) {\n this.unbindEvents();\n clearCanvas(canvas, ctx);\n this.platform.releaseContext(ctx);\n this.canvas = null;\n this.ctx = null;\n }\n\n delete instances[this.id];\n\n this.notifyPlugins('afterDestroy');\n }\n\n toBase64Image(...args) {\n return this.canvas.toDataURL(...args);\n }\n\n /**\n\t * @private\n\t */\n bindEvents() {\n this.bindUserEvents();\n if (this.options.responsive) {\n this.bindResponsiveEvents();\n } else {\n this.attached = true;\n }\n }\n\n /**\n * @private\n */\n bindUserEvents() {\n const listeners = this._listeners;\n const platform = this.platform;\n\n const _add = (type, listener) => {\n platform.addEventListener(this, type, listener);\n listeners[type] = listener;\n };\n\n const listener = (e, x, y) => {\n e.offsetX = x;\n e.offsetY = y;\n this._eventHandler(e);\n };\n\n each(this.options.events, (type) => _add(type, listener));\n }\n\n /**\n * @private\n */\n bindResponsiveEvents() {\n if (!this._responsiveListeners) {\n this._responsiveListeners = {};\n }\n const listeners = this._responsiveListeners;\n const platform = this.platform;\n\n const _add = (type, listener) => {\n platform.addEventListener(this, type, listener);\n listeners[type] = listener;\n };\n const _remove = (type, listener) => {\n if (listeners[type]) {\n platform.removeEventListener(this, type, listener);\n delete listeners[type];\n }\n };\n\n const listener = (width, height) => {\n if (this.canvas) {\n this.resize(width, height);\n }\n };\n\n let detached; // eslint-disable-line prefer-const\n const attached = () => {\n _remove('attach', attached);\n\n this.attached = true;\n this.resize();\n\n _add('resize', listener);\n _add('detach', detached);\n };\n\n detached = () => {\n this.attached = false;\n\n _remove('resize', listener);\n\n // Stop animating and remove metasets, so when re-attached, the animations start from beginning.\n this._stop();\n this._resize(0, 0);\n\n _add('attach', attached);\n };\n\n if (platform.isAttached(this.canvas)) {\n attached();\n } else {\n detached();\n }\n }\n\n /**\n\t * @private\n\t */\n unbindEvents() {\n each(this._listeners, (listener, type) => {\n this.platform.removeEventListener(this, type, listener);\n });\n this._listeners = {};\n\n each(this._responsiveListeners, (listener, type) => {\n this.platform.removeEventListener(this, type, listener);\n });\n this._responsiveListeners = undefined;\n }\n\n updateHoverStyle(items, mode, enabled) {\n const prefix = enabled ? 'set' : 'remove';\n let meta, item, i, ilen;\n\n if (mode === 'dataset') {\n meta = this.getDatasetMeta(items[0].datasetIndex);\n meta.controller['_' + prefix + 'DatasetHoverStyle']();\n }\n\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n item = items[i];\n const controller = item && this.getDatasetMeta(item.datasetIndex).controller;\n if (controller) {\n controller[prefix + 'HoverStyle'](item.element, item.datasetIndex, item.index);\n }\n }\n }\n\n /**\n\t * Get active (hovered) elements\n\t * @returns array\n\t */\n getActiveElements() {\n return this._active || [];\n }\n\n /**\n\t * Set active (hovered) elements\n\t * @param {array} activeElements New active data points\n\t */\n setActiveElements(activeElements) {\n const lastActive = this._active || [];\n const active = activeElements.map(({datasetIndex, index}) => {\n const meta = this.getDatasetMeta(datasetIndex);\n if (!meta) {\n throw new Error('No dataset found at index ' + datasetIndex);\n }\n\n return {\n datasetIndex,\n element: meta.data[index],\n index,\n };\n });\n const changed = !_elementsEqual(active, lastActive);\n\n if (changed) {\n this._active = active;\n // Make sure we don't use the previous mouse event to override the active elements in update.\n this._lastEvent = null;\n this._updateHoverStyles(active, lastActive);\n }\n }\n\n /**\n\t * Calls enabled plugins on the specified hook and with the given args.\n\t * This method immediately returns as soon as a plugin explicitly returns false. The\n\t * returned value can be used, for instance, to interrupt the current action.\n\t * @param {string} hook - The name of the plugin method to call (e.g. 'beforeUpdate').\n\t * @param {Object} [args] - Extra arguments to apply to the hook call.\n * @param {import('./core.plugins.js').filterCallback} [filter] - Filtering function for limiting which plugins are notified\n\t * @returns {boolean} false if any of the plugins return false, else returns true.\n\t */\n notifyPlugins(hook, args, filter) {\n return this._plugins.notify(this, hook, args, filter);\n }\n\n /**\n * Check if a plugin with the specific ID is registered and enabled\n * @param {string} pluginId - The ID of the plugin of which to check if it is enabled\n * @returns {boolean}\n */\n isPluginEnabled(pluginId) {\n return this._plugins._cache.filter(p => p.plugin.id === pluginId).length === 1;\n }\n\n /**\n\t * @private\n\t */\n _updateHoverStyles(active, lastActive, replay) {\n const hoverOptions = this.options.hover;\n const diff = (a, b) => a.filter(x => !b.some(y => x.datasetIndex === y.datasetIndex && x.index === y.index));\n const deactivated = diff(lastActive, active);\n const activated = replay ? active : diff(active, lastActive);\n\n if (deactivated.length) {\n this.updateHoverStyle(deactivated, hoverOptions.mode, false);\n }\n\n if (activated.length && hoverOptions.mode) {\n this.updateHoverStyle(activated, hoverOptions.mode, true);\n }\n }\n\n /**\n\t * @private\n\t */\n _eventHandler(e, replay) {\n const args = {\n event: e,\n replay,\n cancelable: true,\n inChartArea: this.isPointInArea(e)\n };\n const eventFilter = (plugin) => (plugin.options.events || this.options.events).includes(e.native.type);\n\n if (this.notifyPlugins('beforeEvent', args, eventFilter) === false) {\n return;\n }\n\n const changed = this._handleEvent(e, replay, args.inChartArea);\n\n args.cancelable = false;\n this.notifyPlugins('afterEvent', args, eventFilter);\n\n if (changed || args.changed) {\n this.render();\n }\n\n return this;\n }\n\n /**\n\t * Handle an event\n\t * @param {ChartEvent} e the event to handle\n\t * @param {boolean} [replay] - true if the event was replayed by `update`\n * @param {boolean} [inChartArea] - true if the event is inside chartArea\n\t * @return {boolean} true if the chart needs to re-render\n\t * @private\n\t */\n _handleEvent(e, replay, inChartArea) {\n const {_active: lastActive = [], options} = this;\n\n // If the event is replayed from `update`, we should evaluate with the final positions.\n //\n // The `replay`:\n // It's the last event (excluding click) that has occurred before `update`.\n // So mouse has not moved. It's also over the chart, because there is a `replay`.\n //\n // The why:\n // If animations are active, the elements haven't moved yet compared to state before update.\n // But if they will, we are activating the elements that would be active, if this check\n // was done after the animations have completed. => \"final positions\".\n // If there is no animations, the \"final\" and \"current\" positions are equal.\n // This is done so we do not have to evaluate the active elements each animation frame\n // - it would be expensive.\n const useFinalPosition = replay;\n const active = this._getActiveElements(e, lastActive, inChartArea, useFinalPosition);\n const isClick = _isClickEvent(e);\n const lastEvent = determineLastEvent(e, this._lastEvent, inChartArea, isClick);\n\n if (inChartArea) {\n // Set _lastEvent to null while we are processing the event handlers.\n // This prevents recursion if the handler calls chart.update()\n this._lastEvent = null;\n\n // Invoke onHover hook\n callCallback(options.onHover, [e, active, this], this);\n\n if (isClick) {\n callCallback(options.onClick, [e, active, this], this);\n }\n }\n\n const changed = !_elementsEqual(active, lastActive);\n if (changed || replay) {\n this._active = active;\n this._updateHoverStyles(active, lastActive, replay);\n }\n\n this._lastEvent = lastEvent;\n\n return changed;\n }\n\n /**\n * @param {ChartEvent} e - The event\n * @param {import('../types/index.js').ActiveElement[]} lastActive - Previously active elements\n * @param {boolean} inChartArea - Is the event inside chartArea\n * @param {boolean} useFinalPosition - Should the evaluation be done with current or final (after animation) element positions\n * @returns {import('../types/index.js').ActiveElement[]} - The active elements\n * @pravate\n */\n _getActiveElements(e, lastActive, inChartArea, useFinalPosition) {\n if (e.type === 'mouseout') {\n return [];\n }\n\n if (!inChartArea) {\n // Let user control the active elements outside chartArea. Eg. using Legend.\n return lastActive;\n }\n\n const hoverOptions = this.options.hover;\n return this.getElementsAtEventForMode(e, hoverOptions.mode, hoverOptions, useFinalPosition);\n }\n}\n\n// @ts-ignore\nfunction invalidatePlugins() {\n return each(Chart.instances, (chart) => chart._plugins.invalidate());\n}\n\nexport default Chart;\n","import {_isDomSupported} from '../helpers/index.js';\nimport BasePlatform from './platform.base.js';\nimport BasicPlatform from './platform.basic.js';\nimport DomPlatform from './platform.dom.js';\n\nexport function _detectPlatform(canvas) {\n if (!_isDomSupported() || (typeof OffscreenCanvas !== 'undefined' && canvas instanceof OffscreenCanvas)) {\n return BasicPlatform;\n }\n return DomPlatform;\n}\n\nexport {BasePlatform, BasicPlatform, DomPlatform};\n","import Element from '../core/core.element.js';\nimport {_bezierInterpolation, _pointInLine, _steppedInterpolation} from '../helpers/helpers.interpolation.js';\nimport {_computeSegments, _boundSegments} from '../helpers/helpers.segment.js';\nimport {_steppedLineTo, _bezierCurveTo} from '../helpers/helpers.canvas.js';\nimport {_updateBezierControlPoints} from '../helpers/helpers.curve.js';\nimport {valueOrDefault} from '../helpers/index.js';\n\n/**\n * @typedef { import('./element.point.js').default } PointElement\n */\n\nfunction setStyle(ctx, options, style = options) {\n ctx.lineCap = valueOrDefault(style.borderCapStyle, options.borderCapStyle);\n ctx.setLineDash(valueOrDefault(style.borderDash, options.borderDash));\n ctx.lineDashOffset = valueOrDefault(style.borderDashOffset, options.borderDashOffset);\n ctx.lineJoin = valueOrDefault(style.borderJoinStyle, options.borderJoinStyle);\n ctx.lineWidth = valueOrDefault(style.borderWidth, options.borderWidth);\n ctx.strokeStyle = valueOrDefault(style.borderColor, options.borderColor);\n}\n\nfunction lineTo(ctx, previous, target) {\n ctx.lineTo(target.x, target.y);\n}\n\n/**\n * @returns {any}\n */\nfunction getLineMethod(options) {\n if (options.stepped) {\n return _steppedLineTo;\n }\n\n if (options.tension || options.cubicInterpolationMode === 'monotone') {\n return _bezierCurveTo;\n }\n\n return lineTo;\n}\n\nfunction pathVars(points, segment, params = {}) {\n const count = points.length;\n const {start: paramsStart = 0, end: paramsEnd = count - 1} = params;\n const {start: segmentStart, end: segmentEnd} = segment;\n const start = Math.max(paramsStart, segmentStart);\n const end = Math.min(paramsEnd, segmentEnd);\n const outside = paramsStart < segmentStart && paramsEnd < segmentStart || paramsStart > segmentEnd && paramsEnd > segmentEnd;\n\n return {\n count,\n start,\n loop: segment.loop,\n ilen: end < start && !outside ? count + end - start : end - start\n };\n}\n\n/**\n * Create path from points, grouping by truncated x-coordinate\n * Points need to be in order by x-coordinate for this to work efficiently\n * @param {CanvasRenderingContext2D|Path2D} ctx - Context\n * @param {LineElement} line\n * @param {object} segment\n * @param {number} segment.start - start index of the segment, referring the points array\n * @param {number} segment.end - end index of the segment, referring the points array\n * @param {boolean} segment.loop - indicates that the segment is a loop\n * @param {object} params\n * @param {boolean} params.move - move to starting point (vs line to it)\n * @param {boolean} params.reverse - path the segment from end to start\n * @param {number} params.start - limit segment to points starting from `start` index\n * @param {number} params.end - limit segment to points ending at `start` + `count` index\n */\nfunction pathSegment(ctx, line, segment, params) {\n const {points, options} = line;\n const {count, start, loop, ilen} = pathVars(points, segment, params);\n const lineMethod = getLineMethod(options);\n // eslint-disable-next-line prefer-const\n let {move = true, reverse} = params || {};\n let i, point, prev;\n\n for (i = 0; i <= ilen; ++i) {\n point = points[(start + (reverse ? ilen - i : i)) % count];\n\n if (point.skip) {\n // If there is a skipped point inside a segment, spanGaps must be true\n continue;\n } else if (move) {\n ctx.moveTo(point.x, point.y);\n move = false;\n } else {\n lineMethod(ctx, prev, point, reverse, options.stepped);\n }\n\n prev = point;\n }\n\n if (loop) {\n point = points[(start + (reverse ? ilen : 0)) % count];\n lineMethod(ctx, prev, point, reverse, options.stepped);\n }\n\n return !!loop;\n}\n\n/**\n * Create path from points, grouping by truncated x-coordinate\n * Points need to be in order by x-coordinate for this to work efficiently\n * @param {CanvasRenderingContext2D|Path2D} ctx - Context\n * @param {LineElement} line\n * @param {object} segment\n * @param {number} segment.start - start index of the segment, referring the points array\n * @param {number} segment.end - end index of the segment, referring the points array\n * @param {boolean} segment.loop - indicates that the segment is a loop\n * @param {object} params\n * @param {boolean} params.move - move to starting point (vs line to it)\n * @param {boolean} params.reverse - path the segment from end to start\n * @param {number} params.start - limit segment to points starting from `start` index\n * @param {number} params.end - limit segment to points ending at `start` + `count` index\n */\nfunction fastPathSegment(ctx, line, segment, params) {\n const points = line.points;\n const {count, start, ilen} = pathVars(points, segment, params);\n const {move = true, reverse} = params || {};\n let avgX = 0;\n let countX = 0;\n let i, point, prevX, minY, maxY, lastY;\n\n const pointIndex = (index) => (start + (reverse ? ilen - index : index)) % count;\n const drawX = () => {\n if (minY !== maxY) {\n // Draw line to maxY and minY, using the average x-coordinate\n ctx.lineTo(avgX, maxY);\n ctx.lineTo(avgX, minY);\n // Line to y-value of last point in group. So the line continues\n // from correct position. Not using move, to have solid path.\n ctx.lineTo(avgX, lastY);\n }\n };\n\n if (move) {\n point = points[pointIndex(0)];\n ctx.moveTo(point.x, point.y);\n }\n\n for (i = 0; i <= ilen; ++i) {\n point = points[pointIndex(i)];\n\n if (point.skip) {\n // If there is a skipped point inside a segment, spanGaps must be true\n continue;\n }\n\n const x = point.x;\n const y = point.y;\n const truncX = x | 0; // truncated x-coordinate\n\n if (truncX === prevX) {\n // Determine `minY` / `maxY` and `avgX` while we stay within same x-position\n if (y < minY) {\n minY = y;\n } else if (y > maxY) {\n maxY = y;\n }\n // For first point in group, countX is `0`, so average will be `x` / 1.\n avgX = (countX * avgX + x) / ++countX;\n } else {\n drawX();\n // Draw line to next x-position, using the first (or only)\n // y-value in that group\n ctx.lineTo(x, y);\n\n prevX = truncX;\n countX = 0;\n minY = maxY = y;\n }\n // Keep track of the last y-value in group\n lastY = y;\n }\n drawX();\n}\n\n/**\n * @param {LineElement} line - the line\n * @returns {function}\n * @private\n */\nfunction _getSegmentMethod(line) {\n const opts = line.options;\n const borderDash = opts.borderDash && opts.borderDash.length;\n const useFastPath = !line._decimated && !line._loop && !opts.tension && opts.cubicInterpolationMode !== 'monotone' && !opts.stepped && !borderDash;\n return useFastPath ? fastPathSegment : pathSegment;\n}\n\n/**\n * @private\n */\nfunction _getInterpolationMethod(options) {\n if (options.stepped) {\n return _steppedInterpolation;\n }\n\n if (options.tension || options.cubicInterpolationMode === 'monotone') {\n return _bezierInterpolation;\n }\n\n return _pointInLine;\n}\n\nfunction strokePathWithCache(ctx, line, start, count) {\n let path = line._path;\n if (!path) {\n path = line._path = new Path2D();\n if (line.path(path, start, count)) {\n path.closePath();\n }\n }\n setStyle(ctx, line.options);\n ctx.stroke(path);\n}\n\nfunction strokePathDirect(ctx, line, start, count) {\n const {segments, options} = line;\n const segmentMethod = _getSegmentMethod(line);\n\n for (const segment of segments) {\n setStyle(ctx, options, segment.style);\n ctx.beginPath();\n if (segmentMethod(ctx, line, segment, {start, end: start + count - 1})) {\n ctx.closePath();\n }\n ctx.stroke();\n }\n}\n\nconst usePath2D = typeof Path2D === 'function';\n\nfunction draw(ctx, line, start, count) {\n if (usePath2D && !line.options.segment) {\n strokePathWithCache(ctx, line, start, count);\n } else {\n strokePathDirect(ctx, line, start, count);\n }\n}\n\nexport default class LineElement extends Element {\n\n static id = 'line';\n\n /**\n * @type {any}\n */\n static defaults = {\n borderCapStyle: 'butt',\n borderDash: [],\n borderDashOffset: 0,\n borderJoinStyle: 'miter',\n borderWidth: 3,\n capBezierPoints: true,\n cubicInterpolationMode: 'default',\n fill: false,\n spanGaps: false,\n stepped: false,\n tension: 0,\n };\n\n /**\n * @type {any}\n */\n static defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n };\n\n\n static descriptors = {\n _scriptable: true,\n _indexable: (name) => name !== 'borderDash' && name !== 'fill',\n };\n\n\n constructor(cfg) {\n super();\n\n this.animated = true;\n this.options = undefined;\n this._chart = undefined;\n this._loop = undefined;\n this._fullLoop = undefined;\n this._path = undefined;\n this._points = undefined;\n this._segments = undefined;\n this._decimated = false;\n this._pointsUpdated = false;\n this._datasetIndex = undefined;\n\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n\n updateControlPoints(chartArea, indexAxis) {\n const options = this.options;\n if ((options.tension || options.cubicInterpolationMode === 'monotone') && !options.stepped && !this._pointsUpdated) {\n const loop = options.spanGaps ? this._loop : this._fullLoop;\n _updateBezierControlPoints(this._points, options, chartArea, loop, indexAxis);\n this._pointsUpdated = true;\n }\n }\n\n set points(points) {\n this._points = points;\n delete this._segments;\n delete this._path;\n this._pointsUpdated = false;\n }\n\n get points() {\n return this._points;\n }\n\n get segments() {\n return this._segments || (this._segments = _computeSegments(this, this.options.segment));\n }\n\n /**\n\t * First non-skipped point on this line\n\t * @returns {PointElement|undefined}\n\t */\n first() {\n const segments = this.segments;\n const points = this.points;\n return segments.length && points[segments[0].start];\n }\n\n /**\n\t * Last non-skipped point on this line\n\t * @returns {PointElement|undefined}\n\t */\n last() {\n const segments = this.segments;\n const points = this.points;\n const count = segments.length;\n return count && points[segments[count - 1].end];\n }\n\n /**\n\t * Interpolate a point in this line at the same value on `property` as\n\t * the reference `point` provided\n\t * @param {PointElement} point - the reference point\n\t * @param {string} property - the property to match on\n\t * @returns {PointElement|undefined}\n\t */\n interpolate(point, property) {\n const options = this.options;\n const value = point[property];\n const points = this.points;\n const segments = _boundSegments(this, {property, start: value, end: value});\n\n if (!segments.length) {\n return;\n }\n\n const result = [];\n const _interpolate = _getInterpolationMethod(options);\n let i, ilen;\n for (i = 0, ilen = segments.length; i < ilen; ++i) {\n const {start, end} = segments[i];\n const p1 = points[start];\n const p2 = points[end];\n if (p1 === p2) {\n result.push(p1);\n continue;\n }\n const t = Math.abs((value - p1[property]) / (p2[property] - p1[property]));\n const interpolated = _interpolate(p1, p2, t, options.stepped);\n interpolated[property] = point[property];\n result.push(interpolated);\n }\n return result.length === 1 ? result[0] : result;\n }\n\n /**\n\t * Append a segment of this line to current path.\n\t * @param {CanvasRenderingContext2D} ctx\n\t * @param {object} segment\n\t * @param {number} segment.start - start index of the segment, referring the points array\n \t * @param {number} segment.end - end index of the segment, referring the points array\n \t * @param {boolean} segment.loop - indicates that the segment is a loop\n\t * @param {object} params\n\t * @param {boolean} params.move - move to starting point (vs line to it)\n\t * @param {boolean} params.reverse - path the segment from end to start\n\t * @param {number} params.start - limit segment to points starting from `start` index\n\t * @param {number} params.end - limit segment to points ending at `start` + `count` index\n\t * @returns {undefined|boolean} - true if the segment is a full loop (path should be closed)\n\t */\n pathSegment(ctx, segment, params) {\n const segmentMethod = _getSegmentMethod(this);\n return segmentMethod(ctx, this, segment, params);\n }\n\n /**\n\t * Append all segments of this line to current path.\n\t * @param {CanvasRenderingContext2D|Path2D} ctx\n\t * @param {number} [start]\n\t * @param {number} [count]\n\t * @returns {undefined|boolean} - true if line is a full loop (path should be closed)\n\t */\n path(ctx, start, count) {\n const segments = this.segments;\n const segmentMethod = _getSegmentMethod(this);\n let loop = this._loop;\n\n start = start || 0;\n count = count || (this.points.length - start);\n\n for (const segment of segments) {\n loop &= segmentMethod(ctx, this, segment, {start, end: start + count - 1});\n }\n return !!loop;\n }\n\n /**\n\t * Draw\n\t * @param {CanvasRenderingContext2D} ctx\n\t * @param {object} chartArea\n\t * @param {number} [start]\n\t * @param {number} [count]\n\t */\n draw(ctx, chartArea, start, count) {\n const options = this.options || {};\n const points = this.points || [];\n\n if (points.length && options.borderWidth) {\n ctx.save();\n\n draw(ctx, this, start, count);\n\n ctx.restore();\n }\n\n if (this.animated) {\n // When line is animated, the control points and path are not cached.\n this._pointsUpdated = false;\n this._path = undefined;\n }\n }\n}\n","import Element from '../core/core.element.js';\nimport {drawPoint, _isPointInArea} from '../helpers/helpers.canvas.js';\nimport type {\n CartesianParsedData,\n ChartArea,\n Point,\n PointHoverOptions,\n PointOptions,\n} from '../types/index.js';\n\nfunction inRange(el: PointElement, pos: number, axis: 'x' | 'y', useFinalPosition?: boolean) {\n const options = el.options;\n const {[axis]: value} = el.getProps([axis], useFinalPosition);\n\n return (Math.abs(pos - value) < options.radius + options.hitRadius);\n}\n\nexport type PointProps = Point\n\nexport default class PointElement extends Element {\n\n static id = 'point';\n\n parsed: CartesianParsedData;\n skip?: boolean;\n stop?: boolean;\n\n /**\n * @type {any}\n */\n static defaults = {\n borderWidth: 1,\n hitRadius: 1,\n hoverBorderWidth: 1,\n hoverRadius: 4,\n pointStyle: 'circle',\n radius: 3,\n rotation: 0\n };\n\n /**\n * @type {any}\n */\n static defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n };\n\n constructor(cfg) {\n super();\n\n this.options = undefined;\n this.parsed = undefined;\n this.skip = undefined;\n this.stop = undefined;\n\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n\n inRange(mouseX: number, mouseY: number, useFinalPosition?: boolean) {\n const options = this.options;\n const {x, y} = this.getProps(['x', 'y'], useFinalPosition);\n return ((Math.pow(mouseX - x, 2) + Math.pow(mouseY - y, 2)) < Math.pow(options.hitRadius + options.radius, 2));\n }\n\n inXRange(mouseX: number, useFinalPosition?: boolean) {\n return inRange(this, mouseX, 'x', useFinalPosition);\n }\n\n inYRange(mouseY: number, useFinalPosition?: boolean) {\n return inRange(this, mouseY, 'y', useFinalPosition);\n }\n\n getCenterPoint(useFinalPosition?: boolean) {\n const {x, y} = this.getProps(['x', 'y'], useFinalPosition);\n return {x, y};\n }\n\n size(options?: Partial) {\n options = options || this.options || {};\n let radius = options.radius || 0;\n radius = Math.max(radius, radius && options.hoverRadius || 0);\n const borderWidth = radius && options.borderWidth || 0;\n return (radius + borderWidth) * 2;\n }\n\n draw(ctx: CanvasRenderingContext2D, area: ChartArea) {\n const options = this.options;\n\n if (this.skip || options.radius < 0.1 || !_isPointInArea(this, area, this.size(options) / 2)) {\n return;\n }\n\n ctx.strokeStyle = options.borderColor;\n ctx.lineWidth = options.borderWidth;\n ctx.fillStyle = options.backgroundColor;\n drawPoint(ctx, options, this.x, this.y);\n }\n\n getRange() {\n const options = this.options || {};\n // @ts-expect-error Fallbacks should never be hit in practice\n return options.radius + options.hitRadius;\n }\n}\n","import Element from '../core/core.element.js';\nimport {isObject, _isBetween, _limitValue} from '../helpers/index.js';\nimport {addRoundedRectPath} from '../helpers/helpers.canvas.js';\nimport {toTRBL, toTRBLCorners} from '../helpers/helpers.options.js';\n\n/** @typedef {{ x: number, y: number, base: number, horizontal: boolean, width: number, height: number }} BarProps */\n\n/**\n * Helper function to get the bounds of the bar regardless of the orientation\n * @param {BarElement} bar the bar\n * @param {boolean} [useFinalPosition]\n * @return {object} bounds of the bar\n * @private\n */\nfunction getBarBounds(bar, useFinalPosition) {\n const {x, y, base, width, height} = /** @type {BarProps} */ (bar.getProps(['x', 'y', 'base', 'width', 'height'], useFinalPosition));\n\n let left, right, top, bottom, half;\n\n if (bar.horizontal) {\n half = height / 2;\n left = Math.min(x, base);\n right = Math.max(x, base);\n top = y - half;\n bottom = y + half;\n } else {\n half = width / 2;\n left = x - half;\n right = x + half;\n top = Math.min(y, base);\n bottom = Math.max(y, base);\n }\n\n return {left, top, right, bottom};\n}\n\nfunction skipOrLimit(skip, value, min, max) {\n return skip ? 0 : _limitValue(value, min, max);\n}\n\nfunction parseBorderWidth(bar, maxW, maxH) {\n const value = bar.options.borderWidth;\n const skip = bar.borderSkipped;\n const o = toTRBL(value);\n\n return {\n t: skipOrLimit(skip.top, o.top, 0, maxH),\n r: skipOrLimit(skip.right, o.right, 0, maxW),\n b: skipOrLimit(skip.bottom, o.bottom, 0, maxH),\n l: skipOrLimit(skip.left, o.left, 0, maxW)\n };\n}\n\nfunction parseBorderRadius(bar, maxW, maxH) {\n const {enableBorderRadius} = bar.getProps(['enableBorderRadius']);\n const value = bar.options.borderRadius;\n const o = toTRBLCorners(value);\n const maxR = Math.min(maxW, maxH);\n const skip = bar.borderSkipped;\n\n // If the value is an object, assume the user knows what they are doing\n // and apply as directed.\n const enableBorder = enableBorderRadius || isObject(value);\n\n return {\n topLeft: skipOrLimit(!enableBorder || skip.top || skip.left, o.topLeft, 0, maxR),\n topRight: skipOrLimit(!enableBorder || skip.top || skip.right, o.topRight, 0, maxR),\n bottomLeft: skipOrLimit(!enableBorder || skip.bottom || skip.left, o.bottomLeft, 0, maxR),\n bottomRight: skipOrLimit(!enableBorder || skip.bottom || skip.right, o.bottomRight, 0, maxR)\n };\n}\n\nfunction boundingRects(bar) {\n const bounds = getBarBounds(bar);\n const width = bounds.right - bounds.left;\n const height = bounds.bottom - bounds.top;\n const border = parseBorderWidth(bar, width / 2, height / 2);\n const radius = parseBorderRadius(bar, width / 2, height / 2);\n\n return {\n outer: {\n x: bounds.left,\n y: bounds.top,\n w: width,\n h: height,\n radius\n },\n inner: {\n x: bounds.left + border.l,\n y: bounds.top + border.t,\n w: width - border.l - border.r,\n h: height - border.t - border.b,\n radius: {\n topLeft: Math.max(0, radius.topLeft - Math.max(border.t, border.l)),\n topRight: Math.max(0, radius.topRight - Math.max(border.t, border.r)),\n bottomLeft: Math.max(0, radius.bottomLeft - Math.max(border.b, border.l)),\n bottomRight: Math.max(0, radius.bottomRight - Math.max(border.b, border.r)),\n }\n }\n };\n}\n\nfunction inRange(bar, x, y, useFinalPosition) {\n const skipX = x === null;\n const skipY = y === null;\n const skipBoth = skipX && skipY;\n const bounds = bar && !skipBoth && getBarBounds(bar, useFinalPosition);\n\n return bounds\n\t\t&& (skipX || _isBetween(x, bounds.left, bounds.right))\n\t\t&& (skipY || _isBetween(y, bounds.top, bounds.bottom));\n}\n\nfunction hasRadius(radius) {\n return radius.topLeft || radius.topRight || radius.bottomLeft || radius.bottomRight;\n}\n\n/**\n * Add a path of a rectangle to the current sub-path\n * @param {CanvasRenderingContext2D} ctx Context\n * @param {*} rect Bounding rect\n */\nfunction addNormalRectPath(ctx, rect) {\n ctx.rect(rect.x, rect.y, rect.w, rect.h);\n}\n\nfunction inflateRect(rect, amount, refRect = {}) {\n const x = rect.x !== refRect.x ? -amount : 0;\n const y = rect.y !== refRect.y ? -amount : 0;\n const w = (rect.x + rect.w !== refRect.x + refRect.w ? amount : 0) - x;\n const h = (rect.y + rect.h !== refRect.y + refRect.h ? amount : 0) - y;\n return {\n x: rect.x + x,\n y: rect.y + y,\n w: rect.w + w,\n h: rect.h + h,\n radius: rect.radius\n };\n}\n\nexport default class BarElement extends Element {\n\n static id = 'bar';\n\n /**\n * @type {any}\n */\n static defaults = {\n borderSkipped: 'start',\n borderWidth: 0,\n borderRadius: 0,\n inflateAmount: 'auto',\n pointStyle: undefined\n };\n\n /**\n * @type {any}\n */\n static defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n };\n\n constructor(cfg) {\n super();\n\n this.options = undefined;\n this.horizontal = undefined;\n this.base = undefined;\n this.width = undefined;\n this.height = undefined;\n this.inflateAmount = undefined;\n\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n\n draw(ctx) {\n const {inflateAmount, options: {borderColor, backgroundColor}} = this;\n const {inner, outer} = boundingRects(this);\n const addRectPath = hasRadius(outer.radius) ? addRoundedRectPath : addNormalRectPath;\n\n ctx.save();\n\n if (outer.w !== inner.w || outer.h !== inner.h) {\n ctx.beginPath();\n addRectPath(ctx, inflateRect(outer, inflateAmount, inner));\n ctx.clip();\n addRectPath(ctx, inflateRect(inner, -inflateAmount, outer));\n ctx.fillStyle = borderColor;\n ctx.fill('evenodd');\n }\n\n ctx.beginPath();\n addRectPath(ctx, inflateRect(inner, inflateAmount));\n ctx.fillStyle = backgroundColor;\n ctx.fill();\n\n ctx.restore();\n }\n\n inRange(mouseX, mouseY, useFinalPosition) {\n return inRange(this, mouseX, mouseY, useFinalPosition);\n }\n\n inXRange(mouseX, useFinalPosition) {\n return inRange(this, mouseX, null, useFinalPosition);\n }\n\n inYRange(mouseY, useFinalPosition) {\n return inRange(this, null, mouseY, useFinalPosition);\n }\n\n getCenterPoint(useFinalPosition) {\n const {x, y, base, horizontal} = /** @type {BarProps} */ (this.getProps(['x', 'y', 'base', 'horizontal'], useFinalPosition));\n return {\n x: horizontal ? (x + base) / 2 : x,\n y: horizontal ? y : (y + base) / 2\n };\n }\n\n getRange(axis) {\n return axis === 'x' ? this.width / 2 : this.height / 2;\n }\n}\n","import defaults from '../core/core.defaults.js';\nimport Element from '../core/core.element.js';\nimport layouts from '../core/core.layouts.js';\nimport {addRoundedRectPath, drawPointLegend, renderText} from '../helpers/helpers.canvas.js';\nimport {\n _isBetween,\n callback as call,\n clipArea,\n getRtlAdapter,\n overrideTextDirection,\n restoreTextDirection,\n toFont,\n toPadding,\n unclipArea,\n valueOrDefault,\n} from '../helpers/index.js';\nimport {_alignStartEnd, _textX, _toLeftRightCenter} from '../helpers/helpers.extras.js';\nimport {toTRBLCorners} from '../helpers/helpers.options.js';\n\n/**\n * @typedef { import('../types/index.js').ChartEvent } ChartEvent\n */\n\nconst getBoxSize = (labelOpts, fontSize) => {\n let {boxHeight = fontSize, boxWidth = fontSize} = labelOpts;\n\n if (labelOpts.usePointStyle) {\n boxHeight = Math.min(boxHeight, fontSize);\n boxWidth = labelOpts.pointStyleWidth || Math.min(boxWidth, fontSize);\n }\n\n return {\n boxWidth,\n boxHeight,\n itemHeight: Math.max(fontSize, boxHeight)\n };\n};\n\nconst itemsEqual = (a, b) => a !== null && b !== null && a.datasetIndex === b.datasetIndex && a.index === b.index;\n\nexport class Legend extends Element {\n\n /**\n\t * @param {{ ctx: any; options: any; chart: any; }} config\n\t */\n constructor(config) {\n super();\n\n this._added = false;\n\n // Contains hit boxes for each dataset (in dataset order)\n this.legendHitBoxes = [];\n\n /**\n \t\t * @private\n \t\t */\n this._hoveredItem = null;\n\n // Are we in doughnut mode which has a different data type\n this.doughnutMode = false;\n\n this.chart = config.chart;\n this.options = config.options;\n this.ctx = config.ctx;\n this.legendItems = undefined;\n this.columnSizes = undefined;\n this.lineWidths = undefined;\n this.maxHeight = undefined;\n this.maxWidth = undefined;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.height = undefined;\n this.width = undefined;\n this._margins = undefined;\n this.position = undefined;\n this.weight = undefined;\n this.fullSize = undefined;\n }\n\n update(maxWidth, maxHeight, margins) {\n this.maxWidth = maxWidth;\n this.maxHeight = maxHeight;\n this._margins = margins;\n\n this.setDimensions();\n this.buildLabels();\n this.fit();\n }\n\n setDimensions() {\n if (this.isHorizontal()) {\n this.width = this.maxWidth;\n this.left = this._margins.left;\n this.right = this.width;\n } else {\n this.height = this.maxHeight;\n this.top = this._margins.top;\n this.bottom = this.height;\n }\n }\n\n buildLabels() {\n const labelOpts = this.options.labels || {};\n let legendItems = call(labelOpts.generateLabels, [this.chart], this) || [];\n\n if (labelOpts.filter) {\n legendItems = legendItems.filter((item) => labelOpts.filter(item, this.chart.data));\n }\n\n if (labelOpts.sort) {\n legendItems = legendItems.sort((a, b) => labelOpts.sort(a, b, this.chart.data));\n }\n\n if (this.options.reverse) {\n legendItems.reverse();\n }\n\n this.legendItems = legendItems;\n }\n\n fit() {\n const {options, ctx} = this;\n\n // The legend may not be displayed for a variety of reasons including\n // the fact that the defaults got set to `false`.\n // When the legend is not displayed, there are no guarantees that the options\n // are correctly formatted so we need to bail out as early as possible.\n if (!options.display) {\n this.width = this.height = 0;\n return;\n }\n\n const labelOpts = options.labels;\n const labelFont = toFont(labelOpts.font);\n const fontSize = labelFont.size;\n const titleHeight = this._computeTitleHeight();\n const {boxWidth, itemHeight} = getBoxSize(labelOpts, fontSize);\n\n let width, height;\n\n ctx.font = labelFont.string;\n\n if (this.isHorizontal()) {\n width = this.maxWidth; // fill all the width\n height = this._fitRows(titleHeight, fontSize, boxWidth, itemHeight) + 10;\n } else {\n height = this.maxHeight; // fill all the height\n width = this._fitCols(titleHeight, labelFont, boxWidth, itemHeight) + 10;\n }\n\n this.width = Math.min(width, options.maxWidth || this.maxWidth);\n this.height = Math.min(height, options.maxHeight || this.maxHeight);\n }\n\n /**\n\t * @private\n\t */\n _fitRows(titleHeight, fontSize, boxWidth, itemHeight) {\n const {ctx, maxWidth, options: {labels: {padding}}} = this;\n const hitboxes = this.legendHitBoxes = [];\n // Width of each line of legend boxes. Labels wrap onto multiple lines when there are too many to fit on one\n const lineWidths = this.lineWidths = [0];\n const lineHeight = itemHeight + padding;\n let totalHeight = titleHeight;\n\n ctx.textAlign = 'left';\n ctx.textBaseline = 'middle';\n\n let row = -1;\n let top = -lineHeight;\n this.legendItems.forEach((legendItem, i) => {\n const itemWidth = boxWidth + (fontSize / 2) + ctx.measureText(legendItem.text).width;\n\n if (i === 0 || lineWidths[lineWidths.length - 1] + itemWidth + 2 * padding > maxWidth) {\n totalHeight += lineHeight;\n lineWidths[lineWidths.length - (i > 0 ? 0 : 1)] = 0;\n top += lineHeight;\n row++;\n }\n\n hitboxes[i] = {left: 0, top, row, width: itemWidth, height: itemHeight};\n\n lineWidths[lineWidths.length - 1] += itemWidth + padding;\n });\n\n return totalHeight;\n }\n\n _fitCols(titleHeight, labelFont, boxWidth, _itemHeight) {\n const {ctx, maxHeight, options: {labels: {padding}}} = this;\n const hitboxes = this.legendHitBoxes = [];\n const columnSizes = this.columnSizes = [];\n const heightLimit = maxHeight - titleHeight;\n\n let totalWidth = padding;\n let currentColWidth = 0;\n let currentColHeight = 0;\n\n let left = 0;\n let col = 0;\n\n this.legendItems.forEach((legendItem, i) => {\n const {itemWidth, itemHeight} = calculateItemSize(boxWidth, labelFont, ctx, legendItem, _itemHeight);\n\n // If too tall, go to new column\n if (i > 0 && currentColHeight + itemHeight + 2 * padding > heightLimit) {\n totalWidth += currentColWidth + padding;\n columnSizes.push({width: currentColWidth, height: currentColHeight}); // previous column size\n left += currentColWidth + padding;\n col++;\n currentColWidth = currentColHeight = 0;\n }\n\n // Store the hitbox width and height here. Final position will be updated in `draw`\n hitboxes[i] = {left, top: currentColHeight, col, width: itemWidth, height: itemHeight};\n\n // Get max width\n currentColWidth = Math.max(currentColWidth, itemWidth);\n currentColHeight += itemHeight + padding;\n });\n\n totalWidth += currentColWidth;\n columnSizes.push({width: currentColWidth, height: currentColHeight}); // previous column size\n\n return totalWidth;\n }\n\n adjustHitBoxes() {\n if (!this.options.display) {\n return;\n }\n const titleHeight = this._computeTitleHeight();\n const {legendHitBoxes: hitboxes, options: {align, labels: {padding}, rtl}} = this;\n const rtlHelper = getRtlAdapter(rtl, this.left, this.width);\n if (this.isHorizontal()) {\n let row = 0;\n let left = _alignStartEnd(align, this.left + padding, this.right - this.lineWidths[row]);\n for (const hitbox of hitboxes) {\n if (row !== hitbox.row) {\n row = hitbox.row;\n left = _alignStartEnd(align, this.left + padding, this.right - this.lineWidths[row]);\n }\n hitbox.top += this.top + titleHeight + padding;\n hitbox.left = rtlHelper.leftForLtr(rtlHelper.x(left), hitbox.width);\n left += hitbox.width + padding;\n }\n } else {\n let col = 0;\n let top = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - this.columnSizes[col].height);\n for (const hitbox of hitboxes) {\n if (hitbox.col !== col) {\n col = hitbox.col;\n top = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - this.columnSizes[col].height);\n }\n hitbox.top = top;\n hitbox.left += this.left + padding;\n hitbox.left = rtlHelper.leftForLtr(rtlHelper.x(hitbox.left), hitbox.width);\n top += hitbox.height + padding;\n }\n }\n }\n\n isHorizontal() {\n return this.options.position === 'top' || this.options.position === 'bottom';\n }\n\n draw() {\n if (this.options.display) {\n const ctx = this.ctx;\n clipArea(ctx, this);\n\n this._draw();\n\n unclipArea(ctx);\n }\n }\n\n /**\n\t * @private\n\t */\n _draw() {\n const {options: opts, columnSizes, lineWidths, ctx} = this;\n const {align, labels: labelOpts} = opts;\n const defaultColor = defaults.color;\n const rtlHelper = getRtlAdapter(opts.rtl, this.left, this.width);\n const labelFont = toFont(labelOpts.font);\n const {padding} = labelOpts;\n const fontSize = labelFont.size;\n const halfFontSize = fontSize / 2;\n let cursor;\n\n this.drawTitle();\n\n // Canvas setup\n ctx.textAlign = rtlHelper.textAlign('left');\n ctx.textBaseline = 'middle';\n ctx.lineWidth = 0.5;\n ctx.font = labelFont.string;\n\n const {boxWidth, boxHeight, itemHeight} = getBoxSize(labelOpts, fontSize);\n\n // current position\n const drawLegendBox = function(x, y, legendItem) {\n if (isNaN(boxWidth) || boxWidth <= 0 || isNaN(boxHeight) || boxHeight < 0) {\n return;\n }\n\n // Set the ctx for the box\n ctx.save();\n\n const lineWidth = valueOrDefault(legendItem.lineWidth, 1);\n ctx.fillStyle = valueOrDefault(legendItem.fillStyle, defaultColor);\n ctx.lineCap = valueOrDefault(legendItem.lineCap, 'butt');\n ctx.lineDashOffset = valueOrDefault(legendItem.lineDashOffset, 0);\n ctx.lineJoin = valueOrDefault(legendItem.lineJoin, 'miter');\n ctx.lineWidth = lineWidth;\n ctx.strokeStyle = valueOrDefault(legendItem.strokeStyle, defaultColor);\n\n ctx.setLineDash(valueOrDefault(legendItem.lineDash, []));\n\n if (labelOpts.usePointStyle) {\n // Recalculate x and y for drawPoint() because its expecting\n // x and y to be center of figure (instead of top left)\n const drawOptions = {\n radius: boxHeight * Math.SQRT2 / 2,\n pointStyle: legendItem.pointStyle,\n rotation: legendItem.rotation,\n borderWidth: lineWidth\n };\n const centerX = rtlHelper.xPlus(x, boxWidth / 2);\n const centerY = y + halfFontSize;\n\n // Draw pointStyle as legend symbol\n drawPointLegend(ctx, drawOptions, centerX, centerY, labelOpts.pointStyleWidth && boxWidth);\n } else {\n // Draw box as legend symbol\n // Adjust position when boxHeight < fontSize (want it centered)\n const yBoxTop = y + Math.max((fontSize - boxHeight) / 2, 0);\n const xBoxLeft = rtlHelper.leftForLtr(x, boxWidth);\n const borderRadius = toTRBLCorners(legendItem.borderRadius);\n\n ctx.beginPath();\n\n if (Object.values(borderRadius).some(v => v !== 0)) {\n addRoundedRectPath(ctx, {\n x: xBoxLeft,\n y: yBoxTop,\n w: boxWidth,\n h: boxHeight,\n radius: borderRadius,\n });\n } else {\n ctx.rect(xBoxLeft, yBoxTop, boxWidth, boxHeight);\n }\n\n ctx.fill();\n if (lineWidth !== 0) {\n ctx.stroke();\n }\n }\n\n ctx.restore();\n };\n\n const fillText = function(x, y, legendItem) {\n renderText(ctx, legendItem.text, x, y + (itemHeight / 2), labelFont, {\n strikethrough: legendItem.hidden,\n textAlign: rtlHelper.textAlign(legendItem.textAlign)\n });\n };\n\n // Horizontal\n const isHorizontal = this.isHorizontal();\n const titleHeight = this._computeTitleHeight();\n if (isHorizontal) {\n cursor = {\n x: _alignStartEnd(align, this.left + padding, this.right - lineWidths[0]),\n y: this.top + padding + titleHeight,\n line: 0\n };\n } else {\n cursor = {\n x: this.left + padding,\n y: _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - columnSizes[0].height),\n line: 0\n };\n }\n\n overrideTextDirection(this.ctx, opts.textDirection);\n\n const lineHeight = itemHeight + padding;\n this.legendItems.forEach((legendItem, i) => {\n ctx.strokeStyle = legendItem.fontColor; // for strikethrough effect\n ctx.fillStyle = legendItem.fontColor; // render in correct colour\n\n const textWidth = ctx.measureText(legendItem.text).width;\n const textAlign = rtlHelper.textAlign(legendItem.textAlign || (legendItem.textAlign = labelOpts.textAlign));\n const width = boxWidth + halfFontSize + textWidth;\n let x = cursor.x;\n let y = cursor.y;\n\n rtlHelper.setWidth(this.width);\n\n if (isHorizontal) {\n if (i > 0 && x + width + padding > this.right) {\n y = cursor.y += lineHeight;\n cursor.line++;\n x = cursor.x = _alignStartEnd(align, this.left + padding, this.right - lineWidths[cursor.line]);\n }\n } else if (i > 0 && y + lineHeight > this.bottom) {\n x = cursor.x = x + columnSizes[cursor.line].width + padding;\n cursor.line++;\n y = cursor.y = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - columnSizes[cursor.line].height);\n }\n\n const realX = rtlHelper.x(x);\n\n drawLegendBox(realX, y, legendItem);\n\n x = _textX(textAlign, x + boxWidth + halfFontSize, isHorizontal ? x + width : this.right, opts.rtl);\n\n // Fill the actual label\n fillText(rtlHelper.x(x), y, legendItem);\n\n if (isHorizontal) {\n cursor.x += width + padding;\n } else if (typeof legendItem.text !== 'string') {\n const fontLineHeight = labelFont.lineHeight;\n cursor.y += calculateLegendItemHeight(legendItem, fontLineHeight) + padding;\n } else {\n cursor.y += lineHeight;\n }\n });\n\n restoreTextDirection(this.ctx, opts.textDirection);\n }\n\n /**\n\t * @protected\n\t */\n drawTitle() {\n const opts = this.options;\n const titleOpts = opts.title;\n const titleFont = toFont(titleOpts.font);\n const titlePadding = toPadding(titleOpts.padding);\n\n if (!titleOpts.display) {\n return;\n }\n\n const rtlHelper = getRtlAdapter(opts.rtl, this.left, this.width);\n const ctx = this.ctx;\n const position = titleOpts.position;\n const halfFontSize = titleFont.size / 2;\n const topPaddingPlusHalfFontSize = titlePadding.top + halfFontSize;\n let y;\n\n // These defaults are used when the legend is vertical.\n // When horizontal, they are computed below.\n let left = this.left;\n let maxWidth = this.width;\n\n if (this.isHorizontal()) {\n // Move left / right so that the title is above the legend lines\n maxWidth = Math.max(...this.lineWidths);\n y = this.top + topPaddingPlusHalfFontSize;\n left = _alignStartEnd(opts.align, left, this.right - maxWidth);\n } else {\n // Move down so that the title is above the legend stack in every alignment\n const maxHeight = this.columnSizes.reduce((acc, size) => Math.max(acc, size.height), 0);\n y = topPaddingPlusHalfFontSize + _alignStartEnd(opts.align, this.top, this.bottom - maxHeight - opts.labels.padding - this._computeTitleHeight());\n }\n\n // Now that we know the left edge of the inner legend box, compute the correct\n // X coordinate from the title alignment\n const x = _alignStartEnd(position, left, left + maxWidth);\n\n // Canvas setup\n ctx.textAlign = rtlHelper.textAlign(_toLeftRightCenter(position));\n ctx.textBaseline = 'middle';\n ctx.strokeStyle = titleOpts.color;\n ctx.fillStyle = titleOpts.color;\n ctx.font = titleFont.string;\n\n renderText(ctx, titleOpts.text, x, y, titleFont);\n }\n\n /**\n\t * @private\n\t */\n _computeTitleHeight() {\n const titleOpts = this.options.title;\n const titleFont = toFont(titleOpts.font);\n const titlePadding = toPadding(titleOpts.padding);\n return titleOpts.display ? titleFont.lineHeight + titlePadding.height : 0;\n }\n\n /**\n\t * @private\n\t */\n _getLegendItemAt(x, y) {\n let i, hitBox, lh;\n\n if (_isBetween(x, this.left, this.right)\n && _isBetween(y, this.top, this.bottom)) {\n // See if we are touching one of the dataset boxes\n lh = this.legendHitBoxes;\n for (i = 0; i < lh.length; ++i) {\n hitBox = lh[i];\n\n if (_isBetween(x, hitBox.left, hitBox.left + hitBox.width)\n && _isBetween(y, hitBox.top, hitBox.top + hitBox.height)) {\n // Touching an element\n return this.legendItems[i];\n }\n }\n }\n\n return null;\n }\n\n /**\n\t * Handle an event\n\t * @param {ChartEvent} e - The event to handle\n\t */\n handleEvent(e) {\n const opts = this.options;\n if (!isListened(e.type, opts)) {\n return;\n }\n\n // Chart event already has relative position in it\n const hoveredItem = this._getLegendItemAt(e.x, e.y);\n\n if (e.type === 'mousemove' || e.type === 'mouseout') {\n const previous = this._hoveredItem;\n const sameItem = itemsEqual(previous, hoveredItem);\n if (previous && !sameItem) {\n call(opts.onLeave, [e, previous, this], this);\n }\n\n this._hoveredItem = hoveredItem;\n\n if (hoveredItem && !sameItem) {\n call(opts.onHover, [e, hoveredItem, this], this);\n }\n } else if (hoveredItem) {\n call(opts.onClick, [e, hoveredItem, this], this);\n }\n }\n}\n\nfunction calculateItemSize(boxWidth, labelFont, ctx, legendItem, _itemHeight) {\n const itemWidth = calculateItemWidth(legendItem, boxWidth, labelFont, ctx);\n const itemHeight = calculateItemHeight(_itemHeight, legendItem, labelFont.lineHeight);\n return {itemWidth, itemHeight};\n}\n\nfunction calculateItemWidth(legendItem, boxWidth, labelFont, ctx) {\n let legendItemText = legendItem.text;\n if (legendItemText && typeof legendItemText !== 'string') {\n legendItemText = legendItemText.reduce((a, b) => a.length > b.length ? a : b);\n }\n return boxWidth + (labelFont.size / 2) + ctx.measureText(legendItemText).width;\n}\n\nfunction calculateItemHeight(_itemHeight, legendItem, fontLineHeight) {\n let itemHeight = _itemHeight;\n if (typeof legendItem.text !== 'string') {\n itemHeight = calculateLegendItemHeight(legendItem, fontLineHeight);\n }\n return itemHeight;\n}\n\nfunction calculateLegendItemHeight(legendItem, fontLineHeight) {\n const labelHeight = legendItem.text ? legendItem.text.length : 0;\n return fontLineHeight * labelHeight;\n}\n\nfunction isListened(type, opts) {\n if ((type === 'mousemove' || type === 'mouseout') && (opts.onHover || opts.onLeave)) {\n return true;\n }\n if (opts.onClick && (type === 'click' || type === 'mouseup')) {\n return true;\n }\n return false;\n}\n\nexport default {\n id: 'legend',\n\n /**\n\t * For tests\n\t * @private\n\t */\n _element: Legend,\n\n start(chart, _args, options) {\n const legend = chart.legend = new Legend({ctx: chart.ctx, options, chart});\n layouts.configure(chart, legend, options);\n layouts.addBox(chart, legend);\n },\n\n stop(chart) {\n layouts.removeBox(chart, chart.legend);\n delete chart.legend;\n },\n\n // During the beforeUpdate step, the layout configuration needs to run\n // This ensures that if the legend position changes (via an option update)\n // the layout system respects the change. See https://github.com/chartjs/Chart.js/issues/7527\n beforeUpdate(chart, _args, options) {\n const legend = chart.legend;\n layouts.configure(chart, legend, options);\n legend.options = options;\n },\n\n // The labels need to be built after datasets are updated to ensure that colors\n // and other styling are correct. See https://github.com/chartjs/Chart.js/issues/6968\n afterUpdate(chart) {\n const legend = chart.legend;\n legend.buildLabels();\n legend.adjustHitBoxes();\n },\n\n\n afterEvent(chart, args) {\n if (!args.replay) {\n chart.legend.handleEvent(args.event);\n }\n },\n\n defaults: {\n display: true,\n position: 'top',\n align: 'center',\n fullSize: true,\n reverse: false,\n weight: 1000,\n\n // a callback that will handle\n onClick(e, legendItem, legend) {\n const index = legendItem.datasetIndex;\n const ci = legend.chart;\n if (ci.isDatasetVisible(index)) {\n ci.hide(index);\n legendItem.hidden = true;\n } else {\n ci.show(index);\n legendItem.hidden = false;\n }\n },\n\n onHover: null,\n onLeave: null,\n\n labels: {\n color: (ctx) => ctx.chart.options.color,\n boxWidth: 40,\n padding: 10,\n // Generates labels shown in the legend\n // Valid properties to return:\n // text : text to display\n // fillStyle : fill of coloured box\n // strokeStyle: stroke of coloured box\n // hidden : if this legend item refers to a hidden item\n // lineCap : cap style for line\n // lineDash\n // lineDashOffset :\n // lineJoin :\n // lineWidth :\n generateLabels(chart) {\n const datasets = chart.data.datasets;\n const {labels: {usePointStyle, pointStyle, textAlign, color, useBorderRadius, borderRadius}} = chart.legend.options;\n\n return chart._getSortedDatasetMetas().map((meta) => {\n const style = meta.controller.getStyle(usePointStyle ? 0 : undefined);\n const borderWidth = toPadding(style.borderWidth);\n\n return {\n text: datasets[meta.index].label,\n fillStyle: style.backgroundColor,\n fontColor: color,\n hidden: !meta.visible,\n lineCap: style.borderCapStyle,\n lineDash: style.borderDash,\n lineDashOffset: style.borderDashOffset,\n lineJoin: style.borderJoinStyle,\n lineWidth: (borderWidth.width + borderWidth.height) / 4,\n strokeStyle: style.borderColor,\n pointStyle: pointStyle || style.pointStyle,\n rotation: style.rotation,\n textAlign: textAlign || style.textAlign,\n borderRadius: useBorderRadius && (borderRadius || style.borderRadius),\n\n // Below is extra data used for toggling the datasets\n datasetIndex: meta.index\n };\n }, this);\n }\n },\n\n title: {\n color: (ctx) => ctx.chart.options.color,\n display: false,\n position: 'center',\n text: '',\n }\n },\n\n descriptors: {\n _scriptable: (name) => !name.startsWith('on'),\n labels: {\n _scriptable: (name) => !['generateLabels', 'filter', 'sort'].includes(name),\n }\n },\n};\n","import Element from '../core/core.element.js';\nimport layouts from '../core/core.layouts.js';\nimport {PI, isArray, toPadding, toFont} from '../helpers/index.js';\nimport {_toLeftRightCenter, _alignStartEnd} from '../helpers/helpers.extras.js';\nimport {renderText} from '../helpers/helpers.canvas.js';\n\nexport class Title extends Element {\n /**\n\t * @param {{ ctx: any; options: any; chart: any; }} config\n\t */\n constructor(config) {\n super();\n\n this.chart = config.chart;\n this.options = config.options;\n this.ctx = config.ctx;\n this._padding = undefined;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.width = undefined;\n this.height = undefined;\n this.position = undefined;\n this.weight = undefined;\n this.fullSize = undefined;\n }\n\n update(maxWidth, maxHeight) {\n const opts = this.options;\n\n this.left = 0;\n this.top = 0;\n\n if (!opts.display) {\n this.width = this.height = this.right = this.bottom = 0;\n return;\n }\n\n this.width = this.right = maxWidth;\n this.height = this.bottom = maxHeight;\n\n const lineCount = isArray(opts.text) ? opts.text.length : 1;\n this._padding = toPadding(opts.padding);\n const textSize = lineCount * toFont(opts.font).lineHeight + this._padding.height;\n\n if (this.isHorizontal()) {\n this.height = textSize;\n } else {\n this.width = textSize;\n }\n }\n\n isHorizontal() {\n const pos = this.options.position;\n return pos === 'top' || pos === 'bottom';\n }\n\n _drawArgs(offset) {\n const {top, left, bottom, right, options} = this;\n const align = options.align;\n let rotation = 0;\n let maxWidth, titleX, titleY;\n\n if (this.isHorizontal()) {\n titleX = _alignStartEnd(align, left, right);\n titleY = top + offset;\n maxWidth = right - left;\n } else {\n if (options.position === 'left') {\n titleX = left + offset;\n titleY = _alignStartEnd(align, bottom, top);\n rotation = PI * -0.5;\n } else {\n titleX = right - offset;\n titleY = _alignStartEnd(align, top, bottom);\n rotation = PI * 0.5;\n }\n maxWidth = bottom - top;\n }\n return {titleX, titleY, maxWidth, rotation};\n }\n\n draw() {\n const ctx = this.ctx;\n const opts = this.options;\n\n if (!opts.display) {\n return;\n }\n\n const fontOpts = toFont(opts.font);\n const lineHeight = fontOpts.lineHeight;\n const offset = lineHeight / 2 + this._padding.top;\n const {titleX, titleY, maxWidth, rotation} = this._drawArgs(offset);\n\n renderText(ctx, opts.text, 0, 0, fontOpts, {\n color: opts.color,\n maxWidth,\n rotation,\n textAlign: _toLeftRightCenter(opts.align),\n textBaseline: 'middle',\n translation: [titleX, titleY],\n });\n }\n}\n\nfunction createTitle(chart, titleOpts) {\n const title = new Title({\n ctx: chart.ctx,\n options: titleOpts,\n chart\n });\n\n layouts.configure(chart, title, titleOpts);\n layouts.addBox(chart, title);\n chart.titleBlock = title;\n}\n\nexport default {\n id: 'title',\n\n /**\n\t * For tests\n\t * @private\n\t */\n _element: Title,\n\n start(chart, _args, options) {\n createTitle(chart, options);\n },\n\n stop(chart) {\n const titleBlock = chart.titleBlock;\n layouts.removeBox(chart, titleBlock);\n delete chart.titleBlock;\n },\n\n beforeUpdate(chart, _args, options) {\n const title = chart.titleBlock;\n layouts.configure(chart, title, options);\n title.options = options;\n },\n\n defaults: {\n align: 'center',\n display: false,\n font: {\n weight: 'bold',\n },\n fullSize: true,\n padding: 10,\n position: 'top',\n text: '',\n weight: 2000 // by default greater than legend (1000) to be above\n },\n\n defaultRoutes: {\n color: 'color'\n },\n\n descriptors: {\n _scriptable: true,\n _indexable: false,\n },\n};\n","import {Title} from './plugin.title.js';\nimport layouts from '../core/core.layouts.js';\n\nconst map = new WeakMap();\n\nexport default {\n id: 'subtitle',\n\n start(chart, _args, options) {\n const title = new Title({\n ctx: chart.ctx,\n options,\n chart\n });\n\n layouts.configure(chart, title, options);\n layouts.addBox(chart, title);\n map.set(chart, title);\n },\n\n stop(chart) {\n layouts.removeBox(chart, map.get(chart));\n map.delete(chart);\n },\n\n beforeUpdate(chart, _args, options) {\n const title = map.get(chart);\n layouts.configure(chart, title, options);\n title.options = options;\n },\n\n defaults: {\n align: 'center',\n display: false,\n font: {\n weight: 'normal',\n },\n fullSize: true,\n padding: 0,\n position: 'top',\n text: '',\n weight: 1500 // by default greater than legend (1000) and smaller than title (2000)\n },\n\n defaultRoutes: {\n color: 'color'\n },\n\n descriptors: {\n _scriptable: true,\n _indexable: false,\n },\n};\n","import Animations from '../core/core.animations.js';\nimport Element from '../core/core.element.js';\nimport {addRoundedRectPath} from '../helpers/helpers.canvas.js';\nimport {each, noop, isNullOrUndef, isArray, _elementsEqual, isObject} from '../helpers/helpers.core.js';\nimport {toFont, toPadding, toTRBLCorners} from '../helpers/helpers.options.js';\nimport {getRtlAdapter, overrideTextDirection, restoreTextDirection} from '../helpers/helpers.rtl.js';\nimport {distanceBetweenPoints, _limitValue} from '../helpers/helpers.math.js';\nimport {createContext, drawPoint} from '../helpers/index.js';\n\n/**\n * @typedef { import('../platform/platform.base.js').Chart } Chart\n * @typedef { import('../types/index.js').ChartEvent } ChartEvent\n * @typedef { import('../types/index.js').ActiveElement } ActiveElement\n * @typedef { import('../core/core.interaction.js').InteractionItem } InteractionItem\n */\n\nconst positioners = {\n /**\n\t * Average mode places the tooltip at the average position of the elements shown\n\t */\n average(items) {\n if (!items.length) {\n return false;\n }\n\n let i, len;\n let xSet = new Set();\n let y = 0;\n let count = 0;\n\n for (i = 0, len = items.length; i < len; ++i) {\n const el = items[i].element;\n if (el && el.hasValue()) {\n const pos = el.tooltipPosition();\n xSet.add(pos.x);\n y += pos.y;\n ++count;\n }\n }\n\n // No visible items where found, return false so we don't have to divide by 0 which reduces in NaN\n if (count === 0 || xSet.size === 0) {\n return false;\n }\n\n const xAverage = [...xSet].reduce((a, b) => a + b) / xSet.size;\n\n return {\n x: xAverage,\n y: y / count\n };\n },\n\n /**\n\t * Gets the tooltip position nearest of the item nearest to the event position\n\t */\n nearest(items, eventPosition) {\n if (!items.length) {\n return false;\n }\n\n let x = eventPosition.x;\n let y = eventPosition.y;\n let minDistance = Number.POSITIVE_INFINITY;\n let i, len, nearestElement;\n\n for (i = 0, len = items.length; i < len; ++i) {\n const el = items[i].element;\n if (el && el.hasValue()) {\n const center = el.getCenterPoint();\n const d = distanceBetweenPoints(eventPosition, center);\n\n if (d < minDistance) {\n minDistance = d;\n nearestElement = el;\n }\n }\n }\n\n if (nearestElement) {\n const tp = nearestElement.tooltipPosition();\n x = tp.x;\n y = tp.y;\n }\n\n return {\n x,\n y\n };\n }\n};\n\n// Helper to push or concat based on if the 2nd parameter is an array or not\nfunction pushOrConcat(base, toPush) {\n if (toPush) {\n if (isArray(toPush)) {\n // base = base.concat(toPush);\n Array.prototype.push.apply(base, toPush);\n } else {\n base.push(toPush);\n }\n }\n\n return base;\n}\n\n/**\n * Returns array of strings split by newline\n * @param {*} str - The value to split by newline.\n * @returns {string|string[]} value if newline present - Returned from String split() method\n * @function\n */\nfunction splitNewlines(str) {\n if ((typeof str === 'string' || str instanceof String) && str.indexOf('\\n') > -1) {\n return str.split('\\n');\n }\n return str;\n}\n\n\n/**\n * Private helper to create a tooltip item model\n * @param {Chart} chart\n * @param {ActiveElement} item - {element, index, datasetIndex} to create the tooltip item for\n * @return new tooltip item\n */\nfunction createTooltipItem(chart, item) {\n const {element, datasetIndex, index} = item;\n const controller = chart.getDatasetMeta(datasetIndex).controller;\n const {label, value} = controller.getLabelAndValue(index);\n\n return {\n chart,\n label,\n parsed: controller.getParsed(index),\n raw: chart.data.datasets[datasetIndex].data[index],\n formattedValue: value,\n dataset: controller.getDataset(),\n dataIndex: index,\n datasetIndex,\n element\n };\n}\n\n/**\n * Get the size of the tooltip\n */\nfunction getTooltipSize(tooltip, options) {\n const ctx = tooltip.chart.ctx;\n const {body, footer, title} = tooltip;\n const {boxWidth, boxHeight} = options;\n const bodyFont = toFont(options.bodyFont);\n const titleFont = toFont(options.titleFont);\n const footerFont = toFont(options.footerFont);\n const titleLineCount = title.length;\n const footerLineCount = footer.length;\n const bodyLineItemCount = body.length;\n\n const padding = toPadding(options.padding);\n let height = padding.height;\n let width = 0;\n\n // Count of all lines in the body\n let combinedBodyLength = body.reduce((count, bodyItem) => count + bodyItem.before.length + bodyItem.lines.length + bodyItem.after.length, 0);\n combinedBodyLength += tooltip.beforeBody.length + tooltip.afterBody.length;\n\n if (titleLineCount) {\n height += titleLineCount * titleFont.lineHeight\n\t\t\t+ (titleLineCount - 1) * options.titleSpacing\n\t\t\t+ options.titleMarginBottom;\n }\n if (combinedBodyLength) {\n // Body lines may include some extra height depending on boxHeight\n const bodyLineHeight = options.displayColors ? Math.max(boxHeight, bodyFont.lineHeight) : bodyFont.lineHeight;\n height += bodyLineItemCount * bodyLineHeight\n\t\t\t+ (combinedBodyLength - bodyLineItemCount) * bodyFont.lineHeight\n\t\t\t+ (combinedBodyLength - 1) * options.bodySpacing;\n }\n if (footerLineCount) {\n height += options.footerMarginTop\n\t\t\t+ footerLineCount * footerFont.lineHeight\n\t\t\t+ (footerLineCount - 1) * options.footerSpacing;\n }\n\n // Title width\n let widthPadding = 0;\n const maxLineWidth = function(line) {\n width = Math.max(width, ctx.measureText(line).width + widthPadding);\n };\n\n ctx.save();\n\n ctx.font = titleFont.string;\n each(tooltip.title, maxLineWidth);\n\n // Body width\n ctx.font = bodyFont.string;\n each(tooltip.beforeBody.concat(tooltip.afterBody), maxLineWidth);\n\n // Body lines may include some extra width due to the color box\n widthPadding = options.displayColors ? (boxWidth + 2 + options.boxPadding) : 0;\n each(body, (bodyItem) => {\n each(bodyItem.before, maxLineWidth);\n each(bodyItem.lines, maxLineWidth);\n each(bodyItem.after, maxLineWidth);\n });\n\n // Reset back to 0\n widthPadding = 0;\n\n // Footer width\n ctx.font = footerFont.string;\n each(tooltip.footer, maxLineWidth);\n\n ctx.restore();\n\n // Add padding\n width += padding.width;\n\n return {width, height};\n}\n\nfunction determineYAlign(chart, size) {\n const {y, height} = size;\n\n if (y < height / 2) {\n return 'top';\n } else if (y > (chart.height - height / 2)) {\n return 'bottom';\n }\n return 'center';\n}\n\nfunction doesNotFitWithAlign(xAlign, chart, options, size) {\n const {x, width} = size;\n const caret = options.caretSize + options.caretPadding;\n if (xAlign === 'left' && x + width + caret > chart.width) {\n return true;\n }\n\n if (xAlign === 'right' && x - width - caret < 0) {\n return true;\n }\n}\n\nfunction determineXAlign(chart, options, size, yAlign) {\n const {x, width} = size;\n const {width: chartWidth, chartArea: {left, right}} = chart;\n let xAlign = 'center';\n\n if (yAlign === 'center') {\n xAlign = x <= (left + right) / 2 ? 'left' : 'right';\n } else if (x <= width / 2) {\n xAlign = 'left';\n } else if (x >= chartWidth - width / 2) {\n xAlign = 'right';\n }\n\n if (doesNotFitWithAlign(xAlign, chart, options, size)) {\n xAlign = 'center';\n }\n\n return xAlign;\n}\n\n/**\n * Helper to get the alignment of a tooltip given the size\n */\nfunction determineAlignment(chart, options, size) {\n const yAlign = size.yAlign || options.yAlign || determineYAlign(chart, size);\n\n return {\n xAlign: size.xAlign || options.xAlign || determineXAlign(chart, options, size, yAlign),\n yAlign\n };\n}\n\nfunction alignX(size, xAlign) {\n let {x, width} = size;\n if (xAlign === 'right') {\n x -= width;\n } else if (xAlign === 'center') {\n x -= (width / 2);\n }\n return x;\n}\n\nfunction alignY(size, yAlign, paddingAndSize) {\n // eslint-disable-next-line prefer-const\n let {y, height} = size;\n if (yAlign === 'top') {\n y += paddingAndSize;\n } else if (yAlign === 'bottom') {\n y -= height + paddingAndSize;\n } else {\n y -= (height / 2);\n }\n return y;\n}\n\n/**\n * Helper to get the location a tooltip needs to be placed at given the initial position (via the vm) and the size and alignment\n */\nfunction getBackgroundPoint(options, size, alignment, chart) {\n const {caretSize, caretPadding, cornerRadius} = options;\n const {xAlign, yAlign} = alignment;\n const paddingAndSize = caretSize + caretPadding;\n const {topLeft, topRight, bottomLeft, bottomRight} = toTRBLCorners(cornerRadius);\n\n let x = alignX(size, xAlign);\n const y = alignY(size, yAlign, paddingAndSize);\n\n if (yAlign === 'center') {\n if (xAlign === 'left') {\n x += paddingAndSize;\n } else if (xAlign === 'right') {\n x -= paddingAndSize;\n }\n } else if (xAlign === 'left') {\n x -= Math.max(topLeft, bottomLeft) + caretSize;\n } else if (xAlign === 'right') {\n x += Math.max(topRight, bottomRight) + caretSize;\n }\n\n return {\n x: _limitValue(x, 0, chart.width - size.width),\n y: _limitValue(y, 0, chart.height - size.height)\n };\n}\n\nfunction getAlignedX(tooltip, align, options) {\n const padding = toPadding(options.padding);\n\n return align === 'center'\n ? tooltip.x + tooltip.width / 2\n : align === 'right'\n ? tooltip.x + tooltip.width - padding.right\n : tooltip.x + padding.left;\n}\n\n/**\n * Helper to build before and after body lines\n */\nfunction getBeforeAfterBodyLines(callback) {\n return pushOrConcat([], splitNewlines(callback));\n}\n\nfunction createTooltipContext(parent, tooltip, tooltipItems) {\n return createContext(parent, {\n tooltip,\n tooltipItems,\n type: 'tooltip'\n });\n}\n\nfunction overrideCallbacks(callbacks, context) {\n const override = context && context.dataset && context.dataset.tooltip && context.dataset.tooltip.callbacks;\n return override ? callbacks.override(override) : callbacks;\n}\n\nconst defaultCallbacks = {\n // Args are: (tooltipItems, data)\n beforeTitle: noop,\n title(tooltipItems) {\n if (tooltipItems.length > 0) {\n const item = tooltipItems[0];\n const labels = item.chart.data.labels;\n const labelCount = labels ? labels.length : 0;\n\n if (this && this.options && this.options.mode === 'dataset') {\n return item.dataset.label || '';\n } else if (item.label) {\n return item.label;\n } else if (labelCount > 0 && item.dataIndex < labelCount) {\n return labels[item.dataIndex];\n }\n }\n\n return '';\n },\n afterTitle: noop,\n\n // Args are: (tooltipItems, data)\n beforeBody: noop,\n\n // Args are: (tooltipItem, data)\n beforeLabel: noop,\n label(tooltipItem) {\n if (this && this.options && this.options.mode === 'dataset') {\n return tooltipItem.label + ': ' + tooltipItem.formattedValue || tooltipItem.formattedValue;\n }\n\n let label = tooltipItem.dataset.label || '';\n\n if (label) {\n label += ': ';\n }\n const value = tooltipItem.formattedValue;\n if (!isNullOrUndef(value)) {\n label += value;\n }\n return label;\n },\n labelColor(tooltipItem) {\n const meta = tooltipItem.chart.getDatasetMeta(tooltipItem.datasetIndex);\n const options = meta.controller.getStyle(tooltipItem.dataIndex);\n return {\n borderColor: options.borderColor,\n backgroundColor: options.backgroundColor,\n borderWidth: options.borderWidth,\n borderDash: options.borderDash,\n borderDashOffset: options.borderDashOffset,\n borderRadius: 0,\n };\n },\n labelTextColor() {\n return this.options.bodyColor;\n },\n labelPointStyle(tooltipItem) {\n const meta = tooltipItem.chart.getDatasetMeta(tooltipItem.datasetIndex);\n const options = meta.controller.getStyle(tooltipItem.dataIndex);\n return {\n pointStyle: options.pointStyle,\n rotation: options.rotation,\n };\n },\n afterLabel: noop,\n\n // Args are: (tooltipItems, data)\n afterBody: noop,\n\n // Args are: (tooltipItems, data)\n beforeFooter: noop,\n footer: noop,\n afterFooter: noop\n};\n\n/**\n * Invoke callback from object with context and arguments.\n * If callback returns `undefined`, then will be invoked default callback.\n * @param {Record} callbacks\n * @param {keyof typeof defaultCallbacks} name\n * @param {*} ctx\n * @param {*} arg\n * @returns {any}\n */\nfunction invokeCallbackWithFallback(callbacks, name, ctx, arg) {\n const result = callbacks[name].call(ctx, arg);\n\n if (typeof result === 'undefined') {\n return defaultCallbacks[name].call(ctx, arg);\n }\n\n return result;\n}\n\nexport class Tooltip extends Element {\n\n /**\n * @namespace Chart.Tooltip.positioners\n */\n static positioners = positioners;\n\n constructor(config) {\n super();\n\n this.opacity = 0;\n this._active = [];\n this._eventPosition = undefined;\n this._size = undefined;\n this._cachedAnimations = undefined;\n this._tooltipItems = [];\n this.$animations = undefined;\n this.$context = undefined;\n this.chart = config.chart;\n this.options = config.options;\n this.dataPoints = undefined;\n this.title = undefined;\n this.beforeBody = undefined;\n this.body = undefined;\n this.afterBody = undefined;\n this.footer = undefined;\n this.xAlign = undefined;\n this.yAlign = undefined;\n this.x = undefined;\n this.y = undefined;\n this.height = undefined;\n this.width = undefined;\n this.caretX = undefined;\n this.caretY = undefined;\n // TODO: V4, make this private, rename to `_labelStyles`, and combine with `labelPointStyles`\n // and `labelTextColors` to create a single variable\n this.labelColors = undefined;\n this.labelPointStyles = undefined;\n this.labelTextColors = undefined;\n }\n\n initialize(options) {\n this.options = options;\n this._cachedAnimations = undefined;\n this.$context = undefined;\n }\n\n /**\n\t * @private\n\t */\n _resolveAnimations() {\n const cached = this._cachedAnimations;\n\n if (cached) {\n return cached;\n }\n\n const chart = this.chart;\n const options = this.options.setContext(this.getContext());\n const opts = options.enabled && chart.options.animation && options.animations;\n const animations = new Animations(this.chart, opts);\n if (opts._cacheable) {\n this._cachedAnimations = Object.freeze(animations);\n }\n\n return animations;\n }\n\n /**\n\t * @protected\n\t */\n getContext() {\n return this.$context ||\n\t\t\t(this.$context = createTooltipContext(this.chart.getContext(), this, this._tooltipItems));\n }\n\n getTitle(context, options) {\n const {callbacks} = options;\n\n const beforeTitle = invokeCallbackWithFallback(callbacks, 'beforeTitle', this, context);\n const title = invokeCallbackWithFallback(callbacks, 'title', this, context);\n const afterTitle = invokeCallbackWithFallback(callbacks, 'afterTitle', this, context);\n\n let lines = [];\n lines = pushOrConcat(lines, splitNewlines(beforeTitle));\n lines = pushOrConcat(lines, splitNewlines(title));\n lines = pushOrConcat(lines, splitNewlines(afterTitle));\n\n return lines;\n }\n\n getBeforeBody(tooltipItems, options) {\n return getBeforeAfterBodyLines(\n invokeCallbackWithFallback(options.callbacks, 'beforeBody', this, tooltipItems)\n );\n }\n\n getBody(tooltipItems, options) {\n const {callbacks} = options;\n const bodyItems = [];\n\n each(tooltipItems, (context) => {\n const bodyItem = {\n before: [],\n lines: [],\n after: []\n };\n const scoped = overrideCallbacks(callbacks, context);\n pushOrConcat(bodyItem.before, splitNewlines(invokeCallbackWithFallback(scoped, 'beforeLabel', this, context)));\n pushOrConcat(bodyItem.lines, invokeCallbackWithFallback(scoped, 'label', this, context));\n pushOrConcat(bodyItem.after, splitNewlines(invokeCallbackWithFallback(scoped, 'afterLabel', this, context)));\n\n bodyItems.push(bodyItem);\n });\n\n return bodyItems;\n }\n\n getAfterBody(tooltipItems, options) {\n return getBeforeAfterBodyLines(\n invokeCallbackWithFallback(options.callbacks, 'afterBody', this, tooltipItems)\n );\n }\n\n // Get the footer and beforeFooter and afterFooter lines\n getFooter(tooltipItems, options) {\n const {callbacks} = options;\n\n const beforeFooter = invokeCallbackWithFallback(callbacks, 'beforeFooter', this, tooltipItems);\n const footer = invokeCallbackWithFallback(callbacks, 'footer', this, tooltipItems);\n const afterFooter = invokeCallbackWithFallback(callbacks, 'afterFooter', this, tooltipItems);\n\n let lines = [];\n lines = pushOrConcat(lines, splitNewlines(beforeFooter));\n lines = pushOrConcat(lines, splitNewlines(footer));\n lines = pushOrConcat(lines, splitNewlines(afterFooter));\n\n return lines;\n }\n\n /**\n\t * @private\n\t */\n _createItems(options) {\n const active = this._active;\n const data = this.chart.data;\n const labelColors = [];\n const labelPointStyles = [];\n const labelTextColors = [];\n let tooltipItems = [];\n let i, len;\n\n for (i = 0, len = active.length; i < len; ++i) {\n tooltipItems.push(createTooltipItem(this.chart, active[i]));\n }\n\n // If the user provided a filter function, use it to modify the tooltip items\n if (options.filter) {\n tooltipItems = tooltipItems.filter((element, index, array) => options.filter(element, index, array, data));\n }\n\n // If the user provided a sorting function, use it to modify the tooltip items\n if (options.itemSort) {\n tooltipItems = tooltipItems.sort((a, b) => options.itemSort(a, b, data));\n }\n\n // Determine colors for boxes\n each(tooltipItems, (context) => {\n const scoped = overrideCallbacks(options.callbacks, context);\n labelColors.push(invokeCallbackWithFallback(scoped, 'labelColor', this, context));\n labelPointStyles.push(invokeCallbackWithFallback(scoped, 'labelPointStyle', this, context));\n labelTextColors.push(invokeCallbackWithFallback(scoped, 'labelTextColor', this, context));\n });\n\n this.labelColors = labelColors;\n this.labelPointStyles = labelPointStyles;\n this.labelTextColors = labelTextColors;\n this.dataPoints = tooltipItems;\n return tooltipItems;\n }\n\n update(changed, replay) {\n const options = this.options.setContext(this.getContext());\n const active = this._active;\n let properties;\n let tooltipItems = [];\n\n if (!active.length) {\n if (this.opacity !== 0) {\n properties = {\n opacity: 0\n };\n }\n } else {\n const position = positioners[options.position].call(this, active, this._eventPosition);\n tooltipItems = this._createItems(options);\n\n this.title = this.getTitle(tooltipItems, options);\n this.beforeBody = this.getBeforeBody(tooltipItems, options);\n this.body = this.getBody(tooltipItems, options);\n this.afterBody = this.getAfterBody(tooltipItems, options);\n this.footer = this.getFooter(tooltipItems, options);\n\n const size = this._size = getTooltipSize(this, options);\n const positionAndSize = Object.assign({}, position, size);\n const alignment = determineAlignment(this.chart, options, positionAndSize);\n const backgroundPoint = getBackgroundPoint(options, positionAndSize, alignment, this.chart);\n\n this.xAlign = alignment.xAlign;\n this.yAlign = alignment.yAlign;\n\n properties = {\n opacity: 1,\n x: backgroundPoint.x,\n y: backgroundPoint.y,\n width: size.width,\n height: size.height,\n caretX: position.x,\n caretY: position.y\n };\n }\n\n this._tooltipItems = tooltipItems;\n this.$context = undefined;\n\n if (properties) {\n this._resolveAnimations().update(this, properties);\n }\n\n if (changed && options.external) {\n options.external.call(this, {chart: this.chart, tooltip: this, replay});\n }\n }\n\n drawCaret(tooltipPoint, ctx, size, options) {\n const caretPosition = this.getCaretPosition(tooltipPoint, size, options);\n\n ctx.lineTo(caretPosition.x1, caretPosition.y1);\n ctx.lineTo(caretPosition.x2, caretPosition.y2);\n ctx.lineTo(caretPosition.x3, caretPosition.y3);\n }\n\n getCaretPosition(tooltipPoint, size, options) {\n const {xAlign, yAlign} = this;\n const {caretSize, cornerRadius} = options;\n const {topLeft, topRight, bottomLeft, bottomRight} = toTRBLCorners(cornerRadius);\n const {x: ptX, y: ptY} = tooltipPoint;\n const {width, height} = size;\n let x1, x2, x3, y1, y2, y3;\n\n if (yAlign === 'center') {\n y2 = ptY + (height / 2);\n\n if (xAlign === 'left') {\n x1 = ptX;\n x2 = x1 - caretSize;\n\n // Left draws bottom -> top, this y1 is on the bottom\n y1 = y2 + caretSize;\n y3 = y2 - caretSize;\n } else {\n x1 = ptX + width;\n x2 = x1 + caretSize;\n\n // Right draws top -> bottom, thus y1 is on the top\n y1 = y2 - caretSize;\n y3 = y2 + caretSize;\n }\n\n x3 = x1;\n } else {\n if (xAlign === 'left') {\n x2 = ptX + Math.max(topLeft, bottomLeft) + (caretSize);\n } else if (xAlign === 'right') {\n x2 = ptX + width - Math.max(topRight, bottomRight) - caretSize;\n } else {\n x2 = this.caretX;\n }\n\n if (yAlign === 'top') {\n y1 = ptY;\n y2 = y1 - caretSize;\n\n // Top draws left -> right, thus x1 is on the left\n x1 = x2 - caretSize;\n x3 = x2 + caretSize;\n } else {\n y1 = ptY + height;\n y2 = y1 + caretSize;\n\n // Bottom draws right -> left, thus x1 is on the right\n x1 = x2 + caretSize;\n x3 = x2 - caretSize;\n }\n y3 = y1;\n }\n return {x1, x2, x3, y1, y2, y3};\n }\n\n drawTitle(pt, ctx, options) {\n const title = this.title;\n const length = title.length;\n let titleFont, titleSpacing, i;\n\n if (length) {\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n\n pt.x = getAlignedX(this, options.titleAlign, options);\n\n ctx.textAlign = rtlHelper.textAlign(options.titleAlign);\n ctx.textBaseline = 'middle';\n\n titleFont = toFont(options.titleFont);\n titleSpacing = options.titleSpacing;\n\n ctx.fillStyle = options.titleColor;\n ctx.font = titleFont.string;\n\n for (i = 0; i < length; ++i) {\n ctx.fillText(title[i], rtlHelper.x(pt.x), pt.y + titleFont.lineHeight / 2);\n pt.y += titleFont.lineHeight + titleSpacing; // Line Height and spacing\n\n if (i + 1 === length) {\n pt.y += options.titleMarginBottom - titleSpacing; // If Last, add margin, remove spacing\n }\n }\n }\n }\n\n /**\n\t * @private\n\t */\n _drawColorBox(ctx, pt, i, rtlHelper, options) {\n const labelColor = this.labelColors[i];\n const labelPointStyle = this.labelPointStyles[i];\n const {boxHeight, boxWidth} = options;\n const bodyFont = toFont(options.bodyFont);\n const colorX = getAlignedX(this, 'left', options);\n const rtlColorX = rtlHelper.x(colorX);\n const yOffSet = boxHeight < bodyFont.lineHeight ? (bodyFont.lineHeight - boxHeight) / 2 : 0;\n const colorY = pt.y + yOffSet;\n\n if (options.usePointStyle) {\n const drawOptions = {\n radius: Math.min(boxWidth, boxHeight) / 2, // fit the circle in the box\n pointStyle: labelPointStyle.pointStyle,\n rotation: labelPointStyle.rotation,\n borderWidth: 1\n };\n // Recalculate x and y for drawPoint() because its expecting\n // x and y to be center of figure (instead of top left)\n const centerX = rtlHelper.leftForLtr(rtlColorX, boxWidth) + boxWidth / 2;\n const centerY = colorY + boxHeight / 2;\n\n // Fill the point with white so that colours merge nicely if the opacity is < 1\n ctx.strokeStyle = options.multiKeyBackground;\n ctx.fillStyle = options.multiKeyBackground;\n drawPoint(ctx, drawOptions, centerX, centerY);\n\n // Draw the point\n ctx.strokeStyle = labelColor.borderColor;\n ctx.fillStyle = labelColor.backgroundColor;\n drawPoint(ctx, drawOptions, centerX, centerY);\n } else {\n // Border\n ctx.lineWidth = isObject(labelColor.borderWidth) ? Math.max(...Object.values(labelColor.borderWidth)) : (labelColor.borderWidth || 1); // TODO, v4 remove fallback\n ctx.strokeStyle = labelColor.borderColor;\n ctx.setLineDash(labelColor.borderDash || []);\n ctx.lineDashOffset = labelColor.borderDashOffset || 0;\n\n // Fill a white rect so that colours merge nicely if the opacity is < 1\n const outerX = rtlHelper.leftForLtr(rtlColorX, boxWidth);\n const innerX = rtlHelper.leftForLtr(rtlHelper.xPlus(rtlColorX, 1), boxWidth - 2);\n const borderRadius = toTRBLCorners(labelColor.borderRadius);\n\n if (Object.values(borderRadius).some(v => v !== 0)) {\n ctx.beginPath();\n ctx.fillStyle = options.multiKeyBackground;\n addRoundedRectPath(ctx, {\n x: outerX,\n y: colorY,\n w: boxWidth,\n h: boxHeight,\n radius: borderRadius,\n });\n ctx.fill();\n ctx.stroke();\n\n // Inner square\n ctx.fillStyle = labelColor.backgroundColor;\n ctx.beginPath();\n addRoundedRectPath(ctx, {\n x: innerX,\n y: colorY + 1,\n w: boxWidth - 2,\n h: boxHeight - 2,\n radius: borderRadius,\n });\n ctx.fill();\n } else {\n // Normal rect\n ctx.fillStyle = options.multiKeyBackground;\n ctx.fillRect(outerX, colorY, boxWidth, boxHeight);\n ctx.strokeRect(outerX, colorY, boxWidth, boxHeight);\n // Inner square\n ctx.fillStyle = labelColor.backgroundColor;\n ctx.fillRect(innerX, colorY + 1, boxWidth - 2, boxHeight - 2);\n }\n }\n\n // restore fillStyle\n ctx.fillStyle = this.labelTextColors[i];\n }\n\n drawBody(pt, ctx, options) {\n const {body} = this;\n const {bodySpacing, bodyAlign, displayColors, boxHeight, boxWidth, boxPadding} = options;\n const bodyFont = toFont(options.bodyFont);\n let bodyLineHeight = bodyFont.lineHeight;\n let xLinePadding = 0;\n\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n\n const fillLineOfText = function(line) {\n ctx.fillText(line, rtlHelper.x(pt.x + xLinePadding), pt.y + bodyLineHeight / 2);\n pt.y += bodyLineHeight + bodySpacing;\n };\n\n const bodyAlignForCalculation = rtlHelper.textAlign(bodyAlign);\n let bodyItem, textColor, lines, i, j, ilen, jlen;\n\n ctx.textAlign = bodyAlign;\n ctx.textBaseline = 'middle';\n ctx.font = bodyFont.string;\n\n pt.x = getAlignedX(this, bodyAlignForCalculation, options);\n\n // Before body lines\n ctx.fillStyle = options.bodyColor;\n each(this.beforeBody, fillLineOfText);\n\n xLinePadding = displayColors && bodyAlignForCalculation !== 'right'\n ? bodyAlign === 'center' ? (boxWidth / 2 + boxPadding) : (boxWidth + 2 + boxPadding)\n : 0;\n\n // Draw body lines now\n for (i = 0, ilen = body.length; i < ilen; ++i) {\n bodyItem = body[i];\n textColor = this.labelTextColors[i];\n\n ctx.fillStyle = textColor;\n each(bodyItem.before, fillLineOfText);\n\n lines = bodyItem.lines;\n // Draw Legend-like boxes if needed\n if (displayColors && lines.length) {\n this._drawColorBox(ctx, pt, i, rtlHelper, options);\n bodyLineHeight = Math.max(bodyFont.lineHeight, boxHeight);\n }\n\n for (j = 0, jlen = lines.length; j < jlen; ++j) {\n fillLineOfText(lines[j]);\n // Reset for any lines that don't include colorbox\n bodyLineHeight = bodyFont.lineHeight;\n }\n\n each(bodyItem.after, fillLineOfText);\n }\n\n // Reset back to 0 for after body\n xLinePadding = 0;\n bodyLineHeight = bodyFont.lineHeight;\n\n // After body lines\n each(this.afterBody, fillLineOfText);\n pt.y -= bodySpacing; // Remove last body spacing\n }\n\n drawFooter(pt, ctx, options) {\n const footer = this.footer;\n const length = footer.length;\n let footerFont, i;\n\n if (length) {\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n\n pt.x = getAlignedX(this, options.footerAlign, options);\n pt.y += options.footerMarginTop;\n\n ctx.textAlign = rtlHelper.textAlign(options.footerAlign);\n ctx.textBaseline = 'middle';\n\n footerFont = toFont(options.footerFont);\n\n ctx.fillStyle = options.footerColor;\n ctx.font = footerFont.string;\n\n for (i = 0; i < length; ++i) {\n ctx.fillText(footer[i], rtlHelper.x(pt.x), pt.y + footerFont.lineHeight / 2);\n pt.y += footerFont.lineHeight + options.footerSpacing;\n }\n }\n }\n\n drawBackground(pt, ctx, tooltipSize, options) {\n const {xAlign, yAlign} = this;\n const {x, y} = pt;\n const {width, height} = tooltipSize;\n const {topLeft, topRight, bottomLeft, bottomRight} = toTRBLCorners(options.cornerRadius);\n\n ctx.fillStyle = options.backgroundColor;\n ctx.strokeStyle = options.borderColor;\n ctx.lineWidth = options.borderWidth;\n\n ctx.beginPath();\n ctx.moveTo(x + topLeft, y);\n if (yAlign === 'top') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + width - topRight, y);\n ctx.quadraticCurveTo(x + width, y, x + width, y + topRight);\n if (yAlign === 'center' && xAlign === 'right') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + width, y + height - bottomRight);\n ctx.quadraticCurveTo(x + width, y + height, x + width - bottomRight, y + height);\n if (yAlign === 'bottom') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + bottomLeft, y + height);\n ctx.quadraticCurveTo(x, y + height, x, y + height - bottomLeft);\n if (yAlign === 'center' && xAlign === 'left') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x, y + topLeft);\n ctx.quadraticCurveTo(x, y, x + topLeft, y);\n ctx.closePath();\n\n ctx.fill();\n\n if (options.borderWidth > 0) {\n ctx.stroke();\n }\n }\n\n /**\n\t * Update x/y animation targets when _active elements are animating too\n\t * @private\n\t */\n _updateAnimationTarget(options) {\n const chart = this.chart;\n const anims = this.$animations;\n const animX = anims && anims.x;\n const animY = anims && anims.y;\n if (animX || animY) {\n const position = positioners[options.position].call(this, this._active, this._eventPosition);\n if (!position) {\n return;\n }\n const size = this._size = getTooltipSize(this, options);\n const positionAndSize = Object.assign({}, position, this._size);\n const alignment = determineAlignment(chart, options, positionAndSize);\n const point = getBackgroundPoint(options, positionAndSize, alignment, chart);\n if (animX._to !== point.x || animY._to !== point.y) {\n this.xAlign = alignment.xAlign;\n this.yAlign = alignment.yAlign;\n this.width = size.width;\n this.height = size.height;\n this.caretX = position.x;\n this.caretY = position.y;\n this._resolveAnimations().update(this, point);\n }\n }\n }\n\n /**\n * Determine if the tooltip will draw anything\n * @returns {boolean} True if the tooltip will render\n */\n _willRender() {\n return !!this.opacity;\n }\n\n draw(ctx) {\n const options = this.options.setContext(this.getContext());\n let opacity = this.opacity;\n\n if (!opacity) {\n return;\n }\n\n this._updateAnimationTarget(options);\n\n const tooltipSize = {\n width: this.width,\n height: this.height\n };\n const pt = {\n x: this.x,\n y: this.y\n };\n\n // IE11/Edge does not like very small opacities, so snap to 0\n opacity = Math.abs(opacity) < 1e-3 ? 0 : opacity;\n\n const padding = toPadding(options.padding);\n\n // Truthy/falsey value for empty tooltip\n const hasTooltipContent = this.title.length || this.beforeBody.length || this.body.length || this.afterBody.length || this.footer.length;\n\n if (options.enabled && hasTooltipContent) {\n ctx.save();\n ctx.globalAlpha = opacity;\n\n // Draw Background\n this.drawBackground(pt, ctx, tooltipSize, options);\n\n overrideTextDirection(ctx, options.textDirection);\n\n pt.y += padding.top;\n\n // Titles\n this.drawTitle(pt, ctx, options);\n\n // Body\n this.drawBody(pt, ctx, options);\n\n // Footer\n this.drawFooter(pt, ctx, options);\n\n restoreTextDirection(ctx, options.textDirection);\n\n ctx.restore();\n }\n }\n\n /**\n\t * Get active elements in the tooltip\n\t * @returns {Array} Array of elements that are active in the tooltip\n\t */\n getActiveElements() {\n return this._active || [];\n }\n\n /**\n\t * Set active elements in the tooltip\n\t * @param {array} activeElements Array of active datasetIndex/index pairs.\n\t * @param {object} eventPosition Synthetic event position used in positioning\n\t */\n setActiveElements(activeElements, eventPosition) {\n const lastActive = this._active;\n const active = activeElements.map(({datasetIndex, index}) => {\n const meta = this.chart.getDatasetMeta(datasetIndex);\n\n if (!meta) {\n throw new Error('Cannot find a dataset at index ' + datasetIndex);\n }\n\n return {\n datasetIndex,\n element: meta.data[index],\n index,\n };\n });\n const changed = !_elementsEqual(lastActive, active);\n const positionChanged = this._positionChanged(active, eventPosition);\n\n if (changed || positionChanged) {\n this._active = active;\n this._eventPosition = eventPosition;\n this._ignoreReplayEvents = true;\n this.update(true);\n }\n }\n\n /**\n\t * Handle an event\n\t * @param {ChartEvent} e - The event to handle\n\t * @param {boolean} [replay] - This is a replayed event (from update)\n\t * @param {boolean} [inChartArea] - The event is inside chartArea\n\t * @returns {boolean} true if the tooltip changed\n\t */\n handleEvent(e, replay, inChartArea = true) {\n if (replay && this._ignoreReplayEvents) {\n return false;\n }\n this._ignoreReplayEvents = false;\n\n const options = this.options;\n const lastActive = this._active || [];\n const active = this._getActiveElements(e, lastActive, replay, inChartArea);\n\n // When there are multiple items shown, but the tooltip position is nearest mode\n // an update may need to be made because our position may have changed even though\n // the items are the same as before.\n const positionChanged = this._positionChanged(active, e);\n\n // Remember Last Actives\n const changed = replay || !_elementsEqual(active, lastActive) || positionChanged;\n\n // Only handle target event on tooltip change\n if (changed) {\n this._active = active;\n\n if (options.enabled || options.external) {\n this._eventPosition = {\n x: e.x,\n y: e.y\n };\n\n this.update(true, replay);\n }\n }\n\n return changed;\n }\n\n /**\n\t * Helper for determining the active elements for event\n\t * @param {ChartEvent} e - The event to handle\n\t * @param {InteractionItem[]} lastActive - Previously active elements\n\t * @param {boolean} [replay] - This is a replayed event (from update)\n\t * @param {boolean} [inChartArea] - The event is inside chartArea\n\t * @returns {InteractionItem[]} - Active elements\n\t * @private\n\t */\n _getActiveElements(e, lastActive, replay, inChartArea) {\n const options = this.options;\n\n if (e.type === 'mouseout') {\n return [];\n }\n\n if (!inChartArea) {\n // Let user control the active elements outside chartArea. Eg. using Legend.\n // But make sure that active elements are still valid.\n return lastActive.filter(i =>\n this.chart.data.datasets[i.datasetIndex] &&\n this.chart.getDatasetMeta(i.datasetIndex).controller.getParsed(i.index) !== undefined\n );\n }\n\n // Find Active Elements for tooltips\n const active = this.chart.getElementsAtEventForMode(e, options.mode, options, replay);\n\n if (options.reverse) {\n active.reverse();\n }\n\n return active;\n }\n\n /**\n\t * Determine if the active elements + event combination changes the\n\t * tooltip position\n\t * @param {array} active - Active elements\n\t * @param {ChartEvent} e - Event that triggered the position change\n\t * @returns {boolean} True if the position has changed\n\t */\n _positionChanged(active, e) {\n const {caretX, caretY, options} = this;\n const position = positioners[options.position].call(this, active, e);\n return position !== false && (caretX !== position.x || caretY !== position.y);\n }\n}\n\nexport default {\n id: 'tooltip',\n _element: Tooltip,\n positioners,\n\n afterInit(chart, _args, options) {\n if (options) {\n chart.tooltip = new Tooltip({chart, options});\n }\n },\n\n beforeUpdate(chart, _args, options) {\n if (chart.tooltip) {\n chart.tooltip.initialize(options);\n }\n },\n\n reset(chart, _args, options) {\n if (chart.tooltip) {\n chart.tooltip.initialize(options);\n }\n },\n\n afterDraw(chart) {\n const tooltip = chart.tooltip;\n\n if (tooltip && tooltip._willRender()) {\n const args = {\n tooltip\n };\n\n if (chart.notifyPlugins('beforeTooltipDraw', {...args, cancelable: true}) === false) {\n return;\n }\n\n tooltip.draw(chart.ctx);\n\n chart.notifyPlugins('afterTooltipDraw', args);\n }\n },\n\n afterEvent(chart, args) {\n if (chart.tooltip) {\n // If the event is replayed from `update`, we should evaluate with the final positions.\n const useFinalPosition = args.replay;\n if (chart.tooltip.handleEvent(args.event, useFinalPosition, args.inChartArea)) {\n // notify chart about the change, so it will render\n args.changed = true;\n }\n }\n },\n\n defaults: {\n enabled: true,\n external: null,\n position: 'average',\n backgroundColor: 'rgba(0,0,0,0.8)',\n titleColor: '#fff',\n titleFont: {\n weight: 'bold',\n },\n titleSpacing: 2,\n titleMarginBottom: 6,\n titleAlign: 'left',\n bodyColor: '#fff',\n bodySpacing: 2,\n bodyFont: {\n },\n bodyAlign: 'left',\n footerColor: '#fff',\n footerSpacing: 2,\n footerMarginTop: 6,\n footerFont: {\n weight: 'bold',\n },\n footerAlign: 'left',\n padding: 6,\n caretPadding: 2,\n caretSize: 5,\n cornerRadius: 6,\n boxHeight: (ctx, opts) => opts.bodyFont.size,\n boxWidth: (ctx, opts) => opts.bodyFont.size,\n multiKeyBackground: '#fff',\n displayColors: true,\n boxPadding: 0,\n borderColor: 'rgba(0,0,0,0)',\n borderWidth: 0,\n animation: {\n duration: 400,\n easing: 'easeOutQuart',\n },\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'width', 'height', 'caretX', 'caretY'],\n },\n opacity: {\n easing: 'linear',\n duration: 200\n }\n },\n callbacks: defaultCallbacks\n },\n\n defaultRoutes: {\n bodyFont: 'font',\n footerFont: 'font',\n titleFont: 'font'\n },\n\n descriptors: {\n _scriptable: (name) => name !== 'filter' && name !== 'itemSort' && name !== 'external',\n _indexable: false,\n callbacks: {\n _scriptable: false,\n _indexable: false,\n },\n animation: {\n _fallback: false\n },\n animations: {\n _fallback: 'animation'\n }\n },\n\n // Resolve additionally from `interaction` options and defaults.\n additionalOptionScopes: ['interaction']\n};\n","import Scale from '../core/core.scale.js';\nimport {isNullOrUndef, valueOrDefault, _limitValue} from '../helpers/index.js';\n\nconst addIfString = (labels, raw, index, addedLabels) => {\n if (typeof raw === 'string') {\n index = labels.push(raw) - 1;\n addedLabels.unshift({index, label: raw});\n } else if (isNaN(raw)) {\n index = null;\n }\n return index;\n};\n\nfunction findOrAddLabel(labels, raw, index, addedLabels) {\n const first = labels.indexOf(raw);\n if (first === -1) {\n return addIfString(labels, raw, index, addedLabels);\n }\n const last = labels.lastIndexOf(raw);\n return first !== last ? index : first;\n}\n\nconst validIndex = (index, max) => index === null ? null : _limitValue(Math.round(index), 0, max);\n\nfunction _getLabelForValue(value) {\n const labels = this.getLabels();\n\n if (value >= 0 && value < labels.length) {\n return labels[value];\n }\n return value;\n}\n\nexport default class CategoryScale extends Scale {\n\n static id = 'category';\n\n /**\n * @type {any}\n */\n static defaults = {\n ticks: {\n callback: _getLabelForValue\n }\n };\n\n constructor(cfg) {\n super(cfg);\n\n /** @type {number} */\n this._startValue = undefined;\n this._valueRange = 0;\n this._addedLabels = [];\n }\n\n init(scaleOptions) {\n const added = this._addedLabels;\n if (added.length) {\n const labels = this.getLabels();\n for (const {index, label} of added) {\n if (labels[index] === label) {\n labels.splice(index, 1);\n }\n }\n this._addedLabels = [];\n }\n super.init(scaleOptions);\n }\n\n parse(raw, index) {\n if (isNullOrUndef(raw)) {\n return null;\n }\n const labels = this.getLabels();\n index = isFinite(index) && labels[index] === raw ? index\n : findOrAddLabel(labels, raw, valueOrDefault(index, raw), this._addedLabels);\n return validIndex(index, labels.length - 1);\n }\n\n determineDataLimits() {\n const {minDefined, maxDefined} = this.getUserBounds();\n let {min, max} = this.getMinMax(true);\n\n if (this.options.bounds === 'ticks') {\n if (!minDefined) {\n min = 0;\n }\n if (!maxDefined) {\n max = this.getLabels().length - 1;\n }\n }\n\n this.min = min;\n this.max = max;\n }\n\n buildTicks() {\n const min = this.min;\n const max = this.max;\n const offset = this.options.offset;\n const ticks = [];\n let labels = this.getLabels();\n\n // If we are viewing some subset of labels, slice the original array\n labels = (min === 0 && max === labels.length - 1) ? labels : labels.slice(min, max + 1);\n\n this._valueRange = Math.max(labels.length - (offset ? 0 : 1), 1);\n this._startValue = this.min - (offset ? 0.5 : 0);\n\n for (let value = min; value <= max; value++) {\n ticks.push({value});\n }\n return ticks;\n }\n\n getLabelForValue(value) {\n return _getLabelForValue.call(this, value);\n }\n\n /**\n\t * @protected\n\t */\n configure() {\n super.configure();\n\n if (!this.isHorizontal()) {\n // For backward compatibility, vertical category scale reverse is inverted.\n this._reversePixels = !this._reversePixels;\n }\n }\n\n // Used to get data value locations. Value can either be an index or a numerical value\n getPixelForValue(value) {\n if (typeof value !== 'number') {\n value = this.parse(value);\n }\n\n return value === null ? NaN : this.getPixelForDecimal((value - this._startValue) / this._valueRange);\n }\n\n // Must override base implementation because it calls getPixelForValue\n // and category scale can have duplicate values\n getPixelForTick(index) {\n const ticks = this.ticks;\n if (index < 0 || index > ticks.length - 1) {\n return null;\n }\n return this.getPixelForValue(ticks[index].value);\n }\n\n getValueForPixel(pixel) {\n return Math.round(this._startValue + this.getDecimalForPixel(pixel) * this._valueRange);\n }\n\n getBasePixel() {\n return this.bottom;\n }\n}\n","import {isNullOrUndef} from '../helpers/helpers.core.js';\nimport {almostEquals, almostWhole, niceNum, _decimalPlaces, _setMinAndMaxByKey, sign, toRadians} from '../helpers/helpers.math.js';\nimport Scale from '../core/core.scale.js';\nimport {formatNumber} from '../helpers/helpers.intl.js';\n\n/**\n * Generate a set of linear ticks for an axis\n * 1. If generationOptions.min, generationOptions.max, and generationOptions.step are defined:\n * if (max - min) / step is an integer, ticks are generated as [min, min + step, ..., max]\n * Note that the generationOptions.maxCount setting is respected in this scenario\n *\n * 2. If generationOptions.min, generationOptions.max, and generationOptions.count is defined\n * spacing = (max - min) / count\n * Ticks are generated as [min, min + spacing, ..., max]\n *\n * 3. If generationOptions.count is defined\n * spacing = (niceMax - niceMin) / count\n *\n * 4. Compute optimal spacing of ticks using niceNum algorithm\n *\n * @param generationOptions the options used to generate the ticks\n * @param dataRange the range of the data\n * @returns {object[]} array of tick objects\n */\nfunction generateTicks(generationOptions, dataRange) {\n const ticks = [];\n // To get a \"nice\" value for the tick spacing, we will use the appropriately named\n // \"nice number\" algorithm. See https://stackoverflow.com/questions/8506881/nice-label-algorithm-for-charts-with-minimum-ticks\n // for details.\n\n const MIN_SPACING = 1e-14;\n const {bounds, step, min, max, precision, count, maxTicks, maxDigits, includeBounds} = generationOptions;\n const unit = step || 1;\n const maxSpaces = maxTicks - 1;\n const {min: rmin, max: rmax} = dataRange;\n const minDefined = !isNullOrUndef(min);\n const maxDefined = !isNullOrUndef(max);\n const countDefined = !isNullOrUndef(count);\n const minSpacing = (rmax - rmin) / (maxDigits + 1);\n let spacing = niceNum((rmax - rmin) / maxSpaces / unit) * unit;\n let factor, niceMin, niceMax, numSpaces;\n\n // Beyond MIN_SPACING floating point numbers being to lose precision\n // such that we can't do the math necessary to generate ticks\n if (spacing < MIN_SPACING && !minDefined && !maxDefined) {\n return [{value: rmin}, {value: rmax}];\n }\n\n numSpaces = Math.ceil(rmax / spacing) - Math.floor(rmin / spacing);\n if (numSpaces > maxSpaces) {\n // If the calculated num of spaces exceeds maxNumSpaces, recalculate it\n spacing = niceNum(numSpaces * spacing / maxSpaces / unit) * unit;\n }\n\n if (!isNullOrUndef(precision)) {\n // If the user specified a precision, round to that number of decimal places\n factor = Math.pow(10, precision);\n spacing = Math.ceil(spacing * factor) / factor;\n }\n\n if (bounds === 'ticks') {\n niceMin = Math.floor(rmin / spacing) * spacing;\n niceMax = Math.ceil(rmax / spacing) * spacing;\n } else {\n niceMin = rmin;\n niceMax = rmax;\n }\n\n if (minDefined && maxDefined && step && almostWhole((max - min) / step, spacing / 1000)) {\n // Case 1: If min, max and stepSize are set and they make an evenly spaced scale use it.\n // spacing = step;\n // numSpaces = (max - min) / spacing;\n // Note that we round here to handle the case where almostWhole translated an FP error\n numSpaces = Math.round(Math.min((max - min) / spacing, maxTicks));\n spacing = (max - min) / numSpaces;\n niceMin = min;\n niceMax = max;\n } else if (countDefined) {\n // Cases 2 & 3, we have a count specified. Handle optional user defined edges to the range.\n // Sometimes these are no-ops, but it makes the code a lot clearer\n // and when a user defined range is specified, we want the correct ticks\n niceMin = minDefined ? min : niceMin;\n niceMax = maxDefined ? max : niceMax;\n numSpaces = count - 1;\n spacing = (niceMax - niceMin) / numSpaces;\n } else {\n // Case 4\n numSpaces = (niceMax - niceMin) / spacing;\n\n // If very close to our rounded value, use it.\n if (almostEquals(numSpaces, Math.round(numSpaces), spacing / 1000)) {\n numSpaces = Math.round(numSpaces);\n } else {\n numSpaces = Math.ceil(numSpaces);\n }\n }\n\n // The spacing will have changed in cases 1, 2, and 3 so the factor cannot be computed\n // until this point\n const decimalPlaces = Math.max(\n _decimalPlaces(spacing),\n _decimalPlaces(niceMin)\n );\n factor = Math.pow(10, isNullOrUndef(precision) ? decimalPlaces : precision);\n niceMin = Math.round(niceMin * factor) / factor;\n niceMax = Math.round(niceMax * factor) / factor;\n\n let j = 0;\n if (minDefined) {\n if (includeBounds && niceMin !== min) {\n ticks.push({value: min});\n\n if (niceMin < min) {\n j++; // Skip niceMin\n }\n // If the next nice tick is close to min, skip it\n if (almostEquals(Math.round((niceMin + j * spacing) * factor) / factor, min, relativeLabelSize(min, minSpacing, generationOptions))) {\n j++;\n }\n } else if (niceMin < min) {\n j++;\n }\n }\n\n for (; j < numSpaces; ++j) {\n const tickValue = Math.round((niceMin + j * spacing) * factor) / factor;\n if (maxDefined && tickValue > max) {\n break;\n }\n ticks.push({value: tickValue});\n }\n\n if (maxDefined && includeBounds && niceMax !== max) {\n // If the previous tick is too close to max, replace it with max, else add max\n if (ticks.length && almostEquals(ticks[ticks.length - 1].value, max, relativeLabelSize(max, minSpacing, generationOptions))) {\n ticks[ticks.length - 1].value = max;\n } else {\n ticks.push({value: max});\n }\n } else if (!maxDefined || niceMax === max) {\n ticks.push({value: niceMax});\n }\n\n return ticks;\n}\n\nfunction relativeLabelSize(value, minSpacing, {horizontal, minRotation}) {\n const rad = toRadians(minRotation);\n const ratio = (horizontal ? Math.sin(rad) : Math.cos(rad)) || 0.001;\n const length = 0.75 * minSpacing * ('' + value).length;\n return Math.min(minSpacing / ratio, length);\n}\n\nexport default class LinearScaleBase extends Scale {\n\n constructor(cfg) {\n super(cfg);\n\n /** @type {number} */\n this.start = undefined;\n /** @type {number} */\n this.end = undefined;\n /** @type {number} */\n this._startValue = undefined;\n /** @type {number} */\n this._endValue = undefined;\n this._valueRange = 0;\n }\n\n parse(raw, index) { // eslint-disable-line no-unused-vars\n if (isNullOrUndef(raw)) {\n return null;\n }\n if ((typeof raw === 'number' || raw instanceof Number) && !isFinite(+raw)) {\n return null;\n }\n\n return +raw;\n }\n\n handleTickRangeOptions() {\n const {beginAtZero} = this.options;\n const {minDefined, maxDefined} = this.getUserBounds();\n let {min, max} = this;\n\n const setMin = v => (min = minDefined ? min : v);\n const setMax = v => (max = maxDefined ? max : v);\n\n if (beginAtZero) {\n const minSign = sign(min);\n const maxSign = sign(max);\n\n if (minSign < 0 && maxSign < 0) {\n setMax(0);\n } else if (minSign > 0 && maxSign > 0) {\n setMin(0);\n }\n }\n\n if (min === max) {\n let offset = max === 0 ? 1 : Math.abs(max * 0.05);\n\n setMax(max + offset);\n\n if (!beginAtZero) {\n setMin(min - offset);\n }\n }\n this.min = min;\n this.max = max;\n }\n\n getTickLimit() {\n const tickOpts = this.options.ticks;\n // eslint-disable-next-line prefer-const\n let {maxTicksLimit, stepSize} = tickOpts;\n let maxTicks;\n\n if (stepSize) {\n maxTicks = Math.ceil(this.max / stepSize) - Math.floor(this.min / stepSize) + 1;\n if (maxTicks > 1000) {\n console.warn(`scales.${this.id}.ticks.stepSize: ${stepSize} would result generating up to ${maxTicks} ticks. Limiting to 1000.`);\n maxTicks = 1000;\n }\n } else {\n maxTicks = this.computeTickLimit();\n maxTicksLimit = maxTicksLimit || 11;\n }\n\n if (maxTicksLimit) {\n maxTicks = Math.min(maxTicksLimit, maxTicks);\n }\n\n return maxTicks;\n }\n\n /**\n\t * @protected\n\t */\n computeTickLimit() {\n return Number.POSITIVE_INFINITY;\n }\n\n buildTicks() {\n const opts = this.options;\n const tickOpts = opts.ticks;\n\n // Figure out what the max number of ticks we can support it is based on the size of\n // the axis area. For now, we say that the minimum tick spacing in pixels must be 40\n // We also limit the maximum number of ticks to 11 which gives a nice 10 squares on\n // the graph. Make sure we always have at least 2 ticks\n let maxTicks = this.getTickLimit();\n maxTicks = Math.max(2, maxTicks);\n\n const numericGeneratorOptions = {\n maxTicks,\n bounds: opts.bounds,\n min: opts.min,\n max: opts.max,\n precision: tickOpts.precision,\n step: tickOpts.stepSize,\n count: tickOpts.count,\n maxDigits: this._maxDigits(),\n horizontal: this.isHorizontal(),\n minRotation: tickOpts.minRotation || 0,\n includeBounds: tickOpts.includeBounds !== false\n };\n const dataRange = this._range || this;\n const ticks = generateTicks(numericGeneratorOptions, dataRange);\n\n // At this point, we need to update our max and min given the tick values,\n // since we probably have expanded the range of the scale\n if (opts.bounds === 'ticks') {\n _setMinAndMaxByKey(ticks, this, 'value');\n }\n\n if (opts.reverse) {\n ticks.reverse();\n\n this.start = this.max;\n this.end = this.min;\n } else {\n this.start = this.min;\n this.end = this.max;\n }\n\n return ticks;\n }\n\n /**\n\t * @protected\n\t */\n configure() {\n const ticks = this.ticks;\n let start = this.min;\n let end = this.max;\n\n super.configure();\n\n if (this.options.offset && ticks.length) {\n const offset = (end - start) / Math.max(ticks.length - 1, 1) / 2;\n start -= offset;\n end += offset;\n }\n this._startValue = start;\n this._endValue = end;\n this._valueRange = end - start;\n }\n\n getLabelForValue(value) {\n return formatNumber(value, this.chart.options.locale, this.options.ticks.format);\n }\n}\n","import {isFinite} from '../helpers/helpers.core.js';\nimport LinearScaleBase from './scale.linearbase.js';\nimport Ticks from '../core/core.ticks.js';\nimport {toRadians} from '../helpers/index.js';\n\nexport default class LinearScale extends LinearScaleBase {\n\n static id = 'linear';\n\n /**\n * @type {any}\n */\n static defaults = {\n ticks: {\n callback: Ticks.formatters.numeric\n }\n };\n\n\n determineDataLimits() {\n const {min, max} = this.getMinMax(true);\n\n this.min = isFinite(min) ? min : 0;\n this.max = isFinite(max) ? max : 1;\n\n // Common base implementation to handle min, max, beginAtZero\n this.handleTickRangeOptions();\n }\n\n /**\n\t * Returns the maximum number of ticks based on the scale dimension\n\t * @protected\n \t */\n computeTickLimit() {\n const horizontal = this.isHorizontal();\n const length = horizontal ? this.width : this.height;\n const minRotation = toRadians(this.options.ticks.minRotation);\n const ratio = (horizontal ? Math.sin(minRotation) : Math.cos(minRotation)) || 0.001;\n const tickFont = this._resolveTickFontOptions(0);\n return Math.ceil(length / Math.min(40, tickFont.lineHeight / ratio));\n }\n\n // Utils\n getPixelForValue(value) {\n return value === null ? NaN : this.getPixelForDecimal((value - this._startValue) / this._valueRange);\n }\n\n getValueForPixel(pixel) {\n return this._startValue + this.getDecimalForPixel(pixel) * this._valueRange;\n }\n}\n","import {finiteOrDefault, isFinite} from '../helpers/helpers.core.js';\nimport {formatNumber} from '../helpers/helpers.intl.js';\nimport {_setMinAndMaxByKey, log10} from '../helpers/helpers.math.js';\nimport Scale from '../core/core.scale.js';\nimport LinearScaleBase from './scale.linearbase.js';\nimport Ticks from '../core/core.ticks.js';\n\nconst log10Floor = v => Math.floor(log10(v));\nconst changeExponent = (v, m) => Math.pow(10, log10Floor(v) + m);\n\nfunction isMajor(tickVal) {\n const remain = tickVal / (Math.pow(10, log10Floor(tickVal)));\n return remain === 1;\n}\n\nfunction steps(min, max, rangeExp) {\n const rangeStep = Math.pow(10, rangeExp);\n const start = Math.floor(min / rangeStep);\n const end = Math.ceil(max / rangeStep);\n return end - start;\n}\n\nfunction startExp(min, max) {\n const range = max - min;\n let rangeExp = log10Floor(range);\n while (steps(min, max, rangeExp) > 10) {\n rangeExp++;\n }\n while (steps(min, max, rangeExp) < 10) {\n rangeExp--;\n }\n return Math.min(rangeExp, log10Floor(min));\n}\n\n\n/**\n * Generate a set of logarithmic ticks\n * @param generationOptions the options used to generate the ticks\n * @param dataRange the range of the data\n * @returns {object[]} array of tick objects\n */\nfunction generateTicks(generationOptions, {min, max}) {\n min = finiteOrDefault(generationOptions.min, min);\n const ticks = [];\n const minExp = log10Floor(min);\n let exp = startExp(min, max);\n let precision = exp < 0 ? Math.pow(10, Math.abs(exp)) : 1;\n const stepSize = Math.pow(10, exp);\n const base = minExp > exp ? Math.pow(10, minExp) : 0;\n const start = Math.round((min - base) * precision) / precision;\n const offset = Math.floor((min - base) / stepSize / 10) * stepSize * 10;\n let significand = Math.floor((start - offset) / Math.pow(10, exp));\n let value = finiteOrDefault(generationOptions.min, Math.round((base + offset + significand * Math.pow(10, exp)) * precision) / precision);\n while (value < max) {\n ticks.push({value, major: isMajor(value), significand});\n if (significand >= 10) {\n significand = significand < 15 ? 15 : 20;\n } else {\n significand++;\n }\n if (significand >= 20) {\n exp++;\n significand = 2;\n precision = exp >= 0 ? 1 : precision;\n }\n value = Math.round((base + offset + significand * Math.pow(10, exp)) * precision) / precision;\n }\n const lastTick = finiteOrDefault(generationOptions.max, value);\n ticks.push({value: lastTick, major: isMajor(lastTick), significand});\n\n return ticks;\n}\n\nexport default class LogarithmicScale extends Scale {\n\n static id = 'logarithmic';\n\n /**\n * @type {any}\n */\n static defaults = {\n ticks: {\n callback: Ticks.formatters.logarithmic,\n major: {\n enabled: true\n }\n }\n };\n\n\n constructor(cfg) {\n super(cfg);\n\n /** @type {number} */\n this.start = undefined;\n /** @type {number} */\n this.end = undefined;\n /** @type {number} */\n this._startValue = undefined;\n this._valueRange = 0;\n }\n\n parse(raw, index) {\n const value = LinearScaleBase.prototype.parse.apply(this, [raw, index]);\n if (value === 0) {\n this._zero = true;\n return undefined;\n }\n return isFinite(value) && value > 0 ? value : null;\n }\n\n determineDataLimits() {\n const {min, max} = this.getMinMax(true);\n\n this.min = isFinite(min) ? Math.max(0, min) : null;\n this.max = isFinite(max) ? Math.max(0, max) : null;\n\n if (this.options.beginAtZero) {\n this._zero = true;\n }\n\n // if data has `0` in it or `beginAtZero` is true, min (non zero) value is at bottom\n // of scale, and it does not equal suggestedMin, lower the min bound by one exp.\n if (this._zero && this.min !== this._suggestedMin && !isFinite(this._userMin)) {\n this.min = min === changeExponent(this.min, 0) ? changeExponent(this.min, -1) : changeExponent(this.min, 0);\n }\n\n this.handleTickRangeOptions();\n }\n\n handleTickRangeOptions() {\n const {minDefined, maxDefined} = this.getUserBounds();\n let min = this.min;\n let max = this.max;\n\n const setMin = v => (min = minDefined ? min : v);\n const setMax = v => (max = maxDefined ? max : v);\n\n if (min === max) {\n if (min <= 0) { // includes null\n setMin(1);\n setMax(10);\n } else {\n setMin(changeExponent(min, -1));\n setMax(changeExponent(max, +1));\n }\n }\n if (min <= 0) {\n setMin(changeExponent(max, -1));\n }\n if (max <= 0) {\n\n setMax(changeExponent(min, +1));\n }\n\n this.min = min;\n this.max = max;\n }\n\n buildTicks() {\n const opts = this.options;\n\n const generationOptions = {\n min: this._userMin,\n max: this._userMax\n };\n const ticks = generateTicks(generationOptions, this);\n\n // At this point, we need to update our max and min given the tick values,\n // since we probably have expanded the range of the scale\n if (opts.bounds === 'ticks') {\n _setMinAndMaxByKey(ticks, this, 'value');\n }\n\n if (opts.reverse) {\n ticks.reverse();\n\n this.start = this.max;\n this.end = this.min;\n } else {\n this.start = this.min;\n this.end = this.max;\n }\n\n return ticks;\n }\n\n /**\n\t * @param {number} value\n\t * @return {string}\n\t */\n getLabelForValue(value) {\n return value === undefined\n ? '0'\n : formatNumber(value, this.chart.options.locale, this.options.ticks.format);\n }\n\n /**\n\t * @protected\n\t */\n configure() {\n const start = this.min;\n\n super.configure();\n\n this._startValue = log10(start);\n this._valueRange = log10(this.max) - log10(start);\n }\n\n getPixelForValue(value) {\n if (value === undefined || value === 0) {\n value = this.min;\n }\n if (value === null || isNaN(value)) {\n return NaN;\n }\n return this.getPixelForDecimal(value === this.min\n ? 0\n : (log10(value) - this._startValue) / this._valueRange);\n }\n\n getValueForPixel(pixel) {\n const decimal = this.getDecimalForPixel(pixel);\n return Math.pow(10, this._startValue + decimal * this._valueRange);\n }\n}\n","import defaults from '../core/core.defaults.js';\nimport {_longestText, addRoundedRectPath, renderText, _isPointInArea} from '../helpers/helpers.canvas.js';\nimport {HALF_PI, TAU, toDegrees, toRadians, _normalizeAngle, PI} from '../helpers/helpers.math.js';\nimport LinearScaleBase from './scale.linearbase.js';\nimport Ticks from '../core/core.ticks.js';\nimport {valueOrDefault, isArray, isFinite, callback as callCallback, isNullOrUndef} from '../helpers/helpers.core.js';\nimport {createContext, toFont, toPadding, toTRBLCorners} from '../helpers/helpers.options.js';\n\nfunction getTickBackdropHeight(opts) {\n const tickOpts = opts.ticks;\n\n if (tickOpts.display && opts.display) {\n const padding = toPadding(tickOpts.backdropPadding);\n return valueOrDefault(tickOpts.font && tickOpts.font.size, defaults.font.size) + padding.height;\n }\n return 0;\n}\n\nfunction measureLabelSize(ctx, font, label) {\n label = isArray(label) ? label : [label];\n return {\n w: _longestText(ctx, font.string, label),\n h: label.length * font.lineHeight\n };\n}\n\nfunction determineLimits(angle, pos, size, min, max) {\n if (angle === min || angle === max) {\n return {\n start: pos - (size / 2),\n end: pos + (size / 2)\n };\n } else if (angle < min || angle > max) {\n return {\n start: pos - size,\n end: pos\n };\n }\n\n return {\n start: pos,\n end: pos + size\n };\n}\n\n/**\n * Helper function to fit a radial linear scale with point labels\n */\nfunction fitWithPointLabels(scale) {\n\n // Right, this is really confusing and there is a lot of maths going on here\n // The gist of the problem is here: https://gist.github.com/nnnick/696cc9c55f4b0beb8fe9\n //\n // Reaction: https://dl.dropboxusercontent.com/u/34601363/toomuchscience.gif\n //\n // Solution:\n //\n // We assume the radius of the polygon is half the size of the canvas at first\n // at each index we check if the text overlaps.\n //\n // Where it does, we store that angle and that index.\n //\n // After finding the largest index and angle we calculate how much we need to remove\n // from the shape radius to move the point inwards by that x.\n //\n // We average the left and right distances to get the maximum shape radius that can fit in the box\n // along with labels.\n //\n // Once we have that, we can find the centre point for the chart, by taking the x text protrusion\n // on each side, removing that from the size, halving it and adding the left x protrusion width.\n //\n // This will mean we have a shape fitted to the canvas, as large as it can be with the labels\n // and position it in the most space efficient manner\n //\n // https://dl.dropboxusercontent.com/u/34601363/yeahscience.gif\n\n // Get maximum radius of the polygon. Either half the height (minus the text width) or half the width.\n // Use this to calculate the offset + change. - Make sure L/R protrusion is at least 0 to stop issues with centre points\n const orig = {\n l: scale.left + scale._padding.left,\n r: scale.right - scale._padding.right,\n t: scale.top + scale._padding.top,\n b: scale.bottom - scale._padding.bottom\n };\n const limits = Object.assign({}, orig);\n const labelSizes = [];\n const padding = [];\n const valueCount = scale._pointLabels.length;\n const pointLabelOpts = scale.options.pointLabels;\n const additionalAngle = pointLabelOpts.centerPointLabels ? PI / valueCount : 0;\n\n for (let i = 0; i < valueCount; i++) {\n const opts = pointLabelOpts.setContext(scale.getPointLabelContext(i));\n padding[i] = opts.padding;\n const pointPosition = scale.getPointPosition(i, scale.drawingArea + padding[i], additionalAngle);\n const plFont = toFont(opts.font);\n const textSize = measureLabelSize(scale.ctx, plFont, scale._pointLabels[i]);\n labelSizes[i] = textSize;\n\n const angleRadians = _normalizeAngle(scale.getIndexAngle(i) + additionalAngle);\n const angle = Math.round(toDegrees(angleRadians));\n const hLimits = determineLimits(angle, pointPosition.x, textSize.w, 0, 180);\n const vLimits = determineLimits(angle, pointPosition.y, textSize.h, 90, 270);\n updateLimits(limits, orig, angleRadians, hLimits, vLimits);\n }\n\n scale.setCenterPoint(\n orig.l - limits.l,\n limits.r - orig.r,\n orig.t - limits.t,\n limits.b - orig.b\n );\n\n // Now that text size is determined, compute the full positions\n scale._pointLabelItems = buildPointLabelItems(scale, labelSizes, padding);\n}\n\nfunction updateLimits(limits, orig, angle, hLimits, vLimits) {\n const sin = Math.abs(Math.sin(angle));\n const cos = Math.abs(Math.cos(angle));\n let x = 0;\n let y = 0;\n if (hLimits.start < orig.l) {\n x = (orig.l - hLimits.start) / sin;\n limits.l = Math.min(limits.l, orig.l - x);\n } else if (hLimits.end > orig.r) {\n x = (hLimits.end - orig.r) / sin;\n limits.r = Math.max(limits.r, orig.r + x);\n }\n if (vLimits.start < orig.t) {\n y = (orig.t - vLimits.start) / cos;\n limits.t = Math.min(limits.t, orig.t - y);\n } else if (vLimits.end > orig.b) {\n y = (vLimits.end - orig.b) / cos;\n limits.b = Math.max(limits.b, orig.b + y);\n }\n}\n\nfunction createPointLabelItem(scale, index, itemOpts) {\n const outerDistance = scale.drawingArea;\n const {extra, additionalAngle, padding, size} = itemOpts;\n const pointLabelPosition = scale.getPointPosition(index, outerDistance + extra + padding, additionalAngle);\n const angle = Math.round(toDegrees(_normalizeAngle(pointLabelPosition.angle + HALF_PI)));\n const y = yForAngle(pointLabelPosition.y, size.h, angle);\n const textAlign = getTextAlignForAngle(angle);\n const left = leftForTextAlign(pointLabelPosition.x, size.w, textAlign);\n return {\n // if to draw or overlapped\n visible: true,\n\n // Text position\n x: pointLabelPosition.x,\n y,\n\n // Text rendering data\n textAlign,\n\n // Bounding box\n left,\n top: y,\n right: left + size.w,\n bottom: y + size.h\n };\n}\n\nfunction isNotOverlapped(item, area) {\n if (!area) {\n return true;\n }\n const {left, top, right, bottom} = item;\n const apexesInArea = _isPointInArea({x: left, y: top}, area) || _isPointInArea({x: left, y: bottom}, area) ||\n _isPointInArea({x: right, y: top}, area) || _isPointInArea({x: right, y: bottom}, area);\n return !apexesInArea;\n}\n\nfunction buildPointLabelItems(scale, labelSizes, padding) {\n const items = [];\n const valueCount = scale._pointLabels.length;\n const opts = scale.options;\n const {centerPointLabels, display} = opts.pointLabels;\n const itemOpts = {\n extra: getTickBackdropHeight(opts) / 2,\n additionalAngle: centerPointLabels ? PI / valueCount : 0\n };\n let area;\n\n for (let i = 0; i < valueCount; i++) {\n itemOpts.padding = padding[i];\n itemOpts.size = labelSizes[i];\n\n const item = createPointLabelItem(scale, i, itemOpts);\n items.push(item);\n if (display === 'auto') {\n item.visible = isNotOverlapped(item, area);\n if (item.visible) {\n area = item;\n }\n }\n }\n return items;\n}\n\nfunction getTextAlignForAngle(angle) {\n if (angle === 0 || angle === 180) {\n return 'center';\n } else if (angle < 180) {\n return 'left';\n }\n\n return 'right';\n}\n\nfunction leftForTextAlign(x, w, align) {\n if (align === 'right') {\n x -= w;\n } else if (align === 'center') {\n x -= (w / 2);\n }\n return x;\n}\n\nfunction yForAngle(y, h, angle) {\n if (angle === 90 || angle === 270) {\n y -= (h / 2);\n } else if (angle > 270 || angle < 90) {\n y -= h;\n }\n return y;\n}\n\nfunction drawPointLabelBox(ctx, opts, item) {\n const {left, top, right, bottom} = item;\n const {backdropColor} = opts;\n\n if (!isNullOrUndef(backdropColor)) {\n const borderRadius = toTRBLCorners(opts.borderRadius);\n const padding = toPadding(opts.backdropPadding);\n ctx.fillStyle = backdropColor;\n\n const backdropLeft = left - padding.left;\n const backdropTop = top - padding.top;\n const backdropWidth = right - left + padding.width;\n const backdropHeight = bottom - top + padding.height;\n\n if (Object.values(borderRadius).some(v => v !== 0)) {\n ctx.beginPath();\n addRoundedRectPath(ctx, {\n x: backdropLeft,\n y: backdropTop,\n w: backdropWidth,\n h: backdropHeight,\n radius: borderRadius,\n });\n ctx.fill();\n } else {\n ctx.fillRect(backdropLeft, backdropTop, backdropWidth, backdropHeight);\n }\n }\n}\n\nfunction drawPointLabels(scale, labelCount) {\n const {ctx, options: {pointLabels}} = scale;\n\n for (let i = labelCount - 1; i >= 0; i--) {\n const item = scale._pointLabelItems[i];\n if (!item.visible) {\n // overlapping\n continue;\n }\n const optsAtIndex = pointLabels.setContext(scale.getPointLabelContext(i));\n drawPointLabelBox(ctx, optsAtIndex, item);\n const plFont = toFont(optsAtIndex.font);\n const {x, y, textAlign} = item;\n\n renderText(\n ctx,\n scale._pointLabels[i],\n x,\n y + (plFont.lineHeight / 2),\n plFont,\n {\n color: optsAtIndex.color,\n textAlign: textAlign,\n textBaseline: 'middle'\n }\n );\n }\n}\n\nfunction pathRadiusLine(scale, radius, circular, labelCount) {\n const {ctx} = scale;\n if (circular) {\n // Draw circular arcs between the points\n ctx.arc(scale.xCenter, scale.yCenter, radius, 0, TAU);\n } else {\n // Draw straight lines connecting each index\n let pointPosition = scale.getPointPosition(0, radius);\n ctx.moveTo(pointPosition.x, pointPosition.y);\n\n for (let i = 1; i < labelCount; i++) {\n pointPosition = scale.getPointPosition(i, radius);\n ctx.lineTo(pointPosition.x, pointPosition.y);\n }\n }\n}\n\nfunction drawRadiusLine(scale, gridLineOpts, radius, labelCount, borderOpts) {\n const ctx = scale.ctx;\n const circular = gridLineOpts.circular;\n\n const {color, lineWidth} = gridLineOpts;\n\n if ((!circular && !labelCount) || !color || !lineWidth || radius < 0) {\n return;\n }\n\n ctx.save();\n ctx.strokeStyle = color;\n ctx.lineWidth = lineWidth;\n ctx.setLineDash(borderOpts.dash);\n ctx.lineDashOffset = borderOpts.dashOffset;\n\n ctx.beginPath();\n pathRadiusLine(scale, radius, circular, labelCount);\n ctx.closePath();\n ctx.stroke();\n ctx.restore();\n}\n\nfunction createPointLabelContext(parent, index, label) {\n return createContext(parent, {\n label,\n index,\n type: 'pointLabel'\n });\n}\n\nexport default class RadialLinearScale extends LinearScaleBase {\n\n static id = 'radialLinear';\n\n /**\n * @type {any}\n */\n static defaults = {\n display: true,\n\n // Boolean - Whether to animate scaling the chart from the centre\n animate: true,\n position: 'chartArea',\n\n angleLines: {\n display: true,\n lineWidth: 1,\n borderDash: [],\n borderDashOffset: 0.0\n },\n\n grid: {\n circular: false\n },\n\n startAngle: 0,\n\n // label settings\n ticks: {\n // Boolean - Show a backdrop to the scale label\n showLabelBackdrop: true,\n\n callback: Ticks.formatters.numeric\n },\n\n pointLabels: {\n backdropColor: undefined,\n\n // Number - The backdrop padding above & below the label in pixels\n backdropPadding: 2,\n\n // Boolean - if true, show point labels\n display: true,\n\n // Number - Point label font size in pixels\n font: {\n size: 10\n },\n\n // Function - Used to convert point labels\n callback(label) {\n return label;\n },\n\n // Number - Additionl padding between scale and pointLabel\n padding: 5,\n\n // Boolean - if true, center point labels to slices in polar chart\n centerPointLabels: false\n }\n };\n\n static defaultRoutes = {\n 'angleLines.color': 'borderColor',\n 'pointLabels.color': 'color',\n 'ticks.color': 'color'\n };\n\n static descriptors = {\n angleLines: {\n _fallback: 'grid'\n }\n };\n\n constructor(cfg) {\n super(cfg);\n\n /** @type {number} */\n this.xCenter = undefined;\n /** @type {number} */\n this.yCenter = undefined;\n /** @type {number} */\n this.drawingArea = undefined;\n /** @type {string[]} */\n this._pointLabels = [];\n this._pointLabelItems = [];\n }\n\n setDimensions() {\n // Set the unconstrained dimension before label rotation\n const padding = this._padding = toPadding(getTickBackdropHeight(this.options) / 2);\n const w = this.width = this.maxWidth - padding.width;\n const h = this.height = this.maxHeight - padding.height;\n this.xCenter = Math.floor(this.left + w / 2 + padding.left);\n this.yCenter = Math.floor(this.top + h / 2 + padding.top);\n this.drawingArea = Math.floor(Math.min(w, h) / 2);\n }\n\n determineDataLimits() {\n const {min, max} = this.getMinMax(false);\n\n this.min = isFinite(min) && !isNaN(min) ? min : 0;\n this.max = isFinite(max) && !isNaN(max) ? max : 0;\n\n // Common base implementation to handle min, max, beginAtZero\n this.handleTickRangeOptions();\n }\n\n /**\n\t * Returns the maximum number of ticks based on the scale dimension\n\t * @protected\n\t */\n computeTickLimit() {\n return Math.ceil(this.drawingArea / getTickBackdropHeight(this.options));\n }\n\n generateTickLabels(ticks) {\n LinearScaleBase.prototype.generateTickLabels.call(this, ticks);\n\n // Point labels\n this._pointLabels = this.getLabels()\n .map((value, index) => {\n const label = callCallback(this.options.pointLabels.callback, [value, index], this);\n return label || label === 0 ? label : '';\n })\n .filter((v, i) => this.chart.getDataVisibility(i));\n }\n\n fit() {\n const opts = this.options;\n\n if (opts.display && opts.pointLabels.display) {\n fitWithPointLabels(this);\n } else {\n this.setCenterPoint(0, 0, 0, 0);\n }\n }\n\n setCenterPoint(leftMovement, rightMovement, topMovement, bottomMovement) {\n this.xCenter += Math.floor((leftMovement - rightMovement) / 2);\n this.yCenter += Math.floor((topMovement - bottomMovement) / 2);\n this.drawingArea -= Math.min(this.drawingArea / 2, Math.max(leftMovement, rightMovement, topMovement, bottomMovement));\n }\n\n getIndexAngle(index) {\n const angleMultiplier = TAU / (this._pointLabels.length || 1);\n const startAngle = this.options.startAngle || 0;\n\n return _normalizeAngle(index * angleMultiplier + toRadians(startAngle));\n }\n\n getDistanceFromCenterForValue(value) {\n if (isNullOrUndef(value)) {\n return NaN;\n }\n\n // Take into account half font size + the yPadding of the top value\n const scalingFactor = this.drawingArea / (this.max - this.min);\n if (this.options.reverse) {\n return (this.max - value) * scalingFactor;\n }\n return (value - this.min) * scalingFactor;\n }\n\n getValueForDistanceFromCenter(distance) {\n if (isNullOrUndef(distance)) {\n return NaN;\n }\n\n const scaledDistance = distance / (this.drawingArea / (this.max - this.min));\n return this.options.reverse ? this.max - scaledDistance : this.min + scaledDistance;\n }\n\n getPointLabelContext(index) {\n const pointLabels = this._pointLabels || [];\n\n if (index >= 0 && index < pointLabels.length) {\n const pointLabel = pointLabels[index];\n return createPointLabelContext(this.getContext(), index, pointLabel);\n }\n }\n\n getPointPosition(index, distanceFromCenter, additionalAngle = 0) {\n const angle = this.getIndexAngle(index) - HALF_PI + additionalAngle;\n return {\n x: Math.cos(angle) * distanceFromCenter + this.xCenter,\n y: Math.sin(angle) * distanceFromCenter + this.yCenter,\n angle\n };\n }\n\n getPointPositionForValue(index, value) {\n return this.getPointPosition(index, this.getDistanceFromCenterForValue(value));\n }\n\n getBasePosition(index) {\n return this.getPointPositionForValue(index || 0, this.getBaseValue());\n }\n\n getPointLabelPosition(index) {\n const {left, top, right, bottom} = this._pointLabelItems[index];\n return {\n left,\n top,\n right,\n bottom,\n };\n }\n\n /**\n\t * @protected\n\t */\n drawBackground() {\n const {backgroundColor, grid: {circular}} = this.options;\n if (backgroundColor) {\n const ctx = this.ctx;\n ctx.save();\n ctx.beginPath();\n pathRadiusLine(this, this.getDistanceFromCenterForValue(this._endValue), circular, this._pointLabels.length);\n ctx.closePath();\n ctx.fillStyle = backgroundColor;\n ctx.fill();\n ctx.restore();\n }\n }\n\n /**\n\t * @protected\n\t */\n drawGrid() {\n const ctx = this.ctx;\n const opts = this.options;\n const {angleLines, grid, border} = opts;\n const labelCount = this._pointLabels.length;\n\n let i, offset, position;\n\n if (opts.pointLabels.display) {\n drawPointLabels(this, labelCount);\n }\n\n if (grid.display) {\n this.ticks.forEach((tick, index) => {\n if (index !== 0 || (index === 0 && this.min < 0)) {\n offset = this.getDistanceFromCenterForValue(tick.value);\n const context = this.getContext(index);\n const optsAtIndex = grid.setContext(context);\n const optsAtIndexBorder = border.setContext(context);\n\n drawRadiusLine(this, optsAtIndex, offset, labelCount, optsAtIndexBorder);\n }\n });\n }\n\n if (angleLines.display) {\n ctx.save();\n\n for (i = labelCount - 1; i >= 0; i--) {\n const optsAtIndex = angleLines.setContext(this.getPointLabelContext(i));\n const {color, lineWidth} = optsAtIndex;\n\n if (!lineWidth || !color) {\n continue;\n }\n\n ctx.lineWidth = lineWidth;\n ctx.strokeStyle = color;\n\n ctx.setLineDash(optsAtIndex.borderDash);\n ctx.lineDashOffset = optsAtIndex.borderDashOffset;\n\n offset = this.getDistanceFromCenterForValue(opts.reverse ? this.min : this.max);\n position = this.getPointPosition(i, offset);\n ctx.beginPath();\n ctx.moveTo(this.xCenter, this.yCenter);\n ctx.lineTo(position.x, position.y);\n ctx.stroke();\n }\n\n ctx.restore();\n }\n }\n\n /**\n\t * @protected\n\t */\n drawBorder() {}\n\n /**\n\t * @protected\n\t */\n drawLabels() {\n const ctx = this.ctx;\n const opts = this.options;\n const tickOpts = opts.ticks;\n\n if (!tickOpts.display) {\n return;\n }\n\n const startAngle = this.getIndexAngle(0);\n let offset, width;\n\n ctx.save();\n ctx.translate(this.xCenter, this.yCenter);\n ctx.rotate(startAngle);\n ctx.textAlign = 'center';\n ctx.textBaseline = 'middle';\n\n this.ticks.forEach((tick, index) => {\n if ((index === 0 && this.min >= 0) && !opts.reverse) {\n return;\n }\n\n const optsAtIndex = tickOpts.setContext(this.getContext(index));\n const tickFont = toFont(optsAtIndex.font);\n offset = this.getDistanceFromCenterForValue(this.ticks[index].value);\n\n if (optsAtIndex.showLabelBackdrop) {\n ctx.font = tickFont.string;\n width = ctx.measureText(tick.label).width;\n ctx.fillStyle = optsAtIndex.backdropColor;\n\n const padding = toPadding(optsAtIndex.backdropPadding);\n ctx.fillRect(\n -width / 2 - padding.left,\n -offset - tickFont.size / 2 - padding.top,\n width + padding.width,\n tickFont.size + padding.height\n );\n }\n\n renderText(ctx, tick.label, 0, -offset, tickFont, {\n color: optsAtIndex.color,\n strokeColor: optsAtIndex.textStrokeColor,\n strokeWidth: optsAtIndex.textStrokeWidth,\n });\n });\n\n ctx.restore();\n }\n\n /**\n\t * @protected\n\t */\n drawTitle() {}\n}\n","import adapters from '../core/core.adapters.js';\nimport {callback as call, isFinite, isNullOrUndef, mergeIf, valueOrDefault} from '../helpers/helpers.core.js';\nimport {toRadians, isNumber, _limitValue} from '../helpers/helpers.math.js';\nimport Scale from '../core/core.scale.js';\nimport {_arrayUnique, _filterBetween, _lookup} from '../helpers/helpers.collection.js';\n\n/**\n * @typedef { import('../core/core.adapters.js').TimeUnit } Unit\n * @typedef {{common: boolean, size: number, steps?: number}} Interval\n * @typedef { import('../core/core.adapters.js').DateAdapter } DateAdapter\n */\n\n/**\n * @type {Object}\n */\nconst INTERVALS = {\n millisecond: {common: true, size: 1, steps: 1000},\n second: {common: true, size: 1000, steps: 60},\n minute: {common: true, size: 60000, steps: 60},\n hour: {common: true, size: 3600000, steps: 24},\n day: {common: true, size: 86400000, steps: 30},\n week: {common: false, size: 604800000, steps: 4},\n month: {common: true, size: 2.628e9, steps: 12},\n quarter: {common: false, size: 7.884e9, steps: 4},\n year: {common: true, size: 3.154e10}\n};\n\n/**\n * @type {Unit[]}\n */\nconst UNITS = /** @type Unit[] */ /* #__PURE__ */ (Object.keys(INTERVALS));\n\n/**\n * @param {number} a\n * @param {number} b\n */\nfunction sorter(a, b) {\n return a - b;\n}\n\n/**\n * @param {TimeScale} scale\n * @param {*} input\n * @return {number}\n */\nfunction parse(scale, input) {\n if (isNullOrUndef(input)) {\n return null;\n }\n\n const adapter = scale._adapter;\n const {parser, round, isoWeekday} = scale._parseOpts;\n let value = input;\n\n if (typeof parser === 'function') {\n value = parser(value);\n }\n\n // Only parse if it's not a timestamp already\n if (!isFinite(value)) {\n value = typeof parser === 'string'\n ? adapter.parse(value, /** @type {Unit} */ (parser))\n : adapter.parse(value);\n }\n\n if (value === null) {\n return null;\n }\n\n if (round) {\n value = round === 'week' && (isNumber(isoWeekday) || isoWeekday === true)\n ? adapter.startOf(value, 'isoWeek', isoWeekday)\n : adapter.startOf(value, round);\n }\n\n return +value;\n}\n\n/**\n * Figures out what unit results in an appropriate number of auto-generated ticks\n * @param {Unit} minUnit\n * @param {number} min\n * @param {number} max\n * @param {number} capacity\n * @return {object}\n */\nfunction determineUnitForAutoTicks(minUnit, min, max, capacity) {\n const ilen = UNITS.length;\n\n for (let i = UNITS.indexOf(minUnit); i < ilen - 1; ++i) {\n const interval = INTERVALS[UNITS[i]];\n const factor = interval.steps ? interval.steps : Number.MAX_SAFE_INTEGER;\n\n if (interval.common && Math.ceil((max - min) / (factor * interval.size)) <= capacity) {\n return UNITS[i];\n }\n }\n\n return UNITS[ilen - 1];\n}\n\n/**\n * Figures out what unit to format a set of ticks with\n * @param {TimeScale} scale\n * @param {number} numTicks\n * @param {Unit} minUnit\n * @param {number} min\n * @param {number} max\n * @return {Unit}\n */\nfunction determineUnitForFormatting(scale, numTicks, minUnit, min, max) {\n for (let i = UNITS.length - 1; i >= UNITS.indexOf(minUnit); i--) {\n const unit = UNITS[i];\n if (INTERVALS[unit].common && scale._adapter.diff(max, min, unit) >= numTicks - 1) {\n return unit;\n }\n }\n\n return UNITS[minUnit ? UNITS.indexOf(minUnit) : 0];\n}\n\n/**\n * @param {Unit} unit\n * @return {object}\n */\nfunction determineMajorUnit(unit) {\n for (let i = UNITS.indexOf(unit) + 1, ilen = UNITS.length; i < ilen; ++i) {\n if (INTERVALS[UNITS[i]].common) {\n return UNITS[i];\n }\n }\n}\n\n/**\n * @param {object} ticks\n * @param {number} time\n * @param {number[]} [timestamps] - if defined, snap to these timestamps\n */\nfunction addTick(ticks, time, timestamps) {\n if (!timestamps) {\n ticks[time] = true;\n } else if (timestamps.length) {\n const {lo, hi} = _lookup(timestamps, time);\n const timestamp = timestamps[lo] >= time ? timestamps[lo] : timestamps[hi];\n ticks[timestamp] = true;\n }\n}\n\n/**\n * @param {TimeScale} scale\n * @param {object[]} ticks\n * @param {object} map\n * @param {Unit} majorUnit\n * @return {object[]}\n */\nfunction setMajorTicks(scale, ticks, map, majorUnit) {\n const adapter = scale._adapter;\n const first = +adapter.startOf(ticks[0].value, majorUnit);\n const last = ticks[ticks.length - 1].value;\n let major, index;\n\n for (major = first; major <= last; major = +adapter.add(major, 1, majorUnit)) {\n index = map[major];\n if (index >= 0) {\n ticks[index].major = true;\n }\n }\n return ticks;\n}\n\n/**\n * @param {TimeScale} scale\n * @param {number[]} values\n * @param {Unit|undefined} [majorUnit]\n * @return {object[]}\n */\nfunction ticksFromTimestamps(scale, values, majorUnit) {\n const ticks = [];\n /** @type {Object} */\n const map = {};\n const ilen = values.length;\n let i, value;\n\n for (i = 0; i < ilen; ++i) {\n value = values[i];\n map[value] = i;\n\n ticks.push({\n value,\n major: false\n });\n }\n\n // We set the major ticks separately from the above loop because calling startOf for every tick\n // is expensive when there is a large number of ticks\n return (ilen === 0 || !majorUnit) ? ticks : setMajorTicks(scale, ticks, map, majorUnit);\n}\n\nexport default class TimeScale extends Scale {\n\n static id = 'time';\n\n /**\n * @type {any}\n */\n static defaults = {\n /**\n * Scale boundary strategy (bypassed by min/max time options)\n * - `data`: make sure data are fully visible, ticks outside are removed\n * - `ticks`: make sure ticks are fully visible, data outside are truncated\n * @see https://github.com/chartjs/Chart.js/pull/4556\n * @since 2.7.0\n */\n bounds: 'data',\n\n adapters: {},\n time: {\n parser: false, // false == a pattern string from or a custom callback that converts its argument to a timestamp\n unit: false, // false == automatic or override with week, month, year, etc.\n round: false, // none, or override with week, month, year, etc.\n isoWeekday: false, // override week start day\n minUnit: 'millisecond',\n displayFormats: {}\n },\n ticks: {\n /**\n * Ticks generation input values:\n * - 'auto': generates \"optimal\" ticks based on scale size and time options.\n * - 'data': generates ticks from data (including labels from data {t|x|y} objects).\n * - 'labels': generates ticks from user given `data.labels` values ONLY.\n * @see https://github.com/chartjs/Chart.js/pull/4507\n * @since 2.7.0\n */\n source: 'auto',\n\n callback: false,\n\n major: {\n enabled: false\n }\n }\n };\n\n /**\n\t * @param {object} props\n\t */\n constructor(props) {\n super(props);\n\n /** @type {{data: number[], labels: number[], all: number[]}} */\n this._cache = {\n data: [],\n labels: [],\n all: []\n };\n\n /** @type {Unit} */\n this._unit = 'day';\n /** @type {Unit=} */\n this._majorUnit = undefined;\n this._offsets = {};\n this._normalized = false;\n this._parseOpts = undefined;\n }\n\n init(scaleOpts, opts = {}) {\n const time = scaleOpts.time || (scaleOpts.time = {});\n /** @type {DateAdapter} */\n const adapter = this._adapter = new adapters._date(scaleOpts.adapters.date);\n\n adapter.init(opts);\n\n // Backward compatibility: before introducing adapter, `displayFormats` was\n // supposed to contain *all* unit/string pairs but this can't be resolved\n // when loading the scale (adapters are loaded afterward), so let's populate\n // missing formats on update\n mergeIf(time.displayFormats, adapter.formats());\n\n this._parseOpts = {\n parser: time.parser,\n round: time.round,\n isoWeekday: time.isoWeekday\n };\n\n super.init(scaleOpts);\n\n this._normalized = opts.normalized;\n }\n\n /**\n\t * @param {*} raw\n\t * @param {number?} [index]\n\t * @return {number}\n\t */\n parse(raw, index) { // eslint-disable-line no-unused-vars\n if (raw === undefined) {\n return null;\n }\n return parse(this, raw);\n }\n\n beforeLayout() {\n super.beforeLayout();\n this._cache = {\n data: [],\n labels: [],\n all: []\n };\n }\n\n determineDataLimits() {\n const options = this.options;\n const adapter = this._adapter;\n const unit = options.time.unit || 'day';\n // eslint-disable-next-line prefer-const\n let {min, max, minDefined, maxDefined} = this.getUserBounds();\n\n /**\n\t\t * @param {object} bounds\n\t\t */\n function _applyBounds(bounds) {\n if (!minDefined && !isNaN(bounds.min)) {\n min = Math.min(min, bounds.min);\n }\n if (!maxDefined && !isNaN(bounds.max)) {\n max = Math.max(max, bounds.max);\n }\n }\n\n // If we have user provided `min` and `max` labels / data bounds can be ignored\n if (!minDefined || !maxDefined) {\n // Labels are always considered, when user did not force bounds\n _applyBounds(this._getLabelBounds());\n\n // If `bounds` is `'ticks'` and `ticks.source` is `'labels'`,\n // data bounds are ignored (and don't need to be determined)\n if (options.bounds !== 'ticks' || options.ticks.source !== 'labels') {\n _applyBounds(this.getMinMax(false));\n }\n }\n\n min = isFinite(min) && !isNaN(min) ? min : +adapter.startOf(Date.now(), unit);\n max = isFinite(max) && !isNaN(max) ? max : +adapter.endOf(Date.now(), unit) + 1;\n\n // Make sure that max is strictly higher than min (required by the timeseries lookup table)\n this.min = Math.min(min, max - 1);\n this.max = Math.max(min + 1, max);\n }\n\n /**\n\t * @private\n\t */\n _getLabelBounds() {\n const arr = this.getLabelTimestamps();\n let min = Number.POSITIVE_INFINITY;\n let max = Number.NEGATIVE_INFINITY;\n\n if (arr.length) {\n min = arr[0];\n max = arr[arr.length - 1];\n }\n return {min, max};\n }\n\n /**\n\t * @return {object[]}\n\t */\n buildTicks() {\n const options = this.options;\n const timeOpts = options.time;\n const tickOpts = options.ticks;\n const timestamps = tickOpts.source === 'labels' ? this.getLabelTimestamps() : this._generate();\n\n if (options.bounds === 'ticks' && timestamps.length) {\n this.min = this._userMin || timestamps[0];\n this.max = this._userMax || timestamps[timestamps.length - 1];\n }\n\n const min = this.min;\n const max = this.max;\n\n const ticks = _filterBetween(timestamps, min, max);\n\n // PRIVATE\n // determineUnitForFormatting relies on the number of ticks so we don't use it when\n // autoSkip is enabled because we don't yet know what the final number of ticks will be\n this._unit = timeOpts.unit || (tickOpts.autoSkip\n ? determineUnitForAutoTicks(timeOpts.minUnit, this.min, this.max, this._getLabelCapacity(min))\n : determineUnitForFormatting(this, ticks.length, timeOpts.minUnit, this.min, this.max));\n this._majorUnit = !tickOpts.major.enabled || this._unit === 'year' ? undefined\n : determineMajorUnit(this._unit);\n this.initOffsets(timestamps);\n\n if (options.reverse) {\n ticks.reverse();\n }\n\n return ticksFromTimestamps(this, ticks, this._majorUnit);\n }\n\n afterAutoSkip() {\n // Offsets for bar charts need to be handled with the auto skipped\n // ticks. Once ticks have been skipped, we re-compute the offsets.\n if (this.options.offsetAfterAutoskip) {\n this.initOffsets(this.ticks.map(tick => +tick.value));\n }\n }\n\n /**\n\t * Returns the start and end offsets from edges in the form of {start, end}\n\t * where each value is a relative width to the scale and ranges between 0 and 1.\n\t * They add extra margins on the both sides by scaling down the original scale.\n\t * Offsets are added when the `offset` option is true.\n\t * @param {number[]} timestamps\n\t * @protected\n\t */\n initOffsets(timestamps = []) {\n let start = 0;\n let end = 0;\n let first, last;\n\n if (this.options.offset && timestamps.length) {\n first = this.getDecimalForValue(timestamps[0]);\n if (timestamps.length === 1) {\n start = 1 - first;\n } else {\n start = (this.getDecimalForValue(timestamps[1]) - first) / 2;\n }\n last = this.getDecimalForValue(timestamps[timestamps.length - 1]);\n if (timestamps.length === 1) {\n end = last;\n } else {\n end = (last - this.getDecimalForValue(timestamps[timestamps.length - 2])) / 2;\n }\n }\n const limit = timestamps.length < 3 ? 0.5 : 0.25;\n start = _limitValue(start, 0, limit);\n end = _limitValue(end, 0, limit);\n\n this._offsets = {start, end, factor: 1 / (start + 1 + end)};\n }\n\n /**\n\t * Generates a maximum of `capacity` timestamps between min and max, rounded to the\n\t * `minor` unit using the given scale time `options`.\n\t * Important: this method can return ticks outside the min and max range, it's the\n\t * responsibility of the calling code to clamp values if needed.\n\t * @protected\n\t */\n _generate() {\n const adapter = this._adapter;\n const min = this.min;\n const max = this.max;\n const options = this.options;\n const timeOpts = options.time;\n // @ts-ignore\n const minor = timeOpts.unit || determineUnitForAutoTicks(timeOpts.minUnit, min, max, this._getLabelCapacity(min));\n const stepSize = valueOrDefault(options.ticks.stepSize, 1);\n const weekday = minor === 'week' ? timeOpts.isoWeekday : false;\n const hasWeekday = isNumber(weekday) || weekday === true;\n const ticks = {};\n let first = min;\n let time, count;\n\n // For 'week' unit, handle the first day of week option\n if (hasWeekday) {\n first = +adapter.startOf(first, 'isoWeek', weekday);\n }\n\n // Align first ticks on unit\n first = +adapter.startOf(first, hasWeekday ? 'day' : minor);\n\n // Prevent browser from freezing in case user options request millions of milliseconds\n if (adapter.diff(max, min, minor) > 100000 * stepSize) {\n throw new Error(min + ' and ' + max + ' are too far apart with stepSize of ' + stepSize + ' ' + minor);\n }\n\n const timestamps = options.ticks.source === 'data' && this.getDataTimestamps();\n for (time = first, count = 0; time < max; time = +adapter.add(time, stepSize, minor), count++) {\n addTick(ticks, time, timestamps);\n }\n\n if (time === max || options.bounds === 'ticks' || count === 1) {\n addTick(ticks, time, timestamps);\n }\n\n // @ts-ignore\n return Object.keys(ticks).sort(sorter).map(x => +x);\n }\n\n /**\n\t * @param {number} value\n\t * @return {string}\n\t */\n getLabelForValue(value) {\n const adapter = this._adapter;\n const timeOpts = this.options.time;\n\n if (timeOpts.tooltipFormat) {\n return adapter.format(value, timeOpts.tooltipFormat);\n }\n return adapter.format(value, timeOpts.displayFormats.datetime);\n }\n\n /**\n\t * @param {number} value\n\t * @param {string|undefined} format\n\t * @return {string}\n\t */\n format(value, format) {\n const options = this.options;\n const formats = options.time.displayFormats;\n const unit = this._unit;\n const fmt = format || formats[unit];\n return this._adapter.format(value, fmt);\n }\n\n /**\n\t * Function to format an individual tick mark\n\t * @param {number} time\n\t * @param {number} index\n\t * @param {object[]} ticks\n\t * @param {string|undefined} [format]\n\t * @return {string}\n\t * @private\n\t */\n _tickFormatFunction(time, index, ticks, format) {\n const options = this.options;\n const formatter = options.ticks.callback;\n\n if (formatter) {\n return call(formatter, [time, index, ticks], this);\n }\n\n const formats = options.time.displayFormats;\n const unit = this._unit;\n const majorUnit = this._majorUnit;\n const minorFormat = unit && formats[unit];\n const majorFormat = majorUnit && formats[majorUnit];\n const tick = ticks[index];\n const major = majorUnit && majorFormat && tick && tick.major;\n\n return this._adapter.format(time, format || (major ? majorFormat : minorFormat));\n }\n\n /**\n\t * @param {object[]} ticks\n\t */\n generateTickLabels(ticks) {\n let i, ilen, tick;\n\n for (i = 0, ilen = ticks.length; i < ilen; ++i) {\n tick = ticks[i];\n tick.label = this._tickFormatFunction(tick.value, i, ticks);\n }\n }\n\n /**\n\t * @param {number} value - Milliseconds since epoch (1 January 1970 00:00:00 UTC)\n\t * @return {number}\n\t */\n getDecimalForValue(value) {\n return value === null ? NaN : (value - this.min) / (this.max - this.min);\n }\n\n /**\n\t * @param {number} value - Milliseconds since epoch (1 January 1970 00:00:00 UTC)\n\t * @return {number}\n\t */\n getPixelForValue(value) {\n const offsets = this._offsets;\n const pos = this.getDecimalForValue(value);\n return this.getPixelForDecimal((offsets.start + pos) * offsets.factor);\n }\n\n /**\n\t * @param {number} pixel\n\t * @return {number}\n\t */\n getValueForPixel(pixel) {\n const offsets = this._offsets;\n const pos = this.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n return this.min + pos * (this.max - this.min);\n }\n\n /**\n\t * @param {string} label\n\t * @return {{w:number, h:number}}\n\t * @private\n\t */\n _getLabelSize(label) {\n const ticksOpts = this.options.ticks;\n const tickLabelWidth = this.ctx.measureText(label).width;\n const angle = toRadians(this.isHorizontal() ? ticksOpts.maxRotation : ticksOpts.minRotation);\n const cosRotation = Math.cos(angle);\n const sinRotation = Math.sin(angle);\n const tickFontSize = this._resolveTickFontOptions(0).size;\n\n return {\n w: (tickLabelWidth * cosRotation) + (tickFontSize * sinRotation),\n h: (tickLabelWidth * sinRotation) + (tickFontSize * cosRotation)\n };\n }\n\n /**\n\t * @param {number} exampleTime\n\t * @return {number}\n\t * @private\n\t */\n _getLabelCapacity(exampleTime) {\n const timeOpts = this.options.time;\n const displayFormats = timeOpts.displayFormats;\n\n // pick the longest format (milliseconds) for guesstimation\n const format = displayFormats[timeOpts.unit] || displayFormats.millisecond;\n const exampleLabel = this._tickFormatFunction(exampleTime, 0, ticksFromTimestamps(this, [exampleTime], this._majorUnit), format);\n const size = this._getLabelSize(exampleLabel);\n // subtract 1 - if offset then there's one less label than tick\n // if not offset then one half label padding is added to each end leaving room for one less label\n const capacity = Math.floor(this.isHorizontal() ? this.width / size.w : this.height / size.h) - 1;\n return capacity > 0 ? capacity : 1;\n }\n\n /**\n\t * @protected\n\t */\n getDataTimestamps() {\n let timestamps = this._cache.data || [];\n let i, ilen;\n\n if (timestamps.length) {\n return timestamps;\n }\n\n const metas = this.getMatchingVisibleMetas();\n\n if (this._normalized && metas.length) {\n return (this._cache.data = metas[0].controller.getAllParsedValues(this));\n }\n\n for (i = 0, ilen = metas.length; i < ilen; ++i) {\n timestamps = timestamps.concat(metas[i].controller.getAllParsedValues(this));\n }\n\n return (this._cache.data = this.normalize(timestamps));\n }\n\n /**\n\t * @protected\n\t */\n getLabelTimestamps() {\n const timestamps = this._cache.labels || [];\n let i, ilen;\n\n if (timestamps.length) {\n return timestamps;\n }\n\n const labels = this.getLabels();\n for (i = 0, ilen = labels.length; i < ilen; ++i) {\n timestamps.push(parse(this, labels[i]));\n }\n\n return (this._cache.labels = this._normalized ? timestamps : this.normalize(timestamps));\n }\n\n /**\n\t * @param {number[]} values\n\t * @protected\n\t */\n normalize(values) {\n // It seems to be somewhat faster to do sorting first\n return _arrayUnique(values.sort(sorter));\n }\n}\n","import type { MouseEvent } from 'react';\nimport type {\n ChartType,\n ChartData,\n DefaultDataPoint,\n ChartDataset,\n ChartOptions,\n Chart,\n} from 'chart.js';\n\nimport type { ForwardedRef } from './types.js';\n\nconst defaultDatasetIdKey = 'label';\n\nexport function reforwardRef(ref: ForwardedRef, value: T) {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref) {\n ref.current = value;\n }\n}\n\nexport function setOptions<\n TType extends ChartType = ChartType,\n TData = DefaultDataPoint,\n TLabel = unknown\n>(chart: Chart, nextOptions: ChartOptions) {\n const options = chart.options;\n\n if (options && nextOptions) {\n Object.assign(options, nextOptions);\n }\n}\n\nexport function setLabels<\n TType extends ChartType = ChartType,\n TData = DefaultDataPoint,\n TLabel = unknown\n>(\n currentData: ChartData,\n nextLabels: TLabel[] | undefined\n) {\n currentData.labels = nextLabels;\n}\n\nexport function setDatasets<\n TType extends ChartType = ChartType,\n TData = DefaultDataPoint,\n TLabel = unknown\n>(\n currentData: ChartData,\n nextDatasets: ChartDataset[],\n datasetIdKey = defaultDatasetIdKey\n) {\n const addedDatasets: ChartDataset[] = [];\n\n currentData.datasets = nextDatasets.map(\n (nextDataset: Record) => {\n // given the new set, find it's current match\n const currentDataset = currentData.datasets.find(\n (dataset: Record) =>\n dataset[datasetIdKey] === nextDataset[datasetIdKey]\n );\n\n // There is no original to update, so simply add new one\n if (\n !currentDataset ||\n !nextDataset.data ||\n addedDatasets.includes(currentDataset)\n ) {\n return { ...nextDataset } as ChartDataset;\n }\n\n addedDatasets.push(currentDataset);\n\n Object.assign(currentDataset, nextDataset);\n\n return currentDataset;\n }\n );\n}\n\nexport function cloneData<\n TType extends ChartType = ChartType,\n TData = DefaultDataPoint,\n TLabel = unknown\n>(data: ChartData, datasetIdKey = defaultDatasetIdKey) {\n const nextData: ChartData = {\n labels: [],\n datasets: [],\n };\n\n setLabels(nextData, data.labels);\n setDatasets(nextData, data.datasets, datasetIdKey);\n\n return nextData;\n}\n\n/**\n * Get dataset from mouse click event\n * @param chart - Chart.js instance\n * @param event - Mouse click event\n * @returns Dataset\n */\nexport function getDatasetAtEvent(\n chart: Chart,\n event: MouseEvent\n) {\n return chart.getElementsAtEventForMode(\n event.nativeEvent,\n 'dataset',\n { intersect: true },\n false\n );\n}\n\n/**\n * Get single dataset element from mouse click event\n * @param chart - Chart.js instance\n * @param event - Mouse click event\n * @returns Dataset\n */\nexport function getElementAtEvent(\n chart: Chart,\n event: MouseEvent\n) {\n return chart.getElementsAtEventForMode(\n event.nativeEvent,\n 'nearest',\n { intersect: true },\n false\n );\n}\n\n/**\n * Get all dataset elements from mouse click event\n * @param chart - Chart.js instance\n * @param event - Mouse click event\n * @returns Dataset\n */\nexport function getElementsAtEvent(\n chart: Chart,\n event: MouseEvent\n) {\n return chart.getElementsAtEventForMode(\n event.nativeEvent,\n 'index',\n { intersect: true },\n false\n );\n}\n","import React, { useEffect, useRef, forwardRef } from 'react';\nimport { Chart as ChartJS } from 'chart.js';\nimport type { ChartType, DefaultDataPoint } from 'chart.js';\n\nimport type { ForwardedRef, ChartProps, BaseChartComponent } from './types.js';\nimport {\n reforwardRef,\n cloneData,\n setOptions,\n setLabels,\n setDatasets,\n} from './utils.js';\n\nfunction ChartComponent<\n TType extends ChartType = ChartType,\n TData = DefaultDataPoint,\n TLabel = unknown\n>(\n props: ChartProps,\n ref: ForwardedRef>\n) {\n const {\n height = 150,\n width = 300,\n redraw = false,\n datasetIdKey,\n type,\n data,\n options,\n plugins = [],\n fallbackContent,\n updateMode,\n ...canvasProps\n } = props as ChartProps;\n const canvasRef = useRef(null);\n const chartRef = useRef();\n\n const renderChart = () => {\n if (!canvasRef.current) return;\n\n chartRef.current = new ChartJS(canvasRef.current, {\n type,\n data: cloneData(data, datasetIdKey),\n options: options && { ...options },\n plugins,\n });\n\n reforwardRef(ref, chartRef.current);\n };\n\n const destroyChart = () => {\n reforwardRef(ref, null);\n\n if (chartRef.current) {\n chartRef.current.destroy();\n chartRef.current = null;\n }\n };\n\n useEffect(() => {\n if (!redraw && chartRef.current && options) {\n setOptions(chartRef.current, options);\n }\n }, [redraw, options]);\n\n useEffect(() => {\n if (!redraw && chartRef.current) {\n setLabels(chartRef.current.config.data, data.labels);\n }\n }, [redraw, data.labels]);\n\n useEffect(() => {\n if (!redraw && chartRef.current && data.datasets) {\n setDatasets(chartRef.current.config.data, data.datasets, datasetIdKey);\n }\n }, [redraw, data.datasets]);\n\n useEffect(() => {\n if (!chartRef.current) return;\n\n if (redraw) {\n destroyChart();\n setTimeout(renderChart);\n } else {\n chartRef.current.update(updateMode);\n }\n }, [redraw, options, data.labels, data.datasets, updateMode]);\n\n useEffect(() => {\n if (!chartRef.current) return;\n\n destroyChart();\n setTimeout(renderChart);\n }, [type]);\n\n useEffect(() => {\n renderChart();\n\n return () => destroyChart();\n }, []);\n\n return (\n \n {fallbackContent}\n \n );\n}\n\nexport const Chart = forwardRef(ChartComponent) as BaseChartComponent;\n","import React, { forwardRef } from 'react';\nimport {\n Chart as ChartJS,\n LineController,\n BarController,\n RadarController,\n DoughnutController,\n PolarAreaController,\n BubbleController,\n PieController,\n ScatterController,\n} from 'chart.js';\nimport type { ChartType, ChartComponentLike } from 'chart.js';\n\nimport type {\n ChartProps,\n ChartJSOrUndefined,\n TypedChartComponent,\n} from './types.js';\nimport { Chart } from './chart.js';\n\nfunction createTypedChart(\n type: T,\n registerables: ChartComponentLike\n) {\n ChartJS.register(registerables);\n\n return forwardRef, Omit, 'type'>>(\n (props, ref) => \n ) as TypedChartComponent;\n}\n\nexport const Line = /* #__PURE__ */ createTypedChart('line', LineController);\n\nexport const Bar = /* #__PURE__ */ createTypedChart('bar', BarController);\n\nexport const Radar = /* #__PURE__ */ createTypedChart('radar', RadarController);\n\nexport const Doughnut = /* #__PURE__ */ createTypedChart(\n 'doughnut',\n DoughnutController\n);\n\nexport const PolarArea = /* #__PURE__ */ createTypedChart(\n 'polarArea',\n PolarAreaController\n);\n\nexport const Bubble = /* #__PURE__ */ createTypedChart(\n 'bubble',\n BubbleController\n);\n\nexport const Pie = /* #__PURE__ */ createTypedChart('pie', PieController);\n\nexport const Scatter = /* #__PURE__ */ createTypedChart(\n 'scatter',\n ScatterController\n);\n","function easeInOutSin(time) {\n return (1 + Math.sin(Math.PI * time - Math.PI / 2)) / 2;\n}\nexport default function animate(property, element, to, options = {}, cb = () => {}) {\n const {\n ease = easeInOutSin,\n duration = 300 // standard\n } = options;\n let start = null;\n const from = element[property];\n let cancelled = false;\n const cancel = () => {\n cancelled = true;\n };\n const step = timestamp => {\n if (cancelled) {\n cb(new Error('Animation cancelled'));\n return;\n }\n if (start === null) {\n start = timestamp;\n }\n const time = Math.min(1, (timestamp - start) / duration);\n element[property] = ease(time) * (to - from) + from;\n if (time >= 1) {\n requestAnimationFrame(() => {\n cb(null);\n });\n return;\n }\n requestAnimationFrame(step);\n };\n if (from === to) {\n cb(new Error('Element already at target position'));\n return cancel;\n }\n requestAnimationFrame(step);\n return cancel;\n}","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport debounce from \"../utils/debounce.js\";\nimport { ownerWindow, unstable_useEnhancedEffect as useEnhancedEffect } from \"../utils/index.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst styles = {\n width: 99,\n height: 99,\n position: 'absolute',\n top: -9999,\n overflow: 'scroll'\n};\n\n/**\n * @ignore - internal component.\n * The component originates from https://github.com/STORIS/react-scrollbar-size.\n * It has been moved into the core in order to minimize the bundle size.\n */\nexport default function ScrollbarSize(props) {\n const {\n onChange,\n ...other\n } = props;\n const scrollbarHeight = React.useRef();\n const nodeRef = React.useRef(null);\n const setMeasurements = () => {\n scrollbarHeight.current = nodeRef.current.offsetHeight - nodeRef.current.clientHeight;\n };\n useEnhancedEffect(() => {\n const handleResize = debounce(() => {\n const prevHeight = scrollbarHeight.current;\n setMeasurements();\n if (prevHeight !== scrollbarHeight.current) {\n onChange(scrollbarHeight.current);\n }\n });\n const containerWindow = ownerWindow(nodeRef.current);\n containerWindow.addEventListener('resize', handleResize);\n return () => {\n handleResize.clear();\n containerWindow.removeEventListener('resize', handleResize);\n };\n }, [onChange]);\n React.useEffect(() => {\n setMeasurements();\n onChange(scrollbarHeight.current);\n }, [onChange]);\n return /*#__PURE__*/_jsx(\"div\", {\n style: styles,\n ref: nodeRef,\n ...other\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? ScrollbarSize.propTypes = {\n onChange: PropTypes.func.isRequired\n} : void 0;","'use client';\n\nimport * as React from 'react';\nimport createSvgIcon from \"../../utils/createSvgIcon.js\";\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M15.41 16.09l-4.58-4.59 4.58-4.59L14 5.5l-6 6 6 6z\"\n}), 'KeyboardArrowLeft');","'use client';\n\nimport * as React from 'react';\nimport createSvgIcon from \"../../utils/createSvgIcon.js\";\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M8.59 16.34l4.58-4.59-4.58-4.59L10 5.75l6 6-6 6z\"\n}), 'KeyboardArrowRight');","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getTabScrollButtonUtilityClass(slot) {\n return generateUtilityClass('MuiTabScrollButton', slot);\n}\nconst tabScrollButtonClasses = generateUtilityClasses('MuiTabScrollButton', ['root', 'vertical', 'horizontal', 'disabled']);\nexport default tabScrollButtonClasses;","'use client';\n\n/* eslint-disable jsx-a11y/aria-role */\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { useRtl } from '@mui/system/RtlProvider';\nimport useSlotProps from '@mui/utils/useSlotProps';\nimport KeyboardArrowLeft from \"../internal/svg-icons/KeyboardArrowLeft.js\";\nimport KeyboardArrowRight from \"../internal/svg-icons/KeyboardArrowRight.js\";\nimport ButtonBase from \"../ButtonBase/index.js\";\nimport { styled } from \"../zero-styled/index.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport tabScrollButtonClasses, { getTabScrollButtonUtilityClass } from \"./tabScrollButtonClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n orientation,\n disabled\n } = ownerState;\n const slots = {\n root: ['root', orientation, disabled && 'disabled']\n };\n return composeClasses(slots, getTabScrollButtonUtilityClass, classes);\n};\nconst TabScrollButtonRoot = styled(ButtonBase, {\n name: 'MuiTabScrollButton',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.orientation && styles[ownerState.orientation]];\n }\n})({\n width: 40,\n flexShrink: 0,\n opacity: 0.8,\n [`&.${tabScrollButtonClasses.disabled}`]: {\n opacity: 0\n },\n variants: [{\n props: {\n orientation: 'vertical'\n },\n style: {\n width: '100%',\n height: 40,\n '& svg': {\n transform: 'var(--TabScrollButton-svgRotate)'\n }\n }\n }]\n});\nconst TabScrollButton = /*#__PURE__*/React.forwardRef(function TabScrollButton(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiTabScrollButton'\n });\n const {\n className,\n slots = {},\n slotProps = {},\n direction,\n orientation,\n disabled,\n ...other\n } = props;\n const isRtl = useRtl();\n const ownerState = {\n isRtl,\n ...props\n };\n const classes = useUtilityClasses(ownerState);\n const StartButtonIcon = slots.StartScrollButtonIcon ?? KeyboardArrowLeft;\n const EndButtonIcon = slots.EndScrollButtonIcon ?? KeyboardArrowRight;\n const startButtonIconProps = useSlotProps({\n elementType: StartButtonIcon,\n externalSlotProps: slotProps.startScrollButtonIcon,\n additionalProps: {\n fontSize: 'small'\n },\n ownerState\n });\n const endButtonIconProps = useSlotProps({\n elementType: EndButtonIcon,\n externalSlotProps: slotProps.endScrollButtonIcon,\n additionalProps: {\n fontSize: 'small'\n },\n ownerState\n });\n return /*#__PURE__*/_jsx(TabScrollButtonRoot, {\n component: \"div\",\n className: clsx(classes.root, className),\n ref: ref,\n role: null,\n ownerState: ownerState,\n tabIndex: null,\n ...other,\n style: {\n ...other.style,\n ...(orientation === 'vertical' && {\n '--TabScrollButton-svgRotate': `rotate(${isRtl ? -90 : 90}deg)`\n })\n },\n children: direction === 'left' ? /*#__PURE__*/_jsx(StartButtonIcon, {\n ...startButtonIconProps\n }) : /*#__PURE__*/_jsx(EndButtonIcon, {\n ...endButtonIconProps\n })\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? TabScrollButton.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The direction the button should indicate.\n */\n direction: PropTypes.oneOf(['left', 'right']).isRequired,\n /**\n * If `true`, the component is disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * The component orientation (layout flow direction).\n */\n orientation: PropTypes.oneOf(['horizontal', 'vertical']).isRequired,\n /**\n * The extra props for the slot components.\n * You can override the existing props or add new ones.\n * @default {}\n */\n slotProps: PropTypes.shape({\n endScrollButtonIcon: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n startScrollButtonIcon: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The components used for each slot inside.\n * @default {}\n */\n slots: PropTypes.shape({\n EndScrollButtonIcon: PropTypes.elementType,\n StartScrollButtonIcon: PropTypes.elementType\n }),\n /**\n * @ignore\n */\n style: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default TabScrollButton;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getTabsUtilityClass(slot) {\n return generateUtilityClass('MuiTabs', slot);\n}\nconst tabsClasses = generateUtilityClasses('MuiTabs', ['root', 'vertical', 'flexContainer', 'flexContainerVertical', 'centered', 'scroller', 'fixed', 'scrollableX', 'scrollableY', 'hideScrollbar', 'scrollButtons', 'scrollButtonsHideMobile', 'indicator']);\nexport default tabsClasses;","'use client';\n\nimport * as React from 'react';\nimport { isFragment } from 'react-is';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport refType from '@mui/utils/refType';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { useRtl } from '@mui/system/RtlProvider';\nimport useSlotProps from '@mui/utils/useSlotProps';\nimport { styled, useTheme } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport debounce from \"../utils/debounce.js\";\nimport animate from \"../internal/animate.js\";\nimport ScrollbarSize from \"./ScrollbarSize.js\";\nimport TabScrollButton from \"../TabScrollButton/index.js\";\nimport useEventCallback from \"../utils/useEventCallback.js\";\nimport tabsClasses, { getTabsUtilityClass } from \"./tabsClasses.js\";\nimport ownerDocument from \"../utils/ownerDocument.js\";\nimport ownerWindow from \"../utils/ownerWindow.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst nextItem = (list, item) => {\n if (list === item) {\n return list.firstChild;\n }\n if (item && item.nextElementSibling) {\n return item.nextElementSibling;\n }\n return list.firstChild;\n};\nconst previousItem = (list, item) => {\n if (list === item) {\n return list.lastChild;\n }\n if (item && item.previousElementSibling) {\n return item.previousElementSibling;\n }\n return list.lastChild;\n};\nconst moveFocus = (list, currentFocus, traversalFunction) => {\n let wrappedOnce = false;\n let nextFocus = traversalFunction(list, currentFocus);\n while (nextFocus) {\n // Prevent infinite loop.\n if (nextFocus === list.firstChild) {\n if (wrappedOnce) {\n return;\n }\n wrappedOnce = true;\n }\n\n // Same logic as useAutocomplete.js\n const nextFocusDisabled = nextFocus.disabled || nextFocus.getAttribute('aria-disabled') === 'true';\n if (!nextFocus.hasAttribute('tabindex') || nextFocusDisabled) {\n // Move to the next element.\n nextFocus = traversalFunction(list, nextFocus);\n } else {\n nextFocus.focus();\n return;\n }\n }\n};\nconst useUtilityClasses = ownerState => {\n const {\n vertical,\n fixed,\n hideScrollbar,\n scrollableX,\n scrollableY,\n centered,\n scrollButtonsHideMobile,\n classes\n } = ownerState;\n const slots = {\n root: ['root', vertical && 'vertical'],\n scroller: ['scroller', fixed && 'fixed', hideScrollbar && 'hideScrollbar', scrollableX && 'scrollableX', scrollableY && 'scrollableY'],\n flexContainer: ['flexContainer', vertical && 'flexContainerVertical', centered && 'centered'],\n indicator: ['indicator'],\n scrollButtons: ['scrollButtons', scrollButtonsHideMobile && 'scrollButtonsHideMobile'],\n scrollableX: [scrollableX && 'scrollableX'],\n hideScrollbar: [hideScrollbar && 'hideScrollbar']\n };\n return composeClasses(slots, getTabsUtilityClass, classes);\n};\nconst TabsRoot = styled('div', {\n name: 'MuiTabs',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [{\n [`& .${tabsClasses.scrollButtons}`]: styles.scrollButtons\n }, {\n [`& .${tabsClasses.scrollButtons}`]: ownerState.scrollButtonsHideMobile && styles.scrollButtonsHideMobile\n }, styles.root, ownerState.vertical && styles.vertical];\n }\n})(memoTheme(({\n theme\n}) => ({\n overflow: 'hidden',\n minHeight: 48,\n // Add iOS momentum scrolling for iOS < 13.0\n WebkitOverflowScrolling: 'touch',\n display: 'flex',\n variants: [{\n props: ({\n ownerState\n }) => ownerState.vertical,\n style: {\n flexDirection: 'column'\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.scrollButtonsHideMobile,\n style: {\n [`& .${tabsClasses.scrollButtons}`]: {\n [theme.breakpoints.down('sm')]: {\n display: 'none'\n }\n }\n }\n }]\n})));\nconst TabsScroller = styled('div', {\n name: 'MuiTabs',\n slot: 'Scroller',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.scroller, ownerState.fixed && styles.fixed, ownerState.hideScrollbar && styles.hideScrollbar, ownerState.scrollableX && styles.scrollableX, ownerState.scrollableY && styles.scrollableY];\n }\n})({\n position: 'relative',\n display: 'inline-block',\n flex: '1 1 auto',\n whiteSpace: 'nowrap',\n variants: [{\n props: ({\n ownerState\n }) => ownerState.fixed,\n style: {\n overflowX: 'hidden',\n width: '100%'\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.hideScrollbar,\n style: {\n // Hide dimensionless scrollbar on macOS\n scrollbarWidth: 'none',\n // Firefox\n '&::-webkit-scrollbar': {\n display: 'none' // Safari + Chrome\n }\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.scrollableX,\n style: {\n overflowX: 'auto',\n overflowY: 'hidden'\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.scrollableY,\n style: {\n overflowY: 'auto',\n overflowX: 'hidden'\n }\n }]\n});\nconst FlexContainer = styled('div', {\n name: 'MuiTabs',\n slot: 'FlexContainer',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.flexContainer, ownerState.vertical && styles.flexContainerVertical, ownerState.centered && styles.centered];\n }\n})({\n display: 'flex',\n variants: [{\n props: ({\n ownerState\n }) => ownerState.vertical,\n style: {\n flexDirection: 'column'\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.centered,\n style: {\n justifyContent: 'center'\n }\n }]\n});\nconst TabsIndicator = styled('span', {\n name: 'MuiTabs',\n slot: 'Indicator',\n overridesResolver: (props, styles) => styles.indicator\n})(memoTheme(({\n theme\n}) => ({\n position: 'absolute',\n height: 2,\n bottom: 0,\n width: '100%',\n transition: theme.transitions.create(),\n variants: [{\n props: {\n indicatorColor: 'primary'\n },\n style: {\n backgroundColor: (theme.vars || theme).palette.primary.main\n }\n }, {\n props: {\n indicatorColor: 'secondary'\n },\n style: {\n backgroundColor: (theme.vars || theme).palette.secondary.main\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.vertical,\n style: {\n height: '100%',\n width: 2,\n right: 0\n }\n }]\n})));\nconst TabsScrollbarSize = styled(ScrollbarSize)({\n overflowX: 'auto',\n overflowY: 'hidden',\n // Hide dimensionless scrollbar on macOS\n scrollbarWidth: 'none',\n // Firefox\n '&::-webkit-scrollbar': {\n display: 'none' // Safari + Chrome\n }\n});\nconst defaultIndicatorStyle = {};\nlet warnedOnceTabPresent = false;\nconst Tabs = /*#__PURE__*/React.forwardRef(function Tabs(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiTabs'\n });\n const theme = useTheme();\n const isRtl = useRtl();\n const {\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n action,\n centered = false,\n children: childrenProp,\n className,\n component = 'div',\n allowScrollButtonsMobile = false,\n indicatorColor = 'primary',\n onChange,\n orientation = 'horizontal',\n ScrollButtonComponent = TabScrollButton,\n scrollButtons = 'auto',\n selectionFollowsFocus,\n slots = {},\n slotProps = {},\n TabIndicatorProps = {},\n TabScrollButtonProps = {},\n textColor = 'primary',\n value,\n variant = 'standard',\n visibleScrollbar = false,\n ...other\n } = props;\n const scrollable = variant === 'scrollable';\n const vertical = orientation === 'vertical';\n const scrollStart = vertical ? 'scrollTop' : 'scrollLeft';\n const start = vertical ? 'top' : 'left';\n const end = vertical ? 'bottom' : 'right';\n const clientSize = vertical ? 'clientHeight' : 'clientWidth';\n const size = vertical ? 'height' : 'width';\n const ownerState = {\n ...props,\n component,\n allowScrollButtonsMobile,\n indicatorColor,\n orientation,\n vertical,\n scrollButtons,\n textColor,\n variant,\n visibleScrollbar,\n fixed: !scrollable,\n hideScrollbar: scrollable && !visibleScrollbar,\n scrollableX: scrollable && !vertical,\n scrollableY: scrollable && vertical,\n centered: centered && !scrollable,\n scrollButtonsHideMobile: !allowScrollButtonsMobile\n };\n const classes = useUtilityClasses(ownerState);\n const startScrollButtonIconProps = useSlotProps({\n elementType: slots.StartScrollButtonIcon,\n externalSlotProps: slotProps.startScrollButtonIcon,\n ownerState\n });\n const endScrollButtonIconProps = useSlotProps({\n elementType: slots.EndScrollButtonIcon,\n externalSlotProps: slotProps.endScrollButtonIcon,\n ownerState\n });\n if (process.env.NODE_ENV !== 'production') {\n if (centered && scrollable) {\n console.error('MUI: You can not use the `centered={true}` and `variant=\"scrollable\"` properties ' + 'at the same time on a `Tabs` component.');\n }\n }\n const [mounted, setMounted] = React.useState(false);\n const [indicatorStyle, setIndicatorStyle] = React.useState(defaultIndicatorStyle);\n const [displayStartScroll, setDisplayStartScroll] = React.useState(false);\n const [displayEndScroll, setDisplayEndScroll] = React.useState(false);\n const [updateScrollObserver, setUpdateScrollObserver] = React.useState(false);\n const [scrollerStyle, setScrollerStyle] = React.useState({\n overflow: 'hidden',\n scrollbarWidth: 0\n });\n const valueToIndex = new Map();\n const tabsRef = React.useRef(null);\n const tabListRef = React.useRef(null);\n const getTabsMeta = () => {\n const tabsNode = tabsRef.current;\n let tabsMeta;\n if (tabsNode) {\n const rect = tabsNode.getBoundingClientRect();\n // create a new object with ClientRect class props + scrollLeft\n tabsMeta = {\n clientWidth: tabsNode.clientWidth,\n scrollLeft: tabsNode.scrollLeft,\n scrollTop: tabsNode.scrollTop,\n scrollWidth: tabsNode.scrollWidth,\n top: rect.top,\n bottom: rect.bottom,\n left: rect.left,\n right: rect.right\n };\n }\n let tabMeta;\n if (tabsNode && value !== false) {\n const children = tabListRef.current.children;\n if (children.length > 0) {\n const tab = children[valueToIndex.get(value)];\n if (process.env.NODE_ENV !== 'production') {\n if (!tab) {\n console.error([`MUI: The \\`value\\` provided to the Tabs component is invalid.`, `None of the Tabs' children match with \"${value}\".`, valueToIndex.keys ? `You can provide one of the following values: ${Array.from(valueToIndex.keys()).join(', ')}.` : null].join('\\n'));\n }\n }\n tabMeta = tab ? tab.getBoundingClientRect() : null;\n if (process.env.NODE_ENV !== 'production') {\n if (process.env.NODE_ENV !== 'test' && !warnedOnceTabPresent && tabMeta && tabMeta.width === 0 && tabMeta.height === 0 &&\n // if the whole Tabs component is hidden, don't warn\n tabsMeta.clientWidth !== 0) {\n tabsMeta = null;\n console.error(['MUI: The `value` provided to the Tabs component is invalid.', `The Tab with this \\`value\\` (\"${value}\") is not part of the document layout.`, \"Make sure the tab item is present in the document or that it's not `display: none`.\"].join('\\n'));\n warnedOnceTabPresent = true;\n }\n }\n }\n }\n return {\n tabsMeta,\n tabMeta\n };\n };\n const updateIndicatorState = useEventCallback(() => {\n const {\n tabsMeta,\n tabMeta\n } = getTabsMeta();\n let startValue = 0;\n let startIndicator;\n if (vertical) {\n startIndicator = 'top';\n if (tabMeta && tabsMeta) {\n startValue = tabMeta.top - tabsMeta.top + tabsMeta.scrollTop;\n }\n } else {\n startIndicator = isRtl ? 'right' : 'left';\n if (tabMeta && tabsMeta) {\n startValue = (isRtl ? -1 : 1) * (tabMeta[startIndicator] - tabsMeta[startIndicator] + tabsMeta.scrollLeft);\n }\n }\n const newIndicatorStyle = {\n [startIndicator]: startValue,\n // May be wrong until the font is loaded.\n [size]: tabMeta ? tabMeta[size] : 0\n };\n if (typeof indicatorStyle[startIndicator] !== 'number' || typeof indicatorStyle[size] !== 'number') {\n setIndicatorStyle(newIndicatorStyle);\n } else {\n const dStart = Math.abs(indicatorStyle[startIndicator] - newIndicatorStyle[startIndicator]);\n const dSize = Math.abs(indicatorStyle[size] - newIndicatorStyle[size]);\n if (dStart >= 1 || dSize >= 1) {\n setIndicatorStyle(newIndicatorStyle);\n }\n }\n });\n const scroll = (scrollValue, {\n animation = true\n } = {}) => {\n if (animation) {\n animate(scrollStart, tabsRef.current, scrollValue, {\n duration: theme.transitions.duration.standard\n });\n } else {\n tabsRef.current[scrollStart] = scrollValue;\n }\n };\n const moveTabsScroll = delta => {\n let scrollValue = tabsRef.current[scrollStart];\n if (vertical) {\n scrollValue += delta;\n } else {\n scrollValue += delta * (isRtl ? -1 : 1);\n }\n scroll(scrollValue);\n };\n const getScrollSize = () => {\n const containerSize = tabsRef.current[clientSize];\n let totalSize = 0;\n const children = Array.from(tabListRef.current.children);\n for (let i = 0; i < children.length; i += 1) {\n const tab = children[i];\n if (totalSize + tab[clientSize] > containerSize) {\n // If the first item is longer than the container size, then only scroll\n // by the container size.\n if (i === 0) {\n totalSize = containerSize;\n }\n break;\n }\n totalSize += tab[clientSize];\n }\n return totalSize;\n };\n const handleStartScrollClick = () => {\n moveTabsScroll(-1 * getScrollSize());\n };\n const handleEndScrollClick = () => {\n moveTabsScroll(getScrollSize());\n };\n\n // TODO Remove as browser support for hiding the scrollbar\n // with CSS improves.\n const handleScrollbarSizeChange = React.useCallback(scrollbarWidth => {\n setScrollerStyle({\n overflow: null,\n scrollbarWidth\n });\n }, []);\n const getConditionalElements = () => {\n const conditionalElements = {};\n conditionalElements.scrollbarSizeListener = scrollable ? /*#__PURE__*/_jsx(TabsScrollbarSize, {\n onChange: handleScrollbarSizeChange,\n className: clsx(classes.scrollableX, classes.hideScrollbar)\n }) : null;\n const scrollButtonsActive = displayStartScroll || displayEndScroll;\n const showScrollButtons = scrollable && (scrollButtons === 'auto' && scrollButtonsActive || scrollButtons === true);\n conditionalElements.scrollButtonStart = showScrollButtons ? /*#__PURE__*/_jsx(ScrollButtonComponent, {\n slots: {\n StartScrollButtonIcon: slots.StartScrollButtonIcon\n },\n slotProps: {\n startScrollButtonIcon: startScrollButtonIconProps\n },\n orientation: orientation,\n direction: isRtl ? 'right' : 'left',\n onClick: handleStartScrollClick,\n disabled: !displayStartScroll,\n ...TabScrollButtonProps,\n className: clsx(classes.scrollButtons, TabScrollButtonProps.className)\n }) : null;\n conditionalElements.scrollButtonEnd = showScrollButtons ? /*#__PURE__*/_jsx(ScrollButtonComponent, {\n slots: {\n EndScrollButtonIcon: slots.EndScrollButtonIcon\n },\n slotProps: {\n endScrollButtonIcon: endScrollButtonIconProps\n },\n orientation: orientation,\n direction: isRtl ? 'left' : 'right',\n onClick: handleEndScrollClick,\n disabled: !displayEndScroll,\n ...TabScrollButtonProps,\n className: clsx(classes.scrollButtons, TabScrollButtonProps.className)\n }) : null;\n return conditionalElements;\n };\n const scrollSelectedIntoView = useEventCallback(animation => {\n const {\n tabsMeta,\n tabMeta\n } = getTabsMeta();\n if (!tabMeta || !tabsMeta) {\n return;\n }\n if (tabMeta[start] < tabsMeta[start]) {\n // left side of button is out of view\n const nextScrollStart = tabsMeta[scrollStart] + (tabMeta[start] - tabsMeta[start]);\n scroll(nextScrollStart, {\n animation\n });\n } else if (tabMeta[end] > tabsMeta[end]) {\n // right side of button is out of view\n const nextScrollStart = tabsMeta[scrollStart] + (tabMeta[end] - tabsMeta[end]);\n scroll(nextScrollStart, {\n animation\n });\n }\n });\n const updateScrollButtonState = useEventCallback(() => {\n if (scrollable && scrollButtons !== false) {\n setUpdateScrollObserver(!updateScrollObserver);\n }\n });\n React.useEffect(() => {\n const handleResize = debounce(() => {\n // If the Tabs component is replaced by Suspense with a fallback, the last\n // ResizeObserver's handler that runs because of the change in the layout is trying to\n // access a dom node that is no longer there (as the fallback component is being shown instead).\n // See https://github.com/mui/material-ui/issues/33276\n // TODO: Add tests that will ensure the component is not failing when\n // replaced by Suspense with a fallback, once React is updated to version 18\n if (tabsRef.current) {\n updateIndicatorState();\n }\n });\n let resizeObserver;\n\n /**\n * @type {MutationCallback}\n */\n const handleMutation = records => {\n records.forEach(record => {\n record.removedNodes.forEach(item => {\n resizeObserver?.unobserve(item);\n });\n record.addedNodes.forEach(item => {\n resizeObserver?.observe(item);\n });\n });\n handleResize();\n updateScrollButtonState();\n };\n const win = ownerWindow(tabsRef.current);\n win.addEventListener('resize', handleResize);\n let mutationObserver;\n if (typeof ResizeObserver !== 'undefined') {\n resizeObserver = new ResizeObserver(handleResize);\n Array.from(tabListRef.current.children).forEach(child => {\n resizeObserver.observe(child);\n });\n }\n if (typeof MutationObserver !== 'undefined') {\n mutationObserver = new MutationObserver(handleMutation);\n mutationObserver.observe(tabListRef.current, {\n childList: true\n });\n }\n return () => {\n handleResize.clear();\n win.removeEventListener('resize', handleResize);\n mutationObserver?.disconnect();\n resizeObserver?.disconnect();\n };\n }, [updateIndicatorState, updateScrollButtonState]);\n\n /**\n * Toggle visibility of start and end scroll buttons\n * Using IntersectionObserver on first and last Tabs.\n */\n React.useEffect(() => {\n const tabListChildren = Array.from(tabListRef.current.children);\n const length = tabListChildren.length;\n if (typeof IntersectionObserver !== 'undefined' && length > 0 && scrollable && scrollButtons !== false) {\n const firstTab = tabListChildren[0];\n const lastTab = tabListChildren[length - 1];\n const observerOptions = {\n root: tabsRef.current,\n threshold: 0.99\n };\n const handleScrollButtonStart = entries => {\n setDisplayStartScroll(!entries[0].isIntersecting);\n };\n const firstObserver = new IntersectionObserver(handleScrollButtonStart, observerOptions);\n firstObserver.observe(firstTab);\n const handleScrollButtonEnd = entries => {\n setDisplayEndScroll(!entries[0].isIntersecting);\n };\n const lastObserver = new IntersectionObserver(handleScrollButtonEnd, observerOptions);\n lastObserver.observe(lastTab);\n return () => {\n firstObserver.disconnect();\n lastObserver.disconnect();\n };\n }\n return undefined;\n }, [scrollable, scrollButtons, updateScrollObserver, childrenProp?.length]);\n React.useEffect(() => {\n setMounted(true);\n }, []);\n React.useEffect(() => {\n updateIndicatorState();\n });\n React.useEffect(() => {\n // Don't animate on the first render.\n scrollSelectedIntoView(defaultIndicatorStyle !== indicatorStyle);\n }, [scrollSelectedIntoView, indicatorStyle]);\n React.useImperativeHandle(action, () => ({\n updateIndicator: updateIndicatorState,\n updateScrollButtons: updateScrollButtonState\n }), [updateIndicatorState, updateScrollButtonState]);\n const indicator = /*#__PURE__*/_jsx(TabsIndicator, {\n ...TabIndicatorProps,\n className: clsx(classes.indicator, TabIndicatorProps.className),\n ownerState: ownerState,\n style: {\n ...indicatorStyle,\n ...TabIndicatorProps.style\n }\n });\n let childIndex = 0;\n const children = React.Children.map(childrenProp, child => {\n if (! /*#__PURE__*/React.isValidElement(child)) {\n return null;\n }\n if (process.env.NODE_ENV !== 'production') {\n if (isFragment(child)) {\n console.error([\"MUI: The Tabs component doesn't accept a Fragment as a child.\", 'Consider providing an array instead.'].join('\\n'));\n }\n }\n const childValue = child.props.value === undefined ? childIndex : child.props.value;\n valueToIndex.set(childValue, childIndex);\n const selected = childValue === value;\n childIndex += 1;\n return /*#__PURE__*/React.cloneElement(child, {\n fullWidth: variant === 'fullWidth',\n indicator: selected && !mounted && indicator,\n selected,\n selectionFollowsFocus,\n onChange,\n textColor,\n value: childValue,\n ...(childIndex === 1 && value === false && !child.props.tabIndex ? {\n tabIndex: 0\n } : {})\n });\n });\n const handleKeyDown = event => {\n const list = tabListRef.current;\n const currentFocus = ownerDocument(list).activeElement;\n // Keyboard navigation assumes that [role=\"tab\"] are siblings\n // though we might warn in the future about nested, interactive elements\n // as a a11y violation\n const role = currentFocus.getAttribute('role');\n if (role !== 'tab') {\n return;\n }\n let previousItemKey = orientation === 'horizontal' ? 'ArrowLeft' : 'ArrowUp';\n let nextItemKey = orientation === 'horizontal' ? 'ArrowRight' : 'ArrowDown';\n if (orientation === 'horizontal' && isRtl) {\n // swap previousItemKey with nextItemKey\n previousItemKey = 'ArrowRight';\n nextItemKey = 'ArrowLeft';\n }\n switch (event.key) {\n case previousItemKey:\n event.preventDefault();\n moveFocus(list, currentFocus, previousItem);\n break;\n case nextItemKey:\n event.preventDefault();\n moveFocus(list, currentFocus, nextItem);\n break;\n case 'Home':\n event.preventDefault();\n moveFocus(list, null, nextItem);\n break;\n case 'End':\n event.preventDefault();\n moveFocus(list, null, previousItem);\n break;\n default:\n break;\n }\n };\n const conditionalElements = getConditionalElements();\n return /*#__PURE__*/_jsxs(TabsRoot, {\n className: clsx(classes.root, className),\n ownerState: ownerState,\n ref: ref,\n as: component,\n ...other,\n children: [conditionalElements.scrollButtonStart, conditionalElements.scrollbarSizeListener, /*#__PURE__*/_jsxs(TabsScroller, {\n className: classes.scroller,\n ownerState: ownerState,\n style: {\n overflow: scrollerStyle.overflow,\n [vertical ? `margin${isRtl ? 'Left' : 'Right'}` : 'marginBottom']: visibleScrollbar ? undefined : -scrollerStyle.scrollbarWidth\n },\n ref: tabsRef,\n children: [/*#__PURE__*/_jsx(FlexContainer, {\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-orientation\": orientation === 'vertical' ? 'vertical' : null,\n className: classes.flexContainer,\n ownerState: ownerState,\n onKeyDown: handleKeyDown,\n ref: tabListRef,\n role: \"tablist\",\n children: children\n }), mounted && indicator]\n }), conditionalElements.scrollButtonEnd]\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Tabs.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * Callback fired when the component mounts.\n * This is useful when you want to trigger an action programmatically.\n * It supports two actions: `updateIndicator()` and `updateScrollButtons()`\n *\n * @param {object} actions This object contains all possible actions\n * that can be triggered programmatically.\n */\n action: refType,\n /**\n * If `true`, the scroll buttons aren't forced hidden on mobile.\n * By default the scroll buttons are hidden on mobile and takes precedence over `scrollButtons`.\n * @default false\n */\n allowScrollButtonsMobile: PropTypes.bool,\n /**\n * The label for the Tabs as a string.\n */\n 'aria-label': PropTypes.string,\n /**\n * An id or list of ids separated by a space that label the Tabs.\n */\n 'aria-labelledby': PropTypes.string,\n /**\n * If `true`, the tabs are centered.\n * This prop is intended for large views.\n * @default false\n */\n centered: PropTypes.bool,\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * Determines the color of the indicator.\n * @default 'primary'\n */\n indicatorColor: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['primary', 'secondary']), PropTypes.string]),\n /**\n * Callback fired when the value changes.\n *\n * @param {React.SyntheticEvent} event The event source of the callback. **Warning**: This is a generic event not a change event.\n * @param {any} value We default to the index of the child (number)\n */\n onChange: PropTypes.func,\n /**\n * The component orientation (layout flow direction).\n * @default 'horizontal'\n */\n orientation: PropTypes.oneOf(['horizontal', 'vertical']),\n /**\n * The component used to render the scroll buttons.\n * @default TabScrollButton\n */\n ScrollButtonComponent: PropTypes.elementType,\n /**\n * Determine behavior of scroll buttons when tabs are set to scroll:\n *\n * - `auto` will only present them when not all the items are visible.\n * - `true` will always present them.\n * - `false` will never present them.\n *\n * By default the scroll buttons are hidden on mobile.\n * This behavior can be disabled with `allowScrollButtonsMobile`.\n * @default 'auto'\n */\n scrollButtons: PropTypes /* @typescript-to-proptypes-ignore */.oneOf(['auto', false, true]),\n /**\n * If `true` the selected tab changes on focus. Otherwise it only\n * changes on activation.\n */\n selectionFollowsFocus: PropTypes.bool,\n /**\n * The extra props for the slot components.\n * You can override the existing props or add new ones.\n * @default {}\n */\n slotProps: PropTypes.shape({\n endScrollButtonIcon: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n startScrollButtonIcon: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The components used for each slot inside.\n * @default {}\n */\n slots: PropTypes.shape({\n EndScrollButtonIcon: PropTypes.elementType,\n StartScrollButtonIcon: PropTypes.elementType\n }),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * Props applied to the tab indicator element.\n * @default {}\n */\n TabIndicatorProps: PropTypes.object,\n /**\n * Props applied to the [`TabScrollButton`](https://mui.com/material-ui/api/tab-scroll-button/) element.\n * @default {}\n */\n TabScrollButtonProps: PropTypes.object,\n /**\n * Determines the color of the `Tab`.\n * @default 'primary'\n */\n textColor: PropTypes.oneOf(['inherit', 'primary', 'secondary']),\n /**\n * The value of the currently selected `Tab`.\n * If you don't want any selected `Tab`, you can set this prop to `false`.\n */\n value: PropTypes.any,\n /**\n * Determines additional display behavior of the tabs:\n *\n * - `scrollable` will invoke scrolling properties and allow for horizontally\n * scrolling (or swiping) of the tab bar.\n * - `fullWidth` will make the tabs grow to use all the available space,\n * which should be used for small views, like on mobile.\n * - `standard` will render the default state.\n * @default 'standard'\n */\n variant: PropTypes.oneOf(['fullWidth', 'scrollable', 'standard']),\n /**\n * If `true`, the scrollbar is visible. It can be useful when displaying\n * a long vertical list of tabs.\n * @default false\n */\n visibleScrollbar: PropTypes.bool\n} : void 0;\nexport default Tabs;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getTabUtilityClass(slot) {\n return generateUtilityClass('MuiTab', slot);\n}\nconst tabClasses = generateUtilityClasses('MuiTab', ['root', 'labelIcon', 'textColorInherit', 'textColorPrimary', 'textColorSecondary', 'selected', 'disabled', 'fullWidth', 'wrapped', 'iconWrapper', 'icon']);\nexport default tabClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport ButtonBase from \"../ButtonBase/index.js\";\nimport capitalize from \"../utils/capitalize.js\";\nimport { styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport unsupportedProp from \"../utils/unsupportedProp.js\";\nimport tabClasses, { getTabUtilityClass } from \"./tabClasses.js\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n textColor,\n fullWidth,\n wrapped,\n icon,\n label,\n selected,\n disabled\n } = ownerState;\n const slots = {\n root: ['root', icon && label && 'labelIcon', `textColor${capitalize(textColor)}`, fullWidth && 'fullWidth', wrapped && 'wrapped', selected && 'selected', disabled && 'disabled'],\n icon: ['iconWrapper', 'icon']\n };\n return composeClasses(slots, getTabUtilityClass, classes);\n};\nconst TabRoot = styled(ButtonBase, {\n name: 'MuiTab',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.label && ownerState.icon && styles.labelIcon, styles[`textColor${capitalize(ownerState.textColor)}`], ownerState.fullWidth && styles.fullWidth, ownerState.wrapped && styles.wrapped, {\n [`& .${tabClasses.iconWrapper}`]: styles.iconWrapper\n }, {\n [`& .${tabClasses.icon}`]: styles.icon\n }];\n }\n})(memoTheme(({\n theme\n}) => ({\n ...theme.typography.button,\n maxWidth: 360,\n minWidth: 90,\n position: 'relative',\n minHeight: 48,\n flexShrink: 0,\n padding: '12px 16px',\n overflow: 'hidden',\n whiteSpace: 'normal',\n textAlign: 'center',\n lineHeight: 1.25,\n variants: [{\n props: ({\n ownerState\n }) => ownerState.label && (ownerState.iconPosition === 'top' || ownerState.iconPosition === 'bottom'),\n style: {\n flexDirection: 'column'\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.label && ownerState.iconPosition !== 'top' && ownerState.iconPosition !== 'bottom',\n style: {\n flexDirection: 'row'\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.icon && ownerState.label,\n style: {\n minHeight: 72,\n paddingTop: 9,\n paddingBottom: 9\n }\n }, {\n props: ({\n ownerState,\n iconPosition\n }) => ownerState.icon && ownerState.label && iconPosition === 'top',\n style: {\n [`& > .${tabClasses.icon}`]: {\n marginBottom: 6\n }\n }\n }, {\n props: ({\n ownerState,\n iconPosition\n }) => ownerState.icon && ownerState.label && iconPosition === 'bottom',\n style: {\n [`& > .${tabClasses.icon}`]: {\n marginTop: 6\n }\n }\n }, {\n props: ({\n ownerState,\n iconPosition\n }) => ownerState.icon && ownerState.label && iconPosition === 'start',\n style: {\n [`& > .${tabClasses.icon}`]: {\n marginRight: theme.spacing(1)\n }\n }\n }, {\n props: ({\n ownerState,\n iconPosition\n }) => ownerState.icon && ownerState.label && iconPosition === 'end',\n style: {\n [`& > .${tabClasses.icon}`]: {\n marginLeft: theme.spacing(1)\n }\n }\n }, {\n props: {\n textColor: 'inherit'\n },\n style: {\n color: 'inherit',\n opacity: 0.6,\n // same opacity as theme.palette.text.secondary\n [`&.${tabClasses.selected}`]: {\n opacity: 1\n },\n [`&.${tabClasses.disabled}`]: {\n opacity: (theme.vars || theme).palette.action.disabledOpacity\n }\n }\n }, {\n props: {\n textColor: 'primary'\n },\n style: {\n color: (theme.vars || theme).palette.text.secondary,\n [`&.${tabClasses.selected}`]: {\n color: (theme.vars || theme).palette.primary.main\n },\n [`&.${tabClasses.disabled}`]: {\n color: (theme.vars || theme).palette.text.disabled\n }\n }\n }, {\n props: {\n textColor: 'secondary'\n },\n style: {\n color: (theme.vars || theme).palette.text.secondary,\n [`&.${tabClasses.selected}`]: {\n color: (theme.vars || theme).palette.secondary.main\n },\n [`&.${tabClasses.disabled}`]: {\n color: (theme.vars || theme).palette.text.disabled\n }\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.fullWidth,\n style: {\n flexShrink: 1,\n flexGrow: 1,\n flexBasis: 0,\n maxWidth: 'none'\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.wrapped,\n style: {\n fontSize: theme.typography.pxToRem(12)\n }\n }]\n})));\nconst Tab = /*#__PURE__*/React.forwardRef(function Tab(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiTab'\n });\n const {\n className,\n disabled = false,\n disableFocusRipple = false,\n // eslint-disable-next-line react/prop-types\n fullWidth,\n icon: iconProp,\n iconPosition = 'top',\n // eslint-disable-next-line react/prop-types\n indicator,\n label,\n onChange,\n onClick,\n onFocus,\n // eslint-disable-next-line react/prop-types\n selected,\n // eslint-disable-next-line react/prop-types\n selectionFollowsFocus,\n // eslint-disable-next-line react/prop-types\n textColor = 'inherit',\n value,\n wrapped = false,\n ...other\n } = props;\n const ownerState = {\n ...props,\n disabled,\n disableFocusRipple,\n selected,\n icon: !!iconProp,\n iconPosition,\n label: !!label,\n fullWidth,\n textColor,\n wrapped\n };\n const classes = useUtilityClasses(ownerState);\n const icon = iconProp && label && /*#__PURE__*/React.isValidElement(iconProp) ? /*#__PURE__*/React.cloneElement(iconProp, {\n className: clsx(classes.icon, iconProp.props.className)\n }) : iconProp;\n const handleClick = event => {\n if (!selected && onChange) {\n onChange(event, value);\n }\n if (onClick) {\n onClick(event);\n }\n };\n const handleFocus = event => {\n if (selectionFollowsFocus && !selected && onChange) {\n onChange(event, value);\n }\n if (onFocus) {\n onFocus(event);\n }\n };\n return /*#__PURE__*/_jsxs(TabRoot, {\n focusRipple: !disableFocusRipple,\n className: clsx(classes.root, className),\n ref: ref,\n role: \"tab\",\n \"aria-selected\": selected,\n disabled: disabled,\n onClick: handleClick,\n onFocus: handleFocus,\n ownerState: ownerState,\n tabIndex: selected ? 0 : -1,\n ...other,\n children: [iconPosition === 'top' || iconPosition === 'start' ? /*#__PURE__*/_jsxs(React.Fragment, {\n children: [icon, label]\n }) : /*#__PURE__*/_jsxs(React.Fragment, {\n children: [label, icon]\n }), indicator]\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Tab.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * This prop isn't supported.\n * Use the `component` prop if you need to change the children structure.\n */\n children: unsupportedProp,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * If `true`, the component is disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, the keyboard focus ripple is disabled.\n * @default false\n */\n disableFocusRipple: PropTypes.bool,\n /**\n * If `true`, the ripple effect is disabled.\n *\n * ⚠️ Without a ripple there is no styling for :focus-visible by default. Be sure\n * to highlight the element by applying separate styles with the `.Mui-focusVisible` class.\n * @default false\n */\n disableRipple: PropTypes.bool,\n /**\n * The icon to display.\n */\n icon: PropTypes.oneOfType([PropTypes.element, PropTypes.string]),\n /**\n * The position of the icon relative to the label.\n * @default 'top'\n */\n iconPosition: PropTypes.oneOf(['bottom', 'end', 'start', 'top']),\n /**\n * The label element.\n */\n label: PropTypes.node,\n /**\n * @ignore\n */\n onChange: PropTypes.func,\n /**\n * @ignore\n */\n onClick: PropTypes.func,\n /**\n * @ignore\n */\n onFocus: PropTypes.func,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * You can provide your own value. Otherwise, we fallback to the child position index.\n */\n value: PropTypes.any,\n /**\n * Tab labels appear in a single row.\n * They can use a second line if needed.\n * @default false\n */\n wrapped: PropTypes.bool\n} : void 0;\nexport default Tab;","import React, { useEffect, useState, useMemo, useCallback } from 'react';\nimport { Line } from 'react-chartjs-2';\nimport { Chart as ChartJS, CategoryScale, LinearScale, PointElement, LineElement, Title, Tooltip, Legend } from 'chart.js';\nimport { Box, Typography, Tabs, Tab, Paper } from '@mui/material';\n\n// Register chart.js components\nChartJS.register(\n CategoryScale,\n LinearScale,\n PointElement,\n LineElement,\n Title,\n Tooltip,\n Legend\n);\n\nconst PriceSignalChart = ({ signals, assetName }) => {\n const [activeStrategy, setActiveStrategy] = useState('');\n const strategies = useMemo(() => Object.keys(signals || {}), [signals]);\n\n const processStrategyData = useCallback((signalsList, strategyName) => {\n const dates = [];\n const prices = [];\n const longEntries = [];\n const longExits = [];\n const shortEntries = [];\n const shortExits = [];\n\n let lastSignal = 0;\n\n signalsList.forEach((item) => {\n const date = new Date(item.Date).toLocaleDateString();\n const price = item.Close;\n const signal = item[`${strategyName}_signal`];\n\n dates.push(date);\n prices.push(price);\n\n // Enhanced signal visibility\n if (signal === 1 && lastSignal <= 0) {\n longEntries.push(price);\n } else {\n longEntries.push(null);\n }\n\n if (signal === 0 && lastSignal === 1) {\n longExits.push(price);\n } else {\n longExits.push(null);\n }\n\n if (signal === -1 && lastSignal >= 0) {\n shortEntries.push(price);\n } else {\n shortEntries.push(null);\n }\n\n if (signal === 0 && lastSignal === -1) {\n shortExits.push(price);\n } else {\n shortExits.push(null);\n }\n\n lastSignal = signal;\n });\n\n return {\n labels: dates,\n datasets: [\n {\n label: 'Price',\n data: prices,\n borderColor: 'rgba(0, 0, 0, 0.8)', // Changed to black\n backgroundColor: 'rgba(0, 0, 0, 0.05)', // Light black/gray fill\n borderWidth: 2,\n tension: 0.1,\n pointRadius: 0,\n fill: true,\n z: 1,\n },\n {\n label: 'Long Entry',\n data: longEntries,\n backgroundColor: 'rgba(46, 204, 113, 1)', // Keeping green for long entry\n borderColor: 'rgba(46, 204, 113, 1)',\n pointStyle: 'triangle',\n rotation: 0,\n pointRadius: 12,\n pointHoverRadius: 15,\n showLine: false,\n z: 2,\n },\n {\n label: 'Long Exit',\n data: longExits,\n backgroundColor: 'rgba(231, 76, 60, 1)', // Changed to red\n borderColor: 'rgba(231, 76, 60, 1)',\n pointStyle: 'triangle',\n rotation: 180,\n pointRadius: 12,\n pointHoverRadius: 15,\n showLine: false,\n z: 2,\n },\n {\n label: 'Short Entry',\n data: shortEntries,\n backgroundColor: 'rgba(243, 156, 18, 1)', // Changed to orange\n borderColor: 'rgba(243, 156, 18, 1)',\n pointStyle: 'triangle',\n rotation: 180,\n pointRadius: 12,\n pointHoverRadius: 15,\n showLine: false,\n z: 2,\n },\n {\n label: 'Short Exit',\n data: shortExits,\n backgroundColor: 'rgba(241, 196, 15, 1)', // Changed to yellow\n borderColor: 'rgba(241, 196, 15, 1)',\n pointStyle: 'triangle',\n rotation: 0,\n pointRadius: 12,\n pointHoverRadius: 15,\n showLine: false,\n z: 2,\n },\n ],\n };\n }, []);\n\n const chartData = useMemo(() => {\n if (!activeStrategy || !signals || !signals[activeStrategy]) return null;\n return processStrategyData(signals[activeStrategy], activeStrategy);\n }, [activeStrategy, signals, processStrategyData]);\n\n useEffect(() => {\n if (strategies.length > 0 && !activeStrategy) {\n setActiveStrategy(strategies[0]);\n }\n }, [strategies, activeStrategy]);\n\n const options = useMemo(() => ({\n responsive: true,\n maintainAspectRatio: false,\n interaction: {\n mode: 'index',\n intersect: false,\n },\n plugins: {\n legend: {\n position: 'top',\n labels: {\n usePointStyle: true,\n padding: 20,\n font: {\n size: 12,\n weight: 'bold'\n }\n }\n },\n title: {\n display: true,\n text: `Price and Signals - ${assetName}`,\n font: {\n size: 16,\n weight: 'bold'\n },\n padding: 20\n },\n tooltip: {\n mode: 'index',\n intersect: false,\n backgroundColor: 'rgba(0, 0, 0, 0.8)',\n titleFont: {\n size: 14,\n weight: 'bold'\n },\n bodyFont: {\n size: 13\n },\n padding: 12,\n cornerRadius: 8,\n }\n },\n scales: {\n x: {\n grid: {\n display: false\n },\n ticks: {\n maxTicksLimit: 10,\n font: {\n size: 11\n }\n }\n },\n y: {\n grid: {\n color: 'rgba(0, 0, 0, 0.05)'\n },\n ticks: {\n font: {\n size: 11\n }\n }\n }\n },\n animations: {\n tension: {\n duration: 1000,\n easing: 'linear'\n }\n }\n }), [assetName]);\n\n const handleTabChange = useCallback((event, newValue) => {\n setActiveStrategy(newValue);\n }, []);\n\n if (strategies.length === 0) {\n return No data available for charting.;\n }\n\n return (\n \n \n {strategies.map((strategy) => (\n \n ))}\n \n \n {chartData ? (\n \n ) : (\n Loading chart data...\n )}\n \n \n );\n};\n\nexport default React.memo(PriceSignalChart);\n\n\n","// ChartSystem.js\nimport React, { useState, useMemo, useCallback } from 'react';\nimport { FormGroup, FormControlLabel, Switch, Box } from '@mui/material';\nimport EquityCurveChart from './EquityCurveChart';\nimport RollingSharpeChart from './RollingSharpeChart';\nimport DrawdownChart from './DrawdownChart';\nimport CollapsibleChart from './CollapsibleChart';\nimport PriceSignalChart from './PriceSignalChart';\n\nconst ChartSystem = ({ equityCurveData, drawdownData, rollingSharpeData, strategies, assetName, startDate, endDate, signals }) => {\n const [visibleCharts, setVisibleCharts] = useState({\n equityCurve: true,\n rollingSharpe: false,\n drawdown: false,\n priceSignal: true\n });\n\n const toggleChartVisibility = useCallback((chartName) => {\n setVisibleCharts(prev => ({ ...prev, [chartName]: !prev[chartName] }));\n }, []);\n\n const downsampleData = useCallback((data) => {\n if (!data || !Array.isArray(data) || data.length === 0) return [];\n const factor = Math.ceil(data.length / 1000);\n return data.filter((_, index) => index % factor === 0);\n }, []);\n\n const downsampledEquityCurve = useMemo(() => downsampleData(equityCurveData), [equityCurveData, downsampleData]);\n const downsampledDrawdown = useMemo(() => downsampleData(drawdownData), [drawdownData, downsampleData]);\n const downsampledRollingSharpe = useMemo(() => downsampleData(rollingSharpeData), [rollingSharpeData, downsampleData]);\n\n // **Do not downsample signals**\n const processedSignals = useMemo(() => signals, [signals]);\n\n console.log(\"Downsampled data lengths:\", {\n equityCurve: downsampledEquityCurve.length,\n drawdown: downsampledDrawdown.length,\n rollingSharpe: downsampledRollingSharpe.length,\n signals: Object.keys(processedSignals).map(key => processedSignals[key].length)\n });\n\n return (\n \n \n toggleChartVisibility('equityCurve')}\n />\n }\n label=\"Equity Curve\"\n />\n toggleChartVisibility('rollingSharpe')}\n />\n }\n label=\"Rolling Sharpe Ratio\"\n />\n toggleChartVisibility('drawdown')}\n />\n }\n label=\"Drawdown\"\n />\n toggleChartVisibility('priceSignal')}\n />\n }\n label=\"Price and Signals\"\n />\n \n\n {visibleCharts.equityCurve && downsampledEquityCurve.length > 0 && (\n \n \n \n )}\n\n {visibleCharts.rollingSharpe && downsampledRollingSharpe.length > 0 && (\n \n \n \n )}\n\n {visibleCharts.drawdown && downsampledDrawdown.length > 0 && (\n \n \n \n )}\n\n {visibleCharts.priceSignal && (\n \n \n \n )}\n \n );\n};\n\nexport default React.memo(ChartSystem);\n\n","import React, { useState, useMemo, useCallback, useEffect } from 'react';\nimport {\n Chart as ChartJS,\n CategoryScale,\n LinearScale,\n BarElement,\n Title,\n Tooltip,\n Legend\n} from 'chart.js';\nimport { Bar } from 'react-chartjs-2';\nimport { Box, Typography, Tabs, Tab } from '@mui/material';\n\nChartJS.register(\n CategoryScale,\n LinearScale,\n BarElement,\n Title,\n Tooltip,\n Legend\n);\n\nconst TradeReturnsHistogram = ({ trades }) => {\n const [activeStrategy, setActiveStrategy] = useState(null);\n\n // Debug logging\n useEffect(() => {\n console.log('Trades data:', trades);\n if (!trades || trades.length === 0) {\n console.log('No trades data available');\n }\n }, [trades]);\n\n // Get unique strategies\n const strategies = useMemo(() => {\n if (!trades || trades.length === 0) return [];\n const uniqueStrategies = [...new Set(trades.map(trade => trade.strategy))];\n console.log('Unique strategies:', uniqueStrategies);\n return ['Portfolio', ...uniqueStrategies].filter(Boolean); // Filter out any undefined/null values\n }, [trades]);\n\n // Set initial active strategy\n useEffect(() => {\n if (strategies.length > 0 && !activeStrategy) {\n setActiveStrategy(strategies[0]);\n console.log('Setting initial active strategy:', strategies[0]);\n }\n }, [strategies, activeStrategy]);\n\n // Calculate histogram bins\n const calculateHistogram = useCallback((returns) => {\n if (!returns || returns.length === 0) return {};\n \n const binWidth = 0.01; // 1% bins\n const minReturn = Math.floor(Math.min(...returns) * 100) / 100;\n const maxReturn = Math.ceil(Math.max(...returns) * 100) / 100;\n const bins = {};\n \n console.log('Return range:', { minReturn, maxReturn });\n\n // Initialize bins\n for (let bin = minReturn; bin <= maxReturn; bin += binWidth) {\n const binKey = bin.toFixed(3);\n bins[binKey] = 0;\n }\n\n // Count returns in each bin\n returns.forEach(ret => {\n const binKey = (Math.floor(ret / binWidth) * binWidth).toFixed(3);\n if (bins[binKey] !== undefined) {\n bins[binKey]++;\n }\n });\n\n return bins;\n }, []);\n\n // Process data for the selected strategy\n const chartData = useMemo(() => {\n if (!trades || trades.length === 0 || !activeStrategy) {\n console.log('Cannot create chart data: missing trades or active strategy');\n return null;\n }\n\n const filteredTrades = activeStrategy === 'Portfolio' \n ? trades \n : trades.filter(trade => trade.strategy === activeStrategy);\n\n console.log('Filtered trades count:', filteredTrades.length);\n\n if (filteredTrades.length === 0) {\n console.log('No trades after filtering');\n return null;\n }\n\n const returns = filteredTrades.map(trade => trade.trade_return);\n console.log('Trade returns:', returns);\n\n const histogram = calculateHistogram(returns);\n\n return {\n labels: Object.keys(histogram).map(bin => `${(parseFloat(bin) * 100).toFixed(1)}%`),\n datasets: [{\n label: 'Number of Trades',\n data: Object.values(histogram),\n backgroundColor: 'rgba(75, 192, 192, 0.6)',\n borderColor: 'rgba(75, 192, 192, 1)',\n borderWidth: 1,\n }]\n };\n }, [activeStrategy, trades, calculateHistogram]);\n\n // Calculate statistics\n const statistics = useMemo(() => {\n if (!trades || trades.length === 0 || !activeStrategy) return {\n count: 0,\n mean: 0,\n std: 0,\n win_rate: 0\n };\n\n const filteredTrades = activeStrategy === 'Portfolio' \n ? trades \n : trades.filter(trade => trade.strategy === activeStrategy);\n\n const returns = filteredTrades.map(trade => trade.trade_return);\n \n if (returns.length === 0) return {\n count: 0,\n mean: 0,\n std: 0,\n win_rate: 0\n };\n\n const mean = returns.reduce((acc, val) => acc + val, 0) / returns.length;\n \n return {\n count: returns.length,\n mean: mean,\n std: Math.sqrt(\n returns.reduce((acc, val) => acc + Math.pow(val - mean, 2), 0) / returns.length\n ),\n win_rate: returns.filter(r => r > 0).length / returns.length\n };\n }, [activeStrategy, trades]);\n\n const options = {\n responsive: true,\n plugins: {\n legend: {\n position: 'top',\n },\n title: {\n display: true,\n text: `Trade Returns Distribution - ${activeStrategy || 'Loading...'}`,\n },\n },\n scales: {\n x: {\n title: {\n display: true,\n text: 'Return (%)'\n }\n },\n y: {\n title: {\n display: true,\n text: 'Number of Trades'\n }\n }\n }\n };\n\n const handleTabChange = (event, newValue) => {\n setActiveStrategy(newValue);\n console.log('Changed active strategy to:', newValue);\n };\n\n // Early return if no data\n if (!trades || trades.length === 0) {\n return (\n \n No trade data available for histogram.\n \n );\n }\n\n // Early return if no strategies\n if (strategies.length === 0) {\n return (\n \n No strategies found in trade data.\n \n );\n }\n\n return (\n \n \n {strategies.map((strategy) => (\n \n ))}\n \n \n \n \n \n Number of Trades\n {statistics.count}\n \n \n Mean Return\n {(statistics.mean * 100).toFixed(2)}%\n \n \n Standard Deviation\n {(statistics.std * 100).toFixed(2)}%\n \n \n Win Rate\n {(statistics.win_rate * 100).toFixed(2)}%\n \n \n \n \n {chartData ? (\n \n ) : (\n No data available for selected strategy.\n )}\n \n \n \n );\n};\n\nexport default React.memo(TradeReturnsHistogram);","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getAlertUtilityClass(slot) {\n return generateUtilityClass('MuiAlert', slot);\n}\nconst alertClasses = generateUtilityClasses('MuiAlert', ['root', 'action', 'icon', 'message', 'filled', 'colorSuccess', 'colorInfo', 'colorWarning', 'colorError', 'filledSuccess', 'filledInfo', 'filledWarning', 'filledError', 'outlined', 'outlinedSuccess', 'outlinedInfo', 'outlinedWarning', 'outlinedError', 'standard', 'standardSuccess', 'standardInfo', 'standardWarning', 'standardError']);\nexport default alertClasses;","'use client';\n\nimport * as React from 'react';\nimport createSvgIcon from \"../../utils/createSvgIcon.js\";\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M20,12A8,8 0 0,1 12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4C12.76,4 13.5,4.11 14.2, 4.31L15.77,2.74C14.61,2.26 13.34,2 12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0, 0 22,12M7.91,10.08L6.5,11.5L11,16L21,6L19.59,4.58L11,13.17L7.91,10.08Z\"\n}), 'SuccessOutlined');","'use client';\n\nimport * as React from 'react';\nimport createSvgIcon from \"../../utils/createSvgIcon.js\";\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M12 5.99L19.53 19H4.47L12 5.99M12 2L1 21h22L12 2zm1 14h-2v2h2v-2zm0-6h-2v4h2v-4z\"\n}), 'ReportProblemOutlined');","'use client';\n\nimport * as React from 'react';\nimport createSvgIcon from \"../../utils/createSvgIcon.js\";\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"\n}), 'ErrorOutline');","'use client';\n\nimport * as React from 'react';\nimport createSvgIcon from \"../../utils/createSvgIcon.js\";\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20, 12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10, 10 0 0,0 12,2M11,17H13V11H11V17Z\"\n}), 'InfoOutlined');","'use client';\n\nimport * as React from 'react';\nimport createSvgIcon from \"../../utils/createSvgIcon.js\";\n\n/**\n * @ignore - internal component.\n *\n * Alias to `Clear`.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"\n}), 'Close');","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { darken, lighten } from '@mui/system/colorManipulator';\nimport { styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport useSlot from \"../utils/useSlot.js\";\nimport capitalize from \"../utils/capitalize.js\";\nimport createSimplePaletteValueFilter from \"../utils/createSimplePaletteValueFilter.js\";\nimport Paper from \"../Paper/index.js\";\nimport alertClasses, { getAlertUtilityClass } from \"./alertClasses.js\";\nimport IconButton from \"../IconButton/index.js\";\nimport SuccessOutlinedIcon from \"../internal/svg-icons/SuccessOutlined.js\";\nimport ReportProblemOutlinedIcon from \"../internal/svg-icons/ReportProblemOutlined.js\";\nimport ErrorOutlineIcon from \"../internal/svg-icons/ErrorOutline.js\";\nimport InfoOutlinedIcon from \"../internal/svg-icons/InfoOutlined.js\";\nimport CloseIcon from \"../internal/svg-icons/Close.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n variant,\n color,\n severity,\n classes\n } = ownerState;\n const slots = {\n root: ['root', `color${capitalize(color || severity)}`, `${variant}${capitalize(color || severity)}`, `${variant}`],\n icon: ['icon'],\n message: ['message'],\n action: ['action']\n };\n return composeClasses(slots, getAlertUtilityClass, classes);\n};\nconst AlertRoot = styled(Paper, {\n name: 'MuiAlert',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[ownerState.variant], styles[`${ownerState.variant}${capitalize(ownerState.color || ownerState.severity)}`]];\n }\n})(memoTheme(({\n theme\n}) => {\n const getColor = theme.palette.mode === 'light' ? darken : lighten;\n const getBackgroundColor = theme.palette.mode === 'light' ? lighten : darken;\n return {\n ...theme.typography.body2,\n backgroundColor: 'transparent',\n display: 'flex',\n padding: '6px 16px',\n variants: [...Object.entries(theme.palette).filter(createSimplePaletteValueFilter(['light'])).map(([color]) => ({\n props: {\n colorSeverity: color,\n variant: 'standard'\n },\n style: {\n color: theme.vars ? theme.vars.palette.Alert[`${color}Color`] : getColor(theme.palette[color].light, 0.6),\n backgroundColor: theme.vars ? theme.vars.palette.Alert[`${color}StandardBg`] : getBackgroundColor(theme.palette[color].light, 0.9),\n [`& .${alertClasses.icon}`]: theme.vars ? {\n color: theme.vars.palette.Alert[`${color}IconColor`]\n } : {\n color: theme.palette[color].main\n }\n }\n })), ...Object.entries(theme.palette).filter(createSimplePaletteValueFilter(['light'])).map(([color]) => ({\n props: {\n colorSeverity: color,\n variant: 'outlined'\n },\n style: {\n color: theme.vars ? theme.vars.palette.Alert[`${color}Color`] : getColor(theme.palette[color].light, 0.6),\n border: `1px solid ${(theme.vars || theme).palette[color].light}`,\n [`& .${alertClasses.icon}`]: theme.vars ? {\n color: theme.vars.palette.Alert[`${color}IconColor`]\n } : {\n color: theme.palette[color].main\n }\n }\n })), ...Object.entries(theme.palette).filter(createSimplePaletteValueFilter(['dark'])).map(([color]) => ({\n props: {\n colorSeverity: color,\n variant: 'filled'\n },\n style: {\n fontWeight: theme.typography.fontWeightMedium,\n ...(theme.vars ? {\n color: theme.vars.palette.Alert[`${color}FilledColor`],\n backgroundColor: theme.vars.palette.Alert[`${color}FilledBg`]\n } : {\n backgroundColor: theme.palette.mode === 'dark' ? theme.palette[color].dark : theme.palette[color].main,\n color: theme.palette.getContrastText(theme.palette[color].main)\n })\n }\n }))]\n };\n}));\nconst AlertIcon = styled('div', {\n name: 'MuiAlert',\n slot: 'Icon',\n overridesResolver: (props, styles) => styles.icon\n})({\n marginRight: 12,\n padding: '7px 0',\n display: 'flex',\n fontSize: 22,\n opacity: 0.9\n});\nconst AlertMessage = styled('div', {\n name: 'MuiAlert',\n slot: 'Message',\n overridesResolver: (props, styles) => styles.message\n})({\n padding: '8px 0',\n minWidth: 0,\n overflow: 'auto'\n});\nconst AlertAction = styled('div', {\n name: 'MuiAlert',\n slot: 'Action',\n overridesResolver: (props, styles) => styles.action\n})({\n display: 'flex',\n alignItems: 'flex-start',\n padding: '4px 0 0 16px',\n marginLeft: 'auto',\n marginRight: -8\n});\nconst defaultIconMapping = {\n success: /*#__PURE__*/_jsx(SuccessOutlinedIcon, {\n fontSize: \"inherit\"\n }),\n warning: /*#__PURE__*/_jsx(ReportProblemOutlinedIcon, {\n fontSize: \"inherit\"\n }),\n error: /*#__PURE__*/_jsx(ErrorOutlineIcon, {\n fontSize: \"inherit\"\n }),\n info: /*#__PURE__*/_jsx(InfoOutlinedIcon, {\n fontSize: \"inherit\"\n })\n};\nconst Alert = /*#__PURE__*/React.forwardRef(function Alert(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiAlert'\n });\n const {\n action,\n children,\n className,\n closeText = 'Close',\n color,\n components = {},\n componentsProps = {},\n icon,\n iconMapping = defaultIconMapping,\n onClose,\n role = 'alert',\n severity = 'success',\n slotProps = {},\n slots = {},\n variant = 'standard',\n ...other\n } = props;\n const ownerState = {\n ...props,\n color,\n severity,\n variant,\n colorSeverity: color || severity\n };\n const classes = useUtilityClasses(ownerState);\n const externalForwardedProps = {\n slots: {\n closeButton: components.CloseButton,\n closeIcon: components.CloseIcon,\n ...slots\n },\n slotProps: {\n ...componentsProps,\n ...slotProps\n }\n };\n const [CloseButtonSlot, closeButtonProps] = useSlot('closeButton', {\n elementType: IconButton,\n externalForwardedProps,\n ownerState\n });\n const [CloseIconSlot, closeIconProps] = useSlot('closeIcon', {\n elementType: CloseIcon,\n externalForwardedProps,\n ownerState\n });\n return /*#__PURE__*/_jsxs(AlertRoot, {\n role: role,\n elevation: 0,\n ownerState: ownerState,\n className: clsx(classes.root, className),\n ref: ref,\n ...other,\n children: [icon !== false ? /*#__PURE__*/_jsx(AlertIcon, {\n ownerState: ownerState,\n className: classes.icon,\n children: icon || iconMapping[severity] || defaultIconMapping[severity]\n }) : null, /*#__PURE__*/_jsx(AlertMessage, {\n ownerState: ownerState,\n className: classes.message,\n children: children\n }), action != null ? /*#__PURE__*/_jsx(AlertAction, {\n ownerState: ownerState,\n className: classes.action,\n children: action\n }) : null, action == null && onClose ? /*#__PURE__*/_jsx(AlertAction, {\n ownerState: ownerState,\n className: classes.action,\n children: /*#__PURE__*/_jsx(CloseButtonSlot, {\n size: \"small\",\n \"aria-label\": closeText,\n title: closeText,\n color: \"inherit\",\n onClick: onClose,\n ...closeButtonProps,\n children: /*#__PURE__*/_jsx(CloseIconSlot, {\n fontSize: \"small\",\n ...closeIconProps\n })\n })\n }) : null]\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Alert.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The action to display. It renders after the message, at the end of the alert.\n */\n action: PropTypes.node,\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * Override the default label for the *close popup* icon button.\n *\n * For localization purposes, you can use the provided [translations](https://mui.com/material-ui/guides/localization/).\n * @default 'Close'\n */\n closeText: PropTypes.string,\n /**\n * The color of the component. Unless provided, the value is taken from the `severity` prop.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['error', 'info', 'success', 'warning']), PropTypes.string]),\n /**\n * The components used for each slot inside.\n *\n * @deprecated use the `slots` prop instead. This prop will be removed in v7. See [Migrating from deprecated APIs](https://mui.com/material-ui/migration/migrating-from-deprecated-apis/) for more details.\n *\n * @default {}\n */\n components: PropTypes.shape({\n CloseButton: PropTypes.elementType,\n CloseIcon: PropTypes.elementType\n }),\n /**\n * The extra props for the slot components.\n * You can override the existing props or add new ones.\n *\n * @deprecated use the `slotProps` prop instead. This prop will be removed in v7. See [Migrating from deprecated APIs](https://mui.com/material-ui/migration/migrating-from-deprecated-apis/) for more details.\n *\n * @default {}\n */\n componentsProps: PropTypes.shape({\n closeButton: PropTypes.object,\n closeIcon: PropTypes.object\n }),\n /**\n * Override the icon displayed before the children.\n * Unless provided, the icon is mapped to the value of the `severity` prop.\n * Set to `false` to remove the `icon`.\n */\n icon: PropTypes.node,\n /**\n * The component maps the `severity` prop to a range of different icons,\n * for instance success to ``.\n * If you wish to change this mapping, you can provide your own.\n * Alternatively, you can use the `icon` prop to override the icon displayed.\n */\n iconMapping: PropTypes.shape({\n error: PropTypes.node,\n info: PropTypes.node,\n success: PropTypes.node,\n warning: PropTypes.node\n }),\n /**\n * Callback fired when the component requests to be closed.\n * When provided and no `action` prop is set, a close icon button is displayed that triggers the callback when clicked.\n * @param {React.SyntheticEvent} event The event source of the callback.\n */\n onClose: PropTypes.func,\n /**\n * The ARIA role attribute of the element.\n * @default 'alert'\n */\n role: PropTypes.string,\n /**\n * The severity of the alert. This defines the color and icon used.\n * @default 'success'\n */\n severity: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['error', 'info', 'success', 'warning']), PropTypes.string]),\n /**\n * The props used for each slot inside.\n * @default {}\n */\n slotProps: PropTypes.shape({\n closeButton: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n closeIcon: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The components used for each slot inside.\n * @default {}\n */\n slots: PropTypes.shape({\n closeButton: PropTypes.elementType,\n closeIcon: PropTypes.elementType\n }),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The variant to use.\n * @default 'standard'\n */\n variant: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['filled', 'outlined', 'standard']), PropTypes.string])\n} : void 0;\nexport default Alert;","import React, { useState } from 'react';\nimport {\n Dialog,\n DialogTitle,\n DialogContent,\n DialogActions,\n Button,\n TextField,\n Alert,\n} from '@mui/material';\n\nconst SaveBacktestDialog = ({ \n open, \n onClose, \n backtestConfig, \n backtestResults,\n onSave \n}) => {\n const [backtestName, setBacktestName] = useState('');\n const [error, setError] = useState(null);\n\n const handleSave = async () => {\n try {\n if (!backtestName.trim()) {\n setError('Backtest name is required');\n return;\n }\n\n // Log the full backtest results for debugging\n console.log('Full backtest results:', backtestResults);\n\n // Extract metrics from the Portfolio section\n const portfolioMetrics = backtestResults.metrics?.Portfolio || {};\n \n // Calculate the metrics based on the actual structure\n const metrics = {\n total_performance: parseFloat(portfolioMetrics.Total_Return || portfolioMetrics['Total Return'] || 0),\n sharpe_ratio: parseFloat(portfolioMetrics.Sharpe_Ratio || portfolioMetrics['Sharpe Ratio'] || 0),\n max_drawdown: parseFloat(portfolioMetrics.Max_Drawdown || portfolioMetrics['Max Drawdown'] || 0)\n };\n\n // Log the extracted metrics for debugging\n console.log('Extracted metrics:', metrics);\n\n const backtestData = {\n name: backtestName,\n config: {\n symbol: backtestConfig.symbol,\n data_source: backtestConfig.dataSource,\n start: backtestConfig.startDate,\n end: backtestConfig.endDate,\n fees: backtestConfig.fees,\n slippage: backtestConfig.slippage,\n strategies: backtestConfig.strategies,\n },\n metric: {\n total_performance: parseFloat(backtestResults.metrics?.Portfolio?.['Total Return'] || 0),\n sharpe_ratio: parseFloat(backtestResults.metrics?.Portfolio?.['Sharpe Ratio'] || 0),\n max_drawdown: parseFloat(backtestResults.metrics?.Portfolio?.['Max Drawdown'] || 0)\n }\n };\n\n // Debug log to verify the data being sent\n console.log('Saving backtest with data:', backtestData);\n\n await onSave(backtestData);\n setBacktestName('');\n onClose();\n } catch (err) {\n console.error('Save error:', err);\n setError(err.message);\n }\n };\n\n return (\n

\n Save Backtest\n \n {error && {error}}\n setBacktestName(e.target.value)}\n placeholder=\"Enter a name for your backtest\"\n />\n \n \n \n \n \n \n );\n};\n\nexport default SaveBacktestDialog;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getCircularProgressUtilityClass(slot) {\n return generateUtilityClass('MuiCircularProgress', slot);\n}\nconst circularProgressClasses = generateUtilityClasses('MuiCircularProgress', ['root', 'determinate', 'indeterminate', 'colorPrimary', 'colorSecondary', 'svg', 'circle', 'circleDeterminate', 'circleIndeterminate', 'circleDisableShrink']);\nexport default circularProgressClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport chainPropTypes from '@mui/utils/chainPropTypes';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { keyframes, css, styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport capitalize from \"../utils/capitalize.js\";\nimport createSimplePaletteValueFilter from \"../utils/createSimplePaletteValueFilter.js\";\nimport { getCircularProgressUtilityClass } from \"./circularProgressClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst SIZE = 44;\nconst circularRotateKeyframe = keyframes`\n 0% {\n transform: rotate(0deg);\n }\n\n 100% {\n transform: rotate(360deg);\n }\n`;\nconst circularDashKeyframe = keyframes`\n 0% {\n stroke-dasharray: 1px, 200px;\n stroke-dashoffset: 0;\n }\n\n 50% {\n stroke-dasharray: 100px, 200px;\n stroke-dashoffset: -15px;\n }\n\n 100% {\n stroke-dasharray: 100px, 200px;\n stroke-dashoffset: -125px;\n }\n`;\n\n// This implementation is for supporting both Styled-components v4+ and Pigment CSS.\n// A global animation has to be created here for Styled-components v4+ (https://github.com/styled-components/styled-components/blob/main/packages/styled-components/src/utils/errors.md#12).\n// which can be done by checking typeof indeterminate1Keyframe !== 'string' (at runtime, Pigment CSS transform keyframes`` to a string).\nconst rotateAnimation = typeof circularRotateKeyframe !== 'string' ? css`\n animation: ${circularRotateKeyframe} 1.4s linear infinite;\n ` : null;\nconst dashAnimation = typeof circularDashKeyframe !== 'string' ? css`\n animation: ${circularDashKeyframe} 1.4s ease-in-out infinite;\n ` : null;\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n variant,\n color,\n disableShrink\n } = ownerState;\n const slots = {\n root: ['root', variant, `color${capitalize(color)}`],\n svg: ['svg'],\n circle: ['circle', `circle${capitalize(variant)}`, disableShrink && 'circleDisableShrink']\n };\n return composeClasses(slots, getCircularProgressUtilityClass, classes);\n};\nconst CircularProgressRoot = styled('span', {\n name: 'MuiCircularProgress',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[ownerState.variant], styles[`color${capitalize(ownerState.color)}`]];\n }\n})(memoTheme(({\n theme\n}) => ({\n display: 'inline-block',\n variants: [{\n props: {\n variant: 'determinate'\n },\n style: {\n transition: theme.transitions.create('transform')\n }\n }, {\n props: {\n variant: 'indeterminate'\n },\n style: rotateAnimation || {\n animation: `${circularRotateKeyframe} 1.4s linear infinite`\n }\n }, ...Object.entries(theme.palette).filter(createSimplePaletteValueFilter()).map(([color]) => ({\n props: {\n color\n },\n style: {\n color: (theme.vars || theme).palette[color].main\n }\n }))]\n})));\nconst CircularProgressSVG = styled('svg', {\n name: 'MuiCircularProgress',\n slot: 'Svg',\n overridesResolver: (props, styles) => styles.svg\n})({\n display: 'block' // Keeps the progress centered\n});\nconst CircularProgressCircle = styled('circle', {\n name: 'MuiCircularProgress',\n slot: 'Circle',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.circle, styles[`circle${capitalize(ownerState.variant)}`], ownerState.disableShrink && styles.circleDisableShrink];\n }\n})(memoTheme(({\n theme\n}) => ({\n stroke: 'currentColor',\n variants: [{\n props: {\n variant: 'determinate'\n },\n style: {\n transition: theme.transitions.create('stroke-dashoffset')\n }\n }, {\n props: {\n variant: 'indeterminate'\n },\n style: {\n // Some default value that looks fine waiting for the animation to kicks in.\n strokeDasharray: '80px, 200px',\n strokeDashoffset: 0 // Add the unit to fix a Edge 16 and below bug.\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.variant === 'indeterminate' && !ownerState.disableShrink,\n style: dashAnimation || {\n // At runtime for Pigment CSS, `bufferAnimation` will be null and the generated keyframe will be used.\n animation: `${circularDashKeyframe} 1.4s ease-in-out infinite`\n }\n }]\n})));\n\n/**\n * ## ARIA\n *\n * If the progress bar is describing the loading progress of a particular region of a page,\n * you should use `aria-describedby` to point to the progress bar, and set the `aria-busy`\n * attribute to `true` on that region until it has finished loading.\n */\nconst CircularProgress = /*#__PURE__*/React.forwardRef(function CircularProgress(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiCircularProgress'\n });\n const {\n className,\n color = 'primary',\n disableShrink = false,\n size = 40,\n style,\n thickness = 3.6,\n value = 0,\n variant = 'indeterminate',\n ...other\n } = props;\n const ownerState = {\n ...props,\n color,\n disableShrink,\n size,\n thickness,\n value,\n variant\n };\n const classes = useUtilityClasses(ownerState);\n const circleStyle = {};\n const rootStyle = {};\n const rootProps = {};\n if (variant === 'determinate') {\n const circumference = 2 * Math.PI * ((SIZE - thickness) / 2);\n circleStyle.strokeDasharray = circumference.toFixed(3);\n rootProps['aria-valuenow'] = Math.round(value);\n circleStyle.strokeDashoffset = `${((100 - value) / 100 * circumference).toFixed(3)}px`;\n rootStyle.transform = 'rotate(-90deg)';\n }\n return /*#__PURE__*/_jsx(CircularProgressRoot, {\n className: clsx(classes.root, className),\n style: {\n width: size,\n height: size,\n ...rootStyle,\n ...style\n },\n ownerState: ownerState,\n ref: ref,\n role: \"progressbar\",\n ...rootProps,\n ...other,\n children: /*#__PURE__*/_jsx(CircularProgressSVG, {\n className: classes.svg,\n ownerState: ownerState,\n viewBox: `${SIZE / 2} ${SIZE / 2} ${SIZE} ${SIZE}`,\n children: /*#__PURE__*/_jsx(CircularProgressCircle, {\n className: classes.circle,\n style: circleStyle,\n ownerState: ownerState,\n cx: SIZE,\n cy: SIZE,\n r: (SIZE - thickness) / 2,\n fill: \"none\",\n strokeWidth: thickness\n })\n })\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? CircularProgress.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).\n * @default 'primary'\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['inherit', 'primary', 'secondary', 'error', 'info', 'success', 'warning']), PropTypes.string]),\n /**\n * If `true`, the shrink animation is disabled.\n * This only works if variant is `indeterminate`.\n * @default false\n */\n disableShrink: chainPropTypes(PropTypes.bool, props => {\n if (props.disableShrink && props.variant && props.variant !== 'indeterminate') {\n return new Error('MUI: You have provided the `disableShrink` prop ' + 'with a variant other than `indeterminate`. This will have no effect.');\n }\n return null;\n }),\n /**\n * The size of the component.\n * If using a number, the pixel unit is assumed.\n * If using a string, you need to provide the CSS unit, for example '3rem'.\n * @default 40\n */\n size: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * @ignore\n */\n style: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The thickness of the circle.\n * @default 3.6\n */\n thickness: PropTypes.number,\n /**\n * The value of the progress indicator for the determinate variant.\n * Value between 0 and 100.\n * @default 0\n */\n value: PropTypes.number,\n /**\n * The variant to use.\n * Use indeterminate when there is no progress value.\n * @default 'indeterminate'\n */\n variant: PropTypes.oneOf(['determinate', 'indeterminate'])\n} : void 0;\nexport default CircularProgress;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport Typography, { typographyClasses } from \"../Typography/index.js\";\nimport ListContext from \"../List/ListContext.js\";\nimport { styled } from \"../zero-styled/index.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport listItemTextClasses, { getListItemTextUtilityClass } from \"./listItemTextClasses.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n inset,\n primary,\n secondary,\n dense\n } = ownerState;\n const slots = {\n root: ['root', inset && 'inset', dense && 'dense', primary && secondary && 'multiline'],\n primary: ['primary'],\n secondary: ['secondary']\n };\n return composeClasses(slots, getListItemTextUtilityClass, classes);\n};\nconst ListItemTextRoot = styled('div', {\n name: 'MuiListItemText',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [{\n [`& .${listItemTextClasses.primary}`]: styles.primary\n }, {\n [`& .${listItemTextClasses.secondary}`]: styles.secondary\n }, styles.root, ownerState.inset && styles.inset, ownerState.primary && ownerState.secondary && styles.multiline, ownerState.dense && styles.dense];\n }\n})({\n flex: '1 1 auto',\n minWidth: 0,\n marginTop: 4,\n marginBottom: 4,\n [`.${typographyClasses.root}:where(& .${listItemTextClasses.primary})`]: {\n display: 'block'\n },\n [`.${typographyClasses.root}:where(& .${listItemTextClasses.secondary})`]: {\n display: 'block'\n },\n variants: [{\n props: ({\n ownerState\n }) => ownerState.primary && ownerState.secondary,\n style: {\n marginTop: 6,\n marginBottom: 6\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.inset,\n style: {\n paddingLeft: 56\n }\n }]\n});\nconst ListItemText = /*#__PURE__*/React.forwardRef(function ListItemText(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiListItemText'\n });\n const {\n children,\n className,\n disableTypography = false,\n inset = false,\n primary: primaryProp,\n primaryTypographyProps,\n secondary: secondaryProp,\n secondaryTypographyProps,\n ...other\n } = props;\n const {\n dense\n } = React.useContext(ListContext);\n let primary = primaryProp != null ? primaryProp : children;\n let secondary = secondaryProp;\n const ownerState = {\n ...props,\n disableTypography,\n inset,\n primary: !!primary,\n secondary: !!secondary,\n dense\n };\n const classes = useUtilityClasses(ownerState);\n if (primary != null && primary.type !== Typography && !disableTypography) {\n primary = /*#__PURE__*/_jsx(Typography, {\n variant: dense ? 'body2' : 'body1',\n className: classes.primary,\n component: primaryTypographyProps?.variant ? undefined : 'span',\n ...primaryTypographyProps,\n children: primary\n });\n }\n if (secondary != null && secondary.type !== Typography && !disableTypography) {\n secondary = /*#__PURE__*/_jsx(Typography, {\n variant: \"body2\",\n className: classes.secondary,\n color: \"textSecondary\",\n ...secondaryTypographyProps,\n children: secondary\n });\n }\n return /*#__PURE__*/_jsxs(ListItemTextRoot, {\n className: clsx(classes.root, className),\n ownerState: ownerState,\n ref: ref,\n ...other,\n children: [primary, secondary]\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? ListItemText.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * Alias for the `primary` prop.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * If `true`, the children won't be wrapped by a Typography component.\n * This can be useful to render an alternative Typography variant by wrapping\n * the `children` (or `primary`) text, and optional `secondary` text\n * with the Typography component.\n * @default false\n */\n disableTypography: PropTypes.bool,\n /**\n * If `true`, the children are indented.\n * This should be used if there is no left avatar or left icon.\n * @default false\n */\n inset: PropTypes.bool,\n /**\n * The main content element.\n */\n primary: PropTypes.node,\n /**\n * These props will be forwarded to the primary typography component\n * (as long as disableTypography is not `true`).\n */\n primaryTypographyProps: PropTypes.object,\n /**\n * The secondary content element.\n */\n secondary: PropTypes.node,\n /**\n * These props will be forwarded to the secondary typography component\n * (as long as disableTypography is not `true`).\n */\n secondaryTypographyProps: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default ListItemText;","\"use client\";\n\nimport createSvgIcon from './utils/createSvgIcon';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M8 5v14l11-7z\"\n}), 'PlayArrow');","\"use client\";\n\nimport createSvgIcon from './utils/createSvgIcon';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"\n}), 'Close');","export const BASE_URL = \"https://api.quantifi-app.com\"; //'http://localhost:8001';","// components/MyBacktestsDialog.js\nimport React, { useState, useEffect } from 'react';\nimport {\n Dialog,\n DialogTitle,\n DialogContent,\n Box,\n List,\n ListItem,\n ListItemText,\n ListItemSecondaryAction,\n IconButton,\n Typography,\n Button,\n Divider,\n Tooltip,\n CircularProgress,\n Paper,\n} from '@mui/material';\nimport {\n PlayArrow as PlayIcon,\n Info as InfoIcon,\n Close as CloseIcon,\n} from '@mui/icons-material';\nimport { BASE_URL } from './config';\nimport axios from 'axios';\n\nconst formatMetric = (value) => {\n if (value === null || value === undefined || isNaN(value)) return 'N/A';\n // Format as percentage with two decimal places\n return `${(value * 100).toFixed(2)}%`;\n };\n \n const formatSharpeRatio = (value) => {\n if (value === null || value === undefined || isNaN(value)) return 'N/A';\n return value.toFixed(2);\n };\n\nconst formatDate = (dateString) => {\n return new Date(dateString).toLocaleDateString(undefined, {\n year: 'numeric',\n month: 'short',\n day: 'numeric',\n });\n};\n\nconst MyBacktestsDialog = ({ \n open, \n onClose, \n accessToken,\n onLoadBacktest \n}) => {\n const [backtests, setBacktests] = useState([]);\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState(null);\n const [selectedBacktest, setSelectedBacktest] = useState(null);\n\n const fetchBacktests = async () => {\n setLoading(true);\n setError(null);\n try {\n const response = await axios.get(`${BASE_URL}/api/backtest/saved`, {withCredentials: true});\n \n console.log(response.data)\n const data = await response.data;\n setBacktests(data);\n } catch (err) {\n setError('Failed to load backtests');\n console.error(err);\n } finally {\n setLoading(false);\n }\n };\n\n useEffect(() => {\n if (open) {\n fetchBacktests();\n }\n }, [open]);\n\n const handleBacktestClick = (backtest) => {\n setSelectedBacktest(backtest);\n };\n\n const handleLoadBacktest = () => {\n if (selectedBacktest) {\n onLoadBacktest(selectedBacktest);\n onClose();\n }\n };\n\n const BacktestDetails = ({ backtest }) => (\n \n \n {backtest.name}\n \n \n \n \n Configuration\n \n Symbol: {backtest.config.symbol}\n \n Period: {formatDate(backtest.config.start)} to {formatDate(backtest.config.end)}\n \n \n Strategies: {backtest.config.strategies.length}\n \n \n Data Source: {backtest.config.data_source}\n \n \n\n \n \n Key metric\n \n \n Total Return: {formatMetric(backtest.metric.total_performance)}\n \n \n Sharpe Ratio: {formatSharpeRatio(backtest.metric.sharpe_ratio)}\n \n \n Max Drawdown: {formatMetric(backtest.metric.max_drawdown)}\n \n \n\n \n \n Created\n \n \n {formatDate(backtest.created_at)}\n \n \n\n }\n onClick={handleLoadBacktest}\n fullWidth\n sx={{ mt: 2 }}\n >\n Load & Run Backtest\n \n \n );\n\n return (\n \n \n \n My Backtests\n \n \n \n \n \n \n \n {loading ? (\n \n \n \n ) : error ? (\n \n {error}\n \n ) : backtests.length === 0 ? (\n \n \n No saved backtests found\n \n \n ) : (\n \n \n \n {backtests.map((backtest) => (\n handleBacktestClick(backtest)}\n sx={{\n borderRadius: 1,\n mb: 1,\n '&:hover': {\n backgroundColor: 'action.hover',\n },\n }}\n >\n \n {backtest.config.symbol} - {formatMetric(backtest.metric.total_performance)}\n
\n {formatDate(backtest.created_at)}\n \n }\n />\n \n ))}\n
\n
\n\n \n {selectedBacktest ? (\n \n ) : (\n \n \n Select a backtest to view details\n \n \n )}\n \n
\n )}\n
\n
\n );\n};\n\nexport default MyBacktestsDialog;","//QuantiFiBacktestingLab.js\n\nimport React, { useState, useEffect } from 'react';\nimport {\n Button, \n Typography,\n Box\n} from '@mui/material';\nimport axios from 'axios';\nimport MetricsTable from './MetricsTable';\nimport { styled } from '@mui/material/styles';\nimport BacktestingParameters from './BacktestingParameters';\nimport StrategyBuilder from './StrategyBuilder';\nimport TradesTable from './TradesTable';\nimport ChartSystem from './ChartSystem';\nimport TradeReturnsHistogram from './TradesHistogram';\nimport SaveBacktestDialog from './SaveBacktestDialog';\nimport MyBacktestsDialog from './MyBacktestsDialog';\nimport { BASE_URL } from './config';\n\n\n// Create a PrimaryButton component\nconst PrimaryButton = styled(Button)(({ theme }) => ({\n background: `linear-gradient(45deg, ${theme.palette.primary.light} 30%, ${theme.palette.primary.main} 90%)`,\n borderRadius: 12,\n color: 'white',\n padding: '10px 24px',\n fontSize: '16px',\n textTransform: 'none',\n boxShadow: '0 3px 5px 2px rgba(78, 205, 196, .3)',\n '&:hover': {\n backgroundColor: theme.palette.primary.dark,\n },\n}));\n\n\nconst INDICATORS = [\n { name: 'Open', params: [] },\n { name: 'High', params: [] },\n { name: 'Low', params: [] },\n { name: 'Close', params: [] },\n { name: 'Volume', params: [] },\n { name: 'SMA', params: ['series', 'window'] },\n { name: 'EMA', params: ['series', 'window'] },\n { name: 'Rolling_High', params: ['series', 'window'] },\n { name: 'Rolling_Low', params: ['series', 'window'] },\n { name: 'MA_trend', params: ['series', 'ma_window', 'return_window'] },\n { name: 'VWAP', params: [] },\n { name: 'Average_Move_From_Open', params: ['window'] },\n];\n\n\nconst indicatorTemplate = {\n type: 'simple', // 'simple' or 'composite'\n name: '', // Name of the indicator (for simple indicators)\n params: {}, // Parameters for the indicator (for simple indicators)\n expression: '', // Expression for composite indicators\n function: '', // Function name (for composite indicators)\n indicators: [], // Array of Indicators (for composite indicators)\n};\n\nconst QuantiFiBacktestingLab = ({ accessToken }) => {\n const [asset, setAsset] = useState('BTC-USD');\n const [startDate, setStartDate] = useState('2020-01-01');\n const [endDate, setEndDate] = useState('2024-10-09');\n const [fees, setFees] = useState(0.5);\n const [slippage, setSlippage] = useState(0.1);\n const [strategies, setStrategies] = useState([]);\n const [backtestResults, setBacktestResults] = useState(null);\n const [isLoading, setIsLoading] = useState(false);\n const [error, setError] = useState(null);\n const [dataSource, setDataSource] = useState('Yahoo Finance');\n const [isSaveDialogOpen, setIsSaveDialogOpen] = useState(false);\n const [saveError, setSaveError] = useState(null);\n const [isMyBacktestsOpen, setIsMyBacktestsOpen] = useState(false);\n\n const handleSaveBacktest = async (backtestData) => {\n try {\n const response = axios.post(\n `${BASE_URL}/api/backtest/save`,\n backtestData,\n {headers: {\n 'Content-Type': 'application/json',\n },\n withCredentials: true,\n });\n\n setIsSaveDialogOpen(false);\n } catch (err) {\n setSaveError(err.message);\n throw err;\n }\n };\n\n const handleLoadBacktest = async (backtest) => {\n try {\n setAsset(backtest.config.symbol);\n setDataSource(backtest.config.data_source);\n setStartDate(backtest.config.start);\n setEndDate(backtest.config.end);\n setFees(backtest.config.fees);\n setSlippage(backtest.config.slippage);\n setStrategies(backtest.config.strategies);\n\n // Automatically run the backtest\n const response = await axios.get(`${BASE_URL}/api/backtest/result/${backtest.id}`, {withCredentials: true,});\n\n const data = await response.data;\n setBacktestResults(data);\n\n } catch (err) {\n setError('Failed to load backtest: ' + err.message);\n }\n };\n\n useEffect(() => {\n console.log('Strategies updated:', strategies);\n }, [strategies]);\n\n const toggleStrategyCollapse = (strategyIndex) => {\n const updatedStrategies = [...strategies];\n updatedStrategies[strategyIndex].collapsed = !updatedStrategies[strategyIndex].collapsed;\n setStrategies(updatedStrategies);\n };\n\n const addStrategy = () => {\n const defaultFrequency = dataSource === 'Yahoo Finance' ? 'Daily' : 'Daily';\n setStrategies([...strategies, {\n name: `Strategy ${strategies.length + 1}`,\n allocation: 100,\n positionType: 'long',\n entryRules: [],\n exitRules: [],\n active: true,\n position_size: 1,\n regime_filter: null,\n position_size_method: 'fixed',\n fixed_position_size: 1.0,\n volatility_target: null,\n volatility_lookback: 30,\n volatility_buffer: null,\n max_leverage: 1.0,\n frequency: defaultFrequency,\n collapsed: false,\n entryRulesCollapsed: false,\n exitRulesCollapsed: false,\n }]);\n };\n\n const deleteStrategy = (indexToDelete) => {\n setStrategies(strategies.filter((_, index) => index !== indexToDelete));\n };\n\n const updateStrategy = (index, field, value) => {\n const updatedStrategies = [...strategies];\n updatedStrategies[index][field] = value;\n \n if (field === 'position_size_method') {\n if (value === 'fixed') {\n updatedStrategies[index]['volatility_target'] = null;\n updatedStrategies[index]['volatility_buffer'] = null;\n updatedStrategies[index]['volatility_lookback'] = 30;\n updatedStrategies[index]['max_leverage'] = 1.0;\n if (!updatedStrategies[index]['fixed_position_size']) {\n updatedStrategies[index]['fixed_position_size'] = 1.0;\n }\n } else if (value === 'volatility_target') {\n updatedStrategies[index]['fixed_position_size'] = null;\n if (!updatedStrategies[index]['volatility_target']) {\n updatedStrategies[index]['volatility_target'] = 10.0;\n }\n if (!updatedStrategies[index]['volatility_buffer']) {\n updatedStrategies[index]['volatility_buffer'] = 5.0;\n }\n if (!updatedStrategies[index]['volatility_lookback']) {\n updatedStrategies[index]['volatility_lookback'] = 30;\n }\n if (!updatedStrategies[index]['max_leverage']) {\n updatedStrategies[index]['max_leverage'] = 3.0;\n }\n }\n }\n \n if (field === 'frequency') {\n const selectedFrequency = value;\n const availableFrequencies = dataSource === 'Yahoo Finance'\n ? ['Daily']\n : ['Daily']; // , '4h', '1h', '30m', '15m', '10m', '5m', '1m'\n \n if (!availableFrequencies.includes(selectedFrequency)) {\n updatedStrategies[index]['frequency'] = availableFrequencies[0];\n }\n }\n \n setStrategies(updatedStrategies);\n };\n\n const addRule = (strategyIndex, ruleType) => {\n const updatedStrategies = [...strategies];\n const newRule = {\n leftIndicator: { ...indicatorTemplate },\n operator: '<',\n useRightIndicator: false,\n rightIndicator: { ...indicatorTemplate },\n rightValue: '',\n logicalOperator: 'and',\n };\n if (!updatedStrategies[strategyIndex][ruleType]) {\n updatedStrategies[strategyIndex][ruleType] = [];\n }\n updatedStrategies[strategyIndex][ruleType].push(newRule);\n setStrategies(updatedStrategies);\n };\n\n const updateRule = (strategyIndex, ruleIndex, ruleType, field, value) => {\n const updatedStrategies = [...strategies];\n const rule = updatedStrategies[strategyIndex][ruleType][ruleIndex];\n \n if (field === 'leftIndicatorType') {\n rule.leftIndicator.type = value;\n if (value === 'simple') {\n rule.leftIndicator.expression = '';\n rule.leftIndicator.name = '';\n rule.leftIndicator.params = {};\n } else if (value === 'composite') {\n rule.leftIndicator.name = '';\n rule.leftIndicator.params = {};\n if (!rule.leftIndicator.expression) {\n rule.leftIndicator.expression = '';\n }\n }\n } else if (field === 'rightIndicatorType') {\n rule.rightIndicator.type = value;\n if (value === 'simple') {\n rule.rightIndicator.expression = '';\n rule.rightIndicator.name = '';\n rule.rightIndicator.params = {};\n } else if (value === 'composite') {\n rule.rightIndicator.name = '';\n rule.rightIndicator.params = {};\n if (!rule.rightIndicator.expression) {\n rule.rightIndicator.expression = '';\n }\n }\n } else if (field === 'leftIndicatorName') {\n rule.leftIndicator.name = value;\n rule.leftIndicator.params = {};\n } else if (field === 'rightIndicatorName') {\n rule.rightIndicator.name = value;\n rule.rightIndicator.params = {};\n } else if (field === 'leftIndicatorExpression') {\n rule.leftIndicator.expression = value;\n } else if (field === 'rightIndicatorExpression') {\n rule.rightIndicator.expression = value;\n } else if (field === 'useRightIndicator') {\n rule.useRightIndicator = value;\n if (!value) {\n rule.rightIndicator = { ...indicatorTemplate };\n rule.rightValue = '';\n } else {\n if (!rule.rightIndicator) {\n rule.rightIndicator = { ...indicatorTemplate };\n }\n }\n } else if (field === 'rightValue') {\n rule.rightValue = value;\n } else {\n rule[field] = value;\n }\n setStrategies(updatedStrategies);\n };\n\n const updateIndicatorParam = (strategyIndex, ruleIndex, ruleType, side, param, value) => {\n const updatedStrategies = [...strategies];\n const rule = updatedStrategies[strategyIndex][ruleType][ruleIndex];\n if (!rule[`${side}Indicator`].params) {\n rule[`${side}Indicator`].params = {};\n }\n if (param === 'series' && !value) {\n rule[`${side}Indicator`].params[param] = 'Close';\n } else {\n rule[`${side}Indicator`].params[param] = value;\n }\n setStrategies(updatedStrategies);\n };\n\n const removeRule = (strategyIndex, ruleIndex, ruleType) => {\n const updatedStrategies = [...strategies];\n updatedStrategies[strategyIndex][ruleType].splice(ruleIndex, 1);\n setStrategies(updatedStrategies);\n };\n\n const duplicateStrategy = (strategyIndex) => {\n const strategyToDuplicate = strategies[strategyIndex];\n const duplicatedStrategy = JSON.parse(JSON.stringify(strategyToDuplicate));\n\n const originalName = duplicatedStrategy.name;\n const copyRegex = / Copy( \\d+)?$/;\n let baseName = originalName.replace(copyRegex, '');\n let copyNumber = 1;\n\n strategies.forEach((strategy) => {\n const match = strategy.name.match(new RegExp(`^${baseName} Copy( \\\\d+)?$`));\n if (match) {\n const number = match[1] ? parseInt(match[1].trim()) : 1;\n if (number >= copyNumber) {\n copyNumber = number + 1;\n }\n }\n });\n\n duplicatedStrategy.name = `${baseName} Copy${copyNumber > 1 ? ' ' + copyNumber : ''}`;\n duplicatedStrategy.collapsed = false;\n\n setStrategies([...strategies, duplicatedStrategy]);\n };\n\n const runBacktest = async () => {\n setIsLoading(true);\n setError(null);\n \n try {\n const processIndicator = (indicator) => ({\n type: indicator.type,\n name: indicator.name,\n params: indicator.params,\n expression: indicator.expression,\n });\n \n const processRules = (rules) => rules.map((rule) => ({\n operator: rule.operator,\n useRightIndicator: rule.useRightIndicator,\n rightValue: rule.rightValue,\n logicalOperator: rule.logicalOperator,\n leftIndicator: processIndicator(rule.leftIndicator),\n rightIndicator: rule.useRightIndicator ? processIndicator(rule.rightIndicator) : null,\n }));\n \n const strategiesToSend = strategies.map((strategy) => {\n const strategyData = {\n name: strategy.name,\n allocation: strategy.allocation,\n entryRules: processRules(strategy.entryRules),\n exitRules: processRules(strategy.exitRules),\n positionType: strategy.positionType,\n active: strategy.active,\n position_size_method: strategy.position_size_method,\n max_leverage: strategy.max_leverage,\n frequency: strategy.frequency,\n };\n \n if (strategy.position_size_method === 'fixed') {\n strategyData.fixed_position_size = strategy.fixed_position_size;\n } else if (strategy.position_size_method === 'volatility_target') {\n strategyData.volatility_target = strategy.volatility_target;\n strategyData.volatility_buffer = strategy.volatility_buffer;\n strategyData.volatility_lookback = strategy.volatility_lookback;\n }\n \n return strategyData;\n });\n\n const response = await fetch(`${BASE_URL}/api/backtest`, {\n method: 'POST',\n headers: {'Content-Type': 'application/json',},\n body: JSON.stringify({\n symbol: asset,\n data_source: dataSource,\n start: startDate,\n end: endDate,\n fees,\n slippage,\n strategies: strategiesToSend,\n }),\n });\n \n if (!response.ok) {\n const errorData = await response.json();\n throw new Error(errorData.detail || 'Failed to run backtest');\n }\n \n const data = await response.json();\n console.log('Backtest API response:', data);\n setBacktestResults(data);\n } catch (err) {\n setError(err.message);\n } finally {\n setIsLoading(false);\n }\n };\n\n return (\n
\n {/* Header section */}\n \n QuantiFi Backtesting Lab\n setIsMyBacktestsOpen(true)}\n >\n My Backtests\n \n \n\n {/* Main content */}\n \n\n \n\n {/* Buttons section */}\n
\n \n {isLoading ? 'Running Backtest...' : 'Run Backtest'}\n \n\n {backtestResults && (\n setIsSaveDialogOpen(true)}\n disabled={isLoading}\n >\n Save Backtest\n \n )}\n
\n\n {/* Error message */}\n {error && (\n {error}\n )}\n\n {/* Results section */}\n {backtestResults && (\n
\n s.active)}\n assetName={asset}\n startDate={startDate}\n endDate={endDate}\n />\n {backtestResults.metrics && (\n \n )}\n {backtestResults?.trades && backtestResults.trades.length > 0 && (\n <>\n \n \n \n )}\n
\n )}\n\n {/* Dialogs */}\n {\n setIsSaveDialogOpen(false);\n setSaveError(null);\n }}\n backtestConfig={{\n symbol: asset,\n dataSource: dataSource,\n startDate: startDate,\n endDate: endDate,\n fees: fees,\n slippage: slippage,\n strategies: strategies,\n }}\n backtestResults={backtestResults}\n onSave={handleSaveBacktest}\n />\n\n setIsMyBacktestsOpen(false)}\n accessToken={accessToken}\n onLoadBacktest={handleLoadBacktest}\n />\n
\n );\n};\n\nexport default QuantiFiBacktestingLab;","import createStyled from \"../createStyled/index.js\";\nconst styled = createStyled();\nexport default styled;","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nimport composeClasses from '@mui/utils/composeClasses';\nimport capitalize from '@mui/utils/capitalize';\nimport useThemePropsSystem from \"../useThemeProps/index.js\";\nimport systemStyled from \"../styled/index.js\";\nimport createTheme from \"../createTheme/index.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst defaultTheme = createTheme();\nconst defaultCreateStyledComponent = systemStyled('div', {\n name: 'MuiContainer',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[`maxWidth${capitalize(String(ownerState.maxWidth))}`], ownerState.fixed && styles.fixed, ownerState.disableGutters && styles.disableGutters];\n }\n});\nconst useThemePropsDefault = inProps => useThemePropsSystem({\n props: inProps,\n name: 'MuiContainer',\n defaultTheme\n});\nconst useUtilityClasses = (ownerState, componentName) => {\n const getContainerUtilityClass = slot => {\n return generateUtilityClass(componentName, slot);\n };\n const {\n classes,\n fixed,\n disableGutters,\n maxWidth\n } = ownerState;\n const slots = {\n root: ['root', maxWidth && `maxWidth${capitalize(String(maxWidth))}`, fixed && 'fixed', disableGutters && 'disableGutters']\n };\n return composeClasses(slots, getContainerUtilityClass, classes);\n};\nexport default function createContainer(options = {}) {\n const {\n // This will allow adding custom styled fn (for example for custom sx style function)\n createStyledComponent = defaultCreateStyledComponent,\n useThemeProps = useThemePropsDefault,\n componentName = 'MuiContainer'\n } = options;\n const ContainerRoot = createStyledComponent(({\n theme,\n ownerState\n }) => ({\n width: '100%',\n marginLeft: 'auto',\n boxSizing: 'border-box',\n marginRight: 'auto',\n ...(!ownerState.disableGutters && {\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(2),\n // @ts-ignore module augmentation fails if custom breakpoints are used\n [theme.breakpoints.up('sm')]: {\n paddingLeft: theme.spacing(3),\n paddingRight: theme.spacing(3)\n }\n })\n }), ({\n theme,\n ownerState\n }) => ownerState.fixed && Object.keys(theme.breakpoints.values).reduce((acc, breakpointValueKey) => {\n const breakpoint = breakpointValueKey;\n const value = theme.breakpoints.values[breakpoint];\n if (value !== 0) {\n // @ts-ignore\n acc[theme.breakpoints.up(breakpoint)] = {\n maxWidth: `${value}${theme.breakpoints.unit}`\n };\n }\n return acc;\n }, {}), ({\n theme,\n ownerState\n }) => ({\n // @ts-ignore module augmentation fails if custom breakpoints are used\n ...(ownerState.maxWidth === 'xs' && {\n // @ts-ignore module augmentation fails if custom breakpoints are used\n [theme.breakpoints.up('xs')]: {\n // @ts-ignore module augmentation fails if custom breakpoints are used\n maxWidth: Math.max(theme.breakpoints.values.xs, 444)\n }\n }),\n ...(ownerState.maxWidth &&\n // @ts-ignore module augmentation fails if custom breakpoints are used\n ownerState.maxWidth !== 'xs' && {\n // @ts-ignore module augmentation fails if custom breakpoints are used\n [theme.breakpoints.up(ownerState.maxWidth)]: {\n // @ts-ignore module augmentation fails if custom breakpoints are used\n maxWidth: `${theme.breakpoints.values[ownerState.maxWidth]}${theme.breakpoints.unit}`\n }\n })\n }));\n const Container = /*#__PURE__*/React.forwardRef(function Container(inProps, ref) {\n const props = useThemeProps(inProps);\n const {\n className,\n component = 'div',\n disableGutters = false,\n fixed = false,\n maxWidth = 'lg',\n classes: classesProp,\n ...other\n } = props;\n const ownerState = {\n ...props,\n component,\n disableGutters,\n fixed,\n maxWidth\n };\n\n // @ts-ignore module augmentation fails if custom breakpoints are used\n const classes = useUtilityClasses(ownerState, componentName);\n return (\n /*#__PURE__*/\n // @ts-ignore theme is injected by the styled util\n _jsx(ContainerRoot, {\n as: component\n // @ts-ignore module augmentation fails if custom breakpoints are used\n ,\n ownerState: ownerState,\n className: clsx(classes.root, className),\n ref: ref,\n ...other\n })\n );\n });\n process.env.NODE_ENV !== \"production\" ? Container.propTypes /* remove-proptypes */ = {\n children: PropTypes.node,\n classes: PropTypes.object,\n className: PropTypes.string,\n component: PropTypes.elementType,\n disableGutters: PropTypes.bool,\n fixed: PropTypes.bool,\n maxWidth: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['xs', 'sm', 'md', 'lg', 'xl', false]), PropTypes.string]),\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n } : void 0;\n return Container;\n}","'use client';\n\nimport PropTypes from 'prop-types';\nimport { createContainer } from '@mui/system';\nimport capitalize from \"../utils/capitalize.js\";\nimport styled from \"../styles/styled.js\";\nimport useThemeProps from \"../styles/useThemeProps.js\";\nconst Container = createContainer({\n createStyledComponent: styled('div', {\n name: 'MuiContainer',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[`maxWidth${capitalize(String(ownerState.maxWidth))}`], ownerState.fixed && styles.fixed, ownerState.disableGutters && styles.disableGutters];\n }\n }),\n useThemeProps: inProps => useThemeProps({\n props: inProps,\n name: 'MuiContainer'\n })\n});\nprocess.env.NODE_ENV !== \"production\" ? Container.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * @ignore\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * If `true`, the left and right padding is removed.\n * @default false\n */\n disableGutters: PropTypes.bool,\n /**\n * Set the max-width to match the min-width of the current breakpoint.\n * This is useful if you'd prefer to design for a fixed set of sizes\n * instead of trying to accommodate a fully fluid viewport.\n * It's fluid by default.\n * @default false\n */\n fixed: PropTypes.bool,\n /**\n * Determine the max-width of the container.\n * The container width grows with the size of the screen.\n * Set to `false` to disable `maxWidth`.\n * @default 'lg'\n */\n maxWidth: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['xs', 'sm', 'md', 'lg', 'xl', false]), PropTypes.string]),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default Container;","import { CamelToPascal } from './utility-types';\n\n/**\n * Converts string to kebab case\n *\n * @param {string} string\n * @returns {string} A kebabized string\n */\nexport const toKebabCase = (string: string) =>\n string.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();\n\n/**\n * Converts string to camel case\n *\n * @param {string} string\n * @returns {string} A camelized string\n */\nexport const toCamelCase = (string: T) =>\n string.replace(/^([A-Z])|[\\s-_]+(\\w)/g, (match, p1, p2) =>\n p2 ? p2.toUpperCase() : p1.toLowerCase(),\n );\n\n/**\n * Converts string to pascal case\n *\n * @param {string} string\n * @returns {string} A pascalized string\n */\nexport const toPascalCase = (string: T): CamelToPascal => {\n const camelCase = toCamelCase(string);\n\n return (camelCase.charAt(0).toUpperCase() + camelCase.slice(1)) as CamelToPascal;\n};\n\n/**\n * Merges classes into a single string\n *\n * @param {array} classes\n * @returns {string} A string of classes\n */\nexport const mergeClasses = (...classes: ClassType[]) =>\n classes\n .filter((className, index, array) => {\n return (\n Boolean(className) &&\n (className as string).trim() !== '' &&\n array.indexOf(className) === index\n );\n })\n .join(' ')\n .trim();\n","export default {\n xmlns: 'http://www.w3.org/2000/svg',\n width: 24,\n height: 24,\n viewBox: '0 0 24 24',\n fill: 'none',\n stroke: 'currentColor',\n strokeWidth: 2,\n strokeLinecap: 'round',\n strokeLinejoin: 'round',\n};\n","import { createElement, forwardRef } from 'react';\nimport defaultAttributes from './defaultAttributes';\nimport { IconNode, LucideProps } from './types';\nimport { mergeClasses } from '@lucide/shared';\n\ninterface IconComponentProps extends LucideProps {\n iconNode: IconNode;\n}\n\n/**\n * Lucide icon component\n *\n * @component Icon\n * @param {object} props\n * @param {string} props.color - The color of the icon\n * @param {number} props.size - The size of the icon\n * @param {number} props.strokeWidth - The stroke width of the icon\n * @param {boolean} props.absoluteStrokeWidth - Whether to use absolute stroke width\n * @param {string} props.className - The class name of the icon\n * @param {IconNode} props.children - The children of the icon\n * @param {IconNode} props.iconNode - The icon node of the icon\n *\n * @returns {ForwardRefExoticComponent} LucideIcon\n */\nconst Icon = forwardRef(\n (\n {\n color = 'currentColor',\n size = 24,\n strokeWidth = 2,\n absoluteStrokeWidth,\n className = '',\n children,\n iconNode,\n ...rest\n },\n ref,\n ) => {\n return createElement(\n 'svg',\n {\n ref,\n ...defaultAttributes,\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? (Number(strokeWidth) * 24) / Number(size) : strokeWidth,\n className: mergeClasses('lucide', className),\n ...rest,\n },\n [\n ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n ...(Array.isArray(children) ? children : [children]),\n ],\n );\n },\n);\n\nexport default Icon;\n","import { createElement, forwardRef } from 'react';\nimport { mergeClasses, toKebabCase } from '@lucide/shared';\nimport { IconNode, LucideProps } from './types';\nimport Icon from './Icon';\n\n/**\n * Create a Lucide icon component\n * @param {string} iconName\n * @param {array} iconNode\n * @returns {ForwardRefExoticComponent} LucideIcon\n */\nconst createLucideIcon = (iconName: string, iconNode: IconNode) => {\n const Component = forwardRef(({ className, ...props }, ref) =>\n createElement(Icon, {\n ref,\n iconNode,\n className: mergeClasses(`lucide-${toKebabCase(iconName)}`, className),\n ...props,\n }),\n );\n\n Component.displayName = `${iconName}`;\n\n return Component;\n};\n\nexport default createLucideIcon;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name User\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTkgMjF2LTJhNCA0IDAgMCAwLTQtNEg5YTQgNCAwIDAgMC00IDR2MiIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjciIHI9IjQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/user\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst User = createLucideIcon('User', [\n ['path', { d: 'M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2', key: '975kel' }],\n ['circle', { cx: '12', cy: '7', r: '4', key: '17ys0d' }],\n]);\n\nexport default User;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Lock\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTEiIHg9IjMiIHk9IjExIiByeD0iMiIgcnk9IjIiIC8+CiAgPHBhdGggZD0iTTcgMTFWN2E1IDUgMCAwIDEgMTAgMHY0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/lock\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Lock = createLucideIcon('Lock', [\n ['rect', { width: '18', height: '11', x: '3', y: '11', rx: '2', ry: '2', key: '1w4ew1' }],\n ['path', { d: 'M7 11V7a5 5 0 0 1 10 0v4', key: 'fwvmzm' }],\n]);\n\nexport default Lock;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name EyeOff\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuNzMzIDUuMDc2YTEwLjc0NCAxMC43NDQgMCAwIDEgMTEuMjA1IDYuNTc1IDEgMSAwIDAgMSAwIC42OTYgMTAuNzQ3IDEwLjc0NyAwIDAgMS0xLjQ0NCAyLjQ5IiAvPgogIDxwYXRoIGQ9Ik0xNC4wODQgMTQuMTU4YTMgMyAwIDAgMS00LjI0Mi00LjI0MiIgLz4KICA8cGF0aCBkPSJNMTcuNDc5IDE3LjQ5OWExMC43NSAxMC43NSAwIDAgMS0xNS40MTctNS4xNTEgMSAxIDAgMCAxIDAtLjY5NiAxMC43NSAxMC43NSAwIDAgMSA0LjQ0Ni01LjE0MyIgLz4KICA8cGF0aCBkPSJtMiAyIDIwIDIwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/eye-off\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst EyeOff = createLucideIcon('EyeOff', [\n [\n 'path',\n {\n d: 'M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49',\n key: 'ct8e1f',\n },\n ],\n ['path', { d: 'M14.084 14.158a3 3 0 0 1-4.242-4.242', key: '151rxh' }],\n [\n 'path',\n {\n d: 'M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143',\n key: '13bj9a',\n },\n ],\n ['path', { d: 'm2 2 20 20', key: '1ooewy' }],\n]);\n\nexport default EyeOff;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Eye\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMi4wNjIgMTIuMzQ4YTEgMSAwIDAgMSAwLS42OTYgMTAuNzUgMTAuNzUgMCAwIDEgMTkuODc2IDAgMSAxIDAgMCAxIDAgLjY5NiAxMC43NSAxMC43NSAwIDAgMS0xOS44NzYgMCIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/eye\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Eye = createLucideIcon('Eye', [\n [\n 'path',\n {\n d: 'M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0',\n key: '1nclc0',\n },\n ],\n ['circle', { cx: '12', cy: '12', r: '3', key: '1v7zrd' }],\n]);\n\nexport default Eye;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Mail\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMjAiIGhlaWdodD0iMTYiIHg9IjIiIHk9IjQiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Im0yMiA3LTguOTcgNS43YTEuOTQgMS45NCAwIDAgMS0yLjA2IDBMMiA3IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/mail\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Mail = createLucideIcon('Mail', [\n ['rect', { width: '20', height: '16', x: '2', y: '4', rx: '2', key: '18n3k1' }],\n ['path', { d: 'm22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7', key: '1ocrg3' }],\n]);\n\nexport default Mail;\n","\n//Auth.js\nimport React, { useState } from 'react';\nimport {\n Box,\n Button,\n TextField,\n Typography,\n Paper,\n Container,\n Alert,\n IconButton,\n InputAdornment,\n Tab,\n Tabs,\n} from '@mui/material';\nimport { Eye, EyeOff, Lock, Mail, User } from 'lucide-react';\nimport axios from 'axios';\nimport { BASE_URL } from './config';\n\n// Custom styled AuthContainer component\nconst AuthContainer = ({ children }) => (\n \n \n \n {children}\n \n \n \n);\n\n// Login Component\nconst Login = ({ onLogin }) => {\n const [formData, setFormData] = useState({\n username: '',\n password: '',\n });\n const [errors, setErrors] = useState({});\n const [showPassword, setShowPassword] = useState(false);\n const [error, setError] = useState(null);\n const [isLoading, setIsLoading] = useState(false);\n\n const validateForm = () => {\n const newErrors = {};\n if (!formData.username.trim()) {\n newErrors.username = 'Username is required';\n }\n if (!formData.password) {\n newErrors.password = 'Password is required';\n } else if (formData.password.length < 6) {\n newErrors.password = 'Password must be at least 6 characters';\n }\n setErrors(newErrors);\n return Object.keys(newErrors).length === 0;\n };\n\n const handleLogin = async (e) => {\n e.preventDefault();\n if (!validateForm()) return;\n\n setIsLoading(true);\n setError(null);\n\n try {\n const formDataPayload = new URLSearchParams();\n formDataPayload.append('username_email', formData.username);\n formDataPayload.append('password', formData.password);\n\n const response = await axios.post(`${BASE_URL}/api/auth/login`,\n {\n username_email: formData.username, \n password: formData.password\n },\n { withCredentials: true }\n );\n \n onLogin(true);\n } catch (err) {\n setError(err.response?.data?.detail || 'Login failed. Please check your credentials.');\n } finally {\n setIsLoading(false);\n }\n };\n\n return (\n \n \n Sign In\n \n\n {error && (\n \n {error}\n \n )}\n\n setFormData({ ...formData, username: e.target.value })}\n error={!!errors.username}\n helperText={errors.username}\n InputProps={{\n startAdornment: (\n \n \n \n ),\n }}\n />\n\n setFormData({ ...formData, password: e.target.value })}\n error={!!errors.password}\n helperText={errors.password}\n InputProps={{\n startAdornment: (\n \n \n \n ),\n endAdornment: (\n \n setShowPassword(!showPassword)}\n edge=\"end\"\n >\n {showPassword ? : }\n \n \n ),\n }}\n />\n\n \n {isLoading ? 'Signing in...' : 'Sign In'}\n \n \n );\n};\n\n// Register Component\nconst Register = () => {\n const [formData, setFormData] = useState({\n username: '',\n email: '',\n password: '',\n confirmPassword: '',\n });\n const [errors, setErrors] = useState({});\n const [showPassword, setShowPassword] = useState(false);\n const [error, setError] = useState(null);\n const [success, setSuccess] = useState(false);\n const [isLoading, setIsLoading] = useState(false);\n\n const validateForm = () => {\n const newErrors = {};\n if (!formData.username.trim()) {\n newErrors.username = 'Username is required';\n }\n if (!formData.email.trim()) {\n newErrors.email = 'Email is required';\n } else if (!/\\S+@\\S+\\.\\S+/.test(formData.email)) {\n newErrors.email = 'Invalid email address';\n }\n if (!formData.password) {\n newErrors.password = 'Password is required';\n } else if (formData.password.length < 6) {\n newErrors.password = 'Password must be at least 6 characters';\n }\n if (formData.password !== formData.confirmPassword) {\n newErrors.confirmPassword = 'Passwords do not match';\n }\n setErrors(newErrors);\n return Object.keys(newErrors).length === 0;\n };\n\n const handleRegister = async (e) => {\n e.preventDefault();\n if (!validateForm()) return;\n\n setIsLoading(true);\n setError(null);\n setSuccess(false);\n\n try {\n await axios.post(`${BASE_URL}/api/auth/register`, {\n username: formData.username,\n email: formData.email,\n password: formData.password,\n });\n if (window.hj) {\n window.hj('event', 'user_register')\n }\n setSuccess(true);\n setFormData({\n username: '',\n email: '',\n password: '',\n confirmPassword: '',\n });\n } catch (err) {\n setError(err.response?.data?.detail || 'Registration failed. Please try again.');\n } finally {\n setIsLoading(false);\n }\n };\n\n return (\n \n \n Create Account\n \n\n {error && (\n \n {error}\n \n )}\n\n {success && (\n \n Registration successful! Please sign in.\n \n )}\n\n setFormData({ ...formData, username: e.target.value })}\n error={!!errors.username}\n helperText={errors.username}\n InputProps={{\n startAdornment: (\n \n \n \n ),\n }}\n />\n\n setFormData({ ...formData, email: e.target.value })}\n error={!!errors.email}\n helperText={errors.email}\n InputProps={{\n startAdornment: (\n \n \n \n ),\n }}\n />\n\n setFormData({ ...formData, password: e.target.value })}\n error={!!errors.password}\n helperText={errors.password}\n InputProps={{\n startAdornment: (\n \n \n \n ),\n endAdornment: (\n \n setShowPassword(!showPassword)}\n edge=\"end\"\n >\n {showPassword ? : }\n \n \n ),\n }}\n />\n\n setFormData({ ...formData, confirmPassword: e.target.value })}\n error={!!errors.confirmPassword}\n helperText={errors.confirmPassword}\n InputProps={{\n startAdornment: (\n \n \n \n ),\n }}\n />\n\n \n {isLoading ? 'Creating Account...' : 'Create Account'}\n \n \n );\n};\n\n// Auth Component that combines Login and Register\nconst Auth = ({ onLogin }) => {\n const [tabValue, setTabValue] = useState(0);\n\n return (\n \n setTabValue(newValue)}\n variant=\"fullWidth\"\n sx={{ mb: 3, borderBottom: 1, borderColor: 'divider' }}\n >\n \n \n \n\n {tabValue === 0 ? (\n \n ) : (\n \n )}\n \n );\n};\n\nexport default Auth;","import React, { useState, useEffect } from 'react';\nimport { ThemeProvider } from '@mui/material/styles';\nimport { Box, Button } from '@mui/material';\nimport theme from './Theme';\nimport Hotjar from '@hotjar/browser';\nimport QuantiFiBacktestingLab from './components/QuantiFiBacktestingLab';\nimport Auth from './components/Auth';\n\nfunction App() {\n const [accessToken, setAccessToken] = useState(localStorage.getItem('access_token'));\n\n const handleLogin = (token) => {\n setAccessToken(token);\n };\n\n const handleLogout = () => {\n localStorage.removeItem('access_token');\n setAccessToken(null);\n };\n\n useEffect(() => {\n const siteId = 5234416;\n const hotjarVersion = 6;\n\n // Initialize Hotjar\n Hotjar.init(siteId, hotjarVersion);\n\n // Optionally check if Hotjar is initialized successfully\n //if (Hotjar.initialized()) {\n // console.log('Hotjar initialized');\n //}\n }, []); // Empty dependency array to ensure it runs only once\n\n return (\n \n \n {accessToken ? (\n <>\n \n \n \n \n \n ) : (\n \n )}\n \n \n );\n}\n\nexport default App;\n\n","const reportWebVitals = onPerfEntry => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import React from 'react';\nimport ReactDOM from 'react-dom/client';\nimport './index.css';\nimport App from './App';\nimport reportWebVitals from './reportWebVitals';\n\nconst root = ReactDOM.createRoot(document.getElementById('root'));\nroot.render(\n \n \n \n);\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();\n"],"names":["u","b","Symbol","for","c","d","e","f","g","h","k","l","m","n","p","q","t","v","a","r","$$typeof","type","module","exports","i","s","o","$","y","M","name","weekdays","split","months","ordinal","String","length","Array","join","z","utcOffset","Math","abs","floor","date","year","month","clone","add","ceil","w","D","ms","Q","toLowerCase","replace","S","_","O","args","arguments","locale","$L","utc","$u","x","$x","$offset","this","parse","prototype","$d","Date","NaN","test","match","substring","UTC","init","$y","getFullYear","$M","getMonth","$D","getDate","$W","getDay","$H","getHours","$m","getMinutes","$s","getSeconds","$ms","getMilliseconds","$utils","isValid","toString","isSame","startOf","endOf","isAfter","isBefore","$g","set","unix","valueOf","getTime","toDate","apply","slice","$locale","weekStart","$set","min","daysInMonth","get","Number","round","subtract","format","invalidDate","meridiem","monthsShort","weekdaysMin","weekdaysShort","getTimezoneOffset","diff","toJSON","toISOString","toUTCString","forEach","extend","$i","isDayjs","en","Ls","bind","weekYear","isoWeekYear","week","isoWeek","offsetName","LTS","LT","L","LL","LLL","LLLL","zone","offset","indexOf","concat","A","afternoon","milliseconds","SS","SSS","ss","mm","H","HH","hh","DD","Do","day","ww","MM","MMM","map","Error","MMMM","Y","YY","YYYY","Z","ZZ","formats","toUpperCase","regex","parser","exec","call","hours","customParseFormat","parseTwoDigitYear","minutes","seconds","isBetween","yearStart","weeks","ONE","MAX_DIGITS","Decimal","precision","rounding","toExpNeg","toExpPos","LN10","external","decimalError","invalidArgument","exponentOutOfRange","mathfloor","mathpow","pow","isDecimal","BASE","MAX_SAFE_INTEGER","MAX_E","P","carry","len","xd","yd","Ctor","constructor","pr","reverse","push","unshift","pop","checkInt32","max","digitsToString","ws","indexOfLastWord","str","getZeroString","absoluteValue","comparedTo","cmp","j","xdL","ydL","decimalPlaces","dp","dividedBy","div","divide","dividedToIntegerBy","idiv","equals","eq","exponent","getBase10Exponent","greaterThan","gt","greaterThanOrEqualTo","gte","isInteger","isint","isNegative","isneg","isPositive","ispos","isZero","lessThan","lt","lessThanOrEqualTo","lte","logarithm","log","base","wpr","ln","minus","sub","modulo","mod","times","naturalExponential","exp","naturalLogarithm","negated","neg","plus","sd","squareRoot","sqrt","toExponential","mul","rL","shift","toDecimalPlaces","todp","rm","toFixed","toInteger","toint","toNumber","toPower","sign","yIsInt","yn","truncate","toPrecision","toSignificantDigits","tosd","val","multiplyInteger","temp","compare","aL","bL","prod","prodL","qd","rem","remL","rem0","xi","xL","yd0","yL","yz","denominator","sum","getLn10","zs","c0","numerator","x2","charAt","parseDecimal","search","charCodeAt","rd","doRound","xdi","xe","xLTy","isExp","arr","config","obj","ps","value","ROUND_UP","ROUND_DOWN","ROUND_CEIL","ROUND_FLOOR","ROUND_HALF_UP","ROUND_HALF_DOWN","ROUND_HALF_EVEN","ROUND_HALF_CEIL","ROUND_HALF_FLOOR","hasOwnProperty","define","has","Object","prefix","Events","EE","fn","context","once","addListener","emitter","event","TypeError","listener","evt","_events","_eventsCount","clearEvent","EventEmitter","create","__proto__","eventNames","events","names","getOwnPropertySymbols","listeners","handlers","ee","listenerCount","emit","a1","a2","a3","a4","a5","removeListener","undefined","on","removeAllListeners","off","prefixed","reactIs","require","REACT_STATICS","childContextTypes","contextType","contextTypes","defaultProps","displayName","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","TYPE_STATICS","getStatics","component","isMemo","ForwardRef","render","Memo","defineProperty","getOwnPropertyNames","getOwnPropertyDescriptor","getPrototypeOf","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","keys","targetStatics","sourceStatics","key","descriptor","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","Fragment","Lazy","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","DataView","getNative","hashClear","hashDelete","hashGet","hashHas","hashSet","Hash","entries","index","clear","entry","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","ListCache","Map","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","MapCache","Promise","Set","setCacheAdd","setCacheHas","SetCache","values","__data__","stackClear","stackDelete","stackGet","stackHas","stackSet","Stack","data","size","Uint8Array","WeakMap","func","thisArg","array","predicate","resIndex","result","baseIndexOf","comparator","baseTimes","isArguments","isArray","isBuffer","isIndex","isTypedArray","inherited","isArr","isArg","isBuff","isType","skipIndexes","iteratee","string","object","baseForOwn","baseEach","createBaseEach","collection","isSymbol","current","computed","fromIndex","fromRight","arrayPush","isFlattenable","baseFlatten","depth","isStrict","baseFor","createBaseFor","castPath","toKey","path","keysFunc","symbolsFunc","getRawTag","objectToString","symToStringTag","toStringTag","other","baseFindIndex","baseIsNaN","strictIndexOf","baseGetTag","isObjectLike","baseIsEqualDeep","baseIsEqual","bitmask","customizer","stack","equalArrays","equalByTag","equalObjects","getTag","argsTag","arrayTag","objectTag","equalFunc","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","source","matchData","noCustomizer","objValue","srcValue","COMPARE_PARTIAL_FLAG","isFunction","isMasked","isObject","toSource","reIsHostCtor","funcProto","Function","objectProto","funcToString","reIsNative","RegExp","isLength","typedArrayTags","baseMatches","baseMatchesProperty","identity","property","isPrototype","nativeKeys","isArrayLike","baseIsMatch","getMatchData","matchesStrictComparable","hasIn","isKey","isStrictComparable","arrayMap","baseGet","baseIteratee","baseMap","baseSortBy","baseUnary","compareMultiple","iteratees","orders","nativeCeil","nativeMax","start","end","step","overRest","setToString","constant","baseSetToString","comparer","sort","symbolProto","symbolToString","baseToString","trimmedEndIndex","reTrimStart","arrayIncludes","arrayIncludesWith","cacheHas","createSet","setToArray","includes","isCommon","seen","outer","seenIndex","cache","stringToPath","baseSlice","valIsDefined","valIsNull","valIsReflexive","valIsSymbol","othIsDefined","othIsNull","othIsReflexive","othIsSymbol","compareAscending","objCriteria","criteria","othCriteria","ordersLength","coreJsData","eachFunc","iterable","props","castSlice","hasUnicode","stringToArray","methodName","strSymbols","chr","trailing","findIndexFunc","baseRange","isIterateeCall","toFinite","noop","arraySome","isPartial","arrLength","othLength","arrStacked","othStacked","arrValue","othValue","compared","othIndex","mapToArray","symbolValueOf","tag","byteLength","byteOffset","buffer","message","convert","stacked","getAllKeys","objProps","objLength","objStacked","skipCtor","objCtor","othCtor","freeGlobal","global","baseGetAllKeys","getSymbols","isKeyable","baseIsNative","getValue","getPrototype","overArg","nativeObjectToString","isOwn","unmasked","arrayFilter","stubArray","propertyIsEnumerable","nativeGetSymbols","symbol","mapTag","promiseTag","setTag","weakMapTag","dataViewTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","ArrayBuffer","resolve","ctorString","hasFunc","reHasUnicode","nativeCreate","spreadableSymbol","isConcatSpreadable","reIsUint","reIsDeepProp","reIsPlainProp","maskSrcKey","uid","IE_PROTO","assocIndexOf","splice","getMapData","memoize","freeExports","nodeType","freeModule","freeProcess","process","nodeUtil","types","binding","transform","arg","otherArgs","freeSelf","self","root","shortOut","nativeNow","now","count","lastCalled","stamp","remaining","pairs","LARGE_ARRAY_SIZE","asciiToArray","unicodeToArray","memoizeCapped","rePropName","reEscapeChar","number","quote","subString","reWhitespace","rsAstralRange","rsAstral","rsCombo","rsFitz","rsNonAstral","rsRegional","rsSurrPair","reOptMod","rsOptVar","rsSeq","rsSymbol","reUnicode","nativeMin","wait","options","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","invokeFunc","time","shouldInvoke","timeSinceLastCall","timerExpired","trailingEdge","setTimeout","timeWaiting","remainingWait","debounced","isInvoking","leadingEdge","clearTimeout","cancel","flush","arrayEvery","baseEvery","guard","find","createFind","defaultValue","baseHasIn","hasPath","baseIsArguments","stubFalse","Buffer","isNumber","objectCtorString","proto","baseIsTypedArray","nodeIsTypedArray","arrayLikeKeys","baseKeys","baseAssignValue","baseExtremum","baseGt","resolver","memoized","Cache","baseLt","baseProperty","basePropertyDeep","range","createRange","baseSome","baseOrderBy","baseRest","sortBy","debounce","INFINITY","remainder","baseTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","isBinary","baseUniq","upperFirst","createCaseFirst","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propName","componentName","location","propFullName","secret","err","getShim","isRequired","ReactPropTypes","bigint","bool","any","arrayOf","element","elementType","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","aa","ca","encodeURIComponent","da","ea","fa","ha","ia","window","document","createElement","ja","ka","la","ma","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","removeEmptyString","ra","sa","ta","pa","isNaN","qa","oa","removeAttribute","setAttribute","setAttributeNS","xlinkHref","ua","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","va","wa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","iterator","Ka","La","assign","Ma","trim","Na","Oa","prepareStackTrace","Reflect","construct","Pa","Qa","_context","_payload","_init","Ra","Sa","Ta","nodeName","Va","_valueTracker","configurable","enumerable","setValue","stopTracking","Ua","Wa","checked","Xa","activeElement","body","Ya","defaultChecked","_wrapperState","initialChecked","Za","initialValue","controlled","ab","bb","cb","db","ownerDocument","eb","fb","selected","defaultSelected","disabled","gb","dangerouslySetInnerHTML","children","hb","ib","jb","textContent","kb","lb","mb","nb","namespaceURI","innerHTML","firstChild","removeChild","appendChild","MSApp","execUnsafeLocalFunction","ob","lastChild","nodeValue","pb","animationIterationCount","aspectRatio","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","qb","rb","sb","style","setProperty","tb","menuitem","area","br","col","embed","hr","img","input","keygen","link","meta","param","track","wbr","ub","vb","is","wb","xb","target","srcElement","correspondingUseElement","parentNode","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","addEventListener","removeEventListener","Nb","onError","Ob","Pb","Qb","Rb","Sb","Tb","Vb","alternate","return","flags","Wb","memoizedState","dehydrated","Xb","Zb","child","sibling","Yb","$b","ac","unstable_scheduleCallback","bc","unstable_cancelCallback","cc","unstable_shouldYield","dc","unstable_requestPaint","B","unstable_now","ec","unstable_getCurrentPriorityLevel","fc","unstable_ImmediatePriority","gc","unstable_UserBlockingPriority","hc","unstable_NormalPriority","ic","unstable_LowPriority","jc","unstable_IdlePriority","kc","lc","oc","clz32","pc","qc","LN2","rc","sc","tc","uc","pendingLanes","suspendedLanes","pingedLanes","entangledLanes","entanglements","vc","xc","yc","zc","Ac","eventTimes","Cc","C","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","Rc","Sc","delete","pointerId","Tc","nativeEvent","blockedOn","domEventName","eventSystemFlags","targetContainers","Vc","Wc","priority","isDehydrated","containerInfo","Xc","Yc","dispatchEvent","Zc","$c","ad","bd","cd","ReactCurrentBatchConfig","dd","ed","transition","fd","gd","hd","id","Uc","stopPropagation","jd","kd","ld","md","nd","od","keyCode","charCode","pd","_reactName","_targetInst","currentTarget","isDefaultPrevented","defaultPrevented","returnValue","isPropagationStopped","preventDefault","cancelBubble","persist","isPersistent","wd","eventPhase","bubbles","cancelable","timeStamp","isTrusted","td","ud","view","detail","vd","Ad","screenX","screenY","clientX","clientY","pageX","pageY","ctrlKey","shiftKey","altKey","metaKey","getModifierState","zd","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","elapsedTime","pseudoElement","Id","clipboardData","Jd","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Qd","fromCharCode","code","repeat","which","Rd","Td","width","height","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","touches","targetTouches","changedTouches","Xd","Yd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Zd","ae","be","documentMode","ce","de","fe","ge","he","ie","le","color","datetime","email","password","tel","text","url","me","ne","oe","pe","qe","re","se","te","ue","ve","we","ye","ze","oninput","Ae","detachEvent","Be","Ce","attachEvent","De","Ee","Fe","He","Ie","Je","Ke","nextSibling","Le","contains","compareDocumentPosition","Me","HTMLIFrameElement","contentWindow","href","Ne","contentEditable","Oe","focusedElem","selectionRange","documentElement","selectionStart","selectionEnd","defaultView","getSelection","rangeCount","anchorNode","anchorOffset","focusNode","focusOffset","setStart","removeAllRanges","addRange","setEnd","left","scrollLeft","top","scrollTop","focus","Pe","Qe","Re","Se","Te","Ue","Ve","We","animationend","animationiteration","animationstart","transitionend","Xe","Ye","Ze","animation","$e","af","bf","cf","df","ef","ff","gf","hf","lf","mf","nf","Ub","instance","of","pf","qf","rf","random","sf","capture","passive","J","F","tf","uf","parentWindow","vf","wf","na","xa","$a","ba","je","char","ke","xf","yf","zf","Af","Bf","Cf","Df","Ef","__html","Ff","Gf","Hf","Jf","queueMicrotask","then","catch","If","Kf","Lf","Mf","previousSibling","Nf","Of","Pf","Qf","Rf","Sf","Tf","Uf","E","G","Vf","Wf","Xf","Yf","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Zf","$f","ag","bg","getChildContext","cg","__reactInternalMemoizedMergedChildContext","dg","eg","fg","gg","hg","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","tg","ug","vg","wg","xg","yg","I","zg","Ag","Bg","deletions","Cg","pendingProps","overflow","treeContext","retryLane","Dg","mode","Eg","Fg","Gg","memoizedProps","Hg","Ig","Jg","Kg","Lg","ref","_owner","_stringRef","refs","Mg","Ng","Og","Pg","Qg","Rg","implementation","Sg","Tg","next","done","Ug","Vg","Wg","Xg","Yg","Zg","ah","_currentValue","bh","childLanes","ch","dependencies","firstContext","lanes","dh","eh","memoizedValue","fh","gh","interleaved","ih","jh","kh","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","pending","effects","lh","mh","eventTime","lane","payload","callback","nh","K","oh","ph","qh","rh","sh","th","uh","vh","wh","xh","yh","tagName","zh","Ah","Bh","Ch","revealOrder","Dh","Eh","_workInProgressVersionPrimary","Fh","ReactCurrentDispatcher","Gh","Hh","N","Ih","Jh","Kh","Lh","Mh","Nh","Oh","Ph","Qh","Rh","Sh","Th","baseQueue","queue","Uh","Vh","Wh","lastRenderedReducer","action","hasEagerState","eagerState","lastRenderedState","dispatch","Xh","Yh","Zh","$h","ai","getSnapshot","bi","ci","di","lastEffect","stores","ei","fi","gi","hi","ii","destroy","deps","ji","ki","li","mi","ni","oi","pi","qi","ri","si","ti","ui","vi","wi","yi","zi","Ai","R","Bi","readContext","useCallback","useContext","useEffect","useImperativeHandle","useInsertionEffect","useLayoutEffect","useMemo","useReducer","useRef","useState","useDebugValue","useDeferredValue","useTransition","useMutableSource","useSyncExternalStore","useId","unstable_isNewReconciler","identifierPrefix","Ci","Di","Ei","isMounted","_reactInternals","enqueueSetState","enqueueReplaceState","enqueueForceUpdate","Fi","shouldComponentUpdate","isPureReactComponent","Gi","state","updater","Hi","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","Ii","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","Ji","digest","Ki","Li","console","error","Mi","Ni","Oi","Pi","Qi","componentDidCatch","Ri","componentStack","Si","pingCache","Ti","Ui","Vi","Wi","ReactCurrentOwner","Xi","Yi","Zi","aj","bj","cj","dj","baseLanes","cachePool","transitions","ej","fj","gj","hj","ij","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","jj","kj","pendingContext","lj","zj","Aj","Bj","Cj","mj","nj","oj","fallback","pj","qj","sj","dataset","dgst","tj","uj","_reactRetry","rj","subtreeFlags","vj","wj","isBackwards","rendering","renderingStartTime","last","tail","tailMode","xj","Dj","Ej","Fj","wasMultiple","multiple","suppressHydrationWarning","onClick","onclick","createElementNS","autoFocus","createTextNode","T","Gj","Hj","Ij","Jj","U","Kj","WeakSet","V","Lj","W","Mj","Nj","Pj","Qj","Rj","Sj","Tj","Uj","Vj","insertBefore","_reactRootContainer","Wj","X","Xj","Yj","Zj","onCommitFiberUnmount","componentWillUnmount","ak","bk","ck","dk","ek","isHidden","fk","gk","display","hk","ik","jk","kk","__reactInternalSnapshotBeforeUpdate","src","Vk","lk","mk","nk","ok","pk","qk","rk","sk","tk","Infinity","uk","vk","wk","xk","yk","zk","Ak","Bk","Ck","Dk","callbackNode","expirationTimes","expiredLanes","wc","callbackPriority","ig","Ek","Fk","Gk","Hk","Ik","Jk","Kk","Lk","Mk","Nk","Ok","finishedWork","finishedLanes","Pk","timeoutHandle","Qk","Rk","Sk","Tk","Uk","mutableReadLanes","Bc","Oj","onCommitFiberRoot","mc","onRecoverableError","Wk","onPostCommitFiberRoot","Xk","Yk","$k","isReactComponent","pendingChildren","al","mutableSourceEagerHydrationData","bl","pendingSuspenseBoundaries","dl","el","fl","gl","hl","il","yj","Zk","kl","reportError","ll","_internalRoot","ml","nl","ol","pl","rl","ql","unmount","unstable_scheduleHydration","querySelectorAll","JSON","stringify","form","sl","usingClientEntryPoint","tl","findFiberByHostInstance","bundleType","version","rendererPackageName","ul","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setErrorHandler","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","reconcilerVersion","__REACT_DEVTOOLS_GLOBAL_HOOK__","vl","isDisabled","supportsFiber","inject","createPortal","cl","createRoot","unstable_strictMode","findDOMNode","flushSync","hydrate","hydrateRoot","hydratedSources","_getVersion","_source","unmountComponentAtNode","unstable_batchedUpdates","unstable_renderSubtreeIntoContainer","checkDCE","__self","__source","jsx","jsxs","setState","forceUpdate","escape","_status","_result","default","Children","toArray","only","Component","PureComponent","act","cloneElement","createContext","_currentValue2","_threadCount","Provider","Consumer","_defaultValue","_globalName","createFactory","createRef","forwardRef","isValidElement","lazy","memo","startTransition","unstable_act","sortIndex","performance","setImmediate","startTime","expirationTime","priorityLevel","navigator","scheduling","isInputPending","MessageChannel","port2","port1","onmessage","postMessage","unstable_Profiling","unstable_continueExecution","unstable_forceFrameRate","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_runWithPriority","delay","unstable_wrapCallback","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","getter","__esModule","leafPrototypes","getProto","ns","def","definition","chunkId","all","reduce","promises","miniCssF","globalThis","prop","inProgress","dataWebpackPrefix","script","needAttach","scripts","getElementsByTagName","getAttribute","charset","timeout","nc","onScriptComplete","prev","onerror","onload","doneFns","head","nmd","paths","installedChunks","installedChunkData","promise","reject","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","chunkIds","moreModules","runtime","some","chunkLoadingGlobal","React","useTheme","ThemeContext","theme","localTheme","outerTheme","output","mergeOuterLocalTheme","nested","_jsx","StyleSheet","_this","_insertTag","before","tags","insertionPoint","prepend","container","isSpeedy","speedy","ctr","nonce","_proto","nodes","insert","rule","createStyleElement","sheet","styleSheets","ownerNode","sheetForTag","insertRule","cssRules","_tag$parentNode","from","pattern","replacement","indexof","charat","substr","begin","strlen","sizeof","append","line","column","position","character","characters","parent","copy","peek","caret","token","alloc","dealloc","delimit","delimiter","whitespace","escaping","commenter","identifier","MS","MOZ","WEBKIT","COMMENT","RULESET","DECLARATION","KEYFRAMES","serialize","rulesheet","compile","rules","rulesets","pseudo","points","declarations","atrule","previous","variable","scanning","ampersand","reference","comment","declaration","ruleset","post","identifierWithPointTracking","getRules","parsed","toRules","fixedElements","compat","isImplicitRule","parentRules","removeLabel","hash","defaultStylisPlugins","combine","createCache","ssrStyles","_insert","stylisPlugins","inserted","nodesToHydrate","attrib","currentSheet","omnipresentPlugins","finalizingPlugins","serializer","middleware","selector","serialized","shouldCache","styles","stylis","registered","unitlessKeys","msGridRow","msGridRowSpan","msGridColumn","msGridColumnSpan","scale","WebkitLineClamp","hyphenateRegex","animationRegex","isCustomProperty","isProcessableValue","processStyleName","styleName","processStyleValue","p1","p2","cursor","unitless","handleInterpolation","mergedProps","interpolation","componentSelector","__emotion_styles","keyframes","anim","serializedStyles","asString","interpolated","_i","createStringFromObject","previousCursor","cached","labelPattern","serializeStyles","stringMode","strings","raw","lastIndex","identifierName","hashString","useInsertionEffectAlwaysWithSyncFallback","useInsertionEffectWithLayoutFallback","EmotionCacheContext","HTMLElement","withEmotionCache","defaultTheme","contextTheme","RtlContext","useRtl","_ref","resolveProps","defaultSlotProps","slotProps","slotKey","slotPropName","PropsContext","useDefaultProps","_ref2","params","components","styleOverrides","variants","getThemeProps","EMPTY_THEME","useThemeScoping","themeId","upperTheme","isPrivate","resolvedTheme","mergedTheme","useThemeWithoutDefault","upperPrivateTheme","usePrivateTheme","engineTheme","privateTheme","rtlValue","direction","MuiThemeProvider","StyledEngineThemeContext","RtlProvider","DefaultPropsProvider","ThemeProviderNoVars","themeInput","scopedTheme","THEME_ID","SystemThemeProvider","formatMuiErrorMessage","URL","_len","_key","searchParams","capitalize","_formatMuiErrorMessage","isPlainObject","item","deepClone","deepmerge","acc","xs","sm","xl","defaultBreakpoints","up","defaultContainerQueries","containerQueries","containerName","handleBreakpoints","propValue","styleFromPropValue","themeBreakpoints","breakpoints","breakpoint","breakpointKeys","startsWith","isCqShorthand","containerKey","shorthand","matches","containerQuery","getContainerQuery","cssKey","createEmptyBreakpointObject","breakpointsInput","breakpointsInOrder","removeUnusedBreakpoints","breakpointOutput","resolveBreakpointValues","breakpointValues","customBase","breakpointsKeys","computeBreakpointsBase","getPath","checkVars","vars","getStyleValue","themeMapping","propValueFinal","userValue","cssProperty","themeKey","filterProps","properties","directions","aliases","marginX","marginY","paddingX","paddingY","getCssProperties","dir","marginKeys","paddingKeys","spacingKeys","createUnaryUnit","themeSpacing","transformed","createUnarySpacing","transformer","resolveCssProperty","cssProperties","getStyleFromPropValue","merge","margin","padding","spacing","borderTransform","createBorderStyle","border","borderTop","borderRight","borderBottom","borderLeft","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","outline","outlineColor","borderRadius","compose","gap","columnGap","rowGap","paletteTransform","sizingTransform","maxWidth","breakpointsValues","unit","minWidth","maxHeight","minHeight","defaultSxConfig","bgcolor","backgroundColor","pt","px","py","paddingTop","paddingRight","paddingBottom","paddingLeft","paddingInline","paddingInlineStart","paddingInlineEnd","paddingBlock","paddingBlockStart","paddingBlockEnd","mt","mr","mx","my","marginTop","marginRight","marginBottom","marginLeft","marginInline","marginInlineStart","marginInlineEnd","marginBlock","marginBlockStart","marginBlockEnd","displayPrint","textOverflow","visibility","whiteSpace","flexBasis","flexDirection","flexWrap","justifyContent","alignItems","alignContent","alignSelf","justifyItems","justifySelf","gridAutoFlow","gridAutoColumns","gridAutoRows","gridTemplateColumns","gridTemplateRows","gridTemplateAreas","right","bottom","boxShadow","boxSizing","font","fontFamily","fontSize","fontStyle","letterSpacing","textTransform","textAlign","typography","styleFunctionSx","getThemeValue","sx","unstable_sxConfig","traverse","sxInput","sxObject","emptyBreakpoints","css","styleKey","maybeFn","callIfFn","objects","allKeys","union","every","objectsHaveSameKeys","sorted","filter","sortContainerQueries","unstable_createStyleFunctionSx","registerStyles","isStringTag","className","insertStyles","Global","sheetRef","rehydrating","querySelector","sheetRefCurrent","nextElementSibling","insertable","GlobalStyles","globalStyles","DEFAULT_MODE_STORAGE_KEY","DEFAULT_COLOR_SCHEME_STORAGE_KEY","DEFAULT_ATTRIBUTE","getSystemMode","matchMedia","processState","systemMode","initializeValue","localStorage","getItem","setItem","useCurrentColorScheme","defaultMode","defaultLightColorScheme","defaultDarkColorScheme","supportedColorSchemes","modeStorageKey","colorSchemeStorageKey","storageWindow","joinedColorSchemes","isMultiSchemes","initialMode","lightColorScheme","darkColorScheme","setHasMounted","hasMounted","colorScheme","getColorScheme","setMode","currentState","newMode","setColorScheme","newState","newLightColorScheme","light","newDarkColorScheme","dark","handleMediaQuery","mediaListener","handler","media","handleStorage","newValue","endsWith","MIN_SAFE_INTEGER","clampWrapper","clamp","decomposeColor","colors","hexToRgb","marker","colorSpace","parseFloat","private_safeColorChannel","warning","decomposedColor","idx","colorChannel","recomposeColor","hslToRgb","rgb","getLuminance","alpha","private_safeAlpha","darken","coefficient","private_safeDarken","lighten","private_safeLighten","private_safeEmphasize","emphasize","black","white","A100","A200","A400","A700","primary","secondary","divider","background","paper","common","active","hover","hoverOpacity","selectedOpacity","disabledBackground","disabledOpacity","focusOpacity","activatedOpacity","icon","addLightOrDark","intent","shade","tonalOffset","tonalOffsetLight","tonalOffsetDark","main","createPalette","palette","contrastThreshold","blue","getDefaultPrimary","purple","getDefaultSecondary","red","getDefaultError","info","lightBlue","getDefaultInfo","success","green","getDefaultSuccess","orange","getDefaultWarning","getContrastText","contrastText","foreground","lumA","lumB","getContrastRatio","augmentColor","mainShade","lightShade","darkShade","modes","grey","createGetCssVar","appendVar","field","_len2","fallbacks","_key2","createSpacing","spacingInput","mui","argsInput","argument","prepareTypographyVars","fontVariant","fontStretch","assignNestedKeys","arrayKeys","cssVarsParser","shouldSkipGeneratingVar","varsWithDefaults","walkObjectDeep","shouldSkipPaths","recurse","parentKeys","cssVar","resolvedValue","getCssValue","parserConfig","getSelector","defaultGetSelector","disableCssColorScheme","colorSchemeSelector","colorSchemes","defaultColorScheme","otherTheme","rootVars","rootCss","rootVarsWithDefaults","themeVars","colorSchemesMap","defaultScheme","otherColorSchemes","scheme","cssObject","generateThemeVars","schemeVars","generateStyleSheets","stylesheets","insertStyleSheet","defaultSchemeVal","cssColorSheme","finalCss","_ref3","createBreakpoints","sortedValues","breakpointsAsArray","breakpoint1","breakpoint2","sortBreakpointsValues","down","between","endIndex","not","keyIndex","applyStyles","getColorSchemeSelector","paletteInput","shapeInput","muiTheme","toContainerQuery","mediaQuery","attachCq","cssContainerQueries","unstable_sx","createMixins","toolbar","caseAllCaps","defaultFontFamily","createTypography","fontWeightLight","fontWeightRegular","fontWeightMedium","fontWeightBold","htmlFontSize","allVariants","pxToRem","pxToRem2","coef","buildVariant","casing","h1","h2","h3","h4","h5","h6","subtitle1","subtitle2","body1","body2","caption","overline","inherit","createShadow","easing","easeInOut","easeOut","easeIn","sharp","duration","shortest","shorter","short","standard","complex","enteringScreen","leavingScreen","formatMs","getAutoHeightDuration","createTransitions","inputTransitions","mergedEasing","mergedDuration","durationOption","easingOption","animatedProp","mobileStepper","fab","speedDial","appBar","drawer","modal","snackbar","tooltip","createThemeNoVars","mixinsInput","transitionsInput","typographyInput","systemTheme","systemCreateTheme","shadows","getOverlayAlpha","elevation","alphaValue","defaultDarkOverlays","overlay","getOpacity","inputPlaceholder","inputUnderline","switchTrackDisabled","switchTrack","getOverlays","cssVarPrefix","rootSelector","excludedVariables","excludeVariablesFromRoot","stringifyTheme","serializableTheme","serializeTheme","setColor","toRgb","setColorChannel","safeColorChannel","silent","attachColorScheme","restTheme","overlays","rest","createColorScheme","createThemeWithVars","colorSchemesInput","defaultColorSchemeInput","defaultShouldSkipGeneratingVar","firstColorScheme","getCssVar","systemCreateGetCssVar","defaultSchemeInput","builtInLight","builtInDark","customColorSchemes","setCssVarColor","tokens","colorToken","assignNode","Alert","safeDarken","safeLighten","AppBar","Avatar","Button","Chip","FilledInput","LinearProgress","Skeleton","Slider","snackbarContentBackground","safeEmphasize","SnackbarContent","SpeedDialAction","StepConnector","StepContent","Switch","TableCell","safeAlpha","Tooltip","prepareCssVars","generateSpacing","createGetColorSchemeSelector","toRuntimeSource","createTheme","cssVariables","initialColorSchemes","initialDefaultColorScheme","paletteOptions","defaultConfig","attribute","CssVarsProvider","InternalCssVarsProvider","useColorScheme","getInitColorSchemeScript","deprecatedGetInitColorSchemeScript","defaultModeStorageKey","defaultColorSchemeStorageKey","disableTransitionOnChange","designSystemTransitionOnChange","resolveTheme","defaultContext","allColorSchemes","ColorSchemeContext","themeProp","documentNode","colorSchemeNode","disableNestedContext","disableStyleSheetGeneration","muiUseTheme","ctx","initialTheme","restThemeProp","stateMode","stateColorScheme","calculatedColorScheme","schemeKey","classList","remove","attr","timer","getComputedStyle","contextValue","shouldGenerateStyleSheet","_jsxs","ThemeProvider","initialAttribute","setter","InitColorSchemeScript","createCssVarsProvider","newTheme","reactPropsRegex","testOmitPropsOnStringTag","testOmitPropsOnComponent","getDefaultShouldForwardProp","composeShouldForwardProps","isReal","shouldForwardProp","optionsShouldForwardProp","__emotion_forwardProp","Insertion","newStyled","createStyled","targetClassName","__emotion_real","baseTag","__emotion_base","label","defaultShouldForwardProp","shouldUseAs","Styled","FinalTag","as","classInterpolations","registeredStyles","classNames","rawClassName","getRegisteredStyles","finalShouldForwardProp","newProps","withComponent","nextTag","nextOptions","_extends","styled","emStyled","wrapper","internal_serializeStyles","emSerializeStyles","extendSxProp","inSx","systemProps","otherProps","splitProps","finalSx","systemDefaultTheme","defaultGenerator","createClassNameGenerator","generate","configure","generator","reset","globalStateClasses","completed","expanded","focused","focusVisible","open","readOnly","required","generateUtilityClass","slot","globalStateClass","ClassNameGenerator","generateUtilityClasses","slots","globalStatePrefix","Box","defaultClassName","generateClassName","BoxRoot","inProps","clsx","createBox","boxClasses","composeClasses","getUtilityClass","classes","slotName","slotShouldForwardProp","preprocessStyles","isProcessed","variant","defaultOverridesResolver","_props","processStyle","resolvedStyle","flatMap","subStyle","rootStyle","otherStyles","processStyleVariants","mergedState","results","variantLoop","ownerState","rootShouldForwardProp","styleAttachTheme","isObjectEmpty","attachTheme","inputOptions","processor","mutateStyles","componentSlot","skipVariantsResolver","inputSkipVariantsResolver","skipSx","inputSkipSx","overridesResolver","lowercaseFirstLetter","shouldForwardPropOption","defaultStyledResolver","styledEngineStyled","generateStyledLabel","transformStyle","muiStyledResolver","expressionsHead","expressionsInput","expressionsBody","expressionsTail","resolvedStyleOverrides","themeVariants","inputStrings","placeholdersHead","fill","placeholdersTail","outputStrings","expressions","muiName","withConfig","memoTheme","styleFn","lastValue","lastTheme","useSystemDefaultProps","isFocusVisible","setRef","useForkRef","useEnhancedEffect","UNINITIALIZED","useLazyRef","initArg","LazyRipple","use","ripple","shouldMount","setShouldMount","mountEffect","mounted","didMount","mount","resolveFn","rejectFn","createControlledPromise","stop","pulsate","_len3","_key3","_objectWithoutPropertiesLoose","_setPrototypeOf","setPrototypeOf","_inheritsLoose","getChildMapping","mapFn","mapper","getProp","getNextChildMapping","nextProps","prevChildMapping","onExited","nextChildMapping","getValueForKey","nextKeysPending","pendingKeys","prevKey","childMapping","nextKey","pendingNextKey","mergeChildMappings","hasPrev","hasNext","prevChild","isLeaving","in","exit","enter","TransitionGroup","_React$Component","handleExited","ReferenceError","_assertThisInitialized","isMounting","firstRender","appear","currentChildMapping","_this$props","childFactory","TransitionGroupContext","EMPTY","Timeout","currentId","disposeEffect","useTimeout","rippleX","rippleY","rippleSize","inProp","leaving","setLeaving","rippleClassName","rippleVisible","ripplePulsate","rippleStyles","childClassName","childLeaving","childPulsate","timeoutId","enterKeyframe","exitKeyframe","pulsateKeyframe","TouchRippleRoot","pointerEvents","TouchRippleRipple","Ripple","touchRippleClasses","_ref4","TouchRipple","center","centerProp","ripples","setRipples","rippleCallback","ignoringMouseDown","startTimer","startTimerCommit","startCommit","oldRipples","fakeElement","rect","getBoundingClientRect","sizeX","clientWidth","sizeY","clientHeight","getButtonBaseUtilityClass","ButtonBaseRoot","WebkitTapHighlightColor","userSelect","verticalAlign","MozAppearance","WebkitAppearance","textDecoration","borderStyle","buttonBaseClasses","colorAdjust","centerRipple","disableRipple","disableTouchRipple","focusRipple","focusVisibleClassName","LinkComponent","onBlur","onContextMenu","onDragLeave","onFocus","onFocusVisible","onKeyDown","onKeyUp","onMouseDown","onMouseLeave","onMouseUp","onTouchEnd","onTouchMove","onTouchStart","tabIndex","TouchRippleProps","touchRippleRef","buttonRef","handleRippleRef","setFocusVisible","enableTouchRipple","useRippleHandler","rippleAction","eventCallback","skipRippleAction","useEventCallback","handleMouseDown","handleContextMenu","handleDragLeave","handleMouseUp","handleMouseLeave","handleTouchStart","handleTouchEnd","handleTouchMove","handleBlur","handleFocus","isNonNativeButton","handleKeyDown","handleKeyUp","ComponentProp","to","buttonProps","role","handleRef","composedClasses","useUtilityClasses","createSimplePaletteValueFilter","additionalPropertiesToCheck","hasCorrectMainProperty","checkSimplePaletteColorValues","getButtonUtilityClass","commonIconStyles","ButtonRoot","ButtonBase","colorInherit","disableElevation","fullWidth","inheritContainedBackgroundColor","inheritContainedHoverBackgroundColor","buttonClasses","mainChannel","inheritContainedBg","inheritContainedHoverBg","primaryChannel","ButtonStartIcon","startIcon","ButtonEndIcon","endIcon","contextProps","ButtonGroupContext","buttonGroupButtonContextPositionClassName","ButtonGroupButtonContext","disableFocusRipple","endIconProp","startIconProp","positionClassName","hasWindow","checkReadyState","initScript","getElementById","innerText","crossOrigin","debug","identify","stateChange","isReady","MuiGlobalStyles","SystemGlobalStyles","getTypographyUtilityClass","v6Colors","textPrimary","textSecondary","textDisabled","TypographyRoot","align","noWrap","gutterBottom","paragraph","_ref5","_ref6","_ref7","_ref8","_ref9","_ref10","defaultVariantMapping","Typography","themeProps","variantMapping","kindOf","thing","kindOfTest","typeOfTest","isUndefined","isArrayBuffer","isString","isDate","isFile","isBlob","isFileList","isURLSearchParams","isReadableStream","isRequest","isResponse","isHeaders","allOwnKeys","findKey","_global","isContextDefined","TypedArray","isHTMLForm","isRegExp","reduceDescriptors","reducer","descriptors","getOwnPropertyDescriptors","reducedDescriptors","ret","defineProperties","ALPHA","DIGIT","ALPHABET","ALPHA_DIGIT","isAsyncFn","_setImmediate","setImmediateSupported","postMessageSupported","callbacks","asap","nextTick","isFormData","kind","FormData","isArrayBufferView","isView","isBoolean","isStream","pipe","caseless","assignValue","targetKey","stripBOM","content","inherits","superConstructor","toFlatObject","sourceObj","destObj","propFilter","merged","searchString","forEachEntry","pair","matchAll","regExp","hasOwnProp","freezeMethods","writable","toObjectSet","arrayOrString","toCamelCase","toFiniteNumber","isFinite","generateString","alphabet","isSpecCompliantForm","toJSONObject","visit","reducedValue","isThenable","AxiosError","response","captureStackTrace","status","utils","description","fileName","lineNumber","columnNumber","customProps","axiosError","cause","isVisitable","removeBrackets","renderKey","dots","predicates","formData","metaTokens","indexes","option","visitor","defaultVisitor","useBlob","Blob","convertValue","isFlatArray","exposedHelpers","build","encode","charMap","AxiosURLSearchParams","_pairs","toFormData","encoder","_encode","buildURL","serializeFn","serializedParams","hashmarkIndex","fulfilled","rejected","synchronous","runWhen","eject","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","isBrowser","URLSearchParams","protocols","hasBrowserEnv","_navigator","hasStandardBrowserEnv","product","hasStandardBrowserWebWorkerEnv","WorkerGlobalScope","importScripts","origin","platform","buildPath","isNumericKey","isLast","arrayToObject","parsePropPath","defaults","transitional","transitionalDefaults","adapter","transformRequest","headers","contentType","getContentType","hasJSONContentType","isObjectPayload","formDataToJSON","setContentType","helpers","isNode","toURLEncodedForm","formSerializer","_FormData","env","rawValue","stringifySafely","transformResponse","JSONRequested","responseType","strictJSONParsing","ERR_BAD_RESPONSE","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","method","ignoreDuplicateOf","$internals","normalizeHeader","header","normalizeValue","matchHeaderValue","isHeaderNameFilter","AxiosHeaders","valueOrRewrite","rewrite","setHeader","_value","_header","_rewrite","lHeader","setHeaders","rawHeaders","parseHeaders","tokensRE","parseTokens","matcher","deleted","deleteHeader","normalize","normalized","formatHeader","targets","asStrings","first","accessor","accessors","defineAccessor","accessorName","arg1","arg2","arg3","buildAccessors","mapped","headerValue","transformData","fns","isCancel","__CANCEL__","CanceledError","ERR_CANCELED","settle","ERR_BAD_REQUEST","samplesCount","bytes","timestamps","firstSampleTS","chunkLength","startedAt","bytesCount","passed","freq","timestamp","threshold","invoke","progressEventReducer","isDownloadStream","bytesNotified","_speedometer","speedometer","throttle","total","lengthComputable","progressBytes","rate","progress","estimated","progressEventDecorator","throttled","asyncDecorator","msie","userAgent","urlParsingNode","originURL","resolveURL","protocol","host","hostname","port","pathname","requestURL","write","expires","domain","secure","cookie","toGMTString","read","decodeURIComponent","buildFullPath","baseURL","requestedURL","relativeURL","combineURLs","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","paramsSerializer","timeoutMessage","withCredentials","withXSRFToken","onUploadProgress","onDownloadProgress","decompress","beforeRedirect","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding","configValue","newConfig","auth","btoa","username","unescape","Boolean","isURLSameOrigin","xsrfValue","cookies","XMLHttpRequest","_config","resolveConfig","requestData","requestHeaders","onCanceled","uploadThrottled","downloadThrottled","flushUpload","flushDownload","unsubscribe","signal","onloadend","responseHeaders","getAllResponseHeaders","responseText","statusText","onreadystatechange","readyState","responseURL","onabort","ECONNABORTED","ERR_NETWORK","ontimeout","timeoutErrorMessage","ETIMEDOUT","setRequestHeader","upload","abort","subscribe","aborted","parseProtocol","send","composeSignals","signals","controller","AbortController","reason","streamChunk","chunk","chunkSize","pos","readStream","async","stream","asyncIterator","reader","getReader","trackStream","onProgress","onFinish","readBytes","_onFinish","ReadableStream","pull","close","loadedBytes","enqueue","highWaterMark","isFetchSupported","fetch","Request","Response","isReadableStreamSupported","encodeText","TextEncoder","arrayBuffer","supportsRequestStream","duplexAccessed","hasContentType","duplex","supportsResponseStream","resolvers","res","ERR_NOT_SUPPORT","resolveBodyLength","getContentLength","_request","getBodyLength","fetchOptions","composedSignal","toAbortSignal","requestContentLength","contentTypeHeader","isCredentialsSupported","credentials","isStreamResponse","responseContentLength","responseData","knownAdapters","http","xhr","xhrAdapter","fetchAdapter","renderReason","isResolvedHandle","adapters","nameOrAdapter","rejectedReasons","reasons","throwIfCancellationRequested","throwIfRequested","dispatchRequest","VERSION","validators","deprecatedWarnings","validator","formatMessage","opt","desc","opts","ERR_DEPRECATED","warn","assertOptions","schema","allowUnknown","ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","Axios","instanceConfig","interceptors","InterceptorManager","configOrUrl","dummy","boolean","function","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","chain","onFulfilled","onRejected","getUri","generateHTTPMethod","isForm","CancelToken","executor","resolvePromise","_listeners","onfulfilled","_resolve","HttpStatusCode","Continue","SwitchingProtocols","Processing","EarlyHints","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlreadyReported","ImUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","Unused","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","PayloadTooLarge","UriTooLong","UnsupportedMediaType","RangeNotSatisfiable","ExpectationFailed","ImATeapot","MisdirectedRequest","UnprocessableEntity","Locked","FailedDependency","TooEarly","UpgradeRequired","PreconditionRequired","TooManyRequests","RequestHeaderFieldsTooLarge","UnavailableForLegalReasons","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HttpVersionNotSupported","VariantAlsoNegotiates","InsufficientStorage","LoopDetected","NotExtended","NetworkAuthenticationRequired","axios","createInstance","Cancel","spread","isAxiosError","formToJSON","getAdapter","useThemeSystem","forceReflow","UNMOUNTED","EXITED","ENTERING","ENTERED","EXITING","Transition","initialStatus","appearStatus","unmountOnExit","mountOnEnter","nextCallback","prevState","updateStatus","prevProps","nextStatus","cancelNextCallback","getTimeouts","mounting","nodeRef","ReactDOM","performEnter","performExit","_this2","appearing","maybeNode","maybeAppearing","timeouts","enterTimeout","safeSetState","onEntered","onEnter","onEntering","onTransitionEnd","_this3","onExit","onExiting","nextState","setNextCallback","_this4","doesNotHaveTimeoutOrListener","addEndListener","maybeNextCallback","childProps","reflow","getTransitionProps","transitionDuration","transitionTimingFunction","transitionDelay","getCollapseUtilityClass","CollapseRoot","orientation","entered","collapsedSize","hidden","CollapseWrapper","CollapseWrapperInner","wrapperInner","Collapse","collapsedSizeProp","TransitionComponent","wrapperRef","autoTransitionDuration","isHorizontal","normalizedTransitionCallback","maybeIsAppearing","getWrapperSize","handleEnter","isAppearing","handleEntering","wrapperSize","duration2","handleEntered","handleExit","handleExiting","muiSupportAuto","getPaperUtilityClass","PaperRoot","square","rounded","backgroundImage","Paper","defaultProp","isControlled","valueState","isHostComponent","componentProps","slotState","excludeKeys","parameters","getSlotProps","additionalProps","externalSlotProps","externalForwardedProps","joinedClasses","mergedStyle","internalRef","eventHandlers","extractEventHandlers","componentsPropsWithoutEventHandlers","omitEventHandlers","otherPropsWithoutEventHandlers","internalSlotProps","useSlot","initialElementType","getSlotOwnerState","internalForwardedProps","useSlotPropsParams","rootComponent","resolvedComponentsProps","resolveComponentProps","slotComponent","mergeSlotProps","slotOwnerState","finalOwnerState","LeafComponent","appendOwnerState","getAccordionUtilityClass","AccordionRoot","accordionClasses","region","disableGutters","gutters","overflowAnchor","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","AccordionHeading","heading","Accordion","childrenProp","defaultExpanded","expandedProp","onChange","TransitionComponentProp","TransitionProps","TransitionPropsProp","setExpandedState","useControlled","handleChange","summary","toggle","AccordionHeadingSlot","accordionProps","TransitionSlot","transitionProps","AccordionContext","getAccordionSummaryUtilityClass","AccordionSummaryRoot","accordionSummaryClasses","AccordionSummaryContent","AccordionSummaryExpandIconWrapper","expandIconWrapper","expandIcon","getAccordionDetailsUtilityClass","AccordionDetailsRoot","getTableContainerUtilityClass","TableContainerRoot","overflowX","getTableUtilityClass","TableRoot","stickyHeader","borderCollapse","borderSpacing","captionSide","defaultComponent","Table","table","TableContext","getTableHeadUtilityClass","TableHeadRoot","tablelvl2","Tablelvl2Context","getTableRowUtilityClass","TableRowRoot","footer","tableRowClasses","TableRow","getTableCellUtilityClass","TableCellRoot","tableCellClasses","paddingCheckbox","componentProp","paddingProp","scope","scopeProp","sizeProp","sortDirection","variantProp","isHeadCell","ariaSort","getTableBodyUtilityClass","TableBodyRoot","useThemeProps","systemUseThemeProps","getGridUtilityClass","GRID_SIZES","gridClasses","wrap","extractZeroValueBreakpointKeys","nonZeroKey","sortedBreakpointKeysByValue","GridRoot","zeroMinWidth","spacingStyles","resolveSpacingStyles","breakpointsStyles","rowSpacing","rowSpacingValues","zeroValueBreakpointKeys","columnSpacing","columnSpacingValues","columnsBreakpointValues","columnValue","more","spacingClasses","resolveSpacingClasses","breakpointsClasses","Grid","columnsProp","columnSpacingProp","rowSpacingProp","columnsContext","GridContext","otherFiltered","getSvgIconUtilityClass","SvgIconRoot","hasSvgAsChild","SvgIcon","htmlColor","inheritViewBox","titleAccess","viewBox","instanceFontSize","focusable","createSvgIcon","formatValue","MetricSection","title","metrics","strategies","metricsData","AccordionSummary","ExpandMoreIcon","AccordionDetails","TableContainer","TableHead","strategy","TableBody","metric","_metricsData$Portfoli","_metricsData$Benchmar","Portfolio","Benchmark","_metricsData$strategy","MetricsTable","getDividerUtilityClass","DividerRoot","absolute","vertical","flexItem","withChildren","withChildrenVertical","textAlignRight","textAlignLeft","borderWidth","borderBottomWidth","dividerChannel","borderRightWidth","borderTopStyle","borderLeftStyle","DividerWrapper","wrapperVertical","Divider","muiSkipListHighlight","globalId","maybeReactUseId","idOverride","reactId","defaultId","setDefaultId","useGlobalId","ownerWindow","later","TextareaAutosize","forwardedRef","maxRows","minRows","inputRef","heightRef","shadowRef","calculateTextareaStyles","computedStyle","outerHeightStyle","overflowing","inputShallow","placeholder","borderTopWidth","innerHeight","scrollHeight","singleRowHeight","outerHeight","syncHeight","textareaStyles","handleResize","rAF","debounceHandleResize","containerWindow","resizeObserver","ResizeObserver","observe","cancelAnimationFrame","disconnect","rows","formControlState","states","muiFormControl","useFormControl","FormControlContext","hasValue","isFilled","SSR","getInputBaseUtilityClass","_InputGlobalStyles","rootOverridesResolver","formControl","startAdornment","adornedStart","endAdornment","adornedEnd","sizeSmall","multiline","hiddenLabel","inputOverridesResolver","inputSizeSmall","inputMultiline","inputTypeSearch","inputAdornedStart","inputAdornedEnd","inputHiddenLabel","InputBaseRoot","inputBaseClasses","InputBaseInput","placeholderHidden","placeholderVisible","WebkitTextFillColor","disableInjectingGlobalStyles","animationDuration","resize","InputGlobalStyles","globalCss","InputBase","ariaDescribedby","autoComplete","componentsProps","inputComponent","inputProps","inputPropsProp","inputRefProp","renderSuffix","valueProp","handleInputRefWarning","handleInputRef","setFocused","fcs","onFilled","onEmpty","checkDirty","InputComponent","setAdornedStart","Root","rootProps","Input","onAnimationStart","getInputUtilityClass","InputRoot","inputBaseRootOverridesResolver","disableUnderline","underline","bottomLineColor","onBackgroundChannel","inputClasses","borderBottomStyle","InputInput","inputBaseInputOverridesResolver","componentsPropsProp","inputComponentsProps","RootSlot","InputSlot","getFilledInputUtilityClass","FilledInputRoot","hoverBackground","hoverBg","filledInputClasses","disabledBg","FilledInputInput","WebkitBoxShadow","caretColor","_ref11","_ref12","_ref13","_ref14","_ref15","filledInputComponentsProps","_span","NotchedOutlineRoot","NotchedOutlineLegend","float","withLabel","notched","getOutlinedInputUtilityClass","OutlinedInputRoot","outlinedInputClasses","notchedOutline","OutlinedInputInput","OutlinedInput","_React$Fragment","filled","getFormLabelUtilityClasses","FormLabelRoot","colorSecondary","formLabelClasses","AsteriskComponent","asterisk","FormLabel","getInputLabelUtilityClasses","InputLabelRoot","shrink","disableAnimation","animated","transformOrigin","shrinkProp","muiNames","getFormControlUtilityClasses","FormControlRoot","FormControl","visuallyFocused","initialAdornedStart","isMuiElement","setFilled","initialFilled","focusedState","registerEffect","childContext","getFormHelperTextUtilityClasses","FormHelperTextRoot","contained","formHelperTextClasses","getReactElementRef","skipResolvingSlotProps","getListUtilityClass","ListRoot","disablePadding","dense","subheader","listStyle","ListContext","getScrollbarSize","win","documentWidth","innerWidth","nextItem","list","disableListWrap","previousItem","previousElementSibling","textCriteriaMatches","nextFocus","textCriteria","repeating","moveFocus","currentFocus","disabledItemsFocusable","traversalFunction","wrappedOnce","nextFocusDisabled","hasAttribute","MenuList","actions","autoFocusItem","listRef","textCriteriaRef","previousKeyMatched","lastTime","adjustStyleForScrollbar","containerElement","noExplicitWidth","scrollbarSize","activeItemIndex","items","newChildProps","List","lowerKey","currTime","keepFocusOnCurrent","getScale","entering","isWebKit154","Grow","autoTimeout","candidatesSelector","defaultGetTabbable","regularTabNodes","orderedTabNodes","nodeTabIndex","tabindexAttr","getTabIndex","getRadio","roving","isNonTabbableRadio","isNodeMatchingSelectorFocusable","documentOrder","defaultIsEnabled","disableAutoFocus","disableEnforceFocus","disableRestoreFocus","getTabbable","isEnabled","ignoreNextEnforceFocus","sentinelStart","sentinelEnd","nodeToRestore","reactFocusEventTarget","activated","rootRef","lastKeydown","doc","loopFocus","contain","rootElement","hasFocus","tabbable","isShiftTab","focusNext","focusPrevious","interval","setInterval","clearInterval","handleFocusSentinel","childrenPropsHandler","disablePortal","mountNode","setMountNode","getContainer","Fade","defaultTimeout","webkitTransition","getBackdropUtilityClass","BackdropRoot","invisible","transitionPropsRemoved","removeOwnerState","createChainedFunction","funcs","ariaHidden","hide","getPaddingRight","ariaHiddenSiblings","mountElement","currentElement","elementsToExclude","isNotExcludedElement","isNotForbiddenElement","isForbiddenTagName","isInputHidden","isAriaHiddenForbiddenOnElement","findIndexOf","handleContainer","restoreStyle","disableScrollLock","isOverflowing","scrollContainer","DocumentFragment","parentElement","overflowY","restore","removeProperty","manager","modals","containers","modalIndex","modalRef","hiddenSiblings","getHiddenSiblings","containerIndex","ariaHiddenState","nextTop","isTopModal","disableEscapeKeyDown","closeAfterTransition","onTransitionEnter","onTransitionExited","onClose","mountNodeRef","exited","setExited","hasTransition","getHasTransition","ariaHiddenProp","getModal","handleMounted","handleOpen","resolvedContainer","handlePortalRef","handleClose","createHandleKeyDown","otherHandlers","createHandleBackdropClick","getRootProps","propsEventHandlers","externalEventHandlers","getBackdropProps","portalRef","getModalUtilityClass","ModalRoot","ModalBackdrop","Backdrop","backdrop","Modal","BackdropComponent","BackdropProps","classesProp","hideBackdrop","keepMounted","onBackdropClick","propsWithDefaults","useModal","BackdropSlot","backdropProps","backdropRef","FocusTrap","getPopoverUtilityClass","getOffsetTop","getOffsetLeft","horizontal","getTransformOriginValue","resolveAnchorEl","anchorEl","PopoverRoot","PopoverPaper","PaperBase","Popover","anchorOrigin","anchorPosition","anchorReference","containerProp","marginThreshold","PaperProps","PaperPropsProp","transitionDurationProp","externalPaperSlotProps","paperRef","getAnchorOffset","resolvedAnchorEl","anchorRect","getTransformOrigin","elemRect","getPositioningStyle","offsetWidth","offsetHeight","elemTransformOrigin","heightThreshold","widthThreshold","isPositioned","setIsPositioned","setPositioningStyles","positioning","updatePosition","PaperSlot","paperProps","rootSlotPropsProp","handlePaperRef","getMenuUtilityClass","RTL_ORIGIN","LTR_ORIGIN","MenuRoot","MenuPaper","WebkitOverflowScrolling","MenuMenuList","disableAutoFocusItem","MenuListProps","PopoverClasses","isRtl","menuListActionsRef","paperExternalSlotProps","rootSlotProps","useSlotProps","paperSlotProps","getNativeSelectUtilityClasses","StyledSelectSelect","nativeSelectClasses","NativeSelectSelect","select","StyledSelectIcon","NativeSelectIcon","iconOpen","IconComponent","getSelectUtilityClasses","SelectSelect","selectClasses","SelectIcon","SelectNativeInput","nativeInput","areEqualValues","isEmpty","SelectInput","ariaLabel","autoWidth","defaultOpen","displayEmpty","labelId","MenuProps","onOpen","openProp","renderValue","SelectDisplayProps","tabIndexProp","setValueState","openState","setOpenState","displayRef","displayNode","setDisplayNode","isOpenControlled","menuMinWidthState","setMenuMinWidthState","handleDisplayRef","anchorElement","isCollapsed","update","childrenArray","handleItemClick","itemIndex","clonedEvent","displaySingle","displayMultiple","computeDisplay","foundMatch","menuMinWidth","buttonId","listboxId","childItem","styledRootConfig","StyledInput","StyledOutlinedInput","StyledFilledInput","Select","ArrowDropDownIcon","native","NativeSelectInput","restOfClasses","outlined","inputComponentRef","getTextFieldUtilityClass","variantComponent","TextFieldRoot","TextField","FormHelperTextProps","FormHelperTextPropsProp","helperText","InputLabelProps","InputLabelPropsProp","InputProps","InputPropsProp","SelectProps","SelectPropsProp","helperTextId","inputLabelId","inputLabel","htmlInput","formHelperText","inputAdditionalProps","inputLabelSlotProps","InputLabelSlot","inputLabelProps","InputLabel","HtmlInputSlot","htmlInputProps","FormHelperTextSlot","formHelperTextProps","FormHelperText","SelectSlot","selectProps","InputElement","htmlFor","getInputAdornmentUtilityClass","InputAdornmentRoot","disablePointerEvents","inputAdornmentClasses","positionStart","InputAdornment","disableTypography","getListItemTextUtilityClass","getMenuItemUtilityClass","MenuItemRoot","menuItemClasses","dividerClasses","inset","listItemTextClasses","listItemIconClasses","backgroundClip","menuItemRef","useMediaQueryOld","query","defaultMatches","ssrMatchMedia","noSsr","setMatch","queryList","updateMatch","maybeReactUseSyncExternalStore","useMediaQueryNew","getDefaultSnapshot","getServerSnapshot","mediaQueryList","notify","useMediaQuery","queryInput","supportMatchMedia","areViewsEqual","views","expectedViews","expectedView","mergeDateAndTime","dateParam","timeParam","mergedDate","setHours","setMinutes","setSeconds","setMilliseconds","findClosestEnabledDate","disableFuture","disablePast","maxDate","minDate","isDateDisabled","timezone","today","forward","backward","addDays","applyDefaultDate","getMonthsInYear","startOfYear","prevMonth","addMonths","getTodayDate","valueType","startOfDay","dateViews","isDatePickerView","resolveDateFormat","isInToolbar","dayOfMonth","getCurrentLocaleCode","normalDateWithWeekday","normalDate","keyboardDate","getWeekdays","startOfWeek","timeViews","getSecondsInDay","SECTION_TYPE_GRANULARITY","roundDate","granularity","startOfMonth","roundedDate","getDefaultReferenceDate","inGetTodayDate","referenceDate","isAfterDay","isBeforeDay","createIsAfterIgnoreDatePart","disableIgnoringDatePartForTimeValidation","dateLeft","dateRight","minTime","maxTime","getDateSectionConfigFromFormatToken","formatToken","formatTokenMap","maxLength","sectionType","getDaysInWeekStr","elements","startDate","endDate","endOfWeek","weekDay","formatByString","getLetterEditingOptions","endOfDay","NON_LOCALIZED_DIGITS","removeLocalizedDigits","valueStr","localizedDigits","digits","currentFormattedDigit","matchingDigitIndex","applyLocalizedDigits","isStringNumber","nonLocalizedValueStr","cleanLeadingZeros","cleanValueStr","cleanDigitSectionValue","sectionBoundaries","section","setDate","longestMonth","hasLeadingZerosInInput","adjustSectionValue","sectionsValueBoundaries","activeDate","stepsAttributes","delta","getDeltaFromKeyCode","isStart","isEnd","shouldSetAbsolute","adjustDigitSection","currentDate","getCleanValue","minutesStep","newSectionValueNumber","minimum","maximum","adjustLetterSection","currentOptionIndex","getSectionVisibleValue","hasLeadingZeros","hasLeadingZerosInFormat","changeSectionValueFormat","currentFormat","newFormat","isFourDigitYearFormat","doesSectionFormatHaveLeadingZeros","setYear","validateSections","sections","reliableSectionModificationOrder","empty","mergeDateIntoReferenceDate","dateToTransferFrom","shouldLimitToEditedSections","modified","transferDateSectionValue","dateToTransferTo","getYear","setMonth","formattedDaysInWeek","dayInWeekStrOfActiveDate","dayInWeekOfActiveDate","isAM","mergedDateHours","addHours","parseSelectedSections","selectedSections","findIndex","getSectionValueText","parsedDate","getSectionValueNow","hours12h","_excluded","singleItemValueManager","emptyValue","getTodayValue","getInitialReferenceValue","cleanValue","replaceInvalidDateByNull","areValuesEqual","areDatesEqual","isEqual","isSameError","hasError","defaultErrorState","getTimezone","setTimezone","singleItemFieldValueManager","updateReferenceValue","prevReferenceValue","getSectionsFromValue","prevSections","getSectionsFromDate","getV7HiddenInputValueFromSections","startSeparator","endSeparator","getV6InputValueFromSections","createDateStrForV6InputFromSections","dateStr","dateValue","getActiveDateManager","referenceValue","getSections","getNewValuesFromNewActiveDate","newActiveDate","parseValueStr","parseDate","MuiPickersAdapterContext","LocalizationProvider","localeText","inLocaleText","otherInProps","parentUtils","parentLocaleText","dateAdapter","DateAdapter","dateFormats","dateLibInstance","adapterLocale","themeLocaleText","isMUIAdapter","defaultDates","buildGetOpenDialogAriaText","formatKey","contextTranslation","propsTranslation","formattedValue","enUSPickers","previousMonth","nextMonth","openPreviousView","openNextView","calendarViewSwitchingButtonAriaLabel","endTime","cancelButtonLabel","clearButtonLabel","okButtonLabel","todayButtonLabel","datePickerToolbarTitle","dateTimePickerToolbarTitle","timePickerToolbarTitle","dateRangePickerToolbarTitle","clockLabelText","formattedTime","hoursClockNumberText","minutesClockNumberText","secondsClockNumberText","selectViewText","calendarWeekNumberHeaderLabel","calendarWeekNumberHeaderText","calendarWeekNumberAriaLabelText","weekNumber","calendarWeekNumberText","openDatePickerDialogue","formattedDate","openTimePickerDialogue","fieldClearLabel","timeTableLabel","dateTableLabel","fieldYearPlaceholder","digitAmount","fieldMonthPlaceholder","fieldDayPlaceholder","fieldWeekDayPlaceholder","fieldHoursPlaceholder","fieldMinutesPlaceholder","fieldSecondsPlaceholder","fieldMeridiemPlaceholder","DEFAULT_LOCALE","useLocalizationContext","localization","useUtils","useDefaultDates","useNow","utilityClass","getPickersToolbarUtilityClass","PickersToolbarRoot","isLandscape","PickersToolbarContent","landscapeDirection","PickersToolbar","toolbarTitle","titleId","penIconButton","usePickersTranslations","getDatePickerToolbarUtilityClass","DatePickerToolbarRoot","DatePickerToolbarTitle","DatePickerToolbar","toolbarFormat","toolbarPlaceholder","translations","dateText","formatFromViews","useDatePickerDefaultizedProps","openTo","defaultOpenTo","defaultViews","viewsWithDefault","openToWithDefault","applyDefaultViewProps","DATE_VALIDATION_PROP_NAMES","TIME_VALIDATION_PROP_NAMES","DATE_TIME_VALIDATION_PROP_NAMES","VALIDATION_PROP_NAMES","extractValidationProps","extractedProps","validateDate","shouldDisableDate","shouldDisableMonth","shouldDisableYear","valueManager","_parameters$additiona","getIconButtonUtilityClass","IconButtonRoot","edge","activeChannel","iconButtonClasses","IconButton","getWindow","isHTMLElement","isShadowRoot","ShadowRoot","getUAString","uaData","userAgentData","brands","brand","isLayoutViewport","includeScale","isFixedStrategy","clientRect","scaleX","scaleY","visualViewport","addVisualOffsets","offsetLeft","offsetTop","getWindowScroll","pageXOffset","pageYOffset","getNodeName","getDocumentElement","getWindowScrollBarX","isScrollParent","_getComputedStyle","getCompositeRect","elementOrVirtualElement","offsetParent","isFixed","isOffsetParentAnElement","offsetParentIsScaled","isElementScaled","scroll","offsets","getNodeScroll","clientLeft","clientTop","getLayoutRect","getParentNode","assignedSlot","getScrollParent","listScrollParents","_element$ownerDocumen","scrollParent","isBody","updatedList","isTableElement","getTrueOffsetParent","getOffsetParent","isFirefox","currentNode","perspective","willChange","getContainingBlock","auto","basePlacements","viewport","popper","variationPlacements","placement","placements","modifierPhases","modifiers","visited","modifier","requires","requiresIfExists","dep","depModifier","DEFAULT_OPTIONS","areValidElements","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","defaultOptions","orderedModifiers","modifiersData","attributes","effectCleanupFns","isDestroyed","setOptions","setOptionsAction","cleanupModifierEffects","scrollParents","contextElement","phase","orderModifiers","existing","mergeByName","enabled","_ref$options","effect","cleanupFn","noopFn","_state$elements","rects","_state$orderedModifie","_state$orderedModifie2","_options","onFirstUpdate","getBasePlacement","getVariation","getMainAxisFromPlacement","computeOffsets","basePlacement","variation","commonX","commonY","mainAxis","unsetSides","mapToStyles","_Object$assign2","popperRect","gpuAcceleration","adaptive","roundOffsets","_offsets$x","_offsets$y","hasX","hasY","sideX","sideY","heightProp","widthProp","_Object$assign","commonStyles","dpr","devicePixelRatio","roundOffsetsByDPR","initialStyles","arrow","_options$offset","invertDistance","skidding","distance","distanceAndSkiddingToXY","_data$state$placement","popperOffsets","getOppositePlacement","matched","getOppositeVariationPlacement","rootNode","getRootNode","isSameNode","rectToClientRect","getClientRectFromMixedType","clippingParent","html","layoutViewport","getViewportRect","getInnerBoundingClientRect","winScroll","scrollWidth","getDocumentRect","getClippingRect","boundary","rootBoundary","mainClippingParents","clippingParents","clipperElement","getClippingParents","firstClippingParent","clippingRect","accRect","mergePaddingObject","paddingObject","expandToHashMap","hashMap","detectOverflow","_options$placement","_options$strategy","_options$boundary","_options$rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","altContext","clippingClientRect","referenceClientRect","popperClientRect","elementClientRect","overflowOffsets","offsetData","multiply","axis","_skip","_options$mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","specifiedFallbackPlacements","fallbackPlacements","_options$flipVariatio","flipVariations","allowedAutoPlacements","preferredPlacement","oppositePlacement","getExpandedFallbackPlacements","_options$allowedAutoP","allPlacements","allowedPlacements","overflows","computeAutoPlacement","referenceRect","checksMap","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","isVertical","mainVariationSide","altVariationSide","checks","check","_loop","fittingPlacement","within","mathMax","mathMin","_options$tether","tether","_options$tetherOffset","tetherOffset","isBasePlacement","tetherOffsetValue","normalizedTetherOffsetValue","offsetModifierState","_offsetModifierState$","mainSide","altSide","additive","minLen","maxLen","arrowElement","arrowRect","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","arrowOffsetParent","clientOffset","offsetModifierValue","tetherMax","preventedOffset","_offsetModifierState$2","_mainSide","_altSide","_offset","_min","_max","isOriginSide","_offsetModifierValue","_tetherMin","_tetherMax","_preventedOffset","withinMaxClamp","_state$modifiersData$","toPaddingObject","minProp","maxProp","endDiff","startDiff","clientSize","centerToReference","axisProp","centerOffset","_options$element","getSideOffsets","preventedOffsets","isAnySideFullyClipped","side","createPopper","_options$scroll","_options$resize","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","flip","preventOverflow","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","getPopperUtilityClass","defaultPopperOptions","PopperTooltip","initialPlacement","popperOptions","popperRef","popperRefProp","ownerStateProp","tooltipRef","ownRef","handlePopperRef","handlePopperRefRef","rtlPlacement","flipPlacement","setPlacement","resolvedAnchorElement","setResolvedAnchorElement","popperModifiers","Popper","PopperRoot","RootComponent","getPickersPopperUtilityClass","getActiveElement","activeEl","shadowRoot","DEFAULT_DESKTOP_MODE_MEDIA_QUERY","mobileVersionMatches","androidVersion","iOSVersion","slowAnimationDevices","useDefaultReduceAnimations","PickersPopperRoot","MuiPopper","PickersPopperPaper","MuiPaper","PickersPopperPaperWrapper","PaperComponent","popperPlacement","inOwnerState","paperClasses","onPaperClick","onPaperTouchStart","PickersPopper","containerRef","shouldRestoreFocus","onDismiss","reduceAnimations","inReduceAnimations","lastFocusedElementRef","clickAwayRef","onClickAway","movedRef","syntheticEventRef","activatedRef","armClickAwayListener","handleClickAway","insideReactTree","clickedRootScrollbar","insideDOM","composedPath","handleSynthetic","useClickAwayListener","defaultReduceAnimations","desktopTransition","desktopTrapFocus","BaseFocusTrap","desktopPaper","popperProps","useValidation","previousValidationErrorRef","validationError","hasValidationError","getValidationErrorForNewValue","useValueWithTimezone","timezoneProp","firstDefaultValue","inputValue","inputTimezone","setInputTimezone","timezoneToRender","handleValueChange","newValueWithInputTimezone","otherParams","useControlledValueWithTimezone","onChangeProp","valueWithInputTimezone","usePickerValue","wrapperVariant","onAccept","inValueWithoutRenderTimezone","inDefaultValue","closeOnSelect","isOpen","setIsOpen","isControllingOpenProp","setIsOpenState","newIsOpen","useOpenState","inValueWithTimezoneToRender","dateState","setDateState","draft","lastPublishedValue","lastCommittedValue","lastControlledValue","hasBeenModifiedSinceMount","updateDate","updaterParams","hasChanged","comparison","shouldPublish","isCurrentValueTheDefaultValue","pickerAction","selectionState","shouldPublishValue","shouldCommit","changeImportance","shouldCommitValue","shouldClose","shouldClosePicker","cachedContext","getContext","shortcut","isUpdateComingFromPicker","handleClear","handleAccept","handleDismiss","handleCancel","handleSetToday","handleSelectShortcut","handleChangeFromField","onClear","onCancel","onSetToday","fieldResponse","viewValue","fieldProps","viewProps","layoutProps","onSelectShortcut","testedValue","useViews","onViewChange","inView","focusedView","inFocusedView","onFocusedViewChange","previousOpenTo","previousViews","setView","defaultFocusedView","setFocusedView","previousView","viewIndex","nextView","handleFocusedViewChange","viewToFocus","prevFocusedView","handleChangeView","newView","goToNextView","setValueAndGoToNextView","currentViewSelectionState","selectedView","isSelectionFinishedOnCurrentView","hasMoreViews","nextViewAfterSelected","usePickerViews","propsFromPickerValue","additionalViewProps","autoFocusView","rendererInterceptor","fieldRef","viewRenderers","propsToForwardToView","hasUIView","viewModeLookup","viewForReduce","viewMode","timeViewsCount","isTimeView","currentViewMode","popperView","setPopperView","setSelectedSections","focusField","renderCurrentView","renderer","rendererProps","showViewSwitcher","getOrientation","screen","angle","useIsLandscape","customOrientation","setOrientation","eventHandler","itemOrItems","usePicker","pickerValueResponse","pickerViewsResponse","pickerLayoutResponse","propsFromPickerViews","usePickerLayoutProps","getPickersLayoutUtilityClass","pickersLayoutClasses","getDialogActionsUtilityClass","DialogActionsRoot","disableSpacing","PickersActionBar","actionType","DialogActions","getListItemUtilityClass","getListItemSecondaryActionClassesUtilityClass","ListItemSecondaryActionRoot","ListItemSecondaryAction","ListItemRoot","alignItemsFlexStart","hasSecondaryAction","secondaryAction","listItemButtonClasses","ListItemContainer","ContainerComponent","ContainerProps","ContainerClassName","listItemRef","getChipUtilityClass","ChipRoot","iconColor","clickable","onDelete","chipClasses","avatar","deleteIcon","deletable","textColor","defaultAvatarColor","avatarColorPrimary","avatarColorSecondary","avatarSmall","contrastTextChannel","defaultIconColor","selectedChannel","defaultBorder","iconSmall","deleteIconSmall","ChipLabel","isDeleteKeyboardEvent","keyboardEvent","avatarProp","clickableProp","deleteIconProp","iconProp","skipFocusWhenDisabled","chipRef","handleDeleteIconClick","moreProps","CancelIcon","DIALOG_WIDTH","_excluded2","PickersShortcuts","resolvedItems","ListItem","contentWrapper","actionBar","tabs","landscape","shortcuts","ActionBar","actionBarProps","Toolbar","toolbarProps","toolbarHasView","Tabs","Shortcuts","shortcutsProps","PickersLayoutRoot","PickersLayoutContentWrapper","PickersLayout","usePickerLayout","_excluded3","ArrowLeftIcon","ArrowRightIcon","CalendarIcon","ClearIcon","getSectionPlaceholder","sectionConfig","sectionFormat","createSection","shouldRespectLeadingZeros","isValidDate","sectionValue","buildSectionsFromFormat","expandedFormat","formatExpansionOverflow","prevFormat","nextFormat","expandFormat","enableAccessibleFieldDOMStructure","escapedParts","startChar","endChar","escapedCharacters","getEscapedPartsFromFormat","validTokens","regExpFirstWordInFormat","regExpWordOnlyComposedOfTokens","regExpFirstTokenInWord","getEscapedPartOfCurrentChar","escapeIndex","escapedPartOfCurrentChar","isEscapedChar","firstWordInFormat","word","firstWord","buildSections","formatDensity","cleanSeparator","separator","cleanedSeparator","postProcessSections","useFieldState","fieldValueManager","internalProps","referenceDateProp","selectedSectionsProp","onSelectedSectionsChange","valueFromTheOutside","getLocalizedDigits","getSectionsBoundaries","endOfYear","maxDaysInMonth","getDaysInMonth","daysInWeek","lastHourInDay","fallbackSections","stateWithoutReferenceDate","tempValueStrAndroid","getSectionTypeGranularity","innerSetSelectedSections","newSelectedSections","parsedSelectedSections","activeSectionIndex","publishValue","setSectionValue","sectionIndex","newSectionValue","newSections","shouldUpdate","clearValue","clearActiveSection","activeSection","activeDateManager","hasNoOtherNonEmptySections","getInvalidDate","newValues","updateSectionValue","shouldGoToNextSection","newActiveDateSections","getDateFromDateSections","shouldSkipWeekDays","sectionFormats","sectionValues","formatWithoutSeparator","dateWithoutSeparatorStr","updateValueFromValueStr","parseDateStr","newReferenceValue","setTempAndroidValueStr","isQueryResponseWithoutValue","saveQuery","useFieldCharacterEditing","setQuery","resetQuery","applyQuery","getFirstSectionValueMatchingWithQuery","isValidQueryValue","keyPressed","cleanKeyPressed","concatenatedQueryValue","queryResponse","applyCharacterEditing","getNewSectionValue","queryValue","cleanQueryValue","queryValueNumber","applyNumericEditing","findMatchingOptions","matchingValues","testQueryOnFormatAndFallbackFormat","fallbackFormat","formatFallbackValue","getOptions","fallbackOptions","fallbackValue","weekday","applyLetterEditing","resetCharacterQuery","useFieldV7TextField","forwardedProps","sectionListRef","inSectionListRef","onInput","onPaste","focusedProp","sectionOrder","areAllSectionsEmpty","handleSectionListRef","interactions","syncSelectionToDOM","selection","getRoot","getRangeAt","startContainer","blur","Range","getSectionContainer","getSectionContent","selectNodeContents","getActiveSectionIndexFromDOM","getSectionIndexFromDOMElement","newParsedSelectedSections","isFieldFocused","revertDOMSectionChange","handleContainerClick","cursorPosition","startOffset","startIndex","cursorOnStartOfSection","handleContainerInput","handleContainerPaste","pastedValue","getData","handleContainerFocus","handleContainerBlur","getInputContainerClickHandler","handleInputContentMouseUp","getInputContentFocusHandler","handleInputContentPaste","lettersOnly","digitsOnly","digitsAndLetterOnly","handleInputContentDragOver","dropEffect","handleInputContentInput","inputType","domElement","isContainerEditable","isEditable","spellCheck","autoCapitalize","autoCorrect","onDragOver","inputMode","after","handleValueStrChange","returnedValue","cleanString","dirtyString","useFieldV6TextField","focusTimeoutRef","selectionSyncTimeoutRef","inPlaceholder","addPositionPropertiesToSections","positionInInput","renderedValue","sectionStr","sectionLength","sectionLengthInInput","cleanedValue","startInInput","endInInput","currentScrollTop","selectedSection","setSelectionRange","browserStartIndex","browserEndIndex","nextSectionIndex","newSelectedSection","syncSelectionFromDOM","handleInputFocus","handleInputClick","handleInputPaste","handleInputChange","targetValue","eventData","shouldUseEventData","prevValueStr","startOfDiffIndex","endOfDiffIndex","activeSectionEndRelativeToNewValue","inputHasFocus","SHARED_FIELD_INTERNAL_PROP_NAMES","useDateField","useDefaultizedDateField","useSplitFieldProps","extractProp","unstableFieldRef","clearable","stateResponse","characterEditingResponse","useFieldTextField","getSectionOrder","shouldApplyRTL","neighbors","leftIndex","rightIndex","rtl2ltr","ltr2rtl","groupedSectionsStart","groupedSectionsEnd","RTLIndex","rtlIndex","handleContainerKeyDown","inputError","getActiveSectionIndex","commonForwardedProps","commonAdditionalProps","useField","getPickersTextFieldUtilityClass","getPickersInputBaseUtilityClass","pickersInputBaseClasses","getPickersOutlinedInputUtilityClass","pickersOutlinedInputClasses","OutlineRoot","OutlineLabel","OutlineLegend","Outline","clip","getPickersSectionListUtilityClass","pickersSectionListClasses","PickersSectionListRoot","PickersSectionListSection","PickersSectionListSectionSeparator","sectionSeparator","PickersSectionListSectionContent","sectionContent","PickersSection","Section","sectionProps","SectionContent","sectionContentProps","suppressContentEditableWarning","SectionSeparator","sectionSeparatorBeforeProps","sectionSeparatorAfterProps","PickersSectionList","handleRootRef","sectionContainer","sectionindex","elementIndex","PickersInputBaseRoot","PickersInputBaseSectionsContainer","sectionsContainer","PickersInputBaseSection","PickersInputBaseSectionContent","PickersInputBaseSectionSeparator","PickersInputBaseInput","hiddenInput","visuallyHidden","PickersInputBase","sectionBefore","sectionAfter","inputRootProps","InputSectionsContainer","PickersOutlinedInputRoot","PickersOutlinedInputSectionsContainer","PickersOutlinedInput","getPickersFilledInputUtilityClass","pickersFilledInputClasses","PickersFilledInputRoot","PickersFilledSectionsContainer","PickersFilledInput","getPickersInputUtilityClass","pickersInputClasses","PickersInputRoot","PickersInput","VARIANT_COMPONENT","PickersTextFieldRoot","PickersTextField","idProp","PickersInputComponent","DateField","inRef","textField","MuiTextField","textFieldProps","convertedFieldResponse","convertFieldResponseIntoMuiTextFieldProps","processedFieldProps","clearButton","MuiIconButton","iconButtonProps","EndClearIcon","clearIcon","endClearIconProps","useClearableField","useIsDateDisabled","useCalendarState","disableSwitchToMonthOnDayFocus","onMonthChange","reducerFn","createCalendarStateReducer","slideDirection","currentMonth","newMonth","isMonthSwitchingAnimating","focusedDay","isSameDay","needMonthSwitch","isSameMonth","withoutMonthSwitchingAnimation","calendarState","handleChangeMonth","changeMonth","newDate","newDateRequested","onMonthSwitchingAnimationEnd","changeFocusedDay","newFocusedDate","getPickersFadeTransitionGroupUtilityClass","PickersFadeTransitionGroupRoot","PickersFadeTransitionGroup","transKey","getPickersDayUtilityClass","pickersDayClasses","styleArg","disableMargin","outsideCurrentMonth","showDaysOutsideCurrentMonth","disableHighlightToday","dayWithMargin","dayOutsideMonth","hiddenDaySpacingFiller","PickersDayRoot","PickersDayFiller","PickersDayRaw","isAnimating","onDaySelect","onMouseEnter","isToday","isHiddenDaySpacingFiller","PickersDay","replaceClassName","origClass","classToRemove","removeClass","baseVal","CSSTransition","appliedClasses","_this$resolveArgument","resolveArguments","removeClasses","addClass","_this$resolveArgument2","_this$resolveArgument3","getClassNames","isStringClassNames","baseClassName","activeClassName","doneClassName","hasClass","_addClass","_this$appliedClasses$","getPickersSlideTransitionUtilityClass","pickersSlideTransitionClasses","PickersSlideTransitionRoot","slideEnterActive","slideExit","slideTransition","getDayCalendarUtilityClass","PickersCalendarDayRoot","PickersCalendarDayHeader","PickersCalendarWeekDayLabel","weekDayLabel","PickersCalendarWeekNumberLabel","weekNumberLabel","PickersCalendarWeekNumber","PickersCalendarLoadingContainer","loadingContainer","PickersCalendarSlideTransition","enterActive","exitActive","transitionClasses","PickersCalendarWeekContainer","monthContainer","PickersCalendarWeek","weekContainer","WrappedDay","parentProps","focusableDay","selectedDays","currentMonthNumber","isViewFocused","isFocusableDay","isSelected","selectedDay","Day","dayProps","toJsDate","isFirstVisibleCell","isLastVisibleCell","endOfMonth","DayCalendar","onFocusedDayChange","loading","onSelectedDaysChange","renderLoading","dayOfWeekFormatter","gridLabelId","displayWeekNumber","fixedWeekNumber","internalHasFocus","setInternalHasFocus","internalFocusedDay","setInternalFocusedDay","handleDaySelect","focusDay","newFocusedDayDefault","nextAvailableMonth","closestDayToFocus","currentYearNumber","validSelectedDays","transitionKey","slideNodeRef","weeksToDisplay","currentMonthWithTimezone","toDisplay","getWeekArray","additionalWeeks","hasCommonWeek","getWeekNumber","dayIndex","getPickersMonthUtilityClass","pickersMonthClasses","PickersMonthRoot","monthsPerRow","MonthCalendarButton","monthButton","PickersMonth","ariaCurrent","MonthButton","monthButtonProps","getMonthCalendarUtilityClass","MonthCalendarRoot","MonthCalendar","useMonthCalendarDefaultizedProps","onMonthFocus","todayMonth","selectedMonth","focusedMonth","setFocusedMonth","changeHasFocus","newHasFocus","isMonthDisabled","dateToValidate","firstEnabledMonth","lastEnabledMonth","monthToValidate","handleMonthSelection","focusMonth","prevFocusedMonth","monthsInYear","handleMonthFocus","handleMonthBlur","monthNumber","monthText","monthLabel","getPickersYearUtilityClass","pickersYearClasses","PickersYearRoot","yearsPerRow","YearCalendarButton","yearButton","PickersYear","YearButton","yearButtonProps","getYearCalendarUtilityClass","YearCalendarRoot","YearCalendar","useYearCalendarDefaultizedProps","onYearFocus","yearsOrder","todayYear","selectedYear","focusedYear","setFocusedYear","isYearDisabled","isBeforeYear","isAfterYear","yearToValidate","handleYearSelection","focusYear","prevFocusedYear","verticalDirection","horizontalDirection","handleYearFocus","handleYearBlur","scrollerRef","tabbableButton","elementBottom","yearRange","getYearRange","yearNumber","getPickersArrowSwitcherUtilityClass","PickersArrowSwitcherRoot","PickersArrowSwitcherSpacer","spacer","PickersArrowSwitcherButton","PickersArrowSwitcher","isNextDisabled","isNextHidden","onGoToNext","nextLabel","isPreviousDisabled","isPreviousHidden","onGoToPrevious","previousLabel","previousIconButton","nextIconButton","leftArrowIcon","rightArrowIcon","goTo","previousProps","PreviousIconButton","previousIconButtonProps","NextIconButton","nextIconButtonProps","LeftArrowIcon","leftArrowIconProps","RightArrowIcon","rightArrowIconProps","getPickersCalendarHeaderUtilityClass","pickersCalendarHeaderClasses","PickersCalendarHeaderRoot","PickersCalendarHeaderLabelContainer","labelContainer","PickersCalendarHeaderLabel","PickersCalendarHeaderSwitchViewButton","switchViewButton","switchViewIcon","PickersCalendarHeaderSwitchViewIcon","PickersCalendarHeader","SwitchViewButton","switchViewButtonProps","SwitchViewIcon","switchViewIconProps","isNextMonthDisabled","useNextMonthDisabled","isPreviousMonthDisabled","usePreviousMonthDisabled","handleToggleView","nextIndexToOpen","selectPreviousMonth","selectNextMonth","PickerViewRoot","getDateCalendarUtilityClass","DateCalendarRoot","DateCalendarViewTransitionContainer","viewTransitionContainer","DateCalendar","useDateCalendarDefaultizedProps","onYearChange","minDateWithDisabled","maxDateWithDisabled","CalendarHeader","calendarHeader","calendarHeaderProps","handleDateMonthChange","closestEnabledDate","handleDateYearChange","handleSelectedDayChange","baseDateValidationProps","commonViewProps","prevOpenViewRef","renderDateViewCalendar","DesktopDatePicker","defaultizedProps","openPickerIcon","renderPicker","getOpenDialogAriaText","pickerParams","innerSlotProps","isToolbarHidden","pickerFieldProps","ownerStateV8","inputAdornment","MuiInputAdornment","inputAdornmentProps","OpenPickerButton","openPickerButton","openPickerButtonProps","OpenPickerIcon","openPickerIconProps","Field","disableOpenPicker","slotsForField","Layout","layout","labelledById","handleFieldRef","useDesktopPicker","getDialogContentUtilityClass","refType","getDialogTitleUtilityClass","DialogContentRoot","dividers","dialogTitleClasses","getDialogUtilityClass","DialogBackdrop","overrides","DialogRoot","DialogContainer","DialogPaper","paperFullWidth","fullScreen","paperFullScreen","dialogClasses","paperScrollBody","Dialog","defaultTransitionDuration","ariaLabelledbyProp","backdropClick","ariaLabelledby","dialogContextValue","DialogContext","PickersModalDialogRoot","MuiDialog","PickersModalDialogContent","DialogContent","PickersModalDialog","dialog","mobileTransition","mobilePaper","MobileDatePicker","innerFn","externalEvent","onSpaceOrEnter","useMobilePicker","DatePicker","desktopModeMediaQuery","defaultDayjs","localizedFormatPlugin","weekOfYearPlugin","isBetweenPlugin","advancedFormatPlugin","ddd","dddd","defaultFormats","monthShort","dayOfMonthFull","weekdayShort","hours24h","fullDate","shortDate","fullTime","fullTime12h","fullTime24h","keyboardDateTime","keyboardDateTime12h","keyboardDateTime24h","MISSING_UTC_PLUGIN","MISSING_TIMEZONE_PLUGIN","AdapterDayjs","_locale","isTimezoneCompatible","lib","dayjs","setLocaleToValue","expectedLocale","hasUTCPlugin","hasTimezonePlugin","comparing","comparisonTemplate","comparingInValueTimezone","cleanTimezone","guess","createSystemDate","createUTCDate","createTZDate","keepLocalTime","tz","getLocaleFormats","locales","localeObject","adjustOffset","fixedValue","parsedValue","$timezone","isUTC","local","is12HourCycleInCurrentLocale","localeFormats","formatString","formatNumber","numberToFormat","isSameYear","isSameHour","isWithinRange","addYears","amount","addWeeks","addMinutes","addSeconds","hour","minute","second","millisecond","nestedWeeks","years","withLocale","customParseFormatPlugin","getDayOfWeek","asset","setAsset","dataSource","setDataSource","setStartDate","setEndDate","fees","setFees","slippage","setSlippage","noValidate","SearchIcon","MenuItem","renderInput","getFormGroupUtilityClass","FormGroupRoot","row","getRadioGroupUtilityClass","RadioGroup","nameProp","RadioGroupContext","FormGroup","getFormControlLabelUtilityClasses","FormControlLabelRoot","formControlLabelClasses","labelPlacement","control","disabledProp","labelProp","requiredProp","controlProps","TypographySlot","typographySlotProps","getSwitchBaseUtilityClass","SwitchBaseRoot","SwitchBaseInput","SwitchBase","checkedProp","checkedIcon","setCheckedState","hasLabelFor","newChecked","RadioButtonIconRoot","RadioButtonIconBackground","RadioButtonUncheckedIcon","RadioButtonIconDot","RadioButtonCheckedIcon","dot","getRadioUtilityClass","RadioRoot","radioClasses","defaultCheckedIcon","RadioButtonIcon","defaultIcon","Radio","radioGroup","initialExpression","availableIndicators","setStack","expression","setExpression","generateExpression","currentStack","expr","lastFunction","newExpression","addFunction","prevStack","minParams","maxParams","addIndicator","indicator","updateIndicatorParam","newStack","removeItem","DragIndicatorIcon","DeleteIcon","wordBreak","IndicatorSection","_indicators$find","updateRule","strategyIndex","ruleIndex","ruleType","indicators","onIndicatorSelect","handleTypeChange","FormControlLabel","_Fragment","ind","_indicator$params","FunctionBuilder","removeRule","logicalOperator","leftIndicator","operator","op","rightIndicator","indicatorName","selectedIndicator","updateStrategy","addRule","INDICATORS","setExpanded","formatRule","_rule$rightIndicator$","leftPart","rightPart","useRightIndicator","rightValue","getRulesSummary","ExpandLessIcon","getRegimeSummary","_strategy$entryRegime","_strategy$entryRegime2","_strategy$exitRegimeR","_strategy$exitRegimeR2","regimeAsset","regimeEntryAction","regimeExitAction","entryRegimeRules","exitRegimeRules","RuleComponent","addEntryRegimeRule","AddIcon","addExitRegimeRule","AVAILABLE_FREQUENCIES","setStrategies","addStrategy","deleteStrategy","toggleStrategyCollapse","duplicateStrategy","_strategy$entryRules","_strategy$entryRules2","_strategy$exitRules","_strategy$exitRules2","collapsed","ContentCopyIcon","positionType","frequency","allocation","position_size_method","fixed_position_size","volatility_target","volatility_buffer","volatility_lookback","max_leverage","RegimeFilter","entryRulesCollapsed","entryRules","exitRulesCollapsed","exitRules","getTableSortLabelUtilityClass","TableSortLabelRoot","tableSortLabelClasses","TableSortLabelIcon","hideSortIcon","ArrowDownwardIcon","DialogTitleRoot","TradesTable","trades","openAllTrades","setOpenAllTrades","orderBy","setOrderBy","setOrder","formatDate","dateString","numeric","renderTradeRow","trade","entry_date","exit_date","avg_entry_price","avg_exit_price","trade_return","trade_type","renderTableHeader","TableSortLabel","handleRequestSort","sortedTrades","tradesToSort","_columns$find","_columns$find2","aValue","bValue","displayedTrades","DialogTitle","getSwitchUtilityClass","SwitchRoot","switchClasses","thumb","switchBase","SwitchSwitchBase","defaultColor","defaultDisabledColor","SwitchTrack","onBackground","SwitchThumb","mathSign","isPercent","lodashIsNumber","isNan","isNumOrStr","idCounter","uniqueId","getPercentValue","percent","totalValue","validate","getAnyElementOfObject","interpolateNumber","numberA","numberB","findEntryInArray","ary","specifiedKey","specifiedValue","condition","shallowEqual","_typeof","SVGElementPropKeys","PolyElementKeys","FilteredElementKeyMap","svg","polygon","polyline","EventKeys","adaptEventHandlers","newHandler","out","adaptEventsOfChild","originalHandler","getEventHandlerOfChild","_objectWithoutProperties","excluded","sourceKeys","sourceSymbolKeys","REACT_BROWSER_EVENT_MAP","click","mousedown","mouseup","mouseover","mousemove","mouseout","mouseenter","mouseleave","touchcancel","touchend","touchmove","touchstart","getDisplayName","Comp","lastChildren","lastResult","isNil","findAllByType","childType","findChildByType","validateWidthHeight","_el$props","SVG_TAGS","isSvgElement","includeEvents","svgElementType","_inputProps","_FilteredElementKeyMa","matchingElementTypeKeys","isValidSpreadableProp","isChildrenEqual","nextChildren","prevChildren","isSingleChildEqual","nextChild","renderByOrder","renderMap","record","ownKeys","_objectSpread","_defineProperty","toPrimitive","_toPrimitive","_toPropertyKey","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_arrayLikeToArray","_unsupportedIterableToArray","_nonIterableRest","arr2","ResponsiveContainer","aspect","_ref$initialDimension","initialDimension","_ref$width","_ref$height","_ref$minWidth","_ref$debounce","onResize","_ref$style","onResizeRef","_useState2","containerWidth","containerHeight","sizes","setSizes","setContainerSize","newWidth","newHeight","roundedWidth","roundedHeight","_onResizeRef$current","_entries$0$contentRec","contentRect","observer","_containerRef$current","chartContent","calculatedWidth","calculatedHeight","isCharts","invariant","Surface","others","svgView","layerClass","Layer","defaultFormatter","DefaultTooltipContent","_props$separator","_props$contentStyle","contentStyle","_props$itemStyle","itemStyle","_props$labelStyle","labelStyle","formatter","itemSorter","wrapperClassName","labelClassName","labelFormatter","_props$accessibilityL","accessibilityLayer","finalStyle","finalLabelStyle","hasLabel","finalLabel","wrapperCN","labelCN","accessibilityAttributes","finalItemStyle","finalFormatter","finalValue","finalName","formatted","_formatted","renderContent","CSS_CLASS_PREFIX","TOOLTIP_HIDDEN","getTooltipCSSClassName","coordinate","translateX","translateY","getTooltipTranslateXY","allowEscapeViewBox","offsetTopLeft","reverseDirection","tooltipDimension","viewBoxDimension","negative","positive","_defineProperties","_callSuper","_getPrototypeOf","_possibleConstructorReturn","_isNativeReflectConstruct","TooltipBoundingBox","_PureComponent","Constructor","_classCallCheck","dismissed","dismissedAtCoordinate","lastBoundingBox","_this$props$coordinat","_this$props$coordinat2","_this$props$coordinat3","_this$props$coordinat4","protoProps","staticProps","subClass","superClass","_inherits","wrapperNode","box","updateBBox","_this$props$coordinat5","_this$props$coordinat6","animationEasing","hasPayload","isAnimationActive","useTranslate3d","wrapperStyle","_getTooltipTranslate","tooltipBox","getTransformStyle","cssClasses","getTooltipTranslate","outerStyle","isSsr","getUniqPayload","defaultUniqBy","uniqBy","dataKey","filterNull","payloadUniqBy","finalPayload","includeHidden","cursorStyle","trigger","atan2","cos","sin","PI","tau","draw","moveTo","arc","lineTo","closePath","tan30","tan30_2","kr","kx","ky","sqrt3","x0","y0","x1","y1","y2","epsilon","tauEpsilon","Path","_x0","_y0","_x1","_y1","_append","appendRound","quadraticCurveTo","bezierCurveTo","arcTo","x21","y21","x01","y01","l01_2","x20","y20","l21_2","l20_2","l21","l01","tan","acos","t01","t21","a0","ccw","dx","dy","cw","withPath","RangeError","symbolFactories","symbolCircle","symbolCross","symbolDiamond","symbolSquare","symbolStar","symbolTriangle","symbolWye","RADIAN","Symbols","_ref$type","_ref$size","_ref$sizeType","sizeType","cx","cy","filteredProps","symbolFactory","getSymbolFactory","circle","shapeSymbol","calculateAreaSize","registerSymbol","factory","SIZE","DefaultLegendContent","inactiveColor","halfSize","sixthSize","thirdSize","inactive","stroke","legendIcon","iconProps","iconSize","svgStyle","entryValue","renderIcon","_this$props2","renderItems","Legend","_box","onBBoxUpdate","getBBox","hPos","vPos","chartWidth","chartHeight","getBBoxSnapshot","getDefaultPosition","Dot","combineComparators","comparatorA","comparatorB","createIsCircular","areItemsEqual","cachedA","cachedB","getStrictProperties","hasOwn","sameValueZeroEqual","OWNER","areArraysEqual","areMapsEqual","aResult","bResult","matchedIndices","aIterable","bIterable","hasMatch","matchIndex","_a","aKey","_b","bKey","areObjectsEqual","areObjectsEqualStrict","descriptorA","descriptorB","arePrimitiveWrappersEqual","areRegExpsEqual","areSetsEqual","areTypedArraysEqual","deepEqual","createCustomEqual","strict","circular","createInternalComparator","createCustomInternalComparator","createState","createCustomConfig","areArraysEqual$1","areMapsEqual$1","areObjectsEqual$1","areSetsEqual$1","createEqualityComparatorConfig","createEqualityComparator","_indexOrKeyA","_indexOrKeyB","_parentA","_parentB","createIsEqual","setRafTimeout","requestAnimationFrame","safeRequestAnimationFrame","_toArray","iter","_iterableToArray","createAnimateManager","shouldStop","setStyle","_style","_styles","curr","restStyles","_handleChange","hint","prim","mapObject","getTransitionVal","_toConsumableArray","_arrayWithoutHoles","_nonIterableSpread","ACCURACY","cubicBezierFactor","c1","c2","multyTime","pre","cubicBezier","configBezier","_easing$1$split$0$spl2","num","curveX","curveY","derCurveX","newParams","rangeValue","bezier","_t","evalT","derVal","isStepper","configEasing","_config$stiff","stiff","_config$damping","damping","_config$dt","dt","stepper","currX","destX","currV","newV","newX","configSpring","needContinue","calStepperVals","preVals","steps","nextStepVals","_easing2","velocity","preObj","nextObj","preTime","beginTime","interKeys","timingStyle","stepperStyle","cafId","currStyle","_createSuper","Derived","hasNativeReflectConstruct","sham","Proxy","Super","NewTarget","Animate","_super","isActive","handleStyleChange","changeStyle","canBegin","runAnimation","_this$props3","shouldReAnimate","currentFrom","isTriggered","stopJSAnimation","_newState","onAnimationEnd","unSubscribe","startAnimation","configUpdate","_steps$","initialStyle","_steps$$duration","initialTime","sequence","_nextItem$easing","nextProperties","preItem","runJSAnimation","newStyle","propsTo","runStepAnimation","_this$props4","onAnimationReStart","stateStyle","cloneContainer","_container$props","_container$props$styl","parseDurationOfSingleTransition","AnimateGroupChild","_Component","appearOptions","enterOptions","handleStyleActive","leaveOptions","parseTimeout","AnimateGroup","leave","getRectanglePath","radius","maxRadius","ySign","xSign","clockWise","newRadius","_newRadius","isInRectangle","point","minX","maxX","minY","maxY","isUpdateAnimationActive","animationBegin","Rectangle","rectangleProps","pathRef","totalLength","setTotalLength","getTotalLength","pathTotalLength","currWidth","currHeight","currY","initRange","initInterpolator","interpolator","InternMap","keyof","super","_intern","intern_get","intern_set","intern_delete","implicit","unknown","band","bandwidth","ordinalRange","r0","r1","paddingInner","paddingOuter","rescale","rangeRound","pointish","stringCache","widthCache","cacheCount","SPAN_STYLE","MEASUREMENT_SPAN_ID","getStringSize","copyStyle","copyObj","removeInvalidKeys","cacheKey","measurementSpan","measurementSpanStyle","MULTIPLY_OR_DIVIDE_REGEX","ADD_OR_SUBTRACT_REGEX","CSS_LENGTH_UNIT_REGEX","NUM_SPLIT_REGEX","CONVERSION_RATES","cm","FIXED_CSS_LENGTH_UNITS","STR_NAN","DecimalCSS","convertToPx","_NUM_SPLIT_REGEX$exec","numStr","calculateArithmetic","newExpr","_MULTIPLY_OR_DIVIDE_R","leftOperand","rightOperand","lTs","rTs","_ADD_OR_SUBTRACT_REGE","_leftOperand","_operator","_rightOperand","_lTs","_rTs","PARENTHESES_REGEX","evaluateExpression","parentheticalExpression","calculateParentheses","reduceCSSCalc","safeEvaluateExpression","BREAKING_SPACES","calculateWordWidths","breakAll","words","wordsWithComputedWidth","spaceWidth","getWordsWithoutCalculate","getWordsByLines","scaleToFit","maxLines","wordWidths","initialWordsWithComputedWith","lineWidth","shouldLimitLines","calculate","currentLine","newLine","originalResult","trimmedResult","checkOverflow","tempText","doesOverflow","findLongestLine","iterations","middle","_checkOverflow2","doesPrevOverflow","doesMiddleOverflow","calculateWordsByLines","DEFAULT_FILL","Text","_ref5$x","propsX","_ref5$y","propsY","_ref5$lineHeight","_ref5$capHeight","capHeight","_ref5$scaleToFit","_ref5$textAnchor","textAnchor","_ref5$verticalAnchor","verticalAnchor","_ref5$fill","wordsByLines","textProps","startDy","transforms","e10","e5","e2","tickSpec","power","log10","factor","i1","i2","inc","ticks","tickIncrement","tickStep","ascending","descending","bisector","compare1","compare2","lo","mid","zero","ascendingBisect","bisectRight","Color","darker","brighter","reI","reN","reP","reHex","reRgbInteger","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","blanchedalmond","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","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","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","rebeccapurple","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","teal","thistle","tomato","turquoise","violet","wheat","whitesmoke","yellow","yellowgreen","color_formatHex","formatHex","color_formatRgb","formatRgb","rgbn","Rgb","rgba","hsla","rgbConvert","rgb_formatHex","hex","rgb_formatRgb","clampa","clampi","Hsl","hslConvert","clamph","clampt","hsl2rgb","m1","m2","basis","t1","v0","v1","v2","v3","t2","t3","channels","displayable","formatHex8","formatHsl","linear","gamma","nogamma","exponential","rgbGamma","colorRgb","rgbSpline","spline","genericArray","setTime","reA","reB","am","bm","bs","one","numberArray","bimap","interpolate","d0","d1","polymap","bisect","untransform","piecewise","interpolateValue","clamper","invert","interpolateRound","continuous","prefixExponent","formatSpecifier","specifier","FormatSpecifier","comma","formatDecimalParts","%","toLocaleString","formatRounded","formatPrefix","prefixes","grouping","thousands","group","currencyPrefix","currency","currencySuffix","decimal","numerals","formatNumerals","nan","formatTypes","suffix","formatType","maybeSuffix","valuePrefix","valueSuffix","valueNegative","i0","formatTrim","tickFormat","precisionPrefix","precisionRound","precisionFixed","linearish","nice","prestep","maxIter","transformLog","transformExp","transformLogn","transformExpn","pow10","reflect","loggish","logs","pows","log2","logp","powp","transformSymlog","log1p","transformSymexp","expm1","symlogish","symlog","transformPow","transformSqrt","transformSquare","powish","radial","squared","unsquare","valueof","compareDefined","ascendingDefined","quickselect","swap","quantile","Float64Array","numbers","value0","subarray","quantileSorted","thresholds","invertExtent","quantiles","quantize","formatLocale","durationSecond","durationMinute","durationHour","durationDay","durationWeek","durationMonth","durationYear","t0","timeInterval","floori","offseti","getUTCSeconds","timeMinute","utcMinute","setUTCSeconds","getUTCMinutes","timeHour","utcHour","setUTCMinutes","getUTCHours","timeDay","utcDay","setUTCHours","setUTCDate","getUTCDate","unixDay","timeWeekday","timeSunday","timeMonday","timeTuesday","timeWednesday","timeThursday","timeFriday","timeSaturday","utcWeekday","getUTCDay","utcSunday","utcMonday","utcTuesday","utcWednesday","utcThursday","utcFriday","utcSaturday","timeMonth","utcMonth","setUTCMonth","getUTCMonth","getUTCFullYear","timeYear","setFullYear","utcYear","setUTCFullYear","ticker","tickIntervals","tickInterval","utcTicks","utcTickInterval","timeTicks","timeTickInterval","localDate","utcDate","timeFormat","utcFormat","pads","numberRe","percentRe","requoteRe","pad","requote","formatRe","formatLookup","parseWeekdayNumberSunday","parseWeekdayNumberMonday","parseWeekNumberSunday","parseWeekNumberISO","parseWeekNumberMonday","parseFullYear","parseYear","parseZone","parseQuarter","parseMonthNumber","parseDayOfMonth","parseDayOfYear","parseHour24","parseMinutes","parseSeconds","parseMilliseconds","parseMicroseconds","parseLiteralPercent","parseUnixTimestamp","parseUnixTimestampSeconds","formatDayOfMonth","formatHour24","formatHour12","formatDayOfYear","formatMilliseconds","formatMicroseconds","formatMonthNumber","formatMinutes","formatSeconds","formatWeekdayNumberMonday","formatWeekNumberSunday","dISO","formatWeekNumberISO","formatWeekdayNumberSunday","formatWeekNumberMonday","formatYear","formatYearISO","formatFullYear","formatFullYearISO","formatZone","formatUTCDayOfMonth","formatUTCHour24","formatUTCHour12","formatUTCDayOfYear","formatUTCMilliseconds","getUTCMilliseconds","formatUTCMicroseconds","formatUTCMonthNumber","formatUTCMinutes","formatUTCSeconds","formatUTCWeekdayNumberMonday","dow","formatUTCWeekNumberSunday","UTCdISO","formatUTCWeekNumberISO","formatUTCWeekdayNumberSunday","formatUTCWeekNumberMonday","formatUTCYear","formatUTCYearISO","formatUTCFullYear","formatUTCFullYearISO","formatUTCZone","formatLiteralPercent","formatUnixTimestamp","formatUnixTimestampSeconds","calendar","formatMillisecond","formatSecond","formatMinute","formatHour","formatDay","formatWeek","formatMonth","timeWeek","timeSecond","utcTime","utcWeek","utcSecond","k10","sequential","sequentialLog","sequentialSymlog","sequentialPow","sequentialSqrt","sequentialQuantile","k21","r2","diverging","divergingLog","divergingSymlog","divergingPow","divergingSqrt","series","s0","s1","locale_dateTime","dateTime","locale_date","locale_time","locale_periods","periods","locale_weekdays","days","locale_shortWeekdays","shortDays","locale_months","locale_shortMonths","shortMonths","periodRe","periodLookup","weekdayRe","weekdayLookup","shortWeekdayRe","shortWeekdayLookup","monthRe","monthLookup","shortMonthRe","shortMonthLookup","utcFormats","parses","parseSpecifier","newParse","utcParse","defaultLocale","stackValue","stackSeries","PLACE_HOLDER","isPlaceHolder","curry0","_curried","curryN","argsLength","restArgs","newArgs","curry","firstFn","tailsFn","_len4","_key4","newA","uninterpolateNumber","uninterpolateTruncation","rangeStep","getDigitCount","_arr","_n","_d","_e","_s","getValidInterval","validMin","validMax","getFormatStep","roughStep","allowDecimals","correctionFactor","digitCount","Arithmetic","digitCountValue","stepRatio","stepRatioScale","formatStep","getTickOfSingleValue","tickCount","absVal","middleIndex","calculateStep","tickMin","tickMax","belowCount","upCount","scaleCount","getNiceTickValues","_getValidInterval2","cormin","cormax","_values","_calculateStep","getTickValuesFixedDomain","_getValidInterval4","_getValidInterval6","ErrorBar","dataPointFormatter","xAxis","yAxis","svgProps","errorBars","_dataPointFormatter","errorVal","lowBound","highBound","lineCoordinates","_errorVal","yMid","yMin","yMax","xMin","xMax","_scale","xMid","_xMin","_xMax","_yMin","_yMax","coordinates","getLegendProps","legendData","formattedGraphicalItems","legendWidth","legendContent","legendItem","sectors","iconType","legendType","_item$props","getMainColorOfGraphicItem","getWithHeight","getValueByDataKey","getDomainOfDataByKey","filterNil","flattenData","getDomainOfErrorBars","axisType","errorBarChild","isErrorBarRelevantForAxis","mainValue","errorDomain","prevErrorArr","errorValue","lowerValue","upperValue","getDomainOfItemsWithSameAxis","domains","isCategoricalAxis","getCoordinatesOfGrid","minValue","maxValue","syncWithTicks","hasMin","hasMax","getTicksOfAxis","isGrid","isAll","duplicateDomain","offsetForBand","realScaleType","niceTicks","scaleContent","isCategorical","categoricalDomain","handlerWeakMap","combineEventHandlers","defaultHandler","childHandler","childWeakMap","combineHandler","EPS","STACK_OFFSET_MAP","expand","none","stackOffsetNone","silhouette","wiggle","s2","sij0","s3","getStackedData","stackItems","offsetType","dataKeys","offsetAccessor","orderNone","offsetNone","oz","sz","shapeStack","stackOrderNone","getCateCoordinateOfLine","bandSize","allowDuplicatedCategory","matchedTick","getCateCoordinateOfBar","getDomainOfStackGroups","stackGroups","stackId","stackedData","MIN_VALUE_REG","MAX_VALUE_REG","parseSpecifiedDomain","specifiedDomain","dataDomain","allowDataOverflow","getBandSizeOfAxis","isBar","bandWidth","orderedTicks","cur","parseDomainOfCategoryAxis","calculatedDomain","axisChild","getTooltipItem","graphicalItem","_graphicalItem$props","tooltipType","chartType","PREFIX_LIST","isTouch","Brush","leaveTimer","isTravellerMoving","handleTravellerMove","isSlideMoving","handleSlideDrag","handleDrag","onDragEnd","detachDragEndListener","handleDragEnd","leaveTimeOut","isTextActive","slideMoveStartX","attachDragEndListener","travellerDragStartHandlers","startX","handleTravellerDragStart","endX","scaleValues","minIndex","getIndexInRange","maxIndex","tickFormatter","_this$state","travellerWidth","newIndex","getIndex","movingTravellerId","brushMoveStartX","_this$state2","prevValue","_this$props5","isFullGap","_this$state3","currentScaleValue","currentIndex","newScaleValue","_this$props6","_this$props7","chartElement","compact","travellerX","_data$startIndex","_data$endIndex","_this$props8","traveller","travellerProps","ariaLabelBrush","handleEnterSlideOrTraveller","handleLeaveSlideOrTraveller","handleTravellerMoveKeyboard","isTravellerFocused","renderTraveller","_this$props9","handleSlideDragStart","_this$props10","_this$state4","attrs","getTextOfTick","_this$props11","alwaysShowText","_this$state5","isPanoramic","camelName","generatePrefixStyle","handleLeaveWrapper","renderBackground","renderPanorama","renderSlide","renderTravellerLayer","renderText","lineY","renderDefaultTraveller","updateId","prevData","prevUpdateId","prevTravellerWidth","prevX","prevWidth","scalePoint","createScale","valueRange","radianToDegree","angleInRadian","polarToCartesian","getAngleOfPoint","anotherPoint","distanceBetweenPoints","reverseFormatAngleOfSetor","startAngle","endAngle","startCnt","endCnt","inRangeOfSector","sector","_getAngleOfPoint","innerRadius","outerRadius","inRange","_formatAngleOfSector","formatAngleOfSector","formatAngle","renderRadialLabel","labelProps","labelAngle","deltaAngle","getDeltaAngle","startPoint","endPoint","dominantBaseline","Label","_ref4$offset","_props$className","textBreakAll","getLabel","isPolarLabel","isPolar","positionAttrs","midAngle","_polarToCartesian","_x","_polarToCartesian2","getAttrsOfPolarLabel","parentViewBox","verticalSign","verticalOffset","verticalEnd","verticalStart","horizontalSign","horizontalOffset","horizontalEnd","horizontalStart","_attrs2","_attrs3","sizeAttrs","getAttrsOfCartesianLabel","parseViewBox","labelViewBox","renderCallByParent","checkPropsLabel","explicitChildren","implicitLabel","parseLabel","ifOverflowMatches","alwaysShow","ifOverflow","Cell","defaultAccessor","LabelList","_ref$valueAccessor","valueAccessor","restProps","idProps","parseLabelList","getTrapezoidPath","upperWidth","lowerWidth","widthGap","Trapezoid","trapezoidProps","currUpperWidth","currLowerWidth","getTangentCircle","isExternal","cornerRadius","cornerIsExternal","centerRadius","theta","asin","centerAngle","lineTangencyAngle","circleTangency","lineTangency","getSectorPath","tempEndAngle","outerStartPoint","outerEndPoint","innerStartPoint","innerEndPoint","forceCornerRadius","Sector","sectorProps","deltaRadius","cr","_getTangentCircle","soct","solt","sot","_getTangentCircle2","eoct","eolt","eot","outerArcAngle","_getTangentCircle3","sict","silt","sit","_getTangentCircle4","eict","eilt","eit","innerArcAngle","getSectorWithCorner","defaultPropTransformer","ShapeSelector","shapeType","elementProps","isSymbolsProps","Shape","_ref2$propTransformer","propTransformer","_ref2$activeClassName","getPropsFromShapeOption","isFunnel","_item","isPie","isScatter","compareFunnel","shapeData","activeTooltipItem","_activeTooltipItem$la","_activeTooltipItem$la2","xMatches","yMatches","comparePie","startAngleMatches","endAngleMatches","compareScatter","zMatches","getActiveShapeIndexForTooltip","itemData","shapeKey","activeItem","getShapeDataKey","tooltipPayload","_activeItem$tooltipPa","_activeItem$tooltipPa2","getActiveShapeTooltipPayload","activeItemMatches","datum","dataIndex","valuesMatch","mouseCoordinateMatches","getComparisonFn","indexOfMouseCoordinates","typeguardBarRectangleProps","xProp","yProp","xValue","yValue","heightValue","widthValue","BarRectangle","_Bar","Bar","isAnimationFinished","activeIndex","activeBar","baseProps","handleAnimationStart","handleAnimationEnd","animationId","stepData","interpolatorX","interpolatorY","interpolatorWidth","interpolatorHeight","_interpolatorHeight","renderRectanglesStatically","renderRectanglesWithAnimation","backgroundProps","needClip","clipPathId","errorBarItems","dataPoint","errorBarProps","clipPath","needClipX","needClipY","renderRectangles","renderErrorBar","prevAnimationId","curData","xAxisId","yAxisId","minPointSize","barPosition","xAxisTicks","yAxisTicks","dataStartIndex","displayedData","findPositionOfBar","minPointSizeProp","numericAxis","stackedDomain","baseValue","getBaseValueOfBar","cells","truncateByDomain","isValueNumber","minPointSizeCallback","baseValueScale","currentValueScale","computedHeight","_baseValueScale","_currentValueScale","tooltipPosition","rectWithPoints","ScaleHelper","bandAware","_offset2","createLabeledScales","scales","coord","mapValues","isInRange","ReferenceDot","isX","isY","getCoordinate","dotProps","renderDot","isFront","calculateViewBox","XAxisContext","YAxisContext","ViewBoxContext","OffsetContext","ClipPathIdContext","ChartHeightContext","ChartWidthContext","ChartLayoutContextProvider","_props$state","xAxisMap","yAxisMap","useXAxisOrThrow","useYAxisOrThrow","useChartWidth","useChartHeight","ReferenceLine","fixedX","fixedY","segment","endPoints","isFixedX","isFixedY","isSegment","xAxisOrientation","yAxisOrientation","yCoord","xCoord","_coord","_points","_points2","getEndPoints","_endPoints","_endPoints$","_endPoints$2","lineProps","renderLine","rectWithCoords","ReferenceArea","hasX1","hasX2","hasY1","hasY2","xValue1","xValue2","yValue1","yValue2","rangeMin","rangeMax","getRect","renderRect","detectReferenceElementsDomain","axisId","specifiedTicks","lines","areas","idKey","valueKey","finalDomain","key1","key2","value1","value2","tick","eventCenter","SYNC_EVENT","AccessibilityManager","_ref$coordinateList","coordinateList","_ref$container","_ref$layout","_ref$offset","_ref$mouseHandlerCall","mouseHandlerCallback","spoofMouse","_window","_window2","_this$container$getBo","scrollOffsetX","scrollX","scrollOffsetY","scrollY","that","Basis","BasisClosed","BasisOpen","areaStart","_line","areaEnd","lineStart","_point","lineEnd","_x2","_x3","_x4","_y2","_y3","_y4","Bump","LinearClosed","Linear","slope3","h0","slope2","MonotoneX","MonotoneY","ReflectContext","Natural","controlPoints","Step","defined","curve","curveLinear","defined0","pointX","pointY","x0z","y0z","arealine","lineX0","lineY0","lineY1","lineX1","_t0","_y","CURVE_FACTORIES","curveBasisClosed","curveBasisOpen","curveBasis","curveBumpX","curveBumpY","curveLinearClosed","curveMonotoneX","curveMonotoneY","curveNatural","curveStep","curveStepAfter","curveStepBefore","getX","getY","lineFunction","_ref$points","baseLine","_ref$connectNulls","connectNulls","curveFactory","getCurveFactory","formatPoints","formatBaseLine","areaPoints","shapeArea","shapeLine","Curve","realPath","Cross","_ref$x","_ref$y","_ref$top","_ref$left","getRadialCursorPoints","activeCoordinate","getCursorPoints","innerPoint","outerPoint","Cursor","tooltipEventType","activePayload","activeTooltipIndex","tooltipAxisBandSize","chartName","cursorComp","getCursorRectangle","_getRadialCursorPoint","cursorProps","payloadIndex","ORIENT_MAP","FULL_WIDTH_AND_HEIGHT","originCoordinate","renderAsIs","getDisplayedData","graphicalItems","dataEndIndex","itemsData","getDefaultDomainByAxisType","getTooltipContent","chartData","activeLabel","tooltipAxis","_child$props$data","getTooltipData","rangeObj","rangeData","chartX","chartY","calculateTooltipPos","orderedTooltipTicks","tooltipTicks","_ticks$length","unsortedTicks","sameDirectionCoord","diffInterval","curInRange","afterInRange","sameInterval","calculateActiveTickIndex","_angle","_radius","getActiveCoordinate","getAxisMapByAxes","axes","axisIdKey","stackOffset","_child$props$domain2","_child$props","domainStart","domainEnd","isDomainSpecifiedByUser","defaultDomain","_child$props$domain","childDomain","duplicate","hasDuplicate","errorBarsDomain","parseErrorBarsOfAxis","hasStack","axisDomain","originalDomain","getAxisMap","_ref4$axisType","AxisComp","axisMap","Axis","getAxisMapByItems","createDefaultState","defaultShowTooltip","brushItem","isTooltipActive","getAxisNameByLayout","numericAxisName","cateAxisName","calculateOffset","prevLegendBBox","_ref5$xAxisMap","_ref5$yAxisMap","offsetH","mirror","offsetV","brushBottom","_unused","legendBox","legendProps","boxWidth","boxHeight","appendOffsetOfLegend","getCartesianAxisSize","axisObj","axisName","Line","lineLength","generateSimpleStrokeDasharray","remainLength","restLength","remainLines","emptyLines","mainCurve","curveDom","clipDot","customDotProps","renderDotItem","dotsProps","curveProps","animateNewValues","prevPoints","prevPointsDiffFactor","prevPointIndex","_interpolatorX","_interpolatorY","renderCurveStatically","currentStrokeDasharray","curLength","getStrokeDasharray","renderCurveWithAnimation","_filterProps","hasSinglePoint","_ref2$r","_ref2$strokeWidth","_ref3$clipDot","isDotProps","dotSize","renderCurve","renderDots","curPoints","linesUnit","dotItem","getEveryNthWithCondition","getAngledTickWidth","contentSize","unitSize","normalizedAngle","normalizeAngle","angleRadians","angleThreshold","atan","angledWidth","getAngledRectangleWidth","isVisible","tickPosition","getSize","getTicks","minTickGap","getNumberIntervalTicks","candidates","sizeKey","getTickSize","boundaries","isWidth","getTickBoundaries","_ret","initialStart","stepsize","tickCoord","isShow","getEquidistantTicks","preserveEnd","tailSize","tailGap","_loop2","getTicksStart","getTicksEnd","activeDot","CartesianAxis","viewBoxOld","restPropsOld","htmlLayer","layerReference","getElementsByClassName","tx","ty","tickSize","tickMargin","finalTickSize","axisLine","needHeight","needWidth","tickLine","finalTicks","getTickTextAnchor","getTickVerticalAnchor","axisProps","customTickProps","tickLineProps","_this2$getTickLineCoo","getTickLineCoord","lineCoord","tickProps","visibleTicksCount","renderTickItem","ticksGenerator","noTicksProps","renderAxisLine","renderTicks","XAxis","axisOptions","reversed","YAxis","LineChart","_CategoricalChartWrapper","GraphicalChild","_ref6$defaultTooltipE","defaultTooltipEventType","_ref6$validateTooltip","validateTooltipEventTypes","axisComponents","formatAxisMap","getFormatItems","barSize","barGap","barCategoryGap","globalMaxBarSize","maxBarSize","_getAxisNameByLayout","hasBar","hasGraphicalBarItem","formattedItems","childMaxBarSize","numericAxisId","cateAxisId","cateAxis","cateTicks","getStackedDataOfItem","itemIsBar","sizeList","globalSize","totalSize","_ref2$stackGroups","numericAxisIds","sgs","stackIds","sLen","_sgs$stackIds$j","barItems","selfSize","cateId","stackList","getBarSizeList","_getBandSizeOfAxis","barBandSize","_ref3$sizeList","realBarGap","useFull","fullBarSize","newPosition","newRes","originalSize","getBarPosition","composedFn","getComposedData","childIndex","updateStateOfAxisMapsOffsetAndStackGroups","reverseStackOrder","_getAxisNameByLayout2","_items","_item$props2","parentGroup","childGroup","getStackGroupsByAxisId","legendBBox","ticksObj","tooltipTicksGenerator","CategoricalChartWrapper","_props$id","_props$throttleDelay","cId","syncId","eventEmitterSymbol","syncMethod","applySyncEvent","triggerSyncEvent","mouse","getMouseInfo","_nextState","onMouseMove","throttleTriggeredAfterMouseMove","_mouse","eventName","getReactEventByType","_nextState2","validateChartX","validateChartY","_element$props$active","getTooltipEventType","axisOption","_element$props","radialLines","polarAngles","polarRadius","radiusAxisMap","angleAxisMap","radiusAxis","angleAxis","handleLegendBBoxUpdate","_tooltipItem$props$ac","tooltipItem","_this$state6","handleBrushChange","_this$state7","_element$props2","activePoint","basePoint","isRange","_item$item$props","renderActiveDot","filterFormatItem","_this$state8","_item$item$props2","activeShape","hasActive","itemEvents","handleItemMouseEnter","handleItemMouseLeave","_this$getItemByXY","_ref11$graphicalItem","getItemByXY","_ref11$graphicalItem$","xyItem","renderActivePoints","CartesianGrid","renderReferenceElement","renderBrush","renderGraphicChild","Area","Radar","RadialBar","Scatter","Pie","Funnel","renderCursor","PolarGrid","renderPolarGrid","PolarAngleAxis","renderPolarAxis","PolarRadiusAxis","Customized","renderCustomized","triggeredAfterMouseMove","throttleDelay","_this$props$margin$le","_this$props$margin$to","accessibilityManager","setDetails","displayDefaultTooltip","tooltipElem","defaultIndex","independentAxisCoord","dependentAxisCoord","scatterPlotElement","setIndex","_this$props$margin$le2","_this$props$margin$to2","eventType","boundingRect","containerOffset","_this$state9","xScale","yScale","toolTipData","scaledX","scaledY","_this$state10","tooltipEvents","handleClick","handleMouseEnter","handleMouseMove","handleOuterEvent","handleReceiveSyncEvent","_this$state$offset","_ref16","_this$state$xAxisMap","_this$state$yAxisMap","chartXY","_this$state11","itemDisplayName","activeBarItem","_activeBarItem","_this$props$tabIndex","_this$props$role","renderClipPath","parseEventsOfWrapper","renderLegend","renderTooltip","defaultState","prevDataKey","prevHeight","prevLayout","prevStackOffset","prevMargin","_defaultState","keepFromPrevState","updatesToState","_brush$props$startInd","_brush$props","_brush$props$endIndex","_brush$props2","brush","hasDifferentStartOrEndIndex","newUpdateId","generateCategoricalChart","ids","leftMirror","rightMirror","topMirror","bottomMirror","calculatedPadding","needSpace","_axis$padding","offsetKey","smallestDistanceBetweenValues","smallestDistanceInPercent","rangeWidth","halfBand","_parseScale","d3Scales","parseScale","checkDomainOfScale","scaleType","tickValues","_domain","getTicksOfScale","finalAxis","Background","renderLineItem","lineItem","restOfFilteredProps","HorizontalGridLines","_props$horizontal","horizontalPoints","lineItemProps","VerticalGridLines","_props$vertical","verticalPoints","HorizontalStripes","horizontalFill","_props$horizontal2","roundedSortedHorizontalPoints","colorIndex","VerticalStripes","_props$vertical2","verticalFill","roundedSortedVerticalPoints","defaultVerticalCoordinatesGenerator","defaultHorizontalCoordinatesGenerator","_props$stroke","_props$fill","_props$horizontal3","_props$horizontalFill","_props$vertical3","_props$verticalFill","propsIncludingDefaults","horizontalValues","verticalValues","useArbitraryXAxis","useYAxisWithFiniteDomainOrRandom","verticalCoordinatesGenerator","horizontalCoordinatesGenerator","isHorizontalValues","generatorResult","isVerticalValues","_generatorResult","getCardUtilityClass","CardRoot","raised","getCardContentUtilityClass","CardContentRoot","getCheckboxUtilityClass","CheckboxRoot","indeterminate","checkboxClasses","CheckBoxIcon","CheckBoxOutlineBlankIcon","defaultIndeterminateIcon","IndeterminateCheckBoxIcon","Checkbox","indeterminateIcon","indeterminateIconProp","EquityCurveChart","assetName","showBenchmark","setShowBenchmark","visibleStrategies","setVisibleStrategies","useLogEquity","setUseLogEquity","CustomTooltip","yAxisDomain","allValues","cumulative_log_equity","cumulative_equity","cumulative_log_market_equity","cumulative_market_equity","Card","CardContent","toggleStrategy","strategyName","shouldShowTick","tickItem","RollingSharpeChart","formatXAxis","DrawdownChart","formatYAxis","lim","p2b","n2b","b2n","n2p","map$1","hexString","isShort","HUE_RE","hsl2rgbn","hsv2rgbn","hwb2rgbn","rgb2hsl","hueValue","calln","hue","hueParse","hwb2rgb","hsv2rgb","names$1","OiceXe","antiquewEte","aquamarRe","azuY","blanKedOmond","XeviTet","bPwn","caMtXe","KartYuse","KocTate","cSO","cSnflowerXe","cSnsilk","xXe","xcyan","xgTMnPd","xWay","xgYF","xgYy","xkhaki","xmagFta","xTivegYF","xSange","xScEd","xYd","xsOmon","xsHgYF","xUXe","xUWay","xUgYy","xQe","xviTet","dAppRk","dApskyXe","dimWay","dimgYy","dodgerXe","fiYbrick","flSOwEte","foYstWAn","fuKsia","gaRsbSo","ghostwEte","gTd","gTMnPd","Way","gYF","gYFLw","gYy","honeyMw","hotpRk","RdianYd","Rdigo","ivSy","lavFMr","lavFMrXsh","lawngYF","NmoncEffon","ZXe","ZcSO","Zcyan","ZgTMnPdLw","ZWay","ZgYF","ZgYy","ZpRk","ZsOmon","ZsHgYF","ZskyXe","ZUWay","ZUgYy","ZstAlXe","ZLw","limegYF","lRF","magFta","maPon","VaquamarRe","VXe","VScEd","VpurpN","VsHgYF","VUXe","VsprRggYF","VQe","VviTetYd","midnightXe","mRtcYam","mistyPse","moccasR","navajowEte","Tdlace","Tive","TivedBb","Sange","SangeYd","ScEd","pOegTMnPd","pOegYF","pOeQe","pOeviTetYd","papayawEp","pHKpuff","pRk","powMrXe","purpN","YbeccapurpN","Psybrown","PyOXe","saddNbPwn","sOmon","sandybPwn","sHgYF","sHshell","siFna","skyXe","UXe","UWay","UgYy","sprRggYF","stAlXe","teO","tEstN","viTet","JHt","wEte","wEtesmoke","Lw","LwgYF","nameParse","unpacked","tkeys","unpack","transparent","RGB_RE","modHSL","ratio","tmp","fromObject","functionParse","rgbParse","hexParse","_rgb","_valid","valid","rgbString","hslString","mix","weight","w2","w1","rgb1","rgb2","clearer","greyscale","opaquer","negate","saturate","desaturate","rotate","deg","isNullOrUndef","isNumberFinite","finiteOrDefault","valueOrDefault","toDimension","dimension","each","loopable","_elementsEqual","ilen","datasetIndex","klen","isValidKey","_merger","tval","sval","sources","merger","mergeIf","_mergerIf","keyResolvers","resolveObjectKey","parts","part","_splitKey","_getKeyResolver","_capitalize","setsEqual","TAU","PITAU","POSITIVE_INFINITY","RAD_PER_DEG","HALF_PI","QUARTER_PI","TWO_THIRDS_PI","almostEquals","niceNum","roundedRange","niceRange","fraction","_setMinAndMaxByKey","toRadians","degrees","toDegrees","radians","_decimalPlaces","getAngleFromPoint","centrePoint","anglePoint","distanceFromXCenter","distanceFromYCenter","radialDistanceFromCenter","pt1","pt2","_angleDiff","_normalizeAngle","_angleBetween","sameAngleIsFullCircle","angleToStart","angleToEnd","startToAngle","endToAngle","_limitValue","_isBetween","_lookup","_lookupByKey","_rlookupByKey","arrayEvents","unlistenArrayEvents","stub","_chartjs","_arrayUnique","requestAnimFrame","argsToUse","ticking","_toLeftRightCenter","_alignStartEnd","_getStartAndCountOfVisiblePoints","animationsDisabled","pointCount","_sorted","iScale","_parsed","minDefined","maxDefined","getUserBounds","getPixelForValue","_scaleRangesChanged","_scaleRanges","newRanges","xmin","xmax","ymin","ymax","changed","atEdge","elasticIn","elasticOut","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","easeInSine","easeOutSine","easeInOutSine","easeInExpo","easeOutExpo","easeInOutExpo","easeInCirc","easeOutCirc","easeInOutCirc","easeInElastic","easeOutElastic","easeInOutElastic","easeInBack","easeOutBack","easeInOutBack","easeInBounce","easeOutBounce","easeInOutBounce","isPatternOrGradient","getHoverColor","intlCache","Intl","NumberFormat","getNumberFormat","formatters","tickValue","chart","notation","maxTick","calculateDelta","logDelta","numDecimal","minimumFractionDigits","maximumFractionDigits","logarithmic","remain","significand","Ticks","getScope$1","Defaults","_descriptors","_appliers","datasets","getDevicePixelRatio","family","hoverBackgroundColor","hoverBorderColor","hoverColor","indexAxis","interaction","intersect","includeInvisible","maintainAspectRatio","onHover","parsing","plugins","responsive","showLine","drawActiveElementsOnTop","describe","override","route","targetScope","targetName","scopeObject","targetScopeObject","privateName","appliers","_scriptable","_indexable","_fallback","loop","show","animations","visible","autoPadding","beginAtZero","bounds","grace","grid","drawOnChartArea","drawTicks","tickLength","tickWidth","_ctx","tickColor","dash","dashOffset","minRotation","maxRotation","textStrokeWidth","textStrokeColor","autoSkip","autoSkipPadding","labelOffset","minor","major","crossAlign","showLabelBackdrop","backdropColor","backdropPadding","_measureText","longest","textWidth","measureText","_alignPixel","pixel","currentDevicePixelRatio","halfWidth","clearCanvas","canvas","save","resetTransform","clearRect","drawPoint","drawPointLegend","xOffset","yOffset","xOffsetW","yOffsetW","pointStyle","rotation","rad","translate","drawImage","beginPath","ellipse","SQRT1_2","_isPointInArea","clipArea","unclipArea","_steppedLineTo","midpoint","_bezierCurveTo","cp1x","cp2x","cp1y","cp2y","decorateText","strikethrough","actualBoundingBoxLeft","actualBoundingBoxRight","actualBoundingBoxAscent","actualBoundingBoxDescent","yDecoration","strokeStyle","fillStyle","decorationWidth","drawBackdrop","oldColor","fillRect","strokeColor","translation","textBaseline","setRenderOpts","strokeText","fillText","addRoundedRectPath","topLeft","bottomLeft","bottomRight","topRight","LINE_HEIGHT","FONT_STYLE","toLineHeight","_readValueToProps","toTRBL","toTRBLCorners","toPadding","toFont","toFontString","inputs","cacheable","parentContext","_createResolver","scopes","getTarget","finalRootScopes","_cacheable","_scopes","_rootScopes","_getTarget","deleteProperty","_keys","_cached","proxy","readKey","needsSubResolver","createSubResolver","_resolveWithPrefixes","getKeysFromAllScopes","storage","_storage","_attachContext","subProxy","descriptorDefaults","_proxy","_subProxy","_stack","setContext","receiver","isScriptable","_resolveScriptable","isIndexable","_resolveArray","_resolveWithContext","scriptable","indexable","_allKeys","resolveFallback","getScope","addScopes","parentScopes","parentFallback","rootScopes","allScopes","addScopesFromKey","subGetTarget","resolveKeysFromAllScopes","EPSILON","getPoint","skip","getValueAxis","splineCurve","firstPoint","middlePoint","afterPoint","d01","d12","s01","s12","splineCurveMonotone","valueAxis","pointsLen","deltaK","mK","pointBefore","pointCurrent","pointAfter","slopeDelta","alphaK","betaK","tauK","squaredMagnitude","monotoneAdjust","iPixel","vPixel","monotoneCompute","capControlPoint","_updateBezierControlPoints","spanGaps","cubicInterpolationMode","tension","capBezierPoints","inArea","inAreaPrev","inAreaNext","_isDomSupported","_getParentNode","domNode","parseMaxStyle","styleValue","parentProperty","valueInPixels","positions","getPositionedStyle","getRelativePosition","borderBox","paddings","borders","offsetX","offsetY","useOffsetPos","getCanvasPosition","round1","getMaximumSize","bbWidth","bbHeight","margins","containerSize","containerStyle","containerBorder","containerPadding","getContainerSize","retinaScale","forceRatio","forceStyle","pixelRatio","deviceHeight","deviceWidth","setTransform","supportsEventListenerOptions","passiveSupported","readUsedSize","getPropertyValue","getStyle","_pointInLine","_steppedInterpolation","_bezierInterpolation","cp1","cp2","getRtlAdapter","rtl","rectX","setWidth","xPlus","leftForLtr","itemWidth","getRightToLeftAdapter","_itemWidth","overrideTextDirection","original","getPropertyPriority","prevTextDirection","restoreTextDirection","propertyFn","normalizeSegment","_boundSegment","startBound","endBound","getSegment","inside","subStart","shouldStart","_boundSegments","segments","splitByStyles","segmentOptions","chartContext","_chart","baseStyle","readStyle","_datasetIndex","prevStyle","addStyle","st","p0","p0DataIndex","p1DataIndex","styleChanged","doSplitByStyles","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","replacer","Animator","_charts","_running","_lastDate","_notify","anims","numSteps","initial","currentStep","_refresh","_update","running","_active","_total","_getAnims","charts","complete","listen","_duration","animator","interpolators","Animation","cfg","currentValue","_fn","_easing","_start","_target","_prop","_from","_to","_promises","elapsed","rej","resolved","Animations","_properties","animationOptions","animatedProps","_animateOptions","newOptions","$shared","$animations","resolveTargetOptions","_createAnimations","awaitAll","scaleClip","allowedOverflow","getSortedDatasetIndices","filterVisible","metasets","_getSortedDatasetMetas","applyStack","dsIndex","singleMode","otherValue","isStacked","getOrCreateStack","stacks","stackKey","indexValue","subStack","getLastIndexInStack","vScale","getMatchingVisibleMetas","updateStacks","_cachedMeta","_stacks","iAxis","vAxis","indexScale","valueScale","getStackKey","_top","_bottom","_visualValues","getFirstScaleId","clearStacks","isDirectUpdateMode","cloneIfNotShared","DatasetController","static","_cachedDataOpts","getMeta","_type","_parsing","_data","_objectData","_sharedOptions","_drawStart","_drawCount","enableOptionSharing","supportsDecimation","$context","_syncList","datasetElementType","dataElementType","initialize","linkScales","_stacked","addElements","isPluginEnabled","updateIndex","getDataset","chooseId","xid","xAxisID","yid","yAxisID","rid","rAxisID","iid","iAxisID","vid","vAxisID","getScaleForId","rScale","getDatasetMeta","scaleID","_getOtherScale","_destroy","_dataCheck","iAxisKey","vAxisKey","adata","convertObjectDataToArray","isExtensible","listenArrayEvents","buildOrUpdateElements","resetNewElements","stackChanged","oldStacked","_resyncElements","scopeKeys","datasetScopeKeys","getOptionScopes","createResolver","parseArrayData","parseObjectData","parsePrimitiveData","isNotInOrderComparedToPrev","labels","getLabels","singleScale","xAxisKey","yAxisKey","getParsed","getDataElement","updateRangeFromParsed","getMinMax","canStack","otherScale","createStack","NEGATIVE_INFINITY","otherMin","otherMax","getAllParsedValues","getMaxOverflow","getLabelAndValue","getLabelForValue","_clip","toClip","defaultClip","chartArea","resolveDatasetElementOptions","resolveDataElementOptions","createDataContext","createDatasetContext","_resolveElementOptions","sharing","datasetElementScopeKeys","resolveNamedOptions","freeze","_resolveAnimations","datasetAnimationScopeKeys","getSharedOptions","includeOptions","sharedOptions","_animationsDisabled","_getSharedOptions","firstOpts","previouslySharedOptions","updateSharedOptions","updateElement","_setStyle","removeHoverStyle","setHoverStyle","_removeDatasetHoverStyle","_setDatasetHoverStyle","numMeta","numData","_insertElements","_removeElements","move","updateElements","removed","_sync","_dataChanges","_onDataPush","_onDataPop","_onDataShift","_onDataSplice","newCount","_onDataUnshift","computeMinSampleSize","_cache","$bar","visibleMetas","getAllScaleValues","_length","updateMinAndPrev","getPixelForTick","parseValue","startValue","endValue","barStart","barEnd","_custom","parseFloatBar","parseArrayOrPrimitive","isFloatBar","custom","setBorderSkipped","borderSkipped","borderProps","enableBorderRadius","parseEdge","orig","startEnd","setInflateAmount","inflateAmount","BarController","categoryPercentage","barPercentage","grouped","_index_","_value_","bars","getBasePixel","ruler","_getRuler","vpixels","_calculateBarValuePixels","ipixels","_calculateBarIndexPixels","_getStacks","currentParsed","iScaleValue","skipNull","_getStackCount","_getStackIndex","pixels","barThickness","_startPixel","_endPixel","stackCount","minBarLength","actualBase","floating","getDataVisibility","barSign","startPixel","getPixelForDecimal","endPixel","getValueForPixel","halfGrid","getLineWidthForValue","maxBarThickness","computeFlexCategoryTraits","thickness","computeFitCategoryTraits","stackIndex","LineController","_dataset","_decimated","maxGapLength","directUpdate","pointsCount","prevParsed","nullData","lastPoint","updateControlPoints","abstract","DateAdapterBase","members","binarySearch","metaset","lookupMethod","_reversePixels","getRange","evaluateInteractionItems","getSortedVisibleDatasetMetas","getIntersectItems","useFinalPosition","isPointInArea","getNearestCartesianItems","distanceMetric","useX","useY","getDistanceMetricForAxis","minDistance","getCenterPoint","getNearestItems","getProps","getNearestRadialItems","getAxisItems","rangeMethod","intersectsItem","Interaction","nearest","STATIC_POSITIONS","filterByPosition","filterDynamicPositionByAxis","sortByWeight","setLayoutDims","layouts","stackWeight","placed","buildStacks","vBoxMaxWidth","hBoxMaxHeight","fullSize","availableWidth","availableHeight","getCombinedMax","maxPadding","updateMaxPadding","boxPadding","updateDims","getPadding","outerWidth","widthChanged","heightChanged","same","getMargins","marginForPositions","fitBoxes","boxes","refitBoxes","refit","setBoxDims","placeBoxes","userPadding","addBox","_layers","removeBox","layoutItem","minPadding","layoutBoxes","wrapBoxes","centerHorizontal","centerVertical","leftAndTop","rightAndBottom","buildLayoutBoxes","verticalBoxes","horizontalBoxes","beforeLayout","visibleVerticalBoxCount","updatePos","change","handleMaxPadding","BasePlatform","acquireContext","releaseContext","isAttached","updateConfig","BasicPlatform","EXPANDO_KEY","EVENT_TYPES","pointerenter","pointerdown","pointermove","pointerup","pointerleave","pointerout","isNullOrEmpty","eventListenerOptions","nodeListContains","nodeList","createAttachObserver","MutationObserver","addedNodes","removedNodes","childList","subtree","createDetachObserver","drpListeningCharts","oldDevicePixelRatio","onWindowResize","createResizeObserver","listenDevicePixelRatioChanges","releaseObserver","unlistenDevicePixelRatioChanges","createProxyAndListen","fromNativeEvent","DomPlatform","renderHeight","renderWidth","displayWidth","displayHeight","initCanvas","proxies","$proxies","attach","detach","isConnected","final","tickOpts","determinedMaxTicks","_tickSize","maxScale","maxChart","_maxLength","determineMaxTicks","ticksLimit","maxTicksLimit","majorIndices","getMajorIndices","numMajorIndices","newTicks","skipMajors","evenMajorSpacing","getEvenSpacing","factors","_factorize","calculateSpacing","avgMajorSpacing","majorStart","majorEnd","offsetFromEdge","getTicksLimit","ticksLength","sample","numItems","increment","getPixelForGridLine","offsetGridLines","validIndex","lineValue","getTickMarkLength","getTitleHeight","titleAlign","reverseAlign","Scale","_margins","labelRotation","_range","_gridLineItems","_labelItems","_labelSizes","_longestTextCache","_userMax","_userMin","_suggestedMax","_suggestedMin","_ticksLength","_borderValue","_dataLimitsCached","suggestedMin","suggestedMax","metas","xLabels","yLabels","getLabelItems","_computeLabelItems","beforeUpdate","sampleSize","beforeSetDimensions","setDimensions","afterSetDimensions","beforeDataLimits","determineDataLimits","afterDataLimits","minmax","keepZero","_addGrace","beforeBuildTicks","buildTicks","afterBuildTicks","samplingEnabled","_convertTicksToLabels","beforeCalculateLabelRotation","calculateLabelRotation","afterCalculateLabelRotation","afterAutoSkip","beforeFit","fit","afterFit","afterUpdate","reversePixels","_alignToPixels","alignToPixels","_callHooks","notifyPlugins","beforeTickToLabelConversion","generateTickLabels","afterTickToLabelConversion","numTicks","maxLabelDiagonal","_isVisible","labelSizes","_getLabelSizes","maxLabelWidth","widest","maxLabelHeight","highest","minSize","titleOpts","gridOpts","titleHeight","tickPadding","labelHeight","labelWidth","_calculatePadding","_handleMargins","isRotated","labelsBelowTicks","offsetRight","isFullSize","_computeLabelSizes","caches","widths","heights","jlen","tickFont","fontString","nestedLabel","widestLabelSize","highestLabelSize","_resolveTickFontOptions","gcLen","garbageCollect","valueAt","_int16Range","getDecimalForPixel","getBaseValue","createTickContext","optionTicks","rot","_computeGridLineItems","borderOpts","axisWidth","axisHalfWidth","alignBorderValue","borderValue","alignedLineValue","tx1","ty1","tx2","ty2","positionAxisID","limit","optsAtIndex","optsAtIndexBorder","lineColor","tickBorderDash","tickBorderDashOffset","tickAndPadding","hTickAndPadding","lineCount","textOffset","_getXAxisLabelAlignment","_getYAxisLabelAlignment","halfCount","tickTextAlign","labelPadding","_computeLabelArea","drawBackground","drawGrid","drawLine","setLineDash","lineDashOffset","drawBorder","lastLineWidth","drawLabels","renderTextOptions","drawTitle","titleX","titleY","titleArgs","gz","bz","axisID","_maxDigits","TypedRegistry","isForType","isPrototypeOf","register","parentScope","isIChartComponent","itemDefaults","defaultRoutes","routes","propertyParts","sourceName","sourceScope","routeDefaults","registerDefaults","unregister","Registry","controllers","_typedRegistries","_each","addControllers","addPlugins","_len5","_key5","addScales","_len6","_key6","getController","_get","getElement","getPlugin","removeControllers","_len7","_key7","removeElements","_len8","_key8","removePlugins","_len9","_key9","removeScales","_len10","_key10","typedRegistry","reg","_getRegistryForType","_exec","itemReg","registry","camelMethod","PluginService","hook","_createDescriptors","plugin","invalidate","_oldCache","_notifyStateChanges","localIds","allPlugins","getOpts","pluginOpts","createDescriptors","previousDescriptors","pluginScopeKeys","getIndexAxis","datasetDefaults","idMatchesAxis","axisFromPosition","determineAxis","_len11","scaleOptions","_key11","getAxisFromDataset","mergeScaleConfig","chartDefaults","configScales","chartIndexAxis","scaleConf","boundDs","retrieveAxisFromDatasets","getDefaultScaleIDFromAxis","defaultScaleOptions","defaultID","getAxisFromDefaultScaleID","initOptions","initData","keyCache","keysCached","cachedKeys","addIfFound","Config","initConfig","_scopeCache","_resolverCache","clearCache","datasetType","additionalOptionScopes","_cachedScopes","mainScope","resetCache","keyLists","chartOptionScopes","subPrefixes","getResolver","hasFunction","needContext","resolverCache","KNOWN_POSITIONS","positionIsHorizontal","compare2Level","l1","l2","onAnimationsComplete","onComplete","onAnimationProgress","getCanvas","instances","getChart","moveNumericKeys","intKey","getSizeForArea","Chart","invalidatePlugins","userConfig","initialCanvas","existingChart","OffscreenCanvas","_detectPlatform","_aspectRatio","_metasets","_lastEvent","_responsiveListeners","_sortedMetasets","_plugins","_hiddenIndices","attached","_doResize","resizeDelay","_initialize","bindEvents","_resizeBeforeDraw","_resize","newSize","newRatio","ensureScalesHaveIDs","buildOrUpdateScales","scaleOpts","updated","isRadial","dposition","dtype","hasUpdated","_updateMetasets","_destroyDatasetMeta","_removeUnreferencedMetasets","buildOrUpdateControllers","newControllers","isDatasetVisible","ControllerClass","_resetElements","animsDisabled","_updateScales","_checkEventBindings","_updateHiddenIndices","_minPadding","_updateLayout","_updateDatasets","_eventHandler","_updateHoverStyles","existingEvents","newEvents","unbindEvents","changes","_getUniformDataChanges","datasetCount","makeSet","changeSet","noArea","_idx","_updateDataset","layers","_drawDatasets","_drawDataset","useClip","getDatasetArea","getElementsAtEventForMode","getVisibleDatasetCount","setDatasetVisibility","toggleDataVisibility","_updateVisibility","_stop","toBase64Image","toDataURL","bindUserEvents","bindResponsiveEvents","_add","_remove","detached","updateHoverStyle","getActiveElements","setActiveElements","activeElements","lastActive","pluginId","replay","hoverOptions","deactivated","inChartArea","eventFilter","_handleEvent","_getActiveElements","isClick","_isClickEvent","lastEvent","determineLastEvent","lineCap","lineJoin","pathVars","paramsStart","paramsEnd","segmentStart","segmentEnd","outside","pathSegment","lineMethod","stepped","getLineMethod","fastPathSegment","lastY","avgX","countX","pointIndex","drawX","truncX","_getSegmentMethod","usePath2D","Path2D","_path","strokePathWithCache","segmentMethod","strokePathDirect","LineElement","_fullLoop","_segments","_pointsUpdated","findStartAndEnd","solidSegments","_computeSegments","_interpolate","_getInterpolationMethod","inRange$1","hitRadius","PointElement","hoverBorderWidth","hoverRadius","mouseX","mouseY","inXRange","inYRange","getBarBounds","bar","half","skipOrLimit","boundingRects","maxW","maxH","parseBorderWidth","maxR","enableBorder","parseBorderRadius","inner","skipX","skipY","addNormalRectPath","inflateRect","refRect","BarElement","addRectPath","getBoxSize","labelOpts","usePointStyle","pointStyleWidth","itemHeight","_added","legendHitBoxes","_hoveredItem","doughnutMode","legendItems","columnSizes","lineWidths","buildLabels","generateLabels","labelFont","_computeTitleHeight","_fitRows","_fitCols","hitboxes","totalHeight","_itemHeight","heightLimit","totalWidth","currentColWidth","currentColHeight","legendItemText","calculateItemWidth","fontLineHeight","calculateLegendItemHeight","calculateItemHeight","calculateItemSize","adjustHitBoxes","rtlHelper","hitbox","_draw","halfFontSize","textDirection","fontColor","lineDash","drawOptions","SQRT2","centerX","yBoxTop","xBoxLeft","drawLegendBox","_textX","titleFont","titlePadding","topPaddingPlusHalfFontSize","_getLegendItemAt","hitBox","handleEvent","onLeave","isListened","hoveredItem","sameItem","itemsEqual","plugin_legend","_element","_args","legend","afterEvent","useBorderRadius","Title","_padding","textSize","_drawArgs","fontOpts","plugin_title","titleBlock","createTitle","positioners","average","xSet","xAverage","eventPosition","nearestElement","tp","pushOrConcat","toPush","splitNewlines","createTooltipItem","getTooltipSize","bodyFont","footerFont","titleLineCount","footerLineCount","bodyLineItemCount","combinedBodyLength","bodyItem","beforeBody","afterBody","titleSpacing","titleMarginBottom","displayColors","bodySpacing","footerMarginTop","footerSpacing","widthPadding","maxLineWidth","determineXAlign","yAlign","xAlign","caretSize","caretPadding","doesNotFitWithAlign","determineAlignment","determineYAlign","getBackgroundPoint","alignment","paddingAndSize","alignX","alignY","getAlignedX","getBeforeAfterBodyLines","overrideCallbacks","defaultCallbacks","beforeTitle","tooltipItems","labelCount","afterTitle","beforeLabel","labelColor","labelTextColor","bodyColor","labelPointStyle","afterLabel","beforeFooter","afterFooter","invokeCallbackWithFallback","_eventPosition","_size","_cachedAnimations","_tooltipItems","dataPoints","caretX","caretY","labelColors","labelPointStyles","labelTextColors","getTitle","getBeforeBody","getBody","bodyItems","scoped","getAfterBody","getFooter","_createItems","itemSort","positionAndSize","backgroundPoint","drawCaret","tooltipPoint","caretPosition","getCaretPosition","x3","y3","ptX","ptY","titleColor","_drawColorBox","colorX","rtlColorX","yOffSet","colorY","centerY","multiKeyBackground","outerX","innerX","strokeRect","drawBody","bodyAlign","bodyLineHeight","xLinePadding","fillLineOfText","bodyAlignForCalculation","drawFooter","footerAlign","footerColor","tooltipSize","_updateAnimationTarget","animX","animY","_willRender","hasTooltipContent","globalAlpha","positionChanged","_positionChanged","_ignoreReplayEvents","plugin_tooltip","afterInit","afterDraw","findOrAddLabel","addedLabels","addIfString","lastIndexOf","_getLabelForValue","CategoryScale","_startValue","_valueRange","_addedLabels","added","generateTicks$1","generationOptions","dataRange","maxTicks","maxDigits","includeBounds","maxSpaces","rmin","rmax","countDefined","minSpacing","niceMin","niceMax","numSpaces","almostWhole","relativeLabelSize","LinearScaleBase","_endValue","handleTickRangeOptions","setMin","setMax","minSign","maxSign","getTickLimit","stepSize","computeTickLimit","LinearScale","INTERVALS","quarter","UNITS","sorter","_adapter","isoWeekday","_parseOpts","determineUnitForAutoTicks","minUnit","capacity","addTick","ticksFromTimestamps","majorUnit","setMajorTicks","TimeScale","displayFormats","_unit","_majorUnit","_offsets","_normalized","_applyBounds","_getLabelBounds","getLabelTimestamps","timeOpts","_generate","_filterBetween","_getLabelCapacity","determineUnitForFormatting","determineMajorUnit","initOffsets","offsetAfterAutoskip","getDecimalForValue","hasWeekday","getDataTimestamps","tooltipFormat","fmt","_tickFormatFunction","minorFormat","majorFormat","_getLabelSize","ticksOpts","tickLabelWidth","cosRotation","sinRotation","tickFontSize","exampleTime","exampleLabel","defaultDatasetIdKey","reforwardRef","setLabels","currentData","nextLabels","setDatasets","nextDatasets","datasetIdKey","addedDatasets","nextDataset","currentDataset","cloneData","nextData","ChartComponent","redraw","fallbackContent","updateMode","canvasProps","canvasRef","chartRef","renderChart","Chart$1","destroyChart","createTypedChart","registerables","easeInOutSin","getTabScrollButtonUtilityClass","TabScrollButtonRoot","tabScrollButtonClasses","StartButtonIcon","StartScrollButtonIcon","KeyboardArrowLeft","EndButtonIcon","EndScrollButtonIcon","KeyboardArrowRight","startButtonIconProps","startScrollButtonIcon","endButtonIconProps","endScrollButtonIcon","getTabsUtilityClass","TabsRoot","tabsClasses","scrollButtons","scrollButtonsHideMobile","TabsScroller","scroller","fixed","hideScrollbar","scrollableX","scrollableY","scrollbarWidth","FlexContainer","flexContainer","flexContainerVertical","centered","TabsIndicator","indicatorColor","TabsScrollbarSize","scrollbarHeight","setMeasurements","defaultIndicatorStyle","ariaLabelledBy","allowScrollButtonsMobile","ScrollButtonComponent","TabScrollButton","selectionFollowsFocus","TabIndicatorProps","TabScrollButtonProps","visibleScrollbar","scrollable","scrollStart","startScrollButtonIconProps","endScrollButtonIconProps","setMounted","indicatorStyle","setIndicatorStyle","displayStartScroll","setDisplayStartScroll","displayEndScroll","setDisplayEndScroll","updateScrollObserver","setUpdateScrollObserver","scrollerStyle","setScrollerStyle","valueToIndex","tabsRef","tabListRef","getTabsMeta","tabsNode","tabsMeta","tabMeta","tab","updateIndicatorState","startIndicator","newIndicatorStyle","dStart","dSize","scrollValue","ease","cancelled","animate","moveTabsScroll","getScrollSize","handleStartScrollClick","handleEndScrollClick","handleScrollbarSizeChange","scrollSelectedIntoView","nextScrollStart","updateScrollButtonState","handleMutation","records","unobserve","mutationObserver","tabListChildren","IntersectionObserver","firstTab","lastTab","observerOptions","firstObserver","isIntersecting","lastObserver","updateIndicator","updateScrollButtons","childValue","conditionalElements","getConditionalElements","scrollbarSizeListener","showScrollButtons","scrollButtonStart","scrollButtonEnd","previousItemKey","nextItemKey","getTabUtilityClass","TabRoot","labelIcon","wrapped","tabClasses","iconWrapper","iconPosition","Tab","ChartJS","PriceSignalChart","activeStrategy","setActiveStrategy","processStrategyData","signalsList","dates","prices","longEntries","longExits","shortEntries","shortExits","lastSignal","toLocaleDateString","price","Close","pointRadius","pointHoverRadius","handleTabChange","ChartSystem","equityCurveData","drawdownData","rollingSharpeData","visibleCharts","setVisibleCharts","equityCurve","rollingSharpe","drawdown","priceSignal","toggleChartVisibility","downsampleData","downsampledEquityCurve","downsampledDrawdown","downsampledRollingSharpe","processedSignals","CollapsibleChart","TradeReturnsHistogram","uniqueStrategies","calculateHistogram","returns","binWidth","minReturn","maxReturn","bins","bin","binKey","filteredTrades","histogram","statistics","mean","std","win_rate","getAlertUtilityClass","AlertRoot","severity","getColor","getBackgroundColor","colorSeverity","alertClasses","AlertIcon","AlertMessage","AlertAction","defaultIconMapping","SuccessOutlinedIcon","ReportProblemOutlinedIcon","ErrorOutlineIcon","InfoOutlinedIcon","closeText","iconMapping","closeButton","CloseButton","closeIcon","CloseIcon","CloseButtonSlot","closeButtonProps","CloseIconSlot","closeIconProps","backtestConfig","backtestResults","onSave","backtestName","setBacktestName","setError","_backtestResults$metr","_backtestResults$metr2","_backtestResults$metr3","_backtestResults$metr4","_backtestResults$metr5","_backtestResults$metr6","_backtestResults$metr7","portfolioMetrics","total_performance","Total_Return","sharpe_ratio","Sharpe_Ratio","max_drawdown","Max_Drawdown","backtestData","data_source","getCircularProgressUtilityClass","circularRotateKeyframe","circularDashKeyframe","rotateAnimation","dashAnimation","CircularProgressRoot","CircularProgressSVG","CircularProgressCircle","disableShrink","circleDisableShrink","CircularProgress","circleStyle","circumference","ListItemTextRoot","typographyClasses","primaryProp","primaryTypographyProps","secondaryProp","secondaryTypographyProps","BASE_URL","formatMetric","formatSharpeRatio","accessToken","onLoadBacktest","backtests","setBacktests","setLoading","selectedBacktest","setSelectedBacktest","fetchBacktests","handleLoadBacktest","BacktestDetails","backtest","created_at","PlayIcon","handleBacktestClick","ListItemText","PrimaryButton","indicatorTemplate","setBacktestResults","isLoading","setIsLoading","isSaveDialogOpen","setIsSaveDialogOpen","saveError","setSaveError","isMyBacktestsOpen","setIsMyBacktestsOpen","BacktestingParameters","StrategyBuilder","updatedStrategies","selectedFrequency","availableFrequencies","position_size","regime_filter","indexToDelete","newRule","strategyToDuplicate","duplicatedStrategy","baseName","copyNumber","processIndicator","processRules","strategiesToSend","strategyData","errorData","json","SaveBacktestDialog","MyBacktestsDialog","defaultCreateStyledComponent","systemStyled","useThemePropsDefault","useThemePropsSystem","Container","createStyledComponent","ContainerRoot","breakpointValueKey","createContainer","toKebabCase","mergeClasses","defaultAttributes","xmlns","strokeLinecap","strokeLinejoin","Icon","absoluteStrokeWidth","iconNode","createLucideIcon","iconName","User","Lock","rx","ry","EyeOff","Eye","Mail","AuthContainer","Login","onLogin","setFormData","errors","setErrors","showPassword","setShowPassword","onSubmit","validateForm","newErrors","formDataPayload","username_email","_err$response","_err$response$data","Register","confirmPassword","setSuccess","_err$response2","_err$response2$data","tabValue","setTabValue","setAccessToken","Hotjar","handleLogout","QuantiFiBacktestingLab","Auth","onPerfEntry","getCLS","getFID","getFCP","getLCP","getTTFB","App","reportWebVitals"],"sourceRoot":""}