{"version":3,"file":"app-e234c5524f133b885e88.js","mappings":";+EAAoEA,EAAOC,QAAkI,WAAY,aAAa,IAAIC,EAAE,IAAIC,EAAE,IAAIC,EAAE,KAAKC,EAAE,cAAcC,EAAE,SAASC,EAAE,SAASC,EAAE,OAAOC,EAAE,MAAMC,EAAE,OAAOC,EAAE,QAAQC,EAAE,UAAUC,EAAE,OAAOC,EAAE,OAAOC,EAAE,eAAeC,EAAE,6FAA6FC,EAAE,sFAAsFC,EAAE,CAACC,KAAK,KAAKC,SAAS,2DAA2DC,MAAM,KAAKC,OAAO,wFAAwFD,MAAM,KAAKE,QAAQ,SAASrB,GAAG,IAAIC,EAAE,CAAC,KAAK,KAAK,KAAK,MAAMC,EAAEF,EAAE,IAAI,MAAM,IAAIA,GAAGC,GAAGC,EAAE,IAAI,KAAKD,EAAEC,IAAID,EAAE,IAAI,GAAG,GAAGqB,EAAE,SAAStB,EAAEC,EAAEC,GAAG,IAAIC,EAAEoB,OAAOvB,GAAG,OAAOG,GAAGA,EAAEqB,QAAQvB,EAAED,EAAE,GAAGyB,MAAMxB,EAAE,EAAEE,EAAEqB,QAAQE,KAAKxB,GAAGF,CAAC,EAAE2B,EAAE,CAACtB,EAAEiB,EAAEM,EAAE,SAAS5B,GAAG,IAAIC,GAAGD,EAAE6B,YAAY3B,EAAE4B,KAAKC,IAAI9B,GAAGE,EAAE2B,KAAKE,MAAM9B,EAAE,IAAIE,EAAEF,EAAE,GAAG,OAAOD,GAAG,EAAE,IAAI,KAAKqB,EAAEnB,EAAE,EAAE,KAAK,IAAImB,EAAElB,EAAE,EAAE,IAAI,EAAEkB,EAAE,SAAStB,EAAEC,EAAEC,GAAG,GAAGD,EAAEgC,OAAO/B,EAAE+B,OAAO,OAAOjC,EAAEE,EAAED,GAAG,IAAIE,EAAE,IAAID,EAAEgC,OAAOjC,EAAEiC,SAAShC,EAAEiC,QAAQlC,EAAEkC,SAAS/B,EAAEH,EAAEmC,QAAQC,IAAIlC,EAAEM,GAAGJ,EAAEH,EAAEE,EAAE,EAAEE,EAAEL,EAAEmC,QAAQC,IAAIlC,GAAGE,GAAG,EAAE,GAAGI,GAAG,UAAUN,GAAGD,EAAEE,IAAIC,EAAED,EAAEE,EAAEA,EAAEF,KAAK,EAAE,EAAEG,EAAE,SAASP,GAAG,OAAOA,EAAE,EAAE8B,KAAKQ,KAAKtC,IAAI,EAAE8B,KAAKE,MAAMhC,EAAE,EAAEuC,EAAE,SAASvC,GAAG,MAAM,CAACgB,EAAEP,EAAEM,EAAEJ,EAAE6B,EAAEhC,EAAEI,EAAEL,EAAEkC,EAAE7B,EAAED,EAAEL,EAAEgB,EAAEjB,EAAEA,EAAED,EAAEsC,GAAGvC,EAAEwC,EAAEjC,GAAGV,IAAIuB,OAAOvB,GAAG,IAAI4C,cAAcC,QAAQ,KAAK,GAAG,EAAEvC,EAAE,SAASN,GAAG,YAAO,IAASA,CAAC,GAAG8C,EAAE,KAAKL,EAAE,CAAC,EAAEA,EAAEK,GAAG9B,EAAE,IAAIuB,EAAE,iBAAiBQ,EAAE,SAAS/C,GAAG,OAAOA,aAAagD,MAAMhD,IAAIA,EAAEuC,GAAG,EAAEC,EAAE,SAASxC,EAAEC,EAAEC,EAAEC,GAAG,IAAIC,EAAE,IAAIH,EAAE,OAAO6C,EAAE,GAAG,iBAAiB7C,EAAE,CAAC,IAAII,EAAEJ,EAAE2C,cAAcH,EAAEpC,KAAKD,EAAEC,GAAGH,IAAIuC,EAAEpC,GAAGH,EAAEE,EAAEC,GAAG,IAAIC,EAAEL,EAAEkB,MAAM,KAAK,IAAIf,GAAGE,EAAEkB,OAAO,EAAE,OAAOxB,EAAEM,EAAE,GAAG,KAAK,CAAC,IAAIC,EAAEN,EAAEgB,KAAKwB,EAAElC,GAAGN,EAAEG,EAAEG,CAAC,CAAC,OAAOJ,GAAGC,IAAI0C,EAAE1C,GAAGA,IAAID,GAAG2C,CAAC,EAAEG,EAAE,SAASjD,EAAEC,GAAG,GAAG8C,EAAE/C,GAAG,OAAOA,EAAEoC,QAAQ,IAAIlC,EAAE,iBAAiBD,EAAEA,EAAE,CAAC,EAAE,OAAOC,EAAE+B,KAAKjC,EAAEE,EAAEgD,KAAKC,UAAU,IAAIH,EAAE9C,EAAE,EAAEkD,EAAEzB,EAAEyB,EAAEvC,EAAE2B,EAAEY,EAAEhD,EAAE2C,EAAEK,EAAEZ,EAAE,SAASxC,EAAEC,GAAG,OAAOgD,EAAEjD,EAAE,CAACqD,OAAOpD,EAAEqD,GAAGC,IAAItD,EAAEuD,GAAGC,EAAExD,EAAEyD,GAAGC,QAAQ1D,EAAE0D,SAAS,EAAE,IAAIX,EAAE,WAAW,SAAShC,EAAEhB,GAAG4D,KAAKN,GAAGd,EAAExC,EAAEqD,OAAO,MAAK,GAAIO,KAAKC,MAAM7D,GAAG4D,KAAKF,GAAGE,KAAKF,IAAI1D,EAAEyD,GAAG,CAAC,EAAEG,KAAKrB,IAAG,CAAE,CAAC,IAAIjB,EAAEN,EAAE8C,UAAU,OAAOxC,EAAEuC,MAAM,SAAS7D,GAAG4D,KAAKG,GAAG,SAAS/D,GAAG,IAAIC,EAAED,EAAEiC,KAAK/B,EAAEF,EAAEuD,IAAI,GAAG,OAAOtD,EAAE,OAAO,IAAI+D,KAAKC,KAAK,GAAGb,EAAE9C,EAAEL,GAAG,OAAO,IAAI+D,KAAK,GAAG/D,aAAa+D,KAAK,OAAO,IAAIA,KAAK/D,GAAG,GAAG,iBAAiBA,IAAI,MAAMiE,KAAKjE,GAAG,CAAC,IAAIE,EAAEF,EAAEkE,MAAMrD,GAAG,GAAGX,EAAE,CAAC,IAAIC,EAAED,EAAE,GAAG,GAAG,EAAEE,GAAGF,EAAE,IAAI,KAAKiE,UAAU,EAAE,GAAG,OAAOlE,EAAE,IAAI8D,KAAKA,KAAKK,IAAIlE,EAAE,GAAGC,EAAED,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAEE,IAAI,IAAI2D,KAAK7D,EAAE,GAAGC,EAAED,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAEE,EAAE,CAAC,CAAC,OAAO,IAAI2D,KAAK/D,EAAE,CAA3X,CAA6XD,GAAG4D,KAAKU,MAAM,EAAEhD,EAAEgD,KAAK,WAAW,IAAItE,EAAE4D,KAAKG,GAAGH,KAAKW,GAAGvE,EAAEwE,cAAcZ,KAAKa,GAAGzE,EAAE0E,WAAWd,KAAKe,GAAG3E,EAAE4E,UAAUhB,KAAKiB,GAAG7E,EAAE8E,SAASlB,KAAKmB,GAAG/E,EAAEgF,WAAWpB,KAAKqB,GAAGjF,EAAEkF,aAAatB,KAAKuB,GAAGnF,EAAEoF,aAAaxB,KAAKyB,IAAIrF,EAAEsF,iBAAiB,EAAEhE,EAAEiE,OAAO,WAAW,OAAOnC,CAAC,EAAE9B,EAAEkE,QAAQ,WAAW,QAAQ5B,KAAKG,GAAG0B,aAAa5E,EAAE,EAAES,EAAEoE,OAAO,SAAS1F,EAAEC,GAAG,IAAIC,EAAE+C,EAAEjD,GAAG,OAAO4D,KAAK+B,QAAQ1F,IAAIC,GAAGA,GAAG0D,KAAKgC,MAAM3F,EAAE,EAAEqB,EAAEuE,QAAQ,SAAS7F,EAAEC,GAAG,OAAOgD,EAAEjD,GAAG4D,KAAK+B,QAAQ1F,EAAE,EAAEqB,EAAEwE,SAAS,SAAS9F,EAAEC,GAAG,OAAO2D,KAAKgC,MAAM3F,GAAGgD,EAAEjD,EAAE,EAAEsB,EAAEyE,GAAG,SAAS/F,EAAEC,EAAEC,GAAG,OAAOkD,EAAE9C,EAAEN,GAAG4D,KAAK3D,GAAG2D,KAAKoC,IAAI9F,EAAEF,EAAE,EAAEsB,EAAE2E,KAAK,WAAW,OAAOnE,KAAKE,MAAM4B,KAAKsC,UAAU,IAAI,EAAE5E,EAAE4E,QAAQ,WAAW,OAAOtC,KAAKG,GAAGoC,SAAS,EAAE7E,EAAEqE,QAAQ,SAAS3F,EAAEC,GAAG,IAAIC,EAAE0D,KAAKzD,IAAIiD,EAAE9C,EAAEL,IAAIA,EAAES,EAAE0C,EAAEb,EAAEvC,GAAGa,EAAE,SAASb,EAAEC,GAAG,IAAIG,EAAEgD,EAAEZ,EAAEtC,EAAEsD,GAAGQ,KAAKK,IAAInE,EAAEqE,GAAGtE,EAAED,GAAG,IAAIgE,KAAK9D,EAAEqE,GAAGtE,EAAED,GAAGE,GAAG,OAAOC,EAAEC,EAAEA,EAAEwF,MAAMrF,EAAE,EAAEO,EAAE,SAASd,EAAEC,GAAG,OAAOmD,EAAEZ,EAAEtC,EAAEkG,SAASpG,GAAGqG,MAAMnG,EAAEkG,OAAO,MAAMjG,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,MAAMmG,MAAMrG,IAAIC,EAAE,EAAEa,EAAE6C,KAAKiB,GAAG7D,EAAE4C,KAAKa,GAAGnD,EAAEsC,KAAKe,GAAGhD,EAAE,OAAOiC,KAAKJ,GAAG,MAAM,IAAI,OAAO9C,GAAG,KAAKC,EAAE,OAAOR,EAAEU,EAAE,EAAE,GAAGA,EAAE,GAAG,IAAI,KAAKJ,EAAE,OAAON,EAAEU,EAAE,EAAEG,GAAGH,EAAE,EAAEG,EAAE,GAAG,KAAKR,EAAE,IAAIsC,EAAEc,KAAK2C,UAAUC,WAAW,EAAE/D,GAAG1B,EAAE+B,EAAE/B,EAAE,EAAEA,GAAG+B,EAAE,OAAOjC,EAAEV,EAAEmB,EAAEmB,EAAEnB,GAAG,EAAEmB,GAAGzB,GAAG,KAAKT,EAAE,KAAKK,EAAE,OAAOE,EAAEa,EAAE,QAAQ,GAAG,KAAKrB,EAAE,OAAOQ,EAAEa,EAAE,UAAU,GAAG,KAAKtB,EAAE,OAAOS,EAAEa,EAAE,UAAU,GAAG,KAAKvB,EAAE,OAAOU,EAAEa,EAAE,eAAe,GAAG,QAAQ,OAAOiC,KAAKxB,QAAQ,EAAEd,EAAEsE,MAAM,SAAS5F,GAAG,OAAO4D,KAAK+B,QAAQ3F,GAAE,EAAG,EAAEsB,EAAEmF,KAAK,SAASzG,EAAEC,GAAG,IAAIC,EAAEM,EAAE4C,EAAEb,EAAEvC,GAAGU,EAAE,OAAOkD,KAAKJ,GAAG,MAAM,IAAI3C,GAAGX,EAAE,CAAC,EAAEA,EAAEK,GAAGG,EAAE,OAAOR,EAAEU,GAAGF,EAAE,OAAOR,EAAEO,GAAGC,EAAE,QAAQR,EAAES,GAAGD,EAAE,WAAWR,EAAEI,GAAGI,EAAE,QAAQR,EAAEG,GAAGK,EAAE,UAAUR,EAAEE,GAAGM,EAAE,UAAUR,EAAEC,GAAGO,EAAE,eAAeR,GAAGM,GAAGM,EAAEN,IAAID,EAAEqD,KAAKe,IAAI1E,EAAE2D,KAAKiB,IAAI5E,EAAE,GAAGO,IAAIC,GAAGD,IAAIG,EAAE,CAAC,IAAII,EAAE6C,KAAKxB,QAAQ4D,IAAIpF,EAAE,GAAGG,EAAEgD,GAAGlD,GAAGC,GAAGC,EAAEuD,OAAOV,KAAKG,GAAGhD,EAAEiF,IAAIpF,EAAEkB,KAAK4E,IAAI9C,KAAKe,GAAG5D,EAAE4F,gBAAgB5C,EAAE,MAAMlD,GAAG+C,KAAKG,GAAGlD,GAAGC,GAAG,OAAO8C,KAAKU,OAAOV,IAAI,EAAEtC,EAAE0E,IAAI,SAAShG,EAAEC,GAAG,OAAO2D,KAAKxB,QAAQqE,KAAKzG,EAAEC,EAAE,EAAEqB,EAAEsF,IAAI,SAAS5G,GAAG,OAAO4D,KAAKR,EAAEb,EAAEvC,KAAK,EAAEsB,EAAEe,IAAI,SAASlC,EAAEO,GAAG,IAAIE,EAAEC,EAAE+C,KAAKzD,EAAE0G,OAAO1G,GAAG,IAAIW,EAAEsC,EAAEb,EAAE7B,GAAGK,EAAE,SAASf,GAAG,IAAIC,EAAEgD,EAAEpC,GAAG,OAAOuC,EAAEZ,EAAEvC,EAAEgC,KAAKhC,EAAEgC,OAAOH,KAAKgF,MAAM9G,EAAEG,IAAIU,EAAE,EAAE,GAAGC,IAAIL,EAAE,OAAOmD,KAAKoC,IAAIvF,EAAEmD,KAAKa,GAAGtE,GAAG,GAAGW,IAAIH,EAAE,OAAOiD,KAAKoC,IAAIrF,EAAEiD,KAAKW,GAAGpE,GAAG,GAAGW,IAAIP,EAAE,OAAOQ,EAAE,GAAG,GAAGD,IAAIN,EAAE,OAAOO,EAAE,GAAG,IAAIC,GAAGJ,EAAE,CAAC,EAAEA,EAAEP,GAAGJ,EAAEW,EAAEN,GAAGJ,EAAEU,EAAER,GAAGJ,EAAEY,GAAGE,IAAI,EAAEQ,EAAEsC,KAAKG,GAAGoC,UAAUhG,EAAEa,EAAE,OAAOoC,EAAEZ,EAAElB,EAAEsC,KAAK,EAAEtC,EAAEyF,SAAS,SAAS/G,EAAEC,GAAG,OAAO2D,KAAKvB,KAAK,EAAErC,EAAEC,EAAE,EAAEqB,EAAE0F,OAAO,SAAShH,GAAG,IAAIC,EAAE2D,KAAK1D,EAAE0D,KAAK2C,UAAU,IAAI3C,KAAK4B,UAAU,OAAOtF,EAAE+G,aAAapG,EAAE,IAAIV,EAAEH,GAAG,uBAAuBI,EAAEgD,EAAExB,EAAEgC,MAAMvD,EAAEuD,KAAKmB,GAAGzE,EAAEsD,KAAKqB,GAAG1E,EAAEqD,KAAKa,GAAGjE,EAAEN,EAAEgB,SAAST,EAAEP,EAAEkB,OAAOV,EAAER,EAAEgH,SAASvG,EAAE,SAASX,EAAEE,EAAEE,EAAEC,GAAG,OAAOL,IAAIA,EAAEE,IAAIF,EAAEC,EAAEE,KAAKC,EAAEF,GAAGoG,MAAM,EAAEjG,EAAE,EAAEO,EAAE,SAASZ,GAAG,OAAOoD,EAAE/C,EAAEA,EAAE,IAAI,GAAGL,EAAE,IAAI,EAAEc,EAAEJ,GAAG,SAASV,EAAEC,EAAEC,GAAG,IAAIC,EAAEH,EAAE,GAAG,KAAK,KAAK,OAAOE,EAAEC,EAAEyC,cAAczC,CAAC,EAAE,OAAOA,EAAE0C,QAAQ9B,GAAE,SAAUf,EAAEG,GAAG,OAAOA,GAAG,SAASH,GAAG,OAAOA,GAAG,IAAI,KAAK,OAAOuB,OAAOtB,EAAEsE,IAAI+B,OAAO,GAAG,IAAI,OAAO,OAAOlD,EAAE/C,EAAEJ,EAAEsE,GAAG,EAAE,KAAK,IAAI,IAAI,OAAOhE,EAAE,EAAE,IAAI,KAAK,OAAO6C,EAAE/C,EAAEE,EAAE,EAAE,EAAE,KAAK,IAAI,MAAM,OAAOI,EAAET,EAAEiH,YAAY5G,EAAEE,EAAE,GAAG,IAAI,OAAO,OAAOE,EAAEF,EAAEF,GAAG,IAAI,IAAI,OAAON,EAAE0E,GAAG,IAAI,KAAK,OAAOvB,EAAE/C,EAAEJ,EAAE0E,GAAG,EAAE,KAAK,IAAI,IAAI,OAAOpD,OAAOtB,EAAE4E,IAAI,IAAI,KAAK,OAAOlE,EAAET,EAAEkH,YAAYnH,EAAE4E,GAAGrE,EAAE,GAAG,IAAI,MAAM,OAAOG,EAAET,EAAEmH,cAAcpH,EAAE4E,GAAGrE,EAAE,GAAG,IAAI,OAAO,OAAOA,EAAEP,EAAE4E,IAAI,IAAI,IAAI,OAAOtD,OAAOlB,GAAG,IAAI,KAAK,OAAO+C,EAAE/C,EAAEA,EAAE,EAAE,KAAK,IAAI,IAAI,OAAOO,EAAE,GAAG,IAAI,KAAK,OAAOA,EAAE,GAAG,IAAI,IAAI,OAAOE,EAAET,EAAEC,GAAE,GAAI,IAAI,IAAI,OAAOQ,EAAET,EAAEC,GAAE,GAAI,IAAI,IAAI,OAAOiB,OAAOjB,GAAG,IAAI,KAAK,OAAO8C,EAAE/C,EAAEC,EAAE,EAAE,KAAK,IAAI,IAAI,OAAOiB,OAAOtB,EAAEkF,IAAI,IAAI,KAAK,OAAO/B,EAAE/C,EAAEJ,EAAEkF,GAAG,EAAE,KAAK,IAAI,MAAM,OAAO/B,EAAE/C,EAAEJ,EAAEoF,IAAI,EAAE,KAAK,IAAI,IAAI,OAAOjF,EAAE,OAAO,IAAI,CAAptB,CAAstBJ,IAAII,EAAEyC,QAAQ,IAAI,GAAI,GAAE,EAAEvB,EAAEO,UAAU,WAAW,OAAO,IAAIC,KAAKgF,MAAMlD,KAAKG,GAAGuD,oBAAoB,GAAG,EAAEhG,EAAEiG,KAAK,SAASpH,EAAES,EAAEC,GAAG,IAAIC,EAAEC,EAAE6C,KAAK5C,EAAEoC,EAAEb,EAAE3B,GAAGU,EAAE2B,EAAE9C,GAAGwB,GAAGL,EAAEO,YAAY+B,KAAK/B,aAAa5B,EAAE6C,EAAEc,KAAKtC,EAAEmB,EAAE,WAAW,OAAOW,EAAE9B,EAAEP,EAAEO,EAAE,EAAE,OAAON,GAAG,KAAKL,EAAEG,EAAE2B,IAAI,GAAG,MAAM,KAAKhC,EAAEK,EAAE2B,IAAI,MAAM,KAAK/B,EAAEI,EAAE2B,IAAI,EAAE,MAAM,KAAKjC,EAAEM,GAAGgC,EAAEnB,GAAG,OAAO,MAAM,KAAKpB,EAAEO,GAAGgC,EAAEnB,GAAG,MAAM,MAAM,KAAKrB,EAAEQ,EAAEgC,EAAE5C,EAAE,MAAM,KAAKG,EAAES,EAAEgC,EAAE7C,EAAE,MAAM,KAAKG,EAAEU,EAAEgC,EAAE9C,EAAE,MAAM,QAAQc,EAAEgC,EAAE,OAAOjC,EAAEC,EAAEsC,EAAE7C,EAAEO,EAAE,EAAEQ,EAAEqF,YAAY,WAAW,OAAO/C,KAAKgC,MAAMnF,GAAGkE,EAAE,EAAErD,EAAEiF,QAAQ,WAAW,OAAO9D,EAAEmB,KAAKN,GAAG,EAAEhC,EAAE+B,OAAO,SAASrD,EAAEC,GAAG,IAAID,EAAE,OAAO4D,KAAKN,GAAG,IAAIpD,EAAE0D,KAAKxB,QAAQjC,EAAEqC,EAAExC,EAAEC,GAAE,GAAI,OAAOE,IAAID,EAAEoD,GAAGnD,GAAGD,CAAC,EAAEoB,EAAEc,MAAM,WAAW,OAAOgB,EAAEZ,EAAEoB,KAAKG,GAAGH,KAAK,EAAEtC,EAAE8E,OAAO,WAAW,OAAO,IAAIpC,KAAKJ,KAAKsC,UAAU,EAAE5E,EAAEkG,OAAO,WAAW,OAAO5D,KAAK4B,UAAU5B,KAAK6D,cAAc,IAAI,EAAEnG,EAAEmG,YAAY,WAAW,OAAO7D,KAAKG,GAAG0D,aAAa,EAAEnG,EAAEmE,SAAS,WAAW,OAAO7B,KAAKG,GAAG2D,aAAa,EAAE1G,CAAC,CAA/sJ,GAAmtJ2G,EAAE3E,EAAEc,UAAU,OAAOb,EAAEa,UAAU6D,EAAE,CAAC,CAAC,MAAMxH,GAAG,CAAC,KAAKC,GAAG,CAAC,KAAKC,GAAG,CAAC,KAAKC,GAAG,CAAC,KAAKC,GAAG,CAAC,KAAKE,GAAG,CAAC,KAAKE,GAAG,CAAC,KAAKC,IAAIgH,SAAQ,SAAU5H,GAAG2H,EAAE3H,EAAE,IAAI,SAASC,GAAG,OAAO2D,KAAKmC,GAAG9F,EAAED,EAAE,GAAGA,EAAE,GAAG,CAAE,IAAGiD,EAAE4E,OAAO,SAAS7H,EAAEC,GAAG,OAAOD,EAAE8H,KAAK9H,EAAEC,EAAE+C,EAAEC,GAAGjD,EAAE8H,IAAG,GAAI7E,CAAC,EAAEA,EAAEI,OAAOb,EAAES,EAAE8E,QAAQhF,EAAEE,EAAEgD,KAAK,SAASjG,GAAG,OAAOiD,EAAE,IAAIjD,EAAE,EAAEiD,EAAE+E,GAAGvF,EAAEK,GAAGG,EAAEgF,GAAGxF,EAAEQ,EAAEV,EAAE,CAAC,EAAEU,CAAE,CAAl6NhD,kCCEnF,IAAIiI,EAAmB,sBAEvBpI,EAAOC,QAAU,SAAUoI,GAC1B,GAAmB,iBAARA,EACV,MAAM,IAAIC,UAAU,qBAGrB,OAAOD,EAAItF,QAAQqF,EAAkB,OACtC,mCCPAnI,EAAQ,OAA2B,EACnC,MAMMsI,EAAW,CAAC,QAAS,QAAS,MAAO,OAAQ,OAAQ,OAAQ,QAenEtI,EAAQ,EAdyB,CAACuI,EAAOC,EAAS,YAChD,GAAc,MAAVD,EAAe,OAAOA,EAC1B,MAAME,EAAmBF,EAAMG,SAAS,KACxC,MAVuB,EAACJ,EAAUC,KAClC,IAAK,MAAMI,KAAUL,EACnB,GAAIC,EAAMG,SAASC,GAAS,OAAO,EAErC,OAAO,CAAK,EAMRC,CAAiBN,EAAUC,GACtBA,EAEM,WAAXC,EACKC,EAAmBF,EAAQ,GAAGA,KAExB,UAAXC,GACKC,EAAmBF,EAAMhC,MAAM,GAAI,GAErCgC,CAAK,qCCpBdvI,EAAQ,GAAuBA,EAAQ,QAAgB,EACvD,IAAI6I,EAAiB,EAAQ,MAC7B7I,EAAQ,GAAgB6I,EAAeC,cACvC,IAAIC,EAAwB,EAAQ,MACpC/I,EAAQ,GAAuB+I,EAAsBC,wDCLrD,IAAIC,EAAyB,EAAQ,MACrCjJ,EAAQkJ,YAAa,EACrBlJ,EAAQ8I,cAAgB9I,EAAQmJ,mBAAgB,EAChD,IAAIC,EAA0BH,EAAuB,EAAQ,OACzDI,EAAkBJ,EAAuB,EAAQ,OACjDK,EAIJ,SAAiCC,EAAKC,GAAe,IAAKA,GAAeD,GAAOA,EAAIL,WAAc,OAAOK,EAAO,GAAY,OAARA,GAA+B,iBAARA,GAAmC,mBAARA,EAAsB,MAAO,CAAEE,QAASF,GAAS,IAAIG,EAAQC,EAAyBH,GAAc,GAAIE,GAASA,EAAME,IAAIL,GAAQ,OAAOG,EAAM7C,IAAI0C,GAAQ,IAAIM,EAAS,CAAC,EAAOC,EAAwBC,OAAOC,gBAAkBD,OAAOE,yBAA0B,IAAK,IAAIC,KAAOX,EAAO,GAAY,YAARW,GAAqBH,OAAOhG,UAAUoG,eAAeC,KAAKb,EAAKW,GAAM,CAAE,IAAIG,EAAOP,EAAwBC,OAAOE,yBAAyBV,EAAKW,GAAO,KAAUG,IAASA,EAAKxD,KAAOwD,EAAKpE,KAAQ8D,OAAOC,eAAeH,EAAQK,EAAKG,GAAgBR,EAAOK,GAAOX,EAAIW,EAAQ,CAAIL,EAAOJ,QAAUF,EAASG,GAASA,EAAMzD,IAAIsD,EAAKM,GAAW,OAAOA,CAAQ,CAJvxBS,CAAwB,EAAQ,OACxCC,EAAatB,EAAuB,EAAQ,OAC5CuB,EAAkB,EAAQ,MAC9B,SAASb,EAAyBH,GAAe,GAAuB,mBAAZiB,QAAwB,OAAO,KAAM,IAAIC,EAAoB,IAAID,QAAeE,EAAmB,IAAIF,QAAW,OAAQd,EAA2B,SAAkCH,GAAe,OAAOA,EAAcmB,EAAmBD,CAAmB,GAAGlB,EAAc,CAE9U,IAAIL,EAA6BG,EAAMsB,cAAc,IAAIJ,EAAgBK,gBACzE7K,EAAQmJ,cAAgBA,EACxBA,EAAc2B,YAAc,sBAC5B,IAAIhC,EAA6B,SAAUiC,GAEzC,SAASjC,IAEP,IADA,IAAIkC,EACKC,EAAO7H,UAAU3B,OAAQ0B,EAAO,IAAIzB,MAAMuJ,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/E/H,EAAK+H,GAAQ9H,UAAU8H,GAiCzB,OA/BAF,EAAQD,EAAiBX,KAAK9D,MAAMyE,EAAkB,CAAClH,MAAMsH,OAAOhI,KAAUU,MACxEuH,cAAgB,IAAIZ,EAAgBK,eAC1CG,EAAMK,YAAa,EACnBL,EAAMM,oBAAsB,EAC5BN,EAAMO,eAAiB,WACrBP,EAAMM,oBAAsBE,OAAOC,QAC9BT,EAAMK,aACTL,EAAMK,YAAa,EACnBK,sBAAsBV,EAAMW,YAAYC,MAAK,EAAIxC,EAAwBK,SAASuB,KAEtF,EACAA,EAAMa,aAAe,SAAUC,EAAUC,GACnCf,EAAMgB,mBAAmBD,EAAWf,EAAMiB,QAC5CT,OAAOU,SAAS,EAAGJ,EAEvB,EACAd,EAAMmB,aAAe,SAAUC,EAAML,GACnC,IAAIM,EAAOC,SAASC,eAAeH,EAAK/H,UAAU,IAC9CgI,GAAQrB,EAAMgB,mBAAmBD,EAAWf,EAAMiB,QACpDI,EAAKG,gBAET,EACAxB,EAAMgB,mBAAqB,SAAUS,EAAiBC,GACpD,IAAIV,EAAqBhB,EAAMiB,MAAMD,mBACrC,OAAKA,GAKEA,EAAmB5B,MAAK,EAAIhB,EAAwBK,SAASuB,GAAQyB,EAAiBC,EAC/F,EACO1B,CACT,EAtCA,EAAI3B,EAAgBI,SAASX,EAAeiC,GAuC5C,IAAI4B,EAAS7D,EAAc/E,UA2D3B,OA1DA4I,EAAOhB,YAAc,WACnB,IAAIzB,EAAMrG,KAAKoI,MAAMW,SAAS1C,KAAO,KACjCA,GACFrG,KAAKuH,cAAcyB,KAAKhJ,KAAKoI,MAAMW,SAAU1C,EAAKrG,KAAKyH,qBAEzDzH,KAAKwH,YAAa,CACpB,EACAsB,EAAOG,kBAAoB,WAEzB,IAAIC,EADJvB,OAAOwB,iBAAiB,SAAUnJ,KAAK0H,gBAEvC,IAAI0B,EAAuBpJ,KAAKoI,MAAMW,SACpC1C,EAAM+C,EAAqB/C,IAC3BkC,EAAOa,EAAqBb,KAC1BlC,IACF6C,EAAiBlJ,KAAKuH,cAAc8B,KAAKrJ,KAAKoI,MAAMW,SAAU1C,IAM5DkC,EACFvI,KAAKsI,aAAagB,UAAUf,QAAOgB,GAC1BL,GACTlJ,KAAKgI,aAAakB,OAAgBK,EAEtC,EACAT,EAAOU,qBAAuB,WAC5B7B,OAAO8B,oBAAoB,SAAUzJ,KAAK0H,eAC5C,EACAoB,EAAOY,mBAAqB,SAA4BxB,GACtD,IAGIgB,EAHAS,EAAwB3J,KAAKoI,MAAMW,SACrCR,EAAOoB,EAAsBpB,KAC7BlC,EAAMsD,EAAsBtD,IAE1BA,IACF6C,EAAiBlJ,KAAKuH,cAAc8B,KAAKrJ,KAAKoI,MAAMW,SAAU1C,IAY5DkC,EACFvI,KAAKsI,aAAagB,UAAUf,GAAOL,GAEnClI,KAAKgI,aAAakB,EAAgBhB,EAEtC,EACAY,EAAOc,OAAS,WACd,OAAoBnE,EAAMoE,cAAcvE,EAAcwE,SAAU,CAC9DC,MAAO/J,KAAKuH,eACXvH,KAAKoI,MAAM4B,SAChB,EACO/E,CACT,CApGiC,CAoG/BQ,EAAMwE,WACR9N,EAAQ8I,cAAgBA,EACxBA,EAAciF,UAAY,CACxB/B,mBAAoBzB,EAAWd,QAAQuE,KACvCH,SAAUtD,EAAWd,QAAQwE,QAAQC,WACrCtB,SAAUrC,EAAWd,QAAQ0E,OAAOD,6CCtHtClO,EAAQkJ,YAAa,EACrBlJ,EAAQ6K,oBAAiB,EACzB,IACIuD,EAA6B,gCAC7BvD,EAA8B,WAChC,SAASA,IAAkB,CAC3B,IAAI8B,EAAS9B,EAAe9G,UAqC5B,OApCA4I,EAAOO,KAAO,SAAcN,EAAU1C,GACpC,IAAImE,EAAWxK,KAAKyK,YAAY1B,EAAU1C,GAC1C,IACE,IAAI0D,EAAQpC,OAAO+C,eAAeC,QAAQH,GAC1C,OAAOT,EAAQa,KAAK3K,MAAM8J,GAAS,CACrC,CAAE,MAAO1N,GAIP,OAAIsL,QAAUA,OAAO4C,IAA+B5C,OAAO4C,GAA4BC,GAC9E7C,OAAO4C,GAA4BC,GAErC,CACT,CACF,EACA1B,EAAOE,KAAO,SAAcD,EAAU1C,EAAK0D,GACzC,IAAIS,EAAWxK,KAAKyK,YAAY1B,EAAU1C,GACtCwE,EAAcD,KAAKE,UAAUf,GACjC,IACEpC,OAAO+C,eAAeK,QAAQP,EAAUK,EAC1C,CAAE,MAAOxO,GACHsL,QAAUA,OAAO4C,KAGnB5C,OAAO4C,GAA8B,CAAC,GAFtC5C,OAAO4C,GAA4BC,GAAYI,KAAK3K,MAAM4K,EAQ9D,CACF,EACA/B,EAAO2B,YAAc,SAAqB1B,EAAU1C,GAClD,IAAI2E,EAtCe,YAsCwBjC,EAASkC,SACpD,OAAO5E,QAA6C2E,EAAeA,EAAe,IAAM3E,CAC1F,EACOW,CACT,CAxCkC,GAyClC7K,EAAQ6K,eAAiBA,qCC7CzB7K,EAAQkJ,YAAa,EACrBlJ,EAAQgJ,qBAIR,SAA8B+F,GAC5B,IAAInC,GAAW,EAAIoC,EAAaC,eAC5BC,GAAQ,EAAIC,EAAOC,YAAYvG,EAAeM,eAC9CkG,GAAM,EAAIF,EAAOG,QAAQ,MAO7B,OANA,EAAIH,EAAOI,kBAAiB,WAC1B,GAAIF,EAAIG,QAAS,CACf,IAAI1D,EAAWoD,EAAMhC,KAAKN,EAAUmC,GACpCM,EAAIG,QAAQtD,SAAS,EAAGJ,GAAY,EACtC,CACF,GAAG,CAACc,EAAS1C,MACN,CACLmF,IAAKA,EACLI,SAAU,WACJJ,EAAIG,SACNN,EAAMrC,KAAKD,EAAUmC,EAAYM,EAAIG,QAAQE,UAEjD,EAEJ,EArBA,IAAI7G,EAAiB,EAAQ,MACzBsG,EAAS,EAAQ,MACjBH,EAAe,EAAQ,yCCJ3BhP,EAAQkJ,YAAa,EACrBlJ,EAAQ2P,2BAAwB,EACZ,EAAQ,MACE,EAAQ,MAgBtC3P,EAAQ2P,sBAdsB,KAOyC,mCCZvE3P,EAAQkJ,YAAa,EACrBlJ,EAAQ4P,YACR,SAAqBC,GACnB,OAAOA,aAA2D,EAASA,EAAiBC,SAAQC,IAAWA,aAAuC,EAASA,EAAOC,UAAY,IACpL,qCCJAhQ,EAAQkJ,YAAa,EACrBlJ,EAAQiQ,uBAIR,SAAgCJ,GAC9B,IAAKA,EAAiBpO,OACpB,OAEF,MAAMyO,EAAkB5D,SAAS6D,cAAc,0BACzCC,EAAkB9D,SAAS6D,cAAc,kDAC3CD,GACFA,EAAgBG,SAEdD,GACFA,EAAgBC,SAElB,MAAMC,GAAW,EAAIC,EAAaX,aAAaC,GACzCW,EAAUlE,SAASoB,cAAc,UACvC8C,EAAQC,QAAQC,UAAY,GAC5BF,EAAQG,WAAY,EAAIC,EAAaC,kBAAkB,CACrDb,QAASM,IAEXhE,SAASwE,KAAKC,YAAYP,EAC5B,EAtBA,IAAII,EAAe,EAAQ,MACvBL,EAAe,EAAQ,4BCL3BvQ,EAAQgR,WAAa,CACnB,gCAAiCC,IAAM,+BACvC,gCAAiCC,IAAM,8BACvC,kCAAmCC,IAAM,wDACzC,sCAAuCC,IAAM,0EAC7C,oCAAqCC,IAAM,8BAC3C,kDAAmDC,IAAM,uDACzD,iDAAkDC,IAAM,+BACxD,+CAAgDC,IAAM,0EACtD,0CAA2CC,IAAM,2EACjD,qCAAsCC,IAAM,wDAC5C,yCAA0CC,IAAM,2EAChD,qDAAsDC,IAAM,uDAC5D,oDAAqDC,IAAM,+BAC3D,kDAAmDC,IAAM,oFACzD,6CAA8CC,IAAM,2EACpD,qCAAsCC,IAAM,2EAC5C,uDAAwDC,IAAM,4EAC9D,4CAA6CC,IAAM,qFACnD,sDAAuDC,IAAM,4EAC7D,qDAAsDC,IAAM,4EAC5D,mDAAoDC,IAAM,qFAC1D,kCAAmCC,IAAM,gEACzC,+CAAgDC,IAAM,qFACtD,oDAAqDC,IAAM,kEAC3D,yCAA0CC,IAAM,qFAChD,mDAAoDC,IAAM,4EAC1D,kDAAmDC,IAAM,4EACzD,gDAAiDC,IAAM,qFACvD,qDAAsDC,IAAM,wGAC5D,kDAAmDC,IAAM,2EACzD,wDAAyDC,IAAM,sFAC/D,sDAAuDC,IAAM,4EAC7D,wDAAyDC,IAAM,2EAC/D,qDAAsDC,IAAM,4EAC5D,qDAAsDC,IAAM,sFAC5D,kDAAmDC,IAAM,4EACzD,uDAAwDC,IAAM,sFAC9D,oDAAqDC,IAAM,4EAC3D,sDAAuDC,IAAM,sFAC7D,mDAAoDC,IAAM,4EAC1D,sDAAuDC,IAAM,sFAC7D,mDAAoDC,IAAM,qFAC1D,sDAAuDC,IAAM,sFAC7D,mDAAoDC,IAAM,oFAC1D,6CAA8CC,IAAM,2EACpD,0CAA2CC,IAAM,qFACjD,qCAAsCC,IAAM,sHC/C9ChU,EAAOC,QAAU,CAAC,CACZgU,OAAQC,EAAQ,KAChBC,QAAS,CAAC,QAAU,KACpB,CACAF,OAAQC,EAAQ,KAChBC,QAAS,CAAC,QAAU,GAAG,KAAO,CAAC,gBAAiB,EAAM,mBAAoB,EAAK,oBAAqB,EAAK,oBAAqB,EAAK,gBAAkB,OAAO,mBAAqB,CAAC,QAAU,OAAO,YAAc,OAAO,QAAU,KAAK,cAAgB,KAAK,sBAAwB,KAAK,aAAe,IAAI,QAAU,CAAC,eAAgB,EAAM,qBAAsB,EAAK,mBAAqB,KAAM,OAAS,CAAC,QAAU,GAAG,mBAAqB,EAAE,0BAA4B,EAAE,WAAa,GAAG,mBAAqB,EAAE,WAAa,KAAK,QAAU,KAAO,IAAM,+BAA+B,KAAO,CAAC,UAAY,4DAA4D,cAAe,EAAM,QAAS,EAAK,SAAU,EAAK,YAAa,IAC7sB,CACAF,OAAQC,EAAQ,MAChBC,QAAS,CAAC,QAAU,GAAG,KAAO,0CAA0C,WAAa,QAAQ,UAAY,IAAI,iBAAmB,UAAU,YAAc,UAAU,KAAO,qBAAqB,iBAAkB,EAAM,YAAc,kBAAkB,QAAS,EAAK,qBAAsB,EAAK,mBAAqB,QAAQ,YAAc,qCAC1U,CACAF,OAAQC,EAAQ,IAChBC,QAAS,CAAC,QAAU,GAAG,GAAK,eAAe,sBAAuB,EAAM,iBAAmB,KAAK,qBAAuB,sBAAsB,yBAA0B,EAAM,iBAAmB,qCAChM,CACAF,OAAQC,EAAQ,MAChBC,QAAS,CAAC,QAAU,KACpB,CACAF,OAAQC,EAAQ,MAChBC,QAAS,CAAC,QAAU,4BCjB1B,MAAMC,EAAUF,EAAQ,OAClB,2BAAEG,EAA0B,SAAEC,EAAQ,aAAEC,GAC5CL,EAAAA,MAAAA,GAEFjU,EAAQ,EAAY,SAACuU,EAAKpR,EAAWqR,EAAeC,QAAtB,IAAJtR,IAAAA,EAAO,CAAC,GAYhC,IAAIuR,EAAUP,EAAQQ,KAAIX,IACxB,IAAKA,EAAOA,OAAOO,GACjB,OAGFpR,EAAKiR,2BAA6BA,EAClCjR,EAAKkR,SAAWA,EAChBlR,EAAKmR,aAAeA,EAEpB,MAAMM,EAASZ,EAAOA,OAAOO,GAAKpR,EAAM6Q,EAAOE,SAI/C,OAHIU,GAAUH,IACZtR,EAAOsR,EAAa,CAAEtR,OAAMyR,SAAQZ,YAE/BY,CAAM,IAMf,OAFAF,EAAUA,EAAQG,QAAOD,QAAuB,IAANA,IAEtCF,EAAQjT,OAAS,EACZiT,EACEF,EACF,CAACA,GAED,EAEX,EAEAxU,EAAQ,EAAiB,CAACuU,EAAKpR,EAAMqR,IACnCL,EAAQW,QACN,CAACC,EAAUC,IACTA,EAAKhB,OAAOO,GACRQ,EAASE,MAAK,IAAMD,EAAKhB,OAAOO,GAAKpR,EAAM6R,EAAKd,WAChDa,GACNG,QAAQC,+BClDZnV,EAAQ,EAAsB,0ECG9B,MCgBA,SAAcoV,GAGb,OAFAA,EAAMA,GAAOrL,OAAOsL,OAAO,MAEpB,CAQNC,GAAI,SAAYC,EAAcC,IAC5BJ,EAAIG,KAAUH,EAAIG,GAAQ,KAAKE,KAAKD,EACtC,EASAE,IAAK,SAAaH,EAAcC,GAC3BJ,EAAIG,IACPH,EAAIG,GAAMI,OAAOP,EAAIG,GAAMK,QAAQJ,KAAa,EAAG,EAErD,EAUAK,KAAM,SAAcN,EAAcO,IAChCV,EAAIG,IAAS,IAAIhP,QAAQoO,KAAI,SAAUa,GAAWA,EAAQM,EAAM,KAChEV,EAAI,MAAQ,IAAI7O,QAAQoO,KAAI,SAAUa,GAAWA,EAAQD,EAAMO,EAAM,GACvE,EAEF,CD1DgBC,uKEFhB,EAAeC,IACb,QAAsB5I,IAAlB4I,EACF,OAAOA,EAET,IAAKC,EAAMC,EAAM,IAASF,EAAc5U,MAAM,KAK9C,OAJI8U,IACFA,EAAS,IAAMA,GAGT,MAAJD,EACK,IAAMC,EAEiB,MAA5BD,EAAKE,OAAOF,EAAKxU,OAAS,GACrBwU,EAAK1P,MAAM,GAAI,GAAK2P,EAEtBD,EAAOC,CACf,YCXD,MAAME,EAAY,IAAIC,IACtB,IAAIC,EAAa,GAEjB,MAAMC,EAAeC,IACnB,IAAIC,EAAiBD,EAGrB,IAAoB,IAFDA,EAAYZ,QAAQ,KAEhB,CACrB,MAAOK,EAAMS,GAAMF,EAAYpV,MAAM,KACrCqV,EAAoBR,EAAI,IAAIU,mBAAmBD,EACjD,CAEA,MAAM5H,EAAW8H,mBAAmBH,GAUpC,OAPwBI,EAAAA,EAAAA,GACtB/H,EACA8H,mBAAmBE,KAGlB1V,MAAM,KAAK,EAEQ,EAGxB,SAAS2V,EAAWd,GAElB,OACEA,EAAKe,WAAW,MAChBf,EAAKe,WAAW,aAChBf,EAAKe,WAAW,WAETf,EAIF,IAAIgB,IACThB,EACAzK,OAAOoB,SAASsK,MAAQ1L,OAAOoB,SAASsK,KAAKxO,SAAS,KAAI,SAC1DoG,QACJ,CAOO,MAAMqI,EAAgBvJ,IAC3B0I,EAAa1I,CAAK,EAWPwJ,EAAgBZ,IAC3B,MAAMa,EAAkBC,EAAUd,GAE5Be,EAAYjB,EAAW3B,KAAI6C,IAA0B,IAAzB,KAAEvB,EAAI,UAAEwB,GAAWD,EACnD,MAAO,CACLvB,KAAMwB,EACNC,aAAczB,EACf,IAGGA,GAAO0B,EAAAA,EAAAA,MAAKJ,EAAWF,GAE7B,OAAIpB,EACK2B,EAAkB3B,EAAK4B,MAAMH,cAG/B,IAAI,EAYAI,EAAkBtB,IAC7B,MAAMa,EAAkBC,EAAUd,GAE5Be,EAAYjB,EAAW3B,KAAIoD,IAA0B,IAAzB,KAAE9B,EAAI,UAAEwB,GAAWM,EACnD,MAAO,CACL9B,KAAMwB,EACNC,aAAczB,EACf,IAGGA,GAAO0B,EAAAA,EAAAA,MAAKJ,EAAWF,GAE7B,OAAIpB,EACKA,EAAK+B,OAGP,CAAC,CAAC,EAWEC,EAAWzB,IACtB,MAAMa,EAAkBd,EAAaQ,EAAWP,IAChD,GAAIJ,EAAUxM,IAAIyN,GAChB,OAAOjB,EAAUvP,IAAIwQ,GAGvB,MAAMa,GAAWC,EAAAA,EAAAA,GAAwB3B,GACzC,GAAI0B,EACF,OAAOD,EAASC,EAASE,QAG3B,IAAIC,EAAYjB,EAAcC,GAQ9B,OANKgB,IACHA,EAAYf,EAAUd,IAGxBJ,EAAUnQ,IAAIoR,EAAiBgB,GAExBA,CAAS,EAULf,EAAYd,IAGvB,IAAI6B,EAFoB9B,EAAaQ,EAAWP,IAShD,MANa,gBAAT6B,IACFA,EAAS,KAGXA,EAAYT,EAAkBS,GAEvBA,CAAS,43BC5JH,SAASC,EAAWC,EAAQpV,EAAMqV,GAa/C,OAXEF,GADE,EAAAG,EAAA,KACWC,QAAQC,UAAU/M,OAElB,SAAoB2M,EAAQpV,EAAMqV,GAC7C,IAAIhY,EAAI,CAAC,MACTA,EAAEiV,KAAKnP,MAAM9F,EAAG2C,GAChB,IACIyV,EAAW,IADGC,SAASjN,KAAKtF,MAAMiS,EAAQ/X,IAG9C,OADIgY,IAAO,EAAAM,EAAA,GAAeF,EAAUJ,EAAMzU,WACnC6U,CACT,EAEKN,EAAWhS,MAAM,KAAMlD,UAChC,CCZe,SAAS2V,EAAiBP,GACvC,IAAIQ,EAAwB,mBAAR3C,IAAqB,IAAIA,SAAQjJ,EAuBrD,OAtBA2L,EAAmB,SAA0BP,GAC3C,GAAc,OAAVA,ICPO,SAA2BS,GACxC,IACE,OAAgE,IAAzDJ,SAASnT,SAAS0E,KAAK6O,GAAIrD,QAAQ,gBAC5C,CAAE,MAAO1V,GACP,MAAqB,mBAAP+Y,CAChB,CACF,CDC2B,CAAiBT,GAAQ,OAAOA,EACvD,GAAqB,mBAAVA,EACT,MAAM,IAAInQ,UAAU,sDAEtB,QAAsB,IAAX2Q,EAAwB,CACjC,GAAIA,EAAOpP,IAAI4O,GAAQ,OAAOQ,EAAOnS,IAAI2R,GACzCQ,EAAO/S,IAAIuS,EAAOU,EACpB,CACA,SAASA,IACP,OAAO,EAAUV,EAAOpV,WAAW,EAAA+V,EAAA,GAAetV,MAAMuV,YAC1D,CASA,OARAF,EAAQnV,UAAYgG,OAAOsL,OAAOmD,EAAMzU,UAAW,CACjDqV,YAAa,CACXxL,MAAOsL,EACPG,YAAY,EACZC,UAAU,EACVC,cAAc,MAGX,EAAAT,EAAA,GAAeI,EAASV,EACjC,EACOO,EAAiBP,EAC1B,mCE3BO,MAAMgB,EAAsBhC,IAA4B,IAA3B,QAAEiC,EAAO,SAAE5L,GAAU2J,EACvD,MAAMkC,EAAW,CACfpQ,EAAAA,cAAoB,cAAe,CACjCqQ,GAAOF,EAAO,OAEhBnQ,EAAAA,cAAoB,YAAa,CAC/BqQ,GAAOF,EAAO,QAkBlB,OAdI5L,IAGF6L,EAASjE,KAAK5H,GACd6L,EAASjE,KACPnM,EAAAA,cAAoB,cAAe,CACjCqQ,GAAOF,EAAO,OAEhBnQ,EAAAA,cAAoB,YAAa,CAC/BqQ,GAAOF,EAAO,SAKbC,CAAQ,gBCrBjB,MASaE,EAAcpC,IAKpB,IALqB,UAC1BqC,EAAS,WACTC,EAAU,SACVjM,KACGkM,GACJvC,EACC,MAAMwC,GAAY5K,EAAAA,EAAAA,YAAW6K,EAAAA,IACvBC,GAAc9K,EAAAA,EAAAA,YAAW+K,EAAAA,IACzBC,EAAoBJ,EAAUH,GAEpC,IAAKO,EAAmB,CACtB,GAAIN,EACF,OAAO,KAEP,MAAM,IAAIO,MAAM,UACJD,EAAiB,UAAUP,EAAS,mBAGpD,CAEA,MAAMJ,EA7BWa,EAACT,EAAWE,IACxBhQ,OAAOwQ,KAAKR,GAAYtY,OAKnBoY,EAAS,KADCW,EAAAA,EAAAA,GAAoBT,GAH/BF,EA2BOS,CAAWF,EAAmBL,GAG9C,IAAIU,EAAaP,EAAYT,GAa7B,OAZKgB,EAOC5M,IACF4M,EAAWC,aAAc,GAP3BR,EAAYT,GAAWgB,EAAa,CAClCxO,MAAO8N,EACPF,UAAWO,EACXM,cAAe7M,IAQZ8M,EAAAA,EAAAA,KAACnB,EAAmB,CAACC,QAASA,EAAQ5L,SAAEA,GAA+B,EC/CnE+M,EAAcpD,IAKpB,IALqB,UAC1BqC,EAAS,WACTC,EAAU,SACVjM,KACGkM,GACJvC,EACC,MAAMwC,GAAY5K,EAAAA,EAAAA,YAAW6K,EAAAA,IACvBY,GAAmBzL,EAAAA,EAAAA,YAAW0L,EAAAA,IAC9BV,EAAoBJ,EAAUH,GAC9BtT,EAAQsU,EAAiBhU,IAAIuT,GAEnC,IAAK7T,EAAO,CACV,GAAIuT,EACF,OAAO,KAEP,MAAM,IAAIO,MAAM,UACJD,EAAiB,UAAUP,EAAS,mBAGpD,CAEA,OACEc,EAAAA,EAAAA,KAACpU,EAAMwU,UAAS,CACdC,aAAczU,EAAMyU,aACpBC,KAAM1U,EAAM0U,QACRlB,EAAUlM,SAEbA,GACe,ECxBf,SAASqN,EAAMjP,GACW,CAE7B,MAAMkP,EAAgB,IACjBlP,EACH4N,UAAW5N,EAAMmP,cAEZD,EAAcC,aACdD,EAAcE,qBAErB,MAAMC,GAAgBlM,EAAAA,EAAAA,YAAWmM,EAAAA,IAG3BC,EAAaC,EAAmBxP,GACtC,GAAIlC,OAAOwQ,KAAKiB,GAAY/Z,OAC1B,MAAM,IAAIia,EACuB,YAA/BJ,EAAcK,kBACdR,EAActB,UACd2B,EACAvP,EAAMoP,sBAIV,GAAmC,WAA/BC,EAAcK,kBAChB,OAAOhB,EAAAA,EAAAA,KAACf,EAAW,IAAKuB,IACnB,GAAmC,YAA/BG,EAAcK,kBAEvB,OAAOhB,EAAAA,EAAAA,KAACC,EAAW,IAAKO,IACnB,GAC0B,YAA/BG,EAAcK,mBACiB,YAA/BL,EAAcK,kBAGd,OAAOhB,EAAAA,EAAAA,KAACC,EAAW,IAAKO,IACnB,GAAmC,WAA/BG,EAAcK,kBAAgC,CAGvD,IAAIC,EAAwB,GAI5B,IACEA,EAAwB,wBAA2BN,EAAcO,UAAU3a,KAAI,MAAMoa,EAAcO,UAAUC,cAAa,mCAAmC7P,EAAMmP,MAAK,KAC1K,CAAE,MACA,CAGF,MAAM,IAAIf,MAAM,mCACqBuB,EAAwB,6FAE/D,CACE,MAAM,IAAIvB,MAAM,kBACIiB,EAAcK,kBAAiB,sBAGvD,CAGF,CAAC,IAEKD,EAAe,SAAAK,GACnB,SAAAL,EAAYM,EAAWnC,EAAW2B,EAAYS,GAAqB,IAADjR,EAChE,MAAMkR,EAASnS,OAAOoS,QAAQX,GAC3B7G,KACC6C,IAAA,IAAEtN,EAAK0D,GAAM4J,EAAA,2BACU5J,EAAK,qBAAqB1D,EAAG,YAErDvI,KAAK,MAEFT,EAAI,kBACV,IAAIkb,EAAK,GACLC,EAAO,GAEX,GAAIL,EAAW,CAGb,MAIMM,EAHJhT,EAAAA,mDAAyDiT,uBAAuBC,kBAGrDC,OAAOrb,MAAM,MAAMmF,MAAM,GACtD+V,EAAW,GAAKA,EAAW,GAAGG,OAC9BL,EAAQ,KAAOE,EAAW3a,KAAK,MAE/B0a,EAAO,UAAaxC,EAAS,iDAAiDqC,EAAM,IACtF,KAAO,CAELG,EAAanb,EAAI,YAAY2Y,EAAS,iDAAiDqC,EAAM,KAE7FE,EAAWC,EAAO,MADC,IAAIhC,OAAQ+B,MAAMK,OAAOrb,MAAM,MAAMmF,MAAM,GAC5B5E,KAAK,KACzC,CAYC,OAVDqJ,EAAA+Q,EAAA3R,KAAA,KAAMiS,IAAQ,MACTnb,KAAOA,EACRkb,EACFpR,EAAKoR,MAAQA,EAEb/B,MAAMqC,mBAAiBC,EAAAA,EAAAA,GAAA3R,GAAO0Q,GAG5BO,IACFjR,EAAK4R,eAAiB,IAAKX,EAAoBY,aAAa,UAC7D7R,CACH,CAAC,OA3CkB8R,EAAAA,EAAAA,GAAApB,EAAAK,GA2ClBL,CAAA,CA3CkB,CA2ClB3C,EA3C2BsB,QA8C9B,MAAMoB,EAAqB,SACzBxP,EACAiQ,EACAa,EACA9G,QAFM,IAANiG,IAAAA,EAAS,CAAC,QACC,IAAXa,IAAAA,EAAc,SACV,IAAJ9G,IAAAA,EAAO,MAGP,IAAK,MAAO/U,EAAM0M,KAAU7D,OAAOoS,QAAQlQ,GAAQ,CACjD,GACE2B,UAEEqI,GAAY,aAAJ/U,EAEV,SAGF,MAAM8b,EAAW/G,EAAUA,EAAI,IAAI/U,EAASA,EAE5B,mBAAL0M,EACTsO,EAAOc,UAAmBpP,EACL,iBAALA,GAAsBmP,EAAYnH,QAAQhI,IAAU,IACpEmP,EAAYtH,KAAK7H,GACjB6N,EAAmB7N,EAAOsO,EAAQa,EAAaC,GAEnD,CAEA,OAAOd,CACT,gBC1IA,MAAMe,EAAmBC,EAAAA,GAAOC,QAEhC,SAASC,IACP,MAAM,IAAI/C,MACR,6UAKJ,uPCXA,MAyDMgD,EAzDU,SAAUC,GACxB,GAAmB,oBAARhR,SACT,OAAO,EAET,MAAMiR,EAAWjR,SAASoB,cAAc,QACxC,IACE,GAAI6P,EAASC,SAA2C,mBAAzBD,EAASC,QAAQC,SAC9C,OAAOF,EAASC,QAAQC,SAASH,EAErC,CAAE,MAAOI,GACP,OAAO,CACT,CACA,OAAO,CACT,CA4CkCC,CAAQ,YA1Cb,SAAUC,EAAK1J,GAC1C,OAAO,IAAIgB,SAAQ,CAACC,EAAS0I,KAC3B,GAAmB,oBAARvR,SAET,YADAuR,IAIF,MAAMC,EAAOxR,SAASoB,cAAc,QACpCoQ,EAAKC,aAAa,MAAD,YACjBD,EAAKC,aAAa,OAAQH,GAE1B7T,OAAOwQ,KAAKrG,GAASrM,SAAQqC,IAC3B4T,EAAKC,aAAa7T,EAAKgK,EAAQhK,GAAK,IAGtC4T,EAAKE,OAAS7I,EACd2I,EAAKG,QAAUJ,GAGbvR,SAAS4R,qBAAqB,QAAQ,IACtC5R,SAAS6R,kBAAkB,UAAU,GAAGC,YAC5BrN,YAAY+M,EAAK,GAEnC,EAE4B,SAAUF,GACpC,OAAO,IAAI1I,SAAQ,CAACC,EAAS0I,KAC3B,MAAMQ,EAAM,IAAIC,eAChBD,EAAIE,KAAK,MAAOX,GAAK,GAErBS,EAAIL,OAAS,KACQ,MAAfK,EAAIG,OACNrJ,IAEA0I,GACF,EAGFQ,EAAII,KAAK,KAAK,GAElB,EAMMC,EAAa,CAAC,EAkBpB,MAhBiB,SAAUd,EAAK1J,GAC9B,OAAO,IAAIgB,SAAQC,IACbuJ,EAAWd,GACbzI,IAIFkI,EAA0BO,EAAK1J,GAC5Be,MAAK,KACJE,IACAuJ,EAAWd,IAAO,CAAI,IAEvBe,OAAM,QAAS,GAEtB,sBCrEO,MAAMC,EAAqB,CAIhCvE,MAAM,QAINwE,QAAQ,WAWJC,EAAoBC,IACxB,MAAO9I,EAAM+I,GAAeD,EAAQ3d,MAAM,KAPZd,MAS9B,MAAyB,eADH,MAAJ2V,EAAY,SAP9B3V,EAAQ,OADsBA,EAQqC2V,GAP7D,GAAa3V,EAAEiG,MAAM,GAAKjG,GAC1BoI,SAAS,KAAOpI,EAAEiG,MAAM,GAAI,GAAKjG,GAOS,mBAC9C0e,EAAW,IAAOA,EAAW,GAAO,EAQlCC,EAAmBF,GAAWA,EAAQ/H,WAAW,MAEvD,SAASkI,EAAQtB,EAAKuB,GACpB,YAD0B,IAANA,IAAAA,EAAM,OACnB,IAAIjK,SAAQC,IACjB,MAAMkJ,EAAM,IAAIC,eAChBD,EAAIE,KAAKY,EAAQvB,GAAK,GACtBS,EAAIe,mBAAqB,KACD,GAAlBf,EAAIgB,YACNlK,EAAQkJ,EACV,EAEFA,EAAII,KAAK,KAAK,GAElB,CAEA,MAgBMa,EAAY,+BAEZC,EAAkB,SAACC,EAAUzE,EAAkBjK,GAAU,IAAD2O,OAAlB,IAAT1E,IAAAA,EAAY,MAC7C,MAAM2E,EAAO,CACXC,mBAAoBH,EAASG,mBAC7B1J,KAAMuJ,EAASvJ,KACf2J,uBAAwBJ,EAASI,uBACjCnI,UAAW+H,EAAS/H,UACpBoI,kBAAmBL,EAASK,kBAC5BC,mBAAoBN,EAASM,mBAC7B9F,UAA6B,QAApByF,EAAED,EAASxF,iBAAS,IAAAyF,EAAAA,EAAI,CAAC,GAGpC,MAAO,CACL1E,YACAjK,OACAiP,KAAMP,EAAS5K,OACf8K,OAEJ,EAEA,SAASM,EAAgBC,GACvB,OAAO,IAAI/K,SAAQC,IACjB,IACE,MAAMP,EAASqL,EAASC,WACxB/K,EAAQP,EACV,CAAE,MAAO8I,GACP,IACE3T,OAAOI,eAAeC,KAAKsT,EAAI,eAC/B3T,OAAOI,eAAeC,KAAKsT,EAAI,WAM/B,MAAMA,EAJNyC,YAAW,KACTH,EAAgBC,GAAUhL,KAAKE,EAAQ,GACtC,IAIP,IAEJ,CAEO,IAAMiL,EAAU,WACrB,SAAAA,EAAYC,EAAe/J,GAAa,KAgCxCgK,wBAA0B,IAAIjK,IAhB5BxS,KAAK0c,OAAS,IAAIlK,IAClBxS,KAAK2c,WAAa,IAAInK,IACtBxS,KAAK4c,cAAgB,CAAC,EACtB5c,KAAK6c,WAAa,IAAIrK,IACtBxS,KAAK8c,mBAAqB,IAAItK,IAC9BxS,KAAK+c,aAAe,IAAIvK,IACxBxS,KAAKgd,gBAAkB,IAAIxK,IAC3BxS,KAAKid,SAAW,IAAIzK,IACpBxS,KAAKkd,wBAAyB,EAC9Bld,KAAKmd,eAAiB,GACtBnd,KAAKod,kBAAoB,IAAIC,IAC7Brd,KAAKsd,kBAAoB,IAAID,IAC7Brd,KAAKwc,cAAgBA,GACrBlJ,EAAAA,EAAAA,IAAcb,EAChB,CAAC,IAAA3J,EAAAyT,EAAArc,UAgrBA,OAhrBA4I,EAIDyU,YAAA,SAAYxD,GACV,IAAIyD,EAAkBxd,KAAKyc,wBAAwBzZ,IAAI+W,GAQvD,OANKyD,IACHA,EAAkBnC,EAAQtB,EAAI,OAC9B/Z,KAAKyc,wBAAwBra,IAAI2X,EAAKyD,IAIjCA,EACJpM,MAAKgL,IACJpc,KAAKyc,wBAAwBgB,OAAO1D,GAC7BqC,KAERtB,OAAMjB,IAEL,MADA7Z,KAAKyc,wBAAwBgB,OAAO1D,GAC9BF,CAAG,GAEf,EAAC/Q,EAED4U,aAAA,SAAaC,GACX3d,KAAK2d,UAAYA,EACjB3d,KAAK4d,iBAAmBD,EAAU,0BAA0BE,MAAKlhB,GAAKA,GACxE,EAACmM,EAEDgV,kBAAA,SAAkBC,GAChB,MAAM,SAAEC,EAAQ,QAAEC,EAAU,GAAMF,EAC5BhE,EAAMkB,EAAkB+C,GAC9B,OAAOhe,KAAKud,YAAYxD,GAAK3I,MAAKoJ,IAChC,MAAM,OAAEG,EAAM,aAAEuD,GAAiB1D,EAGjC,GAAe,MAAXG,EACF,IACE,MAAMwD,EAAcvT,KAAK3K,MAAMie,GAC/B,QAAyB3U,IAArB4U,EAAY/L,KACd,MAAM,IAAIoE,MAAM,iCAGlB,MAAM2E,EAAc6C,EAASzgB,MAAM,KAAK,GAKxC,OAJI4d,IAAgBgD,EAAY/L,KAAKgM,SAASjD,KAC5CgD,EAAY/L,MAAI,IAAQ+I,GAGnBjV,OAAOmY,OAAON,EAAS,CAC5BpD,OAAQI,EAAmBC,QAC3BsD,QAASH,GAEb,CAAE,MAAOtE,GACP,CAKJ,OAAe,MAAXc,GAA6B,MAAXA,EAER,cAARqD,GAAoC,cAARA,EACvB9X,OAAOmY,OAAON,EAAS,CAC5BpD,OAAQI,EAAmBvE,QAMxBxW,KAAK8d,kBACV5X,OAAOmY,OAAON,EAAS,CAAEC,SAAS,YAAcO,UAAU,KAK/C,MAAX5D,EACK3a,KAAK8d,kBACV5X,OAAOmY,OAAON,EAAS,CACrBC,SAAS,YACTQ,qBAAqB,KAMvBP,EAAU,EACLje,KAAK8d,kBACV5X,OAAOmY,OAAON,EAAS,CAAEE,QAASA,EAAU,KAKzC/X,OAAOmY,OAAON,EAAS,CAC5BpD,OAAQI,EAAmBvE,OAC3B,GAEN,EAAC1N,EAED2V,0BAAA,SAA0BV,GACxB,MAAM,SAAEC,EAAQ,QAAEC,EAAU,GAAMF,EAC5BhE,EAAMkB,EAAkB+C,GAAU/e,QAAQ,QAAD,aAC/C,OAAOe,KAAKud,YAAYxD,GAAK3I,MAAKoJ,IAChC,MAAM,OAAEG,EAAM,aAAEuD,GAAiB1D,EAGjC,GAAe,MAAXG,EACF,IACE,OAAOzU,OAAOmY,OAAON,EAAS,CAC5BpD,OAAQI,EAAmBC,QAC3BsD,QAASJ,GAEb,CAAE,MAAOrE,GACP,CAKJ,OAAe,MAAXc,GAA6B,MAAXA,EAER,cAARqD,GAAoC,cAARA,EACvB9X,OAAOmY,OAAON,EAAS,CAC5BpD,OAAQI,EAAmBvE,QAMxBxW,KAAKye,0BACVvY,OAAOmY,OAAON,EAAS,CAAEC,SAAS,YAAcO,UAAU,KAK/C,MAAX5D,EACK3a,KAAKye,0BACVvY,OAAOmY,OAAON,EAAS,CACrBC,SAAS,YACTQ,qBAAqB,KAMvBP,EAAU,EACLje,KAAKye,0BACVvY,OAAOmY,OAAON,EAAS,CAAEE,QAASA,EAAU,KAKzC/X,OAAOmY,OAAON,EAAS,CAC5BpD,OAAQI,EAAmBvE,OAC3B,GAEN,EAAC1N,EAED4V,iBAAA,SAAiBxD,GACf,MAAM8C,GAAW5J,EAAAA,EAAAA,IAAS8G,GAC1B,GAAIlb,KAAK6c,WAAW9W,IAAIiY,GAAW,CACjC,MAAMrC,EAAW3b,KAAK6c,WAAW7Z,IAAIgb,GAEnC,OAAO3M,QAAQC,QAAQqK,EAE3B,CAEA,OAAO3b,KAAK8d,kBAAkB,CAAEE,aAAY5M,MAAKuK,IAC/C3b,KAAK6c,WAAWza,IAAI4b,EAAUrC,GAEvBA,IAEX,EAAC7S,EAED6V,yBAAA,SAAyBzD,GACvB,MAAM8C,GAAW5J,EAAAA,EAAAA,IAAS8G,GAC1B,GAAIlb,KAAK8c,mBAAmB/W,IAAIiY,GAAW,CACzC,MAAMrC,EAAW3b,KAAK8c,mBAAmB9Z,IAAIgb,GAE3C,OAAO3M,QAAQC,QAAQqK,EAE3B,CAEA,OAAO3b,KAAKye,0BAA0B,CAAET,aAAY5M,MAAKuK,IACvD3b,KAAK8c,mBAAmB1a,IAAI4b,EAAUrC,GAE/BA,IAEX,EAAC7S,EAED8V,kBAAA,SAAkB5I,GAChB,GAAIhW,KAAK+c,aAAahX,IAAIiQ,GAAY,CACpC,MAAMmI,EAAcne,KAAK+c,aAAa/Z,IAAIgT,GAC1C,OAAO3E,QAAQC,QAAQ,CAAE0E,YAAWmI,eACtC,CAGA,OAAO9C,EADuB,eAAerF,EAAS,QACnC,OAAQ5E,MAAKyN,IAC9B,MAAMV,EAAcvT,KAAK3K,MAAM4e,EAAIX,cAGnC,OADAle,KAAK+c,aAAa3a,IAAI4T,EAAWmI,GAC1B,CAAEnI,YAAWmI,cAAa,GAErC,EAACrV,EAEDyK,cAAA,SAAc2H,GACZ,OAAO3H,EAAAA,EAAAA,IAAc2H,EACvB,EAEApS,EACA0H,SAAA,SAAS0K,GACP,MAAM8C,GAAW5J,EAAAA,EAAAA,IAAS8G,GAC1B,GAAIlb,KAAK0c,OAAO3W,IAAIiY,GAAW,CAC7B,MAAMnC,EAAO7b,KAAK0c,OAAO1Z,IAAIgb,GAE3B,OAAInC,EAAKiD,MACAzN,QAAQC,QAAQ,CACrBwN,MAAOjD,EAAKiD,MACZnE,OAAQkB,EAAKlB,SAIVtJ,QAAQC,QAAQuK,EAAKyC,QAEhC,CAEA,GAAIte,KAAK2c,WAAW5W,IAAIiY,GACtB,OAAOhe,KAAK2c,WAAW3Z,IAAIgb,GAG7B,MAAMe,EAAmB,CACvB/e,KAAKgf,cACLhf,KAAK0e,iBAAiBV,IAOxB,MAAMR,EAAkBnM,QAAQE,IAAIwN,GAAkB3N,MAAK6N,IACzD,MAAOC,EAAiBC,EAAkBC,GAAmBH,EAE7D,GACEE,EAAiBxE,SAAWI,EAAmBvE,QAC/C4I,aAAe,EAAfA,EAAiBzE,UAAWI,EAAmBvE,MAE/C,MAAO,CACLmE,OAAQI,EAAmBvE,OAI/B,IAAImF,EAAWwD,EAAiBb,QAEhC,MAAM,mBACJxC,EACAE,kBAAmBqD,EAAwB,GAAE,UAC7ClJ,EAAY,CAAC,GACXwF,EAEE2D,EAAc,CAAC,EAEfC,EAAoB1hB,MAAM2hB,KAAK,IAAInC,IAAInX,OAAOuZ,OAAOtJ,KAErDuJ,EAAYhd,IAChB,GAAI1C,KAAKid,SAASlX,IAAIrD,EAAMrF,MAC1B,OAAO2C,KAAKid,SAASja,IAAIN,EAAMrF,MAC1B,GAAI2C,KAAKgd,gBAAgBjX,IAAIrD,EAAMrF,MACxC,OAAO2C,KAAKgd,gBAAgBha,IAAIN,EAAMrF,MAGxC,MAAMsiB,EAAW3f,KAAKwc,cAAc9Z,EAAMoZ,oBAAoB1K,MAC5D8F,IACE,MAAO,CACLA,WAzYQxZ,EAyYiBwZ,EAzYXxZ,GAAKA,EAAEkI,SAAYlI,GA0YjCyZ,aAAczU,EAAMqO,OAAOoG,aAC3BC,KAAM1U,EAAMqO,OAAOqG,MA3YX1Z,KA4YT,IAUL,OANAsC,KAAKgd,gBAAgB5a,IAAIM,EAAMrF,KAAMsiB,GACrCA,EAASvO,MAAKP,IACZ7Q,KAAKid,SAAS7a,IAAIM,EAAMrF,KAAMwT,GAC9B7Q,KAAKgd,gBAAgBS,OAAO/a,EAAMrF,KAAK,IAGlCsiB,CAAQ,EAGjB,OAAOtO,QAAQE,IACbgO,EAAkBzO,KAAIkF,GAAahW,KAAK4e,kBAAkB5I,MAC1D5E,MAAKwO,IACL,MAAMC,EAAS,GACTC,GAAwBC,EAAAA,EAAAA,GAAOV,GAErC,IAAK,MAAM,YAAElB,EAAW,UAAEnI,KAAe9P,OAAOuZ,OAAOG,GAAa,CAClEC,EAAOjO,KAAK,CAAEvU,KAAM2Y,KAAcmI,IAClC,IAAK,MAAM6B,KAAmB7B,EAAYnC,kBACnC8D,EAAyB1B,SAAS4B,IACrCF,EAAyBlO,KAAKoO,EAGpC,CAEA,MAAMC,EAAoB,CACxB5O,QAAQE,IAAIsO,EAAO/O,IAAI4O,IACvB1f,KAAKwc,cAAcV,EAAmB,SAItCmE,EAAkBrO,KAAK5R,KAAKwc,cAAcV,IAS5C,MAAMoE,EAAyB7O,QAAQE,IAAI0O,GAAmB7O,MAC5DjE,IACE,MAAOgT,EAAiBC,EAAeC,GAAiBlT,EAExDmS,EAAYgB,UAAY,IAAIlgB,KAE5B,IAAK,MAAMmgB,KAAkBJ,IACtBI,GAAkBA,aAA0B/J,SAC/C8I,EAAY3E,OAASI,EAAmBvE,MACxC8I,EAAYR,MAAQyB,GAYxB,IAAIC,EAEJ,KARIH,GAAiBA,aAAyB7J,SAE5C8I,EAAY3E,OAASI,EAAmBvE,MACxC8I,EAAYR,MAAQuB,GAKlBf,EAAY3E,SAAWI,EAAmBvE,MAAO,CAcnD,GAbA8I,EAAY3E,OAASI,EAAmBC,SAER,IAA9BmE,EAAiBZ,WACa,KAA9Ba,aAAe,EAAfA,EAAiBb,YAEjBe,EAAYf,UAAW,GAEzB5C,EAAWzV,OAAOmY,OAAO1C,EAAU,CACjCI,uBAAwBmD,EACpBA,EAAgBnD,uBAAsB,KAIT,iBAAxBqD,aAAe,EAAfA,EAAiBd,SAAsB,CAChDkC,EAAgB9E,EAAgBC,EAAU,KAAMyE,GAEhDI,EAAcC,iBAAmBrB,EAAgBd,QAEjD,MAAMoC,EAAiB,IAAIC,eAAe,CACxCC,KAAAA,CAAMC,GACJ,MAAMC,EAAK,IAAIC,YACfF,EAAWvH,QAAQwH,EAAGE,OAAO5B,EAAgBd,SAC/C,EACA2C,IAAAA,CAAKJ,GAEHA,EAAWK,OACb,EACAC,MAAAA,GAAU,IAGZ,OAAOhF,GACLiF,EAAAA,EAAAA,0BAAyBV,IACzBtP,MAAKL,IACLyP,EAAcC,iBAAmB1P,EAE1ByP,IAEX,CACEA,EAAgB9E,EACdC,EACA0E,EACAD,EAGN,CAGA,OAAOI,CAAa,IAKlBa,EAA0BhQ,QAAQE,IACtCuO,EAAyBhP,KAAIkP,IAE3B,GAAIhgB,KAAK4c,cAAcoD,GAAkB,CACvC,MAAM7B,EAAcne,KAAK4c,cAAcoD,GACvC,MAAO,CAAEA,kBAAiB7B,cAC5B,CAEA,OAAOne,KAAKud,YACQ,mBAAmByC,EAAe,SAEnD5O,MAAKoJ,IACJ,MAAM2D,EAAcvT,KAAK3K,MAAMua,EAAI0D,cACnC,MAAO,CAAE8B,kBAAiB7B,cAAa,IAExCrD,OAAM,KACL,MAAM,IAAItE,MAAM,sCACyCwJ,EAAe,SACvE,GACD,KAEN5O,MAAKkQ,IACL,MAAMC,EAAwB,CAAC,EAO/B,OALAD,EAAmBtd,SAAQ2P,IAAuC,IAAtC,gBAAEqM,EAAe,YAAE7B,GAAaxK,EAC1D4N,EAAsBvB,GAAmB7B,EACzCne,KAAK4c,cAAcoD,GAAmB7B,CAAW,IAG5CoD,CAAqB,IAG9B,OACElQ,QAAQE,IAAI,CAAC2O,EAAwBmB,IAClCjQ,MAAK8C,IAA0C,IAC1CoK,GADEkC,EAAec,GAAmBpN,EAaxC,OAXIsM,IACFlC,EAAU,IAAKkC,EAAec,sBAC9BhC,EAAYhB,QAAUA,EACtBkD,EAAAA,EAAQxP,KAAK,0BAA2B,CACtC6J,KAAMyC,EACNkC,cAAelC,KAInBte,KAAK0c,OAAOta,IAAI4b,EAAUsB,GAEtBA,EAAYR,MACP,CACLA,MAAOQ,EAAYR,MACnBnE,OAAQ2E,EAAY3E,QAIjB2D,CAAO,IAGfxD,OAAMjB,IACE,CACLiF,MAAOjF,EACPc,OAAQI,EAAmBvE,SAE7B,GAEN,IAcJ,OAXAgH,EACGpM,MAAK,KACJpR,KAAK2c,WAAWc,OAAOO,EAAS,IAEjClD,OAAMgE,IAEL,MADA9e,KAAK2c,WAAWc,OAAOO,GACjBc,CAAK,IAGf9e,KAAK2c,WAAWva,IAAI4b,EAAUR,GAEvBA,CACT,EAEA1U,EACA2H,aAAA,SAAayK,EAAS7K,QAAO,IAAPA,IAAAA,EAAU,CAAC,GAC/B,MAAM2N,GAAW5J,EAAAA,EAAAA,IAAS8G,GAC1B,GAAIlb,KAAK0c,OAAO3W,IAAIiY,GAAW,CAAC,IAADyD,EAC7B,MAAM9F,EAAW3b,KAAK0c,OAAO1Z,IAAIgb,GAEjC,GAAIrC,EAAS2C,QACX,OAAO3C,EAAS2C,QAGlB,GAAW,QAAXmD,EAAIpR,SAAO,IAAAoR,GAAPA,EAASC,iBACX,MAAO,CACL5C,MAAOnD,EAASmD,MAChBnE,OAAQgB,EAAShB,OAGvB,CAEF,EAAC7R,EAED6Y,eAAA,SAAe3D,GAEb,QAvkBkC4D,MACpC,GACE,eAAgBC,gBACW,IAApBA,UAAUC,WACjB,CACA,IAAKD,UAAUC,WAAWC,eAAa,IAAQ3D,SAAS,MACtD,OAAO,EAET,GAAIyD,UAAUC,WAAWE,SACvB,OAAO,CAEX,CACA,OAAO,CAAI,EA2jBJJ,OAKDC,UAAUI,YAAaxG,EAAUnb,KAAKuhB,UAAUI,cAKhDjiB,KAAK0c,OAAO3W,IAAIiY,GAKtB,EAAClV,EAEDoZ,SAAA,SAASlE,GACP,IAAKhe,KAAK2hB,eAAe3D,GACvB,MAAO,CACL5M,KAAME,GAAWA,GAAQ,GACzB6Q,MAAOA,QAGX,GAAIniB,KAAKod,kBAAkBrX,IAAIiY,GAC7B,MAAO,CACL5M,KAAME,GAAWA,GAAQ,GACzB6Q,MAAOA,QAIX,MAAMC,EAAQ,CACZ9Q,QAAS,KACT0I,OAAQ,KACRqI,QAAS,MAEXD,EAAMC,QAAU,IAAIhR,SAAQ,CAACC,EAAS0I,KACpCoI,EAAM9Q,QAAUA,EAChB8Q,EAAMpI,OAASA,CAAM,IAEvBha,KAAKmd,eAAevL,KAAK,CAACoM,EAAUoE,IACpC,MAAME,EAAS,IAAIC,gBAgBnB,OAfAD,EAAOE,OAAOrZ,iBAAiB,SAAS,KACtC,MAAMsZ,EAAQziB,KAAKmd,eAAeuF,WAAUC,IAAA,IAAEhkB,GAAEgkB,EAAA,OAAKhkB,IAAMqf,CAAQ,KAEpD,IAAXyE,GACFziB,KAAKmd,eAAerL,OAAO2Q,EAAO,EACpC,IAGGziB,KAAKkd,yBACRld,KAAKkd,wBAAyB,EAC9BZ,YAAW,KACTtc,KAAK4iB,2BAA2B,GAC/B,MAGE,CACLxR,KAAMA,CAACE,EAAS0I,IAAWoI,EAAMC,QAAQjR,KAAKE,EAAS0I,GACvDmI,MAAOG,EAAOH,MAAMpa,KAAKua,GAE7B,EAACxZ,EAED8Z,0BAAA,YACuBjb,OAAOkb,qBAAmB,CAAKC,GAAMxG,WAAWwG,EAAI,MAE5D,KACX,MAAMC,EAAa/iB,KAAKmd,eAAerL,OAAO,EAAG,GAC3CkR,EAAa3R,QAAQE,IACzBwR,EAAWjS,KAAImS,IAA2B,IAAzBjF,EAAUkF,GAASD,EASlC,OANKjjB,KAAKod,kBAAkBrX,IAAIiY,KAC9Bhe,KAAK2d,UAAU,qBAAsB,CAAE1S,SAAU+S,IACjDhe,KAAKod,kBAAkB3e,IAAIuf,IAIzBhe,KAAK4d,iBACAsF,EAAS5R,SAAQ,GAGnBtR,KAAKmjB,YAAW/O,EAAAA,EAAAA,IAAS4J,IAAW5M,MAAK,KACzCpR,KAAKsd,kBAAkBvX,IAAIiY,KAC9Bhe,KAAK2d,UAAU,yBAA0B,CAAE1S,SAAU+S,IACrDhe,KAAKsd,kBAAkB7e,IAAIuf,IAG7BkF,EAAS5R,SAAQ,EAAK,GACtB,KAIFtR,KAAKmd,eAAevf,OACtBolB,EAAW5R,MAAK,KACdkL,YAAW,KACTtc,KAAK4iB,2BAA2B,GAC/B,IAAK,IAGV5iB,KAAKkd,wBAAyB,CAChC,GAEJ,EAACpU,EAEDqa,WAAA,SAAWnF,GACT,MAAMoF,EAAcnI,EAAkB+C,GAsBpC,OAAOqF,EAAeD,EAAa,CACjCE,YAAY,YACZC,GAAG,UACFnS,MAAK,IAGNpR,KAAK0e,iBAAiBV,IAG5B,EAAClV,EAED0a,SAAA,SAAStI,GACPlb,KAAKwQ,SAAS0K,EAChB,EAACpS,EAEDyH,2BAAA,SAA2B2K,GACzB,MAAM8C,GAAW5J,EAAAA,EAAAA,IAAS8G,GACpBW,EAAO7b,KAAK6c,WAAW7Z,IAAIgb,GACjC,GAAInC,EAAM,CACR,MAAM2E,EAAgB9E,EAAgBG,EAAKyC,SAE3C,MAAM,GAANhX,QAAAyY,EAAAA,EAAAA,GACK0D,EAAoBjD,EAAc3E,KAAKC,qBAAmB,CAC7Db,EAAkB+C,IAEtB,CACE,OAAO,IAEX,EAAClV,EAED4a,eAAA,SAAexI,GACb,MAAM8C,GAAW5J,EAAAA,EAAAA,IAAS8G,GACpBW,EAAO7b,KAAK0c,OAAO1Z,IAAIgb,GAC7B,OAAQnC,GAAQA,EAAK0C,QACvB,EAACzV,EAEDkW,YAAA,SAAYf,GACV,YADiB,IAAPA,IAAAA,EAAU,GACbje,KAAKud,YAA8B,4BAA4BnM,MACpEoJ,IACE,MAAM,OAAEG,EAAM,aAAEuD,GAAiB1D,EAEjC,IAAImJ,EAEJ,GAAe,MAAXhJ,GAAkBsD,EAAU,EAE9B,OAAOje,KAAKgf,YAAYf,EAAU,GAIpC,GAAe,MAAXtD,EACF,IACE,MAAMwD,EAAcvT,KAAK3K,MAAMie,GAC/B,QAA2C3U,IAAvC4U,EAAYpC,uBACd,MAAM,IAAIvF,MAAM,iCAGlBmN,EAAUxF,CACZ,CAAE,MAAOtE,GACP,CAIJ,OAAO8J,CAAO,GAGpB,EAACpH,CAAA,CA/sBoB,GAktBvB,MAAMkH,EAAsB3H,IACzBnU,OAAOic,gBAAgB9H,IAAuB,IAAIhL,KACjD+S,GAASC,GAAkBD,IAGxB,IAkGH9O,EAlGSgP,EAAU,SAAAC,GACrB,SAAAD,EAAYE,EAAexR,EAAYkJ,GAAW,IAADxU,EA2B9C,OARDA,EAAA6c,EAAAzd,KAAA,MAlBsB,SAAC2d,EAAWC,GAKhC,QAL0C,IAAVA,IAAAA,EAAU,eAKrCF,EAHHE,EAAU,cAGmBD,GAC7B,MAAM,IAAI1N,MAAM,gEACiD0N,EAAS,KAI5E,OACED,EAAcE,GAAYD,KAEvBpJ,OAAMjB,GAAOA,GAEpB,GAEqBpH,IAAW,KAE5BkJ,GACFxU,EAAK0V,WAAWza,KAAIgS,EAAAA,EAAAA,IAASuH,EAASvJ,MAAO,CAC3C4L,SAAUrC,EAASvJ,KACnBkM,QAAS3C,EACThB,OAAO,YAEVxT,CACH,EA7BqB8R,EAAAA,EAAAA,GAAA8K,EAAAC,GA6BpB,IAAAI,EAAAL,EAAA7jB,UAkEA,OAlEAkkB,EAEDjB,WAAA,SAAWnF,GACT,OAAOgG,EAAA9jB,UAAMijB,WAAU5c,KAAC,KAAAyX,GAAU5M,MAAKL,IACrC,GAAIA,EAAO4J,SAAWI,EAAmBC,QACvC,OAAO3J,QAAQC,UAEjB,MAAMqK,EAAW5K,EAAOuN,QAClB4F,EAAYvI,EAASG,mBACrBuI,EAAgBZ,EAAoBS,GAC1C,OAAO7S,QAAQE,IAAI8S,EAAcvT,IAAIuS,IAAiBjS,MAAK,IAAMuK,GAAS,GAE9E,EAACyI,EAED1F,iBAAA,SAAiBxD,GACf,OAAO8I,EAAA9jB,UAAMwe,iBAAgBnY,KAAC,KAAA2U,GAAS9J,MAAKgG,GACtCA,EAAKmH,SACHnD,EAAiBF,GACZ9D,EAIFiE,EAAQH,EAAQ,QAAS9J,MAAKoJ,GAChB,MAAfA,EAAIG,OAIC,CACLA,OAAQI,EAAmBvE,OAMxBY,IAGJA,GAEX,EAACgN,EAEDzF,yBAAA,SAAyBzD,GACvB,OAAO8I,EAAA9jB,UAAMye,yBAAwBpY,KAAC,KAAA2U,GAAS9J,MAAKgG,GAC9CA,EAAKmH,SACHnD,EAAiBF,GACZ9D,EAIFiE,EAAQH,EAAQ,QAAS9J,MAAKoJ,GAChB,MAAfA,EAAIG,OAIC,CACLA,OAAQI,EAAmBvE,OAMxBY,IAGJA,GAEX,EAAC2M,CAAA,CA/FoB,CAASxH,GAoGzB,MAAM+H,EAAYC,IACvBxP,EAAWwP,CAAO,EAGPC,EAAe,CAC1BlL,QAAS4B,GAAWnG,EAASmN,SAAShH,GAGtC3K,2BAA4B2K,GAC1BnG,EAASxE,2BAA2B2K,GACtC1K,SAAU0K,GAAWnG,EAASvE,SAAS0K,GAEvCzK,aAAc,SAACyK,EAAS7K,GAAY,YAAL,IAAPA,IAAAA,EAAU,CAAC,GACjC0E,EAAStE,aAAayK,EAAS7K,EAAQ,EACzC6R,SAAUhH,GAAWnG,EAASmN,SAAShH,GACvCwI,eAAgBxI,GAAWnG,EAAS2O,eAAexI,GACnDsI,SAAUtI,GAAWnG,EAASyO,SAAStI,GACvC8D,YAAaA,IAAMjK,EAASiK,eAG9B,QAEO,SAASyF,IACd,OAAI1P,EACKA,EAAS6H,cAET,CAAC,CAEZ,CAEO,SAAS8H,IACd,OAAI3P,EACKA,EAASkI,SAET,CAAC,CAEZ,iKCz8BO,SAAS0H,EAAoBhR,GAA0B,IAAzB,SAAE3J,EAAQ,SAAE4a,GAAUjR,EAKzD,OAJAkR,EAAAA,EAAAA,YAAU,KACRD,GAAU,IAGL5a,CACT,CCXO,MAAM8a,EAAmB,CAAC,OAAD,iECyEzB,SAASC,EAAYC,EAAQC,GAClC,GAAID,aAAkBE,aAAeD,aAAkBC,YAAa,CAClE,MAAMC,EAAQF,EAAOG,aAAa,SAGlC,GAAID,IAAUH,EAAOI,aAAa,SAAU,CAC1C,MAAMC,EAAWJ,EAAOK,WAAU,GAGlC,OAFAD,EAASnL,aAAa,QAAD,IACrBmL,EAASF,MAAQA,EACVA,IAAUH,EAAOG,OAASH,EAAOD,YAAYM,EACtD,CACF,CAEA,OAAOL,EAAOD,YAAYE,EAC5B,CAsBO,SAASM,EACdC,EACAC,QAAqB,IAArBA,IAAAA,EAAwB,CACtBC,KAAM,CAAC,EACPC,KAAM,CAAC,IAGT,MAAMC,EAAU,IAAIpT,IACdqT,EAAiB,GAGvB,IAAK,MAAMrd,KAAQgd,EAASM,WAAY,CAAC,IAADC,EAAAC,EACtC,MAAMC,EAAWzd,EAAKyd,SAASjnB,cACzB8W,EAAoB,QAAlBiQ,EAAGvd,EAAK0d,kBAAU,IAAAH,GAAI,QAAJC,EAAfD,EAAiBjQ,UAAE,IAAAkQ,OAAJ,EAAfA,EAAqBjc,MAEhC,GAAKoc,EAAc3d,GAAnB,CAEA,GAAI4d,EAAgBH,GAElB,GAAY,SAARA,GAA+B,SAARA,EACzB,IAAK,MAAMI,KAAa7d,EAAK0d,WAAY,CACvC,MAAMI,EAAiC,UAAdD,EAAUhpB,KAYZ,IAADkpB,EAAtB,GATAd,EAAsBQ,GAAY,IAC7BR,EAAsBQ,IAGtBK,IACHb,EAAsBQ,GAAUI,EAAUhpB,MAAQgpB,EAAUtc,OAI1Duc,EACFb,EAAsBQ,GAAUO,MAAK,IACJ,QAA/BD,EAAAd,EAAsBQ,UAAS,IAAAM,GAA/BA,EAAiCC,MAC7Bf,EAAsBQ,GAAUO,MAAK,IAExCH,EAAUtc,MAAK,GAEtB,KACK,CACL,IAAI0c,EAAaje,EAAK8c,WAAU,GAQhC,GAPAmB,EAAWvM,aAAa,oBAAoB,GAGP,WAAjCuM,EAAWR,SAASjnB,gBACtBynB,EAAaC,EAAcD,IAGzB3Q,EACF,GAAK8P,EAAQ7f,IAAI+P,GAGV,CAAC,IAAD6Q,EACL,MAAMC,EAAgChB,EAAQ5iB,IAAI8S,GAGtC,QAFZ6Q,EAAAd,EACEe,GACArM,kBAAU,IAAAoM,GAFZA,EAEcE,YACZhB,EAAee,IAEjBf,EAAee,GAAiCH,CAClD,MAVEZ,EAAejU,KAAK6U,GACpBb,EAAQxjB,IAAI0T,EAAI+P,EAAejoB,OAAS,QAW1CioB,EAAejU,KAAK6U,EAExB,CAKEje,EAAKsd,WAAWloB,QAClBioB,EAAejU,KAAInP,MAAnBojB,GAAc9F,EAAAA,EAAAA,GACTwF,EAA+B/c,EAAMid,GACrCI,gBA3D2B,CA8DpC,CAEA,MAAO,CAAEA,iBAAgBJ,wBAC3B,CAEA,SAASiB,EAAcle,GACrB,MAAM0D,EAASzD,SAASoB,cAAc,UACtC,IAAK,MAAMid,KAAQte,EAAK0d,WACtBha,EAAOgO,aAAa4M,EAAKzpB,KAAMypB,EAAK/c,OAItC,OAFAmC,EAAOY,UAAYtE,EAAKsE,UAEjBZ,CACT,CAEO,SAASka,EAAgBH,GAC9B,OAAOnB,EAAiB1G,SAAS6H,EACnC,CAKO,SAASE,EAAc3d,GAC5B,OAAyB,IAAlBA,EAAKue,QACd,eCjMA,MAAMC,EAAave,SAASoB,cAAc,OACpCod,EAA8B,CAClCvB,KAAM,GACNC,KAAM,IAGFuB,EAAiBA,KAAO,IAADC,EAC3B,MAAM,eAAEtB,EAAc,sBAAEJ,GACtBF,EAA+ByB,GAEjCC,EAA4BvB,KAAOxf,OAAOwQ,KAAK+O,EAAsBC,MACrEuB,EAA4BtB,KAAOzf,OAAOwQ,KAAK+O,EAAsBE,MDkMhE,SAAoCF,GACzC,IAAKA,EAAuB,OAE5B,MAAM,KAAEC,EAAI,KAAEC,GAASF,EAEjB2B,EAAc3e,SAAS6D,cAAc,QACvC8a,GACFlhB,OAAOoS,QAAQoN,GAAM1hB,SAAQkQ,IAAsC,IAApCmT,EAAeC,GAAepT,EAC3DkT,EAAYlN,aAAamN,EAAeC,EAAe,IAI3D,MAAMC,EAAc9e,SAAS6D,cAAc,QACvCib,GACFrhB,OAAOoS,QAAQqN,GAAM3hB,SAAQ2e,IAAsC,IAApC0E,EAAeC,GAAe3E,EAC3D4E,EAAYrN,aAAamN,EAAeC,EAAe,GAG7D,CClNEE,CAA2B/B,GAM3B,MAAMgC,EAAuBhf,SAASif,iBAAiB,sBAEf,IAADC,EAAvC,GAAoC,IAAhCF,EAAqB7pB,OAEvB,YADA+pB,EAAAlf,SAASwE,MAAK2a,OAAMnlB,MAAAklB,GAAA5H,EAAAA,EAAAA,GAAI8F,IAI1B,MAAMgC,EAAe,ID8ChB,SAAkBlU,GAA0C,IAAzC,SAAEmU,EAAQ,SAAEC,EAAQ,QAAEC,EAAO,MAAEC,GAAOtU,EAC9D,IAAK,MAAMuU,KAAuBJ,EAAU,CAC1C,MAAMK,EAAkBJ,EAASrF,WAAUrmB,GACzC0oB,EAAY1oB,EAAG6rB,MAGQ,IAArBC,EACFH,EAAQE,GAGRH,EAASjW,OAAOqW,EAAiB,EAErC,CAGA,IAAK,MAAMC,KAAWL,EACpBE,EAAMG,EAEV,CC/DEC,CAAU,CACRP,SAAUL,EACVM,SAAUlC,EACVmC,QAASxf,GAAQA,EAAK+R,WAAWsM,YAAYre,GAC7Cyf,MAAOzf,GAAQqf,EAAajW,KAAKpJ,MAGnC2e,EAAA1e,SAASwE,MAAK2a,OAAMnlB,MAAA0kB,EAAIU,EAAa,EAmChC,SAASS,EAAqB3U,GAIjC,IAJkC,cACpC0M,EAAa,mBACbiB,EAAkB,mBAClBiH,GACD5U,GACCkR,EAAAA,EAAAA,YAAU,KACR,GAAIxE,SAAAA,EAAemI,KAAM,EDvEtB,SAA6Bvb,GAClC,GAAe,mBAAJA,EACT,MAAM,IAAIuJ,MAAM,uDACyCvJ,EAAI,KAEjE,CCmEMwb,CAAoBpI,EAAcmI,MAElC,MAAM,OAAE5e,IAAW8e,EAAAA,EAAAA,KAEbC,GACJ7R,EAAAA,EAAAA,KAACuJ,EAAcmI,KAAI,KD5FK9jB,EC4FgB6jB,ED3FvC,CACLxf,SAAU,CACRkC,SAAUvG,EAAMqE,SAASkC,UAE3BkJ,OAAQzP,EAAMyP,OACdiD,KAAM1S,EAAM0S,MAAQ,CAAC,EACrBwR,WAAYlkB,EAAMkkB,WAClBC,YAAankB,EAAMmkB,gBCuFXC,GAAkBnL,EAAAA,EAAAA,GAAU,kBAEhC,CAAEvT,QAASue,GACXA,GACAzU,IAAiB,IAAhB,OAAEnD,GAAQmD,EACT,MAAO,CAAE9J,QAAS2G,EAAQ,IAE5BgY,MAEFnf,GAIEkN,EAAAA,EAAAA,KAAC6N,EAAoB,CAACC,SAAUsC,EAAeld,UAC7C8M,EAAAA,EAAAA,KAACkS,EAAAA,mBAAmBlf,SAAQ,CAACC,MAAOuX,EAAmBtX,UACrD8M,EAAAA,EAAAA,KAACmS,EAAAA,iBAAgB,CAAAjf,SAAE8e,QAGvB9B,EAEJ,CDnHG,IAAyBtiB,ECqH5B,MAAO,MD4FJ,WACL,MAAMwkB,EAAgBzgB,SAASif,iBAAiB,sBAChD,IAAK,MAAMlf,KAAQ0gB,EACjB1gB,EAAK+R,WAAWsM,YAAYre,EAEhC,CChGM2gB,GDsHC,SAAqCC,GAC1C,IAAKA,EAA0B,OAE/B,MAAM,KAAE1D,EAAI,KAAEC,GAASyD,EAEvB,GAAI1D,EAAM,CACR,MAAM0B,EAAc3e,SAAS6D,cAAc,QAC3CoZ,EAAK1hB,SAAQqjB,IACPD,GACFA,EAAYiC,gBAAgBhC,EAC9B,GAEJ,CAEA,GAAI1B,EAAM,CACR,MAAM4B,EAAc9e,SAAS6D,cAAc,QAC3CqZ,EAAK3hB,SAAQqjB,IACPE,GACFA,EAAY8B,gBAAgBhC,EAC9B,GAEJ,CACF,CC3IMiC,CAA4BrC,EAA4B,CACzD,GAEL,CCzHA,SAASsC,EAAanhB,GACpB,MAAMmgB,EAAqB,IACtBngB,EACH+L,OAAQ,KACHF,EAAAA,EAAAA,IAAgB7L,EAAMW,SAASkC,aAC/B7C,EAAMoY,cAActE,KAAK2M,YAAYW,WAM5C,IAAIC,EAFkB/rB,MAIpB+rB,EADErhB,EAAMoY,cAAcC,iBACRrY,EAAMoY,cAAcC,kBAEpB5W,EAAAA,EAAAA,gBANMnM,EAMsB0K,EAAMoY,cAActJ,YAN/BxZ,EAAEkI,SAAYlI,EAM6B,IACrE6qB,EACHliB,IAAK+B,EAAMgK,MAAQhK,EAAMoY,cAAc3E,KAAKzJ,OAMhDkW,EAAsB,CACpBjI,cAHoBjY,EAAMoY,cAAcvT,KAIxCqU,mBAAoBlZ,EAAMoY,cAAcc,mBACxCiH,uBAeF,OAZoB5K,EAAAA,EAAAA,GAAU,kBAE5B,CACEvT,QAASqf,EACTrhB,MAAOmgB,GAETkB,GACA9V,IAAiB,IAAhB,OAAE5C,GAAQ4C,EACT,MAAO,CAAEvJ,QAAS2G,EAAQ3I,MAAOmgB,EAAoB,IAEvDQ,KAGJ,CAEAQ,EAAarf,UAAY,CACvBnB,SAAU2gB,IAAAA,OAAiBrf,WAC3BmW,cAAekJ,IAAAA,OAAiBrf,WAChC+M,KAAMsS,IAAAA,OACNb,YAAaa,IAAAA,OAAiBrf,YAGhC,mJCxDO,MAAMsf,EAAsB,CACjC7T,GAAG,mBACH0Q,MAAO,CACLve,SAAS,WACT2hB,IAAK,EACLC,MAAO,EACPC,OAAQ,EACRC,QAAS,EACTC,SAAS,SACTC,KAAK,mBACLC,WAAW,SACXC,OAAQ,GAEV,YAAY,YACZ,cAAc,gCCHhB,SAASC,EAAcnf,GACrB,MAAMoJ,GAAWC,EAAAA,EAAAA,GAAwBrJ,IACnC,KAAE1C,EAAI,OAAE8J,GAAW1K,OAAOoB,SAEhC,OAAgB,MAAZsL,IACF1M,OAAO0iB,WAAWhW,EAASE,OAASlC,EAAS9J,IACtC,EAIX,CAGA,IAAI+hB,EAAS,GAEb3iB,OAAOwB,iBAAiB,sBAAsBohB,IACxC,6BAA6BjqB,KAAKiqB,EAAMC,SACtCF,IACF3iB,OAAOoB,SAASkC,SAAWqf,EAE/B,IAGF,MAAMG,EAAmBA,CAAC1hB,EAAU2hB,KAC7BN,EAAcrhB,EAASkC,YAC1Bqf,EAAYvhB,EAASkC,UACrB0S,EAAAA,EAAAA,GAAU,mBAAoB,CAAE5U,WAAU2hB,iBAC5C,EAGIC,EAAgBA,CAAC5hB,EAAU2hB,KAC1BN,EAAcrhB,EAASkC,YAC1B0S,EAAAA,EAAAA,GAAU,gBAAiB,CAAE5U,WAAU2hB,gBAOzC,EAGIE,EAAW,SAACC,EAAIxa,GAIpB,QAJ2B,IAAPA,IAAAA,EAAU,CAAC,GAIlB,iBAAFwa,EAET,YADAC,EAAAA,cAAcF,SAASC,GAIzB,MAAM,SAAE5f,EAAQ,OAAEoH,EAAM,KAAE9J,IAASwiB,EAAAA,EAAAA,IAAUF,GACvCxW,GAAWC,EAAAA,EAAAA,GAAwBrJ,GAUzC,GANIoJ,IACFwW,EAAKxW,EAASE,OAASlC,EAAS9J,GAK9BZ,OAAOqjB,aAET,YADArjB,OAAOoB,SAAWkC,EAAWoH,EAAS9J,GAMxC,MAAM0iB,EAAY3O,YAAW,KAC3BkF,EAAAA,EAAQxP,KAAK,6BAA8B,CAAE/G,cAC7C0S,EAAAA,EAAAA,GAAU,uBAAwB,CAChC5U,SAAUpB,OAAOoB,UACjB,GACD,KAEHsQ,EAAAA,GAAO7I,SAASvF,EAAWoH,GAAQjB,MAAKoP,IAOtC,IAAKA,GAAiBA,EAAc7F,SAAWI,EAAAA,GAAmBvE,MAIhE,OAHA7O,OAAOujB,QAAQC,aAAa,CAAC,EAAE,GAAKpiB,SAASsK,MAC7C1L,OAAOoB,SAAWkC,OAClBmgB,aAAaH,GAM8BzK,GAEzCA,EAAc3E,KAAKE,yBACnBpU,OAAO0jB,4BAIL,kBAAmBxJ,WACoB,OAAvCA,UAAUyJ,cAAczK,YACgB,cAAxCgB,UAAUyJ,cAAczK,WAAWxV,OAEnCwW,UAAUyJ,cAAczK,WAAW0K,YAAY,CAC7CC,UAAU,uBAId7jB,OAAOoB,SAAWkC,EAAWoH,EAAS9J,IAG1CkjB,EAAAA,EAAAA,UAAcZ,EAAIxa,GAClB+a,aAAaH,EAAU,GAE3B,EAEA,SAAS9iB,EAAmBS,EAAe+K,GAAiB,IAAf,SAAE5K,GAAU4K,EACvD,MAAM,SAAE1I,EAAQ,KAAE1C,GAASQ,EACrB8H,GAAU8M,EAAAA,EAAAA,GAAU,qBAAsB,CAC9C/U,kBAEAqC,WACApC,YAAa,CAAEE,YACf2iB,uBAAwBpsB,GAAQ,CAC9B,EAGAU,KAAKuH,cAAc8B,KAAK/J,EAAMA,EAAK+G,QAGvC,GAAIwK,EAAQjT,OAAS,EAGnB,OAAOiT,EAAQA,EAAQjT,OAAS,GAGlC,GAAIgL,EAAiB,CACnB,MACEG,UAAYkC,SAAU0gB,IACpB/iB,EACJ,GAAI+iB,IAAgB1gB,EAGlB,OAAO1C,EAAOe,UAAUf,EAAK7F,MAAM,IAAM,CAAC,EAAG,EAEjD,CACA,OAAO,CACT,CAYC,IAEKkpB,EAAc,SAAA1kB,GAClB,SAAA0kB,EAAYxjB,GAAQ,IAADjB,EAEuB,OADxCA,EAAAD,EAAAX,KAAA,KAAM6B,IAAM,MACPyjB,gBAAkBpmB,EAAAA,YAAiB0B,CAC1C,EAJkB8R,EAAAA,EAAAA,GAAA2S,EAAA1kB,GAIjB,IAAA4B,EAAA8iB,EAAA1rB,UAwBA,OAxBA4I,EAEDY,mBAAA,SAAmBxB,EAAW4jB,GAC5BjkB,uBAAsB,KACpB,IAAIkkB,EAAQ,eAAkB/rB,KAAKoI,MAAMW,SAASkC,SAC9CxC,SAASujB,QACXD,EAAWtjB,SAASujB,OAEtB,MAAMC,EAAexjB,SAASif,iBAAiB,4BAC3CuE,GAAgBA,EAAaruB,SAC/BmuB,EAAWE,EAAa,GAAGC,aAE7B,MAAMC,EAAe,gBAAmBJ,EACxC,GAAI/rB,KAAK6rB,gBAAgBlgB,QAAS,CACR3L,KAAK6rB,gBAAgBlgB,QAAQygB,YAC7BD,IACtBnsB,KAAK6rB,gBAAgBlgB,QAAQygB,UAAYD,EAE7C,IAEJ,EAACrjB,EAEDc,OAAA,WACE,OAAOkN,EAAAA,EAAAA,KAAA,UAAS6S,EAAqBne,IAAKxL,KAAK6rB,iBACjD,EAACD,CAAA,CA5BiB,CAASnmB,EAAAA,WA+B7B,MAAM4mB,EAAuBA,CAAC3B,EAAc4B,KAAkB,IAADC,EAAAC,EAC3D,OAAI9B,EAAarX,OAASiZ,EAAajZ,OAInCqX,SAAmB,QAAP6B,EAAZ7B,EAAcrf,aAAK,IAAAkhB,OAAP,EAAZA,EAAqBlmB,QAAQimB,SAAmB,QAAPE,EAAZF,EAAcjhB,aAAK,IAAAmhB,OAAP,EAAZA,EAAqBnmB,IAI1C,EAGd,IACMomB,EAAY,SAAAC,GAChB,SAAAD,EAAYrkB,GAAQ,IAADukB,EAEqB,OADtCA,EAAAD,EAAAnmB,KAAA,KAAM6B,IAAM,KACZqiB,EAAiBriB,EAAMW,SAAU,MAAK4jB,CACxC,EAJgB1T,EAAAA,EAAAA,GAAAwT,EAAAC,GAIf,IAAAtI,EAAAqI,EAAAvsB,UA2BA,OA3BAkkB,EAEDnb,kBAAA,WACE0hB,EAAc3qB,KAAKoI,MAAMW,SAAU,KACrC,EAACqb,EAEDwI,sBAAA,SAAsBd,GACpB,QAAIO,EAAqBrsB,KAAKoI,MAAMW,SAAU+iB,EAAU/iB,YACtD0hB,EAAiBqB,EAAU/iB,SAAU/I,KAAKoI,MAAMW,WACzC,EAGX,EAACqb,EAED1a,mBAAA,SAAmBxB,GACbmkB,EAAqBnkB,EAAUa,SAAU/I,KAAKoI,MAAMW,WACtD4hB,EAAc3qB,KAAKoI,MAAMW,SAAUb,EAAUa,SAEjD,EAACqb,EAEDxa,OAAA,WACE,OACEijB,EAAAA,EAAAA,MAACpnB,EAAAA,SAAc,CAAAuE,SAAA,CACZhK,KAAKoI,MAAM4B,UACZ8M,EAAAA,EAAAA,KAAC8U,EAAc,CAAC7iB,SAAUA,aAGhC,EAAC0jB,CAAA,CA/Be,CAAShnB,EAAAA,mCCxN3B,SAASqnB,EAAenwB,EAAG6C,GACzB,IAAK,IAAIhD,KAAKG,EACZ,KAAMH,KAAKgD,GAAI,OAAO,EACvB,IAAK,IAAIutB,KAAMvtB,EACd,GAAI7C,EAAEowB,KAAQvtB,EAAEutB,GAAK,OAAO,EAC7B,OAAO,CACV,CC8GA,MAlHqB,SAAA7lB,GACnB,SAAA8lB,EAAY5kB,GAAQ,IAADjB,EACjBA,EAAAD,EAAAX,KAAA,OAAO,KACP,MAAM,SAAEwC,EAAQ,cAAEyX,GAAkBpY,EAQnC,OAPDjB,EAAKkE,MAAQ,CACXtC,SAAU,IAAKA,GACfyX,cACEA,GACAnH,EAAAA,GAAO5I,aAAa1H,EAASkC,SAAWlC,EAASsJ,OAAQ,CACvDqP,kBAAkB,KAEvBva,CACH,EAZmB8R,EAAAA,EAAAA,GAAA+T,EAAA9lB,GAYlB8lB,EAEMC,yBAAP,SAAAtZ,EAA8CuZ,GAAY,IAA1B,SAAEnkB,GAAU4K,EAC1C,GAAIuZ,EAAUnkB,SAASsK,OAAStK,EAASsK,KAAM,CAQ7C,MAAO,CACLmN,cARoBnH,EAAAA,GAAO5I,aAC3B1H,EAASkC,SAAWlC,EAASsJ,OAC7B,CACEqP,kBAAkB,IAMpB3Y,SAAU,IAAKA,GAEnB,CAEA,MAAO,CACLA,SAAU,IAAKA,GAEnB,EAAC,IAAAD,EAAAkkB,EAAA9sB,UA+EA,OA/EA4I,EAEDqkB,cAAA,SAAcjS,GACZ7B,EAAAA,GAAO7I,SAAS0K,GAAS9J,MAAKoP,IACxBA,GAAiBA,EAAc7F,SAAWI,EAAAA,GAAmBvE,MAC/DxW,KAAKotB,SAAS,CACZrkB,SAAU,IAAKpB,OAAOoB,UACtByX,mBAGF7Y,OAAOujB,QAAQC,aAAa,CAAC,EAAE,GAAKpiB,SAASsK,MAC7C1L,OAAOoB,SAAWmS,EACpB,GAEJ,EAACpS,EAED8jB,sBAAA,SAAsBd,EAAWuB,GAE/B,OAAKA,EAAU7M,cAkBXxgB,KAAKqL,MAAMmV,gBAAkB6M,EAAU7M,gBAIzCxgB,KAAKqL,MAAMmV,cAActJ,YAAcmW,EAAU7M,cAActJ,YAK7DlX,KAAKqL,MAAMmV,cAActE,OAASmR,EAAU7M,cAActE,SAM5Dlc,KAAKqL,MAAMtC,SAAS1C,MAAQgnB,EAAUtkB,SAAS1C,MAC/CgnB,EAAU7M,cAAc3E,OACvBwR,EAAU7M,cAAc3E,KAAKjI,YAC5ByZ,EAAU7M,cAAc3E,KAAKzJ,ODhFrC,SAA0B2C,EAAU+W,EAAWuB,GAC7C,OAAOP,EAAe/X,EAAS3M,MAAO0jB,IAAcgB,EAAe/X,EAAS1J,MAAOgiB,EACpF,CCkFUC,CAAettB,KAAM8rB,EAAWuB,OAvCrCrtB,KAAKmtB,cACHrB,EAAU/iB,SAASkC,SAAW6gB,EAAU/iB,SAASsJ,SAE5C,EAqCX,EAACvJ,EAEDc,OAAA,WAiBE,OAAO5J,KAAKoI,MAAM4B,SAAShK,KAAKqL,MAClC,EAAC2hB,CAAA,CA/GkB,CAASvnB,EAAAA,+BC6B9B,MAAM4T,EAAS,IAAI0K,EAAAA,GAAWE,KAA2Btc,OAAOgU,WAChE2I,EAAAA,EAAAA,IAAUjL,GACVA,EAAOqE,aAAaC,EAAAA,GAEpB,MAAM,OAAE/T,EAAM,QAAE2jB,IAAY7E,EAAAA,EAAAA,KAE5B/gB,OAAOsc,cAAgBA,EACvBtc,OAAO6lB,WAAahM,EAAAA,EACpB7Z,OAAO8lB,UAAYjJ,EAAAA,GH4HjBsG,EAAAA,cAAc4C,QAAOpuB,IACnBA,EAAKyJ,SAAS4kB,OAASruB,EAAKquB,MAAM,IAGpChmB,OAAOimB,QAAU/C,GAAMD,EAASC,EAAI,CAAE5rB,SAAS,IAC/C0I,OAAO0iB,WAAaQ,GAAMD,EAASC,EAAI,CAAE5rB,SAAS,IAClD0I,OAAOkmB,YAAc,CAAChD,EAAIxa,IAAYua,EAASC,EAAIxa,GG9HrD,MAAMyd,EAAgB,wCAEtBC,EAAAA,EAAAA,GAAe,iBAAiB3c,MAAK,MAG/BuM,EAAAA,EAAAA,GAAU,yBAAyB3M,OAAOgd,SAASpwB,OAAS,GAC9DwS,EAAQ,MAWV,MAAM6d,EAAe7lB,IACnB0O,EAAAA,EAAAA,KAACoX,EAAAA,YAAYpkB,SAAQ,CACnBC,MAAO,CACLokB,QAAQ,IACRC,SAAS,KACTpkB,UAEF8M,EAAAA,EAAAA,KAACyS,EAAAA,EAAY,IAAKnhB,MAIhBimB,EAAc5oB,EAAAA,cAAoB,CAAC,GAEnCgS,EAAgB,CACpBK,kBAAkB,WACnB,IAEKwW,EAAU,SAAApnB,GAAA,SAAAonB,IAAA,OAAApnB,EAAAzE,MAAA,KAAAlD,YAAA,KAiCb,OAjCa0Z,EAAAA,EAAAA,GAAAqV,EAAApnB,GAAAonB,EAAApuB,UACd0J,OAAA,WACE,MAAM,SAAEI,GAAahK,KAAKoI,MAC1B,OACE0O,EAAAA,EAAAA,KAACyX,EAAAA,SAAQ,CAAAvkB,SACN2J,IAAA,IAAC,SAAE5K,GAAU4K,EAAA,OACZmD,EAAAA,EAAAA,KAACkW,EAAe,CAACjkB,SAAUA,EAASiB,SACjCkK,IAAkC,IAAjC,cAAEsM,EAAa,SAAEzX,GAAUmL,EAC3B,MAAMoN,GAAqBmD,EAAAA,EAAAA,MACrB+J,GAAe9J,EAAAA,EAAAA,MAErB,OACE5N,EAAAA,EAAAA,KAACkS,EAAAA,GAAmBlf,SAAQ,CAACC,MAAOuX,EAAmBtX,UACrD8M,EAAAA,EAAAA,KAACY,EAAAA,GAAc5N,SAAQ,CAACC,MAAO0N,EAAczN,UAC3C8M,EAAAA,EAAAA,KAACG,EAAAA,GAAqBnN,SAAQ,CAACC,MAAOykB,EAAaxkB,UACjD8M,EAAAA,EAAAA,KAACV,EAAAA,GAAiBtM,SAAQ,CACxBC,MAAOyW,EAAc3E,KAAK1F,UAAUnM,UAEpC8M,EAAAA,EAAAA,KAACuX,EAAYvkB,SAAQ,CACnBC,MAAO,CAAEyW,gBAAezX,YAAWiB,SAElCA,WAKmB,GAGlB,GAI1B,EAACskB,CAAA,CAjCa,CAAS7oB,EAAAA,WAoCnBgpB,EAAe,SAAA/B,GAAA,SAAA+B,IAAA,OAAA/B,EAAAjqB,MAAA,KAAAlD,YAAA,KAsClB,OAtCkB0Z,EAAAA,EAAAA,GAAAwV,EAAA/B,GAAA+B,EAAAvuB,UACnB0J,OAAA,WACE,OACEkN,EAAAA,EAAAA,KAACuX,EAAYK,SAAQ,CAAA1kB,SAClB2Y,IAAA,IAAC,cAAEnC,EAAa,SAAEzX,GAAU4Z,EAAA,OAC3B7L,EAAAA,EAAAA,KAAC2V,EAAY,CAAC1jB,SAAUA,EAASiB,UAC/B8M,EAAAA,EAAAA,KAACxR,EAAAA,GAAa,CACZyD,SAAUA,EACVZ,mBAAoBA,EAAmB6B,UAEvC8M,EAAAA,EAAAA,KAAC6X,EAAAA,OAAM,CACLP,SAAUnb,GACVlK,SAAUA,EACV+M,GAAG,uBAAsB9L,UAEzB8M,EAAAA,EAAAA,KAACmX,EAAY,CACX7b,KACyB,cAAvBoO,EAAc3E,KAAKzJ,MACI,cAAvBoO,EAAc3E,KAAKzJ,MACfY,EAAAA,EAAAA,GAAYjK,EAASkC,SAAUgI,IAC/B2b,WAEIpO,EAAc3E,KAAKjI,WACnB4M,EAAc3E,KAAKzJ,MACnB7U,MAAM,KAAK,OAGjByC,KAAKoI,MACTW,SAAUA,EACVyX,cAAeA,KACXA,EAActE,YAIX,GAIvB,EAACuS,CAAA,CAtCkB,CAAShpB,EAAAA,WAyC9B,MAAM,SAAEuY,EAAUjV,SAAU8lB,GAAelnB,OAYzCqW,GACA/K,GAAgB+K,IACd6Q,EAAW5jB,UAAY+S,EAASI,SAAS,KAAOyQ,EAAWxc,OAAM,OAEjEgH,EAAO9F,eAAcP,EAAAA,EAAAA,GAAY6b,EAAW5jB,SAAUgI,MACtD+K,EAASzd,MAAM,6BACfyd,EAASzd,MAAM,+CAGjBqqB,EAAAA,EAAAA,UACE3X,GACE+K,GACEA,EAASI,SAAS,KAAwB,GAAjByQ,EAAWxc,QACtCwc,EAAWtmB,KACb,CACEtJ,SAAS,IAMf,MAAM6vB,EAAoBA,KACxB,IACE,OAAOpkB,cACT,CAAE,MACA,OAAO,IACT,GAGF8Z,EAAAA,GAAahU,SAASqe,EAAW5jB,SAAW4jB,EAAWxc,QAAQjB,MAAKyK,IAAS,IAADkT,EAC1E,MAAMrkB,EAAiBokB,IAEvB,GACEjT,SAAU,QAANkT,EAAJlT,EAAMA,YAAI,IAAAkT,GAAVA,EAAYhT,wBACZF,EAAKA,KAAKE,yBAA2BpU,OAAO0jB,4BAI1C,kBAAmBxJ,WACoB,OAAvCA,UAAUyJ,cAAczK,YACgB,cAAxCgB,UAAUyJ,cAAczK,WAAWxV,OAEnCwW,UAAUyJ,cAAczK,WAAW0K,YAAY,CAC7CC,UAAU,uBAUV9gB,GAAgB,CAGlB,KAF2D,MAAxCA,EAAeC,QAAQmjB,IAKxC,OAFApjB,EAAeK,QAAQ+iB,EAAiB,UACxCnmB,OAAOoB,SAASimB,QAAO,EAG3B,CAOF,GAJItkB,GACFA,EAAeukB,WAAWnB,IAGvBjS,GAAQA,EAAKlB,SAAWI,EAAAA,GAAmBvE,MAAO,CACrD,MAAMgC,EAAO,sBAAyBqW,EAAW5jB,SAAQ,kCAIzD,GAAI4Q,GAAQA,EAAKiD,MAEf,MAAMjD,EAAKiD,MAGb,MAAM,IAAItI,MAAMgC,EAClB,CAEA,MAAM0W,GAAWvR,EAAAA,EAAAA,GAAU,kBAEzB,CAAEvT,SAAS0M,EAAAA,EAAAA,KAAC2X,EAAe,MAC3B3X,EAAAA,EAAAA,KAAC2X,EAAe,KAChBxL,IAAiB,IAAhB,OAAElS,GAAQkS,EACT,MAAO,CAAE7Y,QAAS2G,EAAQ,IAE5BgY,MAEIoG,EAAM,WACV,MAAMC,EAAsB3pB,EAAAA,QAAa,GAazC,OAXAA,EAAAA,WAAgB,KACT2pB,EAAoBzjB,UACvByjB,EAAoBzjB,SAAU,EAC1B0jB,YAAYC,MACdD,YAAYC,KAAK,0BAGnB3R,EAAAA,EAAAA,GAAU,yBACZ,GACC,KAEI7G,EAAAA,EAAAA,KAACwX,EAAU,CAAAtkB,SAAEklB,GACtB,EAEMK,EAAU9mB,SAASC,eAAe,wBAIxC,IAAI8mB,EAAkB5lB,EAClB2lB,GAAWA,EAAQvlB,SAASpM,SAC9B4xB,EAAkBjC,GAGpB,MAAMkC,GAAW9R,EAAAA,EAAAA,GAAU,8BAEzBpU,EACAimB,GACA,GAEF,SAASE,IACP,MAAMC,EACS,oBAANhoB,OACHc,SAASC,eAAe,aACxB,KAEN+mB,GAAS3Y,EAAAA,EAAAA,KAACqY,EAAG,IAAKQ,EACpB,CAIA,MAAMC,EAAMnnB,SACZ,GACgB,aAAdmnB,EAAIpU,YACW,YAAdoU,EAAIpU,aAA6BoU,EAAIC,gBAAgBC,SAEtDxT,YAAW,WACToT,GACF,GAAG,OACE,CACL,MAAM/d,EAAU,WACdie,EAAInmB,oBAAoB,mBAAoBkI,GAAS,GACrDhK,OAAO8B,oBAAoB,OAAQkI,GAAS,GAE5C+d,GACF,EAEAE,EAAIzmB,iBAAiB,mBAAoBwI,GAAS,GAClDhK,OAAOwB,iBAAiB,OAAQwI,GAAS,EAC3C,CAEM,GACN,+EC1SJ,UAlByBgC,IAAmB,IAAlB,SAAE5K,GAAU4K,EACpC,MAAM6M,EAAgBnH,EAAAA,GAAO5I,aAAa1H,EAASkC,UACnD,OAAKuV,EAGE/a,EAAAA,cAAoBsqB,EAAAA,EAAsB,CAC/ChnB,WACAyX,mBACGA,EAActE,OALV,IAMP,wBCfkBxe,MAKpBxB,EAAOC,SALauB,EAKW0S,EAAQ,OALR1S,EAAEkI,SAAYlI,qECA/C,MAAMoT,EAAM,IAAIlK,QAET,SAAS8hB,IACd,MAAMsH,EAAiB5f,EAAQ,KAY/B,MAAO,CAAExG,OAVMA,CAACK,EAAWgmB,KACzB,IAAIC,EAAOpf,EAAI9N,IAAIitB,GACdC,GACHpf,EAAI1O,IAAI6tB,EAAKC,EAAOF,EAAeG,WAAWF,IAEhDC,EAAKtmB,OAAOK,EAAU,EAKPsjB,QAFDA,CAACtjB,EAAWgmB,IAAOD,EAAeI,YAAYH,EAAIhmB,GAGpE,qECZA,MAAMomB,EAAc,IAAI7d,IAClB8d,EAAwB,IAAI9d,IAU3B,SAAS8B,EAAwBrJ,GACtC,IAAIoJ,EAAWgc,EAAYrtB,IAAIiI,GAI/B,OAHKoJ,IACHA,EAAWic,EAAsBttB,IAAIiI,EAASjM,gBAEzCqV,CACT,IAdUrQ,SAAQqQ,IACZA,EAASkc,WACXD,EAAsBluB,IAAIiS,EAASmc,SAAUnc,GAE7Cgc,EAAYjuB,IAAIiS,EAASmc,SAAUnc,EACrC,4DCTwB,WAAxB1M,OAAOoB,SAAS0nB,UACQ,cAAxB9oB,OAAOoB,SAAS2nB,UAKP,kBAAmB7O,WAC5BA,UAAUyJ,cACPqF,SAAyB,UACzBvf,MAAK,SAAUwf,GACdA,EAAIznB,iBAAiB,eAAe,MAClCwU,EAAAA,EAAAA,GAAU,6BAA8B,CAAE2N,cAAesF,IAGzD,MAAMC,EAAmBD,EAAIE,WAE7BD,EAAiB1nB,iBAAiB,eAAe,KAC/C,OAAQ0nB,EAAiBxlB,OACvB,IAAI,YACEwW,UAAUyJ,cAAczK,YAK1BlZ,OAAOqjB,cAAe,GAEtBrN,EAAAA,EAAAA,GAAU,6BAA8B,CAAE2N,cAAesF,IAGrDjpB,OAAOopB,oBAETppB,OAAOoB,SAASimB,WAUlBrR,EAAAA,EAAAA,GAAU,2BAA4B,CAAE2N,cAAesF,IAEzD,MAEF,IAAI,aAEFjT,EAAAA,EAAAA,GAAU,2BAA4B,CAAE2N,cAAesF,IACvD,MAEF,IAAI,aACFjT,EAAAA,EAAAA,GAAU,wBAAyB,CAAE2N,cAAesF,IAExD,GACA,GAEN,IACC9V,OAAM,SAAUze,GAEjB,8JC5DJ,MAAM4a,EAAuBxR,EAAAA,cAAoB,CAAC,GAC5CiS,EAAgBjS,EAAAA,cAAoB,CAAC,GACrC2Q,EAAmB3Q,EAAAA,cAAoB,CAAC,GACxC6Q,EAAqB7Q,EAAAA,cAAoB,CAAC,mJCDhD,MAAMujB,GCgB+B3rB,EDhBkB,cCgBZ2zB,EDhB2B,CAAC,ECiBjEvrB,EAAMwrB,oBAjBgB,SAAC5zB,EAAM2zB,GAajC,YAb6C,IAAZA,IAAAA,EAAe,MAE3CE,WAAWC,mBACdD,WAAWC,iBAAmB,CAAC,GAG5BD,WAAWC,iBAAiB9zB,KAC/B6zB,WAAWC,iBAAiB9zB,GAAQoI,EAAMwrB,oBACxC5zB,EACA2zB,IAIGE,WAAWC,iBAAiB9zB,EACrC,CAIW4zB,CAAoB5zB,EAAM2zB,GAG5BvrB,EAAAA,cAAoBurB,IAL7B,IAAqC3zB,EAAM2zB,EDd3C,SAASI,EAAuBzd,GAA4C,IAA3C,gBAAE0d,EAAe,KAAEja,EAAI,MAAEka,EAAK,OAAE1nB,GAAQ+J,EACvE,MAAM4d,EAAYna,EACdA,EAAKA,KACLia,EAAgBC,IAAUD,EAAgBC,GAAOla,KAErD,OACEyV,EAAAA,EAAAA,MAACpnB,EAAAA,SAAc,CAAAuE,SAAA,CACZunB,GAAa3nB,EAAO2nB,IACnBA,IAAaza,EAAAA,EAAAA,KAAA,OAAA9M,SAAK,4BAG1B,CAKA,MAAMwnB,EAAcppB,IAClB,MAAM,KAAEgP,EAAI,MAAEka,EAAK,OAAE1nB,EAAM,SAAEI,GAAa5B,EAS1C,OACE0O,EAAAA,EAAAA,KAACkS,EAAmB0F,SAAQ,CAAA1kB,SACzBqnB,IACCva,EAAAA,EAAAA,KAACsa,EAAuB,CACtBha,KAAMA,EACNka,MAAOA,EACP1nB,OAAQA,GAAUI,EAClBqnB,gBAAiBA,KAGO,EAW5BI,EAAiBH,IAAU,IAADI,EAErBjsB,EAAAA,WAUT,MAAMksB,EAAUlsB,EAAAA,WAAiBujB,GAKjC,GAAI4I,MAAM3uB,OAAOquB,IACf,MAAM,IAAI9a,MAAM,8KAIM8a,EAAK,SAI7B,GAAkB,QAAlBI,EAAIC,EAAQL,UAAM,IAAAI,GAAdA,EAAgBta,KAClB,OAAOua,EAAQL,GAAOla,KAEtB,MAAM,IAAIZ,MACR,uMAIJ,qCElFa,SAASxD,EAAYzO,EAAKstB,GACvC,YAD6C,IAANA,IAAAA,EAAM,IACxCA,EAIDttB,IAAQstB,EACJ,IAGJttB,EAAI4O,WAAc0e,EAAM,KACnBttB,EAAI7B,MAAMmvB,EAAOj0B,QAGnB2G,EAXEA,CAYX,kKClBQutB,oDCCJC,EAAiB,gBAAoB,IAAIC,EAAA,GAClCloB,EAAWioB,EAAejoB,SDHjCmoB,GCGsDF,EAAerD,SDFjEoD,EAAgB,SAAU90B,EAAGwC,GAI7B,OAHAsyB,EAAgB5rB,OAAO+O,gBAClB,CAAEid,UAAW,cAAgBr0B,OAAS,SAAUb,EAAGwC,GAAKxC,EAAEk1B,UAAY1yB,CAAG,GAC1E,SAAUxC,EAAGwC,GAAK,IAAK,IAAIb,KAAKa,EAAOA,EAAE8G,eAAe3H,KAAI3B,EAAE2B,GAAKa,EAAEb,GAAI,EACtEmzB,EAAc90B,EAAGwC,EAC5B,EACO,SAAUxC,EAAGwC,GAEhB,SAAS2yB,IAAOnyB,KAAKuV,YAAcvY,CAAG,CADtC80B,EAAc90B,EAAGwC,GAEjBxC,EAAEkD,UAAkB,OAANV,EAAa0G,OAAOsL,OAAOhS,IAAM2yB,EAAGjyB,UAAYV,EAAEU,UAAW,IAAIiyB,EACnF,GAsBJ,EAjBqC,SAAUC,GAE3C,SAASC,EAAgBjqB,GACrB,IAAIjB,EAAQirB,EAAO7rB,KAAKvG,KAAMoI,IAAUpI,KAOxC,OANIoI,EAAMkqB,QACNnrB,EAAMmrB,QAAUlqB,EAAMkqB,QAGtBnrB,EAAMmrB,QAAU,IAAI,IAEjBnrB,CACX,CAIA,OAdA8qB,EAAUI,EAAiBD,GAW3BC,EAAgBnyB,UAAU0J,OAAS,WAC/B,OAAO,gBAAoBE,EAAU,CAAEC,MAAO/J,KAAKsyB,SAAWtyB,KAAKoI,MAAM4B,SAC7E,EACOqoB,CACX,CAhBoC,CAgBlC,uBE1BK,MCEME,EDImBre,IAA6B,IAA5B,QAAE9J,EAAO,MAAEhC,GAAW8L,EACtD,OAAO4C,EAAAA,EAAAA,KAACub,EAAe,CAAAroB,UACrB8M,EAAAA,EAAAA,KAAC0b,EAAAA,GAAU,CAAAxoB,SAAEI,KACI,ECNPqoB,EDHe9e,IAA6B,IAA5B,QAAEvJ,EAAO,MAAEhC,GAAWuL,EAClD,OAAOmD,EAAAA,EAAAA,KAAC4b,EAAAA,GAAM,IAAKtqB,EAAK4B,SACtBI,GACO,43CETV,MAAA3N,EAAoBJ,IAClB,MAAMgW,OAAEjW,EAAFmM,KAAUhM,EAAV8W,KAAgB/W,EAAhBq2B,OAAsB/1B,EAAtB6zB,SAA8B9zB,EAA9Bi2B,KAAwCn2B,EAAxCi0B,SAA8Cl0B,EAA9Cq2B,KAAwDh2B,GAC5DR,EAAO0M,SACT,IAAIkC,SAAEhO,GAAaZ,EAAO0M,SAO1B,OALK9L,GAAYX,GAAQI,IAEvBO,EADY,IAAAmW,IAAQ9W,GACL2O,UAGV,CACLA,SAAU2jB,UAAUtlB,UAAUrM,IAC9BoV,OAAAjW,EACAmM,KAAAhM,EACA8W,KAAA/W,EACAq2B,OAAA/1B,EACA6zB,SAAA9zB,EACAi2B,KAAAn2B,EACAi0B,SAAAl0B,EACAq2B,KAAAh2B,EACAwO,MAAOhP,EAAO6uB,QAAQ7f,MACtBhF,IAAMhK,EAAO6uB,QAAQ7f,OAAShP,EAAO6uB,QAAQ7f,MAAMhF,KAAQ,UAXtD,EAAA7J,EAeaA,CAACH,EAAQD,KAC7B,IAAAG,EAAgB,GACZD,EAAWG,EAAYJ,GACvBM,GAAA,EACiBH,EAAGs2B,OAExB,MAAO,CACL,YAAA/pB,GACE,OAAOzM,CACR,EAED,iBAAAy2B,GACE,OAAOp2B,CACR,EAEDq2B,qBAAAA,GACEr2B,GAAA,EACAH,GACD,EAEDkxB,MAAAA,CAAOtxB,GACLG,EAAUqV,KAAKxV,GAEf,MAAMQ,EAAmBq2B,KACvB32B,EAAWG,EAAYJ,GACvBD,EAAS,CAAE2M,SAAAzM,EAAUqxB,OAAQ,OAArB,EAKV,OAFAtxB,EAAO8M,iBAAiB,WAAYvM,GAE7B,KACLP,EAAOoN,oBAAoB,WAAY7M,GACvCL,EAAYA,EAAUyU,QAAO3U,GAAMA,IAAOD,GAA9B,CAEf,EAEDwuB,QAAAA,CAASxuB,EAAA82B,GAAD,IAAK7nB,MAAExO,EAAFoC,QAASvC,GAAA,QAAU,IAAAw2B,EAAU,CAAlC,EAAAA,EACN,GAAkB,iBAAd92B,EACFC,EAAO6uB,QAAQiI,GAAG/2B,OACb,CACLS,EAAaD,EAAA,GAAAC,EAAA,CAAOwJ,IAAKjG,KAAKgzB,MAAQ,KAEtC,IACMz2B,GAAiBD,EACnBL,EAAO6uB,QAAQC,aAAatuB,EAAO,KAAMT,GAEzCC,EAAO6uB,QAAQmI,UAAUx2B,EAAO,KAAMT,EAIzC,CAFC,MAAOG,GACPF,EAAO0M,SAASrM,EAAU,UAAY,UAAUN,EACjD,CACF,CAEDE,EAAWG,EAAYJ,GACvBM,GAAA,EACA,MAAMM,EAAa,IAAIoU,SAAQhV,GAAQG,EAAoBH,IAE3D,OADAE,EAAUyH,SAAQ3H,GAAYA,EAAS,CAAE0M,SAAAzM,EAAUqxB,OAAQ,WACpD1wB,CACR,EApDI,EAyDHJ,EAAqB,SAACR,QAAA,IAAAA,IAAAA,EAAc,KACxC,MAAMD,EAAcC,EAAY0V,QAAQ,KACnBxV,EAAG,CACtB0O,SACE7O,GAAe,EAAIC,EAAYi3B,OAAO,EAAGl3B,GAAeC,EAC1DgW,OAAQjW,GAAe,EAAIC,EAAYi3B,OAAOl3B,GAAe,IAE/D,IAAIE,EAAQ,EACZ,MAAMM,EAAQ,CAACL,GAAAI,EACA,CAAC,MAEhB,MAAO,CAAC,YAADoM,GAEH,OAAOnM,EAAMN,EACd,EACD6M,gBAAAA,CAAiB9M,EAAMD,GAJlB,EAKLqN,mBAAAA,CAAoBpN,EAAMD,GALrB,EAML8uB,QAAS,CACP,WAAA5S,GACE,OAAO1b,CACR,WAAA6lB,GAEC,OACDnmB,CAAA,EACG,SAAA+O,GACF,OAAa1O,EAACL,EACf,EACD+2B,SAAAA,CAAUh3B,EAAOD,EAAGG,GAClB,MAAOE,EAAUD,EAAS,IAAMD,EAAIgB,MAAM,KAC1CjB,IACAM,EAAMgV,KAAK,CAAE3G,SAAAxO,EAAU4V,OAAQ7V,EAAOoB,OAAA,IAAapB,EAAWA,IAC9DG,EAAOiV,KAAKvV,EACb,EACD8uB,YAAAA,CAAa9uB,EAAOD,EAAGG,GACrB,MAAOE,EAAUD,EAAS,IAAMD,EAAIgB,MAAM,KAC1CX,EAAMN,GAAS,CAAE2O,SAAAxO,EAAU4V,OAAA7V,GAC3BG,EAAOL,GAASD,CACjB,EACD82B,EAAAA,CAAG92B,GACD,MAAcD,EAAGE,EAAQD,EAErBD,EAAW,GAAKA,EAAWO,EAAOiB,OAAS,IAI/CtB,EAAQF,EACT,GAnCE,EA0CMM,IACK,oBAAAiL,SAClBA,OAAOc,WACPd,OAAOc,SAASoB,eAOZ5M,EAAgBT,EAJJE,EAAGiL,OAAS9K,MAKxB+tB,SAAEjsB,GAAa1B,ECrIrB,SAASF,EAA4BV,EAAME,GACzC,OAAIH,EAAM60B,oBAhBgB,SAAC50B,EAAME,GAAe,YAAf,IAAAA,IAAAA,EAAe,MAC3C20B,WAAWC,mBACdD,WAAWC,iBAAmB,CAAC,GAG5BD,WAAWC,iBAAiB90B,KAC/B60B,WAAWC,iBAAiB90B,GAAQD,EAAM60B,oBACxC50B,EACAE,IAIG20B,WAAWC,iBAAiB90B,EAAA,CAZT,CAiBGA,EAAME,GAGvBH,EAAAA,cAAeG,EAC5B,CAEY,MAAWmB,EAAGX,EAA4B,OAAQ,CAC7DoxB,QAAS,IACTC,SAAU,MAECpxB,EAAkBD,EAA4B,YAAAD,EC5B7BA,IAAMT,EAAAA,WAAiBqB,GACtBP,EAAGo2B,IAAMl3B,EAAAA,WAAiBW,GCEzD,SAAAw2B,EAAyBn3B,GACvB2D,KAAKyzB,IAAMp3B,CACZ,CAEK,MAAA6C,EAAa7C,GAAKA,aAAxBm3B,EAEMz1B,EAAa1B,IACjB,MAAM,IAAAm3B,EAAoBn3B,EAApB,EAGR,SAAAmD,EAAsBpD,GACpB,MAAMyuB,GAAEtuB,EAAF0C,QAAM3C,GAAA,EAAN+O,MAAsBzO,EAAtB82B,QAA6B/2B,EAA7BwxB,QAAsC1xB,GAAYL,EAExDC,EAAAA,WAAgB,KACdgV,QAAQC,UAAUF,MAAK,KACrB,MAAM/U,EAAa0H,EAAQxH,EAAIE,GAC/BkC,EAASg1B,EAAat3B,EAAYD,GAAQ,CAAE6C,QAAA3C,EAAS+O,MAAAzO,GAA7C,GAEX,GAAE,IAEH,MAAgBJ,EAAGuH,EAAQxH,EAAIE,GAM/B,OAJKE,GACHoB,EAAW41B,EAAan3B,EAAYJ,IAAA,IAIvC,CAEK,MAAQw3B,EAAGx3B,IACf,MAAMG,EAAkBY,KAClBgxB,QAAE7xB,GAAYQ,IAEpB,OAAOT,EAAAA,cAACmD,EAAD5C,EAAA,GAAkBL,EAAlB,CAAmC4xB,QAAS7xB,GAAaF,GACjE,EAEDw3B,EAAS1pB,UAAY,CACnBsV,KAAMjjB,IAAAA,OACNsuB,GAAItuB,IAAAA,OAAiB8N,YCrCjB,MAAAwpB,EAAa1gB,CAAC9W,EAAQD,IAAAC,EACZi3B,OAAO,EAAGl3B,EAAOwB,UAAYxB,EAAAwC,EAyBhCyT,CAAChW,EAAQD,KACpB,IAAAG,EACAK,EAEA,MAAOD,GAAeP,EAAImB,MAAM,KAC1Bd,EAAcq3B,EAAWn3B,GAChBH,EAAsB,KAAnBC,EAAY,GACxBI,EAASk3B,EAAW13B,GAE1B,IAAK,IAAAA,EAAQ,EAAGM,EAAIE,EAAOe,OAAQvB,EAAIM,EAAGN,IAAK,CAC7C,IAAAM,GAAA,EACA,MAAMD,EAAQG,EAAOR,GAAG2X,MAExB,GAAItX,EAAMkJ,QAAS,CACjBhJ,EAAW,CACToX,MAAAtX,EACAyX,OAAQ,CAAC,EACTsf,IAAAr3B,GAEF,QACD,CAED,MAAmBa,EAAG62B,EAAWp3B,EAAM0V,MAAAzT,EACxB,CAAC,EACV5B,EAAMmB,KAAK81B,IAAIv3B,EAAYmB,OAAQX,EAAcW,QACvD,IAASF,EAAG,EAEZ,KAAOA,EAAQX,EAAKW,IAAS,CAC3B,MAAkBrB,EAAGY,EAAcS,GACnBtB,EAAGK,EAAYiB,GAE/B,GAAIR,EAAQb,GAAe,CAKzBsC,EADctC,EAAaqG,MAAM,IAAM,KACvBjG,EACbiG,MAAMhF,GACNoT,IAAIiC,oBACJjV,KAAK,KACR,KACD,CAED,YAAI1B,EAA0B,CAI5BO,GAAA,EACA,KACD,CAED,MAAkBJ,EAAG8C,EAAQ40B,KAAK53B,GAElC,GAAIE,IAAiBC,EAAW,CAC9B,MAAwBH,GAA+C,IAA5C63B,EAAcniB,QAAQxV,EAAa,IAC9DD,IACED,EAAA,6BAC6BE,EAAa,iEAAgEG,EAAM0V,KAAA,MAElH,MAAWxV,EAAGmW,mBAAmB3W,GACjCuC,EAAOpC,EAAa,IAAMK,CAC3B,SAAUP,IAAiBD,EAAY,CAItCO,GAAA,EACA,KACD,CACF,CAED,IAAKA,EAAQ,CACXJ,EAAQ,CACNyX,MAAAtX,EACAyX,OAAAxV,EACA80B,IAAK,IAAMh3B,EAAYiG,MAAM,EAAGhF,GAAOI,KAAK,MAE9C,KACD,CACF,CAED,OAAYvB,GAAIK,GAAY,IAAI,EAMvBiD,EAAGU,CAAClE,EAAMD,IAAQwC,EAAK,CAAC,CAAEwT,KAAA/V,IAASD,GAAA2H,EA6B9B0vB,CAACp3B,EAAID,KAEnB,GAAIy3B,EAAWx3B,EAAI,KACjB,OAAOA,EAGT,MAAOE,EAAYD,GAAWD,EAAGkB,MAAM,MAChCX,GAAgBR,EAAKmB,MAAM,KAAAZ,EAEfm3B,EAAWv3B,GAAAE,EACTq3B,EAAWl3B,GAGhC,GAAsB,KAAlBD,EAAW,GACb,OAAew3B,EAACv3B,EAAcN,GAIhC,IAAKu3B,EAAWl3B,EAAW,GAAI,KAAM,CACnC,MAAcN,EAAGI,EAAa6K,OAAO3K,GAAYmB,KAAK,KACtD,OAAOq2B,GAA2B,MAAjBv3B,EAAuB,GAAK,KAAOP,EAAUC,EAC/D,CAOD,MAAME,EAAcC,EAAa6K,OAAO3K,GAAAE,EACvB,GACjB,IAAK,IAAKR,EAAG,EAAGD,EAAII,EAAYoB,OAAQvB,EAAID,EAAGC,IAAK,CAClD,MAAAD,EAAgBI,EAAYH,GACZ,OAAZD,EAAkBS,EAASksB,MACV,MAAZ3sB,GAAiBS,EAAS+U,KAAKxV,EACzC,CAED,OAAO+3B,EAAS,IAAMt3B,EAASiB,KAAK,KAAMxB,EAA3B,EAAAq3B,EAGIA,CAACt3B,EAAMD,KAC1B,MAAOG,EAAUD,EAAQ,IAAMD,EAAKkB,MAAM,KAE1C,IAAmBX,EACjB,IAFek3B,EAAWv3B,GAIvBuU,KAAIzU,IACH,MAAWE,EAAG8C,EAAQ40B,KAAK53B,GAC3B,OAAAE,EAAeH,EAAOG,EAAM,IAAMF,CAAA,IAEnCyB,KAAK,KACV,MAAQiL,UAAUsJ,OAAE1V,EAAS,IAAO,CAAC,GAAMP,EAC1BK,EAAGE,EAAOY,MAAM,KAAK,IAAM,GAE5C,OADAX,EAAkBu3B,EAASv3B,EAAiBN,EAAOG,GAC5CG,CAAA,EAAAw3B,EAGgBC,CAACh4B,EAAMD,KAC9B,MAAYG,EAAGF,GAAW+C,EAAU/C,GAGpC,OAFmBy3B,EAAWz3B,GAAM2U,OAAOzU,GAAQ+3B,OAAOx2B,KAAK,OAC9Cg2B,EAAW13B,GAAI4U,OAAOzU,GAAQ+3B,OAAOx2B,KAAK,IACrC,EAAAuB,EAGR,SASVD,EAAY/C,GAAWgD,EAAQiB,KAAKjE,GAC7Ba,EAAGb,GAAWA,GAA0B,MAAfA,EAAQ,GAAA8C,EAE5BA,CAAC9C,EAAOD,KAAA,CAWf4X,MAAA3X,EAAOk4B,MAVFl4B,EAAMuJ,QAChB,EACAkuB,EAAWz3B,EAAM+V,MAAMnB,QAAO,CAAC5U,EAAOD,KACpCC,GAde,EAMD,CAAAA,GAAuB,KAAZA,EAAX,CASID,GAAUC,GAXhB,EAYH+C,EAAUhD,GAAUC,GAdd,EAeNa,EAAQd,GAAUC,GAAS,EAC1BA,GAjBI,EAmBfA,IAAE,GACgBomB,MAAArmB,IAAA23B,EAGN13B,GACjBA,EACGyU,IAAI3R,GACJm1B,MAAK,CAACj4B,EAAGD,IACRC,EAAEk4B,MAAQn4B,EAAEm4B,MAAQ,EAAIl4B,EAAEk4B,MAAQn4B,EAAEm4B,OAAS,EAAIl4B,EAAEomB,MAAQrmB,EAAEqmB,QAAAqR,EAGhDz3B,GACjBA,EAEG4C,QAAQ,eAAgB,IACxB1B,MAAM,KAEL42B,EAAW,SAAC93B,GAAA,QAAA+K,EAAA7H,UAAA3B,OAAaxB,EAAA,IAAAyB,MAAAuJ,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAAjL,EAAAiL,EAAA,GAAA9H,UAAA8H,GAAA,OAAAhL,IAC7BD,EAAQA,EAAM4U,QAAO3U,GAAKA,GAAKA,EAAEuB,OAAS,MACdxB,EAAMwB,OAAS,MAAQxB,EAAM0B,KAAK,KAAS,KAGnEo2B,EAAgB,CAAC,MAAO,QAAAr1B,EAOPA,CAACxC,EAAMD,KAC5B,MAAAG,EAAiB2J,OAAOwQ,KAAKra,GAC7B,OACEE,EAASqB,SAAWsI,OAAOwQ,KAAKta,GAAMwB,QACtCrB,EAASi4B,OAAMj4B,GAAOH,EAAKkK,eAAe/J,IAAQF,EAAKE,KAASH,EAAKG,IAArE,EAIEa,EAAef,GAAOA,EAAI4C,QAAQ,eAAgB,IAElDw1B,EAAcr4B,GAAYG,IAC9B,IAAKA,EACH,OAAO,KAGT,GAAIA,EAAQmV,OAASrV,EAAAA,UAAkBE,EAAQ6L,MAAM4B,SACnD,OAAA3N,EAAAA,SAAsByU,IAAIvU,EAAQ6L,MAAM4B,SAAUyqB,EAAYr4B,IAoBhE,GAlBAE,IACEC,EAAQ6L,MAAMgK,MAAQ7V,EAAQ6L,MAAMxC,SAAWrJ,EAAQmV,OAASkiB,EAAA,0HACiEr3B,EAAQmV,KAAA,KAG3IpV,OACIC,EAAQmV,OAASkiB,GAAcr3B,EAAQ6L,MAAMoX,MAASjjB,EAAQ6L,MAAMyiB,IAAA,mBACnDtuB,EAAQ6L,MAAMoX,KAAA,SAAajjB,EAAQ6L,MAAMyiB,GAAA,mEAG9DvuB,MAEIC,EAAQmV,OAASkiB,IAChBQ,EAAiB73B,EAAQ6L,MAAMoX,KAAMjjB,EAAQ6L,MAAMyiB,KAAA,mBAEnCtuB,EAAQ6L,MAAMoX,KAAA,QAAYjjB,EAAQ6L,MAAMyiB,GAAA,gGAGzDtuB,EAAQ6L,MAAMxC,QAChB,MAAO,CAAEmE,MAAOxN,EAASqJ,SAAA,GAG3B,MAAAhJ,EACEL,EAAQmV,OAASkiB,EAAWr3B,EAAQ6L,MAAMoX,KAAOjjB,EAAQ6L,MAAMgK,KAE3DzV,EACY,MAAhBC,EACIR,EACGgB,EAAahB,GAAA,IAAagB,EAAaR,GAEhD,MAAO,CACLmN,MAAOxN,EACPqJ,QAASrJ,EAAQ6L,MAAMxC,QACvBwM,KAAM7V,EAAQ6L,MAAM4B,SAAc5M,EAAaT,GAAA,KAAYA,EAHtD,ECrTT+3B,EAAA,aAAAC,EAAA,oCAAAC,EAAA,QAMA,IAAIC,WAAEC,GAAez4B,IAAAA,EAAAA,EAAAA,EAAAA,EAAAA,SAAA,IAEVy4B,IACTA,EAAaz4B,GAAKA,GAGpB,MAAO04B,EAAGhxB,OAEGixB,EAAOF,GAAW,CAAyB14B,EAAAG,KAAQ,IAAhC04B,SAAE34B,GAA8BF,EAAjBK,EAAiBE,EAAAP,EAAAs4B,GAC9D,MAAMvG,QAAE3xB,GAAYM,KACdiM,SAAElM,GAAaM,KAEf0tB,GAAEnuB,EAAF2O,MAAMpO,EAANgC,QAAalC,EAAbm4B,SAAsBx3B,EAAWq3B,GAAsBt4B,EAAhBO,EAA7CL,EAA6DF,EAA7Dk4B,GACMnB,EAAOzvB,EAAQrH,EAAIF,GACR0C,EAAG0vB,UAAU4E,GACxBz1B,EAAYlB,EAASoO,WAAa/L,EAClCM,EAAqBq0B,EAAWh3B,EAASoO,SAAU/L,GAEzD,OACE7C,EAAAA,cAAA,IAAAO,EAAA,CACE4O,IAAKjP,GAAOD,EACZ,eAAcyB,EAAY,eACtBf,EACAU,EAAS,CAAEy3B,UAAAp3B,EAAWq3B,mBAAA51B,EAAoB6T,KAAAmgB,EAAMzqB,SAAAlM,IAJtD,CAKEwW,KAAMmgB,EACN6B,QAASh5B,IAEP,GADIW,EAAYq4B,SAASr4B,EAAYq4B,QAAQh5B,GD4R9B,CAAAA,IACpBA,EAAMi5B,kBACU,IAAjBj5B,EAAMk5B,UACJl5B,EAAMm5B,SAAWn5B,EAAMo5B,QAAUp5B,EAAMq5B,SAAWr5B,EAAMs5B,UAHrC,CC3RIt5B,GAAQ,CACzBA,EAAMu5B,iBACN,IAAIx5B,EAAgBW,EACpB,GAAuB,kBAAZA,GAAyBgB,EAAW,CAC7C,MAAgB1B,EAAhBM,EAAAC,EAAA,GAAmCC,EAASwO,OAA5CupB,GACAx4B,EAAgByC,EAAoBjC,EAAA,GAAAK,GAASZ,EAC9C,CACDsC,EAAS60B,EAAM,CACbnoB,MAAApO,EACAgC,QAAS7C,GAEZ,KAnBL,IAyBJ44B,EAAK/tB,YAAc,OAEnB+tB,EAAK9qB,UAAY,CACf2gB,GAAItuB,IAAAA,OAAiB8N,YClDvB,IAAAwrB,EAAA,SAAAC,GAA4C,SAAAD,IAAA,QAAA1uB,EAAA4uB,EAAAx2B,UAAA3B,OAAAvB,EAAA,IAAAwB,MAAAk4B,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAA35B,EAAA25B,GAAAz2B,UAAAy2B,GAAA,OAAA7uB,EAAA2uB,EAAAvvB,KAAA9D,MAAAqzB,EAAA,OAAAxuB,OAAAjL,KAAA,MAC1C4K,YAAc,wBAD4BE,CAAA,EAA5C8R,EAAAA,EAAAA,GAAA4c,EAAAC,GAGE,IAAAhtB,EAAA+sB,EAAA31B,UASC,OATD4I,EAAAmtB,kBAAA,WAAqB,IAAAC,EAGnBl2B,KAAKotB,SAAS,CAAC,IACf8I,EAAAl2B,KAAKoI,OAAM+tB,QAAA1zB,MAAAyzB,EAAA32B,UACZ,EAEDuJ,EAAAc,OAAA,WACE,OAAY,KAAAxB,MAAM4B,QACnB,EAAA6rB,CAAA,CAZH,CAAiCx5B,EAAAA,WAejC,MAE0B+5B,EAAG/5B,EAAAA,cAAoB,CAC/C45B,kBAAmB,CAAEtqB,aAAA,GACrBmT,WAAA,EACAuX,SALWA,KAAA,IAQN,SAAAC,EAAA3iB,GAAgC,IAAF3J,SAAE5N,GAAAuX,EACrC,MAAOpX,EAAOD,GAAYD,EAAAA,WACpBO,EAAoBP,EAAAA,SACjBM,EAAGN,EAAAA,SACV,MACE45B,kBAAAr5B,EACAkiB,MAAAviB,EACA85B,SAAA/5B,KAEF,CAACC,IAEH,OACEF,EAAAA,cAAC+5B,EAAqBtsB,SAAtB,CAA+BC,MAAOpN,GACpCN,EAAAA,cAACw5B,EAAD,CACE/W,MAAOviB,EACP45B,QAASA,CAAC95B,EAAOD,KACfE,EAASD,GACT,MAAAO,EAAkB+O,SAAlB/O,EAAkB+O,QAAUtP,EAAOD,EACpC,GAEAA,GAIR,CACDk6B,EAAqBrvB,YAAc,+BC9CtB,MAAAjJ,GDgDG,SAAkB5B,GAAkB,IAAAG,EAAAD,EAClD,SAASK,EAAkBJ,GACzB,OACEF,EAAAA,cAACi6B,EACC,KAAAj6B,EAAAA,cAACD,EAAiBQ,EAAA,CAAAyJ,IAAI,oBAAuB9J,IAGlD,CAKD,OAJAI,EAAkBsK,YAAA,sBACyC,OAD3B1K,EACE,OADFD,EAC9BF,EAAiB6K,aAAe3K,EAAAF,EAAiBiB,MAAQd,EAAA,iBAI5DI,CAAA,CAbe,EC/CduX,IAA4B,IAAzBgX,QAAA9uB,EAAUa,EAAe+M,SAAAzN,GAAA2X,EAC1B,MAAMnL,SAAEzM,GAAaF,GAEdQ,EAASD,GAAcN,EAAAA,SAAe,CAAE0M,SAAAzM,KACxCG,GD0DJ,SAA0BL,GAC/B,MAAMG,EAAMF,EAAAA,WAAiB+5B,GAC7B75B,EAAI05B,kBAAkBtqB,aAAA,EACtB,MAAMrP,EAAaD,EAAAA,aAAkB,KACnCE,EAAI85B,cAAA,EAAJ,GACC,IAEH,MAAO,CAAC95B,EAAIuiB,MAAOxiB,EACpB,CARM,GCnCH,GArBAD,EAAAA,WAAgB,KACdD,EAAQ42B,uBAAR,GACC,CAACp2B,EAAQmM,WAEZ1M,EAAAA,WAAgB,KACd,IAAIA,GAAA,EACJ,MAAME,EAAWH,EAAQsxB,QAAO/K,IAAG,IAAA5Z,SAAA3M,GAAAumB,EACjCtR,QAAQC,UAAUF,MAAK,KACrBvJ,uBAAsB,KACfxL,GACHM,EAAW,CAAEoM,SAAA3M,GACd,MAJL,IAQF,MAAO,KACLC,GAAA,EACAE,GACD,IACA,IAECE,EAAO,CACT,IAAIyC,EAAWzC,GAGb,MACDA,EAHCkC,EAASlC,EAAMg3B,IAAK,CAAEx0B,SAAA,GAIzB,CAED,OACE5C,EAAAA,cAACW,EAAgB8M,SAAjB,CAA0BC,MAAOnN,GACV,mBAApBL,EAAiCA,EAASK,GAAWL,GAAY,KADpE,ICvCOg6B,GAAWtT,IAAG,IAAAjZ,SAAA5N,GAAA6mB,EACzB,MAAa1mB,EAAGY,IAEhB,OAAIZ,EACaH,EAACG,GAETF,EAAAA,cAAC2B,GAAkB,KAAA5B,EAC3B,ECRwBo6B,GAAGC,IAAQ,IAAL1c,IAAA3d,EAAK4N,SAAAzN,GAAAk6B,EACpC,MAAiBn6B,EAAGF,EAAI2V,QAAQ,KAEhC,IAAAnV,EACID,EAAS,GAUb,OAZqBL,GAAe,GAMlCM,EAAWR,EAAIoE,UAAU,EAAGlE,GAC5BK,EAASP,EAAIoE,UAAUlE,IAEvBM,EAAWR,EAIXC,EAAAA,cAACW,EAAgB8M,SAAjB,CACEC,MAAO,CACLhB,SAAU,CACRkC,SAAArO,EACAyV,OAAA1V,EACA4L,KAfK,MAmBRhM,EATH,ECfEwC,GAAQ23B,IAAS,IAANtkB,KAAA/V,EAAM2N,SAAA5N,GAAAs6B,EACrB,MAAMvI,QAAE5xB,GAAYO,KACdiM,SAAEzM,GAAaa,IAEHR,EAAGoH,EAAQ1H,EAAME,GAAAE,EACpBoD,EAAMlD,EAAcL,EAAS2O,UAC5C,OAAA7O,EAAgB,CACd2M,SAAAzM,EACAiE,MAAO9D,EAAAG,EAAA,GAEEH,EAAO0X,OACV,CAAAsf,IAAKh3B,EAAOg3B,IACZrhB,KAAA/V,IAEF,MARS,ECTjBs6B,GAAA,+BAAAC,GAAA,kDAEaC,GAAez6B,IAAA,IAACq3B,IAAEl3B,EAAFwM,SAAOzM,EAAP4a,UAAiBza,GAA6BL,EAAfI,EAAeG,EAAAP,EAAAu6B,IACzE,OACEt6B,EAAAA,cAACy6B,GACKl6B,EAAA,GAAAJ,EAAA,CACJ0a,UAAWza,EACXg3B,IAAKl3B,EACLwM,SAAUzM,IAGf,EAED,IAAAwkB,GAAwB,EAExB,MAAAgW,GAAyB16B,IAAC,IAAA4N,SACxBzN,EADwBiqB,MAExBlqB,EACA4a,UAAWza,EAAO,MAHMg3B,IAIxBj3B,EAJwBuM,SAKxBlM,GAAAT,EACGM,EACCC,EAAAP,EAAAw6B,IACJ,MAAqB35B,EAAGZ,EAAAA,SACFsC,EAAGtC,EAAAA,QAAM,GACnBU,EAAGV,EAAAA,OAAaG,GAAAkB,EACRrB,EAAAA,OAAaQ,EAASoO,UACpCjO,EAAiBX,EAAAA,QAAM,GAS7BA,EAAAA,WAAgB,KACdykB,KACAhkB,IAEO,KACLgkB,KAC0B,IAAtBA,KACFniB,EAAiBgN,SAAA,EAClB,IAEF,IAGHtP,EAAAA,WAAgB,KACd,IAAIA,GAAA,EACeD,GAAA,EAEfI,IAAQO,EAAO4O,UACjB5O,EAAO4O,QAAUnP,EACjBH,GAAA,GAGEQ,EAASoO,WAAavN,EAAYiO,UACpCjO,EAAYiO,QAAU9O,EAASoO,SAC/B7O,GAAA,GAKFY,EAAe2O,QAAUtP,GAFDD,GAAmBS,EAASoO,WAAazO,EAI7DQ,EAAe2O,SACjB7O,GACD,GACA,CAACN,EAAKK,IAET,MAAAC,EAAcT,EAAAA,aAAkB,KA3CV,IAAAA,EAkDhBsC,EAAiBgN,QACnBhN,EAAiBgN,SAAA,GAnDCtP,EAqDJY,EAAgB0O,QApD5B3O,EAAe2O,SAAWtP,GAC5BA,EAAY06B,QAoDb,GACA,IAEH,OACE16B,EAAAA,cAACI,EACCG,EAAA,CAAA4pB,MAAS5pB,EAAA,CAAAo6B,QAAS,QAAW16B,GAC7B26B,SAAS,KACTzrB,IAAKvO,GACDP,GAEHH,EANH,ECvFJ26B,GAAA,mEAAAC,GAMsB/6B,IACpB,MAAMG,EAAcO,IACCR,EAAGa,IAExB,OAAOd,EAAAA,cAAC+6B,GAADx6B,EAAA,GAAgBL,EAAiBD,EAAqBF,GAAtD,EAGT,SAAAg7B,GAAoBh7B,GAClB,MAAM2M,SACJxM,EADI86B,QAEJ/6B,GAAA,EAFI0N,SAGJvN,EAHI2xB,SAIJ5xB,EAJI0a,UAMJra,EAAY,OAEVT,EADCM,EAPLC,EAQIP,EAEJ86B,IAAYj6B,EAAGZ,EAAAA,SAAei7B,QAAQ76B,GAAUwU,QAAO,CAAC5U,EAAOD,KAC7D,MAAYG,EAAGk4B,EAAYj4B,EAAZi4B,CAAsBr4B,GACrC,OAAYC,EAACiL,OAAO/K,EAAb,GACN,KACG0O,SAAEtM,GAAapC,EAAAQ,EACP6B,EAAK3B,EAAQ0B,GAE3B,GAAI5B,EAAO,CACT,MAAMoX,OACJ/X,EADIq3B,IAEJ92B,EAFIqX,MAGJvX,EACAuX,OAASjK,MAAO9M,IACdF,EAAA4B,EAGuBlC,EAAMmJ,QAC7BpJ,EACAC,EAAM2V,KAAKnT,QAAQ,MAAO,IAEnBjC,EAAAJ,EAAA,GACNR,EADM,CAETq3B,IAAA92B,EACAoM,SAAAxM,IAGIO,EAAQT,EAAAA,aACZY,EACAD,EACAC,EAAQmL,MAAM4B,SACZ3N,EAAAA,cAAC86B,GAAO,CAAApuB,SAAUxM,EAAU86B,QAAS/6B,GAClCW,EAAQmL,MAAM4B,eAAA,GAMH7M,EAAGb,EAAUu6B,GAAeh6B,EAE5B22B,EAAGl3B,EACfM,EAAA,CAAA62B,IAAA92B,EAAKoM,SAAAxM,EAAU2a,UAAAra,GAAcH,GAC/BA,EAEJ,OACEL,EAAAA,cAACqB,EAAYoM,SACX,CAAAC,MAAO,CAAEokB,QAASxxB,EAAKyxB,SAAUzvB,IAEjCtC,EAAAA,cAACc,EAAiBq2B,EAAe12B,GAGtC,CACC,OAAO,IAEV,CC3EY,MAAAy6B,GAAcnsB,KACzB,MAAa/O,EAAGc,IAEhB,IAAKd,EACH,MAAM,IAAAma,MACJ,8JAIJ,OAAcna,EAAC0M,QAAA,ECXOyuB,GAAGC,KACzB,MAAM,IAAAjhB,MACJ,wEADI,ECGKkhB,GAAYC,KACvB,MAAAt7B,EAAgBS,IAEhB,IAAKT,EACH,MAAM,IAAAma,MACJ,4JAIJ,MAAcpa,EAAGm7B,KAEJh7B,EAAGsD,EAAMxD,EAAQ+xB,SAAUhyB,EAAS6O,UAEjD,OAAc1O,EAAGA,EAAQ4X,OAAS,IAAI,ECb3ByjB,GAAWv7B,IACtB,IAAKA,EACH,MAAM,IAAAma,MACJ,4EAGJ,MAAApa,EAAgBU,IAEhB,IAAKV,EACH,MAAU,IAAAoa,MACR,2JAIJ,MAAMja,EAAWg7B,KAECj7B,EAAGyH,EAAQ1H,EAAMD,EAAQ+xB,SACrCxxB,EAASkD,EAAMvD,EAAcC,EAAS0O,UAC5C,OAAatO,EAAAC,EAAA,GAEJD,EAAOwX,OACV,CAAAsf,IAAK92B,EAAO82B,IACZrhB,KAAA/V,IAEF,IAAI,orIC1BH,MAGMw7B,EAAkB5sB,GAAuB,MAAXA,EAAS,GAAaA,EAAQ,IAAOA,EA8EnE6sB,EAA2BA,CAACC,EAAaC,IAAkBzN,IACtE,GAAI5iB,OAAOopB,mBAAoB,OAAO,EACtC,GAnFqCxG,IAA0B,IAAjBA,EAAMgL,QAAgBhL,EAAMkL,QAAUlL,EAAMmL,SAAWnL,EAAMiL,SAAWjL,EAAMoL,SAmFxHsC,CAAwB1N,GAAQ,OAAO,EAC3C,GAhF2CA,IAASA,EAAM+K,iBAgFtD4C,CAA8B3N,GAAQ,OAAO,EACjD,MAAM4N,EAhFyB3vB,KAC/B,KAAOA,EAAK+R,WAAY/R,EAAOA,EAAK+R,WAClC,GAA+B,MAA3B/R,EAAKyd,SAASjnB,cAChB,OAAOwJ,EAGX,OAAO,IAAI,EA0EW4vB,CAAkB7N,EAAM8N,QAC9C,GAAqB,MAAjBF,EAAuB,OAAO,EAClC,IA5CkC,KALKG,EAiDTH,GA5CzBI,aAAa,cAKwB,IAnCGD,KACb,IAAlCA,EAAOC,aAAa,WAUH,MAAjBD,EAAOD,QAKP,CAAC,QAAD,IAAcja,SAASka,EAAOD,SAIjB,YAAbC,EAAOD,UAA0BC,EAAOE,cAAcC,YAAYC,QAElEJ,EAAOE,cAAcC,YAAYC,SAAWJ,EAAOE,cAAcC,cAA6B,SAAbH,EAAOD,UAAuBC,EAAOE,cAAcC,YAAY7O,KAEhJ0O,EAAOE,cAAcC,YAAY7O,MAAQ0O,EAAOE,cAAcC,aAW9DE,CAAgCL,GAuCgB,OAAO,EAjDdA,MAqDvC,MAAMM,EAAcnwB,SAASoB,cAAc,KAIrB,KAAlBsuB,EAAc9kB,OAChBulB,EAAYvlB,KAAO8kB,EAAc9kB,MAE/B,sBAAuB1L,QAAUwwB,EAAc9kB,gBAAgBwlB,oBACjED,EAAYvlB,KAAO8kB,EAAc9kB,KAAKylB,SASxC,MAAMnG,EAASlqB,SAASoB,cAAc,KAEtC,GADA8oB,EAAOtf,KAAO1L,OAAOoB,SAASsK,MACmB,IA3DhB0lB,EAACpG,EAAQiG,IAAgBjG,EAAOlC,WAAamI,EAAYnI,UAC5FkC,EAAOC,OAASgG,EAAYhG,KA0DtBmG,CAAoBpG,EAAQiG,GAAwB,OAAO,EAG/D,MAAMI,EAAiB,IAAIC,OAAO,IAAIC,KAAmBC,EAAAA,EAAAA,YAAW,OACpE,GA7DmCC,EAACR,EAAaI,KAagB,IAA/DA,EAAe14B,KAAKu3B,EAAgBe,EAAY3tB,aAKS,IAAzD2tB,EAAY3tB,SAASoH,OAjBQ,iCA4D3B+mB,CAAsBR,EAAaI,GAAiB,OAAO,EAC/D,GAzCkCK,EAAC1G,EAAQiG,IAAgC,KAAhBA,EAAYrwB,OAKrD,KAApBqwB,EAAY3tB,UACZ2tB,EAAY3tB,WAAa0nB,EAAO1nB,UAmC1BouB,CAAqB1G,EAAQiG,GAAc,OAAO,EACtD,GAAIZ,EAAcsB,eAAgB,CAEhC,GADqB,IAAIL,OAAOjB,EAAcsB,gBAC7Bh5B,KAAKs4B,EAAY3tB,UAChC,OAAO,CAEX,CACAsf,EAAMqL,iBAIN,MAAM2D,EAAsB1B,EAAgBe,EAAY3tB,UAAUhM,QAAQ+5B,EAAe,KAEzF,OADAjB,EAAY,GAAGwB,EAAsBX,EAAYvmB,OAASumB,EAAYrwB,OAC/D,CAAK,EChIP,MAAMixB,EAAgB,SAACp6B,EAAG44B,QAAa,IAAbA,IAAAA,EAAgB,CAAC,GDkInC,SAAU9H,EAAM8H,EAAelV,GAC5C,MAAM2W,EAAe3B,EAAyBhV,EAAIkV,GAClD9H,EAAK/mB,iBAAiB,QAASswB,EAEjC,CCrIEC,CAAW/xB,OAAQqwB,GAAe3kB,KAChCuX,EAAAA,EAAAA,UAASvX,EAAK,GAElB,iICNA,MAAMsmB,EAAoB,IAAItc,IAC9B,SAASuc,EAASxkB,EAAIykB,GACpB,IAAIC,EAAQ,KACZ,OAAO,WACDA,GACF1O,aAAa0O,GACd,QAAA1yB,EAAA7H,UAAA3B,OAHiB0B,EAAI,IAAAzB,MAAAuJ,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJ/H,EAAI+H,GAAA9H,UAAA8H,GAItByyB,EAAQxd,WAAU7Z,WAAC,EAAD,CAAC2S,EAAIykB,GAAOvyB,OAAKhI,GACrC,CACF,CACA,SAASy6B,EAAcC,QAAa,IAAbA,IAAAA,EAAa,aAClC,MAAMC,EAAMtyB,OACZ,SAASuyB,EAAS9iB,GACZuiB,EAAkB5zB,IAAIqR,EAAK/Z,QAG/Bs8B,EAAkBl7B,IAAI2Y,EAAK/Z,MAoB/B,SAAkB6W,EAIfimB,GAAY,IAJI,KACjB98B,EAAI,MACJ0M,EAAK,GACL+L,GACD5B,EACCimB,EAAUvoB,KAAK,CACb2Y,MAAM,kBACN6P,qBAAsB,CACpB/8B,KAAMA,EAKNyY,KAIA/L,MAAO7L,KAAKgF,MAAU,QAAJ7F,EAAyB,IAAR0M,EAAeA,KAGxD,CAvCIswB,CAAUjjB,EAAM6iB,EAAID,IACtB,CACA,OAAO,+BAA0B5oB,MAAKuC,IAI/B,IAJgC,OACrC2mB,EAAM,OACNC,EAAM,OACNC,GACD7mB,EACC,MAAM8mB,EAAeb,EAASM,EAAU,KAElCQ,EAAeR,EAEfS,EAAef,EAASM,EAAU,KAGxCM,EAAOC,GAAc,GACrBF,EAAOG,GAAc,GACrBJ,EAAOK,GAAc,EAAK,GAE9B,CAsBO,SAAShQ,EAAcvrB,EAAG44B,GAG7B1b,YAAW,KACT,MAAMlF,EAAO4gB,EAAcgC,cAAgBryB,OAAOqwB,EAAcgC,eAAiBryB,OAAOwyB,UAClFS,EAAY5C,EAAc6C,qBAAuB7C,EAAc6C,qBAAoB,sBACzFzjB,EAAKxF,KAAK,CACR2Y,MAAOqQ,GACP,GACD,GAEP,CACO,SAAS9uB,EAAsB1M,EAAG44B,GAEMA,EAAc8C,yBACzDf,EAAc/B,EAAcgC,cAEhC,sGCrEO,MAAMrP,EAAgB,SAAsBhX,EAEhDqkB,GAAgB,IAFiC,SAClDjvB,GACD4K,CAWD,oCCdA,IAAIonB,EAAU3qB,EAAQ,ypGCAtB,IAAI4qB,EAEG,SAASrQ,IACT,wBAAwBhjB,QACvBqzB,GAEFC,mBAAmBD,GAIrBA,EAAanY,oBAAoBqY,KAE7BF,GACF5P,aAAa4P,GAEfA,EAAa1e,WAAW4e,GAE5B,CAEA,SAASA,IACP,MAAMtL,EAAMnnB,SACN0yB,EAAqCt9B,MAAM2hB,KAC/CoQ,EAAIlI,iBAAiB,2BAGlByT,EAAev9B,QAIpB,wDAEEwT,MAAKgqB,IACLD,EAAen3B,SAAQq3B,IAAU,IAADC,EAAAC,EAAAC,EAAAC,EAAAC,EAE9B,MAAMC,EAEJN,SAAiB,QAAZC,EAALD,EAAO9gB,kBAAU,IAAA+gB,GAAY,QAAZC,EAAjBD,EAAmB/gB,kBAAU,IAAAghB,GAAW,QAAXC,EAA7BD,EAA+BK,iBAAS,IAAAJ,OAAnC,EAALA,EAA0CK,SAAS,wBAK/CC,EAEJT,SAAiB,QAAZI,EAALJ,EAAO9gB,kBAAU,IAAAkhB,GAAW,QAAXC,EAAjBD,EAAmBG,iBAAS,IAAAF,OAAvB,EAALA,EAA8BG,SAAS,wBAEzC,IAAKF,IAA6BG,EAChC,OAGF,MAAMC,EAA8BJ,EAChCN,EAAM9gB,WAAWA,WACjB8gB,EAAM9gB,WAEV,GACE8gB,EAAMzuB,SACNyuB,EAAMzuB,QAAQovB,eACdD,EACA,CACA,MAAME,EAAgBrM,EAAItjB,cAAc,0CACI+uB,EAAMzuB,QAAQovB,cAAc,MAGxE,GAAIC,EAAe,CACjB,MAAMC,EAA+BtxB,KAAK3K,MACxCg8B,EAAcnvB,WAIHqvB,EAAAA,WAAoBJ,GAC5BnyB,OAAOnE,EAAAA,cAAoB21B,EAAIgB,YAAaF,GACnD,CACF,IACA,GAEN,qICnEIG,EAAc,mDAEdC,EAAc,gCAEdC,EAAWr+B,KAAKs+B,GAAK,IAErBC,GADiBv+B,KAAKs+B,GACft+B,KAAKw+B,KACZC,EAAOz+B,KAAK0+B,IACZC,EAAO3+B,KAAKC,IACZ2+B,EAAQ5+B,KAAK6+B,KAMbC,GALS9+B,KAAK++B,MAKF,SAAmBlzB,GACjC,MAAwB,iBAAVA,CAChB,GAMImzB,EAAe,IAKnBC,EAAS,SAAgBpzB,GACvB,OAAO7L,KAAKgF,MAAM6G,EAAQmzB,GAAgBA,GAAgB,CAC5D,EAgqBA,SAASE,EAAaC,EAAOC,EAAOC,EAAIC,EAAIC,EAAOC,EAAcC,EAAW99B,EAAG1C,GAC7E,GAAIkgC,IAAUx9B,GAAKy9B,IAAUngC,EAA7B,CAIAogC,EAAKV,EAAKU,GACVC,EAAKX,EAAKW,GAEV,IAAII,EAAWH,EAAQ,IAAMlB,EACzBsB,EAAWlB,EAAKiB,GAChBE,EAAWrB,EAAKmB,GAChBpB,EAAKt+B,KAAKs+B,GACVuB,EAAa,EAALvB,EACRwB,GAAOX,EAAQx9B,GAAK,EACpBo+B,GAAOX,EAAQngC,GAAK,EACpB+gC,EAAKL,EAAWG,EAAMF,EAAWG,EACjCE,GAAML,EAAWE,EAAMH,EAAWI,EAClCG,EAAQF,EAAKA,EACbG,EAAQF,EAAKA,EACbG,EAAaF,GAASb,EAAKA,GAAMc,GAASb,EAAKA,GAE/Cc,EAAa,IACff,EAAKT,EAAMwB,GAAcf,EACzBC,EAAKV,EAAMwB,GAAcd,GAG3B,IAAIe,EAAQhB,EAAKA,EACbiB,EAAQhB,EAAKA,EACbiB,GAAMF,EAAQC,EAAQD,EAAQF,EAAQG,EAAQJ,IAAUG,EAAQF,EAAQG,EAAQJ,GAEhFK,EAAK,IACPA,EAAK,GAGP,IAAIC,GAAQhB,IAAiBC,GAAa,EAAI,GAAKb,EAAM2B,GACrDE,EAAMD,GAAQnB,EAAKY,EAAKX,GACxBoB,EAAMF,IAASlB,EAAKU,EAAKX,GAGzBsB,GAFOxB,EAAQx9B,GAAK,GAERg+B,EAAWc,EAAMb,EAAWc,GACxCE,GAFOxB,EAAQngC,GAAK,GAER2gC,EAAWa,EAAMd,EAAWe,GACxCG,GAAMb,EAAKS,GAAOpB,EAClByB,GAAMb,EAAKS,GAAOpB,EAClByB,IAAOf,EAAKS,GAAOpB,EACnB2B,IAAOf,EAAKS,GAAOpB,EACnB2B,EAAOJ,EAAKA,EAAKC,EAAKA,EACtBI,GAAcJ,EAAK,GAAK,EAAI,GAAK9gC,KAAKmhC,KAAKN,EAAKjC,EAAMqC,IACtDG,GAAeP,EAAKG,EAAKF,EAAKC,EAAK,GAAK,EAAI,GAAK/gC,KAAKmhC,MAAMN,EAAKE,EAAKD,EAAKE,GAAMpC,EAAMqC,GAAQF,EAAKA,EAAKC,EAAKA,KAElHtN,MAAM0N,KAAiBA,EAAc9C,IAEhCmB,GAAa2B,EAAc,EAC9BA,GAAevB,EACNJ,GAAa2B,EAAc,IACpCA,GAAevB,GAGjBqB,GAAcrB,EACduB,GAAevB,EAEf,IAQIvhC,EARA+iC,EAAWrhC,KAAKQ,KAAKm+B,EAAKyC,IAAgBvB,EAAQ,IAClD7iB,EAAU,GACVskB,EAAiBF,EAAcC,EAC/BE,EAAgB,EAAI,EAAIhD,EAAK+C,EAAiB,IAAM,EAAI7C,EAAK6C,EAAiB,IAC9EE,EAAK7B,EAAWN,EAChBoC,EAAK7B,EAAWP,EAChBqC,EAAK9B,GAAYN,EACjBqC,EAAKhC,EAAWL,EAGpB,IAAKhhC,EAAI,EAAGA,EAAI+iC,EAAU/iC,IAExB0hC,EAAKvB,EADLc,EAAQ2B,EAAa5iC,EAAIgjC,GAEzBrB,EAAK1B,EAAKgB,GACVsB,EAAKpC,EAAKc,GAAS+B,GACnBR,EAAKvC,EAAKgB,GACVviB,EAAQtJ,KAAKssB,EAAKuB,EAAgBtB,EAAIA,EAAKsB,EAAgBvB,EAAIa,EAAKU,EAAgBT,EAAIA,EAAKS,EAAgBV,EAAIA,EAAIC,GAIvH,IAAKxiC,EAAI,EAAGA,EAAI0e,EAAQtd,OAAQpB,GAAK,EACnC0hC,EAAKhjB,EAAQ1e,GACb2hC,EAAKjjB,EAAQ1e,EAAI,GACjB0e,EAAQ1e,GAAK0hC,EAAKwB,EAAKvB,EAAKyB,EAAKf,EACjC3jB,EAAQ1e,EAAI,GAAK0hC,EAAKyB,EAAKxB,EAAK0B,EAAKf,EAMvC,OAHA5jB,EAAQ1e,EAAI,GAAKqD,EAEjBqb,EAAQ1e,EAAI,GAAKW,EACV+d,CAvFP,CAwFF,CAGO,SAAS4kB,EAAgB9iC,GAC9B,IAYIR,EACAu3B,EACAl0B,EACA1C,EACA4iC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EA1BA9jC,GAAKK,EAAI,IAAIiC,QAAQq9B,GAAa,SAAU5+B,GAC9C,IAAIpB,GAAKoB,EACT,OAAOpB,EAAI,MAAUA,GAAK,KAAS,EAAIA,CACzC,IAAGiE,MAAM87B,IAAgB,GAEzBjqB,EAAO,GACHsuB,EAAY,EACZC,EAAY,EACZC,EAAY,EAAI,EAChBC,EAAWlkC,EAAEiB,OACbkjC,EAAS,EACTC,EAAe,0BAA4B/jC,EAgB3CgkC,EAAO,SAAcC,EAAIC,EAAIC,EAAIC,GACnChB,GAAQe,EAAKF,GAAM,EACnBZ,GAAQe,EAAKF,GAAM,EACnBjB,EAAQruB,KAAKqvB,EAAKb,EAAMc,EAAKb,EAAMc,EAAKf,EAAMgB,EAAKf,EAAMc,EAAIC,EAC/D,EAEA,IAAKpkC,IAAM40B,MAAMj1B,EAAE,KAAOi1B,MAAMj1B,EAAE,IAEhC,OADA0kC,QAAQC,IAAIP,GACL3uB,EAGT,IAAK5V,EAAI,EAAGA,EAAIqkC,EAAUrkC,IAyBxB,GAxBA+jC,EAAcR,EAEVnO,MAAMj1B,EAAEH,IAEVwjC,GADAD,EAAUpjC,EAAEH,GAAG+kC,iBACU5kC,EAAEH,GAG3BA,IAGFqD,GAAKlD,EAAEH,EAAI,GACXW,GAAKR,EAAEH,EAAI,GAEPwjC,IACFngC,GAAK6gC,EACLvjC,GAAKwjC,GAGFnkC,IACH0jC,EAASrgC,EACTsgC,EAAShjC,GAIK,MAAZ4iC,EACEE,IACEA,EAAQriC,OAAS,EAEnBwU,EAAKxU,QAAU,EAEfkjC,GAAUb,EAAQriC,QAItB8iC,EAAYR,EAASrgC,EACrB8gC,EAAYR,EAAShjC,EACrB8iC,EAAU,CAACpgC,EAAG1C,GACdiV,EAAKR,KAAKquB,GACVzjC,GAAK,EACLujC,EAAU,SAEL,GAAgB,MAAZA,EACJE,IACHA,EAAU,CAAC,EAAG,IAGXD,IACHU,EAAYC,EAAY,GAI1BV,EAAQruB,KAAK/R,EAAG1C,EAAGujC,EAAuB,EAAX/jC,EAAEH,EAAI,GAAQmkC,EAAuB,EAAXhkC,EAAEH,EAAI,GAAQkkC,GAAwB,EAAX/jC,EAAEH,EAAI,GAAQmkC,GAAwB,EAAXhkC,EAAEH,EAAI,IACrHA,GAAK,OACA,GAAgB,MAAZujC,EACTK,EAAOM,EACPL,EAAOM,EAEa,MAAhBJ,GAAuC,MAAhBA,IACzBH,GAAQM,EAAYT,EAAQA,EAAQriC,OAAS,GAC7CyiC,GAAQM,EAAYV,EAAQA,EAAQriC,OAAS,IAG1CoiC,IACHU,EAAYC,EAAY,GAG1BV,EAAQruB,KAAKwuB,EAAMC,EAAMxgC,EAAG1C,EAAGujC,GAAwB,EAAX/jC,EAAEH,EAAI,GAAQmkC,GAAwB,EAAXhkC,EAAEH,EAAI,IAC7EA,GAAK,OACA,GAAgB,MAAZujC,EACTK,EAAOM,GAAa7gC,EAAI6gC,GAAaE,EACrCP,EAAOM,GAAaxjC,EAAIwjC,GAAaC,EAEhCZ,IACHU,EAAYC,EAAY,GAG1BD,GAAwB,EAAX/jC,EAAEH,EAAI,GACnBmkC,GAAwB,EAAXhkC,EAAEH,EAAI,GACnByjC,EAAQruB,KAAKwuB,EAAMC,EAAMK,GAAa7gC,EAAI6gC,GAAaE,EAAWD,GAAaxjC,EAAIwjC,GAAaC,EAAWF,EAAWC,GACtHnkC,GAAK,OACA,GAAgB,MAAZujC,EACTK,EAAOM,EAAYT,EAAQA,EAAQriC,OAAS,GAC5CyiC,EAAOM,EAAYV,EAAQA,EAAQriC,OAAS,GAC5CqiC,EAAQruB,KAAK8uB,EAAYN,EAAMO,EAAYN,EAAMxgC,GAAK6gC,EAAmB,IAAPN,EAAavgC,GAAK+gC,EAAWzjC,GAAKwjC,EAAmB,IAAPN,EAAaljC,GAAKyjC,EAAWF,EAAY7gC,EAAG8gC,EAAYxjC,GACxKX,GAAK,OACA,GAAgB,MAAZujC,EACTiB,EAAKN,EAAWC,EAAWD,EAAY7gC,EAAG8gC,GAC1CnkC,GAAK,OACA,GAAgB,MAAZujC,EAETiB,EAAKN,EAAWC,EAAWD,EAAWC,EAAY9gC,GAAKmgC,EAAaW,EAAYD,EAAY,IAC5FlkC,GAAK,OACA,GAAgB,MAAZujC,GAA+B,MAAZA,EACZ,MAAZA,IACFlgC,EAAIqgC,EACJ/iC,EAAIgjC,EACJF,EAAQuB,QAAS,IAGH,MAAZzB,GAAmBlD,EAAK6D,EAAY7gC,GAAK,IAAOg9B,EAAK8D,EAAYxjC,GAAK,MACxE6jC,EAAKN,EAAWC,EAAW9gC,EAAG1C,GAEd,MAAZ4iC,IACFvjC,GAAK,IAITkkC,EAAY7gC,EACZ8gC,EAAYxjC,OACP,GAAgB,MAAZ4iC,EAAiB,CA0B1B,GAzBAS,EAAQ7jC,EAAEH,EAAI,GACdikC,EAAQ9jC,EAAEH,EAAI,GACd4jC,EAAOzjC,EAAEH,EAAI,GACb6jC,EAAO1jC,EAAEH,EAAI,GACbu3B,EAAI,EAEAyM,EAAM5iC,OAAS,IAEb4iC,EAAM5iC,OAAS,GACjByiC,EAAOD,EACPA,EAAOK,EACP1M,MAEAsM,EAAOI,EACPL,EAAOI,EAAMlN,OAAO,GACpBS,GAAK,GAGP0M,EAAQD,EAAMluB,OAAO,GACrBkuB,EAAQA,EAAMluB,OAAO,IAGvBguB,EAAUlD,EAAasD,EAAWC,GAAYhkC,EAAEH,EAAI,IAAKG,EAAEH,EAAI,IAAKG,EAAEH,EAAI,IAAKgkC,GAAQC,GAAQT,EAAaU,EAAY,GAAY,EAAPN,GAAWJ,EAAaW,EAAY,GAAY,EAAPN,GACtK7jC,GAAKu3B,EAEDuM,EACF,IAAKvM,EAAI,EAAGA,EAAIuM,EAAQ1iC,OAAQm2B,IAC9BkM,EAAQruB,KAAK0uB,EAAQvM,IAIzB2M,EAAYT,EAAQA,EAAQriC,OAAS,GACrC+iC,EAAYV,EAAQA,EAAQriC,OAAS,EACvC,MACEyjC,QAAQC,IAAIP,GAehB,OAXAvkC,EAAIyjC,EAAQriC,QAEJ,GAENwU,EAAK2W,MACLvsB,EAAI,GACKyjC,EAAQ,KAAOA,EAAQzjC,EAAI,IAAMyjC,EAAQ,KAAOA,EAAQzjC,EAAI,KACrEyjC,EAAQuB,QAAS,GAGnBpvB,EAAKqvB,YAAcX,EAAStkC,EACrB4V,CACT,CA6VO,SAASsvB,EAAgBxmB,GAC1B8hB,EAAU9hB,EAAQ,MAEpBA,EAAU,CAACA,IAGb,IAEIymB,EACAllC,EACAD,EACAyjC,EALAlvB,EAAS,GACT9T,EAAIie,EAAQtd,OAMhB,IAAKnB,EAAI,EAAGA,EAAIQ,EAAGR,IAAK,CAKtB,IAJAwjC,EAAU/kB,EAAQze,GAClBsU,GAAU,IAAMosB,EAAO8C,EAAQ,IAAM,IAAM9C,EAAO8C,EAAQ,IAAM,KAChE0B,EAAK1B,EAAQriC,OAERpB,EAAI,EAAGA,EAAImlC,EAAInlC,IAClBuU,GAAUosB,EAAO8C,EAAQzjC,MAAQ,IAAM2gC,EAAO8C,EAAQzjC,MAAQ,IAAM2gC,EAAO8C,EAAQzjC,MAAQ,IAAM2gC,EAAO8C,EAAQzjC,MAAQ,IAAM2gC,EAAO8C,EAAQzjC,MAAQ,IAAM2gC,EAAO8C,EAAQzjC,IAAM,IAG9KyjC,EAAQuB,SACVzwB,GAAU,IAEd,CAEA,OAAOA,CACT,CC31CA,IAAI,EACA6wB,EACAC,EAAW,WACb,OAAO,GAA0B,oBAAXl6B,SAA2B,EAAOA,OAAOm6B,OAAS,EAAKC,gBAAkB,CACjG,EACIC,EAAY,YACd,EAAOH,MAGL,EAAKI,aAAa,MAAOC,EAAW1wB,QACpCowB,EAAe,GAEfP,QAAQc,KAAK,yCAEjB,EAEI,EAAS,SAAgBp4B,GAC3B,SAAkB,IAARA,GAAgBA,EAAQ,GAAK,GAAK,KAAO,GACrD,EAGAq4B,EAAU,wCAEVC,EAAmB,qBAuCnBC,EAAkB,SAASA,EAAgBpE,EAAIC,EAAIoE,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAW/B,EAAQre,GAC5F,IAgBI7kB,EAhBAklC,GAAO5E,EAAKqE,GAAM,EAClBQ,GAAO5E,EAAKqE,GAAM,EAClBQ,GAAOT,EAAKE,GAAM,EAClBQ,GAAOT,EAAKE,GAAM,EAClBQ,GAAOT,EAAKE,GAAM,EAClBQ,GAAOT,EAAKE,GAAM,EAClBQ,GAAQN,EAAME,GAAO,EACrBK,GAAQN,EAAME,GAAO,EACrBK,GAAQN,EAAME,GAAO,EACrBK,GAAQN,EAAME,GAAO,EACrBK,GAASJ,EAAOE,GAAQ,EACxBG,GAASJ,EAAOE,GAAQ,EACxBG,EAAKf,EAAKzE,EACVyF,EAAKf,EAAKzE,EACVyF,EAAK1lC,KAAKC,KAAKokC,EAAKI,GAAMgB,GAAMnB,EAAKI,GAAMc,GAC3CG,EAAK3lC,KAAKC,KAAKskC,EAAKE,GAAMgB,GAAMjB,EAAKE,GAAMc,GA2B/C,OAxBK5C,IACHA,EAAS,CAAC,CACRjhC,EAAGq+B,EACH/gC,EAAGghC,GACF,CACDt+B,EAAG8iC,EACHxlC,EAAGylC,IAELngB,EAAQ,GAGVqe,EAAOhvB,OAAO2Q,GAASqe,EAAOljC,OAAS,EAAG,EAAG,CAC3CiC,EAAG2jC,EACHrmC,EAAGsmC,KAGAG,EAAKC,IAAOD,EAAKC,GAAMhB,GAAaa,EAAKA,EAAKC,EAAKA,KACtD/lC,EAASkjC,EAAOljC,OAEhB0kC,EAAgBpE,EAAIC,EAAI2E,EAAKC,EAAKK,EAAMC,EAAMG,EAAOC,EAAOZ,EAAW/B,EAAQre,GAE/E6f,EAAgBkB,EAAOC,EAAOH,EAAMC,EAAML,EAAKC,EAAKR,EAAIC,EAAIC,EAAW/B,EAAQre,EAAQ,GAAKqe,EAAOljC,OAASA,KAGvGkjC,CACT,EAEWoB,EAA0B,WACnC,SAASA,EAAWpsB,EAAIsB,EAAM0sB,GAC5BlC,GAAgBI,IAChBhiC,KAAK8V,GAAKA,EACS9V,KAAK+jC,QAAQ3sB,EAAM0sB,EACxC,CAEA,IAAIh7B,EAASo5B,EAAWhiC,UA8OxB,OA5OA4I,EAAOi7B,QAAU,SAAiB3sB,EAAM0sB,GACtCA,EAASA,GAAU,CAAC,EAEpB,IAMI7mC,EACA+mC,EACAC,EACAznC,EACA0nC,EACAnQ,EACAoQ,EACAC,EACAzlC,EAdA8gB,GADJrI,EAAOA,GAAQ,WACG7W,MAAM6hC,GACpBiC,EAAU,EACVvD,EAAS,GACTwD,EAAS,GACTC,EAAYT,EAAOS,WAAa,EAChCC,EAAOD,GAAa,EAkBxB,GARAvkC,KAAKoX,KAAOA,GAERirB,EAAiB/hC,KAAK8W,KAAUA,EAAKrF,QAAQ,MAAQqF,EAAKrF,QAAQ,KAAO,KAC3E0N,EAASqgB,EAAgB1oB,GAAM,IAKvB,KAFVna,EAAIwiB,EAAO7hB,QAGT6hB,EAAOglB,QAAQ,EAAG,GAClBhlB,EAAO7N,KAAK,EAAG,GACf3U,EAAI,OACC,IAAKA,EAAI,GAAK,EACnB,KAAM,qBASR,IANmB,IAAdwiB,EAAO,IAA+B,IAAlBA,EAAOxiB,EAAI,IAnH3B,SAAoBwiB,EAAQqK,EAAQ4a,GAC1CA,GAAuB,IAAZA,IACdA,EAAUxmC,KAAK81B,KAAKvU,EAAOA,EAAO7hB,OAAS,IAAK6hB,EAAO,KAGzD,IAKIjjB,EALAmoC,GAAmB,GAAbllB,EAAO,GACbmlB,GAAMF,EACNznC,EAAIwiB,EAAO7hB,OACXqjC,EAAK,IAAMxhB,EAAOxiB,EAAI,GAAK0nC,GAC3BzD,GAAMpX,IAAW5rB,KAAKC,KAAKshB,EAAOxiB,EAAI,IAAMwiB,EAAO,IAAM,MAASA,EAAOxiB,EAAI,IAAMwiB,EAAO,IArB7E,SAAsBA,GACvC,IAEIjjB,EAFAS,EAAIwiB,EAAO7hB,OACXkF,EAXQ,KAcZ,IAAKtG,EAAI,EAAGA,EAAIS,EAAGT,GAAK,GACrBijB,EAAOjjB,GAAKsG,IAAQA,GAAO2c,EAAOjjB,IAGrC,OAAOsG,CACT,CAWsG+hC,CAAaplB,GAAUmlB,GAAMnlB,EAAOxiB,EAAI,GAAK2nC,GAWjJ,IANE1D,EAFEA,EAEG,EAAIA,GAGHD,EAGHzkC,EAAI,EAAGA,EAAIS,EAAGT,GAAK,EACtBijB,EAAOjjB,KAAOijB,EAAOjjB,GAAKmoC,GAAM1D,EAChCxhB,EAAOjjB,EAAI,KAAOijB,EAAOjjB,EAAI,GAAKooC,GAAM1D,CAE5C,CA4FM4D,CAAWrlB,EAAQqkB,EAAOha,OAAQga,EAAOY,SAG3C1kC,KAAKigC,QAAUxgB,EAEVjjB,EAAI,EAAGA,EAAIS,EAAGT,GAAK,EACtBwnC,EAAK,CACHnkC,GAAI4f,EAAOjjB,EAAI,GACfW,GAAIsiB,EAAOjjB,EAAI,IAEjBynC,EAAK,CACHpkC,GAAI4f,EAAOjjB,EAAI,GACfW,GAAIsiB,EAAOjjB,EAAI,IAEjBskC,EAAOlvB,KAAKoyB,EAAIC,GAEhB3B,EAAgB0B,EAAGnkC,EAAGmkC,EAAG7mC,GAAIsiB,EAAOjjB,IAAKijB,EAAOjjB,EAAI,IAAKijB,EAAOjjB,EAAI,IAAKijB,EAAOjjB,EAAI,GAAIynC,EAAGpkC,EAAGokC,EAAG9mC,EAAG,GAAiB,IAAZonC,GAAqBzD,EAAQA,EAAOljC,OAAS,GAKxJ,IAFAX,EAAI6jC,EAAOljC,OAENpB,EAAI,EAAGA,EAAIS,EAAGT,IACjB2nC,EAAQrD,EAAOtkC,GACf4nC,EAAYtD,EAAOtkC,EAAI,IAAM2nC,GAExBA,EAAMtkC,EAAIukC,EAAUvkC,GAAKukC,EAAUjnC,IAAMgnC,EAAMhnC,GAAKinC,EAAUvkC,IAAMskC,EAAMtkC,GAAKskC,IAAUC,IAAcD,EAAMtkC,GAAK,GAErHukC,EAAUvF,GAAKsF,EAAMtkC,EAAIukC,EAAUvkC,EAEnCukC,EAAUtF,GAAKqF,EAAMhnC,EAAIinC,EAAUjnC,EACnCinC,EAAU9nC,EAAI6nC,EACdC,EAAUW,GAAKZ,EAAMtkC,EAEjB2kC,GAAQhoC,EAAI,GAAK0B,KAAKC,IAAIimC,EAAUtF,GAAKsF,EAAUvF,GAAKiC,EAAOtkC,EAAI,GAAGsiC,GAAKgC,EAAOtkC,EAAI,GAAGqiC,IAAM,IAEjG2F,EAAO,GAGLJ,EAAUvF,GAAKwF,IACZD,EAAUvF,GAUbwF,EAAUD,EAAUvF,IATpBuF,EAAUvF,GAAK,KAEXriC,IAAMS,EAAI,IAEZmnC,EAAUvkC,GAAK,KACfwkC,EAAUnmC,KAAK4E,IAAIuhC,EAAS,MAC5BG,EAAO,OAOb1D,EAAOhvB,OAAOtV,IAAK,GACnBS,KASJ,GAJAinC,EAAM,GADNjnC,EAAI,EAAIonC,EAAU,EAAI,GAEtBtQ,EAAI,EACJoQ,EAAQrD,EAAO,GAEX0D,EAAM,CACR,IAAKhoC,EAAI,EAAGA,EAAIS,EAAGT,IAEjBmC,EAAInC,EAAI0nC,EAEJC,EAAMY,GAAKpmC,IACbwlC,EAAQrD,IAAS/M,IAGnBiQ,EAAKG,EAAMhnC,GAAKwB,EAAIwlC,EAAMtkC,GAAKskC,EAAMtF,GAAKsF,EAAMrF,GAChDwF,EAAO9nC,GAAK,CACVqD,EAAGlB,EACHkgC,GAAIqF,EACJ/mC,EAAG6mC,EACHlF,GAAI,EACJiG,GAAI,GAGFvoC,IACF8nC,EAAO9nC,EAAI,GAAGsiC,GAAKkF,EAAKM,EAAO9nC,EAAI,GAAGW,GAI1CmnC,EAAOrnC,EAAI,GAAG6hC,GAAKgC,EAAOA,EAAOljC,OAAS,GAAGT,EAAI6mC,CACnD,KAAO,CAEL,IAAKxnC,EAAI,EAAGA,EAAIS,EAAGT,IAEb2nC,EAAMY,GAAKvoC,EAAI0nC,IACjBC,EAAQrD,IAAS/M,IAGnBuQ,EAAO9nC,GAAK2nC,EAGVpQ,EAAI+M,EAAOljC,OAAS,IACtB0mC,EAAO9nC,EAAI,GAAKskC,EAAOA,EAAOljC,OAAS,GAE3C,CAeA,OAZAoC,KAAKglC,KAAO,SAAUrmC,GACpB,IAAIwlC,EAAQG,EAAO3lC,EAAI1B,EAAI,IAAMqnC,EAAOrnC,EAAI,GAM5C,OAJIknC,EAAMY,GAAKpmC,IACbwlC,EAAQA,EAAM7nC,GAGT6nC,EAAMhnC,GAAKwB,EAAIwlC,EAAMtkC,GAAKskC,EAAMtF,GAAKsF,EAAMrF,EACpD,EAEA9+B,KAAKglC,KAAKC,OAASjlC,KACnBA,KAAK8V,IAAM,EAAKmsB,aAAajiC,KAAK8V,GAAI9V,KAAKglC,MACpChlC,IACT,EAEA8I,EAAOo8B,WAAa,SAAoBpB,GACtC,OAAO5B,EAAWgD,WAAWllC,KAAM8jC,EACrC,EAEA5B,EAAW1wB,OAAS,SAAgBsE,EAAIsB,EAAM0sB,GAC5C,OAAO,IAAI5B,EAAWpsB,EAAIsB,EAAM0sB,GAAQkB,IAC1C,EAEA9C,EAAWvR,SAAW,SAAkBwU,GACtC,EAAOA,EAEPnD,GACF,EAEAE,EAAWl/B,IAAM,SAAa8S,GAC5B,OAAO,EAAKsvB,UAAUtvB,EACxB,EAEAosB,EAAWgD,WAAa,SAAoBF,EAAMlB,GAEhD,IAKInnC,EACA0oC,EACA7oC,EACA0nC,EACAS,EACAC,EACAL,EACA1B,EACAyC,EACAC,EAdA1b,GADJia,EAASA,GAAU,CAAC,GACDja,OAAS,IACxBC,EAASga,EAAOha,QAAU,IAC1BjqB,EAAIikC,EAAOjkC,GAAK,EAChB1C,GAAK2mC,EAAO3mC,GAAK,GAAK2sB,EACtBztB,EAAI,EAAKmpC,MAAMlO,QAAQwM,EAAO1xB,MAAM,GAyBxC,GAbI0xB,EAAO2B,SACT3b,GAAUA,EACV3sB,EAAI,GAGc,iBAAT6nC,IACTA,EAAO,EAAKI,UAAUJ,IAGpBA,EAAKC,SACPD,EAAOA,EAAKC,QAGVD,aAAgB9C,EAClBvlC,EAAI+kC,EDmWH,SAA0BxmB,EAASve,EAAG6C,EAAG3C,EAAGG,EAAG2nC,EAAIC,GAQxD,IAPA,IACI3E,EACAhjC,EACAT,EACAqD,EACA1C,EALA42B,EAAI7Y,EAAQtd,SAOPm2B,GAAK,GAIZ,IAFA92B,GADAgjC,EAAU/kB,EAAQ6Y,IACNn2B,OAEPpB,EAAI,EAAGA,EAAIS,EAAGT,GAAK,EACtBqD,EAAIogC,EAAQzjC,GACZW,EAAI8iC,EAAQzjC,EAAI,GAChByjC,EAAQzjC,GAAKqD,EAAIlD,EAAIQ,EAAIN,EAAI8nC,EAC7B1E,EAAQzjC,EAAI,GAAKqD,EAAIL,EAAIrC,EAAIH,EAAI4nC,EAKrC,OADA1pB,EAAQwqB,OAAS,EACVxqB,CACT,CCzX0ByqB,CAAiB,CAACX,EAAK/E,SAAUpW,EAAO,EAAG,GAAIC,EAAQjqB,EAAG1C,QACzE,CAUL,IATAR,EAAI,CAACkD,EAAG1C,GAER+mC,EAAM,GADNK,EAAYrmC,KAAK81B,IAAI,EAA6B,KAAzB8P,EAAOS,WAAa,KAG7C1B,EAAY,GADZ0B,GAAa,GAEbe,EAAQ,EAAOzlC,EAAIqkC,EAAMra,GAEzBwb,IADAE,EAAQ,EAAOpoC,EAAI6nC,EAAKd,IAAQpa,IACf3sB,IAAMmoC,EAAQzlC,GAE1BrD,EAAI,EAAGA,EAAI+nC,EAAW/nC,IACzBmoC,EAAK,EAAO9kC,EAAIrD,EAAI0nC,EAAMra,GAC1B+a,EAAK,EAAOznC,EAAI6nC,EAAKxoC,EAAI0nC,IAAQpa,IAE7B5rB,KAAKC,KAAKymC,EAAKW,IAAUZ,EAAKW,GAASD,GAASxC,GAAarmC,IAAM+nC,EAAY,KAEjF5nC,EAAEiV,KAAK0zB,EAAOC,GACdF,GAAST,EAAKW,IAAUZ,EAAKW,IAG/BA,EAAQX,EACRY,EAAQX,EAGVjoC,EAAI,IAAMA,EAAEmB,KAAK,IACnB,CAGA,OADAzB,GAAKA,EAAE6d,aAAa,IAAKvd,GAClBA,CACT,EAEOulC,CACT,CAtPqC,GAuPrCL,KAAc,EAAKE,eAAeG,GAClCA,EAAW0D,QAAU,QCtWrB,IAAI,EACA,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAAgB,WAClB,MAAyB,oBAAXv+B,MAChB,EACI,EAAW,WACb,OAAO,GAAQu+B,MAAoB,EAAOv+B,OAAOm6B,OAAS,EAAKC,gBAAkB,CACnF,EACI,EAAY,SAAmBh4B,GACjC,MAAwB,iBAAVA,CAChB,EACIo8B,EAAc,SAAqBp8B,GACrC,MAAwB,mBAAVA,CAChB,EACIq8B,EAAO,SAAch8B,EAASi8B,GAChC,IAAIC,EAAe,MAATD,EAAe,QAAU,SAC/BE,EAAS,SAAWD,EACpBE,EAAS,SAAWF,EACxB,OAAOl8B,IAAYy7B,GAAWz7B,IAAY07B,GAAU17B,IAAY27B,EAAQ7nC,KAAK81B,IAAI8R,EAAOS,GAASR,EAAMQ,KAAYV,EAAQ,QAAUS,IAAQR,EAAOU,IAAWT,EAAMS,IAAWp8B,EAAQm8B,GAAUn8B,EAAQ,SAAWk8B,EACvN,EACIG,EAAe,SAAsBpqC,EAAGgqC,GAE1C,IAAI1nC,EAAI,UAAqB,MAAT0nC,EAAe,OAAS,OAU5C,OARIhqC,IAAMwpC,IACa,MAAjBxpC,EAAEqqC,YACJ/nC,EAAI,OAAS0nC,EAAK9E,cAAgB,SAElCllC,EAAiB,MAAbypC,EAAOnnC,GAAamnC,EAASC,GAI9B,WACL,OAAO1pC,EAAEsC,EACX,CACF,EA2BIgoC,EAAa,SAAoBv8B,EAASw8B,GAG5C,KAFAx8B,EAAU47B,EAAS57B,GAAS,MAEXA,EAAQy8B,sBACvB,OAAOxF,QAAQc,KAAK,2CAA6C,CAC/DtiC,EAAG,EACH1C,EAAG,GAIP,IAAI2pC,EAAO18B,EAAQy8B,wBACfE,GAAUH,GAAaA,IAAcf,GAAWe,IAAcb,EAC9DiB,EAAQD,EAAS,CACnBnd,IAAKkc,EAAOmB,WAAapB,EAAQqB,aAAepB,EAAOj6B,WAAak6B,EAAMl6B,WAAa,GACvFs7B,KAAMrB,EAAOsB,YAAcvB,EAAQa,aAAeZ,EAAOuB,YAActB,EAAMsB,YAAc,IACzFT,EAAUC,wBACVS,EAAU,CACZznC,EAAGinC,EAAKK,KAAOH,EAAMG,KACrBhqC,EAAG2pC,EAAKld,IAAMod,EAAMpd,KAStB,OANKmd,GAAUH,IAEbU,EAAQznC,GAAK4mC,EAAaG,EAAW,IAAxBH,GACba,EAAQnqC,GAAKspC,EAAaG,EAAW,IAAxBH,IAGRa,CACT,EACIC,EAAY,SAAmBx9B,EAAOsuB,EAAQgO,EAAMmB,EAAYC,GAClE,OAAQ7V,MAAM7nB,IAA2B,iBAAVA,EAAkD,EAAUA,IAA8B,MAApBA,EAAMuI,OAAO,GAAao1B,WAAW39B,EAAMupB,OAAO,KAA2B,MAApBvpB,EAAMuI,OAAO,IAAc,EAAI,GAAKk1B,EAAaC,EAAmB,QAAV19B,EAAkBq8B,EAAK/N,EAAQgO,GAAQoB,EAASvpC,KAAK4E,IAAIsjC,EAAK/N,EAAQgO,GAAOM,EAAW58B,EAAOsuB,GAAQgO,GAAQoB,GAAnRC,WAAW39B,GAAS09B,CAC1E,EACI,EAAY,WACd,EAAO,IAEHvB,KAAmB,GAAQz9B,SAASkd,OACtCkgB,EAAUl+B,OACVo+B,EAAQt9B,SAASkd,KACjBmgB,EAASr9B,SAASonB,gBAClBmW,EAAW,EAAKR,MAAMlO,QACtB,EAAKwM,OAAO,CACV6D,kBAAmB,IAErB1B,EAAU,EAAKnC,SACf,EAAe,EAEnB,EAEW8D,EAAiB,CAC1BhC,QAAS,QACTvoC,KAAM,WACNwqC,QAAS,EACTlX,SAAU,SAAkBwU,GAC1B,EAAOA,EAEP,GACF,EACAzkC,KAAM,SAAc23B,EAAQtuB,EAAO+9B,EAAOrlB,EAAOslB,GAC/C,GAAgB,IAChB,IAAI3wB,EAAOpX,KACXoX,EAAK4wB,MAAQ3P,IAAWwN,EACxBzuB,EAAKihB,OAASA,EACdjhB,EAAK0wB,MAAQA,EACb/9B,EAzFS,SAAgBA,EAAO0Y,EAAO4V,EAAQ0P,GAGjD,GAFA5B,EAAYp8B,KAAWA,EAAQA,EAAM0Y,EAAO4V,EAAQ0P,IAE/B,iBAAVh+B,EACT,OAAO,EAAUA,IAAoB,QAAVA,GAAuC,MAApBA,EAAMuI,OAAO,GAAa,CACtEzS,EAAGkK,EACH5M,EAAG4M,GACD,CACF5M,EAAG4M,GAEA,GAAIA,EAAMgd,SACf,MAAO,CACL5pB,EAAG4M,EACHlK,EAAGkK,GAGL,IACIpL,EADAoS,EAAS,CAAC,EAGd,IAAKpS,KAAKoL,EACRgH,EAAOpS,GAAW,eAANA,GAAsBwnC,EAAYp8B,EAAMpL,IAAMoL,EAAMpL,GAAG8jB,EAAO4V,EAAQ0P,GAAWh+B,EAAMpL,GAGrG,OAAOoS,CAEX,CAgEYk3B,CAAOl+B,EAAO0Y,EAAO4V,EAAQ0P,GACrC3wB,EAAK8wB,KAAOn+B,EACZqN,EAAK+wB,WAAap+B,EAAMo+B,SACxB/wB,EAAKgxB,KAAO3B,EAAapO,EAAQ,KACjCjhB,EAAKixB,KAAO5B,EAAapO,EAAQ,KACjCjhB,EAAKvX,EAAIuX,EAAKkxB,MAAQlxB,EAAKgxB,OAC3BhxB,EAAKja,EAAIia,EAAKmxB,MAAQnxB,EAAKixB,OAEZ,MAAXt+B,EAAMlK,GACRuX,EAAK3Y,IAAI2Y,EAAM,IAAKA,EAAKvX,EAAG0nC,EAAUx9B,EAAMlK,EAAGw4B,EAAQ,IAAKjhB,EAAKvX,EAAGkK,EAAMy+B,SAAW,GAAI/lB,EAAOslB,GAEhG3wB,EAAKqxB,OAAO72B,KAAK,eAEjBwF,EAAKsxB,MAAQ,EAGA,MAAX3+B,EAAM5M,GACRia,EAAK3Y,IAAI2Y,EAAM,IAAKA,EAAKja,EAAGoqC,EAAUx9B,EAAM5M,EAAGk7B,EAAQ,IAAKjhB,EAAKja,EAAG4M,EAAM4+B,SAAW,GAAIlmB,EAAOslB,GAEhG3wB,EAAKqxB,OAAO72B,KAAK,eAEjBwF,EAAKwxB,MAAQ,CAEjB,EACAh/B,OAAQ,SAAgBi/B,EAAOzxB,GAc7B,IAbA,IAOIvX,EACA1C,EACA2rC,EACAC,EACAlG,EAXAmG,EAAK5xB,EAAK6xB,IACV5Q,EAASjhB,EAAKihB,OACdyP,EAAQ1wB,EAAK0wB,MACbK,EAAW/wB,EAAK+wB,SAChBG,EAAQlxB,EAAKkxB,MACbC,EAAQnxB,EAAKmxB,MACbP,EAAQ5wB,EAAK4wB,MAOVgB,GACLA,EAAGzsC,EAAEssC,EAAOG,EAAGhsC,GACfgsC,EAAKA,EAAGE,MAGVrpC,EAAImoC,IAAU5wB,EAAKsxB,MAAQtxB,EAAKgxB,OAASE,EAEzCQ,GADA3rC,EAAI6qC,IAAU5wB,EAAKwxB,MAAQxxB,EAAKixB,OAASE,GAC9BA,EACXQ,EAAOlpC,EAAIyoC,EACXzF,EAAYoD,EAAQ0B,kBAEhBvwB,EAAKvX,EAAI,IAEXuX,EAAKvX,EAAI,GAGPuX,EAAKja,EAAI,IACXia,EAAKja,EAAI,GAGPgrC,KAEG/wB,EAAKsxB,QAAUK,EAAOlG,GAAakG,GAAQlG,IAAchjC,EAAIumC,EAAK/N,EAAQ,OAC7EjhB,EAAKsxB,MAAQ,IAGVtxB,EAAKwxB,QAAUE,EAAOjG,GAAaiG,GAAQjG,IAAc1lC,EAAIipC,EAAK/N,EAAQ,OAC7EjhB,EAAKwxB,MAAQ,GAGXxxB,EAAKsxB,OAAStxB,EAAKwxB,QACrBd,EAAMqB,OACN/xB,EAAK8wB,KAAKkB,YAAchyB,EAAK8wB,KAAKkB,WAAW3mC,MAAMqlC,EAAO1wB,EAAK8wB,KAAKmB,kBAAoB,MAIxFrB,EACFnC,EAAQx9B,SAAU+O,EAAKsxB,MAAiB7oC,EAATuX,EAAKvX,EAAQuX,EAAKwxB,MAAiBzrC,EAATia,EAAKja,IAE9Dia,EAAKwxB,QAAUvQ,EAAOxsB,UAAYuL,EAAKja,GACvCia,EAAKsxB,QAAUrQ,EAAOgP,WAAajwB,EAAKvX,IAG1CuX,EAAKkxB,MAAQlxB,EAAKvX,EAClBuX,EAAKmxB,MAAQnxB,EAAKja,CACpB,EACAgsC,KAAM,SAAcG,GAClB,IAAIC,EAAoB,aAAbD,GAEPC,GAAqB,eAAbD,KACVtpC,KAAK0oC,MAAQ,IAGXa,GAAqB,eAAbD,KACVtpC,KAAK4oC,MAAQ,EAEjB,GAEFhB,EAAe5T,IAAMoS,EACrBwB,EAAe4B,UAAY7C,EAC3BiB,EAAe6B,YAAchD,EAC7B,KAAc,EAAK1E,eAAe6F,GC1OlC9F,EAAAA,GAAKC,eAAeG,GACpBJ,EAAAA,GAAKC,eAAe6F,GACpB,IAAI8B,EAAaxH,EAAW1wB,OAAO,SAAU,8DAG7C,SAASm4B,EAAaC,EAAiBnC,GAQnC,QARyC,IAANA,IAAAA,EAAS,MAQxCmC,EAAU,OAEd,IAAIxtC,EAAIqM,SAASC,eAAekhC,EAAS3qC,QAAS,KAAO,KACrD4qC,EAASphC,SAASC,eAAe,UACrC,IAAImhC,EAAQ,OACZ,MAAM9sC,EAAI8sC,EAAOhD,wBAAwB/c,OACzC,GAAI1tB,EAAG,CACH,IAAIe,EAAIf,EAAEyqC,wBAAwBjd,IAAM7sB,EAAI,GAAK4K,OAAOC,QACxDzK,EAAIA,EAAI,EAAI,EAAIA,EAEhB2kC,EAAAA,GAAKjX,GAAGljB,OAAO,CACXmiC,SAAU,GACVzhC,SAAU,EACV28B,KAAM0E,GAEd,CACJ,yBCvBA,MAAMK,EAASp2B,IAgBR,IAhBS,SACf3J,EAAQ,GACR6gB,EAAE,MACFmf,EAAK,OACLzD,EAAM,QACNlR,EAAO,kBACP4U,KACGC,GASHv2B,EACA,MAAMw2B,GAAWC,EAAAA,EAAAA,IAAeC,EAAAA,IACzBC,EAAaC,IAAkBC,EAAAA,EAAAA,IAAeC,EAAAA,IAC/C,gBAAEC,EAAe,kBAAEC,EAAiB,SAAEb,IAAac,EAAAA,EAAAA,MAEzD,IAAIC,EAAa,YAAYvqC,KAAKuqB,GAClC,MAAMigB,EAAS,SAASxqC,KAAKuqB,GAC7B,IAAIkgB,GAA6B,OAAbZ,EAAoB,GAAK,OAAQtf,EACrDkgB,EAAaA,EAAW9rC,QAAQ,QAAQ,KAGpC6rC,GAAUvE,KACbsE,GAAa,GAGd,MAAM,SAAE9hC,GAAa+hB,EAAAA,cA6CrB,OACChU,EAAAA,EAAAA,KAAAk0B,EAAAA,SAAA,CAAAhhC,SACE6gC,GACA/zB,EAAAA,EAAAA,KAACm0B,EAAAA,GAAI,CACJpgB,GAAIkgB,EACJ1V,QAhDoBh5B,IACvB4tC,GAAqB5tC,EAAE6uC,kBACvB7uC,EAAEu5B,iBACsB,IAApB8U,IAEE3hC,EAASkC,WAAa8/B,GAAgBhiC,EAASkC,WAAgB8/B,EAAU,KAASA,GAYvF1V,GAAWA,IACXsV,EAAkB,IACE,IAAhBL,GACHC,GAAe,GAEhBjuB,YAAW,KAEO,OAAb6tB,GAAqBY,EAAWxqC,MAAM,WAEzCoH,OAAOoB,SAASsK,KAAO03B,GAGvBngB,EAAAA,EAAAA,IAASmgB,GAENxE,GACHjqB,YAAW,KACVqtB,EAAapD,EAAO,GAClB,IACJ,GACE,MA9BCA,GAEHlR,GAAWA,IACXsU,EAAapD,KAEblR,GAAWA,IACXsU,EAAa,UAyBf,KAYOO,EAAKlgC,SAERA,KAGF8M,EAAAA,EAAAA,KAAA,KAAGzD,KAAMwX,EAAIwN,OAAQ2R,EAAQ,SAAW,MAAQE,EAAKlgC,SACnDA,KAGD,qGC/FU,SAASmhC,EAASx3B,GAAwB,IAAvB,MAACkW,EAAK,OAAEC,GAAanW,EACnD,OACImD,EAAAA,EAAAA,KAACs0B,IAAG,CAACvhB,MAAOA,GAAS,GAAKC,OAAQA,GAAU,GAAIkC,MAAM,IAE9D,oGCJe,SAASqf,EAAS13B,GAAwB,IAAvB,MAACkW,EAAK,OAAEC,GAAanW,EACnD,OACImD,EAAAA,EAAAA,KAACs0B,IAAG,CAACvhB,MAAOA,GAAS,GAAKC,OAAQA,GAAU,GAAIkC,MAAM,aAE9D,sGCJe,SAASsf,EAAO33B,GAAwB,IAAvB,MAACkW,EAAK,OAAEC,GAAanW,EACjD,OACImD,EAAAA,EAAAA,KAACs0B,IAAG,CAACvhB,MAAOA,GAAS,GAAKC,OAAQA,GAAU,GAAIkC,MAAM,WAE9D,qGCHe,SAASuf,EAAQ53B,GAAuB,IAAtB,EAAC/U,EAAC,EAAC7B,EAAC,QAAEyuC,GAAc73B,EACjD,OACImD,EAAAA,EAAAA,KAACs0B,IAAG,CAACvhB,MAAQjrB,GAAI,KAAUkrB,OAAS/sB,GAAI,KAAUyuC,QAAqB,KAAZA,EAAiB,GAAK,aAAexf,MAAM,cAE9G,oOCJO,MAAMyf,EAAyB,CAClC,CACIC,MAAO,OACP7gB,GAAI,UACN,CACE6gB,MAAO,YACP7gB,GAAI,eACN,CACE6gB,MAAO,UACP7gB,GAAI,aACN,CACE6gB,MAAO,OACP7gB,GAAI,uBACJmf,OAAO,GACT,CACE0B,MAAO,UACP7gB,GAAI,UAIC8gB,EAAoBA,IAAM,CACnC,CACID,OAAOE,EAAAA,EAAAA,IAAG,iBACV/gB,GAAI,WACN,CACE6gB,OAAOE,EAAAA,EAAAA,IAAG,iBACV/gB,GAAI,aACN,CACE6gB,OAAOE,EAAAA,EAAAA,IAAG,iBACV/gB,GAAOghB,0DAKFC,EAA6BA,IAAM,CAC5C,CACIJ,OAAOE,EAAAA,EAAAA,IAAG,iBACV/gB,GAAI,WAMR,CACI6gB,OAAOE,EAAAA,EAAAA,IAAG,iBACV/gB,GAAOghB,0DAIFE,EAA2B,CACpC,CACIL,MAAO,SACP7gB,GAAI,kBACN,CACE6gB,MAAO,UACP7gB,GAAI,mBACN,CACE6gB,MAAO,QACP7gB,GAAI,iBACN,CACE6gB,MAAO,QACP7gB,GAAI,iBACN,CACE6gB,MAAO,SACP7gB,GAAI,kBACN,CACE6gB,MAAO,SACP7gB,GAAI,kBACN,CACE6gB,MAAO,YACP7gB,GAAI,4BACN,CACE6gB,MAAO,WACP7gB,GAAI,oBACN,CACE6gB,MAAO,SACP7gB,GAAI,kBACN,CACE6gB,MAAO,OACP7gB,GAAI,uBACJmf,OAAO,GACT,CACE0B,MAAO,SACP7gB,GAAI,WAICmhB,EAAsBA,IAAM,CACrC,CACIN,OAAOE,EAAAA,EAAAA,IAAG,oBACV/gB,GAAOghB,2DACT,CACEH,OAAOE,EAAAA,EAAAA,IAAG,oBACV/gB,GAAOghB,yDACT,CACEH,OAAOE,EAAAA,EAAAA,IAAG,oBACV/gB,GAAI,aACN,CACE6gB,OAAOE,EAAAA,EAAAA,IAAG,oBACV/gB,GAAOghB,yDACT,CACEH,OAAOE,EAAAA,EAAAA,IAAG,oBACV/gB,GAAOghB,6DAIFI,EAA+BA,IAAM,CAC9C,CACIP,OAAOE,EAAAA,EAAAA,IAAG,oBACV/gB,GAAOghB,2DACT,CACEH,OAAOE,EAAAA,EAAAA,IAAG,oBACV/gB,GAAOghB,yDACT,CACEH,OAAOE,EAAAA,EAAAA,IAAG,oBACV/gB,GAAI,aACN,CACE6gB,OAAOE,EAAAA,EAAAA,IAAG,oBACV/gB,GAAOghB,yDACT,CACEH,OAAOE,EAAAA,EAAAA,IAAG,oBACV/gB,GAAOghB,6DAKFK,EAAS,CAClBC,QAAYN,sCACZO,UAAcP,mKCtIlB,SAASQ,IACL,MAAMC,GAAY,IAAA7gC,SAAO,GAOzB,OANA,QAA0B,KACtB6gC,EAAU3gC,SAAU,EACb,KACH2gC,EAAU3gC,SAAU,CAAK,IAE9B,IACI2gC,CACX,sCCLA,MAAMC,UAAwB,YAC1B,uBAAAC,CAAwBtkC,GACpB,MAAMkC,EAAUpK,KAAKoI,MAAMqkC,SAAS9gC,QACpC,GAAIvB,GAAWlC,EAAUwkC,YAAc1sC,KAAKoI,MAAMskC,UAAW,CACzD,MAAMC,EAAO3sC,KAAKoI,MAAMwkC,QAAQjhC,QAChCghC,EAAK7iB,OAAS1f,EAAQyiC,cAAgB,EACtCF,EAAK9iB,MAAQzf,EAAQ0iC,aAAe,EACpCH,EAAK/iB,IAAMxf,EAAQ2iC,UACnBJ,EAAKxF,KAAO/8B,EAAQ4iC,UACxB,CACA,OAAO,IACX,CAIA,kBAAAtjC,GAAuB,CACvB,MAAAE,GACI,OAAO5J,KAAKoI,MAAM4B,QACtB,EAEJ,SAASijC,GAAS,SAAEjjC,EAAQ,UAAE0iC,IAC1B,MAAM52B,GAAK,IAAAo3B,SACL1hC,GAAM,IAAAC,QAAO,MACbkhC,GAAO,IAAAlhC,QAAO,CAChBoe,MAAO,EACPC,OAAQ,EACRF,IAAK,EACLud,KAAM,IAiCV,OAtBA,IAAAgG,qBAAmB,KACf,MAAM,MAAEtjB,EAAK,OAAEC,EAAM,IAAEF,EAAG,KAAEud,GAASwF,EAAKhhC,QAC1C,GAAI+gC,IAAclhC,EAAIG,UAAYke,IAAUC,EACxC,OACJte,EAAIG,QAAQiB,QAAQwgC,YAAct3B,EAClC,MAAM0Q,EAAQ/d,SAASoB,cAAc,SAarC,OAZApB,SAASwE,KAAKC,YAAYsZ,GACtBA,EAAM6mB,OACN7mB,EAAM6mB,MAAMC,WAAW,oCACFx3B,yEAEZ+T,wCACCC,qCACHF,sCACCud,0CAIL,KACH1+B,SAASwE,KAAK4Z,YAAYL,EAAM,CACnC,GACF,CAACkmB,IACI,gBAAoBH,EAAiB,CAAEG,UAAWA,EAAWD,SAAUjhC,EAAKohC,QAASD,GAAQ,eAAmB3iC,EAAU,CAAEwB,QACxI,CC9DA,MAAM+hC,EAAgB,EAAGvjC,WAAUwjC,UAASd,YAAWe,iBAAgBxI,SAAQyI,wBAAuBC,WAClG,MAAMC,GAAmB,OAAYC,GAC/B/3B,GAAK,IAAAo3B,SACLvb,GAAU,IAAAmc,UAAQ,KAAM,CAC1Bh4B,KACA03B,UACAd,YACAzH,SACAwI,eAAiBM,IACbH,EAAiBxrC,IAAI2rC,GAAS,GAC9B,IAAK,MAAMC,KAAcJ,EAAiBnuB,SACtC,IAAKuuB,EACD,OAERP,GAAkBA,GAAgB,EAEtC9c,SAAWod,IACPH,EAAiBxrC,IAAI2rC,GAAS,GACvB,IAAMH,EAAiBnwB,OAAOswB,OAQ7CL,OAAwBnkC,EAAY,CAACmjC,IAiBrC,OAhBA,IAAAoB,UAAQ,KACJF,EAAiB5pC,SAAQ,CAAC5E,EAAGiH,IAAQunC,EAAiBxrC,IAAIiE,GAAK,IAAO,GACvE,CAACqmC,IAKJ,aAAgB,MACXA,IACIkB,EAAiBjB,MAClBc,GACAA,GAAgB,GACrB,CAACf,IACS,cAATiB,IACA3jC,EAAW,gBAAoBijC,EAAU,CAAEP,UAAWA,GAAa1iC,IAE/D,gBAAoBikC,EAAA,EAAgBnkC,SAAU,CAAEC,MAAO4nB,GAAW3nB,EAAU,EAExF,SAAS6jC,IACL,OAAO,IAAIr7B,GACf,6BC3CA,MAAM07B,EAAeC,GAAUA,EAAM9nC,KAAO,GAiD5C,MAAM+nC,EAAkB,EAAGpkC,WAAUi7B,SAAQuI,WAAU,EAAMC,iBAAgBY,kBAAiBX,yBAAwB,EAAMC,OAAO,YAC/H,QAAWU,EAAiB,4CAG5B,MAAMC,GAAc,IAAA/iC,YAAWgjC,EAAA,GAAoBD,aC3DvD,WACI,MAAMhC,EAAYD,KACXmC,EAAmBC,IAAwB,IAAAC,UAAS,GACrDJ,GAAc,IAAAK,cAAY,KAC5BrC,EAAU3gC,SAAW8iC,EAAqBD,EAAoB,EAAE,GACjE,CAACA,IAMJ,MAAO,EADqB,IAAAG,cAAY,IAAM,KAAMC,WAAWN,IAAc,CAACA,IACjDE,EACjC,CD+CsEK,GAAiB,GAC7EvC,EAAYD,IAEZyC,EAjDV,SAAsB9kC,GAClB,MAAM+kC,EAAW,GAMjB,OAJA,EAAAC,SAAShrC,QAAQgG,GAAWmkC,KACpB,IAAAc,gBAAed,IACfY,EAASn9B,KAAKu8B,EAAM,IAErBY,CACX,CAyC6BG,CAAallC,GACtC,IAAImlC,EAAmBL,EACvB,MAAMM,GAAkB,IAAA3jC,QAAO,IAAI+G,KAAO7G,QAGpC0jC,GAAkB,IAAA5jC,QAAO0jC,GAEzBG,GAAc,IAAA7jC,QAAO,IAAI+G,KAAO7G,QAGhC4jC,GAAkB,IAAA9jC,SAAO,GE1EnC,IAA0BmZ,EFqFtB,IAVA,QAA0B,KACtB2qB,EAAgB5jC,SAAU,EAnElC,SAA2B3B,EAAUslC,GACjCtlC,EAAShG,SAASmqC,IACd,MAAM9nC,EAAM6nC,EAAYC,GACxBmB,EAAYltC,IAAIiE,EAAK8nC,EAAM,GAEnC,CA+DQqB,CAAkBV,EAAkBQ,GACpCD,EAAgB1jC,QAAUwjC,CAAgB,IE9ExBvqB,EFgFL,KACb2qB,EAAgB5jC,SAAU,EAC1B2jC,EAAYG,QACZL,EAAgBK,OAAO,GElFpB,IAAA5qB,YAAU,IAAM,IAAMD,KAAY,IFoFrC2qB,EAAgB5jC,QAChB,OAAQ,gBAAoB,WAAgB,KAAMwjC,EAAiBr+B,KAAKq9B,GAAW,gBAAoBZ,EAAe,CAAElnC,IAAK6nC,EAAYC,GAAQzB,WAAW,EAAMc,UAASA,QAAUjkC,EAAmBmkC,sBAAuBA,EAAuBC,KAAMA,GAAQQ,MAGxQgB,EAAmB,IAAIA,GAGvB,MAAMO,EAAcL,EAAgB1jC,QAAQmF,IAAIo9B,GAC1CyB,EAAab,EAAiBh+B,IAAIo9B,GAElC0B,EAAaF,EAAY9xC,OAC/B,IAAK,IAAIpB,EAAI,EAAGA,EAAIozC,EAAYpzC,IAAK,CACjC,MAAM6J,EAAMqpC,EAAYlzC,IACS,IAA7BmzC,EAAW59B,QAAQ1L,IAAgB+oC,EAAgBrpC,IAAIM,IACvD+oC,EAAgBhtC,IAAIiE,OAAKkD,EAEjC,CAiDA,MA9Ca,SAATokC,GAAmByB,EAAgBzC,OACnCwC,EAAmB,IAIvBC,EAAgBprC,SAAQ,CAACkT,EAAW7Q,KAEhC,IAAiC,IAA7BspC,EAAW59B,QAAQ1L,GACnB,OACJ,MAAM8nC,EAAQmB,EAAYtsC,IAAIqD,GAC9B,IAAK8nC,EACD,OACJ,MAAM0B,EAAiBH,EAAY39B,QAAQ1L,GAC3C,IAAIypC,EAAmB54B,EACvB,IAAK44B,EAAkB,CACnB,MAAMC,EAAS,KACXT,EAAY7xB,OAAOpX,GACnB+oC,EAAgB3xB,OAAOpX,GAEvB,MAAM2pC,EAAcX,EAAgB1jC,QAAQ+W,WAAWutB,GAAiBA,EAAa5pC,MAAQA,IAG7F,GAFAgpC,EAAgB1jC,QAAQmG,OAAOk+B,EAAa,IAEvCZ,EAAgBzC,KAAM,CAEvB,GADA0C,EAAgB1jC,QAAUmjC,GACA,IAAtBxC,EAAU3gC,QACV,OACJ2iC,IACAb,GAAkBA,GACtB,GAEJqC,EAAoB,gBAAoBvC,EAAe,CAAElnC,IAAK6nC,EAAYC,GAAQzB,WAAW,EAAOe,eAAgBsC,EAAQ9K,OAAQA,EAAQyI,sBAAuBA,EAAuBC,KAAMA,GAAQQ,GACxMiB,EAAgBhtC,IAAIiE,EAAKypC,EAC7B,CACAX,EAAiBr9B,OAAO+9B,EAAgB,EAAGC,EAAiB,IAIhEX,EAAmBA,EAAiBr+B,KAAKq9B,IACrC,MAAM9nC,EAAM8nC,EAAM9nC,IAClB,OAAO+oC,EAAgBrpC,IAAIM,GAAO,EAAW,gBAAoBknC,EAAe,CAAElnC,IAAK6nC,EAAYC,GAAQzB,WAAW,EAAMgB,sBAAuBA,EAAuBC,KAAMA,GAAQQ,EAAO,IAO3L,gBAAoB,WAAgB,KAAMiB,EAAgBzC,KAC5DwC,EACAA,EAAiBr+B,KAAKq9B,IAAU,IAAA+B,cAAa/B,KAAS,8FGjJhE,MAAMgC,EAAWA,KAChB,MAAM7d,EAAU,IAAIN,EAAAA,EACdmY,GAAWC,EAAAA,EAAAA,IAAeC,EAAAA,IACtB+F,EAAWC,IAAgB7F,EAAAA,EAAAA,IAAe8F,EAAAA,IAE3C,EAACC,EAAQ,EAACC,IAAc9B,EAAAA,EAAAA,UAAiB,IAE/ChjC,EAAAA,EAAAA,kBAAgB,KACO,YAAtB3C,SAASkC,UAIa,UAAtBlC,SAASkC,UAA8C,UAAtBlC,SAASkC,UAI1ClC,SAASkC,SAAS1K,MAAM,eAAiBwI,SAASkC,SAAS1K,MAAM,gBACjEkwC,EAAAA,EAAAA,IAAW,CACVC,gBAAiBA,KAEnB,GAAK3nC,SAASkC,SAAS1K,MAAM,eACL,oBAAXoH,OAAyB,CACpC,MAAMgpC,EAAere,EAAQtvB,IAAI,oBACjCsvB,EAAQ9lB,OAAO,oBACXmkC,GACH/lB,EAAAA,EAAAA,IAAS+lB,GAEThpC,OAAOoB,SAASsK,MAAuB,OAAb82B,EAAoB,MAAQ,IAAE,UAE1D,CAEDqG,EAAW,GACXH,GAAa,EAAK,EAEhBO,eAAgBA,KACfJ,GAAY,EAAE,EAOfK,cAAgB/xB,IAEf0xB,GAAY,IACZM,EAAAA,EAAAA,IAAO,CAAClsB,SAASA,UACbmsB,EAAAA,EAAAA,QACO,eAAVjyB,GAAoC,cAAVA,GAAmC,cAAVA,GAGzC,eAAVA,GAAoC,eAAVA,GAAoC,eAAVA,EAFvDnX,OAAOoB,SAASsK,KAAO,SAOtB29B,EAAAA,EAAAA,MAEC,IAhDLR,GAAY,EAmDb,GACM,GAAG,2ECtDK,SAASS,EAAMt9B,GAC7B,MADsCA,GAErBy2B,EAAAA,EAAAA,IAAeC,EAAAA,GAAhC,MACM,SAAEp/B,GAAa6f,EAAAA,cAAc/hB,SACnC,IAAImoC,EAAiBjmC,EAAS1K,MAAM,YAAayrC,EAAAA,EAAAA,OAAwBL,EAAAA,EAAAA,MACzE,MAAMwF,EAAWlmC,EAAS1K,MAAM,aAChC,OACCssB,EAAAA,EAAAA,MAAA,UAAQukB,UAAU,qBAAoBpnC,SAAA,EACrC6iB,EAAAA,EAAAA,MAAA,OAAKukB,UAAU,eAAcpnC,SAAA,EAC5B8M,EAAAA,EAAAA,KAACu6B,EAAAA,EAAQ,IACPF,IAAYr6B,EAAAA,EAAAA,KAAA,KAAGs6B,UAAU,kEAAiEpnC,UAC1F4hC,EAAAA,EAAAA,IAAG,uBAGN90B,EAAAA,EAAAA,KAAA,OAAKs6B,UAAU,mDAAkDpnC,UAChE6iB,EAAAA,EAAAA,MAAA,OAAKukB,UAAU,gEAA+DpnC,SAAA,EAC7E8M,EAAAA,EAAAA,KAAA,OAAKs6B,UAAU,eAAcpnC,UAC5B8M,EAAAA,EAAAA,KAAA,MAAIs6B,WAAWE,EAAAA,EAAAA,GACd,uDACA,mBACCtnC,SACCknC,EAAepgC,KAAI,CAAAoD,EAAa1X,KAAK,IAAjB,MAACkvC,EAAK,GAAE7gB,GAAG3W,EAChC,OACC4C,EAAAA,EAAAA,KAAA,MAAYs6B,UAAU,iCAAgCpnC,UACrD8M,EAAAA,EAAAA,KAACizB,EAAAA,EAAM,CAAClf,GAAIA,EAAG7gB,SAAE0hC,KADTlvC,EAEJ,SAKTqwB,EAAAA,EAAAA,MAAA,SAAOukB,UAAU,qBAAoBpnC,SAAA,CAAC,MAAG,IAAI5J,MAAOQ,cAAc,IAAKirC,4CAK5E,wBC3Ce,SAAS0F,EAAa59B,GAAwB,IAAvB,MAACkW,EAAK,OAAEC,GAAanW,EACvD,OACImD,EAAAA,EAAAA,KAACs0B,IAAG,CAACvhB,MAAOA,GAAS,GAAKC,OAAQA,GAAU,GAAIkC,MAAM,IAE9D,CCGe,SAASwlB,EAAoB79B,GAEnC,IAFoC,UACzCy9B,GACGz9B,EACH,MAAM,SAAE1I,IAAaG,EAAAA,EAAAA,gBACd++B,EAAUsH,IAAejH,EAAAA,EAAAA,IAAeH,EAAAA,IACzC,gBAAEK,EAAe,kBAAEC,EAAiB,SAAEb,GAAac,KAsCzD,OAbA/lB,EAAAA,EAAAA,YAAU,KACF5Z,EAAS1K,MAAM,gBAIf0K,EAAS1K,MAAM,UAAyB,OAAb4pC,EAC3BsH,EAAY,MAEXxmC,EAAS1K,MAAM,UAAyB,OAAb4pC,GAC5BsH,EAAY,MAChB,GACF,KAGE5kB,EAAAA,EAAAA,MAAA,OAAKukB,WAAWE,EAAAA,EAAAA,GACZ,qGACA,qEACAF,GACD/b,QAzCgBqc,KACK,IAApBhH,IACJC,EAAkB,GAClBruB,YAAW,KAEP,OADJm1B,EAAyB,OAAbtH,EAAoB,KAAO,MAC3BA,GACJ,IAAK,MACDvf,EAAAA,EAAAA,IAAS,MAAM3f,GACf,MACJ,IAAK,KACD,IAAImH,EAAOnH,EACPA,EAAS1K,MAAM,aACf6R,EAAOA,EAAKnT,QAAQ,QAAQ,KAE5BgM,EAAS1K,MAAM,WACf6R,EAAOA,EAAKnT,QAAQ,MAAM,MAE9B2rB,EAAAA,EAAAA,IAASxY,GAEjB,GACF,KAAK,EAqBoBpI,SAAA,EACvB8M,EAAAA,EAAAA,KAAA,QAAMs6B,UAAU,uBAAsBpnC,UAAC8M,EAAAA,EAAAA,KAACy6B,EAAa,CAAC1nB,MAAO,GAAIC,OAAQ,QACzEhT,EAAAA,EAAAA,KAAA,QAAA9M,SAAOmgC,EAAS5I,kBAG5B,uBC9De,SAASoQ,EAAKh+B,GAM1B,IAN2B,YAC1Bi+B,EAAW,QACdC,GAIAl+B,EACG,MAAM,SAAE1I,GAAa6f,EAAAA,cAAc/hB,SAC7BooC,EAAWlmC,EAAS1K,MAAM,WAC7BuxC,EAAUX,EAAW,WAAa,IAC/BY,EAAc,aAEpB,OACIj7B,EAAAA,EAAAA,KAAAk0B,EAAAA,SAAA,CAAAhhC,SACFmnC,GACDr6B,EAAAA,EAAAA,KAAAk0B,EAAAA,SAAA,CAAAhhC,UACC6iB,EAAAA,EAAAA,MAACkd,EAAAA,EAAM,CAAClf,GAAIinB,EAASV,WAAWE,EAAAA,EAAAA,GAC/B,+BACCO,GAAW,mCACZE,GACC/nC,SAAA,EACD8M,EAAAA,EAAAA,KAAA,MAAIs6B,WAAWE,EAAAA,EAAAA,GACd,UACCO,GAAW,YACX7nC,UACD8M,EAAAA,EAAAA,KAACy0B,EAAAA,EAAQ,CAAC3sC,EAAG,IAAK7B,EAAG,QAEtB+Z,EAAAA,EAAAA,KAAA,MAAIs6B,WAAWE,EAAAA,EAAAA,GACd,SACCO,GAAW,aACX7nC,UACD8M,EAAAA,EAAAA,KAACy0B,EAAAA,EAAQ,CAAC3sC,EAAG,GAAI7B,EAAG,aAWvB+Z,EAAAA,EAAAA,KAAAk0B,EAAAA,SAAA,CAAAhhC,UACC8M,EAAAA,EAAAA,KAACizB,EAAAA,EAAM,CAAClf,GAAIinB,EAASV,WAAWE,EAAAA,EAAAA,GAC/B,6BACCO,GAAW,gCACZD,GAnCiB,uBAoCjBG,GACC/nC,UACD8M,EAAAA,EAAAA,KAAA,MAAIs6B,WAAWE,EAAAA,EAAAA,GACd,8CACCO,GAAW,kBACX7nC,SAAC,oBAeV,CC3De,SAASgoC,EAAMr+B,GAAW,MAAFA,EACtC,MAAM,SAAE1I,GAAa6f,EAAAA,cAAc/hB,UAC5BqnC,EAAWC,IAAgB7F,EAAAA,EAAAA,IAAe8F,EAAAA,IACjDzrB,EAAAA,EAAAA,YAAU,QAER,IAEF,MAAMssB,EAAWlmC,EAAS1K,MAAM,WAC1B0xC,EAAWd,EAAWpF,EAAAA,GAAgBN,EAAAA,GAG5C,OACC5e,EAAAA,EAAAA,MAAA,UAAQ/W,GAAG,SAASs7B,UAAU,iBAAgBpnC,SAAA,EAC7C8M,EAAAA,EAAAA,KAAC66B,EAAK,CAACC,aAAW,KAClB/kB,EAAAA,EAAAA,MAAA,OAAKukB,WAAWE,EAAAA,EAAAA,GACf,8DACA,iCANoB,wBAQnBtnC,SAAA,EACD8M,EAAAA,EAAAA,KAAA,OAAKs6B,WAAWE,EAAAA,EAAAA,GACf,qCACAH,EAAW,cAAgB,aAC1BnnC,UACD8M,EAAAA,EAAAA,KAAA,MAAIs6B,UAAU,0DAAyDpnC,SACpEioC,EAASnhC,KAAI,CAAAoD,EAAmB1X,KAAK,IAAvB,MAACkvC,EAAK,GAAC7gB,EAAE,MAAEmf,GAAM91B,EAChC,MAAMg+B,EAAiB,UAAPrnB,GAAyB,WAAPA,EAClC,OACCgC,EAAAA,EAAAA,MAAA,MAAA7iB,SAAA,EACIkoC,IAAWp7B,EAAAA,EAAAA,KAACizB,EAAAA,EAAM,CAAClf,GAAIA,EAAImf,MAAOA,EAAMhgC,SAAE0hC,IACpC,UAAP7gB,IACDgC,EAAAA,EAAAA,MAAA,UAAQwI,QAASA,KAAK8c,EAAAA,EAAAA,KAAa,GAAOf,UAAU,oBAAmBpnC,SAAA,EACtE8M,EAAAA,EAAAA,KAAA,QAAMs6B,UAAU,wCAAuCpnC,UACtD8M,EAAAA,EAAAA,KAACq0B,EAAAA,EAAS,CAACthB,MAAO,GAAIC,OAAQ,OAE9B4hB,KAGM,WAAP7gB,IACD/T,EAAAA,EAAAA,KAAA,UAAQue,QAASA,KAAI+c,EAAAA,EAAAA,IAAc,CAACtvB,GAAGA,SAAUsuB,UAAU,GAAEpnC,SAC3D0hC,MAZKlvC,EAeJ,SAKTsa,EAAAA,EAAAA,KAAA,OAAKs6B,WAAWE,EAAAA,EAAAA,GAAK,wDAEpBH,EACA,iFAEA,wEACCnnC,UACD8M,EAAAA,EAAAA,KAAC06B,EAAoB,WAK1B,yBCpEe,SAASa,IACpB,MAAM,gBAAE3H,EAAe,SAAEZ,EAAQ,MAAEwI,GAAU1H,KAQvC2H,GAAmB9mC,EAAAA,EAAAA,UACnB+mC,GAAe/mC,EAAAA,EAAAA,UACfgnC,GAAchnC,EAAAA,EAAAA,SAAO,GACrBinC,GAAkBjnC,EAAAA,EAAAA,UA+BxB,OA7BAhG,EAAAA,WAAgB,KAGZ,GAAwB,IAApBilC,EAAuB,CACvB,IAAK+H,EAAQ9mC,QAAS,OACtB8mC,EAAQ9mC,SAAU,EAwE9B,SAA2BsX,GAA0C,IAAzC,OAAEoV,EAAM,MAAEia,EAAK,SAAExI,GAAqB7mB,EACrD6e,EAAAA,GAAK6Q,WACXvwC,IAAIi2B,EAAQ,CAEXua,QAAS,EACTC,MAAO,IAMNhoB,GAAGwN,EAAQ,CACR2M,KAAM8N,EAAAA,GAAKC,UACXT,MAAOA,EACPxI,SAAUA,EAAW,EAAI,EAGzB8I,QAAS,EACTC,MAAO,EACPG,WAAYA,KACRlR,EAAAA,GAAK1/B,IAAIi2B,EAAQ,CAEbua,QAAS,EACTC,MAAO,IACPI,QAAS,QACX,GAGlB,CAnGYC,CAAmB,CAAE7a,OAAQka,EAAa5mC,QAASm+B,WAAUwI,UA8CzE,SAAyB3+B,GAA0C,IAAzC,OAAE0kB,EAAM,MAAEia,EAAK,SAAExI,GAAqBn2B,EACxDw/B,EAAKrR,EAAAA,GAAK6Q,WACdQ,EAAG/wC,IAAIi2B,EAAQ,CACX+a,OAAQ,MAEGl1C,KAAKE,MAAsB,GAAhBF,KAAKm1C,UAC/BF,EAAGtoB,GAAGwN,EAAQ,CACV2M,KAAM8N,EAAAA,GAAKC,UACXjJ,SAAUA,EAAS,EACnBsJ,OAAQ,GAEhB,CAxDYE,CAAiB,CAACjb,OAAOqa,EAAY/mC,QAASm+B,WAAUwI,SAE5D,MACI,GAAwB,IAApB5H,EAAuB,CAEvB,GAAI+H,EAAQ9mC,QAAS,OACrB8mC,EAAQ9mC,SAAU,EA6FlC,SAA2B8qB,GAA0C,IAAzC,OAAE4B,EAAM,MAAEia,EAAK,SAAExI,GAAqBrT,EAC1D0c,EAAKrR,EAAAA,GAAK6Q,WACdQ,EAAG/wC,IAAIi2B,EAAQ,CAEXua,QAAS,IAEbO,EAAGtoB,GAAGwN,EAAQ,CAEV2M,KAAM8N,EAAAA,GAAKS,OACXN,QAAS,OACTnJ,SAAUA,EAAW,EAAI,EACzB0J,UAAW,EACXZ,QAAS,IAEZ/nB,GAAGwN,EAAQ,CACR2M,KAAM8N,EAAAA,GAAKC,UACXjJ,SAAUA,EAAW,EAAI,EACzB8I,QAAS,EACTC,MAAO,EAEPW,UAAW,GAEnB,CAlHgBC,CAAmB,CAAEpb,OAAQka,EAAa5mC,QAASm+B,WAAUwI,UAkD7E,SAA6Bp+B,GAA0C,IAAzC,OAAEmkB,EAAM,MAAEia,EAAK,SAAExI,GAAqB51B,EACvD4tB,EAAAA,GAAK6Q,WACXvwC,IAAIi2B,EAAQ,CACX+a,OAAQ,KAEhB,CAtDgBM,CAAqB,CAACrb,OAAOqa,EAAY/mC,QAASm+B,WAAUwI,SAChE,CAEJ,IAAyB,IAArB5H,EAAwB,CAExB,GAAI+H,EAAQ9mC,QAAS,OACrB8mC,EAAQ9mC,SAAU,EA6G9B,SAA0B+qB,GAA0C,IAAzC,OAAE2B,EAAM,MAAEia,EAAK,SAAExI,GAAqBpT,EAC7DoL,EAAAA,GAAK1/B,IAAIi2B,EAAQ,CAEbua,QAAS,EACTC,MAAO,IACPI,QAAS,OACTO,UAAW,IAEf1R,EAAAA,GAAKjX,GAAGwN,EAAQ,CACZ2M,KAAM2O,OAAOZ,UACbT,MAAOA,EACPxI,SAAUA,EACV8I,QAAS,EAETI,WAAYA,KACRlR,EAAAA,GAAK1/B,IAAIi2B,EAAQ,CACbua,QAAS,GACX,GAGd,CAhIYgB,CAAkB,CAAEvb,OAAQka,EAAa5mC,QAASm+B,WAAUwI,UAgDxE,SAA4B3vB,GAA0C,IAAzC,OAAE0V,EAAM,MAAEia,EAAK,SAAExI,GAAqBnnB,EACtDmf,EAAAA,GAAK6Q,WACXvwC,IAAIi2B,EAAQ,CACX+a,OAAQ,KAEhB,CApDYS,CAAoB,CAACxb,OAAOqa,EAAY/mC,QAASm+B,WAAUwI,SAC/D,IACD,CAAC5H,EAAiB4H,EAAOxI,KAKxBhzB,EAAAA,EAAAA,KAAA,OAAKs6B,UAAU,wDAAwD5lC,IAAK+mC,EAAavoC,UACrF8M,EAAAA,EAAAA,KAAA,OAAKs6B,UAAU,iDAAgDpnC,UAC3D6iB,EAAAA,EAAAA,MAAA,OAAA7iB,SAAA,EACI8M,EAAAA,EAAAA,KAAA,OAAKtL,IAAKgnC,EAAUpB,UAAU,8BAA6BpnC,SAAC,aAG5D8M,EAAAA,EAAAA,KAAA,OAAKs6B,UAAU,kFAAiFpnC,UAC5F8M,EAAAA,EAAAA,KAAA,OAAKtL,IAAKknC,EAAatB,UAAU,4DAMzD,wBCtDe,SAAS0C,EAAQngC,GAAwB,IAAvB,MAACkW,EAAK,OAAEC,GAAanW,EAClD,OACImD,EAAAA,EAAAA,KAACs0B,IAAG,CAACvhB,MAAOA,GAAS,GAAKC,OAAQA,GAAU,GAAIkC,MAAM,IAE9D,wBCJe,SAAS+nB,EAASpgC,GAAwB,IAAvB,MAACkW,EAAK,OAAEC,GAAanW,EACnD,OACImD,EAAAA,EAAAA,KAACs0B,IAAG,CAACvhB,MAAOA,GAAS,GAAKC,OAAQA,GAAU,GAAIkC,MAAM,IAE9D,kCCUA,IAAIgoB,GAAU,CACb,CACCnpB,GAAIqhB,EAAAA,GAAOC,QACX8H,KAAM3I,EAAAA,GACL,CACDzgB,GAAIqhB,EAAAA,GAAOE,UACX6H,KAAM5I,EAAAA,IAKR,MAAM6I,GAA8B,CAChCx5B,KAAM,CACJ7a,EAAG,KACH+yC,QAAS,EACZuB,WAAY,CACPrK,SAAU,GACV9E,KAAM,eAGVtkC,KAAM,CACJb,EAAG,OACH+yC,QAAS,GAEX1xB,MAAO,CACLrhB,EAAG,OACH+yC,QAAS,IAITwB,GAAsB53C,IACF,CACxBke,KAAM,CACL7a,EAAG,KACH+yC,QAAS,EACTuB,WAAY,CACVrK,SAAU,GACVwI,MAAO,IAAO91C,EACdwoC,KAAM,eAGTtkC,KAAM,CACLb,EAAG,OACH+yC,QAAS,GAEV1xB,MAAO,CACNrhB,EAAG,OACH+yC,QAAS,KAMG,SAASyB,GAAS1gC,GAAW,MAAFA,GACxBy2B,EAAAA,EAAAA,IAAeC,EAAAA,GAAhC,MACM,SAAEp/B,GAAa6f,EAAAA,cAAc/hB,UAC5BuhC,EAAaC,IAAkBC,EAAAA,EAAAA,IAAeC,GAAAA,GAIrD,IAAIwH,EAAWhnC,EAAS1K,MAAM,WAAawrC,EAAAA,GAAgBN,EAAAA,GACvDyF,EAAiBjmC,EAAS1K,MAAM,YAAa0rC,EAAAA,EAAAA,OAAiCH,EAAAA,EAAAA,MAClF,MAAMqF,IAAWlmC,EAAS1K,MAAM,WAG1BmxC,EAAiBA,KACnBpH,GACFC,GAAe,EAChB,EAED,OACC1d,EAAAA,EAAAA,MAAAme,EAAAA,SAAA,CAAAhhC,SAAA,EACC8M,EAAAA,EAAAA,KAACw9B,EAAAA,EAAO/e,OAAM,CACbgf,WAAY,CAAE1B,MAAO,KACrB2B,SAAU,CAAE3B,MAAO,IACnBxd,QAlBkBof,KACpBlK,GAAgBD,EAAY,EAkB1B8G,WAAWE,EAAAA,EAAAA,GACV,yEACAH,EAAW,eAAiB,cAC3BnnC,SACCsgC,GAA4BxzB,EAAAA,EAAAA,KAACi9B,EAAS,KAAxBj9B,EAAAA,EAAAA,KAACg9B,EAAQ,OAE1BjnB,EAAAA,EAAAA,MAACynB,EAAAA,EAAOI,IAAG,CACVrf,QAAUh5B,GAAMA,EAAE6uC,kBAClByJ,SAAUT,GACV1G,QAAQ,OACRoH,QAAStK,EAAc,OAAS,QAChCuK,KAAK,OACLzD,WAAWE,EAAAA,EAAAA,GACV,sDAECtnC,SAAA,EAEH8M,EAAAA,EAAAA,KAAA,OAAKs6B,UAAU,wDAAuDpnC,UACrE6iB,EAAAA,EAAAA,MAAA,OAAKukB,UAAU,GAAEpnC,SAAA,EAChB6iB,EAAAA,EAAAA,MAAA,MAAIukB,WAAWE,EAAAA,EAAAA,GACd,+CACA,kHACCtnC,SAAA,EACD8M,EAAAA,EAAAA,KAAA,MAAIs6B,UAAU,WAAUpnC,UACvB8M,EAAAA,EAAAA,KAAC66B,EAAK,CAACE,SAAO,MAEbI,EAASnhC,KAAI,CAAAoD,EAAmB1X,KAAK,IAAvB,MAACkvC,EAAK,GAAC7gB,EAAE,MAAEmf,GAAM91B,EAC5Bg+B,EAAiB,UAAPrnB,GAAyB,WAAPA,EAChC,OACCgC,EAAAA,EAAAA,MAACynB,EAAAA,EAAOQ,GAAE,CACTH,SAAUP,GAAmB53C,GAC7BgxC,QAAQ,OACRoH,QAAStK,EAAc,OAAS,QAChCuK,KAAK,OAAM7qC,SAAA,EAERkoC,IAAWp7B,EAAAA,EAAAA,KAACizB,EAAAA,EAAM,CAAClf,GAAIA,EAAIumB,UAAU,GAAGpH,MAAOA,EAAMhgC,SACtD0hC,IAEO,UAAP7gB,IACDgC,EAAAA,EAAAA,MAAA,UAAQwI,QAASA,KAChBqc,KACAS,EAAAA,EAAAA,KAAa,EAAK,EAChBf,UAAU,oBAAmBpnC,SAAA,CAC9B0hC,GAAM50B,EAAAA,EAAAA,KAAA,QAAMs6B,UAAU,mDAAkDpnC,UACxE8M,EAAAA,EAAAA,KAACq0B,EAAAA,EAAS,CAACthB,MAAO,GAAIC,OAAQ,UAIxB,WAAPe,IACD/T,EAAAA,EAAAA,KAAA,UAAQue,QAASA,KAChBqc,KACAU,EAAAA,EAAAA,IAAc,CAACtvB,GAAGA,QAAQ,EACxBsuB,UAAU,GAAEpnC,SACb0hC,MAxBYlvC,EA2BJ,QAIfsa,EAAAA,EAAAA,KAAA,MAAIs6B,UAAU,uCAAsCpnC,SACjDknC,EAAepgC,KAAI,CAAA6R,EAAanmB,KAAK,IAAjB,MAACkvC,EAAK,GAAE7gB,GAAGlI,EAChC,OACC7L,EAAAA,EAAAA,KAAA,MAAYs6B,UAAU,YAAWpnC,UAChC8M,EAAAA,EAAAA,KAACizB,EAAAA,EAAM,CAAClf,GAAIA,EAAIumB,UAAU,eAAcpnC,SACtC0hC,KAFMlvC,EAIJ,OAIRsa,EAAAA,EAAAA,KAAA,MAAIs6B,UAAU,6CAA4CpnC,SACvDgqC,GAAQljC,KAAI,CAAAmS,EAAYzmB,KAAK,IAAhB,GAACquB,EAAE,KAAEopB,GAAKhxB,EACxB,OACCnM,EAAAA,EAAAA,KAAA,MAAYs6B,UAAU,OAAMpnC,UAC3B8M,EAAAA,EAAAA,KAACizB,EAAAA,EAAM,CAAClf,GAAIA,EAAIumB,UAAU,yEAAyE/b,QAASqc,EAAe1nC,UAC1H8M,EAAAA,EAAAA,KAACm9B,EAAI,OAFEz3C,EAIJ,YAMVsa,EAAAA,EAAAA,KAAA,OAAKs6B,UAAU,8CAA6CpnC,UAC3D6iB,EAAAA,EAAAA,MAAA,SAAOukB,UAAU,2BAA0BpnC,SAAA,CAAC,MAAG,IAAI5J,MAAOQ,cAAc,IAAKirC,4CAKlF,CCnLO,MAAMkJ,IAAwBhuC,EAAAA,EAAAA,eAAc,MACtC6jC,GAAgBA,IAAMnlC,EAAAA,WAAiBsvC,IAE9C1kC,GAAU,CACZy5B,SAAU,GACVwI,MAAO,IAGI,SAAS0C,GAAgBrhC,GAIvC,IAJwC,SAAE3J,EAAQ,SAAEjB,GAGpD4K,EAGGw8B,IACA,MAAO8E,EAAOC,GAAYzvC,EAAAA,UAAe,IAClCilC,EAAiBC,GAAqBllC,EAAAA,SAAe,GACtDY,EAAM0C,EAASkC,SACf6+B,EAAWz5B,GAAQy5B,SAGnB31B,EAAkB,CACpBq5B,QAAS,CACLvlC,SAAU,YAGdktC,MAAO,CACHhB,WAAY,CACRrK,SAAUA,EACVwI,MAVEjiC,GAAQiiC,OAAS2C,EAAQ,IAAS,GAWpCG,KAAM,mBAIdP,KAAM,CACFV,WAAY,CAAErK,SAAUA,KAgChC,OA1BAjlB,EAAAA,EAAAA,YAAU,KAMkB,IAApB6lB,GAE2B,IAApBA,IAEoB,IAApBA,EAEPC,EAAkB,GACS,IAApBD,GAEPpuB,YAAW,KACPquB,EAAkB,EAAE,GACgB,KAApCt6B,GAAQy5B,SAAWz5B,GAAQiiC,QACnC,GACD,CAAC5H,KAGJ2K,EAAAA,EAAAA,IAAiB,YAAY,KACzB1K,EAAkB,EAAE,KAIpB7zB,EAAAA,EAAAA,KAACi+B,GAAkBjrC,SAAQ,CAACC,MAAO,CAC/B2gC,gBAAiBA,EACjBC,kBAAmBA,EACnBb,SAAUz5B,GAAQy5B,SAClBwI,MAAOjiC,GAAQiiC,OACjBtoC,UACE6iB,EAAAA,EAAAA,MAAA,OAAK/W,GAAG,OAAOs7B,UAAU,OAAMpnC,SAAA,EACvC8M,EAAAA,EAAAA,KAACu7B,EAAO,KACRv7B,EAAAA,EAAAA,KAACu9B,GAAS,KACVv9B,EAAAA,EAAAA,KAACk7B,EAAM,KACKnlB,EAAAA,EAAAA,MAAA,QAAMukB,UAAU,8BAA6BpnC,SAAA,EACzC8M,EAAAA,EAAAA,KAACs3B,EAAe,CACZX,eAAgBA,KACY,IAApB/C,GACAC,EAAkB,EACtB,EAEJgD,KAAK,OAAM3jC,UAEX8M,EAAAA,EAAAA,KAACw9B,EAAAA,EAAOI,IAAG,CACPtD,UAAU,KAEVuD,SAAUxgC,EACVq5B,QAAQ,UACRoH,QAAQ,QACRC,KAAK,OACLS,iBAAkBA,MACA,IAAVL,IACAC,GAAS,GACTvK,EAAkB,GACtB,EAEJ4K,oBAAqBA,KACO,IAApB7K,GACAC,EAAkB,EACtB,GAdCtkC,KAoBZ2D,MAEjB8M,EAAAA,EAAAA,KAACm6B,EAAM,QAIX,+qICtGO,MAAMrF,EAAKA,CAACtvC,EAAU+O,KACzB,GAAsB,oBAAX1D,OAAyB,OACpC,IACI6tC,EAAWl5C,EACf,OAFe+O,IAASoqC,EAAAA,EAAAA,OAGpB,IAAK,KACqBn5C,KAZhBo5C,IAaFF,EAAOE,EAAOp5C,IAElB,MAEJ,IAAK,MAfb,SAA2B+J,GACvB,OAAOA,KAAOsvC,CAClB,EAcgBC,CAAkBt5C,KAClBk5C,EAAOG,EAAOr5C,IAI1B,OAAOk5C,CAAI,kIC3BA,SAASnE,EAAQ19B,GAA8B,IAA7B,SAACkiC,EAAQ,KAAElJ,EAAO,IAASh5B,EACxD,OACIkZ,EAAAA,EAAAA,MAAA,OAAKukB,UAAU,kBAAiBpnC,SAAA,EAC5B8M,EAAAA,EAAAA,KAAA,KAAGs6B,WAAWE,EAAAA,EAAAA,GACV,kDACAuE,EAAW,2BAA6B,aAC1C7rC,SAAC,2BAGH6iB,EAAAA,EAAAA,MAAA,OAAKukB,WAAWE,EAAAA,EAAAA,GACZ,wDACA,iCACFtnC,SAAA,EACE8M,EAAAA,EAAAA,KAACizB,EAAAA,EAAM,CAACqH,WAAWE,EAAAA,EAAAA,GACf,QACAuE,EAAW,4CAA8C,qBAC1DhrB,GAAIqhB,EAAAA,GAAOC,QAAUnC,OAAK,EAAAhgC,UAAC8M,EAAAA,EAAAA,KAACw0B,EAAAA,EAAO,CAACzhB,MAAO,GAAIC,OAAQ,QAC1DhT,EAAAA,EAAAA,KAACizB,EAAAA,EAAM,CAACqH,WAAWE,EAAAA,EAAAA,GACf,QACAuE,EAAW,4CAA8C,qBAC1DhrB,GAAIqhB,EAAAA,GAAOE,UAAYpC,OAAK,EAAAhgC,UAAC8M,EAAAA,EAAAA,KAACu0B,EAAAA,EAAS,CAACxhB,MAAO,GAAIC,OAAQ,YAI9E,6PCzBO,MAAMinB,EAAYA,IAAwB,oBAAXppC,OAChC2qB,EAAU,IAAIN,EAAAA,EAAQ,aAEf8jB,EAAUA,IAEZ/E,KAAeze,EAAQtvB,IAAI,QAC5BsvB,EAAQtvB,IAAI,QACZ,KAwDG+yC,EAAYC,UAKrB,GAHKC,IACDA,EAAU3jB,EAAQtvB,IAAI,aAErBizC,EAEL,IACI,MAAM9hC,EAAqB,CACvBmH,OAAS,OACTqK,KAAO/a,KAAKE,UAAU,CAAEmrC,QAASA,IACjCC,QAAS,CACL,eAAgB,qBAGlBr3B,QAAYs3B,MAAStK,qEAAwC13B,GAC7DpD,QAAe8N,EAAI3C,OAGzB,aAFmBtR,KAAK3K,MAAM8Q,EAAOqG,KAGzC,CAAE,MAAM/a,GAER,GA2BSo0C,EAAauF,UAEb,IAFoB,gBAC7BtF,EAAe,eAAEE,EAAc,cAAEC,GAC9Bl9B,EACH,MAAM,SAAE5K,GAAa+hB,EAAAA,cAErB,IAAIsrB,EADW,IAAIC,gBAAgBttC,EAASsJ,QACxBrP,IAAI,UAIxB,IACI,GAAIozC,EAAQ,CAER9jB,EAAQlwB,IAAI,SAAUg0C,EAAQ,CAAEhkC,KAAM,MACtCzK,OAAOujB,QAAQC,aAAa,GAAI,GAAG,GAAIpiB,EAASkC,UAChCqrC,EAAAA,EAAUtzC,IAAI,UAKlC,MACIozC,EAAS9jB,EAAQtvB,IAAI,UAGzB,IAAKozC,EAKD,MAHIxF,GACAA,IAEE,aAGV,GApIU3tC,OAAOqvB,EAAQtvB,IAAI,gBACtB,IACPsvB,EAAQlwB,IAAI,cAAe,EAAG,CAAEgQ,KAAM,MAC/B,GAkIH,KAAM,aAGV,MAAMmkC,OAhISP,WAEnB,IAGI,MAAM7hC,EAAqB,CACvBmH,OAAS,OACTqK,KAAO/a,KAAKE,UAAU,CAAEsrC,OAAQA,IAChCF,QAAS,CACL,eAAgB,qBAGlBr3B,QAAYs3B,MAAStK,4EAA+C13B,GACpEpD,QAAe8N,EAAI3C,OAEzB,aADmBtR,KAAK3K,MAAM8Q,EAAOqG,KAwBzC,CAAE,MAAM0H,GAEJ,OAAO,IACX,GAuFsB03B,CAAeJ,GACjC,IAAKG,EAED,KAAM,aAIV,GAAqB,KAAhBA,EAAIE,UAA0C,iBAAhBF,EAAIE,SAAwC,MAAfF,EAAIG,QAChE,KAAK,yBAA0BH,EAAIE,QAAO,KAAKF,EAAII,UAGvD,MAAMC,EAAOtkB,EAAQtvB,IAAI,YASzB,GARI4zC,GACIA,IAASL,EAAIM,SAEbvkB,EAAQlwB,IAAI,WAAYm0C,EAAIM,SAKhB,SAAhBN,EAAIO,QAIJ,MAHAxkB,EAAQ9lB,OAAO,SAAU,CAAE4F,KAAM,MACjCkgB,EAAQ9lB,OAAO,WAAY,CAAE4F,KAAM,MACnCkgB,EAAQ9lB,OAAO,OAAQ,CAAE4F,KAAM,MACzB,aAIV,MAAM2kC,QAAYhB,EAAUQ,EAAIM,SAEhC,IAAKE,EACD,KAAM,aAIV,IAAIC,EAAmBD,EAAIE,WAAWC,oBAAsBH,EAAIE,WAEhE,GADAD,EAAmBn5C,MAAMs5C,QAAQH,GAAoBA,EAAiB,GAAKA,GACtEA,EACD,KAAM,aAIV,MAAM,SAAEI,EAAQ,UAAEC,EAAS,eAAEC,GAAmBN,EAKhD,IAAIO,GAAqB,EACzB,GAAiB,IAAbH,EAAiB,CAGjB,MAAMI,EAAQC,IAAMH,GACdI,EAAaD,MAGnB,KAFaD,EAAM7zC,KAAK+zC,EAAY,SAEzB,GAGP,KAAM,aAFNH,GAAqB,CAK7B,CAEAR,EAAIE,WAAWC,mBAAqBF,EAIpC,MAAMW,EAAQ,IAAIv3C,KACZw3C,EAAW,IAAIx3C,KAWrB,OAVAw3C,EAASC,QAAQF,EAAM32C,UAAY,GACnCsxB,EAAQlwB,IAAI,cAAe,EAAG,CAAEgQ,KAAM,MACtCkgB,EAAQlwB,IAAI,WAAYm0C,EAAIM,QAAS,CAAEiB,QAASF,EAAUxlC,KAAM,aACzD2kC,EAAIgB,OACXzlB,EAAQlwB,IAAI,QAAQ41C,EAAAA,EAAAA,IAAmB,IAAIjB,EAAKkB,oBAAqBV,IAAsB,CAAEO,QAASF,EAAWxlC,KAAM,MAGlHs+B,GACDA,KAEG,CACX,CAAE,MAAM5xB,GAIJ,OAHI+xB,GACAA,EAAc/xB,IAEX,CACX,GAGSo5B,EAAaA,KACtB,MAAMC,EAAOrC,IACPzvC,EAAMisB,EAAQtvB,IAAI,YAExB,SAAIm1C,GACIA,EAAKtB,UAAYxwC,EAIb,EAEHyqC,EAAS58B,IAIf,IAJgB,SACnB0Q,GAGH1Q,EAEOkkC,EAAQn1C,OAAOqvB,EAAQtvB,IAAI,gBAC3Bo1C,IACAA,EAAQ,GAEZA,GAAS,EACT9lB,EAAQlwB,IAAI,cAAeg2C,EAAO,CAAEhmC,KAAM,MAG1CkgB,EAAQ9lB,OAAO,SAAU,CAAE4F,KAAM,MACjCkgB,EAAQ9lB,OAAO,WAAY,CAAE4F,KAAM,MACnCkgB,EAAQ9lB,OAAO,OAAQ,CAAE4F,KAAM,MAE/BkgB,EAAQ9lB,OAAO,SAAU,CAAE4F,KAAM,YACjCkgB,EAAQ9lB,OAAO,WAAY,CAAE4F,KAAM,YACnCkgB,EAAQ9lB,OAAO,OAAQ,CAAE4F,KAAM,YAE3BwS,GACAA,GACJ,mFCpRJ,MAAMyzB,EAAoB,WAebhO,GAAgBiO,EAAAA,EAAAA,IAAgB,CACzCjyC,IAAK,gBACLT,QAhBsB2yC,MACtB,GAAsB,oBAAX5wC,OACP,MAAO,GAEX,MAAMoC,EAAQpC,OAAO6wC,aAAa7tC,QAAQ0tC,GAC1C,OAAOtuC,EAAQa,KAAK3K,MAAM8J,GAAS,EAAE,EAW5BwuC,IAAuB,KAChCE,iBAAkB,CACd9kC,IAAgB,IAAf,MAAE+kC,GAAO/kC,EACN+kC,GAAOC,IAZW5uC,QAaK4uC,EAZT,oBAAXhxC,QAGXA,OAAO6wC,aAAaztC,QAAQstC,EAAmBztC,KAAKE,UAAUf,GAStB,GAC9B,gGCxBd,MAAM,YAAE6uC,IAAgBC,EAAAA,EAAAA,KAEXpO,GAAiB6N,EAAAA,EAAAA,IAAK,CAC/BjyC,IAAK,iBACLT,SAAS,qHCJb,MAAM,YAAEgzC,IAAgBC,EAAAA,EAAAA,GAAc,CAClC,GAGSvI,GAAiBgI,EAAAA,EAAAA,IAAK,CAC/BjyC,IAAK,YACLT,SAAS,IAGAkzC,GAAgBR,EAAAA,EAAAA,IAAK,CAC9BjyC,IAAK,WACLT,QAAS,CACLmzC,SAAU,CAAC,EACXC,KAAM,CAAC,EACPC,iBAAiB,GAErBR,iBAAkB,CAACG,2JCfvB,MAEMM,EAAmBnwC,IAAkB,IAADowC,EACtC,IAAIC,EAAerwC,EAASkC,UAE+B,QAAlCkuC,EAAGnnB,EAAAA,EAAQhvB,IAAI,2BAAmB,IAAAm2C,OAAA,EAA/BA,EAAiCt3C,cAC/Bu3C,EAAa74C,MAAM,UAAW64C,EAAa74C,MAAM,SAAY64C,EAAa74C,MAAM,eAC1G64C,EAAe,YAInBpnB,EAAAA,EAAQ5vB,IAAI,mBAAoBg3C,EAAc,CAAChnC,KAAK,IAAK0lC,QAAS,GAAG,OAAO,EAgB1E3F,EAAgBkH,IAClB,MAAM,SAAEtwC,GAAa+hB,EAAAA,cAMrBouB,EAAgBnwC,GAEhB,MAAMgR,EAAShR,EAAS4pB,OAAM,aAC1Boe,EAAAA,EAAAA,QACIsI,EAGA1xC,OAAO+S,KAAQmxB,4DAAoC9xB,EAAO,UAF1DpS,OAAOoB,SAASsK,KAAUw4B,4DAAoC9xB,EAItE,EAGEi3B,EAAqBqI,IACvB,MAAM,SAAEtwC,GAAa+hB,EAAAA,cAKrBkH,EAAAA,EAAQ5vB,IAAI,UAAW,OAAQ,CAACgQ,KAAK,IAAK0lC,QAAS,GAAG,QAEtDoB,EAAgBnwC,GAEhB,MAAMgR,EAAShR,EAAS4pB,OAAM,aAC1Boe,EAAAA,EAAAA,QACIsI,EAGA1xC,OAAO+S,KAAQmxB,4DAAoC9xB,EAAO,UAF1DpS,OAAOoB,SAASsK,KAAUw4B,4DAAoC9xB,EAItE,EAEEq4B,EAAgBz+B,IAA0B,IAAzB,GAACmP,GAAkBnP,EAMtCqe,EAAAA,EAAQxlB,OAAO,WACfwlB,EAAAA,EAAQxlB,OAAO,qBACfskC,EAAAA,EAAAA,IAAO,CACHlsB,SAAUA,KACH9B,GACCA,KAEAiuB,EAAAA,EAAAA,QACAppC,OAAOoB,SAASsK,KAAUw4B,kDAC9B,GAEN,qCCtFC,SAAS4J,IACd,IAAItL,EAAYxiC,OAAO6wC,aAAa7tC,QAAQ,aAAe,KAE3D,OADAw/B,EAAWA,EAASlrC,QAAQ,KAAK,IAC1BkrC,CACT,CAQO,SAAS6N,EAAmBjuC,GACjC,GAAqB,iBAAVA,EACT,OAAOA,EAAM9K,QAAQ,UAAW,QAAQA,QAAQ,UAAW,OACtD,GAAIpB,MAAMs5C,QAAQptC,GACvB,OAAOA,EAAM+G,KAAIwoC,GAAQtB,EAAmBsB,KACvC,GAAc,OAAVvvC,GAAmC,iBAAVA,EAAoB,CACtD,IAAIwvC,EAAoB,CAAC,EACzB,IAAK,MAAMlzC,KAAO0D,EAChBwvC,EAAclzC,GAAO2xC,EAAmBjuC,EAAM1D,IAEhD,OAAOkzC,CACT,CACA,OAAOxvC,CACT,6FCzBA,SAAS+O,EAAuB0gC,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIC,eAAe,6DAAgE,OAAOD,CAAM,CAErK,SAASvgC,EAAeygC,EAAUC,GAAcD,EAASx5C,UAAYgG,OAAOsL,OAAOmoC,EAAWz5C,WAAYw5C,EAASx5C,UAAUqV,YAAcmkC,EAAUA,EAASxnB,UAAYynB,CAAY,wnBAatL,IAaIC,EA8CAC,EACAC,EACAlY,EACAmY,EAGAC,EAmBAC,EA+0BAC,EAuQJC,EAUMC,EACAC,EACAC,EACAC,EACAC,EACAztB,EAbA0tB,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAOAC,EAiRK3+C,EAAGO,EACRq+C,EAGAC,EA/8CFlV,EAAU,CACZmV,UAAW,IACXC,QAAS,OACTC,eAAgB,EAChBC,MAAO,CACLC,WAAY,KAGZC,EAAY,CACd3R,SAAU,GACV4R,WAAW,EACXpJ,MAAO,GAGLqJ,EAAU,IACVC,EAAW,KACXC,EAAiB,EAAV39C,KAAKs+B,GACZsf,EAAWD,EAAO,EAClBE,EAAQ,EACRjf,EAAQ5+B,KAAK6+B,KACbJ,EAAOz+B,KAAK0+B,IACZH,EAAOv+B,KAAKw+B,IACZsf,EAAY,SAAmBjyC,GACjC,MAAwB,iBAAVA,CAChB,EACIo8B,EAAc,SAAqBp8B,GACrC,MAAwB,mBAAVA,CAChB,EACIizB,EAAY,SAAmBjzB,GACjC,MAAwB,iBAAVA,CAChB,EACIkyC,EAAe,SAAsBlyC,GACvC,YAAwB,IAAVA,CAChB,EACImyC,EAAY,SAAmBnyC,GACjC,MAAwB,iBAAVA,CAChB,EACIoyC,EAAc,SAAqBpyC,GACrC,OAAiB,IAAVA,CACT,EACIm8B,EAAgB,WAClB,MAAyB,oBAAXv+B,MAChB,EACIy0C,EAAkB,SAAyBryC,GAC7C,OAAOo8B,EAAYp8B,IAAUiyC,EAAUjyC,EACzC,EACIsyC,EAAuC,mBAAhBC,aAA8BA,YAAYC,QAAU,WAAa,EAE5FC,EAAW3+C,MAAMs5C,QACbsF,EAAgB,oBAEpBra,GAAU,mCAEVsa,GAAkB,8BACdC,GAAuB,mCAE3BC,GAAU,gBACNC,GAAqB,4BACrBC,GAAW,2BAKXC,GAAW,CAAC,EACZC,GAAgB,CAAC,EAEjBC,GAAW,SAAkBC,GAC/B,OAAQF,GAAgBG,GAAOD,EAAOH,MAAcjb,EACtD,EACIsb,GAAiB,SAAwB9T,EAAUv/B,GACrD,OAAOs3B,QAAQc,KAAK,mBAAoBmH,EAAU,SAAUv/B,EAAO,wCACrE,EACIszC,GAAQ,SAAe7kC,EAAS8kC,GAClC,OAAQA,GAAYjc,QAAQc,KAAK3pB,EACnC,EACI+kC,GAAa,SAAoBlgD,EAAMqI,GACzC,OAAOrI,IAAS0/C,GAAS1/C,GAAQqI,IAAQs3C,KAAkBA,GAAc3/C,GAAQqI,IAAQq3C,EAC3F,EACIS,GAAa,WACf,OAAO,CACT,EACIC,GAAiB,CAAC,EAClBC,GAAc,GACdC,GAAc,CAAC,EAEfC,GAAW,CAAC,EACZC,GAAW,CAAC,EACZC,GAAe,GACfC,GAAkB,GAClBC,GAAiB,GACjBC,GAAW,SAAkBlW,GAC/B,IACImW,EACA1hD,EAFA67B,EAAS0P,EAAQ,GAKrB,GAFAmU,EAAU7jB,IAAW8N,EAAY9N,KAAY0P,EAAU,CAACA,MAElDmW,GAAiB7lB,EAAO8lB,OAAS,CAAC,GAAGC,SAAU,CAInD,IAFA5hD,EAAIuhD,GAAgBngD,OAEbpB,MAAQuhD,GAAgBvhD,GAAG6hD,WAAWhmB,KAE7C6lB,EAAgBH,GAAgBvhD,EAClC,CAIA,IAFAA,EAAIurC,EAAQnqC,OAELpB,KACLurC,EAAQvrC,KAAOurC,EAAQvrC,GAAG2hD,QAAUpW,EAAQvrC,GAAG2hD,MAAQ,IAAIG,GAAQvW,EAAQvrC,GAAI0hD,MAAoBnW,EAAQj2B,OAAOtV,EAAG,GAGvH,OAAOurC,CACT,EACIwW,GAAY,SAAmBlmB,GACjC,OAAOA,EAAO8lB,OAASF,GAAS3mB,GAAQe,IAAS,GAAG8lB,KACtD,EACIK,GAAe,SAAsBnmB,EAAQiR,EAAUvrC,GACzD,OAAQA,EAAIs6B,EAAOiR,KAAcnD,EAAYpoC,GAAKs6B,EAAOiR,KAAc2S,EAAal+C,IAAMs6B,EAAOjT,cAAgBiT,EAAOjT,aAAakkB,IAAavrC,CACpJ,EACI0gD,GAAe,SAAsBC,EAAOv0C,GAC9C,OAAQu0C,EAAQA,EAAMnhD,MAAM,MAAMyG,QAAQmG,IAASu0C,CACrD,EAEAvhB,GAAS,SAAgBpzB,GACvB,OAAO7L,KAAKgF,MAAc,IAAR6G,GAAkB,KAAU,CAChD,EACI40C,GAAoB,SAA2BC,EAAUC,GAK3D,IAHA,IAAI5hD,EAAI4hD,EAAOjhD,OACXpB,EAAI,EAEDoiD,EAAS7sC,QAAQ8sC,EAAOriD,IAAM,KAAOA,EAAIS,IAEhD,OAAOT,EAAIS,CACb,EACI6hD,GAAa,SAAoB3qC,EAAQzC,EAAMgnB,GAEjD,IAGIqmB,EAHAC,EAAWhiB,EAAU7oB,EAAO,IAC5B8qC,GAAaD,EAAW,EAAI,IAAMttC,EAAO,EAAI,EAAI,GACjDw2B,EAAO/zB,EAAO8qC,GAMlB,GAHAD,IAAa9W,EAAK4B,SAAW31B,EAAO,IACpC+zB,EAAKxP,OAASA,EAEVhnB,EAAM,CAGR,IAFAqtC,EAAS7W,EAEFxP,KAAY,oBAAqBqmB,IAEtCA,EAASrmB,EAAOwP,KAAKgX,UAAY,CAAC,EAClCxmB,EAASyjB,EAAYzjB,EAAOwP,KAAKiX,UAAYzmB,EAAOA,OAGtDwP,EAAKkX,gBAAkBjD,EAAY4C,EAAOK,iBAC1C1tC,EAAO,EAAIw2B,EAAKmX,aAAe,EAAInX,EAAKoX,QAAUnrC,EAAO8qC,EAAY,EACvE,CAEA,OAAO/W,CACT,EACIqX,GAAc,WAChB,IAEI/iD,EACAsrC,EAHA7qC,EAAIygD,GAAY9/C,OAChBjB,EAAI+gD,GAAYh7C,MAAM,GAO1B,IAHAi7C,GAAc,CAAC,EACfD,GAAY9/C,OAAS,EAEhBpB,EAAI,EAAGA,EAAIS,EAAGT,KACjBsrC,EAAQnrC,EAAEH,KACDsrC,EAAM0X,QAAU1X,EAAMl+B,OAAOk+B,EAAM0X,MAAM,GAAI1X,EAAM0X,MAAM,IAAI,GAAMA,MAAQ,EAExF,EACIC,GAAkB,SAAyBC,EAAWC,EAAMC,EAAgBC,GAC9EnC,GAAY9/C,QAAU2hD,KACtBG,EAAU91C,OAAO+1C,EAAMC,EAAgBC,GACvCnC,GAAY9/C,QAAU2hD,IACxB,EACIO,GAAqB,SAA4B/1C,GACnD,IAAIzN,EAAIorC,WAAW39B,GACnB,OAAQzN,GAAW,IAANA,KAAayN,EAAQ,IAAIxJ,MAAMs8C,IAAoBj/C,OAAS,EAAItB,EAAI0/C,EAAUjyC,GAASA,EAAM6O,OAAS7O,CACrH,EACIg2C,GAAe,SAAsBphD,GACvC,OAAOA,CACT,EACIqhD,GAAe,SAAsBt6C,EAAKw5C,GAC5C,IAAK,IAAIvgD,KAAKugD,EACZvgD,KAAK+G,IAAQA,EAAI/G,GAAKugD,EAASvgD,IAGjC,OAAO+G,CACT,EACIu6C,GAAuB,SAA8Bv6C,EAAKw5C,GAC5D,IAAK,IAAIvgD,KAAKugD,EACZvgD,KAAK+G,GAAa,aAAN/G,GAA0B,SAANA,IAAiB+G,EAAI/G,GAAKugD,EAASvgD,GAEvE,EACIw+C,GAAS,SAAgB+C,EAAMC,GACjC,IAAK,IAAIxhD,KAAKwhD,EACZD,EAAKvhD,GAAKwhD,EAAQxhD,GAGpB,OAAOuhD,CACT,EACIE,GAAa,SAASA,EAAWF,EAAMC,GACzC,IAAK,IAAIxhD,KAAKwhD,EACN,cAANxhD,GAA2B,gBAANA,GAA6B,cAANA,IAAsBuhD,EAAKvhD,GAAKu9C,EAAUiE,EAAQxhD,IAAMyhD,EAAWF,EAAKvhD,KAAOuhD,EAAKvhD,GAAK,CAAC,GAAIwhD,EAAQxhD,IAAMwhD,EAAQxhD,IAGlK,OAAOuhD,CACT,EACIG,GAAiB,SAAwB36C,EAAK46C,GAChD,IACI3hD,EADA4hD,EAAO,CAAC,EAGZ,IAAK5hD,KAAK+G,EACR/G,KAAK2hD,IAAcC,EAAK5hD,GAAK+G,EAAI/G,IAGnC,OAAO4hD,CACT,EACIC,GAAmB,SAA0BtY,GAC/C,IAAIxP,EAASwP,EAAKxP,QAAUmhB,EACxB1vC,EAAO+9B,EAAKuY,UAAYR,GAAuBD,GAEnD,GAAI7D,EAAYjU,EAAKiX,SACnB,KAAOzmB,GACLvuB,EAAK+9B,EAAMxP,EAAOwP,KAAKgX,UACvBxmB,EAASA,EAAOA,QAAUA,EAAOgoB,IAIrC,OAAOxY,CACT,EA+CIyY,GAAwB,SAA+BjoB,EAAQyV,EAAOyS,EAAWC,QACjE,IAAdD,IACFA,EAAY,eAGG,IAAbC,IACFA,EAAW,SAGb,IAAIC,EAAO3S,EAAM4S,MACb5vC,EAAOg9B,EAAMjF,MAEb4X,EACFA,EAAK5X,MAAQ/3B,EACJunB,EAAOkoB,KAAezS,IAC/BzV,EAAOkoB,GAAazvC,GAGlBA,EACFA,EAAK4vC,MAAQD,EACJpoB,EAAOmoB,KAAc1S,IAC9BzV,EAAOmoB,GAAYC,GAGrB3S,EAAMjF,MAAQiF,EAAM4S,MAAQ5S,EAAMzV,OAAS,IAC7C,EACIsoB,GAAoB,SAA2B7S,EAAO8S,GACxD9S,EAAMzV,UAAYuoB,GAA6B9S,EAAMzV,OAAOwoB,qBAAuB/S,EAAMzV,OAAOlsB,OAAO2hC,GACvGA,EAAMgT,KAAO,CACf,EACIC,GAAW,SAAkB1B,EAAWvR,GAC1C,GAAIuR,KAAevR,GAASA,EAAMkT,KAAO3B,EAAU4B,MAAQnT,EAAMoT,OAAS,GAIxE,IAFA,IAAI5kD,EAAI+iD,EAED/iD,GACLA,EAAE+oC,OAAS,EACX/oC,EAAIA,EAAE+7B,OAIV,OAAOgnB,CACT,EAaI8B,GAAwB,SAASA,EAAsB9B,GACzD,OAAQA,GAAaA,EAAU+B,KAAOD,EAAsB9B,EAAUhnB,OACxE,EACIgpB,GAAwB,SAA+BhC,GACzD,OAAOA,EAAUiC,QAAUC,GAAgBlC,EAAUmC,OAAQnC,EAAYA,EAAU5V,WAAa4V,EAAUoC,SAAWpC,EAAY,CACnI,EAEAkC,GAAkB,SAAyBG,EAAOC,GAChD,IAAIC,EAAQ/jD,KAAKE,MAAM2jD,GAASC,GAChC,OAAOD,GAASE,IAAUF,EAAQE,EAAQ,EAAIA,CAChD,EACIC,GAA0B,SAAiCC,EAAYhU,GACzE,OAAQgU,EAAahU,EAAMoT,QAAUpT,EAAMsT,KAAOtT,EAAMsT,KAAO,EAAI,EAAItT,EAAMzI,OAASyI,EAAMiU,gBAAkBjU,EAAMkU,MACtH,EACIC,GAAU,SAAiB5C,GAC7B,OAAOA,EAAU2B,KAAOlkB,GAAOuiB,EAAU6B,QAAU7B,EAAU2C,MAAQnkD,KAAKC,IAAIuhD,EAAU+B,KAAO/B,EAAU6C,MAAQ3G,IAAa,GAChI,EACI4G,GAAiB,SAAwB9C,EAAW+C,GAEtD,IAAI/pB,EAASgnB,EAAUgB,IAUvB,OARIhoB,GAAUA,EAAOgqB,mBAAqBhD,EAAU+B,MAClD/B,EAAU6B,OAASpkB,GAAOzE,EAAOiqB,OAASjD,EAAU+B,IAAM,EAAIgB,EAAY/C,EAAU+B,MAAQ/B,EAAUha,OAASga,EAAU0C,gBAAkB1C,EAAU2C,OAASI,IAAc/C,EAAU+B,MAEtLa,GAAQ5C,GAERhnB,EAAOgN,QAAU0b,GAAS1oB,EAAQgnB,IAG7BA,CACT,EAYAkD,GAAiB,SAAwBjQ,EAAUxE,GACjD,IAAI/xC,EAYJ,IAVI+xC,EAAMwU,OAASxU,EAAM0U,WAAa1U,EAAMmT,QAE1CllD,EAAI8lD,GAAwBvP,EAASmQ,UAAW3U,KAE3CA,EAAMmT,MAAQyB,GAAO,EAAG5U,EAAMiU,gBAAiBhmD,GAAK+xC,EAAM0T,OAASjG,IACtEzN,EAAMvkC,OAAOxN,GAAG,IAKhBglD,GAASzO,EAAUxE,GAAOuS,KAAO/N,EAASkQ,UAAYlQ,EAASgQ,OAAShQ,EAAS2O,MAAQ3O,EAAS8O,IAAK,CAEzG,GAAI9O,EAAS2O,KAAO3O,EAAS7I,WAG3B,IAFA1tC,EAAIu2C,EAEGv2C,EAAEskD,KACPtkD,EAAE0mD,WAAa,GAAK1mD,EAAEqmD,UAAUrmD,EAAEylD,QAElCzlD,EAAIA,EAAEskD,IAIV/N,EAASqQ,QAAS,IACpB,CACF,EACIC,GAAiB,SAAwBtQ,EAAUxE,EAAOlmC,EAAUi7C,GAStE,OARA/U,EAAMzV,QAAUsoB,GAAkB7S,GAClCA,EAAMoT,OAASpkB,GAAOl1B,EAAWkmC,EAAMgV,QACvChV,EAAMkT,KAAOlkB,GAAOgR,EAAMoT,QAAUpT,EAAMiU,gBAAkBlkD,KAAKC,IAAIgwC,EAAMiV,cAAgB,IAtKpE,SAA4B1qB,EAAQyV,EAAOyS,EAAWC,EAAUwC,QACrE,IAAdzC,IACFA,EAAY,eAGG,IAAbC,IACFA,EAAW,SAGb,IACIzkD,EADA0kD,EAAOpoB,EAAOmoB,GAGlB,GAAIwC,EAGF,IAFAjnD,EAAI+xC,EAAMkV,GAEHvC,GAAQA,EAAKuC,GAAUjnD,GAC5B0kD,EAAOA,EAAKC,MAIZD,GACF3S,EAAMjF,MAAQ4X,EAAK5X,MACnB4X,EAAK5X,MAAQiF,IAEbA,EAAMjF,MAAQxQ,EAAOkoB,GACrBloB,EAAOkoB,GAAazS,GAGlBA,EAAMjF,MACRiF,EAAMjF,MAAM6X,MAAQ5S,EAEpBzV,EAAOmoB,GAAY1S,EAGrBA,EAAM4S,MAAQD,EACd3S,EAAMzV,OAASyV,EAAMuS,IAAMhoB,CAE7B,CAmIE4qB,CAAmB3Q,EAAUxE,EAAO,SAAU,QAASwE,EAAS4Q,MAAQ,SAAW,GAEnF5Q,EAAS6Q,QAAUrV,EACnB+U,GAAcN,GAAejQ,EAAUxE,GAChCwE,CACT,EACI8Q,GAAiB,SAAwB/D,EAAWgE,GACtD,OAAQ3G,GAAS4G,eAAiBvG,GAAe,gBAAiBsG,KAAa3G,GAAS4G,cAAcnyC,OAAOkyC,EAAShE,EACxH,EACIkE,GAAoB,SAA2B9b,EAAO2a,EAAW5C,EAAOD,GAG1E,OAFAiE,GAAW/b,EAAO2a,GAEb3a,EAAM+a,UAINhD,GAAS/X,EAAMmB,MAAQnB,EAAMwZ,OAA4B,IAApBxZ,EAAMI,KAAK4b,OAAmBhc,EAAMwZ,MAAQxZ,EAAMI,KAAK4b,OAAS7J,IAAuB8J,GAAQC,OACvItG,GAAY9rC,KAAKk2B,GAEjBA,EAAM0X,MAAQ,CAACiD,EAAW7C,GACnB,QAJT,EAHS,CASX,EACIqE,GAA+B,SAASA,EAA6BtwC,GACvE,IAAI+kB,EAAS/kB,EAAK+kB,OAClB,OAAOA,GAAUA,EAAO+oB,KAAO/oB,EAAOmqB,WAAanqB,EAAOwrB,QAAUxrB,EAAOoqB,UAAY,GAAKmB,EAA6BvrB,GAC3H,EAyFIyrB,GAAe,SAAsBzE,EAAW5V,EAAUsa,EAAaC,GACzE,IAAIC,EAAS5E,EAAUiC,QACnB4C,EAAMpnB,GAAO2M,IAAa,EAC1B0a,EAAgB9E,EAAUmC,OAASnC,EAAU2C,MAMjD,OALAmC,IAAkBH,IAAkB3E,EAAUiD,OAAS4B,EAAM7E,EAAU4B,MACvE5B,EAAU4B,KAAOiD,EACjB7E,EAAU2C,MAASiC,EAAeA,EAAS,EAAI,KAAOnnB,GAAOonB,GAAOD,EAAS,GAAK5E,EAAUoC,QAAUwC,GAA1EC,EAC5BC,IAAkBH,EAAgB7B,GAAe9C,EAAWA,EAAUmC,OAASnC,EAAU2C,MAAQmC,GAAiB9E,EAAUhnB,QAAU4pB,GAAQ5C,GAC9I0E,GAAehD,GAAS1B,EAAUhnB,OAAQgnB,GACnCA,CACT,EACI+E,GAAyB,SAAgC/E,GAC3D,OAAOA,aAAqBgF,GAAWtD,GAAS1B,GAAayE,GAAazE,EAAWA,EAAU4B,KACjG,EACIqD,GAAgB,CAClBpD,OAAQ,EACRqD,QAASpH,IAEPqH,GAAiB,SAASA,EAAenF,EAAWz3C,GACtD,IAIAzL,EACIirC,EALAqd,EAASpF,EAAUoF,OACnBC,EAASrF,EAAU8D,SAAWmB,GAC9BK,EAAkBtF,EAAU5V,YAAc6R,EAAUoJ,EAAOH,SAAQ,GAASlF,EAAU4B,KAK1F,OAAItF,EAAU/zC,KAAc2pB,MAAM3pB,IAAaA,KAAY68C,GAI/C,OAFVtoD,EAAIyL,EAASqK,OAAO,KAEG,MAAN9V,GACD,MAANA,EAAYuoD,EAAOxD,OAASwD,EAAOH,QAAQG,EAAOpD,SAAW,KAAOja,WAAWz/B,EAASqrB,OAAO,KAAO,IAGhH92B,EAAIyL,EAAS8J,QAAQ,MAEb,GACN9J,KAAY68C,IAAWA,EAAO78C,GAAY+8C,GACnCF,EAAO78C,KAGhBw/B,IAAWx/B,EAASqK,OAAO9V,EAAI,GAAKyL,EAASqrB,OAAO92B,EAAI,IACjDA,EAAI,EAAIqoD,EAAenF,EAAWz3C,EAASqrB,OAAO,EAAG92B,EAAI,IAAMirC,EAASud,EAAkBvd,GAGhF,MAAZx/B,EAAmB+8C,GAAmB/8C,CAC/C,EACIg9C,GAAqB,SAA4Bl7C,EAAOI,GAC1D,OAAOJ,GAAmB,IAAVA,EAAcI,EAAKJ,GAASI,CAC9C,EACI44C,GAAS,SAAgBjgD,EAAKkxB,EAAKjqB,GACrC,OAAOA,EAAQjH,EAAMA,EAAMiH,EAAQiqB,EAAMA,EAAMjqB,CACjD,EACIm7C,GAAU,SAAiBn7C,GAC7B,GAAqB,iBAAVA,EACT,MAAO,GAGT,IAAIhM,EAAI++C,GAAS7oB,KAAKlqB,GAEtB,OAAOhM,EAAIgM,EAAMupB,OAAOv1B,EAAE0kB,MAAQ1kB,EAAE,GAAGH,QAAU,EACnD,EAOIunD,GAAS,GAAGziD,MACZ0iD,GAAe,SAAsBr7C,EAAOs7C,GAC9C,OAAOt7C,GAASmyC,EAAUnyC,IAAU,WAAYA,KAAWs7C,IAAat7C,EAAMnM,QAAUmM,EAAMnM,OAAS,KAAKmM,GAASmyC,EAAUnyC,EAAM,OAASA,EAAMgd,UAAYhd,IAAU+vC,CAC5K,EACIwL,GAAW,SAAkBC,EAAIC,EAAcC,GAKjD,YAJoB,IAAhBA,IACFA,EAAc,IAGTF,EAAGvhD,SAAQ,SAAU+F,GAC1B,IAAI27C,EAEJ,OAAO1J,EAAUjyC,KAAWy7C,GAAgBJ,GAAar7C,EAAO,IAAM27C,EAAeD,GAAa7zC,KAAKnP,MAAMijD,EAAcpuB,GAAQvtB,IAAU07C,EAAY7zC,KAAK7H,EAChK,KAAM07C,CACR,EAEAnuB,GAAU,SAAiBvtB,EAAOy7C,GAChC,OAAOxJ,EAAUjyC,IAAWy7C,IAAiB5jB,GAAiB+jB,KAA0DnJ,EAASzyC,GAASu7C,GAASv7C,EAAOy7C,GAAgBJ,GAAar7C,GAASo7C,GAAO5+C,KAAKwD,EAAO,GAAKA,EAAQ,CAACA,GAAS,GAAjKo7C,GAAO5+C,KAAKwzC,EAAKryB,iBAAiB3d,GAAQ,EACrH,EACI67C,GAAU,SAAiBjpD,GAC7B,OAAOA,EAAE23B,MAAK,WACZ,MAAO,GAAKp2B,KAAKm1C,QACnB,GACF,EAGAwS,GAAa,SAAoB9nD,GAC/B,GAAIooC,EAAYpoC,GACd,OAAOA,EAGT,IAAImqC,EAAOgU,EAAUn+C,GAAKA,EAAI,CAC5B+nD,KAAM/nD,GAGRinC,EAAO+gB,GAAW7d,EAAKlD,MACnBxlB,EAAO0oB,EAAK1oB,MAAQ,EACpB0gC,EAAOxY,WAAWQ,EAAKgY,OAAS,EAChCr6C,EAAQ,CAAC,EACTmgD,EAAYxmC,EAAO,GAAKA,EAAO,EAC/BymC,EAASr0B,MAAMpS,IAASwmC,EACxB3f,EAAO6B,EAAK7B,KACZ6f,EAAS1mC,EACT2mC,EAAS3mC,EAab,OAXIw8B,EAAUx8B,GACZ0mC,EAASC,EAAS,CAChBC,OAAQ,GACRC,MAAO,GACPC,IAAK,GACL9mC,IAAS,GACDwmC,GAAaC,IACvBC,EAAS1mC,EAAK,GACd2mC,EAAS3mC,EAAK,IAGT,SAAUhjB,EAAG67B,EAAQ17B,GAC1B,IAEI4pD,EACA7hB,EACA7kC,EACA1C,EACAH,EACA+2B,EACAC,EACAlxB,EACA0jD,EAVAvpD,GAAKN,GAAKurC,GAAMtqC,OAChB6oD,EAAY5gD,EAAM5I,GAWtB,IAAKwpD,EAAW,CAGd,KAFAD,EAAuB,SAAdte,EAAKwe,KAAkB,GAAKxe,EAAKwe,MAAQ,CAAC,EAAG/K,IAAU,IAEnD,CAGX,IAFA3nB,GAAO2nB,EAEA3nB,GAAOA,EAAMr3B,EAAE6pD,KAAU3f,wBAAwBM,OAASqf,EAASvpD,IAE1EupD,GACF,CAQA,IANAC,EAAY5gD,EAAM5I,GAAK,GACvBspD,EAAUN,EAAS/nD,KAAK4E,IAAI0jD,EAAQvpD,GAAKipD,EAAS,GAAK1mC,EAAOgnC,EAC9D9hB,EAAUuhB,EAAShpD,EAAIkpD,EAASK,EAAS,GAAKhnC,EAAOgnC,EAAS,EAC9DxyB,EAAM,EACNlxB,EAAM64C,EAED5nB,EAAI,EAAGA,EAAI92B,EAAG82B,IACjBl0B,EAAIk0B,EAAIyyB,EAASD,EACjBppD,EAAIunC,GAAW3Q,EAAIyyB,EAAS,GAC5BC,EAAU1yB,GAAK/2B,EAAKqpC,EAA8BnoC,KAAKC,IAAa,MAATkoC,EAAelpC,EAAI0C,GAAnDi9B,EAAMj9B,EAAIA,EAAI1C,EAAIA,GAC7CH,EAAIg3B,IAAQA,EAAMh3B,GAClBA,EAAI8F,IAAQA,EAAM9F,GAGX,WAATwiB,GAAqBomC,GAAQa,GAC7BA,EAAUzyB,IAAMA,EAAMlxB,EACtB2jD,EAAU3jD,IAAMA,EAChB2jD,EAAU1oD,EAAId,GAAKyqC,WAAWQ,EAAKye,SAAWjf,WAAWQ,EAAK4d,OAASU,EAASvpD,EAAIA,EAAI,EAAKopC,EAA+C,MAATA,EAAeppC,EAAIupD,EAASA,EAA3DtoD,KAAK81B,IAAIwyB,EAAQvpD,EAAIupD,KAAiD,IAAe,UAAThnC,GAAoB,EAAI,GACxMinC,EAAUjnD,EAAIvC,EAAI,EAAIijD,EAAOjjD,EAAIijD,EACjCuG,EAAU/pD,EAAIwoD,GAAQhd,EAAKye,QAAUze,EAAK4d,OAAS,EAEnD9gB,EAAOA,GAAQ/nC,EAAI,EAAI2pD,GAAY5hB,GAAQA,CAC7C,CAGA,OADA/nC,GAAKwpD,EAAUjqD,GAAKiqD,EAAU3jD,KAAO2jD,EAAUzyB,KAAO,EAC/CmJ,GAAOspB,EAAUjnD,GAAKwlC,EAAOA,EAAK/nC,GAAKA,GAAKwpD,EAAU1oD,GAAK0oD,EAAU/pD,CAC9E,CACF,EACImqD,GAAiB,SAAwB9oD,GAE3C,IAAIY,EAAIZ,EAAI,EAAIG,KAAK4oD,IAAI,IAAK/oD,EAAI,IAAIH,OAAS,GAAK,EAEpD,OAAO,SAAUmpD,GACf,IAAIzqD,EAAI4B,KAAKgF,MAAMwkC,WAAWqf,GAAOhpD,GAAKA,EAAIY,EAC9C,OAAQrC,EAAIA,EAAI,GAAKqC,GAAKq+B,EAAU+pB,GAAO,EAAI7B,GAAQ6B,GACzD,CACF,EACIC,GAAO,SAAcC,EAAQl9C,GAC/B,IACIm9C,EACAC,EAFAhQ,EAAUqF,EAASyK,GAkBvB,OAdK9P,GAAW+E,EAAU+K,KACxBC,EAAS/P,EAAU8P,EAAOC,QAAUvL,EAEhCsL,EAAOxnC,QACTwnC,EAAS3vB,GAAQ2vB,EAAOxnC,SAEpB0nC,GAAQnqB,EAAUiqB,EAAO,OAC3BC,GAAUA,IAGZD,EAASJ,GAAeI,EAAOG,YAI5BnC,GAAmBl7C,EAAQotC,EAAmChR,EAAY8gB,GAAU,SAAUF,GAEnG,OADAI,EAAOF,EAAOF,GACP7oD,KAAKC,IAAIgpD,EAAOJ,IAAQG,EAASC,EAAOJ,CACjD,EAAI,SAAUA,GASZ,IARA,IAKIrjB,EACAC,EANA9jC,EAAI6nC,WAAWyf,EAAOJ,EAAIlnD,EAAIknD,GAC9B5pD,EAAIuqC,WAAWyf,EAAOJ,EAAI5pD,EAAI,GAC9B2F,EAAM64C,EACNtX,EAAU,EACV7nC,EAAIyqD,EAAOrpD,OAIRpB,MAIHknC,EAHEyjB,GACFzjB,EAAKujB,EAAOzqD,GAAGqD,EAAIA,GAET6jC,GADVC,EAAKsjB,EAAOzqD,GAAGW,EAAIA,GACCwmC,EAEfzlC,KAAKC,IAAI8oD,EAAOzqD,GAAKqD,IAGnBiD,IACPA,EAAM4gC,EACNW,EAAU7nC,GAKd,OADA6nC,GAAW6iB,GAAUpkD,GAAOokD,EAASD,EAAO5iB,GAAW0iB,EAChDI,GAAQ9iB,IAAY0iB,GAAO/pB,EAAU+pB,GAAO1iB,EAAUA,EAAU6gB,GAAQ6B,EACjF,EA7B4CF,GAAeI,GA8B7D,EACI5T,GAAS,SAAgBvwC,EAAKkxB,EAAKqzB,EAAmBC,GACxD,OAAOrC,GAAmBzI,EAAS15C,IAAQkxB,GAA4B,IAAtBqzB,KAAgCA,EAAoB,IAAMC,GAAgB,WACzH,OAAO9K,EAAS15C,GAAOA,KAAO5E,KAAKm1C,SAAWvwC,EAAIlF,UAAYypD,EAAoBA,GAAqB,QAAUC,EAAiBD,EAAoB,EAAInpD,KAAK4oD,IAAI,IAAKO,EAAoB,IAAIzpD,OAAS,GAAK,IAAMM,KAAKE,MAAMF,KAAKgF,OAAOJ,EAAMukD,EAAoB,EAAInpD,KAAKm1C,UAAYrf,EAAMlxB,EAA0B,IAApBukD,IAA4BA,GAAqBA,EAAoBC,GAAkBA,CAC/X,GACF,EAoBIC,GAAa,SAAoB5qD,EAAG6qD,EAASz9C,GAC/C,OAAOk7C,GAAmBl7C,GAAO,SAAU0Y,GACzC,OAAO9lB,IAAI6qD,EAAQ/kC,GACrB,GACF,EAgBIglC,GAAiB,SAAwB19C,GAS3C,IAPA,IAEIvN,EACAkrD,EACApB,EACAnP,EALA2J,EAAO,EACPrkD,EAAI,KAMCD,EAAIuN,EAAMgI,QAAQ,UAAW+uC,KACpCwF,EAAMv8C,EAAMgI,QAAQ,IAAKvV,GACzB26C,EAAkC,MAAxBptC,EAAMuI,OAAO9V,EAAI,GAC3BkrD,EAAO39C,EAAMupB,OAAO92B,EAAI,EAAG8pD,EAAM9pD,EAAI,GAAG+D,MAAM42C,EAAU0F,GAAqBJ,GAC7EhgD,GAAKsN,EAAMupB,OAAOwtB,EAAMtkD,EAAIskD,GAAQzN,GAAO8D,EAAUuQ,GAAQA,EAAK,GAAIvQ,EAAU,GAAKuQ,EAAK,IAAKA,EAAK,IAAM,MAC1G5G,EAAOwF,EAAM,EAGf,OAAO7pD,EAAIsN,EAAMupB,OAAOwtB,EAAM/2C,EAAMnM,OAASkjD,EAC/C,EACI6G,GAAW,SAAkBC,EAAOC,EAAOC,EAAQC,EAAQh+C,GAC7D,IAAIi+C,EAAUH,EAAQD,EAClBK,EAAWF,EAASD,EACxB,OAAO7C,GAAmBl7C,GAAO,SAAUA,GACzC,OAAO+9C,IAAW/9C,EAAQ69C,GAASI,EAAUC,GAAY,EAC3D,GACF,EA2DIC,GAAuB,SAA8BvV,EAAUwV,EAAUC,GAE3E,IAEIzpD,EACA0pD,EACA3c,EAJAoZ,EAASnS,EAASmS,OAClBhiD,EAAM64C,EAKV,IAAKh9C,KAAKmmD,GACRuD,EAAWvD,EAAOnmD,GAAKwpD,GAER,KAAQC,GAAYC,GAAYvlD,GAAOulD,EAAWnqD,KAAKC,IAAIkqD,MACxE3c,EAAQ/sC,EACRmE,EAAMulD,GAIV,OAAO3c,CACT,EACI4c,GAAY,SAAmB5I,EAAWhuC,EAAM62C,GAClD,IAEIp0C,EACA+oC,EAHAn/C,EAAI2hD,EAAUxX,KACdtjB,EAAW7mB,EAAE2T,GAIjB,GAAKkT,EAQL,OAJAzQ,EAASpW,EAAE2T,EAAO,UAClBwrC,EAAQn/C,EAAEyqD,eAAiB9I,EAC3B6I,GAAoB7K,GAAY9/C,QAAU2hD,KAEnCprC,EAASyQ,EAASniB,MAAMy6C,EAAO/oC,GAAUyQ,EAASre,KAAK22C,EAChE,EACIuL,GAAa,SAAoB/I,GAKnC,OAJAsB,GAAkBtB,GAElBA,EAAUgJ,eAAiBhJ,EAAUgJ,cAAcvf,MAAK,GACxDuW,EAAUiJ,WAAa,GAAKL,GAAU5I,EAAW,eAC1CA,CACT,EA6DAkJ,GAAO,IACHC,GAAe,CACjBC,KAAM,CAAC,EAAGF,GAAMA,IAChBG,KAAM,CAAC,EAAGH,GAAM,GAChBI,OAAQ,CAAC,IAAK,IAAK,KACnBC,MAAO,CAAC,EAAG,EAAG,GACdC,OAAQ,CAAC,IAAK,EAAG,GACjBC,KAAM,CAAC,EAAG,IAAK,KACfC,KAAM,CAAC,EAAG,EAAGR,IACbS,KAAM,CAAC,EAAG,EAAG,KACbC,MAAO,CAACV,GAAMA,GAAMA,IACpBW,MAAO,CAAC,IAAK,IAAK,GAClBC,OAAQ,CAACZ,GAAMA,GAAM,GACrBa,OAAQ,CAACb,GAAM,IAAK,GACpBc,KAAM,CAAC,IAAK,IAAK,KACjBC,OAAQ,CAAC,IAAK,EAAG,KACjBC,MAAO,CAAC,EAAG,IAAK,GAChBC,IAAK,CAACjB,GAAM,EAAG,GACfkB,KAAM,CAAClB,GAAM,IAAK,KAClBmB,KAAM,CAAC,EAAGnB,GAAMA,IAChBoB,YAAa,CAACpB,GAAMA,GAAMA,GAAM,IAE9BqB,GAAO,SAAcltD,EAAGmtD,EAAIC,GAE9B,OAAY,GADZptD,EAAIA,EAAI,EAAIA,EAAI,EAAIA,EAAI,EAAIA,EAAI,EAAIA,GACpB,EAAImtD,GAAMC,EAAKD,GAAMntD,EAAI,EAAIA,EAAI,GAAKotD,EAAS,EAAJptD,EAAQ,EAAImtD,GAAMC,EAAKD,IAAO,EAAI,EAAIntD,GAAK,EAAImtD,GAAMtB,GAAO,GAAK,CAC9H,EACIwB,GAAa,SAAoBrsD,EAAGssD,EAAOC,GAC7C,IACI/tD,EACA2C,EACAM,EACAzC,EACAN,EACAQ,EACA+2B,EACAlxB,EACA9F,EACAutD,EAVA5tD,EAAKoB,EAAyBi/B,EAAUj/B,GAAK,CAACA,GAAK,GAAIA,GAAK,EAAI6qD,GAAM7qD,EAAI6qD,IAAQ,EAAzEC,GAAaI,MAY1B,IAAKtsD,EAAG,CAMN,GALqB,MAAjBoB,EAAEu1B,QAAQ,KAEZv1B,EAAIA,EAAEu1B,OAAO,EAAGv1B,EAAEH,OAAS,IAGzBirD,GAAa9qD,GACfpB,EAAIksD,GAAa9qD,QACZ,GAAoB,MAAhBA,EAAEuU,OAAO,GAAY,CAS9B,GARIvU,EAAEH,OAAS,IAEbrB,EAAIwB,EAAEuU,OAAO,GACbpT,EAAInB,EAAEuU,OAAO,GACb9S,EAAIzB,EAAEuU,OAAO,GACbvU,EAAI,IAAMxB,EAAIA,EAAI2C,EAAIA,EAAIM,EAAIA,GAAkB,IAAbzB,EAAEH,OAAeG,EAAEuU,OAAO,GAAKvU,EAAEuU,OAAO,GAAK,KAGjE,IAAbvU,EAAEH,OAGJ,MAAO,EADPjB,EAAI6tD,SAASzsD,EAAEu1B,OAAO,EAAG,GAAI,MAChB,GAAI32B,GAAK,EAAIisD,GAAMjsD,EAAIisD,GAAM4B,SAASzsD,EAAEu1B,OAAO,GAAI,IAAM,KAIxE32B,EAAI,EADJoB,EAAIysD,SAASzsD,EAAEu1B,OAAO,GAAI,MAChB,GAAIv1B,GAAK,EAAI6qD,GAAM7qD,EAAI6qD,GACnC,MAAO,GAAuB,QAAnB7qD,EAAEu1B,OAAO,EAAG,GAGrB,GAFA32B,EAAI4tD,EAASxsD,EAAEwC,MAAMk8C,GAEhB4N,GAWE,IAAKtsD,EAAEgU,QAAQ,KAIpB,OAFApV,EAAIoB,EAAEwC,MAAM6hC,IACZkoB,GAAc3tD,EAAEiB,OAAS,IAAMjB,EAAE,GAAK,GAC/BA,OAdPI,GAAKJ,EAAE,GAAK,IAAM,IAClBF,GAAKE,EAAE,GAAK,IAGZJ,EAAQ,GAFRU,GAAKN,EAAE,GAAK,MACZuC,EAAIjC,GAAK,GAAKA,GAAKR,EAAI,GAAKQ,EAAIR,EAAIQ,EAAIR,GAExCE,EAAEiB,OAAS,IAAMjB,EAAE,IAAM,GAEzBA,EAAE,GAAKstD,GAAKltD,EAAI,EAAI,EAAGR,EAAG2C,GAC1BvC,EAAE,GAAKstD,GAAKltD,EAAGR,EAAG2C,GAClBvC,EAAE,GAAKstD,GAAKltD,EAAI,EAAI,EAAGR,EAAG2C,QAQ5BvC,EAAIoB,EAAEwC,MAAMk8C,IAAkBoM,GAAamB,YAG7CrtD,EAAIA,EAAEmU,IAAI7N,OACZ,CAyBA,OAvBIonD,IAAUE,IACZhuD,EAAII,EAAE,GAAKisD,GACX1pD,EAAIvC,EAAE,GAAKisD,GACXppD,EAAI7C,EAAE,GAAKisD,GAGX3rD,IAFA+2B,EAAM91B,KAAK81B,IAAIz3B,EAAG2C,EAAGM,KACrBsD,EAAM5E,KAAK4E,IAAIvG,EAAG2C,EAAGM,KACH,EAEdw0B,IAAQlxB,EACV/F,EAAIN,EAAI,GAERO,EAAIg3B,EAAMlxB,EACVrG,EAAIQ,EAAI,GAAMD,GAAK,EAAIg3B,EAAMlxB,GAAO9F,GAAKg3B,EAAMlxB,GAC/C/F,EAAIi3B,IAAQz3B,GAAK2C,EAAIM,GAAKxC,GAAKkC,EAAIM,EAAI,EAAI,GAAKw0B,IAAQ90B,GAAKM,EAAIjD,GAAKS,EAAI,GAAKT,EAAI2C,GAAKlC,EAAI,EAC5FD,GAAK,IAGPJ,EAAE,MAAQI,EAAI,IACdJ,EAAE,MAAY,IAAJF,EAAU,IACpBE,EAAE,MAAY,IAAJM,EAAU,KAGtBqtD,GAAc3tD,EAAEiB,OAAS,IAAMjB,EAAE,GAAK,GAC/BA,CACT,EACI8tD,GAAkB,SAAyB1sD,GAE7C,IAAI0hB,EAAS,GACT5iB,EAAI,GACJL,GAAK,EAOT,OANAuB,EAAER,MAAMmtD,IAAW1mD,SAAQ,SAAUjG,GACnC,IAAIpB,EAAIoB,EAAEwC,MAAMm8C,KAAoB,GACpCj9B,EAAO7N,KAAKnP,MAAMgd,EAAQ9iB,GAC1BE,EAAE+U,KAAKpV,GAAKG,EAAEiB,OAAS,EACzB,IACA6hB,EAAO5iB,EAAIA,EACJ4iB,CACT,EACIkrC,GAAgB,SAAuBluD,EAAG4tD,EAAOO,GACnD,IAII/tD,EACAguD,EACA7tD,EACAC,EAPA8T,EAAS,GACT+5C,GAAUruD,EAAIsU,GAAQxQ,MAAMmqD,IAC5Bh5C,EAAO24C,EAAQ,QAAU,QACzB7tD,EAAI,EAMR,IAAKsuD,EACH,OAAOruD,EAOT,GAJAquD,EAASA,EAAOh6C,KAAI,SAAUi6C,GAC5B,OAAQA,EAAQX,GAAWW,EAAOV,EAAO,KAAO34C,GAAQ24C,EAAQU,EAAM,GAAK,IAAMA,EAAM,GAAK,KAAOA,EAAM,GAAK,KAAOA,EAAM,GAAKA,EAAMjtD,KAAK,MAAQ,GACrJ,IAEI8sD,IACF5tD,EAAIytD,GAAgBhuD,IACpBI,EAAI+tD,EAAe/tD,GAEbiB,KAAKiT,KAAY/T,EAAEH,EAAEiB,KAAKiT,IAI9B,IAFA9T,GADA4tD,EAAQpuD,EAAEwC,QAAQyrD,GAAW,KAAKntD,MAAMm/C,KAC9B9+C,OAAS,EAEZpB,EAAIS,EAAGT,IACZuU,GAAU85C,EAAMruD,KAAOK,EAAEkV,QAAQvV,GAAKsuD,EAAOE,SAAWt5C,EAAO,YAAc1U,EAAEY,OAASZ,EAAI8tD,EAAOltD,OAASktD,EAASF,GAAgBI,SAK3I,IAAKH,EAIH,IAFA5tD,GADA4tD,EAAQpuD,EAAEc,MAAMmtD,KACN9sD,OAAS,EAEZpB,EAAIS,EAAGT,IACZuU,GAAU85C,EAAMruD,GAAKsuD,EAAOtuD,GAIhC,OAAOuU,EAAS85C,EAAM5tD,EACxB,EACIytD,GAAY,WACd,IAEA/rD,EAFIlC,EAAI,yEAIR,IAAKkC,KAAKkqD,GACRpsD,GAAK,IAAMkC,EAAI,MAGjB,OAAO,IAAIs6B,OAAOx8B,EAAI,IAAK,KAC7B,CAVgB,GAWZwuD,GAAU,YACVC,GAAqB,SAA4BvuD,GACnD,IACI0tD,EADAc,EAAWxuD,EAAEmB,KAAK,KAItB,GAFA4sD,GAAUU,UAAY,EAElBV,GAAUpqD,KAAK6qD,GAKjB,OAJAd,EAAQY,GAAQ3qD,KAAK6qD,GACrBxuD,EAAE,GAAKguD,GAAchuD,EAAE,GAAI0tD,GAC3B1tD,EAAE,GAAKguD,GAAchuD,EAAE,GAAI0tD,EAAOI,GAAgB9tD,EAAE,MAE7C,CAEX,EAQIonD,IACEtJ,EAAWr6C,KAAKgzB,IAChBsnB,EAAgB,IAChBC,EAAe,GACfC,EAAaH,IACbI,EAAcD,EAEdG,EADAD,EAAO,IAAO,IASdG,EAAQ,SAASA,EAAMl9C,GACzB,IAEIstD,EACAC,EACA3L,EACAqE,EALAuH,EAAU9Q,IAAaI,EACvB2Q,GAAe,IAANztD,EAqBb,GAfAwtD,EAAU7Q,IAAkBE,GAAc2Q,EAAU5Q,KAGpD0Q,GADA1L,GADA9E,GAAe0Q,GACM3Q,GACJG,GAEH,GAAKyQ,KACjBxH,IAAUzJ,EAAMyJ,MAChBxJ,EAASmF,EAAoB,IAAbpF,EAAMoF,KACtBpF,EAAMoF,KAAOA,GAAc,IAC3B5E,GAAasQ,GAAWA,GAAWvQ,EAAO,EAAIA,EAAOuQ,GACrDC,EAAW,GAGbE,IAAWpR,EAAMC,EAAKY,IAElBqQ,EACF,IAAKv+B,EAAK,EAAGA,EAAKiuB,EAAWp9C,OAAQmvB,IAEnCiuB,EAAWjuB,GAAI4yB,EAAMnF,EAAQwJ,EAAOjmD,EAG1C,EAEAw8C,EAAQ,CACNoF,KAAM,EACNqE,MAAO,EACPyH,KAAM,WACJxQ,GAAM,EACR,EACAyQ,WAAY,SAAoBC,GAC9B,OAAOnR,GAAU,KAAQmR,GAAO,IAClC,EACAC,KAAM,WACA5R,KACGpY,GAAgBsE,MACnB4T,EAAOlY,EAAej6B,OACtBoyC,EAAOD,EAAKrxC,UAAY,CAAC,EACzBs0C,GAASjb,KAAOA,IACfgY,EAAK+R,eAAiB/R,EAAK+R,aAAe,KAAKj6C,KAAKkwB,GAAK8D,SAE1DqX,GAASD,IAAiBlD,EAAKgS,mBAAqBhS,EAAKhY,MAAQgY,GAAQ,CAAC,GAE1EQ,EAAOR,EAAKjyC,uBAGduyC,GAAOG,EAAMwR,QAEb1R,EAAOC,GAAQ,SAAUx9C,GACvB,OAAOwf,WAAWxf,EAAGi+C,EAAyB,IAAbR,EAAMoF,KAAc,EAAI,EAC3D,EAEAxF,EAAgB,EAEhBc,EAAM,GAEV,EACA8Q,MAAO,YACJzR,EAAOR,EAAKkS,qBAAuB5gC,cAAcgvB,GAClDD,EAAgB,EAChBE,EAAOmD,EACT,EACAyO,aAAc,SAAsBppB,EAAWqpB,GAC7CxR,EAAgB7X,GAAa,IAE7B8X,EAAez8C,KAAK4E,IAAIopD,EAAaxR,EAAe,EACtD,EACAiR,IAAK,SAAaQ,GAChBrR,EAAO,KAAQqR,GAAQ,KACvBpR,EAAyB,IAAbR,EAAMoF,KAAc7E,CAClC,EACAr8C,IAAK,SAAammB,GAChBo2B,EAAWjpC,QAAQ6S,GAAY,GAAKo2B,EAAWppC,KAAKgT,GAEpD+gC,IACF,EACAn5C,OAAQ,SAAgBoY,GACtB,IAAIpoB,IACFA,EAAIw+C,EAAWjpC,QAAQ6S,KAAco2B,EAAWlpC,OAAOtV,EAAG,IAAMuwB,GAAMvwB,GAAKuwB,GAC/E,EACAiuB,WA9FEA,EAAa,KAkGf2K,GAAQ,WACV,OAAQxL,GAAiB4J,GAAQ6H,MACnC,EAQAQ,GAAW,CAAC,EACRC,GAAiB,sBACjBC,GAAa,QACbC,GAAuB,SAA8BxiD,GAWvD,IATA,IAKI0Y,EACA+pC,EACAC,EAPA/mD,EAAM,CAAC,EACPnI,EAAQwM,EAAMupB,OAAO,EAAGvpB,EAAMnM,OAAS,GAAGL,MAAM,KAChD8I,EAAM9I,EAAM,GACZf,EAAI,EACJS,EAAIM,EAAMK,OAKPpB,EAAIS,EAAGT,IACZgwD,EAAMjvD,EAAMf,GACZimB,EAAQjmB,IAAMS,EAAI,EAAIuvD,EAAIE,YAAY,KAAOF,EAAI5uD,OACjD6uD,EAAYD,EAAIl5B,OAAO,EAAG7Q,GAC1B/c,EAAIW,GAAOurB,MAAM66B,GAAaA,EAAUxtD,QAAQqtD,GAAY,IAAI1zC,QAAU6zC,EAC1EpmD,EAAMmmD,EAAIl5B,OAAO7Q,EAAQ,GAAG7J,OAG9B,OAAOlT,CACT,EAaIkhD,GAAc,SAAqB5hB,GACrC,OAAO,SAAUrmC,GACf,OAAO,EAAIqmC,EAAK,EAAIrmC,EACtB,CACF,EAEAguD,GAAqB,SAASA,EAAmBha,EAAUia,GAIzD,IAHA,IACI5nB,EADAmJ,EAAQwE,EAASka,OAGd1e,GACDA,aAAiBuW,GACnBiI,EAAmBxe,EAAOye,IACjBze,EAAMjG,KAAK4kB,UAAc3e,EAAM4e,OAAU5e,EAAMwT,SAAYxT,EAAM4e,QAAUH,IAChFze,EAAMwE,SACRga,EAAmBxe,EAAMwE,SAAUia,IAEnC5nB,EAAOmJ,EAAM6e,MACb7e,EAAM6e,MAAQ7e,EAAM8e,OACpB9e,EAAM8e,OAASjoB,EACfmJ,EAAM4e,MAAQH,IAIlBze,EAAQA,EAAMjF,KAElB,EACI6c,GAAa,SAAoB/gB,EAAMkoB,GACzC,OAAQloB,IAAsBmB,EAAYnB,GAAQA,EAAOonB,GAASpnB,IAlCxC,SAA+B3nC,GAEzD,IARqD0M,EACjD2Q,EACAwG,EACAisC,EAKA5vD,GAASF,EAAO,IAAIE,MAAM,KAC1BynC,EAAOonB,GAAS7uD,EAAM,IAC1B,OAAOynC,GAAQznC,EAAMK,OAAS,GAAKonC,EAAKlB,OAASkB,EAAKlB,OAAOrhC,MAAM,MAAOpF,EAAK0U,QAAQ,KAAO,CAACw6C,GAAqBhvD,EAAM,MAVrEwM,EAUgG1M,EATjJqd,EAAO3Q,EAAMgI,QAAQ,KAAO,EAC5BmP,EAAQnX,EAAMgI,QAAQ,KACtBo7C,EAASpjD,EAAMgI,QAAQ,IAAK2I,GACzB3Q,EAAMvJ,UAAUka,GAAOyyC,GAAUA,EAASjsC,EAAQnX,EAAMgI,QAAQ,IAAKmP,EAAQ,GAAKA,IAMkE3jB,MAAM,KAAKuT,IAAIgvC,KAAuBsM,GAASgB,KAAOf,GAAe/rD,KAAKjD,GAAQ+uD,GAASgB,IAAI,GAAI/vD,GAAQ2nC,CACxQ,CA6B6EqoB,CAAsBroB,KAAlFkoB,CACjB,EACII,GAAc,SAAqB5O,EAAOnL,EAAQ4H,EAASpI,QAC7C,IAAZoI,IACFA,EAAU,SAAiBx8C,GACzB,OAAO,EAAI40C,EAAO,EAAI50C,EACxB,QAGgB,IAAdo0C,IACFA,EAAY,SAAmBp0C,GAC7B,OAAOA,EAAI,GAAK40C,EAAW,EAAJ50C,GAAS,EAAI,EAAI40C,EAAiB,GAAT,EAAI50C,IAAU,CAChE,GAGF,IAKI4uD,EALAvoB,EAAO,CACTuO,OAAQA,EACR4H,QAASA,EACTpI,UAAWA,GAab,OATA0L,GAAaC,GAAO,SAAUrhD,GAI5B,IAAK,IAAIsB,KAHTytD,GAAS/uD,GAAQ0/C,GAAS1/C,GAAQ2nC,EAClConB,GAASmB,EAAgBlwD,EAAK2B,eAAiBm8C,EAEjCnW,EACZonB,GAASmB,GAAuB,WAAN5uD,EAAiB,MAAc,YAANA,EAAkB,OAAS,WAAaytD,GAAS/uD,EAAO,IAAMsB,GAAKqmC,EAAKrmC,EAE/H,IAEOqmC,CACT,EACIwoB,GAAoB,SAA2BrS,GACjD,OAAO,SAAUx8C,GACf,OAAOA,EAAI,IAAM,EAAIw8C,EAAQ,EAAQ,EAAJx8C,IAAU,EAAI,GAAKw8C,EAAmB,GAAVx8C,EAAI,KAAW,CAC9E,CACF,EACI8uD,GAAiB,SAASA,EAAe/7C,EAAMg8C,EAAWC,GAC5D,IAAIC,EAAKF,GAAa,EAAIA,EAAY,EAEtCG,GAAMF,IAAWj8C,EAAO,GAAK,OAASg8C,EAAY,EAAIA,EAAY,GAC9DI,EAAKD,EAAKhS,GAAQ39C,KAAK6vD,KAAK,EAAIH,IAAO,GACvCzS,EAAU,SAAiBx8C,GAC7B,OAAa,IAANA,EAAU,EAAIivD,EAAK1vD,KAAK4oD,IAAI,GAAI,GAAKnoD,GAAK89B,GAAM99B,EAAImvD,GAAMD,GAAM,CACzE,EACI7oB,EAAgB,QAATtzB,EAAiBypC,EAAmB,OAATzpC,EAAgB,SAAU/S,GAC9D,OAAO,EAAIw8C,EAAQ,EAAIx8C,EACzB,EAAI6uD,GAAkBrS,GAQtB,OANA0S,EAAKhS,EAAOgS,EAEZ7oB,EAAKlB,OAAS,SAAU4pB,EAAWC,GACjC,OAAOF,EAAe/7C,EAAMg8C,EAAWC,EACzC,EAEO3oB,CACT,EACIgpB,GAAc,SAASA,EAAYt8C,EAAMu8C,QACzB,IAAdA,IACFA,EAAY,SAGd,IAAI9S,EAAU,SAAiBx8C,GAC7B,OAAOA,IAAMA,EAAIA,IAAMsvD,EAAY,GAAKtvD,EAAIsvD,GAAa,EAAI,CAC/D,EACIjpB,EAAgB,QAATtzB,EAAiBypC,EAAmB,OAATzpC,EAAgB,SAAU/S,GAC9D,OAAO,EAAIw8C,EAAQ,EAAIx8C,EACzB,EAAI6uD,GAAkBrS,GAMtB,OAJAnW,EAAKlB,OAAS,SAAUmqB,GACtB,OAAOD,EAAYt8C,EAAMu8C,EAC3B,EAEOjpB,CACT,EAeAyZ,GAAa,wCAAwC,SAAUphD,EAAMb,GACnE,IAAI0xD,EAAQ1xD,EAAI,EAAIA,EAAI,EAAIA,EAE5B8wD,GAAYjwD,EAAO,UAAY6wD,EAAQ,GAAI1xD,EAAI,SAAUmC,GACvD,OAAOT,KAAK4oD,IAAInoD,EAAGuvD,EACrB,EAAI,SAAUvvD,GACZ,OAAOA,CACT,GAAG,SAAUA,GACX,OAAO,EAAIT,KAAK4oD,IAAI,EAAInoD,EAAGuvD,EAC7B,IAAG,SAAUvvD,GACX,OAAOA,EAAI,GAAKT,KAAK4oD,IAAQ,EAAJnoD,EAAOuvD,GAAS,EAAI,EAAIhwD,KAAK4oD,IAAc,GAAT,EAAInoD,GAAQuvD,GAAS,CAClF,GACF,IAEA9B,GAAS+B,OAAOC,SAAWhC,GAASiC,KAAOjC,GAAS+B,OAAO5a,OAE3D+Z,GAAY,UAAWG,GAAe,MAAOA,GAAe,OAAQA,MAEzDnxD,EAWR,OAVG4+C,EAAK,GADGr+C,EAWH,MAHTywD,GAAY,UAAU,SAAU3uD,GAC9B,OAAO,EAAIw8C,EAAQ,EAAIx8C,EACzB,GANIw8C,EAAU,SAAiBx8C,GAC7B,OAAOA,EAAIu8C,EAAK5+C,EAAIqC,EAAIA,EAAIA,EAHrB,kBAG8BrC,EAAI4B,KAAK4oD,IAAInoD,EAAI,IAAM9B,EAAG,GAAK,IAAM8B,EAFnE,kBAE4ErC,GAAKqC,GAAK,KAAO9B,GAAK8B,EAAI,MAAQrC,EAAI4B,KAAK4oD,IAAInoD,EAAI,MAAQ9B,EAAG,GAAK,OACxJ,GAOFywD,GAAY,QAAQ,SAAU3uD,GAC5B,OAAOA,EAAIT,KAAK4oD,IAAI,EAAG,IAAMnoD,EAAI,IAAM,CACzC,IAEA2uD,GAAY,QAAQ,SAAU3uD,GAC5B,QAASm+B,EAAM,EAAIn+B,EAAIA,GAAK,EAC9B,IAEA2uD,GAAY,QAAQ,SAAU3uD,GAC5B,OAAa,IAANA,EAAU,EAA0B,EAArBg+B,EAAKh+B,EAAIm9C,EACjC,IAEAwR,GAAY,OAAQU,GAAY,MAAOA,GAAY,OAAQA,MAE3D5B,GAASkC,YAAclC,GAASmC,MAAQxR,GAASuR,YAAc,CAC7DxqB,OAAQ,SAAgByqB,EAAOC,QACf,IAAVD,IACFA,EAAQ,GAGV,IAAIX,EAAK,EAAIW,EACTV,EAAKU,GAASC,EAAiB,EAAI,GACnCV,EAAKU,EAAiB,EAAI,EAE9B,OAAO,SAAU7vD,GACf,QAASkvD,EAAK9K,GAAO,EAFb,UAEqBpkD,GAAK,GAAKmvD,GAAMF,CAC/C,CACF,GAEFnS,EAAUzW,KAAOonB,GAAS,YAE1B3N,GAAa,sEAAsE,SAAUphD,GAC3F,OAAO2gD,IAAkB3gD,EAAO,IAAMA,EAAO,SAC/C,IAQO,IAAIihD,GAAU,SAAiBjmB,EAAQ+lB,GAC5Cp+C,KAAK8V,GAAKimC,IACV1jB,EAAO8lB,MAAQn+C,KACfA,KAAKq4B,OAASA,EACdr4B,KAAKo+C,QAAUA,EACfp+C,KAAKgD,IAAMo7C,EAAUA,EAAQp7C,IAAMw7C,GACnCx+C,KAAKoC,IAAMg8C,EAAUA,EAAQqQ,UAAYC,EAC3C,EAOWC,GAAyB,WAClC,SAASA,EAAUzmB,EAAMyX,GACvB,IAAIjnB,EAASwP,EAAKxP,QAAUmhB,EAC5B75C,KAAKkoC,KAAOA,EACZloC,KAAKmjD,QAAUjb,EAAKoK,OAAS,GAEzBtyC,KAAK2hD,QAAUzZ,EAAKoc,SAAWsK,KAAY,EAAI1mB,EAAKoc,QAAU,KAEhEtkD,KAAK8hD,QAAU5Z,EAAK2mB,aAAe,EACnC7uD,KAAK+sD,QAAU7kB,EAAK4mB,QAAU5mB,EAAK4kB,UAGrC9sD,KAAKyhD,IAAM,EAEX0C,GAAankD,MAAOkoC,EAAK4B,SAAU,EAAG,GAEtC9pC,KAAKoX,KAAO8wB,EAAK9wB,KACjB+iC,GAAiB4J,GAAQ6H,OACzBlzB,GAAUuqB,GAAevqB,EAAQ14B,KAAM2/C,GAAiB,IAATA,EAAaA,EAAOjnB,EAAOiqB,MAAO,GACjFza,EAAK6mB,UAAY/uD,KAAKgvD,UACtB9mB,EAAK+mB,QAAUjvD,KAAKivD,QAAO,EAC7B,CAEA,IAAInmD,EAAS6lD,EAAUzuD,UAmSvB,OAjSA4I,EAAOwpC,MAAQ,SAAevoC,GAC5B,OAAIA,GAAmB,IAAVA,GACX/J,KAAK04B,QAAU14B,KAAK04B,OAAOgqB,mBAAqB1iD,KAAKkvD,UAAUlvD,KAAKuhD,OAASx3C,EAAQ/J,KAAKmjD,QAC1FnjD,KAAKmjD,OAASp5C,EACP/J,MAGFA,KAAKmjD,MACd,EAEAr6C,EAAOghC,SAAW,SAAkB//B,GAClC,OAAOxK,UAAU3B,OAASoC,KAAKoiD,cAAcpiD,KAAK2hD,QAAU,EAAI53C,GAASA,EAAQ/J,KAAK8hD,SAAW9hD,KAAK2hD,QAAU53C,GAAS/J,KAAKoiD,iBAAmBpiD,KAAKshD,IACxJ,EAEAx4C,EAAOs5C,cAAgB,SAAuBr4C,GAC5C,OAAKxK,UAAU3B,QAIfoC,KAAK0lC,OAAS,EACPye,GAAankD,KAAMA,KAAK2hD,QAAU,EAAI53C,GAASA,EAAQ/J,KAAK2hD,QAAU3hD,KAAK8hD,UAAY9hD,KAAK2hD,QAAU,KAJpG3hD,KAAKqiD,KAKhB,EAEAv5C,EAAO25C,UAAY,SAAmB0M,EAAYvP,GAGhD,GAFA+F,MAEKpmD,UAAU3B,OACb,OAAOoC,KAAK6hD,OAGd,IAAInpB,EAAS14B,KAAK0gD,IAElB,GAAIhoB,GAAUA,EAAOgqB,mBAAqB1iD,KAAKyhD,IAAK,CAMlD,IALAe,GAAexiD,KAAMmvD,IAEpBz2B,EAAOgoB,KAAOhoB,EAAOA,QAAUkqB,GAAelqB,EAAQ14B,MAGhD04B,EAAOA,QACRA,EAAOA,OAAOiqB,QAAUjqB,EAAO6oB,QAAU7oB,EAAO+oB,KAAO,EAAI/oB,EAAOmpB,OAASnpB,EAAO+oB,KAAO/oB,EAAO0pB,gBAAkB1pB,EAAOmpB,SAAWnpB,EAAO+oB,MAC7I/oB,EAAO+pB,UAAU/pB,EAAOmpB,QAAQ,GAGlCnpB,EAASA,EAAOA,QAGb14B,KAAK04B,QAAU14B,KAAK0gD,IAAIQ,qBAAuBlhD,KAAKyhD,IAAM,GAAK0N,EAAanvD,KAAKqiD,OAASriD,KAAKyhD,IAAM,GAAK0N,EAAa,IAAMnvD,KAAKqiD,QAAU8M,IAE/IlM,GAAejjD,KAAK0gD,IAAK1gD,KAAMA,KAAKuhD,OAASvhD,KAAKmjD,OAEtD,CAaA,OAXInjD,KAAK6hD,SAAWsN,IAAenvD,KAAKshD,OAAS1B,GAAkB5/C,KAAK6iD,UAAY3kD,KAAKC,IAAI6B,KAAKgjD,UAAYpH,IAAauT,IAAenvD,KAAK6iD,WAAa7iD,KAAKvB,KAAOuB,KAAKovD,cAE3KpvD,KAAKyhD,MAAQzhD,KAAKqvD,OAASF,GAI3B1P,GAAgBz/C,KAAMmvD,EAAYvP,IAK7B5/C,IACT,EAEA8I,EAAO62C,KAAO,SAAc51C,EAAO61C,GACjC,OAAOrgD,UAAU3B,OAASoC,KAAKyiD,UAAUvkD,KAAK4E,IAAI9C,KAAKoiD,gBAAiBr4C,EAAQ23C,GAAsB1hD,OAASA,KAAKshD,OAASv3C,EAAQ/J,KAAKshD,KAAO,GAAI1B,GAAkB5/C,KAAK2iD,KAC9K,EAEA75C,EAAO07C,cAAgB,SAAuBz6C,EAAO61C,GACnD,OAAOrgD,UAAU3B,OAASoC,KAAKyiD,UAAUziD,KAAKoiD,gBAAkBr4C,EAAO61C,GAAkB5/C,KAAKoiD,gBAAkBlkD,KAAK4E,IAAI,EAAG9C,KAAK6hD,OAAS7hD,KAAKqiD,OAASriD,KAAK6oC,KAC/J,EAEA//B,EAAO6/C,SAAW,SAAkB5+C,EAAO61C,GACzC,OAAOrgD,UAAU3B,OAASoC,KAAKyiD,UAAUziD,KAAK8pC,aAAc9pC,KAAK+sD,OAA8B,EAAnB/sD,KAAKsvD,YAA+BvlD,EAAZ,EAAIA,GAAiB23C,GAAsB1hD,MAAO4/C,GAAkB5/C,KAAK8pC,WAAa5rC,KAAK4E,IAAI,EAAG9C,KAAK2iD,MAAQ3iD,KAAKshD,MAAQthD,KAAK6oC,KACvO,EAEA//B,EAAOwmD,UAAY,SAAmBvlD,EAAO61C,GAC3C,IAAIoC,EAAgBhiD,KAAK8pC,WAAa9pC,KAAK8hD,QAE3C,OAAOviD,UAAU3B,OAASoC,KAAKyiD,UAAUziD,KAAK2iD,OAAS54C,EAAQ,GAAKi4C,EAAepC,GAAkB5/C,KAAK2hD,QAAUC,GAAgB5hD,KAAK6hD,OAAQG,GAAiB,EAAI,CACxK,EAYAl5C,EAAOs6C,UAAY,SAAmBr5C,GACpC,IAAKxK,UAAU3B,OACb,OAAqB,OAAdoC,KAAKuiD,KAAqB,EAAIviD,KAAKuiD,KAG5C,GAAIviD,KAAKuiD,OAASx4C,EAChB,OAAO/J,KAGT,IAAI+hD,EAAQ/hD,KAAK04B,QAAU14B,KAAKyhD,IAAMS,GAAwBliD,KAAK04B,OAAOiqB,MAAO3iD,MAAQA,KAAK6hD,OAM9F,OAHA7hD,KAAKuiD,MAAQx4C,GAAS,EACtB/J,KAAKyhD,IAAMzhD,KAAKuvD,MAAiB,OAAVxlD,EAAsB,EAAI/J,KAAKuiD,KA/0ClC,SAA2B7C,GAGjD,IAFA,IAAIhnB,EAASgnB,EAAUhnB,OAEhBA,GAAUA,EAAOA,QAEtBA,EAAOgN,OAAS,EAChBhN,EAAO0pB,gBACP1pB,EAASA,EAAOA,OAGlB,OAAOgnB,CACT,CAs0CW8P,CAAkBxvD,KAAKyiD,UAAUM,IAAQ/iD,KAAKmjD,OAAQnjD,KAAKqiD,MAAON,IAAQ,GACnF,EAEAj5C,EAAOmmD,OAAS,SAAgBllD,GAC9B,OAAKxK,UAAU3B,QAIXoC,KAAKuvD,MAAQxlD,IACf/J,KAAKuvD,IAAMxlD,EAEPA,GACF/J,KAAKqvD,OAASrvD,KAAK6hD,QAAU3jD,KAAK81B,KAAKh0B,KAAKmjD,OAAQnjD,KAAK8iD,WAEzD9iD,KAAKyhD,IAAMzhD,KAAKmhD,KAAO,IAEvBwE,KAEA3lD,KAAKyhD,IAAMzhD,KAAKuiD,KAEhBviD,KAAKyiD,UAAUziD,KAAK04B,SAAW14B,KAAK04B,OAAOgqB,kBAAoB1iD,KAAK8iD,UAAY9iD,KAAK6hD,QAAU7hD,KAAKqvD,OAA4B,IAApBrvD,KAAK2oD,aAAqB3oD,KAAK6hD,QAAUjG,IAAa19C,KAAKC,IAAI6B,KAAKgjD,UAAYpH,KAIzL57C,MAnBEA,KAAKuvD,GAoBhB,EAEAzmD,EAAOomD,UAAY,SAAmBnlD,GACpC,GAAIxK,UAAU3B,OAAQ,CACpBoC,KAAKuhD,OAASx3C,EACd,IAAI2uB,EAAS14B,KAAK04B,QAAU14B,KAAK0gD,IAEjC,OADAhoB,IAAWA,EAAO6qB,QAAUvjD,KAAK04B,SAAWuqB,GAAevqB,EAAQ14B,KAAM+J,EAAQ/J,KAAKmjD,QAC/EnjD,IACT,CAEA,OAAOA,KAAKuhD,MACd,EAEAz4C,EAAO87C,QAAU,SAAiB6K,GAChC,OAAOzvD,KAAKuhD,QAAUpF,EAAYsT,GAAkBzvD,KAAKoiD,gBAAkBpiD,KAAK8pC,YAAc5rC,KAAKC,IAAI6B,KAAKyhD,IAC9G,EAEA34C,EAAOg6C,QAAU,SAAiB4M,GAChC,IAAIh3B,EAAS14B,KAAK04B,QAAU14B,KAAK0gD,IAEjC,OAAQhoB,EAAuBg3B,KAAiB1vD,KAAKyhD,KAAOzhD,KAAK2hD,SAAW3hD,KAAK2iD,OAAS3iD,KAAKwkD,gBAAkB,GAAKxkD,KAAK6hD,QAAU7hD,KAAKshD,KAAOthD,KAAK8hD,SAAY9hD,KAAKyhD,IAAoBS,GAAwBxpB,EAAOoqB,QAAQ4M,GAAc1vD,MAAnEA,KAAK6hD,OAAjK7hD,KAAK6hD,MACxB,EAEA/4C,EAAO6mD,WAAa,SAAoB7M,GAItC,IAHA,IAAIpD,EAAY1/C,KACZ2/C,EAAOpgD,UAAU3B,OAASklD,EAAUpD,EAAUoD,UAE3CpD,GACLC,EAAOD,EAAU6B,OAAS5B,GAAQD,EAAU+B,KAAO,GACnD/B,EAAYA,EAAUgB,IAGxB,OAAOf,CACT,EAEA72C,EAAOw7C,OAAS,SAAgBv6C,GAC9B,OAAIxK,UAAU3B,QACZoC,KAAK2hD,QAAU53C,IAAU6kD,KAAY,EAAI7kD,EAClC06C,GAAuBzkD,QAGP,IAAlBA,KAAK2hD,QAAiBiN,IAAW5uD,KAAK2hD,OAC/C,EAEA74C,EAAO+lD,YAAc,SAAqB9kD,GACxC,OAAIxK,UAAU3B,QACZoC,KAAK8hD,QAAU/3C,EACR06C,GAAuBzkD,OAGzBA,KAAK8hD,OACd,EAEAh5C,EAAOgmD,KAAO,SAAc/kD,GAC1B,OAAIxK,UAAU3B,QACZoC,KAAK+sD,MAAQhjD,EACN/J,MAGFA,KAAK+sD,KACd,EAEAjkD,EAAO8mD,KAAO,SAAc3nD,EAAU23C,GACpC,OAAO5/C,KAAKyiD,UAAUoC,GAAe7kD,KAAMiI,GAAWk0C,EAAYyD,GACpE,EAEA92C,EAAO+mD,QAAU,SAAiBC,EAAclQ,GAC9C,OAAO5/C,KAAK+vD,OAAOtN,UAAUqN,GAAgB9vD,KAAKmjD,OAAS,EAAGhH,EAAYyD,GAC5E,EAEA92C,EAAOinD,KAAO,SAAcvwC,EAAMogC,GAEhC,OADQ,MAARpgC,GAAgBxf,KAAK4vD,KAAKpwC,EAAMogC,GACzB5/C,KAAK+uD,UAAS,GAAOE,QAAO,EACrC,EAEAnmD,EAAOkmD,QAAU,SAAiBxvC,EAAMogC,GAEtC,OADQ,MAARpgC,GAAgBxf,KAAK4vD,KAAKpwC,GAAQxf,KAAKoiD,gBAAiBxC,GACjD5/C,KAAK+uD,UAAS,GAAME,QAAO,EACpC,EAEAnmD,EAAOknD,MAAQ,SAAeC,EAAQrQ,GAEpC,OADU,MAAVqQ,GAAkBjwD,KAAK4vD,KAAKK,EAAQrQ,GAC7B5/C,KAAKivD,QAAO,EACrB,EAEAnmD,EAAOonD,OAAS,WACd,OAAOlwD,KAAKivD,QAAO,EACrB,EAEAnmD,EAAOimD,SAAW,SAAkBhlD,GAClC,OAAIxK,UAAU3B,UACVmM,IAAU/J,KAAK+uD,YAAc/uD,KAAKojD,WAAWpjD,KAAKuiD,OAASx4C,GAAQ,KAAY,IAE1E/J,MAGFA,KAAKuiD,KAAO,CACrB,EAEAz5C,EAAOqnD,WAAa,WAGlB,OAFAnwD,KAAK6iD,SAAW7iD,KAAKmhD,KAAO,EAC5BnhD,KAAKgjD,QAAS,KACPhjD,IACT,EAEA8I,EAAOsnD,SAAW,WAChB,IAEItN,EAFApqB,EAAS14B,KAAK04B,QAAU14B,KAAK0gD,IAC7B9/B,EAAQ5gB,KAAKuhD,OAEjB,QAAW7oB,KAAU14B,KAAKyhD,KAAOzhD,KAAK6iD,UAAYnqB,EAAO03B,aAAetN,EAAUpqB,EAAOoqB,SAAQ,KAAUliC,GAASkiC,EAAU9iD,KAAK4kD,SAAQ,GAAQhJ,GACrJ,EAEA9yC,EAAOunD,cAAgB,SAAuB3+C,EAAMkT,EAAUzQ,GAC5D,IAAI+zB,EAAOloC,KAAKkoC,KAEhB,OAAI3oC,UAAU3B,OAAS,GAChBgnB,GAGHsjB,EAAKx2B,GAAQkT,EACbzQ,IAAW+zB,EAAKx2B,EAAO,UAAYyC,GAC1B,aAATzC,IAAwB1R,KAAKswD,UAAY1rC,WAJlCsjB,EAAKx2B,GAOP1R,MAGFkoC,EAAKx2B,EACd,EAEA5I,EAAOsI,KAAO,SAAcm/C,GAC1B,IAAI/W,EAAOx5C,KACX,OAAO,IAAIqR,SAAQ,SAAUC,GAC3B,IAAIxU,EAAIqpC,EAAYoqB,GAAeA,EAAcxQ,GAC7CyQ,EAAW,WACb,IAAIC,EAAQjX,EAAKpoC,KACjBooC,EAAKpoC,KAAO,KAEZ+0B,EAAYrpC,KAAOA,EAAIA,EAAE08C,MAAW18C,EAAEsU,MAAQtU,IAAM08C,KAAUA,EAAKpoC,KAAOq/C,GAC1En/C,EAAQxU,GACR08C,EAAKpoC,KAAOq/C,CACd,EAEIjX,EAAKqJ,UAAqC,IAAzBrJ,EAAKgL,iBAAyBhL,EAAKiI,KAAO,IAAMjI,EAAKqI,QAAUrI,EAAKiI,IAAM,EAC7F+O,IAEAhX,EAAKkX,MAAQF,CAEjB,GACF,EAEA1nD,EAAOqgC,KAAO,WACZsf,GAAWzoD,KACb,EAEO2uD,CACT,CA3ToC,GA6TpC3O,GAAa2O,GAAUzuD,UAAW,CAChCyiD,MAAO,EACPpB,OAAQ,EACRF,KAAM,EACNQ,OAAQ,EACRQ,MAAO,EACP3c,OAAQ,EACRic,QAAS,EACToL,OAAO,EACPr0B,OAAQ,KACRmqB,UAAU,EACVf,QAAS,EACTL,IAAK,EACLf,IAAK,EACL7X,MAAO,EACPma,QAAQ,KACR0N,MAAO,EACPnB,KAAK,EACLhN,KAAM,IASD,IAAImC,GAAwB,SAAUiM,GAG3C,SAASjM,EAASxc,EAAMyX,GACtB,IAAIx4C,EAaJ,YAXa,IAAT+gC,IACFA,EAAO,CAAC,IAGV/gC,EAAQwpD,EAAWpqD,KAAKvG,KAAMkoC,EAAMyX,IAAS3/C,MACvC8kD,OAAS,CAAC,EAChB39C,EAAMu7C,oBAAsBxa,EAAKwa,kBACjCv7C,EAAM+5C,qBAAuBhZ,EAAKgZ,mBAClC/5C,EAAMo8C,MAAQpH,EAAYjU,EAAK0oB,cAC/BzpD,EAAMuxB,QAAUkqB,GAAez7C,EAAMuxB,OAAQ5f,EAAuB3R,IACpE+gC,EAAKwgB,eAAiBjF,GAAe3qC,EAAuB3R,GAAQ+gC,EAAKwgB,eAClEvhD,CACT,CAjBA8R,EAAeyrC,EAAUiM,GAmBzB,IAAIvsC,EAAUsgC,EAASxkD,UA2oBvB,OAzoBAkkB,EAAQyG,GAAK,SAAYkd,EAASG,EAAMjgC,GAEtC,OADA,IAAI4oD,GAAM9oB,EAAS+W,GAAWv/C,UAAW,EAAGS,MAAO6kD,GAAe7kD,KAAMg9B,EAAUkL,GAAQ3oC,UAAU,GAAK0I,IAClGjI,IACT,EAEAokB,EAAQ5E,KAAO,SAAcuoB,EAASG,EAAMjgC,GAE1C,OADA,IAAI4oD,GAAM9oB,EAAS+W,GAAWv/C,UAAW,EAAGS,MAAO6kD,GAAe7kD,KAAMg9B,EAAUkL,GAAQ3oC,UAAU,GAAK0I,IAClGjI,IACT,EAEAokB,EAAQ0sC,OAAS,SAAgB/oB,EAASgpB,EAAUC,EAAQ/oD,GAE1D,OADA,IAAI4oD,GAAM9oB,EAAS+W,GAAWv/C,UAAW,EAAGS,MAAO6kD,GAAe7kD,KAAMg9B,EAAU+zB,GAAYxxD,UAAU,GAAK0I,IACtGjI,IACT,EAEAokB,EAAQhiB,IAAM,SAAa2lC,EAASG,EAAMjgC,GAMxC,OALAigC,EAAK4B,SAAW,EAChB5B,EAAKxP,OAAS14B,KACdwgD,GAAiBtY,GAAM2mB,cAAgB3mB,EAAKoc,OAAS,GACrDpc,EAAKkX,kBAAoBlX,EAAKkX,gBAC9B,IAAIyR,GAAM9oB,EAASG,EAAM2c,GAAe7kD,KAAMiI,GAAW,GAClDjI,IACT,EAEAokB,EAAQ7d,KAAO,SAAcqe,EAAUzQ,EAAQlM,GAC7C,OAAOg7C,GAAejjD,KAAM6wD,GAAMI,YAAY,EAAGrsC,EAAUzQ,GAAS0wC,GAAe7kD,KAAMiI,GAC3F,EAGAmc,EAAQ8sC,UAAY,SAAmBnpB,EAAS+B,EAAU5B,EAAMipB,EAASlpD,EAAUmpD,EAAeC,GAOhG,OANAnpB,EAAK4B,SAAWA,EAChB5B,EAAKipB,QAAUjpB,EAAKipB,SAAWA,EAC/BjpB,EAAK8K,WAAaoe,EAClBlpB,EAAKopB,iBAAmBD,EACxBnpB,EAAKxP,OAAS14B,KACd,IAAI6wD,GAAM9oB,EAASG,EAAM2c,GAAe7kD,KAAMiI,IACvCjI,IACT,EAEAokB,EAAQmtC,YAAc,SAAqBxpB,EAAS+B,EAAU5B,EAAMipB,EAASlpD,EAAUmpD,EAAeC,GAGpG,OAFAnpB,EAAKmX,aAAe,EACpBmB,GAAiBtY,GAAMkX,gBAAkBjD,EAAYjU,EAAKkX,iBACnDp/C,KAAKkxD,UAAUnpB,EAAS+B,EAAU5B,EAAMipB,EAASlpD,EAAUmpD,EAAeC,EACnF,EAEAjtC,EAAQotC,cAAgB,SAAuBzpB,EAAS+B,EAAUinB,EAAUC,EAAQG,EAASlpD,EAAUmpD,EAAeC,GAGpH,OAFAL,EAAO1R,QAAUyR,EACjBvQ,GAAiBwQ,GAAQ5R,gBAAkBjD,EAAY6U,EAAO5R,iBACvDp/C,KAAKkxD,UAAUnpB,EAAS+B,EAAUknB,EAAQG,EAASlpD,EAAUmpD,EAAeC,EACrF,EAEAjtC,EAAQxa,OAAS,SAAgB64C,EAAW7C,EAAgBC,GAC1D,IAKIF,EACAxR,EACAh9B,EACAm+C,EACAtN,EACAyP,EACAC,EACAtO,EACAuO,EACAC,EACA9C,EACAlC,EAhBAiF,EAAW7xD,KAAK2iD,MAChBmP,EAAO9xD,KAAK0lC,OAAS1lC,KAAKoiD,gBAAkBpiD,KAAKqiD,MACjDkC,EAAMvkD,KAAKshD,KACXS,EAAQ/hD,OAAS65C,GAAmB4I,EAAYqP,EAAOlW,GAAY6G,GAAa,EAAIqP,EAAOrP,EAAY7G,EAAW,EAAI6G,EACtHsP,EAAgB/xD,KAAKgjD,OAAS,GAAMP,EAAY,IAAMziD,KAAK6iD,WAAa0B,GAc5E,GAAIxC,IAAU/hD,KAAK6hD,QAAUhC,GAASkS,EAAe,CAkBnD,GAjBIF,IAAa7xD,KAAK2iD,OAAS4B,IAE7BxC,GAAS/hD,KAAK2iD,MAAQkP,EACtBpP,GAAaziD,KAAK2iD,MAAQkP,GAG5BlS,EAAOoC,EACP4P,EAAY3xD,KAAKuhD,OAEjBkQ,IADArO,EAAYpjD,KAAKyhD,KAGbsQ,IACFxN,IAAQsN,EAAW7xD,KAAKgjD,SAEvBP,IAAc7C,KAAoB5/C,KAAKgjD,OAASP,IAG/CziD,KAAK2hD,QAAS,CAKhB,GAHAmN,EAAO9uD,KAAK+sD,MACZ/K,EAAgBuC,EAAMvkD,KAAK8hD,QAEvB9hD,KAAK2hD,SAAW,GAAKc,EAAY,EACnC,OAAOziD,KAAKyiD,UAA0B,IAAhBT,EAAsBS,EAAW7C,EAAgBC,GAqCzE,GAlCAF,EAAOxiB,GAAO4kB,EAAQC,GAElBD,IAAU+P,GAEZxC,EAAYtvD,KAAK2hD,QACjBhC,EAAO4E,KAEP+K,KAAevN,EAAQC,KAENsN,IAAcvN,EAAQC,IACrCrC,EAAO4E,EACP+K,KAGF3P,EAAO4E,IAAQ5E,EAAO4E,IAGxBqN,EAAgBhQ,GAAgB5hD,KAAK6hD,OAAQG,IAC5C6P,GAAY7xD,KAAK6hD,QAAU+P,IAAkBtC,IAAcsC,EAAgBtC,GAExER,GAAoB,EAAZQ,IACV3P,EAAO4E,EAAM5E,EACbiN,EAAS,GAYP0C,IAAcsC,IAAkB5xD,KAAKkkD,MAAO,CAC9C,IAAI8N,EAAYlD,GAAwB,EAAhB8C,EACpBK,EAAWD,KAAelD,GAAoB,EAAZQ,GAQtC,GAPAA,EAAYsC,IAAkBI,GAAaA,GAC3CH,EAAWG,EAAY,EAAIzN,EAC3BvkD,KAAKkkD,MAAQ,EACblkD,KAAK4J,OAAOioD,IAAajF,EAAS,EAAIzvB,GAAOmyB,EAAYtN,IAAiBpC,GAAiB2E,GAAKL,MAAQ,GACvGtE,GAAkB5/C,KAAK04B,QAAU4vB,GAAUtoD,KAAM,YAClDA,KAAKkoC,KAAKgqB,gBAAkBtF,IAAW5sD,KAAKmwD,aAAajM,MAAQ,GAE7D2N,GAAYA,IAAa7xD,KAAK2iD,OAAS8O,KAAgBzxD,KAAKyhD,KAAOzhD,KAAKkoC,KAAKiqB,WAAanyD,KAAK04B,SAAW14B,KAAKmhD,KAEjH,OAAOnhD,KAeT,GAZAukD,EAAMvkD,KAAKshD,KAEXwQ,EAAO9xD,KAAKqiD,MAER4P,IACFjyD,KAAKkkD,MAAQ,EACb2N,EAAWG,EAAYzN,GAAO,KAC9BvkD,KAAK4J,OAAOioD,GAAU,IAGxB7xD,KAAKkkD,MAAQ,GAERlkD,KAAKyhD,MAAQgQ,EAChB,OAAOzxD,KAIT2sD,GAAmB3sD,KAAM4sD,EAC3B,CACF,CAuBA,GArBI5sD,KAAKoyD,YAAcpyD,KAAKqyD,UAAYryD,KAAKkkD,MAAQ,IACnDwN,EAhjDkB,SAA6BhS,EAAWmS,EAAUlS,GAC1E,IAAIxR,EAEJ,GAAIwR,EAAOkS,EAGT,IAFA1jB,EAAQuR,EAAUmN,OAEX1e,GAASA,EAAMoT,QAAU5B,GAAM,CACpC,IAAKxR,EAAMmT,MAAuB,YAAfnT,EAAM/2B,MAAsB+2B,EAAMoT,OAASsQ,EAC5D,OAAO1jB,EAGTA,EAAQA,EAAMjF,KAChB,MAIA,IAFAiF,EAAQuR,EAAU4S,MAEXnkB,GAASA,EAAMoT,QAAU5B,GAAM,CACpC,IAAKxR,EAAMmT,MAAuB,YAAfnT,EAAM/2B,MAAsB+2B,EAAMoT,OAASsQ,EAC5D,OAAO1jB,EAGTA,EAAQA,EAAM4S,KAChB,CAEJ,CAwhDqBwR,CAAoBvyD,KAAMm9B,GAAO00B,GAAW10B,GAAOwiB,IAE5D+R,IACF3P,GAASpC,GAAQA,EAAO+R,EAAWnQ,UAIvCvhD,KAAK6hD,OAASE,EACd/hD,KAAK2iD,MAAQhD,EACb3/C,KAAKmhD,MAAQiC,EAERpjD,KAAK6iD,WACR7iD,KAAKswD,UAAYtwD,KAAKkoC,KAAKsqB,SAC3BxyD,KAAK6iD,SAAW,EAChB7iD,KAAKgjD,OAASP,EACdoP,EAAW,IAGZA,GAAYlS,IAASC,GAAkB0I,GAAUtoD,KAAM,WAEpD2/C,GAAQkS,GAAYpP,GAAa,EAGnC,IAFAtU,EAAQnuC,KAAK6sD,OAEN1e,GAAO,CAGZ,GAFAh9B,EAAOg9B,EAAMjF,OAERiF,EAAMgT,MAAQxB,GAAQxR,EAAMoT,SAAWpT,EAAMsT,KAAOiQ,IAAevjB,EAAO,CAC7E,GAAIA,EAAMzV,SAAW14B,KAEnB,OAAOA,KAAK4J,OAAO64C,EAAW7C,EAAgBC,GAKhD,GAFA1R,EAAMvkC,OAAOukC,EAAMsT,IAAM,GAAK9B,EAAOxR,EAAMoT,QAAUpT,EAAMsT,KAAOtT,EAAMzI,OAASyI,EAAMiU,gBAAkBjU,EAAMkU,QAAU1C,EAAOxR,EAAMoT,QAAUpT,EAAMsT,IAAK7B,EAAgBC,GAEvKF,IAAS3/C,KAAK2iD,QAAU3iD,KAAKyhD,MAAQgQ,EAAY,CAEnDC,EAAa,EACbvgD,IAAS4wC,GAAS/hD,KAAKgjD,QAAS,MAEhC,KACF,CACF,CAEA7U,EAAQh9B,CACV,KACK,CACLg9B,EAAQnuC,KAAKsyD,MAGb,IAFA,IAAIG,EAAehQ,EAAY,EAAIA,EAAY9C,EAExCxR,GAAO,CAGZ,GAFAh9B,EAAOg9B,EAAM4S,OAER5S,EAAMgT,MAAQsR,GAAgBtkB,EAAMkT,OAASlT,EAAMsT,KAAOiQ,IAAevjB,EAAO,CACnF,GAAIA,EAAMzV,SAAW14B,KAEnB,OAAOA,KAAK4J,OAAO64C,EAAW7C,EAAgBC,GAKhD,GAFA1R,EAAMvkC,OAAOukC,EAAMsT,IAAM,GAAKgR,EAAetkB,EAAMoT,QAAUpT,EAAMsT,KAAOtT,EAAMzI,OAASyI,EAAMiU,gBAAkBjU,EAAMkU,QAAUoQ,EAAetkB,EAAMoT,QAAUpT,EAAMsT,IAAK7B,EAAgBC,GAEvLF,IAAS3/C,KAAK2iD,QAAU3iD,KAAKyhD,MAAQgQ,EAAY,CAEnDC,EAAa,EACbvgD,IAAS4wC,GAAS/hD,KAAKgjD,OAASyP,GAAe,KAAY7W,GAE3D,KACF,CACF,CAEAzN,EAAQh9B,CACV,CACF,CAEA,GAAIugD,IAAe9R,IACjB5/C,KAAKgwD,QACL0B,EAAW9nD,OAAO+1C,GAAQkS,EAAW,GAAI,MAAW7O,OAASrD,GAAQkS,EAAW,GAAK,EAEjF7xD,KAAKyhD,KAMP,OAJAzhD,KAAKuhD,OAASoQ,EAEdrP,GAAQtiD,MAEDA,KAAK4J,OAAO64C,EAAW7C,EAAgBC,GAIlD7/C,KAAKswD,YAAc1Q,GAAkB0I,GAAUtoD,KAAM,YAAY,IAC7D+hD,IAAU+P,GAAQA,GAAQ9xD,KAAKoiD,kBAAoBL,GAAS8P,KAAcF,IAAc3xD,KAAKuhD,QAAUrjD,KAAKC,IAAIilD,KAAellD,KAAKC,IAAI6B,KAAKyhD,MAAWzhD,KAAKkkD,SAC9JzB,IAAc8B,KAASxC,IAAU+P,GAAQ9xD,KAAKyhD,IAAM,IAAMM,GAAS/hD,KAAKyhD,IAAM,IAAMT,GAAkBhhD,KAAM,GAExG4/C,GAAoB6C,EAAY,IAAMoP,IAAc9P,IAAS8P,IAChEvJ,GAAUtoD,KAAM+hD,IAAU+P,EAAO,aAAe,qBAAqB,GAErE9xD,KAAK0wD,SAAW3O,EAAQ+P,GAAQ9xD,KAAKojD,YAAc,IAAMpjD,KAAK0wD,UAGpE,CAEA,OAAO1wD,IACT,EAEAokB,EAAQ3lB,IAAM,SAAa0vC,EAAOlmC,GAChC,IAAI0kB,EAAS3sB,KAIb,GAFAg9B,EAAU/0B,KAAcA,EAAW48C,GAAe7kD,KAAMiI,MAElDkmC,aAAiBwgB,IAAY,CACjC,GAAInS,EAASrO,GAIX,OAHAA,EAAMnqC,SAAQ,SAAU0B,GACtB,OAAOinB,EAAOluB,IAAIiH,EAAKuC,EACzB,IACOjI,KAGT,GAAIg8C,EAAU7N,GACZ,OAAOnuC,KAAK0yD,SAASvkB,EAAOlmC,GAG9B,IAAIk+B,EAAYgI,GAGd,OAAOnuC,KAFPmuC,EAAQ0iB,GAAMI,YAAY,EAAG9iB,EAIjC,CAEA,OAAOnuC,OAASmuC,EAAQ8U,GAAejjD,KAAMmuC,EAAOlmC,GAAYjI,IAClE,EAEAokB,EAAQuuC,YAAc,SAAqBxF,EAAQyF,EAAQC,EAAWC,QACrD,IAAX3F,IACFA,GAAS,QAGI,IAAXyF,IACFA,GAAS,QAGO,IAAdC,IACFA,GAAY,QAGW,IAArBC,IACFA,GAAoBnX,GAMtB,IAHA,IAAIh/C,EAAI,GACJwxC,EAAQnuC,KAAK6sD,OAEV1e,GACDA,EAAMoT,QAAUuR,IACd3kB,aAAiB0iB,GACnB+B,GAAUj2D,EAAEiV,KAAKu8B,IAEjB0kB,GAAal2D,EAAEiV,KAAKu8B,GACpBgf,GAAUxwD,EAAEiV,KAAKnP,MAAM9F,EAAGwxC,EAAMwkB,aAAY,EAAMC,EAAQC,MAI9D1kB,EAAQA,EAAMjF,MAGhB,OAAOvsC,CACT,EAEAynB,EAAQ2uC,QAAU,SAAiBj9C,GAIjC,IAHA,IAAIk9C,EAAahzD,KAAK2yD,YAAY,EAAG,EAAG,GACpCn2D,EAAIw2D,EAAWp1D,OAEZpB,KACL,GAAIw2D,EAAWx2D,GAAG0rC,KAAKpyB,KAAOA,EAC5B,OAAOk9C,EAAWx2D,EAGxB,EAEA4nB,EAAQ5X,OAAS,SAAgB2hC,GAC/B,OAAI6N,EAAU7N,GACLnuC,KAAKizD,YAAY9kB,GAGtBhI,EAAYgI,GACPnuC,KAAKkzD,aAAa/kB,IAG3BwS,GAAsB3gD,KAAMmuC,GAExBA,IAAUnuC,KAAKwjD,UACjBxjD,KAAKwjD,QAAUxjD,KAAKsyD,OAGflR,GAASphD,MAClB,EAEAokB,EAAQq+B,UAAY,SAAmB0Q,EAAavT,GAClD,OAAKrgD,UAAU3B,QAIfoC,KAAKqyD,SAAW,GAEXryD,KAAK0gD,KAAO1gD,KAAKyhD,MAEpBzhD,KAAKuhD,OAASpkB,GAAO4mB,GAAQpE,MAAQ3/C,KAAKyhD,IAAM,EAAI0R,EAAcnzD,KAAKyhD,KAAOzhD,KAAKoiD,gBAAkB+Q,IAAgBnzD,KAAKyhD,OAG5HkP,EAAWzwD,UAAUuiD,UAAUl8C,KAAKvG,KAAMmzD,EAAavT,GAEvD5/C,KAAKqyD,SAAW,EACTryD,MAbEA,KAAK6hD,MAchB,EAEAz9B,EAAQsuC,SAAW,SAAkBhnB,EAAOzjC,GAE1C,OADAjI,KAAK8kD,OAAOpZ,GAASmZ,GAAe7kD,KAAMiI,GACnCjI,IACT,EAEAokB,EAAQ6uC,YAAc,SAAqBvnB,GAEzC,cADO1rC,KAAK8kD,OAAOpZ,GACZ1rC,IACT,EAEAokB,EAAQgvC,SAAW,SAAkBnrD,EAAU2c,EAAUzQ,GACvD,IAAI/X,EAAIy0D,GAAMI,YAAY,EAAGrsC,GAAY44B,GAAYrpC,GAGrD,OAFA/X,EAAEgb,KAAO,UACTpX,KAAKoyD,UAAY,EACVnP,GAAejjD,KAAM5D,EAAGyoD,GAAe7kD,KAAMiI,GACtD,EAEAmc,EAAQivC,YAAc,SAAqBprD,GACzC,IAAIkmC,EAAQnuC,KAAK6sD,OAGjB,IAFA5kD,EAAW48C,GAAe7kD,KAAMiI,GAEzBkmC,GACDA,EAAMoT,SAAWt5C,GAA2B,YAAfkmC,EAAM/2B,MACrC4pC,GAAkB7S,GAGpBA,EAAQA,EAAMjF,KAElB,EAEA9kB,EAAQ8uC,aAAe,SAAsBnrB,EAAS3/B,EAAOkrD,GAI3D,IAHA,IAAIV,EAAS5yD,KAAKuzD,YAAYxrB,EAASurB,GACnC92D,EAAIo2D,EAAOh1D,OAERpB,KACLg3D,KAAsBZ,EAAOp2D,IAAMo2D,EAAOp2D,GAAG2sC,KAAKpB,EAAS3/B,GAG7D,OAAOpI,IACT,EAEAokB,EAAQmvC,YAAc,SAAqBxrB,EAASurB,GAQlD,IAPA,IAKAtpD,EALIrN,EAAI,GACJ82D,EAAgBn8B,GAAQyQ,GACxBoG,EAAQnuC,KAAK6sD,OACb6G,EAAe12B,EAAUs2B,GAItBnlB,GACDA,aAAiB0iB,GACflS,GAAkBxQ,EAAMwlB,SAAUF,KAAmBC,IAAiBF,IAAqBrlB,EAAM0U,UAAY1U,EAAMsT,MAAQtT,EAAMwhB,WAAW,IAAM2D,GAAcnlB,EAAMwhB,WAAWxhB,EAAMiU,iBAAmBkR,GAAcA,GAAcnlB,EAAMiiB,aAE9OzzD,EAAEiV,KAAKu8B,IAECnkC,EAAWmkC,EAAMolB,YAAYE,EAAeH,IAAa11D,QACnEjB,EAAEiV,KAAKnP,MAAM9F,EAAGqN,GAGlBmkC,EAAQA,EAAMjF,MAGhB,OAAOvsC,CACT,EAQAynB,EAAQwvC,QAAU,SAAiB3rD,EAAUigC,GAC3CA,EAAOA,GAAQ,CAAC,EAEhB,IAAIiL,EAAKnzC,KACL4kD,EAAUC,GAAe1R,EAAIlrC,GAC7B4rD,EAAQ3rB,EACRoX,EAAUuU,EAAMvU,QAChBwU,EAAWD,EAAME,QACjBC,EAAgBH,EAAMG,cACtB5U,EAAkByU,EAAMzU,gBACxBtX,EAAQ+oB,GAAMhmC,GAAGsoB,EAAI6M,GAAa,CACpChb,KAAMkD,EAAKlD,MAAQ,OACnB8e,MAAM,EACN1E,iBAAiB,EACjBO,KAAMiF,EACNlJ,UAAW,OACX5R,SAAU5B,EAAK4B,UAAY5rC,KAAKC,KAAKymD,GAAWtF,GAAW,SAAUA,EAAUA,EAAQK,KAAOxM,EAAGwP,QAAUxP,EAAGiQ,cAAgBxH,EAC9HmY,QAAS,WACP5gB,EAAG6c,QACH,IAAIlmB,EAAW5B,EAAK4B,UAAY5rC,KAAKC,KAAKymD,EAAUzR,EAAGwP,OAASxP,EAAGiQ,aACnEtb,EAAMwZ,OAASxX,GAAYqa,GAAarc,EAAOgC,EAAU,EAAG,GAAGlgC,OAAOk+B,EAAM6a,OAAO,GAAM,GACzFmR,GAAYA,EAASrxD,MAAMqlC,EAAOksB,GAAiB,GACrD,GACC9rB,IAEH,OAAOkX,EAAkBtX,EAAMl+B,OAAO,GAAKk+B,CAC7C,EAEA1jB,EAAQ6vC,YAAc,SAAqBC,EAAcC,EAAYjsB,GACnE,OAAOloC,KAAK4zD,QAAQO,EAAYnU,GAAa,CAC3CV,QAAS,CACPK,KAAMkF,GAAe7kD,KAAMk0D,KAE5BhsB,GACL,EAEA9jB,EAAQ2gC,OAAS,WACf,OAAO/kD,KAAKwjD,OACd,EAEAp/B,EAAQgwC,UAAY,SAAmBC,GAKrC,YAJkB,IAAdA,IACFA,EAAYr0D,KAAK2iD,OAGZuF,GAAqBloD,KAAM6kD,GAAe7kD,KAAMq0D,GACzD,EAEAjwC,EAAQkwC,cAAgB,SAAuBC,GAK7C,YAJmB,IAAfA,IACFA,EAAav0D,KAAK2iD,OAGbuF,GAAqBloD,KAAM6kD,GAAe7kD,KAAMu0D,GAAa,EACtE,EAEAnwC,EAAQowC,aAAe,SAAsBzqD,GAC3C,OAAOxK,UAAU3B,OAASoC,KAAK4vD,KAAK7lD,GAAO,GAAQ/J,KAAKs0D,cAAct0D,KAAK2iD,MAAQ/G,EACrF,EAEAx3B,EAAQqwC,cAAgB,SAAuB9N,EAAQ+N,EAAc5B,QAC1C,IAArBA,IACFA,EAAmB,GAOrB,IAJA,IAEIn0D,EAFAwvC,EAAQnuC,KAAK6sD,OACb/H,EAAS9kD,KAAK8kD,OAGX3W,GACDA,EAAMoT,QAAUuR,IAClB3kB,EAAMoT,QAAUoF,EAChBxY,EAAMkT,MAAQsF,GAGhBxY,EAAQA,EAAMjF,MAGhB,GAAIwrB,EACF,IAAK/1D,KAAKmmD,EACJA,EAAOnmD,IAAMm0D,IACfhO,EAAOnmD,IAAMgoD,GAKnB,OAAOvF,GAASphD,KAClB,EAEAokB,EAAQ+rC,WAAa,WACnB,IAAIhiB,EAAQnuC,KAAK6sD,OAGjB,IAFA7sD,KAAKkkD,MAAQ,EAEN/V,GACLA,EAAMgiB,aACNhiB,EAAQA,EAAMjF,MAGhB,OAAOynB,EAAWzwD,UAAUiwD,WAAW5pD,KAAKvG,KAC9C,EAEAokB,EAAQqrB,MAAQ,SAAeklB,QACP,IAAlBA,IACFA,GAAgB,GAMlB,IAHA,IACIxjD,EADAg9B,EAAQnuC,KAAK6sD,OAGV1e,GACLh9B,EAAOg9B,EAAMjF,MACblpC,KAAKwM,OAAO2hC,GACZA,EAAQh9B,EAKV,OAFAnR,KAAK0gD,MAAQ1gD,KAAK2iD,MAAQ3iD,KAAK6hD,OAAS7hD,KAAKqvD,OAAS,GACtDsF,IAAkB30D,KAAK8kD,OAAS,CAAC,GAC1B1D,GAASphD,KAClB,EAEAokB,EAAQg+B,cAAgB,SAAuBr4C,GAC7C,IAII+2C,EACAlgC,EACA8X,EANA1E,EAAM,EACNwlB,EAAOx5C,KACPmuC,EAAQqL,EAAK8Y,MACbX,EAAYhW,EAKhB,GAAIp8C,UAAU3B,OACZ,OAAO47C,EAAK4J,WAAW5J,EAAKmI,QAAU,EAAInI,EAAK1P,WAAa0P,EAAK4I,kBAAoB5I,EAAKuV,YAAchlD,EAAQA,IAGlH,GAAIyvC,EAAK9T,OAAQ,CAGf,IAFAhN,EAAS8gB,EAAK9gB,OAEPyV,GACL2S,EAAO3S,EAAM4S,MAEb5S,EAAMzI,QAAUyI,EAAMiU,iBAEtBxhC,EAAQutB,EAAMoT,QAEFoQ,GAAanY,EAAK+J,OAASpV,EAAMsT,MAAQjI,EAAK0K,OAExD1K,EAAK0K,MAAQ,EAEbjB,GAAezJ,EAAMrL,EAAOvtB,EAAQutB,EAAMgV,OAAQ,GAAGe,MAAQ,GAE7DyN,EAAY/wC,EAGVA,EAAQ,GAAKutB,EAAMsT,MAErBztB,GAAOpT,IAEF8X,IAAW8gB,EAAKkH,KAAOhoB,GAAUA,EAAOgqB,qBAC3ClJ,EAAK+H,QAAU3gC,EAAQ44B,EAAKiI,IAC5BjI,EAAKmJ,OAAS/hC,EACd44B,EAAKqI,QAAUjhC,GAGjB44B,EAAKib,eAAe7zC,GAAO,GAAQ,UACnC+wC,EAAY,GAGdxjB,EAAMkT,KAAOrtB,GAAOma,EAAMsT,MAAQztB,EAAMma,EAAMkT,MAC9ClT,EAAQ2S,EAGVqD,GAAa3K,EAAMA,IAASK,GAAmBL,EAAKmJ,MAAQ3uB,EAAMwlB,EAAKmJ,MAAQ3uB,EAAK,EAAG,GAEvFwlB,EAAK9T,OAAS,CAChB,CAEA,OAAO8T,EAAK6I,KACd,EAEAqC,EAASkQ,WAAa,SAAoBjV,GAOxC,GANI9F,EAAgB4H,MAClBhC,GAAgB5F,EAAiBqI,GAAwBvC,EAAM9F,IAE/DI,EAAqB8J,GAAQC,OAG3BD,GAAQC,OAASlG,GAAc,CACjCA,IAAgB7X,EAAQmV,WAAa,IACrC,IAAIjN,EAAQ0L,EAAgBgT,OAC5B,KAAK1e,IAAUA,EAAMsT,MAASxb,EAAQmV,WAAa2I,GAAQ/I,WAAWp9C,OAAS,EAAG,CAChF,KAAOuwC,IAAUA,EAAMsT,KACrBtT,EAAQA,EAAMjF,MAGhBiF,GAAS4V,GAAQgI,OACnB,CACF,CACF,EAEOrH,CACT,CAhqBmC,CAgqBjCiK,IAEF3O,GAAa0E,GAASxkD,UAAW,CAC/BgkD,MAAO,EACPkO,UAAW,EACXC,SAAU,IAGZ,IAuIImB,GAvIAqB,GAA6B,SAAoCx8B,EAAQy8B,EAAMl0C,EAAO0lC,EAAKyO,EAAQC,EAAcC,GAEnH,IAGIlkD,EACAmkD,EACAnK,EACAoK,EACAtxC,EACAuxC,EACAC,EACA14D,EAVAqsC,EAAK,IAAIssB,GAAUt1D,KAAKipC,IAAK5Q,EAAQy8B,EAAM,EAAG,EAAGS,GAAsB,KAAMR,GAC7EtyC,EAAQ,EACR+yC,EAAa,EA6BjB,IApBAxsB,EAAGxpC,EAAIohB,EACPooB,EAAG3sC,EAAIiqD,EACP1lC,GAAS,IAILy0C,IAFJ/O,GAAO,IAEcv0C,QAAQ,cAC3Bu0C,EAAMmB,GAAenB,IAGnB0O,IAEFA,EADAr4D,EAAI,CAACikB,EAAO0lC,GACIjuB,EAAQy8B,GAExBl0C,EAAQjkB,EAAE,GACV2pD,EAAM3pD,EAAE,IAGVu4D,EAAYt0C,EAAMrgB,MAAMo8C,KAAyB,GAE1C5rC,EAAS4rC,GAAqB1oB,KAAKqyB,IACxC6O,EAASpkD,EAAO,GAChB8S,EAAQyiC,EAAI9lD,UAAUiiB,EAAO1R,EAAO0R,OAEhCsoC,EACFA,GAASA,EAAQ,GAAK,EACQ,UAArBlnC,EAAMyP,QAAQ,KACvBy3B,EAAQ,GAGNoK,IAAWD,EAAUM,OACvBJ,EAAW1tB,WAAWwtB,EAAUM,EAAa,KAAO,EAEpDxsB,EAAGC,IAAM,CACPC,MAAOF,EAAGC,IACVtqC,EAAGklB,GAAwB,IAAf2xC,EAAmB3xC,EAAQ,IAEvCpnB,EAAG24D,EACHv4D,EAAwB,MAArBs4D,EAAO7iD,OAAO,GAAao1B,WAAWytB,EAAO7hC,OAAO,KAA4B,MAArB6hC,EAAO7iD,OAAO,IAAc,EAAI,GAAKo1B,WAAWytB,GAAUC,EACxH13D,EAAGqtD,GAASA,EAAQ,EAAI7sD,KAAKgF,MAAQ,GAEvCuf,EAAQk6B,GAAqByO,WAcjC,OAVApiB,EAAGnsC,EAAI4lB,EAAQ6jC,EAAI1oD,OAAS0oD,EAAI9lD,UAAUiiB,EAAO6jC,EAAI1oD,QAAU,GAE/DorC,EAAGysB,GAAKR,GAEJrY,GAAQt8C,KAAKgmD,IAAQ+O,KACvBrsB,EAAG3sC,EAAI,GAGT2D,KAAKipC,IAAMD,EAEJA,CACT,EACI0sB,GAAgB,SAAuBr9B,EAAQy8B,EAAMl0C,EAAO0lC,EAAK7jC,EAAOslB,EAAS4tB,EAAUX,EAAcC,GAC3G9uB,EAAYmgB,KAASA,EAAMA,EAAI7jC,GAAS,EAAG4V,EAAQ0P,IACnD,IAGIiB,EAHA4sB,EAAev9B,EAAOy8B,GACtBe,EAAwB,QAAVj1C,EAAkBA,EAASulB,EAAYyvB,GAA+BX,EAAY58B,EAAOy8B,EAAK/iD,QAAQ,SAAWo0B,EAAY9N,EAAO,MAAQy8B,EAAKxhC,OAAO,KAAOwhC,EAAO,MAAQA,EAAKxhC,OAAO,IAAI2hC,GAAa58B,EAAOy8B,KAA3Jc,EACrEb,EAAU5uB,EAAYyvB,GAA+BX,EAAYa,GAAuBC,GAAlDC,GAa1C,GAVIha,EAAUsK,MACPA,EAAIv0C,QAAQ,aACfu0C,EAAMmB,GAAenB,IAGD,MAAlBA,EAAIh0C,OAAO,KACbg0C,EAAM5e,WAAWmuB,GAAenuB,WAAW4e,EAAIhzB,OAAO,KAAyB,MAAlBgzB,EAAIh0C,OAAO,IAAc,EAAI,IAAM4yC,GAAQ2Q,IAAgB,KAIxHA,IAAgBvP,EAClB,OAAK10B,MAAMikC,EAAcvP,KAOxBsP,KAAkBd,KAAQz8B,IAAW+kB,GAAe0X,EAAMxO,GACpDuO,GAA2BtuD,KAAKvG,KAAMq4B,EAAQy8B,EAAMe,EAAavP,EAAKyO,EAAQC,GAAgB/uB,EAAQ+uB,aAAcC,KAPzHjsB,EAAK,IAAIssB,GAAUt1D,KAAKipC,IAAK5Q,EAAQy8B,GAAOe,GAAe,EAAGvP,GAAOuP,GAAe,GAA4B,kBAAjBD,EAA6BK,GAAiBC,GAAc,EAAGnB,GAC9JE,IAAcjsB,EAAGysB,GAAKR,GACtBU,GAAY3sB,EAAG2sB,SAASA,EAAU31D,KAAMq4B,GACjCr4B,KAAKipC,IAAMD,EAMxB,EAkBImtB,GAAe,SAAsB7sB,EAAUpB,EAAMJ,EAAOrlB,EAAO4V,EAAQ0P,GAC7E,IAAI53B,EAAQ64B,EAAIotB,EAAU55D,EAE1B,GAAIohD,GAAStU,KAAwL,KAA1Kn5B,EAAS,IAAIytC,GAAStU,IAAa5oC,KAAK23B,EAAQloB,EAAO03B,QAAUK,EAAKoB,GAnBpF,SAAsBpB,EAAMzlB,EAAO4V,EAAQ0P,EAASD,GAGjE,GAFA3B,EAAY+B,KAAUA,EAAOmuB,GAAmBnuB,EAAMJ,EAAOrlB,EAAO4V,EAAQ0P,KAEvEmU,EAAUhU,IAASA,EAAK1hB,OAAS0hB,EAAKnhB,UAAYy1B,EAAStU,IAASmU,EAAcnU,GACrF,OAAO8T,EAAU9T,GAAQmuB,GAAmBnuB,EAAMJ,EAAOrlB,EAAO4V,EAAQ0P,GAAWG,EAGrF,IACIvpC,EADA4hD,EAAO,CAAC,EAGZ,IAAK5hD,KAAKupC,EACRqY,EAAK5hD,GAAK03D,GAAmBnuB,EAAKvpC,GAAImpC,EAAOrlB,EAAO4V,EAAQ0P,GAG9D,OAAOwY,CACT,CAI+G+V,CAAapuB,EAAKoB,GAAW7mB,EAAO4V,EAAQ0P,EAASD,GAAQA,EAAOrlB,EAAOslB,KACtLD,EAAMmB,IAAMD,EAAK,IAAIssB,GAAUxtB,EAAMmB,IAAK5Q,EAAQiR,EAAU,EAAG,EAAGn5B,EAAOvG,OAAQuG,EAAQ,EAAGA,EAAOomD,UAE/FzuB,IAAUoS,GAKZ,IAJAkc,EAAWtuB,EAAMsnB,UAAUtnB,EAAM6rB,SAAS5hD,QAAQsmB,IAElD77B,EAAI2T,EAAOs4B,OAAO7qC,OAEXpB,KACL45D,EAASjmD,EAAOs4B,OAAOjsC,IAAMwsC,EAKnC,OAAO74B,CACT,EAGA0zC,GAAa,SAASA,EAAW/b,EAAO6X,GACtC,IAmBI6W,EACAh6D,EACAmC,EACAqqC,EACA3Q,EACAo+B,EACAC,EACAtY,EACAjuC,EACAimD,EACA3zC,EACAk0C,EACAC,EA/BA1uB,EAAOJ,EAAMI,KACblD,EAAOkD,EAAKlD,KACZsa,EAAUpX,EAAKoX,QACfF,EAAkBlX,EAAKkX,gBACvB0E,EAAO5b,EAAK4b,KACZ0O,EAAWtqB,EAAKsqB,SAChBqE,EAAiB3uB,EAAK2uB,eACtBrO,EAAgBtgB,EAAKsgB,cACrBnJ,EAAenX,EAAKmX,aACpByN,EAAW5kB,EAAK4kB,SAChBrM,EAAYvY,EAAKuY,UACjBqW,EAAa5uB,EAAK4uB,WAClBvS,EAAMzc,EAAMwZ,KACZyV,EAAcjvB,EAAMkvB,SACpBjvB,EAAUD,EAAM6rB,SAChBj7B,EAASoP,EAAMpP,OACfu+B,EAAcv+B,GAA0B,WAAhBA,EAAOthB,KAAoBshB,EAAOA,OAAOi7B,SAAW5rB,EAC5EmvB,EAAqC,SAArBpvB,EAAMqvB,aAA0Bvd,EAChDzG,EAAKrL,EAAM6K,SAyBf,GAXAQ,KAAQsN,IAAczb,KAAUA,EAAO,QACvC8C,EAAMklB,MAAQjH,GAAW/gB,EAAMyW,EAAUzW,MACzC8C,EAAMmlB,OAASH,EAAWlG,GAAYb,IAAwB,IAAb+G,EAAoB9nB,EAAO8nB,EAAUrR,EAAUzW,OAAS,EAErG8nB,GAAYhlB,EAAMilB,QAAUjlB,EAAM6Z,UAEpCmL,EAAWhlB,EAAMmlB,OACjBnlB,EAAMmlB,OAASnlB,EAAMklB,MACrBllB,EAAMklB,MAAQF,IAGX3Z,EAAI,CAQP,GALAwjB,GADAvY,EAAUrW,EAAQ,GAAKwW,GAAUxW,EAAQ,IAAIqW,QAAU,IAC9BlW,EAAKkW,EAAQ0W,MAEtC0B,EAAYnW,GAAenY,EAAMuV,IACjCsZ,GAAeA,EAAYntD,QAAQ,GAAG,GAAMu/B,OAExCmW,EAgBF,GAfA0B,GAAkBlZ,EAAMkvB,SAAWnG,GAAMzuD,IAAI2lC,EAASiY,GAAa,CACjE5oC,KAAM,UACNskC,WAAW,EACXhjB,OAAQA,EACR0mB,iBAAiB,EACjB0E,KAAM3H,EAAY2H,GAClBxE,QAAS,KACThN,MAAO,EACPkgB,SAAUA,EACVqE,eAAgBA,EAChBrO,cAAeA,EACf2I,QAAS,GACR7R,KAGCF,GACF,GAAIO,EAAO,EACTmX,IAAehvB,EAAMkvB,SAAW,QAC3B,GAAIzS,KAAS5E,EAAO,GAAKoX,GAE9B,YADApX,IAAS7X,EAAMkb,OAASrD,SAGF,IAAfmX,IACThvB,EAAMkvB,SAAW,QAEd,GAAI3X,GAAgBkF,EAEzB,GAAIwS,GACDD,IAAehvB,EAAMkvB,SAAW,QAmBjC,GAjBArX,IAASP,GAAkB,GAE3BzgD,EAAIqhD,GAAa,CACftE,WAAW,EACXtkC,KAAM,cAEN0sC,KAAM1E,GAAmBjD,EAAY2H,GACrC1E,gBAAiBA,EAEjB+R,QAAS,EACTz4B,OAAQA,GAEP89B,GACHG,IAAgBh4D,EAAEy/C,EAAQ0W,MAAQ6B,GAElC3V,GAAkBlZ,EAAMkvB,SAAWnG,GAAMzuD,IAAI2lC,EAASppC,IAEjDygD,GAGE,IAAKO,EACV,YAHAkE,EAAW/b,EAAMkvB,SAAUpb,GAWjC,IAHA9T,EAAMmB,IAAM,EACZ6a,EAAOS,GAAOpI,EAAY2H,IAASA,IAASS,EAEvC/nD,EAAI,EAAGA,EAAIurC,EAAQnqC,OAAQpB,IAAK,CAkBnC,GAhBAk6D,GADAr+B,EAAS0P,EAAQvrC,IACD2hD,OAASF,GAASlW,GAASvrC,GAAG2hD,MAC9CrW,EAAMsnB,UAAU5yD,GAAK45D,EAAW,CAAC,EACjCzY,GAAY+Y,EAAO5gD,KAAO4nC,GAAY9/C,QAAU2hD,KAEhD98B,EAAQw0C,IAAgBlvB,EAAUvrC,EAAIy6D,EAAYllD,QAAQsmB,GAEtD+lB,IAA0G,KAA9FjuC,EAAS,IAAIiuC,GAAW19C,KAAK23B,EAAQs+B,GAAeH,EAAW1uB,EAAOrlB,EAAOw0C,KAC3FnvB,EAAMmB,IAAMD,EAAK,IAAIssB,GAAUxtB,EAAMmB,IAAK5Q,EAAQloB,EAAO9S,KAAM,EAAG,EAAG8S,EAAOvG,OAAQuG,EAAQ,EAAGA,EAAOomD,UAEtGpmD,EAAOs4B,OAAOzkC,SAAQ,SAAU3G,GAC9B+4D,EAAS/4D,GAAQ2rC,CACnB,IAEA74B,EAAOomD,WAAaE,EAAc,KAG/BrY,GAAWuY,EACd,IAAKh4D,KAAK63D,EACJ5Y,GAASj/C,KAAOwR,EAASgmD,GAAax3D,EAAG63D,EAAW1uB,EAAOrlB,EAAO4V,EAAQ4+B,IAC5E9mD,EAAOomD,WAAaE,EAAc,GAElCL,EAASz3D,GAAKqqC,EAAK0sB,GAAcnvD,KAAKuhC,EAAOzP,EAAQ15B,EAAG,MAAO63D,EAAU73D,GAAI8jB,EAAOw0C,EAAa,EAAG/uB,EAAK8sB,cAK/GltB,EAAMsvB,KAAOtvB,EAAMsvB,IAAI56D,IAAMsrC,EAAMqB,KAAK9Q,EAAQyP,EAAMsvB,IAAI56D,IAEtD06D,GAAiBpvB,EAAMmB,MACzBuqB,GAAoB1rB,EAEpB+R,EAAgBqZ,aAAa76B,EAAQ+9B,EAAUtuB,EAAM6nB,WAAW,IAGhEiH,GAAe9uB,EAAMpP,OACrB86B,GAAoB,GAGtB1rB,EAAMmB,KAAO6a,IAASnG,GAAY+Y,EAAO5gD,IAAM,EACjD,CAEA2gD,GAAeY,GAA0BvvB,GACzCA,EAAMwvB,SAAWxvB,EAAMwvB,QAAQxvB,EACjC,CAEAA,EAAMyvB,OAASpkB,KAAQjL,EAAKmX,aAE5BvX,EAAMwoB,UAAYkC,EAClB1qB,EAAM+a,WAAa/a,EAAMsvB,KAAOtvB,EAAMmB,OAAS2tB,CACjD,EA4BIP,GAAqB,SAA4BtsD,EAAO+9B,EAAOtrC,EAAG67B,EAAQ0P,GAC5E,OAAO5B,EAAYp8B,GAASA,EAAMxD,KAAKuhC,EAAOtrC,EAAG67B,EAAQ0P,GAAWiU,EAAUjyC,KAAWA,EAAMgI,QAAQ,WAAa01C,GAAe19C,GAASA,CAC9I,EACIytD,GAAqBxZ,GAAiB,iDACtCyZ,IAAuBD,GAAqB,mDAAmDj6D,MAAM,KAQ9FszD,GAAqB,SAAU6G,GAGxC,SAAS7G,EAAM9oB,EAASG,EAAMyX,EAAMgY,GAClC,IAAIC,EAEgB,iBAAT1vB,IACTyX,EAAK7V,SAAW5B,EAChBA,EAAOyX,EACPA,EAAO,MAIT,IAYIxM,EACA32C,EACA+jD,EACAtjD,EACA0B,EACAk5D,EACAC,EACAC,EAnBAC,GADJJ,EAASF,EAAYnxD,KAAKvG,KAAM23D,EAAczvB,EAAOsY,GAAiBtY,GAAOyX,IAAS3/C,MAC7DkoC,KACrB4B,EAAWkuB,EAAYluB,SACvBwI,EAAQ0lB,EAAY1lB,MACpB8M,EAAkB4Y,EAAY5Y,gBAC9B+R,EAAU6G,EAAY7G,QACtBzV,EAAYsc,EAAYtc,UACxB+E,EAAYuX,EAAYvX,UACxBvB,EAAW8Y,EAAY9Y,SACvBwJ,EAAgBsP,EAAYtP,cAC5BoE,EAAWkL,EAAYlL,SACvBp0B,EAASk/B,EAAOl/B,OAChB+6B,GAAiBjX,EAASzU,IAAYsU,EAActU,GAAW/K,EAAU+K,EAAQ,IAAM,WAAYG,GAAQ,CAACH,GAAWzQ,GAAQyQ,GAcnI,GALA6vB,EAAOjE,SAAWF,EAAc71D,OAASqgD,GAASwV,GAAiBpW,GAAM,eAAiBtV,EAAU,qCAAsC9B,EAAQqV,iBAAmB,GACrKsc,EAAOxI,UAAY,GAEnBwI,EAAOT,WAAazb,EAEhB+E,GAAa0Q,GAAW/U,EAAgBtS,IAAasS,EAAgB9J,GAAQ,CAU/E,GATApK,EAAO0vB,EAAO1vB,MACdiL,EAAKykB,EAAOjlB,SAAW,IAAI+R,GAAS,CAClCttC,KAAM,SACN8nC,SAAUA,GAAY,CAAC,KAEtB/V,OACHgK,EAAGza,OAASya,EAAGuN,IAAM5nC,EAAuB8+C,GAC5CzkB,EAAGoO,OAAS,EAERd,EACFT,GAAa7M,EAAGjL,KAAKgX,SAAU,CAC7Bla,KAAM,SAGRyb,EAAUz8C,SAAQ,SAAUggD,GAC1B,OAAO7Q,EAAGtoB,GAAG4oC,EAAezP,EAAO,IACrC,QACK,CAIL,GAHA/mD,EAAIw2D,EAAc71D,OAClBk6D,EAAc3G,EAAUtL,GAAWsL,GAAW3T,GAE1CtB,EAAUiV,GAEZ,IAAKxyD,KAAKwyD,GACHqG,GAAmBzlD,QAAQpT,KAC9Bo5D,IAAuBA,EAAqB,CAAC,GAC7CA,EAAmBp5D,GAAKwyD,EAAQxyD,IAKtC,IAAKnC,EAAI,EAAGA,EAAIS,EAAGT,IAAK,CAGtB,IAAKmC,KAFL4hD,EAAO,CAAC,EAEErY,EACJuvB,GAAoB1lD,QAAQpT,GAAK,IACnC4hD,EAAK5hD,GAAKupC,EAAKvpC,IAInB4hD,EAAK4Q,QAAU,EACfrE,IAAavM,EAAKuM,SAAWA,GAC7BiL,GAAsB5a,GAAOoD,EAAMwX,GACnCF,EAAYpE,EAAcj3D,GAE1B+jD,EAAKzW,UAAYusB,GAAmBvsB,EAAUhxB,EAAuB8+C,GAASp7D,EAAGq7D,EAAWpE,GAC5FlT,EAAKjO,QAAU+jB,GAAmB/jB,EAAOx5B,EAAuB8+C,GAASp7D,EAAGq7D,EAAWpE,IAAkB,GAAKmE,EAAOzU,QAEhHgO,GAAiB,IAANl0D,GAAWsjD,EAAKjO,QAE9BslB,EAAOzU,OAAS7Q,EAAQiO,EAAKjO,MAC7BslB,EAAOrW,QAAUjP,EACjBiO,EAAKjO,MAAQ,GAGfa,EAAGtoB,GAAGgtC,EAAWtX,EAAMuX,EAAYt7D,EAAGq7D,EAAWpE,GACnD,CAEAtgB,EAAGrJ,WAAaA,EAAWwI,EAAQ,EAAIslB,EAAOjlB,SAAW,CAC3D,CAEA7I,GAAY8tB,EAAO9tB,SAASA,EAAWqJ,EAAGrJ,WAC5C,MACE8tB,EAAOjlB,SAAW,EAqBpB,OAlBkB,IAAd+I,GAAuB9B,IACzB4Z,GAAoB16C,EAAuB8+C,GAE3C/d,EAAgBqZ,aAAaO,GAE7BD,GAAoB,GAGtB96B,GAAUkqB,GAAelqB,EAAQ5f,EAAuB8+C,KAEpDxY,IAAoBtV,IAAa2W,GAAamX,EAAOrW,SAAWpkB,GAAOzE,EAAOiqB,QAAUxG,EAAYiD,IAAoBoC,GAAsB1oC,EAAuB8+C,KAA4B,WAAhBl/B,EAAOthB,QAC1LwgD,EAAO/V,QAAS,KAEhB+V,EAAOhuD,OAAO1L,KAAK81B,IAAI,GAAIse,KAI7BoW,GAAiBjF,GAAe3qC,EAAuB8+C,GAASlP,GACzDkP,CACT,CA3HA3+C,EAAe43C,EAAO6G,GA6HtB,IAAIO,EAAUpH,EAAM3wD,UAkRpB,OAhRA+3D,EAAQruD,OAAS,SAAgB64C,EAAW7C,EAAgBC,GAC1D,IAIIF,EACA3W,EACAsmB,EACAtN,EACA4P,EACAhF,EACA/jB,EACA8J,EACAma,EAZA+E,EAAW7xD,KAAK2iD,MAChBmP,EAAO9xD,KAAKqiD,MACZkC,EAAMvkD,KAAKshD,KACXS,EAAQU,EAAYqP,EAAOlW,GAAY6G,GAAa,EAAIqP,EAAOrP,EAAY7G,EAAW,EAAI6G,EAW9F,GAAK8B,GAEE,GAAIxC,IAAU/hD,KAAK6hD,SAAWY,GAAa5C,IAAU7/C,KAAK6iD,UAAY7iD,KAAK6hD,QAAU7hD,KAAKg3D,UAAYh3D,KAAKgjD,OAAS,GAAMP,EAAY,EAAG,CAK9I,GAHA9C,EAAOoC,EACPpP,EAAW3yC,KAAK2yC,SAEZ3yC,KAAK2hD,QAAS,CAIhB,GAFAK,EAAgBuC,EAAMvkD,KAAK8hD,QAEvB9hD,KAAK2hD,SAAW,GAAKc,EAAY,EACnC,OAAOziD,KAAKyiD,UAA0B,IAAhBT,EAAsBS,EAAW7C,EAAgBC,GA6BzE,GA1BAF,EAAOxiB,GAAO4kB,EAAQC,GAElBD,IAAU+P,GAEZxC,EAAYtvD,KAAK2hD,QACjBhC,EAAO4E,KAEP+K,KAAevN,EAAQC,KAENsN,IAAcvN,EAAQC,IACrCrC,EAAO4E,EACP+K,KAGF3P,EAAO4E,IAAQ5E,EAAO4E,KAGxBqI,EAAS5sD,KAAK+sD,OAAqB,EAAZuC,KAGrBxC,EAAW9sD,KAAKitD,OAChBtN,EAAO4E,EAAM5E,GAGfiS,EAAgBhQ,GAAgB5hD,KAAK6hD,OAAQG,GAEzCrC,IAASkS,IAAahS,GAAS7/C,KAAK6iD,SAEtC,OAAO7iD,KAGLsvD,IAAcsC,IAChBjf,GAAY3yC,KAAKitD,QAAUN,GAAmBha,EAAUia,IAEpD5sD,KAAKkoC,KAAKgqB,eAAkBtF,GAAW5sD,KAAKkkD,QAC9ClkD,KAAKkkD,MAAQrE,EAAQ,EAErB7/C,KAAK4J,OAAOuzB,GAAO6kB,EAAgBsN,IAAY,GAAMa,aAAajM,MAAQ,GAGhF,CAEA,IAAKlkD,KAAK6iD,SAAU,CAClB,GAAIe,GAAkB5jD,KAAMyiD,EAAY,EAAIA,EAAY9C,EAAME,EAAOD,GAGnE,OAFA5/C,KAAK6hD,OAAS,EAEP7hD,KAGT,GAAIukD,IAAQvkD,KAAKshD,KAEf,OAAOthD,KAAK4J,OAAO64C,EAAW7C,EAAgBC,EAElD,CAoBA,IAlBA7/C,KAAK6hD,OAASE,EACd/hD,KAAK2iD,MAAQhD,GAER3/C,KAAKmhD,MAAQnhD,KAAKyhD,MACrBzhD,KAAKmhD,KAAO,EAEZnhD,KAAKw/C,MAAQ,GAGfx/C,KAAK6oC,MAAQA,GAASikB,GAAY9sD,KAAKgtD,OAAOrN,EAAO4E,GAEjDvkD,KAAKu3D,QACPv3D,KAAK6oC,MAAQA,EAAQ,EAAIA,GAG3B8W,IAASkS,IAAajS,GAAkB0I,GAAUtoD,KAAM,WACxDgpC,EAAKhpC,KAAKipC,IAEHD,GACLA,EAAGzsC,EAAEssC,EAAOG,EAAGhsC,GACfgsC,EAAKA,EAAGE,MAGVyJ,GAAYA,EAAS/oC,OAAO64C,EAAY,EAAIA,GAAa9C,GAAQiN,GAAS,KAAYja,EAAS2O,KAAOzY,EAAO+W,EAAgBC,IAAU7/C,KAAKg3D,WAAah3D,KAAKgjD,OAASP,GAEnKziD,KAAKswD,YAAc1Q,IACrB6C,EAAY,GAAKziD,KAAKg3D,UAAYh3D,KAAKg3D,SAASptD,OAAO64C,GAAW,EAAM5C,GAExEyI,GAAUtoD,KAAM,aAGlBA,KAAK2hD,SAAW2N,IAAcsC,GAAiB5xD,KAAKkoC,KAAKiqB,WAAavS,GAAkB5/C,KAAK04B,QAAU4vB,GAAUtoD,KAAM,YAElH+hD,IAAU/hD,KAAKqiD,OAAUN,GAAU/hD,KAAK6hD,SAAWE,IACtDU,EAAY,GAAKziD,KAAKg3D,WAAah3D,KAAKswD,WAAatwD,KAAKg3D,SAASptD,OAAO64C,GAAW,GAAM,IAC1FA,IAAc8B,KAASxC,IAAU/hD,KAAKqiD,OAASriD,KAAKyhD,IAAM,IAAMM,GAAS/hD,KAAKyhD,IAAM,IAAMT,GAAkBhhD,KAAM,GAE9G4/C,GAAoB6C,EAAY,IAAMoP,IAAc9P,IAAS8P,IAEhEvJ,GAAUtoD,KAAM+hD,IAAU+P,EAAO,aAAe,qBAAqB,GAErE9xD,KAAK0wD,SAAW3O,EAAQ+P,GAAQ9xD,KAAKojD,YAAc,IAAMpjD,KAAK0wD,SAGpE,OA7qFuB,SAAkC5oB,EAAO2a,EAAW7C,EAAgBC,GAC7F,IAKI7W,EACAsmB,EACAsC,EAPAsG,EAAYpwB,EAAMe,MAClBA,EAAQ4Z,EAAY,IAAMA,KAAe3a,EAAMyZ,QAAU0C,GAA6Bnc,KAAWA,EAAM2Z,IAAM,GAAK3Z,EAAM4Y,IAAIe,IAAM,IAAqB,gBAAf3Z,EAAM1wB,MAAyC,YAAf0wB,EAAM1wB,MAAsB,EAAI,EAE5My3C,EAAc/mB,EAAMga,QAChBC,EAAQ,EAkBZ,GAbI8M,GAAe/mB,EAAM6Z,UAEvBI,EAAQgB,GAAO,EAAGjb,EAAMua,MAAOI,GAC/B6M,EAAY1N,GAAgBG,EAAO8M,GACnC+C,EAAgBhQ,GAAgB9Z,EAAM+Z,OAAQgN,GAC9C/mB,EAAMilB,OAAqB,EAAZuC,IAAkBzmB,EAAQ,EAAIA,GAEzCymB,IAAcsC,IAChBsG,EAAY,EAAIrvB,EAChBf,EAAMI,KAAKgqB,eAAiBpqB,EAAM+a,UAAY/a,EAAMqoB,eAIpDtnB,IAAUqvB,GAAarY,GAAS/X,EAAMkb,SAAWpH,IAAa6G,GAAa3a,EAAMkb,OAAQ,CAC3F,IAAKlb,EAAM+a,UAAYe,GAAkB9b,EAAO2a,EAAW5C,EAAOD,GAEhE,OAcF,IAXAgS,EAAgB9pB,EAAMkb,OACtBlb,EAAMkb,OAASP,IAAc7C,EAAiBhE,EAAW,GAEzDgE,IAAmBA,EAAiB6C,IAAcmP,GAElD9pB,EAAMe,MAAQA,EACdf,EAAMyvB,QAAU1uB,EAAQ,EAAIA,GAC5Bf,EAAM6a,MAAQ,EACd7a,EAAM+Z,OAASE,EACf/Y,EAAKlB,EAAMmB,IAEJD,GACLA,EAAGzsC,EAAEssC,EAAOG,EAAGhsC,GACfgsC,EAAKA,EAAGE,MAGVpB,EAAMkvB,UAAYvU,EAAY,GAAK3a,EAAMkvB,SAASptD,OAAO64C,GAAW,GAAM,GAC1E3a,EAAMwoB,YAAc1Q,GAAkB0I,GAAUxgB,EAAO,YACvDia,GAASja,EAAM6Z,UAAY/B,GAAkB9X,EAAMpP,QAAU4vB,GAAUxgB,EAAO,aAEzE2a,GAAa3a,EAAMua,OAASI,EAAY,IAAM3a,EAAMe,QAAUA,IACjEA,GAASmY,GAAkBlZ,EAAO,GAE7B8X,IACH0I,GAAUxgB,EAAOe,EAAQ,aAAe,qBAAqB,GAE7Df,EAAM4oB,OAAS5oB,EAAM4oB,SAG3B,MAAY5oB,EAAMkb,SAChBlb,EAAMkb,OAASP,EAEnB,CA+/EM0V,CAAyBn4D,KAAMyiD,EAAW7C,EAAgBC,GAmH5D,OAAO7/C,IACT,EAEAi4D,EAAQlwB,QAAU,WAChB,OAAO/nC,KAAK2zD,QACd,EAEAsE,EAAQ9H,WAAa,WAInB,OAHAnwD,KAAKipC,IAAMjpC,KAAKo3D,IAAMp3D,KAAKg3D,SAAWh3D,KAAKswD,UAAYtwD,KAAKw/C,MAAQx/C,KAAK6oC,MAAQ,EACjF7oC,KAAKovD,UAAY,GACjBpvD,KAAK2yC,UAAY3yC,KAAK2yC,SAASwd,aACxBuH,EAAYx3D,UAAUiwD,WAAW5pD,KAAKvG,KAC/C,EAEAi4D,EAAQ9uB,KAAO,SAAcpB,EAASG,GAKpC,QAJa,IAATA,IACFA,EAAO,SAGJH,GAAaG,GAAiB,QAATA,GAExB,OADAloC,KAAKw/C,MAAQx/C,KAAKipC,IAAM,EACjBjpC,KAAK04B,OAAS+vB,GAAWzoD,MAAQA,KAG1C,GAAIA,KAAK2yC,SAAU,CACjB,IAAImf,EAAO9xD,KAAK2yC,SAASyP,gBAKzB,OAJApiD,KAAK2yC,SAASugB,aAAanrB,EAASG,EAAMsrB,KAA0D,IAArCA,GAAkBtrB,KAAKwT,WAAoBmR,QAAUpE,GAAWzoD,MAE/HA,KAAK04B,QAAUo5B,IAAS9xD,KAAK2yC,SAASyP,iBAAmB+B,GAAankD,KAAMA,KAAKshD,KAAOthD,KAAK2yC,SAAS0P,MAAQyP,EAAM,EAAG,GAEhH9xD,IACT,CAEA,IAIIo4D,EACAC,EACAC,EACAlwD,EACAzJ,EACAqqC,EACAxsC,EAVAi3D,EAAgBzzD,KAAK2zD,SACrB4E,EAAiBxwB,EAAUzQ,GAAQyQ,GAAW0rB,EAC9C+E,EAAkBx4D,KAAKovD,UACvBqJ,EAAUz4D,KAAKipC,IASnB,KAAMf,GAAiB,QAATA,IAx6FC,SAAsBlE,EAAIC,GAI3C,IAHA,IAAIznC,EAAIwnC,EAAGpmC,OACP2C,EAAQ/D,IAAMynC,EAAGrmC,OAEd2C,GAAS/D,KAAOwnC,EAAGxnC,KAAOynC,EAAGznC,KAEpC,OAAOA,EAAI,CACb,CAi6FqCk8D,CAAajF,EAAe8E,GAE3D,MADS,QAATrwB,IAAmBloC,KAAKipC,IAAM,GACvBwf,GAAWzoD,MAsBpB,IAnBAo4D,EAAmBp4D,KAAKo3D,IAAMp3D,KAAKo3D,KAAO,GAE7B,QAATlvB,IAEE8T,EAAU9T,KACZvpC,EAAI,CAAC,EAEL8/C,GAAavW,GAAM,SAAU7qC,GAC3B,OAAOsB,EAAEtB,GAAQ,CACnB,IAEA6qC,EAAOvpC,GAGTupC,EA1WkB,SAA2BH,EAASG,GAC1D,IAEIqY,EACA5hD,EACAnC,EACAm8D,EALAva,EAAUrW,EAAQ,GAAKwW,GAAUxW,EAAQ,IAAIqW,QAAU,EACvDwa,EAAkBxa,GAAWA,EAAQua,QAMzC,IAAKC,EACH,OAAO1wB,EAKT,IAAKvpC,KAFL4hD,EAAOpD,GAAO,CAAC,EAAGjV,GAER0wB,EACR,GAAIj6D,KAAK4hD,EAIP,IAFA/jD,GADAm8D,EAAUC,EAAgBj6D,GAAGpB,MAAM,MACvBK,OAELpB,KACL+jD,EAAKoY,EAAQn8D,IAAM+jD,EAAK5hD,GAK9B,OAAO4hD,CACT,CAgVasY,CAAkBpF,EAAevrB,IAG1C1rC,EAAIi3D,EAAc71D,OAEXpB,KACL,IAAK+7D,EAAexmD,QAAQ0hD,EAAcj3D,IAYxC,IAAKmC,KAXL05D,EAAYG,EAAgBh8D,GAEf,QAAT0rC,GACFkwB,EAAiB57D,GAAK0rC,EACtB9/B,EAAQiwD,EACRC,EAAoB,CAAC,IAErBA,EAAoBF,EAAiB57D,GAAK47D,EAAiB57D,IAAM,CAAC,EAClE4L,EAAQ8/B,GAGA9/B,GACR4gC,EAAKqvB,GAAaA,EAAU15D,MAGpB,SAAUqqC,EAAGhsC,IAAuB,IAAjBgsC,EAAGhsC,EAAEmsC,KAAKxqC,IACjCgiD,GAAsB3gD,KAAMgpC,EAAI,cAG3BqvB,EAAU15D,IAGO,QAAtB25D,IACFA,EAAkB35D,GAAK,GAQ/B,OAFAqB,KAAK6iD,WAAa7iD,KAAKipC,KAAOwvB,GAAWhQ,GAAWzoD,MAE7CA,IACT,EAEA6wD,EAAMhmC,GAAK,SAAYkd,EAASG,GAC9B,OAAO,IAAI2oB,EAAM9oB,EAASG,EAAM3oC,UAAU,GAC5C,EAEAsxD,EAAMrxC,KAAO,SAAcuoB,EAASG,GAClC,OAAO,IAAI2oB,EAAM9oB,EAAS+W,GAAWv/C,UAAW,GAClD,EAEAsxD,EAAMI,YAAc,SAAqB3e,EAAO1tB,EAAUzQ,EAAQ+oC,GAChE,OAAO,IAAI2T,EAAMjsC,EAAU,EAAG,CAC5Bw6B,iBAAiB,EACjB0E,MAAM,EACNpI,WAAW,EACXpJ,MAAOA,EACPU,WAAYpuB,EACZk0C,kBAAmBl0C,EACnB0sC,iBAAkBn9C,EAClB4kD,wBAAyB5kD,EACzBq0C,cAAetL,GAEnB,EAEA2T,EAAMC,OAAS,SAAgB/oB,EAASgpB,EAAUC,GAChD,OAAO,IAAIH,EAAM9oB,EAAS+W,GAAWv/C,UAAW,GAClD,EAEAsxD,EAAMzuD,IAAM,SAAa2lC,EAASG,GAGhC,OAFAA,EAAK4B,SAAW,EAChB5B,EAAK2mB,cAAgB3mB,EAAKoc,OAAS,GAC5B,IAAIuM,EAAM9oB,EAASG,EAC5B,EAEA2oB,EAAMqC,aAAe,SAAsBnrB,EAAS3/B,EAAOkrD,GACzD,OAAOzZ,EAAgBqZ,aAAanrB,EAAS3/B,EAAOkrD,EACtD,EAEOzC,CACT,CAjZgC,CAiZ9BlC,IAEF3O,GAAa6Q,GAAM3wD,UAAW,CAC5ByzD,SAAU,GACVnU,MAAO,EACPwX,SAAU,EACVI,IAAK,EACLE,QAAS,IAWX7Y,GAAa,uCAAuC,SAAUphD,GAC5DwzD,GAAMxzD,GAAQ,WACZ,IAAI81C,EAAK,IAAIuR,GACTvwC,EAASgxC,GAAO5+C,KAAKhH,UAAW,GAGpC,OADA4U,EAAOrC,OAAgB,kBAATzU,EAA2B,EAAI,EAAG,EAAG,GAC5C81C,EAAG91C,GAAMoF,MAAM0wC,EAAIh/B,EAC5B,CACF,IAQA,IAAI6hD,GAAe,SAAsB39B,EAAQiR,EAAUv/B,GACzD,OAAOsuB,EAAOiR,GAAYv/B,CAC5B,EACIgsD,GAAc,SAAqB19B,EAAQiR,EAAUv/B,GACvD,OAAOsuB,EAAOiR,GAAUv/B,EAC1B,EACI+rD,GAAuB,SAA8Bz9B,EAAQiR,EAAUv/B,EAAOqN,GAChF,OAAOihB,EAAOiR,GAAUlyB,EAAKq+C,GAAI1rD,EACnC,EACIivD,GAAmB,SAA0B3gC,EAAQiR,EAAUv/B,GACjE,OAAOsuB,EAAOne,aAAaovB,EAAUv/B,EACvC,EACI2kD,GAAa,SAAoBr2B,EAAQiR,GAC3C,OAAOnD,EAAY9N,EAAOiR,IAAaysB,GAAc9Z,EAAa5jB,EAAOiR,KAAcjR,EAAOne,aAAe8+C,GAAmBhD,EAClI,EACIE,GAAe,SAAsBrtB,EAAOzxB,GAC9C,OAAOA,EAAKhV,IAAIgV,EAAKhb,EAAGgb,EAAKzY,EAAGT,KAAKgF,MAAkC,KAA3BkU,EAAK3a,EAAI2a,EAAKva,EAAIgsC,IAAkB,IAAOzxB,EACzF,EACI6+C,GAAiB,SAAwBptB,EAAOzxB,GAClD,OAAOA,EAAKhV,IAAIgV,EAAKhb,EAAGgb,EAAKzY,KAAMyY,EAAK3a,EAAI2a,EAAKva,EAAIgsC,GAAQzxB,EAC/D,EACIm+C,GAAuB,SAA8B1sB,EAAOzxB,GAC9D,IAAI4xB,EAAK5xB,EAAK6xB,IACVxsC,EAAI,GAER,IAAKosC,GAASzxB,EAAK5X,EAEjB/C,EAAI2a,EAAK5X,OACJ,GAAc,IAAVqpC,GAAezxB,EAAK/a,EAE7BI,EAAI2a,EAAK/a,MACJ,CACL,KAAO2sC,GACLvsC,EAAIusC,EAAGrqC,GAAKqqC,EAAGtrC,EAAIsrC,EAAGtrC,EAAEsrC,EAAGvsC,EAAIusC,EAAGnsC,EAAIgsC,GAAS3qC,KAAKgF,MAA8B,KAAvB8lC,EAAGvsC,EAAIusC,EAAGnsC,EAAIgsC,IAAkB,KAASpsC,EAEpGusC,EAAKA,EAAGE,MAGVzsC,GAAK2a,EAAKva,CACZ,CAEAua,EAAKhV,IAAIgV,EAAKhb,EAAGgb,EAAKzY,EAAGlC,EAAG2a,EAC9B,EACI6hD,GAAoB,SAA2BpwB,EAAOzxB,GAGxD,IAFA,IAAI4xB,EAAK5xB,EAAK6xB,IAEPD,GACLA,EAAGzsC,EAAEssC,EAAOG,EAAGhsC,GACfgsC,EAAKA,EAAGE,KAEZ,EACIgwB,GAAqB,SAA4BvD,EAAU7tB,EAAOzP,EAAQiR,GAI5E,IAHA,IACIn4B,EADA63B,EAAKhpC,KAAKipC,IAGPD,GACL73B,EAAO63B,EAAGE,MACVF,EAAGrqC,IAAM2qC,GAAYN,EAAG2sB,SAASA,EAAU7tB,EAAOzP,GAClD2Q,EAAK73B,CAET,EACIgoD,GAAoB,SAA2B7vB,GAKjD,IAJA,IACI8vB,EACAjoD,EAFA63B,EAAKhpC,KAAKipC,IAIPD,GACL73B,EAAO63B,EAAGE,MAENF,EAAGrqC,IAAM2qC,IAAaN,EAAGqwB,IAAMrwB,EAAGqwB,KAAO/vB,EAC3CqX,GAAsB3gD,KAAMgpC,EAAI,OACtBA,EAAGswB,MACbF,EAA2B,GAG7BpwB,EAAK73B,EAGP,OAAQioD,CACV,EACIG,GAAsB,SAA6BlhC,EAAQiR,EAAUv/B,EAAOqN,GAC9EA,EAAKoiD,KAAKnhC,EAAQiR,EAAUlyB,EAAK1Z,EAAE6I,KAAK6Q,EAAK0wB,MAAO/9B,EAAOqN,EAAKqiD,IAAKriD,EACvE,EACIigD,GAA4B,SAAmC3+B,GAOjE,IANA,IACIvnB,EACAuoD,EACAzkB,EACA0kB,EAJA3wB,EAAKtQ,EAAOuQ,IAMTD,GAAI,CAIT,IAHA73B,EAAO63B,EAAGE,MACVwwB,EAAMzkB,EAECykB,GAAOA,EAAIE,GAAK5wB,EAAG4wB,IACxBF,EAAMA,EAAIxwB,OAGRF,EAAG+X,MAAQ2Y,EAAMA,EAAI3Y,MAAQ4Y,GAC/B3wB,EAAG+X,MAAM7X,MAAQF,EAEjBiM,EAAQjM,GAGNA,EAAGE,MAAQwwB,GACbA,EAAI3Y,MAAQ/X,EAEZ2wB,EAAO3wB,EAGTA,EAAK73B,CACP,CAEAunB,EAAOuQ,IAAMgM,CACf,EAGWqgB,GAAyB,WAClC,SAASA,EAAUnkD,EAAMknB,EAAQy8B,EAAMl0C,EAAOi5C,EAAQpqC,EAAUrY,EAAM29C,EAAQwB,GAC5Ev2D,KAAK5D,EAAIi8B,EACTr4B,KAAKvD,EAAImkB,EACT5gB,KAAKnD,EAAIg9D,EACT75D,KAAKrB,EAAIm2D,EACT90D,KAAKzD,EAAIkzB,GAAYymC,GACrBl2D,KAAKhD,EAAIoa,GAAQpX,KACjBA,KAAKoC,IAAM2yD,GAAUiB,GACrBh2D,KAAK45D,GAAKrD,GAAY,EACtBv2D,KAAKkpC,MAAQ/3B,EAETA,IACFA,EAAK4vC,MAAQ/gD,KAEjB,CAcA,OAZcs1D,EAAUp1D,UAEhBy1D,SAAW,SAAkBxrD,EAAM29B,EAAOzP,GAChDr4B,KAAKw5D,KAAOx5D,KAAKw5D,MAAQx5D,KAAKoC,IAE9BpC,KAAKoC,IAAMm3D,GACXv5D,KAAKtC,EAAIyM,EACTnK,KAAKy5D,GAAKphC,EAEVr4B,KAAK8nC,MAAQA,CACf,EAEOwtB,CACT,CA9BoC,GAgCpC7W,GAAaT,GAAiB,uOAAuO,SAAU3gD,GAC7Q,OAAOogD,GAAepgD,GAAQ,CAChC,IAEA0/C,GAAS+c,SAAW/c,GAASgd,UAAYlJ,GACzC9T,GAASid,aAAejd,GAASkd,YAAcvV,GAC/C7K,EAAkB,IAAI6K,GAAS,CAC7BkM,cAAc,EACd1R,SAAUzD,EACVyF,oBAAoB,EACpBprC,GAAI,OACJ4sC,mBAAmB,IAErBzc,EAAQ+uB,aAAe9J,GAOvB,IAAI/M,GAAQ,CACVpc,eAAgB,WACd,IAAK,IAAIhM,EAAQx2B,UAAU3B,OAAQ0B,EAAO,IAAIzB,MAAMk4B,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpF12B,EAAK02B,GAASz2B,UAAUy2B,GAG1B12B,EAAK0E,SAAQ,SAAU8/B,GACrB,OAliFc,SAAuBA,GAGzC,IAAIzmC,GAFJymC,GAAUA,EAAOzmC,MAAQymC,EAAgB,SAAKA,GAE5BzmC,KACd68D,EAAS/zB,EAAYrC,GACrBq2B,EAAS98D,IAAS68D,GAAUp2B,EAAOpjC,KAAO,WAC5CV,KAAKyoC,OAAS,EAChB,EAAI3E,EAEJs2B,EAAmB,CACjB15D,KAAM88C,GACN5zC,OAAQqvD,GACRx6D,IAAKi3D,GACLvsB,KAAMgwB,GACNxD,SAAUuD,GACVrxB,QAAS,GAEPwyB,EAAU,CACZhc,WAAY,EACZr7C,IAAK,EACLyrD,UAAWC,GACXiK,QAAS,CAAC,EACVhoC,SAAU,GAKZ,GAFAg1B,KAEI7hB,IAAWq2B,EAAQ,CACrB,GAAIvc,GAASvgD,GACX,OAGF2iD,GAAama,EAAQna,GAAaK,GAAevc,EAAQs2B,GAAmBC,IAG5Eld,GAAOgd,EAAOj6D,UAAWi9C,GAAOid,EAAkB/Z,GAAevc,EAAQu2B,KAGzEzc,GAASuc,EAAOrF,KAAOz3D,GAAQ88D,EAE3Br2B,EAAOua,aACTN,GAAgBnsC,KAAKuoD,GAErB1c,GAAepgD,GAAQ,GAGzBA,GAAiB,QAATA,EAAiB,MAAQA,EAAKiV,OAAO,GAAGivB,cAAgBlkC,EAAKi2B,OAAO,IAAM,QACpF,CAEAiqB,GAAWlgD,EAAM88D,GAEjBr2B,EAAOnT,UAAYmT,EAAOnT,SAASmR,GAAMq4B,EAAQ7E,GACnD,CA8+EagF,CAAcx2B,EACvB,GACF,EACA6O,SAAU,SAAkBzK,GAC1B,OAAO,IAAIwc,GAASxc,EACtB,EACAqrB,YAAa,SAAqBxrB,EAASurB,GACzC,OAAOzZ,EAAgB0Z,YAAYxrB,EAASurB,EAC9C,EACAiH,YAAa,SAAqBliC,EAAQiR,EAAUkxB,EAAMC,GACxDze,EAAU3jB,KAAYA,EAASf,GAAQe,GAAQ,IAE/C,IAAIqiC,EAASnc,GAAUlmB,GAAU,CAAC,GAAGr1B,IACjCI,EAASo3D,EAAOza,GAAeD,GAGnC,MADS,WAAT0a,IAAsBA,EAAO,IACrBniC,EAAmBiR,EAEvBlmC,GAAQw6C,GAAStU,IAAasU,GAAStU,GAAUtmC,KAAO03D,GAAQriC,EAAQiR,EAAUkxB,EAAMC,IAFtD,SAAUnxB,EAAUkxB,EAAMC,GAC9D,OAAOr3D,GAAQw6C,GAAStU,IAAasU,GAAStU,GAAUtmC,KAAO03D,GAAQriC,EAAQiR,EAAUkxB,EAAMC,GACjG,EAFiBpiC,CAGnB,EACAsiC,YAAa,SAAqBtiC,EAAQiR,EAAUkxB,GAGlD,IAFAniC,EAASf,GAAQe,IAENz6B,OAAS,EAAG,CACrB,IAAIg9D,EAAUviC,EAAOvnB,KAAI,SAAU1U,GACjC,OAAO0lC,GAAK64B,YAAYv+D,EAAGktC,EAAUkxB,EACvC,IACIv9D,EAAI29D,EAAQh9D,OAChB,OAAO,SAAUmM,GAGf,IAFA,IAAIvN,EAAIS,EAEDT,KACLo+D,EAAQp+D,GAAGuN,EAEf,CACF,CAEAsuB,EAASA,EAAO,IAAM,CAAC,EAEvB,IAAI8hC,EAASvc,GAAStU,GAClBzjC,EAAQ04C,GAAUlmB,GAClB15B,EAAIkH,EAAMu4C,UAAYv4C,EAAMu4C,QAAQua,SAAW,CAAC,GAAGrvB,IAAaA,EAEpEyrB,EAASoF,EAAS,SAAUpwD,GAC1B,IAAIpL,EAAI,IAAIw7D,EACZjgB,EAAYjR,IAAM,EAClBtqC,EAAE+B,KAAK23B,EAAQmiC,EAAOzwD,EAAQywD,EAAOzwD,EAAOmwC,EAAa,EAAG,CAAC7hB,IAC7D15B,EAAEiL,OAAO,EAAGjL,GACZu7C,EAAYjR,KAAOgwB,GAAkB,EAAG/e,EAC1C,EAAIr0C,EAAMzD,IAAIi2B,EAAQ15B,GAEtB,OAAOw7D,EAASpF,EAAS,SAAUhrD,GACjC,OAAOgrD,EAAO18B,EAAQ15B,EAAG67D,EAAOzwD,EAAQywD,EAAOzwD,EAAOlE,EAAO,EAC/D,CACF,EACAg1D,WAAY,SAAoB9yB,GAC9B,OAAO8R,EAAgB0Z,YAAYxrB,GAAS,GAAMnqC,OAAS,CAC7D,EACAshD,SAAU,SAAkBn1C,GAE1B,OADAA,GAASA,EAAMi7B,OAASj7B,EAAMi7B,KAAO+gB,GAAWh8C,EAAMi7B,KAAMyW,EAAUzW,OAC/Dob,GAAW3E,EAAW1xC,GAAS,CAAC,EACzC,EACA+5B,OAAQ,SAAgB/5B,GACtB,OAAOq2C,GAAWna,EAASl8B,GAAS,CAAC,EACvC,EACA+wD,eAAgB,SAAwB5mD,GACtC,IAAI7W,EAAO6W,EAAM7W,KACb09D,EAAS7mD,EAAM6mD,OACfzqD,EAAU4D,EAAM5D,QAChB4uC,EAAWhrC,EAAMgrC,SACjB8b,EAAiB9mD,EAAM8mD,gBAC1B1qD,GAAW,IAAI/S,MAAM,KAAKyG,SAAQ,SAAUi3D,GAC3C,OAAOA,IAAerd,GAASqd,KAAgBle,GAASke,IAAe5d,GAAMhgD,EAAO,oBAAsB49D,EAAa,WACzH,IAEApd,GAASxgD,GAAQ,SAAU0qC,EAASG,EAAMiL,GACxC,OAAO4nB,EAAOzjC,GAAQyQ,GAAUiY,GAAa9X,GAAQ,CAAC,EAAGgX,GAAW/L,EACtE,EAEI6nB,IACFtW,GAASxkD,UAAU7C,GAAQ,SAAU0qC,EAASG,EAAMjgC,GAClD,OAAOjI,KAAKvB,IAAIo/C,GAASxgD,GAAM0qC,EAASmU,EAAUhU,GAAQA,GAAQjgC,EAAWigC,IAAS,CAAC,EAAGloC,MAAOiI,EACnG,EAEJ,EACAg6B,aAAc,SAAsB5kC,EAAM2nC,GACxConB,GAAS/uD,GAAQ0oD,GAAW/gB,EAC9B,EACAI,UAAW,SAAmBJ,EAAMkoB,GAClC,OAAO3tD,UAAU3B,OAASmoD,GAAW/gB,EAAMkoB,GAAed,EAC5D,EACA2G,QAAS,SAAiBj9C,GACxB,OAAO+jC,EAAgBkZ,QAAQj9C,EACjC,EACAolD,WAAY,SAAoBhzB,EAAMizB,QACvB,IAATjzB,IACFA,EAAO,CAAC,GAGV,IACIiG,EACAh9B,EAFAgiC,EAAK,IAAIuR,GAASxc,GAYtB,IATAiL,EAAGuP,kBAAoBvG,EAAYjU,EAAKwa,mBAExC7I,EAAgBrtC,OAAO2mC,GAEvBA,EAAGuN,IAAM,EAETvN,EAAGwP,MAAQxP,EAAG0O,OAAShI,EAAgB8I,MACvCxU,EAAQ0L,EAAgBgT,OAEjB1e,GACLh9B,EAAOg9B,EAAMjF,OAETiyB,IAA0BhtB,EAAMmT,MAAQnT,aAAiB0iB,IAAS1iB,EAAMjG,KAAK8K,aAAe7E,EAAMwlB,SAAS,IAC7G1Q,GAAe9P,EAAIhF,EAAOA,EAAMoT,OAASpT,EAAMgV,QAGjDhV,EAAQh9B,EAKV,OAFA8xC,GAAepJ,EAAiB1G,EAAI,GAE7BA,CACT,EACA3N,MAAO,CACL41B,KA9yFO,SAASA,EAAKt4D,EAAKkxB,EAAKjqB,GAEjC,IAAIsxD,EAAQrnC,EAAMlxB,EAClB,OAAO05C,EAAS15C,GAAOykD,GAAWzkD,EAAKs4D,EAAK,EAAGt4D,EAAIlF,QAASo2B,GAAOixB,GAAmBl7C,GAAO,SAAUA,GACrG,OAAQsxD,GAAStxD,EAAQjH,GAAOu4D,GAASA,EAAQv4D,CACnD,GACF,EAyyFIw4D,SAxyFW,SAASA,EAASx4D,EAAKkxB,EAAKjqB,GACzC,IAAIsxD,EAAQrnC,EAAMlxB,EACdy4D,EAAgB,EAARF,EACZ,OAAO7e,EAAS15C,GAAOykD,GAAWzkD,EAAKw4D,EAAS,EAAGx4D,EAAIlF,OAAS,GAAIo2B,GAAOixB,GAAmBl7C,GAAO,SAAUA,GAE7G,OAAOjH,IADPiH,GAASwxD,GAASxxD,EAAQjH,GAAOy4D,GAASA,GAAS,GAC7BF,EAAQE,EAAQxxD,EAAQA,EAChD,GACF,EAkyFI87C,WAAYA,GACZxS,OAAQA,GACR2T,KAAMA,GACNwU,UA3zFY,SAAmB14D,EAAKkxB,EAAKjqB,GAC3C,OAAO49C,GAAS7kD,EAAKkxB,EAAK,EAAG,EAAGjqB,EAClC,EA0zFIm7C,QAASA,GACTuW,MA9/FI,SAAe34D,EAAKkxB,EAAKjqB,GAC/B,OAAOk7C,GAAmBl7C,GAAO,SAAUhM,GACzC,OAAOglD,GAAOjgD,EAAKkxB,EAAKj2B,EAC1B,GACF,EA2/FIqsD,WAAYA,GACZ9yB,QAASA,GACTqwB,SAAUA,GACV+T,KAj1FO,WACT,IAAK,IAAIt0D,EAAO7H,UAAU3B,OAAQ+9D,EAAY,IAAI99D,MAAMuJ,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IACpFs0D,EAAUt0D,GAAQ9H,UAAU8H,GAG9B,OAAO,SAAU0C,GACf,OAAO4xD,EAAU1qD,QAAO,SAAUlT,EAAGjB,GACnC,OAAOA,EAAEiB,EACX,GAAGgM,EACL,CACF,EAw0FI6xD,QAv0FU,SAAiBzxD,EAAMqwD,GACnC,OAAO,SAAUzwD,GACf,OAAOI,EAAKu9B,WAAW39B,KAAWywD,GAAQtV,GAAQn7C,GACpD,CACF,EAo0FI8xD,YAlxFc,SAASA,EAAYj7C,EAAO0lC,EAAKqC,EAAUmT,GAC3D,IAAI3xD,EAAOynB,MAAMhR,EAAQ0lC,GAAO,EAAI,SAAU3nD,GAC5C,OAAQ,EAAIA,GAAKiiB,EAAQjiB,EAAI2nD,CAC/B,EAEA,IAAKn8C,EAAM,CACT,IAEIxL,EACAnC,EACAu/D,EACA9+D,EACA++D,EANAC,EAAWjgB,EAAUp7B,GACrBs7C,EAAS,CAAC,EASd,IAFa,IAAbvT,IAAsBmT,EAAS,KAAOnT,EAAW,MAE7CsT,EACFr7C,EAAQ,CACNjiB,EAAGiiB,GAEL0lC,EAAM,CACJ3nD,EAAG2nD,QAEA,GAAI9J,EAAS57B,KAAW47B,EAAS8J,GAAM,CAK5C,IAJAyV,EAAgB,GAChB9+D,EAAI2jB,EAAMhjB,OACVo+D,EAAK/+D,EAAI,EAEJT,EAAI,EAAGA,EAAIS,EAAGT,IACjBu/D,EAAcnqD,KAAKiqD,EAAYj7C,EAAMpkB,EAAI,GAAIokB,EAAMpkB,KAGrDS,IAEAkN,EAAO,SAAcxL,GACnBA,GAAK1B,EACL,IAAIT,EAAI0B,KAAK4E,IAAIk5D,IAAMr9D,GACvB,OAAOo9D,EAAcv/D,GAAGmC,EAAInC,EAC9B,EAEAmsD,EAAWrC,CACb,MAAYwV,IACVl7C,EAAQu8B,GAAOX,EAAS57B,GAAS,GAAK,CAAC,EAAGA,IAG5C,IAAKm7C,EAAe,CAClB,IAAKp9D,KAAK2nD,EACRoP,GAAcnvD,KAAK21D,EAAQt7C,EAAOjiB,EAAG,MAAO2nD,EAAI3nD,IAGlDwL,EAAO,SAAcxL,GACnB,OAAOs6D,GAAkBt6D,EAAGu9D,KAAYD,EAAWr7C,EAAMjiB,EAAIiiB,EAC/D,CACF,CACF,CAEA,OAAOqkC,GAAmB0D,EAAUx+C,EACtC,EA0tFIy7C,QAASA,IAEXuW,QAASlf,GACTmf,QAASve,GACTwe,OAAQtY,GACR6Q,WAAYlQ,GAASkQ,WACrBtkD,QAASstC,GACT0e,eAAgBziB,EAChB1U,KAAM,CACJmwB,UAAWA,GACXiH,QAAShf,GACTsT,MAAOA,GACPnM,SAAUA,GACViK,UAAWA,GACX6N,SAAUje,GACVoC,sBAAuBA,GACvB8b,mBAAoB,SAA4B1yD,GAC9C,OAAO6vC,EAAsB7vC,CAC/B,IAIJ00C,GAAa,+CAA+C,SAAUphD,GACpE,OAAO8gD,GAAM9gD,GAAQwzD,GAAMxzD,EAC7B,IAEA0mD,GAAQtlD,IAAIimD,GAASkQ,YAErB1a,EAAciE,GAAMtzB,GAAG,CAAC,EAAG,CACzBif,SAAU,IAGZ,IAAI4yB,GAAsB,SAA6BvsD,EAAQ2kD,GAG7D,IAFA,IAAI9rB,EAAK74B,EAAO84B,IAETD,GAAMA,EAAGrqC,IAAMm2D,GAAQ9rB,EAAGqwB,KAAOvE,GAAQ9rB,EAAGysB,KAAOX,GACxD9rB,EAAKA,EAAGE,MAGV,OAAOF,CACT,EAwBI2zB,GAAuB,SAA8Bt/D,EAAMs4D,GAC7D,MAAO,CACLt4D,KAAMA,EACNwqC,QAAS,EAETnnC,KAAM,SAAc23B,EAAQ6P,EAAMJ,GAChCA,EAAMwvB,QAAU,SAAUxvB,GACxB,IAAI3I,EAAMxgC,EAaV,GAXIq9C,EAAU9T,KACZ/I,EAAO,CAAC,EAERsf,GAAavW,GAAM,SAAU7qC,GAC3B,OAAO8hC,EAAK9hC,GAAQ,CACtB,IAGA6qC,EAAO/I,GAGLw2B,EAAU,CAGZ,IAAKh3D,KAFLwgC,EAAO,CAAC,EAEE+I,EACR/I,EAAKxgC,GAAKg3D,EAASztB,EAAKvpC,IAG1BupC,EAAO/I,CACT,EAnDY,SAAuB2I,EAAO80B,GAChD,IACIj+D,EACAnC,EACAwsC,EAHAjB,EAAUD,EAAM6rB,SAKpB,IAAKh1D,KAAKi+D,EAGR,IAFApgE,EAAIurC,EAAQnqC,OAELpB,MACLwsC,EAAKlB,EAAMsnB,UAAU5yD,GAAGmC,MAEbqqC,EAAKA,EAAGhsC,KACbgsC,EAAGC,MAELD,EAAK0zB,GAAoB1zB,EAAIrqC,IAG/BqqC,GAAMA,EAAG2sB,UAAY3sB,EAAG2sB,SAASiH,EAAUj+D,GAAImpC,EAAOC,EAAQvrC,GAAImC,GAI1E,CA+BQk+D,CAAc/0B,EAAOI,EACvB,CACF,EAEJ,EAGWpG,GAAOqc,GAAMpc,eAAe,CACrC1kC,KAAM,OACNqD,KAAM,SAAc23B,EAAQ6P,EAAMJ,EAAOrlB,EAAOslB,GAC9C,IAAIppC,EAAGqqC,EAEP,IAAKrqC,KAAKupC,GACRc,EAAKhpC,KAAKvB,IAAI45B,EAAQ,gBAAiBA,EAAOjT,aAAazmB,IAAM,GAAK,GAAIupC,EAAKvpC,GAAI8jB,EAAOslB,EAAS,EAAG,EAAGppC,MAClGqqC,EAAGqwB,GAAK16D,GAEfqB,KAAKyoC,OAAO72B,KAAKjT,EAErB,GACC,CACDtB,KAAM,WACNqD,KAAM,SAAc23B,EAAQtuB,GAG1B,IAFA,IAAIvN,EAAIuN,EAAMnM,OAEPpB,KACLwD,KAAKvB,IAAI45B,EAAQ77B,EAAG67B,EAAO77B,IAAM,EAAGuN,EAAMvN,GAE9C,GACCmgE,GAAqB,aAAc9V,IAAiB8V,GAAqB,aAAcA,GAAqB,OAAQ3V,MAAU7I,GAEjI0S,GAAMjrB,QAAU8e,GAAS9e,QAAU9D,GAAK8D,QAAU,QAClDoU,EAAa,EAET9T,KACFyf,KAGWyG,GAAS0Q,OACT1Q,GAAS2Q,OACT3Q,GAAS4Q,OACT5Q,GAAS6Q,OACT7Q,GAASzY,OACTyY,GAAS+B,OACX/B,GAAS8Q,KACR9Q,GAAS+Q,MACT/Q,GAASgR,MACThR,GAASiR,MACRjR,GAASkR,OACRlR,GAASmR,QACZnR,GAASoR,KACFpR,GAASkC,YACdlC,GAASqR,OACXrR,GAASsR,KAfpB,IAgBI5qB,GAAOsZ,GAAStZ,KACTsZ,GAASuR,8ECvuHhB7jB,EACAC,EACA6jB,EACAC,EACAC,EAEAC,EA6DAC,YAzDAC,EAAkB,CAAC,EACnBC,EAAW,IAAMhgE,KAAKs+B,GACtBD,EAAWr+B,KAAKs+B,GAAK,IACrB2hC,EAASjgE,KAAK++B,MAEdmhC,EAAW,WACXC,EAAiB,yCACjBC,EAAc,YACdC,EAAmB,CACrBC,UAAW,qBACX3rB,MAAO,gBACP4rB,MAAO,WAELC,EAAiB,SAAwB71B,EAAOzxB,GAClD,OAAOA,EAAKhV,IAAIgV,EAAKhb,EAAGgb,EAAKzY,EAAGT,KAAKgF,MAAkC,KAA3BkU,EAAK3a,EAAI2a,EAAKva,EAAIgsC,IAAkB,IAAQzxB,EAAK1a,EAAG0a,EAClG,EACIunD,EAAqB,SAA4B91B,EAAOzxB,GAC1D,OAAOA,EAAKhV,IAAIgV,EAAKhb,EAAGgb,EAAKzY,EAAa,IAAVkqC,EAAczxB,EAAK/a,EAAI6B,KAAKgF,MAAkC,KAA3BkU,EAAK3a,EAAI2a,EAAKva,EAAIgsC,IAAkB,IAAQzxB,EAAK1a,EAAG0a,EACzH,EACIwnD,EAA8B,SAAqC/1B,EAAOzxB,GAC5E,OAAOA,EAAKhV,IAAIgV,EAAKhb,EAAGgb,EAAKzY,EAAGkqC,EAAQ3qC,KAAKgF,MAAkC,KAA3BkU,EAAK3a,EAAI2a,EAAKva,EAAIgsC,IAAkB,IAAQzxB,EAAK1a,EAAI0a,EAAK5X,EAAG4X,EACnH,EAEAynD,EAAwB,SAA+Bh2B,EAAOzxB,GAC5D,IAAIrN,EAAQqN,EAAK3a,EAAI2a,EAAKva,EAAIgsC,EAC9BzxB,EAAKhV,IAAIgV,EAAKhb,EAAGgb,EAAKzY,KAAMoL,GAASA,EAAQ,GAAK,GAAK,KAAOqN,EAAK1a,EAAG0a,EACxE,EACI0nD,EAA0B,SAAiCj2B,EAAOzxB,GACpE,OAAOA,EAAKhV,IAAIgV,EAAKhb,EAAGgb,EAAKzY,EAAGkqC,EAAQzxB,EAAK/a,EAAI+a,EAAK5X,EAAG4X,EAC3D,EACI2nD,EAAmC,SAA0Cl2B,EAAOzxB,GACtF,OAAOA,EAAKhV,IAAIgV,EAAKhb,EAAGgb,EAAKzY,EAAa,IAAVkqC,EAAczxB,EAAK5X,EAAI4X,EAAK/a,EAAG+a,EACjE,EACI4nD,EAAkB,SAAyB3mC,EAAQiR,EAAUv/B,GAC/D,OAAOsuB,EAAO7R,MAAM8iB,GAAYv/B,CAClC,EACIk1D,EAAiB,SAAwB5mC,EAAQiR,EAAUv/B,GAC7D,OAAOsuB,EAAO7R,MAAM04C,YAAY51B,EAAUv/B,EAC5C,EACIo1D,EAAmB,SAA0B9mC,EAAQiR,EAAUv/B,GACjE,OAAOsuB,EAAO8lB,MAAM7U,GAAYv/B,CAClC,EACIq1D,EAAe,SAAsB/mC,EAAQiR,EAAUv/B,GACzD,OAAOsuB,EAAO8lB,MAAM/K,OAAS/a,EAAO8lB,MAAMkhB,OAASt1D,CACrD,EACIu1D,EAAyB,SAAgCjnC,EAAQiR,EAAUv/B,EAAOqN,EAAMyxB,GAC1F,IAAIhjC,EAAQwyB,EAAO8lB,MACnBt4C,EAAMutC,OAASvtC,EAAMw5D,OAASt1D,EAC9BlE,EAAM05D,gBAAgB12B,EAAOhjC,EAC/B,EACI25D,EAA6B,SAAoCnnC,EAAQiR,EAAUv/B,EAAOqN,EAAMyxB,GAClG,IAAIhjC,EAAQwyB,EAAO8lB,MACnBt4C,EAAMyjC,GAAYv/B,EAClBlE,EAAM05D,gBAAgB12B,EAAOhjC,EAC/B,EACI45D,EAAiB,YACjBC,EAAuBD,EAAiB,SAExCE,EAAiB,SAAwBjuD,EAAMkuD,GACjD,IAAIvjE,EAAI09C,EAAK8lB,gBAAkB9lB,EAAK8lB,iBAAiBD,GAAM,gCAAgC3gE,QAAQ,SAAU,QAASyS,GAAQqoC,EAAKlwC,cAAc6H,GAEjJ,OAAOrV,EAAEmqB,MAAQnqB,EAAI09C,EAAKlwC,cAAc6H,EAC1C,EACIouD,EAAuB,SAASA,EAAqBznC,EAAQiR,EAAUy2B,GACzE,IAAIC,EAAKC,iBAAiB5nC,GAC1B,OAAO2nC,EAAG12B,IAAa02B,EAAGE,iBAAiB52B,EAASrqC,QAAQm/D,EAAU,OAAOp/D,gBAAkBghE,EAAGE,iBAAiB52B,KAAcy2B,GAAsBD,EAAqBznC,EAAQ8nC,EAAiB72B,IAAaA,EAAU,IAAM,EACpO,EACI82B,EAAY,qBAAqB7iE,MAAM,KACvC4iE,EAAmB,SAA0B72B,EAAUl/B,EAASi2D,GAClE,IACI5jE,GADI2N,GAAW0zD,GACTt3C,MACNhqB,EAAI,EAER,GAAI8sC,KAAY7sC,IAAM4jE,EACpB,OAAO/2B,EAKT,IAFAA,EAAWA,EAASh3B,OAAO,GAAGivB,cAAgB+H,EAAShW,OAAO,GAEvD92B,OAAS4jE,EAAU5jE,GAAK8sC,KAAY7sC,KAE3C,OAAOD,EAAI,EAAI,MAAc,IAANA,EAAU,KAAOA,GAAK,EAAI4jE,EAAU5jE,GAAK,IAAM8sC,CACxE,EACItH,EAAY,WArFW,oBAAXr6B,QAsFSA,OAAOc,WAC5BqxC,EAAOnyC,OACPoyC,EAAOD,EAAKrxC,SACZm1D,EAAc7jB,EAAKlqB,gBACnBiuC,EAAW6B,EAAe,QAAU,CAClCn5C,MAAO,CAAC,GAEOm5C,EAAe,OAChCF,EAAiBU,EAAiBV,GAClCC,EAAuBD,EAAiB,SACxC3B,EAASt3C,MAAM85C,QAAU,2DAEzBtC,IAAgBmC,EAAiB,eACjCtC,EAAiB,EAErB,EACI0C,EAAe,SAASA,EAAaC,GAEvC,IAIIC,EAJAC,EAAMf,EAAe,MAAO3/D,KAAK2gE,iBAAmB3gE,KAAK2gE,gBAAgBv7C,aAAa,UAAY,8BAClGw7C,EAAY5gE,KAAKua,WACjBsmD,EAAa7gE,KAAK8gE,YAClBC,EAAS/gE,KAAKwmB,MAAM85C,QAQxB,GALA1C,EAAY1wD,YAAYwzD,GAExBA,EAAIxzD,YAAYlN,MAChBA,KAAKwmB,MAAMysB,QAAU,QAEjButB,EACF,IACEC,EAAOzgE,KAAKghE,UACZhhE,KAAKihE,UAAYjhE,KAAKghE,QAEtBhhE,KAAKghE,QAAUT,CACjB,CAAE,MAAOlkE,GAAI,MACJ2D,KAAKihE,YACdR,EAAOzgE,KAAKihE,aAcd,OAXIL,IACEC,EACFD,EAAUM,aAAalhE,KAAM6gE,GAE7BD,EAAU1zD,YAAYlN,OAI1B49D,EAAY/2C,YAAY65C,GAExB1gE,KAAKwmB,MAAM85C,QAAUS,EACdN,CACT,EACIU,EAAyB,SAAgC9oC,EAAQ+oC,GAGnE,IAFA,IAAI5kE,EAAI4kE,EAAgBxjE,OAEjBpB,KACL,GAAI67B,EAAOE,aAAa6oC,EAAgB5kE,IACtC,OAAO67B,EAAOjT,aAAag8C,EAAgB5kE,GAGjD,EACI6kE,EAAW,SAAkBhpC,GAC/B,IAAIipC,EAEJ,IACEA,EAASjpC,EAAO2oC,SAClB,CAAE,MAAOliD,GACPwiD,EAASf,EAAah6D,KAAK8xB,GAAQ,EACrC,CAIA,OAFAipC,IAAWA,EAAOz3C,OAASy3C,EAAOx3C,SAAWuO,EAAO2oC,UAAYT,IAAiBe,EAASf,EAAah6D,KAAK8xB,GAAQ,KAE7GipC,GAAWA,EAAOz3C,OAAUy3C,EAAOzhE,GAAMyhE,EAAOnkE,EAKnDmkE,EALuD,CACzDzhE,GAAIshE,EAAuB9oC,EAAQ,CAAC,IAAK,KAAM,QAAU,EACzDl7B,GAAIgkE,EAAuB9oC,EAAQ,CAAC,IAAK,KAAM,QAAU,EACzDxO,MAAO,EACPC,OAAQ,EAEZ,EACIy3C,EAAS,SAAgBllE,GAC3B,SAAUA,EAAEmlE,QAAYnlE,EAAEke,aAAcle,EAAEskE,kBAAoBU,EAAShlE,GACzE,EAEAolE,EAAkB,SAAyBppC,EAAQiR,GACjD,GAAIA,EAAU,CACZ,IAAI9iB,EAAQ6R,EAAO7R,MAEf8iB,KAAY20B,GAAmB30B,IAAao2B,IAC9Cp2B,EAAWm2B,GAGTj5C,EAAMk7C,gBACsB,OAA1Bp4B,EAAShW,OAAO,EAAG,IAAyC,WAA1BgW,EAAShW,OAAO,EAAG,KAEvDgW,EAAW,IAAMA,GAGnB9iB,EAAMk7C,eAAep4B,EAASrqC,QAAQm/D,EAAU,OAAOp/D,gBAGvDwnB,EAAM6C,gBAAgBigB,EAE1B,CACF,EACIq4B,EAAoB,SAA2BxxD,EAAQkoB,EAAQiR,EAAUs4B,EAAWtb,EAAKub,GAC3F,IAAI74B,EAAK,IAAI,KAAU74B,EAAO84B,IAAK5Q,EAAQiR,EAAU,EAAG,EAAGu4B,EAAe9C,EAAmCD,GAO7G,OANA3uD,EAAO84B,IAAMD,EACbA,EAAGxpC,EAAIoiE,EACP54B,EAAG3sC,EAAIiqD,EAEPn2C,EAAOs4B,OAAO72B,KAAK03B,GAEZN,CACT,EACI84B,EAAuB,CACzBC,IAAK,EACLC,IAAK,EACLC,KAAM,GAGRC,EAAiB,SAASA,EAAe7pC,EAAQiR,EAAUv/B,EAAOywD,GAChE,IAUI2H,EACAzpC,EACA7yB,EACAu8D,EAbAC,EAAW36B,WAAW39B,IAAU,EAChCu4D,GAAWv4D,EAAQ,IAAI6O,OAAO0a,QAAQ+uC,EAAW,IAAIzkE,SAAW,KAEpE4oB,EAAQs3C,EAASt3C,MACb+7C,EAAalE,EAAe/9D,KAAKgpC,GACjCk5B,EAA6C,QAAjCnqC,EAAOoqC,QAAQzjE,cAC3B0jE,GAAmBF,EAAY,SAAW,WAAaD,EAAa,QAAU,UAC9E5b,EAAS,IACTgc,EAAoB,OAATnI,EACXoI,EAAqB,MAATpI,EAMhB,OAAIA,IAAS8H,IAAYD,GAAYP,EAAqBtH,IAASsH,EAAqBQ,GAC/ED,GAGG,OAAZC,IAAqBK,IAAaN,EAAWH,EAAe7pC,EAAQiR,EAAUv/B,EAAO,OACrFq4D,EAAQ/pC,EAAOmpC,QAAUD,EAAOlpC,IAE3BuqC,GAAyB,MAAZN,IAAqBrE,EAAgB30B,MAAcA,EAASv3B,QAAQ,UAKtFyU,EAAM+7C,EAAa,QAAU,UAAY5b,GAAUgc,EAAWL,EAAU9H,GACxE9hC,GAAU4Q,EAASv3B,QAAQ,UAAqB,OAATyoD,GAAiBniC,EAAOnrB,cAAgBs1D,EAAYnqC,EAASA,EAAO9d,WAEvG6nD,IACF1pC,GAAUL,EAAOsoC,iBAAmB,CAAC,GAAGpmD,YAGrCme,GAAUA,IAAWqhB,GAASrhB,EAAOxrB,cACxCwrB,EAASqhB,EAAKp0B,OAGhB9f,EAAQ6yB,EAAOylB,QAEFykB,GAAa/8D,EAAMgkB,OAAS04C,GAAc18D,EAAM85C,OAAS,KAAQA,MACrE,QAAO0iB,EAAWx8D,EAAMgkB,MAAQ88B,KAEtCic,GAAyB,MAAZN,KAAqB97C,EAAMve,SAAW63D,EAAqBznC,EAAQ,aACjFK,IAAWL,IAAW7R,EAAMve,SAAW,UAEvCywB,EAAOxrB,YAAY4wD,GACnBqE,EAAKrE,EAAS4E,GACdhqC,EAAO7R,YAAYi3C,GACnBt3C,EAAMve,SAAW,WAEbs6D,GAAcK,KAChB/8D,GAAQ,QAAU6yB,IACZinB,KAAO,KAAQA,KACrB95C,EAAMgkB,MAAQ6O,EAAOgqC,KAIlB,QAAOC,EAAWR,EAAKE,EAAW1b,EAASwb,GAAME,EAAW1b,EAASwb,EAAKE,EAAW,MAnC1FF,EAAKC,EAAQ/pC,EAAO2oC,UAAUuB,EAAa,QAAU,UAAYlqC,EAAOqqC,IACjE,QAAOE,EAAYP,EAAWF,EAAKxb,EAAS0b,EAAW,IAAMF,IAmCxE,EACIU,EAAO,SAAcxqC,EAAQiR,EAAUkxB,EAAMC,GAC/C,IAAI1wD,EAsBJ,OArBA8zD,GAAkB77B,IAEdsH,KAAYi1B,GAAiC,cAAbj1B,KAClCA,EAAWi1B,EAAiBj1B,IAEdv3B,QAAQ,OACpBu3B,EAAWA,EAAS/rC,MAAM,KAAK,IAI/B0gE,EAAgB30B,IAA0B,cAAbA,GAC/Bv/B,EAAQ+4D,GAAgBzqC,EAAQoiC,GAChC1wD,EAAqB,oBAAbu/B,EAAiCv/B,EAAMu/B,GAAYy5B,GAAcjD,EAAqBznC,EAAQqnC,IAAyB,IAAM31D,EAAMi5D,QAAU,SAErJj5D,EAAQsuB,EAAO7R,MAAM8iB,KAEG,SAAVv/B,GAAoB0wD,KAAa1wD,EAAQ,IAAIgI,QAAQ,YACjEhI,EAAQk5D,EAAc35B,IAAa25B,EAAc35B,GAAUjR,EAAQiR,EAAUkxB,IAASsF,EAAqBznC,EAAQiR,KAAa,QAAajR,EAAQiR,KAA2B,YAAbA,EAAyB,EAAI,IAI7LkxB,MAAWzwD,EAAQ,IAAI6O,OAAO7G,QAAQ,KAAOmwD,EAAe7pC,EAAQiR,EAAUv/B,EAAOywD,GAAQA,EAAOzwD,CAC7G,EACIm5D,EAAyB,SAAgC7qC,EAAQy8B,EAAMl0C,EAAO0lC,GAEhF,IAAK1lC,GAAmB,SAAVA,EAAkB,CAE9B,IAAIjiB,EAAIwhE,EAAiBrL,EAAMz8B,EAAQ,GACnC57B,EAAIkC,GAAKmhE,EAAqBznC,EAAQ15B,EAAG,GAEzClC,GAAKA,IAAMmkB,GACbk0C,EAAOn2D,EACPiiB,EAAQnkB,GACU,gBAATq4D,IACTl0C,EAAQk/C,EAAqBznC,EAAQ,kBAEzC,CAEA,IAGI17B,EACAoU,EACAoyD,EACA/N,EACArK,EACAqY,EACAC,EACAlO,EACAtxC,EACAy/C,EACAC,EACAC,EAdAx6B,EAAK,IAAI,KAAUhpC,KAAKipC,IAAK5Q,EAAO7R,MAAOsuC,EAAM,EAAG,EAAG,MACvDryC,EAAQ,EACR+yC,EAAa,EAoCjB,GAtBAxsB,EAAGxpC,EAAIohB,EACPooB,EAAG3sC,EAAIiqD,EACP1lC,GAAS,GAIG,UAFZ0lC,GAAO,MAGLjuB,EAAO7R,MAAMsuC,GAAQxO,EACrBA,EAAMwZ,EAAqBznC,EAAQy8B,IAASxO,EAC5CjuB,EAAO7R,MAAMsuC,GAAQl0C,GAGvBjkB,EAAI,CAACikB,EAAO0lC,IAEZ,QAAmB3pD,GAInB2pD,EAAM3pD,EAAE,GACRwmE,GAFAviD,EAAQjkB,EAAE,IAEU4D,MAAM,OAAoB,IAClC+lD,EAAI/lD,MAAM,OAAoB,IAE5B3C,OAAQ,CACpB,KAAOmT,EAAS,KAAgBkjB,KAAKqyB,IACnC+c,EAAWtyD,EAAO,GAClB8S,EAAQyiC,EAAI9lD,UAAUiiB,EAAO1R,EAAO0R,OAEhCsoC,EACFA,GAASA,EAAQ,GAAK,EACQ,UAArBlnC,EAAMyP,QAAQ,IAAuC,UAArBzP,EAAMyP,QAAQ,KACvDy3B,EAAQ,GAGNsY,KAAcD,EAAaD,EAAY3N,MAAiB,MAC1DJ,EAAW1tB,WAAW07B,IAAe,EACrCG,EAAYH,EAAW9vC,QAAQ8hC,EAAW,IAAIx3D,SAC9C4lE,EAAkC,MAAvBH,EAAS/wD,OAAO,KAAe+wD,EAAS/wD,OAAO,GAAK,KAAO,KAGpE+wD,EAAWA,EAAS/vC,OAAO,IAG7B6hC,EAASztB,WAAW27B,GACpBC,EAAUD,EAAS/vC,QAAQ6hC,EAAS,IAAIv3D,QACxC6kB,EAAQ,KAAgB2oC,UAAYkY,EAAQ1lE,OAEvC0lE,IAEHA,EAAUA,GAAW,KAAQ/nB,MAAMuZ,IAASyO,EAExC9gD,IAAU6jC,EAAI1oD,SAChB0oD,GAAOgd,EACPt6B,EAAG3sC,GAAKinE,IAIRC,IAAcD,IAChBlO,EAAW8M,EAAe7pC,EAAQy8B,EAAMsO,EAAYE,IAAY,GAIlEt6B,EAAGC,IAAM,CACPC,MAAOF,EAAGC,IACVtqC,EAAGklB,GAAwB,IAAf2xC,EAAmB3xC,EAAQ,IAEvCpnB,EAAG24D,EACHv4D,EAAG2mE,EAAWA,EAAWrO,EAASA,EAASC,EAC3C13D,EAAGqtD,GAASA,EAAQ,GAAc,WAAT+J,EAAoB52D,KAAKgF,MAAQ,IAKhE8lC,EAAGnsC,EAAI4lB,EAAQ6jC,EAAI1oD,OAAS0oD,EAAI9lD,UAAUiiB,EAAO6jC,EAAI1oD,QAAU,EACjE,MACEorC,EAAGzsC,EAAa,YAATu4D,GAA8B,SAARxO,EAAiByY,EAAmCD,EAOnF,OAJA,KAAQx+D,KAAKgmD,KAAStd,EAAG3sC,EAAI,GAE7B2D,KAAKipC,IAAMD,EAEJA,CACT,EACIy6B,EAAoB,CACtB75C,IAAK,KACL85C,OAAQ,OACRv8B,KAAM,KACNw8B,MAAO,OACPvd,OAAQ,OAkBNwd,EAAoB,SAA2B/6B,EAAOzxB,GACxD,GAAIA,EAAK0wB,OAAS1wB,EAAK0wB,MAAM6a,QAAUvrC,EAAK0wB,MAAMwZ,KAAM,CACtD,IAIIwT,EACA+O,EACArnE,EANA67B,EAASjhB,EAAKhb,EACdoqB,EAAQ6R,EAAO7R,MACfpe,EAAQgP,EAAK1a,EACbmJ,EAAQwyB,EAAO8lB,MAKnB,GAAc,QAAV/1C,IAA6B,IAAVA,EACrBoe,EAAM85C,QAAU,GAChBuD,EAAkB,OAKlB,IAFArnE,GADA4L,EAAQA,EAAM7K,MAAM,MACVK,SAEDpB,GAAK,GACZs4D,EAAO1sD,EAAM5L,GAETyhE,EAAgBnJ,KAClB+O,EAAkB,EAClB/O,EAAgB,oBAATA,EAA6B4K,EAAuBD,GAG7DgC,EAAgBppC,EAAQy8B,GAIxB+O,IACFpC,EAAgBppC,EAAQonC,GAEpB55D,IACFA,EAAM66D,KAAOroC,EAAOhP,gBAAgB,aAEpCy5C,GAAgBzqC,EAAQ,GAGxBxyB,EAAM40D,QAAU,GAGtB,CACF,EAEAwI,EAAgB,CACda,WAAY,SAAoB3zD,EAAQkoB,EAAQiR,EAAU+5B,EAAUv7B,GAClE,GAAmB,gBAAfA,EAAM1wB,KAAwB,CAChC,IAAI4xB,EAAK74B,EAAO84B,IAAM,IAAI,KAAU94B,EAAO84B,IAAK5Q,EAAQiR,EAAU,EAAG,EAAGs6B,GAOxE,OANA56B,EAAGtsC,EAAI2mE,EACPr6B,EAAG4wB,IAAM,GACT5wB,EAAGlB,MAAQA,EAEX33B,EAAOs4B,OAAO72B,KAAK03B,GAEZ,CACT,CACF,GAwEFy6B,EAAoB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChCC,EAAwB,CAAC,EACzBC,EAAmB,SAA0Bl6D,GAC/C,MAAiB,6BAAVA,GAAkD,SAAVA,IAAqBA,CACtE,EACIm6D,GAAqC,SAA4C7rC,GACnF,IAAI8rC,EAAerE,EAAqBznC,EAAQonC,GAEhD,OAAOwE,EAAiBE,GAAgBJ,EAAoBI,EAAa7wC,OAAO,GAAG/yB,MAAM,MAASuQ,IAAI,KACxG,EACIszD,GAAa,SAAoB/rC,EAAQgsC,GAC3C,IAGI3rC,EACAooC,EACA3hC,EACAmlC,EANAz+D,EAAQwyB,EAAO8lB,QAAS,QAAU9lB,GAClC7R,EAAQ6R,EAAO7R,MACf+9C,EAASL,GAAmC7rC,GAMhD,OAAIxyB,EAAM66D,KAAOroC,EAAOjT,aAAa,aAIP,iBAD5Bm/C,EAAS,EAFTplC,EAAO9G,EAAOmsC,UAAUC,QAAQC,cAAcH,QAE/B5nE,EAAGwiC,EAAK3/B,EAAG2/B,EAAKtiC,EAAGsiC,EAAKniC,EAAGmiC,EAAK9iC,EAAG8iC,EAAKriC,IACzCgB,KAAK,KAAyBimE,EAAoBQ,GACvDA,IAAWR,GAAsB1rC,EAAOssC,cAAgBtsC,IAAWulC,GAAgB/3D,EAAM66D,MAGlGvhC,EAAO3Y,EAAMysB,QACbzsB,EAAMysB,QAAU,SAChBva,EAASL,EAAO9d,aAEA8d,EAAOssC,eAErBL,EAAa,EAEbxD,EAAczoC,EAAOyoC,YAErBlD,EAAY1wD,YAAYmrB,IAI1BksC,EAASL,GAAmC7rC,GAC5C8G,EAAO3Y,EAAMysB,QAAU9T,EAAOsiC,EAAgBppC,EAAQ,WAElDisC,IACFxD,EAAcpoC,EAAOwoC,aAAa7oC,EAAQyoC,GAAepoC,EAASA,EAAOxrB,YAAYmrB,GAAUulC,EAAY/2C,YAAYwR,KAIpHgsC,GAAWE,EAAO3mE,OAAS,EAAI,CAAC2mE,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,IAAKA,EAAO,KAAOA,EAC/G,EACIK,GAAkB,SAAyBvsC,EAAQ1F,EAAQkyC,EAAkBC,EAAQC,EAAaC,GACpG,IAeI1D,EACA2D,EAEA9nE,EAlBA0I,EAAQwyB,EAAO8lB,MACfomB,EAASQ,GAAeX,GAAW/rC,GAAQ,GAC3C6sC,EAAar/D,EAAMs/D,SAAW,EAC9BC,EAAav/D,EAAMw/D,SAAW,EAC9BC,EAAaz/D,EAAM0/D,SAAW,EAC9BC,EAAa3/D,EAAM4/D,SAAW,EAC9B9oE,EAAI4nE,EAAO,GACX/kE,EAAI+kE,EAAO,GACX1nE,EAAI0nE,EAAO,GACXvnE,EAAIunE,EAAO,GACX5/B,EAAK4/B,EAAO,GACZ3/B,EAAK2/B,EAAO,GACZmB,EAAc/yC,EAAOp1B,MAAM,KAC3B4nE,EAAUz9B,WAAWg+B,EAAY,KAAO,EACxCL,EAAU39B,WAAWg+B,EAAY,KAAO,EAMvCb,EAIMN,IAAWR,IAAsBkB,EAActoE,EAAIK,EAAIwC,EAAI3C,KAGpEM,EAAIgoE,IAAY3lE,EAAIylE,GAAeI,GAAW1oE,EAAIsoE,IAAgBtoE,EAAIioC,EAAKplC,EAAImlC,GAAMsgC,EACrFE,EAFIA,GAAWnoE,EAAIioE,GAAeI,IAAYxoE,EAAIooE,IAAgBpoE,EAAI+nC,EAAK5nC,EAAI2nC,GAAMsgC,EAGrFI,EAAUloE,IAPVgoE,GADA7D,EAASD,EAAShpC,IACDx4B,IAAM6lE,EAAY,GAAG3zD,QAAQ,KAAOozD,EAAU,IAAM7D,EAAOz3C,MAAQs7C,GACpFE,EAAU/D,EAAOnkE,KAAOuoE,EAAY,IAAMA,EAAY,IAAI3zD,QAAQ,KAAOszD,EAAU,IAAM/D,EAAOx3C,OAASu7C,IASvGP,IAAqB,IAAXA,GAAoBj/D,EAAMi/D,QACtCngC,EAAKwgC,EAAUD,EACftgC,EAAKygC,EAAUD,EACfv/D,EAAM0/D,QAAUD,GAAc3gC,EAAKhoC,EAAIioC,EAAK/nC,GAAK8nC,EACjD9+B,EAAM4/D,QAAUD,GAAc7gC,EAAKnlC,EAAIolC,EAAK5nC,GAAK4nC,GAEjD/+B,EAAM0/D,QAAU1/D,EAAM4/D,QAAU,EAGlC5/D,EAAMs/D,QAAUA,EAChBt/D,EAAMw/D,QAAUA,EAChBx/D,EAAMi/D,SAAWA,EACjBj/D,EAAM8sB,OAASA,EACf9sB,EAAMg/D,mBAAqBA,EAC3BxsC,EAAO7R,MAAMk5C,GAAwB,UAEjCsF,IACFrD,EAAkBqD,EAAyBn/D,EAAO,UAAWq/D,EAAYC,GAEzExD,EAAkBqD,EAAyBn/D,EAAO,UAAWu/D,EAAYC,GAEzE1D,EAAkBqD,EAAyBn/D,EAAO,UAAWy/D,EAAYz/D,EAAM0/D,SAE/E5D,EAAkBqD,EAAyBn/D,EAAO,UAAW2/D,EAAY3/D,EAAM4/D,UAGjFptC,EAAOne,aAAa,kBAAmBirD,EAAU,IAAME,EACzD,EACIvC,GAAkB,SAAyBzqC,EAAQoiC,GACrD,IAAI50D,EAAQwyB,EAAO8lB,OAAS,IAAI,KAAQ9lB,GAExC,GAAI,MAAOxyB,IAAU40D,IAAY50D,EAAM40D,QACrC,OAAO50D,EAGT,IAKIhG,EACA1C,EACAa,EACAo1C,EACAisB,EACAsG,EACAC,EACAC,EACAC,EACAC,EACAC,EACAb,EACAE,EACAd,EACA9mC,EACAb,EACAF,EACA//B,EACA6C,EACA3C,EACAG,EACAipE,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EApCAngD,EAAQ6R,EAAO7R,MACfogD,EAAiB/gE,EAAMutC,OAAS,EAChC+uB,EAAK,KACLJ,EAAM,MACNpvC,EAASmtC,EAAqBznC,EAAQqnC,IAAyB,IAuLnE,OAtJA7/D,EAAI1C,EAAIa,EAAI2nE,EAAWC,EAAYC,EAAYC,EAAQC,EAAQC,EAAc,EAC7E5yB,EAASisB,EAAS,EAClBx5D,EAAM66D,OAASroC,EAAOmpC,SAAUD,EAAOlpC,IACvCksC,EAASH,GAAW/rC,EAAQxyB,EAAM66D,KAE9B76D,EAAM66D,MACRyF,GAAMtgE,EAAM40D,UAAYA,GAAWpiC,EAAOjT,aAAa,mBAEvDw/C,GAAgBvsC,EAAQ8tC,GAAMxzC,IAAUwzC,GAAMtgE,EAAMg/D,kBAAmC,IAAjBh/D,EAAMi/D,OAAkBP,IAGhGY,EAAUt/D,EAAMs/D,SAAW,EAC3BE,EAAUx/D,EAAMw/D,SAAW,EAEvBd,IAAWR,IACbpnE,EAAI4nE,EAAO,GAEX/kE,EAAI+kE,EAAO,GAEX1nE,EAAI0nE,EAAO,GAEXvnE,EAAIunE,EAAO,GAEX1kE,EAAIomE,EAAM1B,EAAO,GACjBpnE,EAAI+oE,EAAM3B,EAAO,GAEK,IAAlBA,EAAO3mE,QACTw1C,EAASl1C,KAAK6+B,KAAKpgC,EAAIA,EAAI6C,EAAIA,GAC/B6/D,EAASnhE,KAAK6+B,KAAK//B,EAAIA,EAAIH,EAAIA,GAC/B8oE,EAAWhpE,GAAK6C,EAAI2+D,EAAO3+D,EAAG7C,GAAKuhE,EAAW,GAE9C4H,EAAQjpE,GAAKG,EAAImhE,EAAOthE,EAAGG,GAAKkhE,EAAWyH,EAAW,KAC5CtG,GAAUnhE,KAAKC,IAAID,KAAK0+B,IAAIkpC,EAAQvpC,KAE1C12B,EAAM66D,MACR7gE,GAAKslE,GAAWA,EAAUxoE,EAAI0oE,EAAUxoE,GACxCM,GAAKkoE,GAAWF,EAAU3lE,EAAI6lE,EAAUroE,MAI1C2pE,EAAMpC,EAAO,GACbkC,EAAMlC,EAAO,GACb+B,EAAM/B,EAAO,GACbgC,EAAMhC,EAAO,GACbiC,EAAMjC,EAAO,IACbmC,EAAMnC,EAAO,IACb1kE,EAAI0kE,EAAO,IACXpnE,EAAIonE,EAAO,IACXvmE,EAAIumE,EAAO,IAEXqB,GADAnoC,EAAQ0gC,EAAOwI,EAAKH,IACAtI,EAEhBzgC,IAGF0oC,EAAKF,GAFLrpC,EAAM1+B,KAAK0+B,KAAKa,IAEC6oC,GADjB5pC,EAAMx+B,KAAKw+B,KAAKe,IAEhB2oC,EAAKF,EAAMtpC,EAAM2pC,EAAM7pC,EACvB2pC,EAAKM,EAAM/pC,EAAM4pC,EAAM9pC,EACvB4pC,EAAML,GAAOvpC,EAAM4pC,EAAM1pC,EACzB2pC,EAAML,GAAOxpC,EAAM6pC,EAAM3pC,EACzB4pC,EAAMG,GAAOjqC,EAAM8pC,EAAM5pC,EACzB8pC,EAAMD,GAAO/pC,EAAMgqC,EAAM9pC,EACzBqpC,EAAME,EACND,EAAME,EACNO,EAAMN,GAKRR,GADApoC,EAAQ0gC,GAAQthE,EAAG2pE,IACCtI,EAEhBzgC,IACFb,EAAM1+B,KAAK0+B,KAAKa,GAKhBipC,EAAM1pE,GAJN0/B,EAAMx+B,KAAKw+B,KAAKe,IAIAipC,EAAM9pC,EACtBjgC,EAJAwpE,EAAKxpE,EAAIigC,EAAM0pC,EAAM5pC,EAKrBl9B,EAJA4mE,EAAK5mE,EAAIo9B,EAAM2pC,EAAM7pC,EAKrB7/B,EAJAwpE,EAAKxpE,EAAI+/B,EAAM4pC,EAAM9pC,GASvBipC,GADAloC,EAAQ0gC,EAAO3+D,EAAG7C,IACCuhE,EAEfzgC,IAGF0oC,EAAKxpE,GAFLigC,EAAM1+B,KAAK0+B,IAAIa,IAEAj+B,GADfk9B,EAAMx+B,KAAKw+B,IAAIe,IAEf2oC,EAAKH,EAAMrpC,EAAMspC,EAAMxpC,EACvBl9B,EAAIA,EAAIo9B,EAAMjgC,EAAI+/B,EAClBwpC,EAAMA,EAAMtpC,EAAMqpC,EAAMvpC,EACxB//B,EAAIwpE,EACJF,EAAMG,GAGJR,GAAa1nE,KAAKC,IAAIynE,GAAa1nE,KAAKC,IAAIwnE,GAAY,QAE1DC,EAAYD,EAAW,EACvBE,EAAY,IAAMA,GAGpBzyB,GAAS,QAAOl1C,KAAK6+B,KAAKpgC,EAAIA,EAAI6C,EAAIA,EAAI3C,EAAIA,IAC9CwiE,GAAS,QAAOnhE,KAAK6+B,KAAKmpC,EAAMA,EAAMS,EAAMA,IAC5ClpC,EAAQ0gC,EAAO8H,EAAKC,GACpBJ,EAAQ5nE,KAAKC,IAAIs/B,GAAS,KAASA,EAAQygC,EAAW,EACtD8H,EAAcU,EAAM,GAAKA,EAAM,GAAKA,EAAMA,GAAO,GAG/C7gE,EAAM66D,MAERyF,EAAK9tC,EAAOjT,aAAa,aACzBvf,EAAMghE,SAAWxuC,EAAOne,aAAa,YAAa,MAAQ+pD,EAAiBnE,EAAqBznC,EAAQonC,IACxG0G,GAAM9tC,EAAOne,aAAa,YAAaisD,KAIvCjoE,KAAKC,IAAI2nE,GAAS,IAAM5nE,KAAKC,IAAI2nE,GAAS,MACxCc,GACFxzB,IAAW,EACX0yB,GAASH,GAAY,EAAI,KAAO,IAChCA,GAAYA,GAAY,EAAI,KAAO,MAEnCtG,IAAW,EACXyG,GAASA,GAAS,EAAI,KAAO,MAIjCjgE,EAAMhG,EAAIA,IAAMgG,EAAMihE,SAAWjnE,IAAMgG,EAAMihE,WAAa5oE,KAAKgF,MAAMm1B,EAAOyU,YAAc,KAAO5uC,KAAKgF,OAAOrD,IAAM,GAAK,KAAOw4B,EAAOyU,YAAcjnC,EAAMihE,SAAW,IAAM,GAAK3E,EAChLt8D,EAAM1I,EAAIA,IAAM0I,EAAMkhE,SAAW5pE,IAAM0I,EAAMkhE,WAAa7oE,KAAKgF,MAAMm1B,EAAOwU,aAAe,KAAO3uC,KAAKgF,OAAO/F,IAAM,GAAK,KAAOk7B,EAAOwU,aAAehnC,EAAMkhE,SAAW,IAAM,GAAK5E,EAClLt8D,EAAM7H,EAAIA,EAAImkE,EACdt8D,EAAMutC,QAAS,QAAOA,GACtBvtC,EAAMw5D,QAAS,QAAOA,GACtBx5D,EAAM8/D,UAAW,QAAOA,GAAY5D,EACpCl8D,EAAM+/D,WAAY,QAAOA,GAAa7D,EACtCl8D,EAAMggE,WAAY,QAAOA,GAAa9D,EACtCl8D,EAAMigE,MAAQA,EAAQ/D,EACtBl8D,EAAMkgE,MAAQA,EAAQhE,EACtBl8D,EAAMmhE,qBAAuBhB,EAAc7D,GAEvCt8D,EAAMm9D,QAAUt7B,WAAW/U,EAAOp1B,MAAM,KAAK,KAAO,KACtDipB,EAAMk5C,GAAwBqD,GAAcpwC,IAG9C9sB,EAAM0/D,QAAU1/D,EAAM4/D,QAAU,EAChC5/D,EAAMw1C,QAAU,KAAQA,QACxBx1C,EAAM05D,gBAAkB15D,EAAM66D,IAAMuG,GAAuBjJ,EAAckJ,GAAuBC,GAChGthE,EAAM40D,QAAU,EACT50D,CACT,EACIk9D,GAAgB,SAAuBh5D,GACzC,OAAQA,EAAQA,EAAMxM,MAAM,MAAM,GAAK,IAAMwM,EAAM,EACrD,EAEAq9D,GAAkB,SAAyB/uC,EAAQzX,EAAO7W,GACxD,IAAIywD,GAAO,QAAQ55C,GACnB,OAAO,QAAO8mB,WAAW9mB,GAAS8mB,WAAWw6B,EAAe7pC,EAAQ,IAAKtuB,EAAQ,KAAMywD,KAAUA,CACnG,EACI2M,GAAyB,SAAgCt+B,EAAOhjC,GAClEA,EAAM7H,EAAI,MACV6H,EAAMggE,UAAYhgE,EAAM+/D,UAAY,OACpC//D,EAAMw1C,QAAU,EAEhB6rB,GAAqBr+B,EAAOhjC,EAC9B,EACIwhE,GAAW,OACXC,GAAU,MACVC,GAAkB,KAClBL,GAAuB,SAA8Br+B,EAAOhjC,GAC9D,IAAI8N,EAAO9N,GAAS7F,KAChB8mE,EAAWnzD,EAAKmzD,SAChBC,EAAWpzD,EAAKozD,SAChBlnE,EAAI8T,EAAK9T,EACT1C,EAAIwW,EAAKxW,EACTa,EAAI2V,EAAK3V,EACT2nE,EAAWhyD,EAAKgyD,SAChBE,EAAYlyD,EAAKkyD,UACjBD,EAAYjyD,EAAKiyD,UACjBE,EAAQnyD,EAAKmyD,MACbC,EAAQpyD,EAAKoyD,MACb3yB,EAASz/B,EAAKy/B,OACdisB,EAAS1rD,EAAK0rD,OACd2H,EAAuBrzD,EAAKqzD,qBAC5B3rB,EAAU1nC,EAAK0nC,QACfhjB,EAAS1kB,EAAK0kB,OACd2qC,EAAUrvD,EAAKqvD,QACfwE,EAAa,GACbC,EAAoB,SAAZpsB,GAAsBxS,GAAmB,IAAVA,IAA2B,IAAZwS,EAG1D,GAAI2nB,IAAY4C,IAAcyB,IAAYxB,IAAcwB,IAAW,CACjE,IAGIzqC,EAHAa,EAAQiK,WAAWm+B,GAAatpC,EAChC+pC,EAAMpoE,KAAKw+B,IAAIe,GACf+oC,EAAMtoE,KAAK0+B,IAAIa,GAGnBA,EAAQiK,WAAWk+B,GAAarpC,EAChCK,EAAM1+B,KAAK0+B,IAAIa,GACf59B,EAAIunE,GAAgB/uC,EAAQx4B,EAAGymE,EAAM1pC,GAAOomC,GAC5C7lE,EAAIiqE,GAAgB/uC,EAAQl7B,GAAIe,KAAKw+B,IAAIe,IAAUulC,GACnDhlE,EAAIopE,GAAgB/uC,EAAQr6B,EAAGwoE,EAAM5pC,GAAOomC,EAAUA,EACxD,CAEIgE,IAAyBM,KAC3BE,GAAc,eAAiBR,EAAuBO,KAGpDT,GAAYC,KACdS,GAAc,aAAeV,EAAW,MAAQC,EAAW,QAGzDU,GAAS5nE,IAAMynE,IAAWnqE,IAAMmqE,IAAWtpE,IAAMspE,MACnDE,GAAcxpE,IAAMspE,IAAWG,EAAQ,eAAiB5nE,EAAI,KAAO1C,EAAI,KAAOa,EAAI,KAAO,aAAe6B,EAAI,KAAO1C,EAAIoqE,IAGrH5B,IAAa0B,KACfG,GAAc,UAAY7B,EAAW4B,IAGnC1B,IAAcwB,KAChBG,GAAc,WAAa3B,EAAY0B,IAGrC3B,IAAcyB,KAChBG,GAAc,WAAa5B,EAAY2B,IAGrCzB,IAAUuB,IAAYtB,IAAUsB,KAClCG,GAAc,QAAU1B,EAAQ,KAAOC,EAAQwB,IAGlC,IAAXn0B,GAA2B,IAAXisB,IAClBmI,GAAc,SAAWp0B,EAAS,KAAOisB,EAASkI,IAGpDlvC,EAAO7R,MAAMi5C,GAAkB+H,GAAc,iBAC/C,EACIP,GAAuB,SAA8Bp+B,EAAOhjC,GAC9D,IAkBI6hE,EACAC,EACA1B,EACAC,EACA/mC,EAtBAjrB,EAAQrO,GAAS7F,KACjB8mE,EAAW5yD,EAAM4yD,SACjBC,EAAW7yD,EAAM6yD,SACjBlnE,EAAIqU,EAAMrU,EACV1C,EAAI+W,EAAM/W,EACVwoE,EAAWzxD,EAAMyxD,SACjBG,EAAQ5xD,EAAM4xD,MACdC,EAAQ7xD,EAAM6xD,MACd3yB,EAASl/B,EAAMk/B,OACfisB,EAASnrD,EAAMmrD,OACfhnC,EAASnkB,EAAMmkB,OACf8sC,EAAUjxD,EAAMixD,QAChBE,EAAUnxD,EAAMmxD,QAChBE,EAAUrxD,EAAMqxD,QAChBE,EAAUvxD,EAAMuxD,QAChBoB,EAAW3yD,EAAM2yD,SACjBliC,EAAK+C,WAAW7nC,GAChB+kC,EAAK8C,WAAWvqC,GAOpBwoE,EAAWj+B,WAAWi+B,GACtBG,EAAQp+B,WAAWo+B,IACnBC,EAAQr+B,WAAWq+B,MAKjBD,GADAC,EAAQr+B,WAAWq+B,GAEnBJ,GAAYI,GAGVJ,GAAYG,GACdH,GAAYppC,EACZupC,GAASvpC,EACTmrC,EAAMxpE,KAAK0+B,IAAI+oC,GAAYvyB,EAC3Bu0B,EAAMzpE,KAAKw+B,IAAIipC,GAAYvyB,EAC3B6yB,EAAM/nE,KAAKw+B,IAAIipC,EAAWG,IAAUzG,EACpC6G,EAAMhoE,KAAK0+B,IAAI+oC,EAAWG,GAASzG,EAE/ByG,IACFC,GAASxpC,EACT4C,EAAOjhC,KAAK0pE,IAAI9B,EAAQC,GAExBE,GADA9mC,EAAOjhC,KAAK6+B,KAAK,EAAIoC,EAAOA,GAE5B+mC,GAAO/mC,EAEH4mC,IACF5mC,EAAOjhC,KAAK0pE,IAAI7B,GAEhB2B,GADAvoC,EAAOjhC,KAAK6+B,KAAK,EAAIoC,EAAOA,GAE5BwoC,GAAOxoC,IAIXuoC,GAAM,QAAOA,GACbC,GAAM,QAAOA,GACb1B,GAAM,QAAOA,GACbC,GAAM,QAAOA,KAEbwB,EAAMt0B,EACN8yB,EAAM7G,EACNsI,EAAM1B,EAAM,IAGVthC,MAAS9kC,EAAI,IAAIkS,QAAQ,OAAS6yB,MAASznC,EAAI,IAAI4U,QAAQ,SAC7D4yB,EAAKu9B,EAAe7pC,EAAQ,IAAKx4B,EAAG,MACpC+kC,EAAKs9B,EAAe7pC,EAAQ,IAAKl7B,EAAG,QAGlCgoE,GAAWE,GAAWE,GAAWE,KACnC9gC,GAAK,QAAOA,EAAKwgC,GAAWA,EAAUuC,EAAMrC,EAAUY,GAAOV,GAC7D3gC,GAAK,QAAOA,EAAKygC,GAAWF,EAAUwC,EAAMtC,EAAUa,GAAOT,KAG3DqB,GAAYC,KAEd5nC,EAAO9G,EAAO2oC,UACdr8B,GAAK,QAAOA,EAAKmiC,EAAW,IAAM3nC,EAAKtV,OACvC+a,GAAK,QAAOA,EAAKmiC,EAAW,IAAM5nC,EAAKrV,SAGzCqV,EAAO,UAAYuoC,EAAM,IAAMC,EAAM,IAAM1B,EAAM,IAAMC,EAAM,IAAMvhC,EAAK,IAAMC,EAAK,IACnFvM,EAAOne,aAAa,YAAailB,GACjC0nC,IAAaxuC,EAAO7R,MAAMi5C,GAAkBtgC,EAC9C,EACI0oC,GAA0B,SAAiC13D,EAAQkoB,EAAQiR,EAAU8rB,EAAUiO,EAAUG,GAC3G,IAKIsE,EACA9+B,EANA++B,EAAM,IACN9L,GAAW,QAAUoH,GACrBlO,EAASztB,WAAW27B,IAAapH,IAAaoH,EAAStxD,QAAQ,OAASmsD,EAAW,GACnFrE,EAAS2J,EAAWrO,EAASqO,EAAWrO,EAASC,EACjD4S,EAAa5S,EAAWyE,EAAS,MA4BrC,OAxBIoC,IAGgB,WAFlB6L,EAAYzE,EAAS9lE,MAAM,KAAK,MAG9Bs8D,GAAUkO,KAEKlO,EAAS,MACtBA,GAAUA,EAAS,EAAIkO,GAAM,KAIf,OAAdD,GAAsBjO,EAAS,EACjCA,GAAUA,EAASkO,MAAiBA,KAASlO,EAASkO,GAAOA,EACtC,QAAdD,GAAuBjO,EAAS,IACzCA,GAAUA,EAASkO,MAAiBA,KAASlO,EAASkO,GAAOA,IAIjE53D,EAAO84B,IAAMD,EAAK,IAAI,KAAU74B,EAAO84B,IAAK5Q,EAAQiR,EAAU8rB,EAAUyE,EAAQ8E,GAChF31B,EAAG3sC,EAAI2rE,EACPh/B,EAAGtsC,EAAI,MAEPyT,EAAOs4B,OAAO72B,KAAK03B,GAEZN,CACT,EACIi/B,GAAU,SAAiB5vC,EAAQ6vC,GAErC,IAAK,IAAIvpE,KAAKupE,EACZ7vC,EAAO15B,GAAKupE,EAAOvpE,GAGrB,OAAO05B,CACT,EACI8vC,GAAsB,SAA6Bh4D,EAAQq3D,EAAYnvC,GAEzE,IAGI+vC,EACAzpE,EACAykE,EACAC,EACAjO,EACAD,EAEAmO,EAVA+E,EAAaJ,GAAQ,CAAC,EAAG5vC,EAAO8lB,OAEhC33B,EAAQ6R,EAAO7R,MA0BnB,IAAK7nB,KAhBD0pE,EAAW3H,KACb0C,EAAa/qC,EAAOjT,aAAa,aACjCiT,EAAOne,aAAa,YAAa,IACjCsM,EAAMi5C,GAAkB+H,EACxBY,EAAWtF,GAAgBzqC,EAAQ,GAEnCopC,EAAgBppC,EAAQonC,GAExBpnC,EAAOne,aAAa,YAAakpD,KAEjCA,EAAanD,iBAAiB5nC,GAAQonC,GACtCj5C,EAAMi5C,GAAkB+H,EACxBY,EAAWtF,GAAgBzqC,EAAQ,GACnC7R,EAAMi5C,GAAkB2D,GAGhBnF,GACRmF,EAAaiF,EAAW1pE,OACxB0kE,EAAW+E,EAASzpE,KA7BR,gDA+B2BoT,QAAQpT,GAAK,IAIlDy2D,GAFY,QAAQgO,MACpBE,GAAU,QAAQD,IACiBnB,EAAe7pC,EAAQ15B,EAAGykE,EAAYE,GAAW57B,WAAW07B,GAC/FjO,EAASztB,WAAW27B,GACpBlzD,EAAO84B,IAAM,IAAI,KAAU94B,EAAO84B,IAAKm/B,EAAUzpE,EAAGy2D,EAAUD,EAASC,EAAUsJ,GACjFvuD,EAAO84B,IAAIvsC,EAAI4mE,GAAW,EAE1BnzD,EAAOs4B,OAAO72B,KAAKjT,IAIvBspE,GAAQG,EAAUC,EACpB,GAGA,QAAa,+BAA+B,SAAUhrE,EAAMolB,GAC1D,IAAIrmB,EAAI,MACJG,EAAI,QACJiD,EAAI,SACJvC,EAAI,OACJmL,GAASqa,EAAQ,EAAI,CAACrmB,EAAGG,EAAGiD,EAAGvC,GAAK,CAACb,EAAIa,EAAGb,EAAIG,EAAGiD,EAAIjD,EAAGiD,EAAIvC,IAAI6T,KAAI,SAAUw3D,GAClF,OAAO7lD,EAAQ,EAAIplB,EAAOirE,EAAO,SAAWA,EAAOjrE,CACrD,IAEA4lE,EAAcxgD,EAAQ,EAAI,SAAWplB,EAAOA,GAAQ,SAAU8S,EAAQkoB,EAAQiR,EAAU+5B,EAAUv7B,GAChG,IAAInrC,EAAGurC,EAEP,GAAI3oC,UAAU3B,OAAS,EAMrB,OAJAjB,EAAIyL,EAAM0I,KAAI,SAAUgkD,GACtB,OAAO+N,EAAK1yD,EAAQ2kD,EAAMxrB,EAC5B,IAEmC,KADnCpB,EAAOvrC,EAAEmB,KAAK,MACFP,MAAMZ,EAAE,IAAIiB,OAAejB,EAAE,GAAKurC,EAGhDvrC,GAAK0mE,EAAW,IAAI9lE,MAAM,KAC1B2qC,EAAO,CAAC,EACR9/B,EAAMpE,SAAQ,SAAU8wD,EAAMt4D,GAC5B,OAAO0rC,EAAK4sB,GAAQn4D,EAAEH,GAAKG,EAAEH,IAAMG,GAAGH,EAAI,GAAK,EAAI,EACrD,IACA2T,EAAOzP,KAAK23B,EAAQ6P,EAAMJ,EAC5B,CACF,IAEO,IA2MIygC,GAAkB5C,GACvBp0D,GA5MKi3D,GAAY,CACrBnrE,KAAM,MACNszB,SAAUqR,EACVqc,WAAY,SAAoBhmB,GAC9B,OAAOA,EAAO7R,OAAS6R,EAAOtR,QAChC,EACArmB,KAAM,SAAc23B,EAAQ6P,EAAMJ,EAAOrlB,EAAOslB,GAC9C,IAGIq7B,EACAC,EACAlO,EACAC,EACA1jD,EACA+2D,EACA9pE,EACA4kE,EACAD,EACAE,EACAkF,EACAC,EACA9iE,EACAi/D,EACArO,EAzwBmE1sD,EACrExM,EACAsC,EACA1C,EAqvBEiL,EAAQpI,KAAKyoC,OACbjiB,EAAQ6R,EAAO7R,MACf84B,EAAUxX,EAAMI,KAAKoX,QAkBzB,IAAK3gD,KAFLk/D,GAAkB77B,IAERkG,EACR,GAAU,cAANvpC,IAIJ0kE,EAAWn7B,EAAKvpC,IAEZ,KAASA,MAAM,QAAaA,EAAGupC,EAAMJ,EAAOrlB,EAAO4V,EAAQ0P,IAiB/D,GAZAr2B,SAAc2xD,EACdoF,EAAcxF,EAActkE,GAEf,aAAT+S,IAEFA,SADA2xD,EAAWA,EAAS98D,KAAKuhC,EAAOrlB,EAAO4V,EAAQ0P,KAIpC,WAATr2B,IAAsB2xD,EAAStxD,QAAQ,aACzCsxD,GAAW,QAAeA,IAGxBoF,EACFA,EAAYzoE,KAAMq4B,EAAQ15B,EAAG0kE,EAAUv7B,KAAW2uB,EAAc,QAC3D,GAAuB,OAAnB93D,EAAE20B,OAAO,EAAG,GAErB8vC,GAAcnD,iBAAiB5nC,GAAQ6nC,iBAAiBvhE,GAAK,IAAIia,OACjEyqD,GAAY,GACZ,KAAUjY,UAAY,EAEjB,KAAU9qD,KAAK8iE,KAElBG,GAAY,QAAQH,GACpBE,GAAU,QAAQD,IAGpBC,EAAUC,IAAcD,IAAYF,EAAalB,EAAe7pC,EAAQ15B,EAAGykE,EAAYE,GAAWA,GAAWC,IAAcF,GAAYE,GACvIvjE,KAAKvB,IAAI+nB,EAAO,cAAe48C,EAAYC,EAAU5gD,EAAOslB,EAAS,EAAG,EAAGppC,QACtE,GAAa,cAAT+S,EAAsB,CAmC/B,GAlCI4tC,GAAW3gD,KAAK2gD,GAElB8jB,EAAmC,mBAAf9jB,EAAQ3gD,GAAoB2gD,EAAQ3gD,GAAG4H,KAAKuhC,EAAOrlB,EAAO4V,EAAQ0P,GAAWuX,EAAQ3gD,GACzGA,KAAK,KAAQ48C,SAAU,QAAQ6nB,KAAgBA,GAAc,KAAQ7nB,MAAM58C,IAE3C,OAA/BykE,EAAa,IAAI9wD,OAAO,KAAe8wD,EAAaP,EAAKxqC,EAAQ15B,KAElEykE,EAAaP,EAAKxqC,EAAQ15B,GAG5By2D,EAAW1tB,WAAW07B,IACtBI,EAAoB,WAAT9xD,GAA4C,MAAvB2xD,EAAS/wD,OAAO,KAAe+wD,EAAS/wD,OAAO,GAAK,KAAO,KAC9E+wD,EAAWA,EAAS/vC,OAAO,IACxC6hC,EAASztB,WAAW27B,GAEhB1kE,KAAK4/D,IACG,cAAN5/D,IAEe,IAAby2D,GAAiD,WAA/ByN,EAAKxqC,EAAQ,eAA8B88B,IAE/DC,EAAW,GAGbuM,EAAkB3hE,KAAMwmB,EAAO,aAAc4uC,EAAW,UAAY,SAAUD,EAAS,UAAY,UAAWA,IAGtG,UAANx2D,GAAuB,cAANA,KACnBA,EAAI4/D,EAAiB5/D,IAClBoT,QAAQ,OAASpT,EAAIA,EAAEpB,MAAM,KAAK,KAIzCmrE,EAAqB/pE,KAAKs/D,EAaxB,GAVK0K,KACH9iE,EAAQwyB,EAAO8lB,OACTohB,kBAAoBr3B,EAAK0gC,gBAAkB9F,GAAgBzqC,EAAQ6P,EAAK0gC,gBAE9E9D,GAA+B,IAAtB58B,EAAK2gC,cAA0BhjE,EAAMi/D,QAC9C6D,EAAqB3oE,KAAKipC,IAAM,IAAI,KAAUjpC,KAAKipC,IAAKziB,EAAOi5C,EAAgB,EAAG,EAAG55D,EAAM05D,gBAAiB15D,EAAO,GAAI,IAEpGyzD,IAAM,GAGjB,UAAN36D,EACFqB,KAAKipC,IAAM,IAAI,KAAUjpC,KAAKipC,IAAKpjC,EAAO,SAAUA,EAAMw5D,OAAQmE,EAAWA,EAAWrO,EAASA,EAAStvD,EAAMw5D,QAChHj3D,EAAMwJ,KAAK,SAAUjT,GACrBA,GAAK,QACA,IAAU,oBAANA,EAAyB,CAr2BxCpB,SACAsC,SACA1C,SAFAI,GADqEwM,EAu2BtBs5D,GAt2BjC9lE,MAAM,KACpBsC,EAAItC,EAAM,GACVJ,EAAII,EAAM,IAAM,MAEV,QAANsC,GAAqB,WAANA,GAAwB,SAAN1C,GAAsB,UAANA,IAEnD4M,EAAQlK,EACRA,EAAI1C,EACJA,EAAI4M,GAGNxM,EAAM,GAAKkmE,EAAkB5jE,IAAMA,EACnCtC,EAAM,GAAKkmE,EAAkBtmE,IAAMA,EA01BzBkmE,EAz1BH9lE,EAAMO,KAAK,KA21BJ+H,EAAM66D,IACRkE,GAAgBvsC,EAAQgrC,EAAU,EAAGyB,EAAQ,EAAG9kE,QAEhDsjE,EAAU57B,WAAW27B,EAAS9lE,MAAM,KAAK,KAAO,KAEpCsI,EAAMm9D,SAAWrB,EAAkB3hE,KAAM6F,EAAO,UAAWA,EAAMm9D,QAASM,GAEtF3B,EAAkB3hE,KAAMwmB,EAAO7nB,EAAGokE,GAAcK,GAAaL,GAAcM,KAG7E,QACF,CAAO,GAAU,cAAN1kE,EAAmB,CAC5BimE,GAAgBvsC,EAAQgrC,EAAU,EAAGyB,EAAQ,EAAG9kE,MAEhD,QACF,CAAO,GAAIrB,KAAKqlE,EAAuB,CACrC6D,GAAwB7nE,KAAM6F,EAAOlH,EAAGy2D,EAAUiO,EAAUG,GAE5D,QACF,CAAO,GAAU,iBAAN7kE,EAAsB,CAC/BgjE,EAAkB3hE,KAAM6F,EAAO,SAAUA,EAAMi/D,OAAQzB,GAEvD,QACF,CAAO,GAAU,YAAN1kE,EAAiB,CAC1BkH,EAAMlH,GAAK0kE,EACX,QACF,CAAO,GAAU,cAAN1kE,EAAmB,CAC5BwpE,GAAoBnoE,KAAMqjE,EAAUhrC,GAEpC,QACF,OACW15B,KAAK6nB,IAChB7nB,EAAIwhE,EAAiBxhE,IAAMA,GAG7B,GAAI+pE,IAAuBvT,GAAqB,IAAXA,KAAkBC,GAAyB,IAAbA,KAAoBkJ,EAAYh+D,KAAK+iE,IAAa1kE,KAAK6nB,EAExH2uC,IAAWA,EAAS,IADpBoO,GAAaH,EAAa,IAAI9vC,QAAQ8hC,EAAW,IAAIx3D,YAGrD0lE,GAAU,QAAQD,KAAc1kE,KAAK,KAAQ48C,MAAQ,KAAQA,MAAM58C,GAAK4kE,MAC9CnO,EAAW8M,EAAe7pC,EAAQ15B,EAAGykE,EAAYE,IAC3EtjE,KAAKipC,IAAM,IAAI,KAAUjpC,KAAKipC,IAAKy/B,EAAqB7iE,EAAQ2gB,EAAO7nB,EAAGy2D,EAAUoO,EAAWA,EAAWrO,EAASA,EAASC,EAAWsT,GAAmC,OAAZpF,GAA0B,WAAN3kE,IAAsC,IAAnBupC,EAAK4gC,UAA8CpK,EAAxBG,GAChO7+D,KAAKipC,IAAIvsC,EAAI4mE,GAAW,EAEpBC,IAAcD,IAEhBtjE,KAAKipC,IAAIzpC,EAAI4jE,EACbpjE,KAAKipC,IAAI1sC,EAAIqiE,QAEV,GAAMjgE,KAAK6nB,EAUhB08C,EAAuB38D,KAAKvG,KAAMq4B,EAAQ15B,EAAGykE,EAAYC,OAVjC,CACxB,KAAI1kE,KAAK05B,GAGF,EACL,QAAe15B,EAAG0kE,GAElB,QACF,CALErjE,KAAKvB,IAAI45B,EAAQ15B,EAAG05B,EAAO15B,GAAI0kE,EAAU5gD,EAAOslB,EAMpD,CAIA3/B,EAAMwJ,KAAKjT,EACb,CAGF83D,IAAe,QAA0Bz2D,KAC3C,EACAgD,IAAK6/D,EACLlK,QAAS4F,EACT9P,UAAW,SAAmBp2B,EAAQiR,EAAUn5B,GAE9C,IAAIxR,EAAI4/D,EAAiBj1B,GAEzB,OADA3qC,GAAKA,EAAEoT,QAAQ,KAAO,IAAMu3B,EAAW3qC,GAChC2qC,KAAY20B,GAAmB30B,IAAao2B,IAAyBrnC,EAAO8lB,MAAMt+C,GAAKgjE,EAAKxqC,EAAQ,MAAQloB,GAAU4tD,IAAwB5tD,EAAsB,UAAbm5B,EAAuB81B,EAAeD,GAAoBpB,EAAsB5tD,GAAU,CAAC,KAAoB,UAAbm5B,EAAuBg2B,EAAyBE,GAA8BnnC,EAAO7R,SAAU,QAAa6R,EAAO7R,MAAM8iB,IAAa01B,GAAmB11B,EAASv3B,QAAQ,KAAOktD,GAAiB,QAAW5mC,EAAQiR,EACvd,EACAnE,KAAM,CACJs8B,gBAAiBA,EACjB2C,WAAYA,KAGhB,KAAK5+B,MAAMujC,YAAc5I,EAEdoI,GAgBR,8CAhB0B5C,GAgBqB,2CAf5Cp0D,IAAM,QAAag3D,GAAmB,IAAM5C,GAAzB4C,kFAAkD,SAAUlrE,GACjF4gE,EAAgB5gE,GAAQ,CAC1B,KAEA,QAAasoE,IAAU,SAAUtoE,GAC/B,KAAQk+C,MAAMl+C,GAAQ,MACtB2mE,EAAsB3mE,GAAQ,CAChC,IAEAkhE,EAAiBhtD,GAAI,KAAOg3D,GAAmB,IAAM5C,IAErD,QAI6K,8FAJvJ,SAAUtoE,GAC9B,IAAIE,EAAQF,EAAKE,MAAM,KACvBghE,EAAiBhhE,EAAM,IAAMgU,GAAIhU,EAAM,GACzC,KAGF,QAAa,gFAAgF,SAAUF,GACrG,KAAQk+C,MAAMl+C,GAAQ,IACxB,IAEA,KAAK0kC,eAAeymC,ICp4CpB,IAAIQ,GAAc,KAAKjnC,eAAeymC,KAAc,KAElCQ,GAAY7jC,KAAK0rB,qCC4CnC30D,EAAOC,QA5BS,SAAS8sE,EAAW7lE,EAAQzG,EAAG6C,EAAG3C,EAAGG,EAAGX,EAAGS,GAOzD,IAAKmsE,EAAW,CACd,IAAInqD,EACJ,QAAevV,IAAXnG,EACF0b,EAAQ,IAAItI,MACV,qIAGG,CACL,IAAIlX,EAAO,CAAC3C,EAAG6C,EAAG3C,EAAGG,EAAGX,EAAGS,GACvBosE,EAAW,GACfpqD,EAAQ,IAAItI,MACVpT,EAAOnE,QAAQ,OAAO,WAAa,OAAOK,EAAK4pE,IAAa,MAExD7rE,KAAO,qBACf,CAGA,MADAyhB,EAAMqqD,YAAc,EACdrqD,CACR,CACF,mDC7CA,IAAe,EAAO,yCCQL/a,EAAE,EAAQ,MAAS9G,EAAE,CAACmsE,QAAO,GAAI9sE,EAAE,IAAIkW,IAAI7T,EAAE0qE,OAAOC,IAAI,iBAAiB30C,EAAE00C,OAAOC,IAAI,cAAc/sE,EAAE8sE,OAAOC,IAAI,uBAAuBltE,EAAE2H,EAAEwlE,mDAAmDC,gBAAkF,SAASzrE,EAAEpB,EAAE6C,EAAE3C,GAAGmD,KAAKypE,QAAQ9sE,EAAEqD,KAAK0pE,OAAOlqE,EAAEQ,KAAK2pE,UAAU9sE,CAAC,CACjW,SAAS+B,EAAEjC,GAAG,OAAOA,EAAE8sE,SAAS,KAAK,EAAE,OAAO9sE,EAAE+sE,OAAO,KAAK,EAAE,IAAIlqE,EAAEoL,KAAK3K,MAAMtD,EAAE+sE,OAAO/sE,EAAEgtE,UAAUC,WAAuB,OAAZjtE,EAAE8sE,QAAQ,EAAS9sE,EAAE+sE,OAAOlqE,EAAE,KAAK,EAAa,IAAI,IAAI3C,GAAnB2C,EAAE7C,EAAE+sE,QAAmBG,OAAO7sE,EAAE,EAAEA,EAAEH,EAAEe,OAAOZ,IAAI,CAAC,IAAIX,EAAEC,EAAE0G,IAAInG,EAAEG,IAAI,GAAG,OAAOX,EAAE,MAAMA,CAAE,CAAyG,OAAxGQ,EAAEitE,EAAoBtqE,EAAEsW,IAAItW,EAAE,MAAMA,EAAEnC,KAAKR,EAAE,KAAK2C,EAAEnC,KAAKR,EAAEwI,WAAWxI,EAAE+I,QAAQ/I,EAAEA,EAAE2C,EAAEnC,MAAMV,EAAE8sE,QAAQ,EAAS9sE,EAAE+sE,OAAOlqE,EAAE,KAAK,EAAE,MAAM7C,EAAE,QAAQ,MAAMA,EAAE+sE,OAAQ,CAAC,SAAS7pE,IAAoB,OAAOjB,EAAjBzB,EAAE6C,KAAK,GAAc,CAAC,SAAShC,EAAErB,EAAE6C,GAAG,OAAO,IAAIzB,EAAE,EAAEyB,EAAE7C,EAAE,CAC3d,SAASq4B,EAAEr4B,GAAG,GAAG,OAAOA,EAAE,IAAI,IAAI6C,EAAE,EAAEA,EAAE7C,EAAEiB,OAAO4B,KAAI,EAAG7C,EAAE6C,KAAK,CAAC,SAASq0B,EAAEl3B,EAAE6C,GAAG,GAAG,IAAI7C,EAAE8sE,QAAQ,CAAC,IAAI5sE,EAAEF,EAAE+sE,OAAO/sE,EAAE8sE,QAAQ,EAAE9sE,EAAE+sE,OAAOlqE,EAAEw1B,EAAEn4B,EAAE,CAAC,CAAC,SAASgC,EAAElC,EAAE6C,GAAG7C,EAAEotE,QAAQ/lE,SAAQ,SAASrH,GAAGk3B,EAAEl3B,EAAE6C,EAAE,GAAE,CAAC,SAASrC,EAAER,EAAE6C,GAAG,IAAI3C,EAAEF,EAAEotE,QAAQ/sE,EAAEH,EAAEmG,IAAIxD,GAAqC,OAAlCxC,IAAIA,EAAE,IAAIe,EAAE,EAAE,KAAKpB,GAAGE,EAAEuF,IAAI5C,EAAExC,IAAWA,CAAC,CAC3B,SAAS64B,EAAEl5B,GAAGkC,EAAElC,EAAE6Z,MAAM,sBAAsB,CAC7S,SAAS+f,EAAE55B,EAAE6C,GAAG,GAAG,KAAKA,EAAE,CAAC,IAAI3C,EAAE2C,EAAE,GAAGxC,EAAEwC,EAAEuS,QAAQ,IAAI,GAAG1V,EAAEmuD,SAAShrD,EAAEgB,UAAU,EAAExD,GAAG,IAAuB,OAAnBA,EAAEwC,EAAEgB,UAAUxD,EAAE,GAAUH,GAAG,IAAK,KAAiBA,GAAb2C,EAAE7C,EAAEotE,SAAa/mE,IAAI3G,IAAI,IAAIQ,EAAE4sE,UAAU9sE,EAAEE,EAAE6sE,OAAO7sE,EAAE4sE,QAAQ,EAAE5sE,EAAE6sE,OAAO1sE,EAAEg4B,EAAEr4B,IAAI6C,EAAE4C,IAAI/F,EAAE,IAAI0B,EAAE,EAAEf,EAAEL,IAAI,MAAM,IAAK,IAAgBE,GAAZ2C,EAAE7C,EAAEotE,SAAY/mE,IAAI3G,GAAGW,EAAE4N,KAAK3K,MAAMjD,EAAEL,EAAEitE,WAAW,IAAI9sE,EAAEH,EAAEqtE,eAAqCltE,GAAtBE,EAAEF,EAAEA,EAAEE,EAAE8Y,IAAI9Y,EAAEK,MAAML,GAAM6sE,OAAO,IAAI,IAAI9sE,EAAE,EAAEA,EAAED,EAAEc,OAAOb,IAAI,CAAC,IAAImC,EAAEpC,EAAEC,GAAG,QAAG,IAAST,EAAE0G,IAAI9D,GAAG,CAAC,IAAI41B,EAAE,IAAuB51B,GAAGxB,EAAEpB,EAAE8F,IAAI2F,KAAKzL,EAAE4C,EAAE,MAAMs3B,EAAEl6B,EAAE8F,IAAI2F,KAAKzL,EAAE4C,GAAG41B,EAAE1jB,KAAK1T,EAAE84B,GAAGl6B,EAAE8F,IAAIlD,EACxf41B,EAAE,CAAC,CAACj4B,EAAE,IAAIA,EAAE4sE,UAAU9sE,EAAEE,EAAE6sE,OAAO7sE,EAAE4sE,QAAQ,EAAE5sE,EAAE6sE,OAAO1sE,EAAEg4B,EAAEr4B,IAAI6C,EAAE4C,IAAI/F,EAAE,IAAI0B,EAAE,EAAEf,EAAEL,IAAI,MAAM,IAAK,IAAIA,EAAEotE,QAAQ3nE,IAAI/F,EAAE2B,EAAErB,EAL2G,SAAWA,GAA2C,OAAxCP,EAAEO,KAAKP,EAAEO,GAAGoH,EAAEktB,oBAAoBt0B,EAAEJ,IAAWH,EAAEO,EAAE,CAK1KD,CAAEM,GAAG8M,WAAW,MAAM,IAAK,IAAIjN,EAAE+N,KAAK3K,MAAMjD,GAAGL,EAAEotE,QAAQ3nE,IAAI/F,EAAE2B,EAAErB,EAAE0sE,OAAOC,IAAIzsE,KAAK,MAAM,IAAK,IAAI2C,EAAEoL,KAAK3K,MAAMjD,IAAGH,EAAE2Z,MAAMhX,EAAEgZ,UAAWD,MAAM/Y,EAAE+Y,OAAmBvb,GAAbwC,EAAE7C,EAAEotE,SAAa/mE,IAAI3G,IAAIw3B,EAAE72B,EAAEH,GAAG2C,EAAE4C,IAAI/F,EAAE,IAAI0B,EAAE,EAAElB,EAAEF,IAAI,MAAM,QAAQ,MAAM6Z,MAAM,8EAA+E,CAAC,CAC5a,SAAS8f,EAAE35B,GAAG,OAAO,SAAS6C,EAAE3C,GAAG,MAAM,iBAAkBA,EAH3D,SAAWF,EAAE6C,EAAE3C,GAAG,OAAOA,EAAE,IAAI,IAAK,IAAI,MAAG,MAAMA,EAAS8B,EAAK,MAAM9B,EAAE,IAAI,MAAMA,EAAE,GAAUA,EAAE2D,UAAU,GAAiD5B,EAAhBjC,EAAEQ,EAAER,EAAhC6tD,SAAS3tD,EAAE2D,UAAU,GAAG,MAAyB,IAAK,IAAI,OAAqC7D,EAAEQ,EAAER,EAAhC6tD,SAAS3tD,EAAE2D,UAAU,GAAG,KAAa,CAACypE,SAASt1C,EAAEu1C,SAASvtE,EAAEwtE,MAAMvrE,GAAG,OAAO/B,CAAC,CAGjM22B,CAAE72B,EAAEqD,EAAKnD,GAAG,iBAAkBA,GAAG,OAAOA,EAAKA,EAAE,KAAK8B,EAAE,CAACsrE,SAAStrE,EAAE+S,KAAK7U,EAAE,GAAGwJ,IAAIxJ,EAAE,GAAG2O,IAAI,KAAKpD,MAAMvL,EAAE,GAAGutE,OAAO,MAAMvtE,EAAKA,CAAC,CAAC,CAAC,SAAS43B,EAAE93B,GAAG,IAAI6C,EAAE,IAAI6qE,YAAiH,OAA3F1tE,EAAE,CAACqtE,eAAertE,EAAEotE,QAA5B,IAAIv3D,IAAkC6J,SAASxc,EAAEyqE,YAAY,GAAGC,eAAe/qE,IAAKoqE,UAAUtzC,EAAE35B,GAAUA,CAAC,CAC5U,SAASo4B,EAAEp4B,EAAE6C,GAAqR,SAASxC,EAAEwC,GAAGX,EAAElC,EAAE6C,EAAE,CAAC,IAAInD,EAAEmD,EAAEgrE,YAAYnuE,EAAEgN,OAAO+H,MAApU,SAASvU,EAAE2C,GAAG,IAAIzC,EAAEyC,EAAEuK,MAAM,IAAGvK,EAAEirE,KAAc,CAACjrE,EAAEzC,EAAEA,EAAEJ,EAAE4tE,eAAe,IAAI,IAAIrrE,EAAEM,EAAEuS,QAAQ,KAAK,EAAE7S,GAAG,CAAC,IAAIpC,EAAEH,EAAE2tE,YAAgB5sE,EAAE8B,EAAEkrE,SAAS,EAAExrE,GAAGxB,EAAEX,EAAE4tE,OAAOjtE,GAAG64B,EAAE55B,EAAEG,EAAEY,GAAGf,EAAE2tE,YAAY,GAAqBprE,GAAlBM,EAAEA,EAAEkrE,SAASxrE,EAAE,IAAO6S,QAAQ,GAAG,CAA8B,OAA7BpV,EAAE2tE,aAAavtE,EAAE4tE,OAAOnrE,EAAEvC,GAAUZ,EAAEgN,OAAO+H,KAAKvU,EAAEG,EAAE,CAA1O64B,EAAEl5B,EAAyO,GAA0DK,EAAE,CAPKe,EAAEmC,UAAUkR,KAAK,SAASzU,GAAG,IAAIqD,KAAKypE,SAAS,OAAOzpE,KAAK0pE,SAAS1pE,KAAK0pE,OAAO,IAAI1pE,KAAK0pE,OAAO93D,KAAKjV,IAAIA,GAAG,EAQ9cR,EAAQilB,yBAAyB,SAASzkB,EAAE6C,GAA+C,OAAPu1B,EAArCv1B,EAAEi1B,EAAEj1B,GAAGA,EAAEorE,UAAUprE,EAAEorE,UAAU,MAAUjuE,GAAU6C,CAAC,oCCdjGtD,EAAOC,QAAU,EAAjB,uCCDFA,EAAQ,OAAgB,EAwFxBA,EAAQ,EAhFc,CAAC2nC,EAAS,CAAC,KAC7B,GAAsB,oBAAXn8B,OACP,MAAO,CACHixC,YAAa,QAGrB,MAAM,IAAEvyC,EAAM,iBAAgB,QAAEwkE,EAAUryB,aAAY,UAAEsyB,EAAYlgE,MAASk5B,EAyBvEinC,EAAc,CAACpyB,EAAUttC,EAAOhF,EAAK2kE,KACnCA,SACO3/D,EAAMhF,GAGbgF,EAAMhF,GAAOsyC,EAEjBvrB,EAAS/hB,EAAM,EAEb4/D,EAAW,KACb,MAAMC,EAAUL,EAAQlgE,QAAQtE,GAChC,OAAI6kE,QACO,CAAC,EAEW,iBAAZA,EACAC,EAAWD,GAEM,mBAAjBA,EAAQ95D,KACR85D,EAAQ95D,KAAK+5D,GAEjB,CAAC,CAAC,EAEPA,EAAc9/D,IAChB,QAAc9B,IAAV8B,EACA,MAAO,CAAC,EAEZ,IACI,OAAOy/D,EAAU7qE,MAAMoL,EAC3B,CACA,MAAOhP,GAEH,OADAglC,QAAQviB,MAAMziB,GACP,CAAC,CACZ,GAEE+wB,EAAY/hB,IACd,IACqC,mBAAtBw/D,EAAQO,UACfP,EAAQO,UAAU/kE,EAAKykE,EAAUhgE,UAAUO,IAG3Cw/D,EAAQ9/D,QAAQ1E,EAAKykE,EAAUhgE,UAAUO,GAEjD,CACA,MAAOhP,GACHglC,QAAQviB,MAAMziB,EAClB,GAEJ,MAAO,CAAEu8C,YAvEW,EAAGF,QAAOlwC,OAAMk7C,UAAS2nB,cACzC,GAAgB,QAAZ3nB,EAAmB,CACnB,MAAMr4C,EAAQ4/D,IACY,mBAAf5/D,EAAM+F,MACb/F,EAAM+F,MAAM3U,IACJA,EAAE6J,eAAekC,EAAKnC,MACtBglE,EAAQ5uE,EAAE+L,EAAKnC,KACnB,IAGJgF,EAAM/E,eAAekC,EAAKnC,MAC1BglE,EAAQhgE,EAAM7C,EAAKnC,KAE3B,CACAqyC,GAAM1C,MAAO2C,EAAUv5C,EAAG4rE,KACtB,MAAM3/D,EAAQ4/D,IACY,mBAAf5/D,EAAM+F,KACb/F,EAAM+F,MAAM3U,GAAMsuE,EAAYpyB,EAAUl8C,EAAG+L,EAAKnC,IAAK2kE,KAGrDD,EAAYpyB,EAAUttC,EAAO7C,EAAKnC,IAAK2kE,EAC3C,GACF,EAiDgB,wBCxF1B,IAAIvlE,EAAQ,EAAQ,MAEpB,SAAS6lE,EAAgBljE,GACrB,OAAO3C,EAAMoE,cAAc,MAAMzB,EAAM,CAAC3C,EAAMoE,cAAc,IAAI,CAAC,SAAW,uBAAuB,IAAM,GAAG,CAACpE,EAAMoE,cAAc,OAAO,CAAC,EAAI,iPAAiP,KAAO,QAAQ,IAAM,IAAIpE,EAAMoE,cAAc,OAAO,CAAC,EAAI,gPAAgP,KAAO,QAAQ,IAAM,MAAMpE,EAAMoE,cAAc,OAAO,CAAC,IAAM,GAAGpE,EAAMoE,cAAc,WAAW,CAAC,GAAK,kBAAkBpE,EAAMoE,cAAc,OAAO,CAAC,MAAQ,KAAK,OAAS,KAAK,KAAO,aACh2B,CAEAyhE,EAAeC,aAAe,CAAC,MAAQ,KAAK,OAAS,KAAK,QAAU,YAAY,KAAO,QAEvFrvE,EAAOC,QAAUmvE,EAEjBA,EAAe1lE,QAAU0lE,wBCVzB,IAAI7lE,EAAQ,EAAQ,MAEpB,SAAS+lE,EAAgBpjE,GACrB,OAAO3C,EAAMoE,cAAc,MAAMzB,EAAM3C,EAAMoE,cAAc,OAAO,CAAC,EAAI,ymCAAymC,KAAO,UAC3rC,CAEA2hE,EAAeD,aAAe,CAAC,MAAQ,KAAK,OAAS,KAAK,QAAU,YAAY,KAAO,QAEvFrvE,EAAOC,QAAUqvE,EAEjBA,EAAe5lE,QAAU4lE,wBCVzB,IAAI/lE,EAAQ,EAAQ,MAEpB,SAASgmE,EAAoBrjE,GACzB,OAAO3C,EAAMoE,cAAc,MAAMzB,EAAM,CAAC3C,EAAMoE,cAAc,IAAI,CAAC,SAAW,uBAAuB,IAAM,GAAGpE,EAAMoE,cAAc,OAAO,CAAC,EAAI,6/GAA6/G,KAAO,WAAWpE,EAAMoE,cAAc,OAAO,CAAC,IAAM,GAAGpE,EAAMoE,cAAc,WAAW,CAAC,GAAK,kBAAkBpE,EAAMoE,cAAc,OAAO,CAAC,MAAQ,KAAK,OAAS,KAAK,KAAO,QAAQ,UAAY,sBAC70H,CAEA4hE,EAAmBF,aAAe,CAAC,MAAQ,KAAK,OAAS,KAAK,QAAU,YAAY,KAAO,QAE3FrvE,EAAOC,QAAUsvE,EAEjBA,EAAmB7lE,QAAU6lE,wBCV7B,IAAIhmE,EAAQ,EAAQ,MAEpB,SAASimE,EAAetjE,GACpB,OAAO3C,EAAMoE,cAAc,MAAMzB,EAAM,CAAC3C,EAAMoE,cAAc,IAAI,CAAC,SAAW,uBAAuB,IAAM,GAAGpE,EAAMoE,cAAc,OAAO,CAAC,EAAI,2bAA2b,KAAO,WAAWpE,EAAMoE,cAAc,OAAO,CAAC,IAAM,GAAGpE,EAAMoE,cAAc,WAAW,CAAC,GAAK,kBAAkBpE,EAAMoE,cAAc,OAAO,CAAC,MAAQ,KAAK,OAAS,KAAK,KAAO,aACvvB,CAEA6hE,EAAcH,aAAe,CAAC,MAAQ,KAAK,OAAS,KAAK,QAAU,YAAY,KAAO,QAEtFrvE,EAAOC,QAAUuvE,EAEjBA,EAAc9lE,QAAU8lE,wBCVxB,IAAIjmE,EAAQ,EAAQ,MAEpB,SAASkmE,EAAoBvjE,GACzB,OAAO3C,EAAMoE,cAAc,MAAMzB,EAAM3C,EAAMoE,cAAc,OAAO,CAAC,EAAI,y+DAAy+D,KAAO,UAC3jE,CAEA8hE,EAAmBJ,aAAe,CAAC,MAAQ,KAAK,OAAS,KAAK,QAAU,YAAY,KAAO,QAE3FrvE,EAAOC,QAAUwvE,EAEjBA,EAAmB/lE,QAAU+lE,wBCV7B,IAAIlmE,EAAQ,EAAQ,MAEpB,SAASmmE,EAAkBxjE,GACvB,OAAO3C,EAAMoE,cAAc,MAAMzB,EAAM3C,EAAMoE,cAAc,OAAO,CAAC,EAAI,sSAAsS,KAAO,UACxX,CAEA+hE,EAAiBL,aAAe,CAAC,MAAQ,KAAK,OAAS,KAAK,QAAU,YAAY,KAAO,QAEzFrvE,EAAOC,QAAUyvE,EAEjBA,EAAiBhmE,QAAUgmE,wBCV3B,IAAInmE,EAAQ,EAAQ,MAEpB,SAASomE,EAAgBzjE,GACrB,OAAO3C,EAAMoE,cAAc,MAAMzB,EAAM,CAAC3C,EAAMoE,cAAc,IAAI,CAAC,SAAW,wBAAwB,IAAM,GAAG,CAACpE,EAAMoE,cAAc,OAAO,CAAC,EAAI,6BAA6B,KAAO,UAAU,IAAM,IAAIpE,EAAMoE,cAAc,OAAO,CAAC,SAAW,UAAU,SAAW,UAAU,EAAI,k7DAAk7D,KAAO,QAAQ,IAAM,MAAMpE,EAAMoE,cAAc,OAAO,CAAC,IAAM,GAAGpE,EAAMoE,cAAc,WAAW,CAAC,GAAK,mBAAmBpE,EAAMoE,cAAc,OAAO,CAAC,MAAQ,UAAU,OAAS,KAAK,KAAO,aACj4E,CAEAgiE,EAAeN,aAAe,CAAC,MAAQ,MAAM,OAAS,KAAK,QAAU,aAAa,KAAO,QAEzFrvE,EAAOC,QAAU0vE,EAEjBA,EAAejmE,QAAUimE,mFCqBlB,SAASC,EAAW/hE,EAAOsG,QACd,IAAZA,IAAsBA,EAAU,CAAC,GACrC,IAAI07D,EAaR,SAA4BhiE,GAExB,GAAIA,GAAsB,MAAbA,EAAM,IAA2B,MAAbA,EAAM,GACnC,OAAOA,EAAMupB,OAAO,GAExB,OAAOvpB,CACX,CAnBqBiiE,CAAmBjiE,GACpC,GAXG,SAAyBA,EAAOkiE,GAMnC,YAL0B,IAAfA,IAEPA,GACKliE,GAAuB,MAAbA,EAAM,IAA2B,MAAbA,EAAM,IAA2B,MAAbA,EAAM,KAEzDkiE,CACZ,CAIQC,CAAgBH,EAAY17D,EAAQ47D,YACpC,IACI,OAAOrhE,KAAK3K,MAAM8rE,EACtB,CACA,MAAO1vE,GAEP,CAIJ,OAAO0N,CACX,CC7CA,IAAIoiE,EAAsC,WAStC,OARAA,EAAWjmE,OAAOmY,QAAU,SAASjiB,GACjC,IAAK,IAAIK,EAAGD,EAAI,EAAGF,EAAIiD,UAAU3B,OAAQpB,EAAIF,EAAGE,IAE5C,IAAK,IAAImC,KADTlC,EAAI8C,UAAU/C,GACO0J,OAAOhG,UAAUoG,eAAeC,KAAK9J,EAAGkC,KACzDvC,EAAEuC,GAAKlC,EAAEkC,IAEjB,OAAOvC,CACX,EACO+vE,EAAS1pE,MAAMzC,KAAMT,UAChC,ECTA,EDY6B,WACzB,SAASyyB,EAAQM,EAASjiB,GACtB,IAAIlJ,EAAQnH,KACZA,KAAKosE,gBAAkB,GACvBpsE,KAAKqsE,qBAAsB,EAC3BrsE,KAAKsyB,QDNN,SAAsBA,EAASjiB,GAClC,MAAuB,iBAAZiiB,EACAg6C,EAAA,EAAah6C,EAASjiB,GAEL,iBAAZiiB,GAAoC,OAAZA,EAC7BA,EAGA,CAAC,CAEhB,CCJuBi6C,CAAaj6C,EAASjiB,GACrC,IAAIgB,SAAQ,WACRlK,EAAMklE,oBDjBa,iBAAb5jE,UAAoD,iBAApBA,SAAS6jE,MCkBnD,IAAGxxD,OAAM,WAAc,GAC3B,CAuDA,OAtDAkX,EAAQ9xB,UAAUssE,qBAAuB,SAAUC,GAC1CzsE,KAAKqsE,sBAGVrsE,KAAKsyB,QAAUg6C,EAAA,EAAa7jE,SAAS6jE,OAAQG,GACjD,EACAz6C,EAAQ9xB,UAAUwsE,YAAc,SAAUv4D,GACtC,IAAK,IAAI3X,EAAI,EAAGA,EAAIwD,KAAKosE,gBAAgBxuE,SAAUpB,EAC/CwD,KAAKosE,gBAAgB5vE,GAAG2X,EAEhC,EACA6d,EAAQ9xB,UAAU8C,IAAM,SAAU3F,EAAMgT,EAASo8D,GAG7C,YAFgB,IAAZp8D,IAAsBA,EAAU,CAAC,GACrCrQ,KAAKwsE,qBAAqBC,GACnBX,EAAW9rE,KAAKsyB,QAAQj1B,GAAOgT,EAC1C,EACA2hB,EAAQ9xB,UAAUysE,OAAS,SAAUt8D,EAASo8D,QAC1B,IAAZp8D,IAAsBA,EAAU,CAAC,GACrCrQ,KAAKwsE,qBAAqBC,GAC1B,IAAI17D,EAAS,CAAC,EACd,IAAK,IAAI67D,KAAU5sE,KAAKsyB,QACpBvhB,EAAO67D,GAAUd,EAAW9rE,KAAKsyB,QAAQs6C,GAASv8D,GAEtD,OAAOU,CACX,EACAihB,EAAQ9xB,UAAUkC,IAAM,SAAU/E,EAAM0M,EAAOsG,GAC3C,IAAIw8D,EACiB,iBAAV9iE,IACPA,EAAQa,KAAKE,UAAUf,IAE3B/J,KAAKsyB,QAAU65C,EAASA,EAAS,CAAC,EAAGnsE,KAAKsyB,WAAWu6C,EAAK,CAAC,GAAMxvE,GAAQ0M,EAAO8iE,IAC5E7sE,KAAKqsE,sBACL5jE,SAAS6jE,OAASA,EAAA,EAAiBjvE,EAAM0M,EAAOsG,IAEpDrQ,KAAK0sE,YAAY,CAAErvE,KAAMA,EAAM0M,MAAOA,EAAOsG,QAASA,GAC1D,EACA2hB,EAAQ9xB,UAAUsM,OAAS,SAAUnP,EAAMgT,GACvC,IAAIy8D,EAAgBz8D,EAAU87D,EAASA,EAAS,CAAC,EAAG97D,GAAU,CAAEynC,QAAS,IAAI13C,KAAK,KAAM,EAAG,EAAG,EAAG,EAAG,GAAI2sE,OAAQ,IAChH/sE,KAAKsyB,QAAU65C,EAAS,CAAC,EAAGnsE,KAAKsyB,gBAC1BtyB,KAAKsyB,QAAQj1B,GAChB2C,KAAKqsE,sBACL5jE,SAAS6jE,OAASA,EAAA,EAAiBjvE,EAAM,GAAIyvE,IAEjD9sE,KAAK0sE,YAAY,CAAErvE,KAAMA,EAAM0M,WAAOR,EAAW8G,QAASA,GAC9D,EACA2hB,EAAQ9xB,UAAU8sE,kBAAoB,SAAUpoD,GAC5C5kB,KAAKosE,gBAAgBx6D,KAAKgT,EAC9B,EACAoN,EAAQ9xB,UAAU+sE,qBAAuB,SAAUroD,GAC/C,IAAIsoD,EAAMltE,KAAKosE,gBAAgBr6D,QAAQ6S,GACnCsoD,GAAO,GACPltE,KAAKosE,gBAAgBt6D,OAAOo7D,EAAK,EAEzC,EACOl7C,CACX,CAjE4B,oCEC5B71B,EAAQ,EAiCR,SAAeoI,EAAK8L,GAClB,GAAmB,iBAAR9L,EACT,MAAM,IAAIC,UAAU,iCAQtB,IALA,IAAIkB,EAAM,CAAC,EACPynE,EAAM98D,GAAW,CAAC,EAClB+8D,EAAQ7oE,EAAIhH,MAAM,KAClB8vE,EAAMF,EAAIxC,QAAUA,EAEfnuE,EAAI,EAAGA,EAAI4wE,EAAMxvE,OAAQpB,IAAK,CACrC,IAAI8wE,EAAOF,EAAM5wE,GACbimB,EAAQ6qD,EAAKv7D,QAAQ,KAGzB,KAAI0Q,EAAQ,GAAZ,CAIA,IAAIpc,EAAMinE,EAAK9sE,UAAU,EAAGiiB,GAAO7J,OAGnC,GAAIrP,MAAa7D,EAAIW,GAAM,CACzB,IAAImmD,EAAM8gB,EAAK9sE,UAAUiiB,EAAQ,EAAG6qD,EAAK1vE,QAAQgb,OAGlC,MAAX4zC,EAAI,KACNA,EAAMA,EAAI9pD,MAAM,GAAI,IAGtBgD,EAAIW,GAAOknE,EAAU/gB,EAAK6gB,EAC5B,CAdA,CAeF,CAEA,OAAO3nE,CACT,EAnEAvJ,EAAQ,EAqFR,SAAmBkB,EAAMmvD,EAAKn8C,GAC5B,IAAI88D,EAAM98D,GAAW,CAAC,EAClBm9D,EAAML,EAAInsD,QAAUA,EAExB,GAAmB,mBAARwsD,EACT,MAAM,IAAIhpE,UAAU,4BAGtB,IAAKipE,EAAmBntE,KAAKjD,GAC3B,MAAM,IAAImH,UAAU,4BAGtB,IAAIuF,EAAQyjE,EAAIhhB,GAEhB,GAAIziD,IAAU0jE,EAAmBntE,KAAKyJ,GACpC,MAAM,IAAIvF,UAAU,2BAGtB,IAAID,EAAMlH,EAAO,IAAM0M,EAEvB,GAAI,MAAQojE,EAAIJ,OAAQ,CACtB,IAAIA,EAASI,EAAIJ,OAAS,EAE1B,GAAIn7C,MAAMm7C,KAAYW,SAASX,GAC7B,MAAM,IAAIvoE,UAAU,4BAGtBD,GAAO,aAAerG,KAAKE,MAAM2uE,EACnC,CAEA,GAAII,EAAIQ,OAAQ,CACd,IAAKF,EAAmBntE,KAAK6sE,EAAIQ,QAC/B,MAAM,IAAInpE,UAAU,4BAGtBD,GAAO,YAAc4oE,EAAIQ,MAC3B,CAEA,GAAIR,EAAI/6D,KAAM,CACZ,IAAKq7D,EAAmBntE,KAAK6sE,EAAI/6D,MAC/B,MAAM,IAAI5N,UAAU,0BAGtBD,GAAO,UAAY4oE,EAAI/6D,IACzB,CAEA,GAAI+6D,EAAIr1B,QAAS,CACf,GAAuC,mBAA5Bq1B,EAAIr1B,QAAQh0C,YACrB,MAAM,IAAIU,UAAU,6BAGtBD,GAAO,aAAe4oE,EAAIr1B,QAAQh0C,aACpC,CAEIqpE,EAAIS,WACNrpE,GAAO,cAGL4oE,EAAIU,SACNtpE,GAAO,YAGT,GAAI4oE,EAAIW,SAAU,CAIhB,OAHuC,iBAAjBX,EAAIW,SACtBX,EAAIW,SAAS9uE,cAAgBmuE,EAAIW,UAGnC,KAAK,EACHvpE,GAAO,oBACP,MACF,IAAK,MACHA,GAAO,iBACP,MACF,IAAK,SACHA,GAAO,oBACP,MACF,IAAK,OACHA,GAAO,kBACP,MACF,QACE,MAAM,IAAIC,UAAU,8BAE1B,CAEA,OAAOD,CACT,EAnKA,IAAIomE,EAAS53D,mBACTiO,EAASlO,mBAUT26D,EAAqB,wCAkKzB,SAASF,EAAUhpE,EAAKomE,GACtB,IACE,OAAOA,EAAOpmE,EAChB,CAAE,MAAOlI,GACP,OAAOkI,CACT,CACF,4JCvMe,SAAS,EAAiB6Q,GACrC,MAAM5J,GAAM,IAAAC,SAAO,KACf,MAAM,IAAI+K,MAAM,gDAAgD,IAKpE,OAHA,GAA0B,KACtBhL,EAAIG,QAAUyJ,CAAE,GACjB,CAACA,KACG,IAAAu5B,cAAY,IAAIrvC,IAASkM,EAAIG,WAAWrM,IAAO,CAACkM,GAC3D,CCSA,MAjBA,SAA0BovB,EAAWjpB,EAASvH,EAASiG,GACnD,MAAM09D,GAAe,IAAAtiE,QAAOkG,GAC5B,GAA0B,KACtBo8D,EAAapiE,QAAUgG,CAAO,GAC/B,CAACA,KACJ,IAAAkT,YAAU,KACN,IAAIgoD,EACJ,MAAMmB,EAA6F,QAA5EnB,EAAKziE,aAAyC,EAASA,EAAQuB,eAA4B,IAAPkhE,EAAgBA,EAAKllE,OAChI,IAAMqmE,IAAiBA,EAAc7kE,iBACjC,OACJ,MAAM8kE,EAAW1jD,GAASwjD,EAAapiE,QAAQ4e,GAE/C,OADAyjD,EAAc7kE,iBAAiByxB,EAAWqzC,EAAU59D,GAC7C,KACH29D,EAAcvkE,oBAAoBmxB,EAAWqzC,EAAU59D,EAAQ,CAClE,GACF,CAACuqB,EAAWxwB,EAASiG,GAC5B,EChBA,MADoD,oBAAX1I,OAAyB,EAAA+D,gBAAkB,EAAAmZ,UC2CpF,MA1CA,SAA2Bxe,EAAK6nE,GAC5B,MAAMC,GAAY,IAAAx/B,cAAY,KAC1B,GAAsB,oBAAXhnC,OACP,OAAOumE,EAEX,IACI,MAAM50B,EAAO3xC,OAAO+C,eAAeC,QAAQtE,GAC3C,OAAOizC,EAoCnB,SAAmBvvC,GACf,IACI,MAAiB,cAAVA,OAAwBR,EAAYqB,KAAK3K,MAAM8J,QAAqCA,EAAQ,GACvG,CACA,MAAO8iE,GAEH,YADAxrC,QAAQC,IAAI,mBAAoB,CAAEv3B,SAEtC,CACJ,CA5C0B,CAAUuvC,GAAQ40B,CACpC,CACA,MAAOpvD,GAEH,OADAuiB,QAAQc,KAAK,qCAAqC97B,MAASyY,GACpDovD,CACX,IACD,CAACA,EAAc7nE,KACXwE,EAAaujE,IAAkB,IAAA1/B,UAASy/B,GACzCE,EAAW,GAAiBtkE,IACT,oBAAVpC,QACP05B,QAAQc,KAAK,qCAAqC97B,8CAEtD,IACI,MAAMsyC,EAAW5uC,aAAiBiL,SAAWjL,EAAMc,GAAed,EAClEpC,OAAO+C,eAAeK,QAAQ1E,EAAKuE,KAAKE,UAAU6tC,IAClDy1B,EAAez1B,GACfhxC,OAAO2mE,cAAc,IAAIC,MAAM,mBACnC,CACA,MAAOzvD,GACHuiB,QAAQc,KAAK,qCAAqC97B,MAASyY,EAC/D,MAEJ,IAAA+F,YAAU,KACNupD,EAAeD,IAAY,GAC5B,IACH,MAAMK,GAAsB,IAAA7/B,cAAapkB,KAChCA,aAAqC,EAASA,EAAMlkB,MAAQkkB,EAAMlkB,MAAQA,GAG/E+nE,EAAeD,IAAY,GAC5B,CAAC9nE,EAAK8nE,IAGT,OAFA,EAAiB,UAAWK,GAC5B,EAAiB,kBAAmBA,GAC7B,CAAC3jE,EAAawjE,EACzB,oBCrCAnyE,EAAOC,QANP,SAAgCq9C,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAE3B,OAAOD,CACT,EACyCt9C,EAAOC,QAAQkJ,YAAa,EAAMnJ,EAAOC,QAAiB,QAAID,EAAOC,8BCN9G,IAAI8Y,EAAiB,EAAQ,MAM7B/Y,EAAOC,QALP,SAAwBu9C,EAAUC,GAChCD,EAASx5C,UAAYgG,OAAOsL,OAAOmoC,EAAWz5C,WAC9Cw5C,EAASx5C,UAAUqV,YAAcmkC,EACjCzkC,EAAeykC,EAAUC,EAC3B,EACiCz9C,EAAOC,QAAQkJ,YAAa,EAAMnJ,EAAOC,QAAiB,QAAID,EAAOC,0BCDtGD,EAAOC,QALP,SAAgCuJ,GAC9B,OAAOA,GAAOA,EAAIL,WAAaK,EAAM,CACnC,QAAWA,EAEf,EACyCxJ,EAAOC,QAAQkJ,YAAa,EAAMnJ,EAAOC,QAAiB,QAAID,EAAOC,0BCL9G,SAASsyE,EAAgB7xE,EAAG+B,GAK1B,OAJAzC,EAAOC,QAAUsyE,EAAkBvoE,OAAO+O,eAAiB/O,OAAO+O,eAAelN,OAAS,SAAyBnL,EAAG+B,GAEpH,OADA/B,EAAEs1B,UAAYvzB,EACP/B,CACT,EAAGV,EAAOC,QAAQkJ,YAAa,EAAMnJ,EAAOC,QAAiB,QAAID,EAAOC,QACjEsyE,EAAgB7xE,EAAG+B,EAC5B,CACAzC,EAAOC,QAAUsyE,EAAiBvyE,EAAOC,QAAQkJ,YAAa,EAAMnJ,EAAOC,QAAiB,QAAID,EAAOC,yCCLvG+J,OAAOC,eAAehK,EAAS,aAA/B,CAA+C4N,OAAO,IA6CtD5N,EAAQuyE,YAVY,iBAWpBvyE,EAAQ6Q,iBAHkB82B,GAvCJ,EAACA,EAAQ6qC,KAC3B,MAAM,QAAExiE,EAAU,MAAOyiE,GAAmB9qC,GAAU,CAAC,EACjD+qC,EAAYjkE,KAAKE,UAAU8jE,GAAgB,CAAC7qE,EAAGhG,KAChC,mBAANA,IACPA,EAAIJ,OAAOI,IACLoV,WAAWpP,EAAI,OACjBhG,EAAI,YAAcA,GAGnBA,KAEX,MAAO,CACH,uBACAmI,OAAOwQ,KAAKk4D,GAAgBhxE,OAAS,EAC/B,iCAAiCixE,MACjC,mBACN,kBACA1iE,EAAQvO,OAAS,EAAI,WAAWgN,KAAKE,UAAUqB,MAAc,GAC7D,oCACAwiE,GACF7wE,KAAK,GAAG,EAmBuBgxE,CAAchrC,EAzC1B,q9CCJV,SAASirC,EAAkBC,EAAKC,IAClC,MAAPA,GAAeA,EAAMD,EAAIpxE,UAAQqxE,EAAMD,EAAIpxE,QAC/C,IAAK,IAAIpB,EAAI,EAAG0yE,EAAO,IAAIrxE,MAAMoxE,GAAMzyE,EAAIyyE,EAAKzyE,IAAK0yE,EAAK1yE,GAAKwyE,EAAIxyE,GACnE,OAAO0yE,CACT,oECJe,SAASp2D,EAAuB0gC,GAC7C,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAE3B,OAAOD,CACT,oECLe,SAAS21B,EAAgBvyE,GAItC,OAHAuyE,EAAkBjpE,OAAO+O,eAAiB/O,OAAOoP,eAAevN,OAAS,SAAyBnL,GAChG,OAAOA,EAAEs1B,WAAahsB,OAAOoP,eAAe1Y,EAC9C,EACOuyE,EAAgBvyE,EACzB,kHCJe,SAASqc,EAAeygC,EAAUC,GAC/CD,EAASx5C,UAAYgG,OAAOsL,OAAOmoC,EAAWz5C,WAC9Cw5C,EAASx5C,UAAUqV,YAAcmkC,GACjC,OAAeA,EAAUC,EAC3B,qCCLe,SAASy1B,IACtB,GAAuB,oBAAZv6D,UAA4BA,QAAQC,UAAW,OAAO,EACjE,GAAID,QAAQC,UAAUu6D,KAAM,OAAO,EACnC,GAAqB,mBAAVC,MAAsB,OAAO,EACxC,IAEE,OADAthD,QAAQ9tB,UAAUoC,QAAQiE,KAAKsO,QAAQC,UAAUkZ,QAAS,IAAI,WAAa,MACpE,CACT,CAAE,MAAO3xB,GACP,OAAO,CACT,CACF,oECVe,SAASoyE,EAAgB7xE,EAAG+B,GAKzC,OAJA8vE,EAAkBvoE,OAAO+O,eAAiB/O,OAAO+O,eAAelN,OAAS,SAAyBnL,EAAG+B,GAEnG,OADA/B,EAAEs1B,UAAYvzB,EACP/B,CACT,EACO6xE,EAAgB7xE,EAAG+B,EAC5B,8HCFe,SAASohB,EAAmBivD,GACzC,OCJa,SAA4BA,GACzC,GAAInxE,MAAMs5C,QAAQ63B,GAAM,OAAO,EAAAO,EAAA,GAAiBP,EAClD,CDES,CAAkBA,IELZ,SAA0BQ,GACvC,GAAsB,oBAAXnG,QAAmD,MAAzBmG,EAAKnG,OAAOoG,WAA2C,MAAtBD,EAAK,cAAuB,OAAO3xE,MAAM2hB,KAAKgwD,EACtH,CFGmC,CAAgBR,KAAQ,EAAAU,EAAA,GAA2BV,IGLvE,WACb,MAAM,IAAIxqE,UAAU,uIACtB,CHG8F,EAC9F,iFILe,SAASmrE,EAA4B/yE,EAAGgzE,GACrD,GAAKhzE,EAAL,CACA,GAAiB,iBAANA,EAAgB,OAAO,OAAiBA,EAAGgzE,GACtD,IAAItzE,EAAI4J,OAAOhG,UAAU2B,SAAS0E,KAAK3J,GAAG8F,MAAM,GAAI,GAEpD,MADU,WAANpG,GAAkBM,EAAE2Y,cAAajZ,EAAIM,EAAE2Y,YAAYlY,MAC7C,QAANf,GAAqB,QAANA,EAAoBuB,MAAM2hB,KAAK5iB,GACxC,cAANN,GAAqB,2CAA2CgE,KAAKhE,IAAW,OAAiBM,EAAGgzE,QAAxG,CALc,CAMhB,oCCRA,SAASrzE,EAAEF,GAAG,IAAID,EAAEU,EAAER,EAAE,GAAG,GAAG,iBAAiBD,GAAG,iBAAiBA,EAAEC,GAAGD,OAAO,GAAG,iBAAiBA,EAAE,GAAGwB,MAAMs5C,QAAQ96C,GAAG,IAAID,EAAE,EAAEA,EAAEC,EAAEuB,OAAOxB,IAAIC,EAAED,KAAKU,EAAEP,EAAEF,EAAED,OAAOE,IAAIA,GAAG,KAAKA,GAAGQ,QAAQ,IAAIV,KAAKC,EAAEA,EAAED,KAAKE,IAAIA,GAAG,KAAKA,GAAGF,GAAG,OAAOE,CAAC,CAAQ,SAASg1C,IAAO,IAAI,IAAIj1C,EAAED,EAAEU,EAAE,EAAER,EAAE,GAAGQ,EAAEyC,UAAU3B,SAASvB,EAAEkD,UAAUzC,QAAQV,EAAEG,EAAEF,MAAMC,IAAIA,GAAG,KAAKA,GAAGF,GAAG,OAAOE,CAAC,iCAAC,yECElW,MAAMiyC,GAAqB,UAAAxnC,eAAc,CAAC,qECG1C,MAAMknC,GAAkB,UAAAlnC,eAAc,uKCLtC,MAAM8oE,EACF,WAAAt6D,GACIvV,KAAK8vE,MAAQ,GACb9vE,KAAK+vE,UAAY,IAAI1yD,GACzB,CACA,GAAA5e,CAAIotC,GACA,IAAK7rC,KAAK+vE,UAAUhqE,IAAI8lC,GAGpB,OAFA7rC,KAAK+vE,UAAUtxE,IAAIotC,GACnB7rC,KAAK8vE,MAAMl+D,KAAKi6B,IACT,CAEf,CACA,MAAAr/B,CAAOq/B,GACH,MAAMppB,EAAQziB,KAAK8vE,MAAM/9D,QAAQ85B,IAClB,IAAXppB,IACAziB,KAAK8vE,MAAMh+D,OAAO2Q,EAAO,GACzBziB,KAAK+vE,UAAUtyD,OAAOouB,GAE9B,CACA,KAAA4D,GACIzvC,KAAK8vE,MAAMlyE,OAAS,EACpBoC,KAAK+vE,UAAUtgC,OACnB,ECpBJ,MAAMugC,EAAa,CACf,UACA,OACA,SACA,YACA,SACA,cCLJ,MAAQC,SAAU,EAAO9uD,OAAQ+uD,EAAa7kE,MAAO8kE,EAAS,MAAE5hB,GDQhE,SAA6B6hB,EAAmBC,GAC5C,IAAIC,GAAe,EACfC,GAAoB,EACxB,MAAMllE,EAAQ,CACVmlE,MAAO,EACPC,UAAW,EACXC,cAAc,GAEZniB,EAAQyhB,EAAW/+D,QAAO,CAAC0/D,EAAKtqE,KAClCsqE,EAAItqE,GDIZ,SAA0BiqE,GAKtB,IAAIM,EAAY,IAAIf,EAChBgB,EAAY,IAAIhB,EAChBiB,EAAW,EAKXJ,GAAe,EACfK,GAAiB,EAIrB,MAAMC,EAAc,IAAIC,QAClBC,EAAO,CAITjB,SAAU,CAACrrD,EAAUusD,GAAY,EAAOC,GAAY,KAChD,MAAMC,EAAoBD,GAAaV,EACjCY,EAAQD,EAAoBT,EAAYC,EAO9C,OANIM,GACAH,EAAYvyE,IAAImmB,GAChB0sD,EAAM7yE,IAAImmB,IAAaysD,GAAqBX,IAE5CI,EAAWF,EAAUd,MAAMlyE,QAExBgnB,CAAQ,EAKnBzD,OAASyD,IACLisD,EAAUrkE,OAAOoY,GACjBosD,EAAYvzD,OAAOmH,EAAS,EAKhCinB,QAAUskC,IAMN,GAAIO,EACAK,GAAiB,MADrB,CAUA,GANAL,GAAe,GACdE,EAAWC,GAAa,CAACA,EAAWD,GAErCC,EAAUphC,QAEVqhC,EAAWF,EAAUd,MAAMlyE,OACvBkzE,EACA,IAAK,IAAIt0E,EAAI,EAAGA,EAAIs0E,EAAUt0E,IAAK,CAC/B,MAAMooB,EAAWgsD,EAAUd,MAAMtzE,GACjCooB,EAASurD,GACLa,EAAYjrE,IAAI6e,KAChBssD,EAAKjB,SAASrrD,GACd0rD,IAER,CAEJI,GAAe,EACXK,IACAA,GAAiB,EACjBG,EAAKrlC,QAAQskC,GApBjB,CAqBA,GAGR,OAAOe,CACX,CCjFmBK,EAAiB,IAAOjB,GAAe,IAC3CK,IACR,CAAC,GACEa,EAAeC,GAAWljB,EAAMkjB,GAAQ5lC,QAAQxgC,GAChDqmE,EAAe,KACjB,MAAMjB,EAAYphD,YAAY+D,MAC9Bk9C,GAAe,EACfjlE,EAAMmlE,MAAQD,EACR,IAAO,GACPryE,KAAK81B,IAAI91B,KAAK4E,IAAI2tE,EAAYplE,EAAMolE,UAnB/B,IAmBuD,GAClEplE,EAAMolE,UAAYA,EAClBplE,EAAMqlE,cAAe,EACrBV,EAAWhsE,QAAQwtE,GACnBnmE,EAAMqlE,cAAe,EACjBJ,GAAgBD,IAChBE,GAAoB,EACpBH,EAAkBsB,GACtB,EAmBJ,MAAO,CAAEzB,SAVQD,EAAW/+D,QAAO,CAAC0/D,EAAKtqE,KACrC,MAAM6qE,EAAO3iB,EAAMloD,GAMnB,OALAsqE,EAAItqE,GAAO,CAACwlC,EAASslC,GAAY,EAAOC,GAAY,KAC3Cd,IATTA,GAAe,EACfC,GAAoB,EACfllE,EAAMqlE,cACPN,EAAkBsB,IAQXR,EAAKjB,SAASpkC,EAASslC,EAAWC,IAEtCT,CAAG,GACX,CAAC,GAEexvD,OADH0qB,GAAYmkC,EAAWhsE,SAASqC,GAAQkoD,EAAMloD,GAAK8a,OAAO0qB,KAC/CxgC,QAAOkjD,QACtC,CCtD2EojB,CAAqD,oBAA1B9pE,sBAAwCA,sBAAwB+pE,EAAA,GAAM,oFCE5K,MAAMC,GAAsB,IAAA9qE,eAAc,CACtC+qE,mBAAqBnzE,GAAMA,EAC3BozE,UAAU,EACVC,cAAe,UCNbC,GAAgB,IAAAlrE,eAAc,CAAC,0BCArC,MAAMmrE,GAAc,IAAAnrE,eAAc,CAAEorE,QAAQ,ICF5C,SAASC,EAAY5mE,GACjB,MAAuB,iBAARA,GACXtF,OAAOhG,UAAUoG,eAAeC,KAAKiF,EAAK,UAClD,CCAA,SAAS6mE,EAAet0E,GACpB,MAAoB,iBAANA,GAAkBF,MAAMs5C,QAAQp5C,EAClD,CCLA,SAASu0E,EAAoBv0E,GACzB,MAAoB,iBAANA,GAAqC,mBAAZA,EAAE6iB,KAC7C,CCFA,MAAM2xD,EAAuB,CACzB,UACA,cACA,aACA,aACA,WACA,YACA,QAEEC,EAAe,CAAC,aAAcD,GCLpC,SAASE,EAAsBrqE,GAC3B,OAAQkqE,EAAoBlqE,EAAMwsC,UAC9B49B,EAAa30D,MAAMxgB,GAASg1E,EAAejqE,EAAM/K,KACzD,CACA,SAASq1E,EAActqE,GACnB,OAAO4lB,QAAQykD,EAAsBrqE,IAAUA,EAAMusC,SACzD,CCNA,SAASg+B,EAAuBvqE,GAC5B,MAAM,QAAEolC,EAAO,QAAEoH,GCFrB,SAAgCxsC,EAAOupB,GACnC,GAAI8gD,EAAsBrqE,GAAQ,CAC9B,MAAM,QAAEolC,EAAO,QAAEoH,GAAYxsC,EAC7B,MAAO,CACHolC,SAAqB,IAAZA,GAAqB6kC,EAAe7kC,GACvCA,OACAjkC,EACNqrC,QAASy9B,EAAez9B,GAAWA,OAAUrrC,EAErD,CACA,OAAyB,IAAlBnB,EAAM+2C,QAAoBxtB,EAAU,CAAC,CAChD,CDTiCihD,CAAuBxqE,GAAO,IAAAmD,YAAW0mE,IACtE,OAAO,IAAAnkC,UAAQ,KAAM,CAAGN,UAASoH,aAAY,CAACi+B,EAA0BrlC,GAAUqlC,EAA0Bj+B,IAChH,CACA,SAASi+B,EAA0B/d,GAC/B,OAAOj3D,MAAMs5C,QAAQ2d,GAAQA,EAAKh3D,KAAK,KAAOg3D,CAClD,CEVA,MAAMge,EAAe,CACjBpzB,UAAW,CACP,UACA,WACA,aACA,WACA,OACA,cACA,aACA,aAEJ7K,KAAM,CAAC,QACPk+B,KAAM,CAAC,OAAQ,gBACfh8C,MAAO,CAAC,cACRi8C,MAAO,CAAC,aAAc,eAAgB,cACtCC,IAAK,CAAC,WAAY,QAAS,aAAc,eACzCC,IAAK,CAAC,QAAS,aAAc,oBAAqB,YAClDC,OAAQ,CAAC,cAAe,kBAAmB,mBAC3CC,OAAQ,CAAC,SAAU,aAEjBC,EAAqB,CAAC,EAC5B,IAAK,MAAMhtE,MAAOysE,EACdO,EAAmBhtE,IAAO,CACtBitE,UAAYlrE,GAAU0qE,EAAazsE,IAAKwX,MAAMxgB,KAAW+K,EAAM/K,8BClBvE,MAAMk2E,GAA2B,IAAAxsE,eAAc,CAAC,GCL1CysE,EAAwBnK,OAAOC,IAAI,yBCuBzC,SAAS,GAAsB,kBAAEmK,EAAiB,oBAAEC,EAAmB,UAAEC,EAAS,eAAEC,EAAc,UAAE3pE,IAChGwpE,GCtBJ,SAAsBI,GAClB,IAAK,MAAMxtE,KAAOwtE,EACdR,EAAmBhtE,GAAO,IACnBgtE,EAAmBhtE,MACnBwtE,EAASxtE,GAGxB,CDeyBytE,CAAaL,GA2ClC,MAAMM,GAAsB,IAAAl/C,aA1C5B,SAAyBzsB,EAAO4rE,GAK5B,IAAIC,EACJ,MAAMC,EAAiB,KAChB,IAAA3oE,YAAWsmE,MACXzpE,EACH+rE,SAAUC,EAAYhsE,KAEpB,SAAE2pE,GAAamC,EACfviD,EAAUghD,EAAuBvqE,GACjCisE,EAAcT,EAAexrE,EAAO2pE,GAC1C,IAAKA,GAAY,IAAW,CAOxBpgD,EAAQ2iD,cEvCpB,SAA0BrqE,EAAWoqE,EAAajsE,EAAOsrE,GACrD,MAAQY,cAAe57C,IAAW,IAAAntB,YAAW0mE,GACvCsC,GAAc,IAAAhpE,YAAW2mE,GACzBsC,GAAkB,IAAAjpE,YAAW,KAC7BkpE,GAAsB,IAAAlpE,YAAWsmE,GAAqBG,cACtD0C,GAAmB,IAAAjpE,UAIzBioE,EAAsBA,GAAuBa,EAAY9kD,UACpDilD,EAAiB/oE,SAAW+nE,IAC7BgB,EAAiB/oE,QAAU+nE,EAAoBzpE,EAAW,CACtDoqE,cACA37C,SACAtwB,QACAosE,kBACAG,wBAAuBH,IACW,IAA5BA,EAAgBhnC,QAEtBinC,yBAGR,MAAMH,EAAgBI,EAAiB/oE,SACvC,IAAAwhC,qBAAmB,KACfmnC,GAAiBA,EAAcM,OAAOxsE,EAAOosE,EAAgB,IAMjE,MAAMK,GAAa,IAAAppE,QAAOuiB,QAAQrmB,OAAOmtE,0BAkCzC,OAjCA,QAA0B,KACjBR,IAELA,EAAc1qE,SAWVirE,EAAWlpE,SAAW2oE,EAAcS,gBACpCT,EAAcS,eAAeC,iBACjC,KAEJ,IAAAnwD,YAAU,KACDyvD,IAELA,EAAcW,kBACTJ,EAAWlpE,SAAW2oE,EAAcS,gBACrCT,EAAcS,eAAeC,iBAOjCrtE,OAAOmtE,6BAA0BvrE,EACjCsrE,EAAWlpE,SAAU,EAAK,IAEvB2oE,CACX,CF1BoCY,CAAiBjrE,EAAWoqE,EAAaH,EAAgBR,GAKjF,MAAMyB,GAA2B,IAAA5pE,YAAWgoE,GACtC6B,GAAW,IAAA7pE,YAAW2mE,GAAaC,OACrCxgD,EAAQ2iD,gBACRL,EAAgBtiD,EAAQ2iD,cAAcR,aAEtCI,EAAgBkB,EAAU3B,EAAmB0B,GAErD,CAKA,OAAQ,gBAAoBlD,EAAcnoE,SAAU,CAAEC,MAAO4nB,GACzDsiD,GAAiBtiD,EAAQ2iD,cAAiB,gBAAoBL,EAAe,CAAEK,cAAe3iD,EAAQ2iD,iBAAkBJ,IAAqB,KAC7IP,EAAU1pE,EAAW7B,EG1DjC,SAAsBisE,EAAaC,EAAeN,GAC9C,OAAO,IAAArlC,cAAa55B,IAChBA,GAAYs/D,EAAYgB,OAAShB,EAAYgB,MAAMtgE,GAC/Cu/D,IACAv/D,EACMu/D,EAAce,MAAMtgE,GACpBu/D,EAAcgB,WAEpBtB,IAC2B,mBAAhBA,EACPA,EAAYj/D,GAEPq9D,EAAY4B,KACjBA,EAAYroE,QAAUoJ,GAE9B,GAOJ,CAACu/D,GACL,CHmCwCiB,CAAalB,EAAa1iD,EAAQ2iD,cAAeN,GAAcK,EAAatC,EAAUpgD,EAAQ2iD,eAClI,IAGA,OADAP,EAAoBP,GAAyBvpE,EACtC8pE,CACX,CACA,SAASK,GAAY,SAAED,IACnB,MAAMqB,GAAgB,IAAAjqE,YAAWgjC,EAAA,GAAoBz4B,GACrD,OAAO0/D,QAA8BjsE,IAAb4qE,EAClBqB,EAAgB,IAAMrB,EACtBA,CACV,CI5DA,SAASsB,EAAkBC,GACvB,SAASzwC,EAAOh7B,EAAW0rE,EAA8B,CAAC,GACtD,OAAO,EAAsBD,EAAazrE,EAAW0rE,GACzD,CACA,GAAqB,oBAAVrG,MACP,OAAOrqC,EAMX,MAAM2wC,EAAiB,IAAIpjE,IAC3B,OAAO,IAAI88D,MAAMrqC,EAAQ,CAMrBjiC,IAAK,CAAC6yE,EAASxvE,KAINuvE,EAAe7vE,IAAIM,IACpBuvE,EAAexzE,IAAIiE,EAAK4+B,EAAO5+B,IAE5BuvE,EAAe5yE,IAAIqD,KAGtC,CCxCA,MAAMyvE,EAAuB,CACzB,UACA,SACA,OACA,OACA,UACA,IACA,QACA,OACA,SACA,SACA,OACA,WACA,OACA,UACA,UACA,WACA,OACA,OACA,SACA,SACA,MACA,OACA,QACA,MACA,QC3BJ,SAASC,EAAe9rE,GACpB,MAKqB,iBAAdA,IAIHA,EAAUmU,SAAS,SAOvB03D,EAAqB/jE,QAAQ9H,IAAc,GAIvC,QAAQ3J,KAAK2J,GAIrB,CC3BA,MAAM+rE,EAAkB,CAAC,ECGzB,MAAMC,EAAqB,CACvB,uBACA,IACA,IACA,IACA,aACA,aACA,aACA,QACA,SACA,SACA,SACA,UACA,UACA,UACA,OACA,QACA,SAKEC,EAAiB,IAAI74D,IAAI44D,GCtB/B,SAASE,EAAoB9vE,GAAK,OAAE+sE,EAAM,SAAEe,IACxC,OAAQ+B,EAAenwE,IAAIM,IACvBA,EAAI8M,WAAW,YACbigE,QAAuB7pE,IAAb4qE,OACL6B,EAAgB3vE,IAAgB,YAARA,EACvC,CCRA,MAAM+vE,EAAiBrsE,GAAUikB,QAAQjkB,GAASA,EAAMssE,aCElDC,EAAiB,CACnBz2E,EAAG,aACH1C,EAAG,aACHa,EAAG,aACHgpE,qBAAsB,eAEpBuP,EAAgBN,EAAmBr4E,OCRzC,MAAM44E,EAAyBC,GAAWpwE,GAAuB,iBAARA,GAAoBA,EAAI8M,WAAWsjE,GACtFC,EAAoBF,EAAsB,MAC1CG,EAAqBH,EAAsB,UCC3CI,EAAiB,CAAC7sE,EAAO2H,IACpBA,GAAyB,iBAAV3H,EAChB2H,EAAK8yD,UAAUz6D,GACfA,ECNJ0xD,EAAQ,CAAC34D,EAAKkxB,EAAKj2B,IAAMG,KAAK4E,IAAI5E,KAAK81B,IAAIj2B,EAAG+E,GAAMkxB,GCEpD6iD,EAAS,CACXv2E,KAAOvC,GAAmB,iBAANA,EACpBkC,MAAOynC,WACP88B,UAAYzmE,GAAMA,GAEhB0gE,EAAQ,IACPoY,EACHrS,UAAYzmE,GAAM09D,EAAM,EAAG,EAAG19D,IAE5B80C,EAAQ,IACPgkC,EACHjxE,QAAS,GCPPkxE,EAAY/4E,GAAMG,KAAKgF,MAAU,IAAJnF,GAAc,IAC3Cg5E,EAAa,uBACbC,EAAa,8FACbC,EAAmB,+FACzB,SAAShb,EAASl+D,GACd,MAAoB,iBAANA,CAClB,CCVA,MAAMm5E,EAAkB1c,IAAS,CAC7Bl6D,KAAOvC,GAAMk+D,EAASl+D,IAAMA,EAAE8G,SAAS21D,IAAiC,IAAxBz8D,EAAER,MAAM,KAAKK,OAC7DqC,MAAOynC,WACP88B,UAAYzmE,GAAM,GAAGA,IAAIy8D,MAEvB2c,EAAUD,EAAe,OACzBE,EAAUF,EAAe,KACzB/U,EAAK+U,EAAe,MACpBG,EAAKH,EAAe,MACpBI,GAAKJ,EAAe,MACpBK,GAAqB,IACpBH,EACHn3E,MAAQlC,GAAMq5E,EAAQn3E,MAAMlC,GAAK,IACjCymE,UAAYzmE,GAAMq5E,EAAQ5S,UAAc,IAAJzmE,ICblC,GAAM,IACL84E,EACHrS,UAAWtmE,KAAKgF,OCAds0E,GAAmB,CAErBC,YAAatV,EACbuV,eAAgBvV,EAChBwV,iBAAkBxV,EAClByV,kBAAmBzV,EACnB0V,gBAAiB1V,EACjB2V,aAAc3V,EACdjb,OAAQib,EACR4V,oBAAqB5V,EACrB6V,qBAAsB7V,EACtB8V,wBAAyB9V,EACzB+V,uBAAwB/V,EAExBt4C,MAAOs4C,EACPgW,SAAUhW,EACVr4C,OAAQq4C,EACRiW,UAAWjW,EACXx1B,KAAMw1B,EACNv4C,IAAKu4C,EACLwB,MAAOxB,EACPuB,OAAQvB,EACRh7B,KAAMg7B,EAENp4C,QAASo4C,EACTkW,WAAYlW,EACZmW,aAAcnW,EACdoW,cAAepW,EACfqW,YAAarW,EACbsW,OAAQtW,EACR3uB,UAAW2uB,EACXuW,YAAavW,EACbwW,aAAcxW,EACdyW,WAAYzW,EAEZ0W,OAAQ1B,EACR2B,QAAS3B,EACT4B,QAAS5B,EACT6B,QAAS7B,EACTtkC,MAAK,EACLO,OAAQP,EACRwsB,OAAQxsB,EACRomC,OAAQpmC,EACRqmC,KAAM/B,EACNrR,MAAOqR,EACPpR,MAAOoR,EACP9uB,SAAU8Z,EACVgX,WAAYhX,EACZiX,WAAYjX,EACZkX,WAAYlX,EACZtiE,EAAGsiE,EACHhlE,EAAGglE,EACHnkE,EAAGmkE,EACH6D,YAAa7D,EACb6E,qBAAsB7E,EACtBvvB,QAAS6rB,EACTlY,QAASgxB,GACT7yC,QAAS6yC,GACT+B,QAASnX,EAEToX,OAAQ,GAERC,YAAa/a,EACbgb,cAAehb,EACfib,WAAY,IC9DhB,SAASC,GAAgBtuE,EAAOuuE,EAAcvpE,EAASwpE,GACnD,MAAM,MAAErzD,EAAK,KAAE0hB,EAAI,UAAEs8B,EAAS,gBAAEsV,GAAoBzuE,EAEpD,IAAI0uE,GAAe,EACfC,GAAqB,EAErBC,GAAkB,EAOtB,IAAK,MAAM5zE,KAAOuzE,EAAc,CAC5B,MAAM7vE,EAAQ6vE,EAAavzE,GAI3B,GAAIqwE,EAAkBrwE,GAAM,CACxB6hC,EAAK7hC,GAAO0D,EACZ,QACJ,CAEA,MAAMmwE,EAAY1C,GAAiBnxE,GAC7B8zE,EAAcvD,EAAe7sE,EAAOmwE,GAC1C,GAAIhE,EAAenwE,IAAIM,GAAM,CAKzB,GAHA0zE,GAAe,EACfvV,EAAUn+D,GAAO8zE,GAEZF,EACD,SAEAlwE,KAAWmwE,EAAUt0E,SAAW,KAChCq0E,GAAkB,EAC1B,MACS5zE,EAAI8M,WAAW,WAEpB6mE,GAAqB,EACrBF,EAAgBzzE,GAAO8zE,GAGvB3zD,EAAMngB,GAAO8zE,CAErB,CAiBA,GAhBKP,EAAapV,YACVuV,GAAgBF,EAChBrzD,EAAMg+C,UTtClB,SAAwBA,GAAW,2BAAE4V,GAA6B,EAAI,mBAAEC,GAAqB,GAASC,EAAoBT,GAEtH,IAAIU,EAAkB,GAKtB,IAAK,IAAI/9E,EAAI,EAAGA,EAAI+5E,EAAe/5E,IAAK,CACpC,MAAM6J,EAAM4vE,EAAmBz5E,QACR+M,IAAnBi7D,EAAUn+D,KAEVk0E,GAAmB,GADGjE,EAAejwE,IAAQA,KACNm+D,EAAUn+D,OAEzD,CAaA,OAZI+zE,IAA+B5V,EAAUxmE,IACzCu8E,GAAmB,iBAEvBA,EAAkBA,EAAgB3hE,OAG9BihE,EACAU,EAAkBV,EAAkBrV,EAAW8V,EAAqB,GAAKC,GAEpEF,GAAsBC,IAC3BC,EAAkB,QAEfA,CACX,CSW8BC,CAAenvE,EAAMm5D,UAAWn0D,EAAS4pE,EAAiBJ,GAEvErzD,EAAMg+C,YAKXh+C,EAAMg+C,UAAY,SAOtBwV,EAAoB,CACpB,MAAM,QAAEzzB,EAAU,MAAK,QAAE7hB,EAAU,MAAK,QAAE40C,EAAU,GAAOQ,EAC3DtzD,EAAMszD,gBAAkB,GAAGvzB,KAAW7hB,KAAW40C,GACrD,CACJ,CCvEA,MAAMmB,GAAwB,KAAM,CAChCj0D,MAAO,CAAC,EACRg+C,UAAW,CAAC,EACZsV,gBAAiB,CAAC,EAClB5xC,KAAM,CAAC,ICEX,SAASwyC,GAAkBriD,EAAQ6vC,EAAQ9/D,GACvC,IAAK,MAAM/B,KAAO6hE,EACTkO,EAAclO,EAAO7hE,KAAU8vE,EAAoB9vE,EAAK+B,KACzDiwB,EAAOhyB,GAAO6hE,EAAO7hE,GAGjC,CAQA,SAASs0E,GAASvyE,EAAOisE,EAAatC,GAClC,MACMvrD,EAAQ,CAAC,EAMf,OAFAk0D,GAAkBl0D,EALApe,EAAMoe,OAAS,CAAC,EAKEpe,GACpClC,OAAOmY,OAAOmI,EAdlB,UAAgC,kBAAEqzD,GAAqBxF,EAAatC,GAChE,OAAO,IAAAjkC,UAAQ,KACX,MAAMziC,EAAQovE,KAEd,OADAd,GAAgBtuE,EAAOgpE,EAAa,CAAE+F,4BAA6BrI,GAAY8H,GACxE3zE,OAAOmY,OAAO,CAAC,EAAGhT,EAAM68B,KAAM78B,EAAMmb,MAAM,GAClD,CAAC6tD,GACR,CAQyBuG,CAAuBxyE,EAAOisE,EAAatC,IACzD3pE,EAAMyyE,gBAAkBzyE,EAAMyyE,gBAAgBr0D,GAASA,CAClE,CACA,SAASs0D,GAAa1yE,EAAOisE,EAAatC,GAEtC,MAAMgJ,EAAY,CAAC,EACbv0D,EAAQm0D,GAASvyE,EAAOisE,EAAatC,GAoB3C,OAnBI3pE,EAAM2qE,OAA+B,IAAvB3qE,EAAM4yE,eAEpBD,EAAUE,WAAY,EAEtBz0D,EAAM00D,WACF10D,EAAM20D,iBACF30D,EAAM40D,mBACF,OAEZ50D,EAAM60D,aACa,IAAfjzE,EAAM2qE,KACA,OACA,QAAsB,MAAf3qE,EAAM2qE,KAAe,IAAM,WAEzBxpE,IAAnBnB,EAAM6uB,WACL7uB,EAAMkzE,OAASlzE,EAAMmzE,YAAcnzE,EAAMosC,YAC1CumC,EAAU9jD,SAAW,GAEzB8jD,EAAUv0D,MAAQA,EACXu0D,CACX,CChDA,MAAMS,GAAmB,IAAIn+D,IAAI,CAC7B,UACA,OACA,WACA,UACA,QACA,SACA,WACA,aACA,oBACA,kBACA,SACA,UACA,yBACA,4BACA,kBACA,wBACA,mBACA,sBACA,WACA,cACA,SACA,YACA,2BACA,kBACA,sBACA,SACA,SACA,eACA,aACA,kBACA,kBACA,eACA,aAUJ,SAASo+D,GAAkBp1E,GACvB,OAAQA,EAAI8M,WAAW,UAClB9M,EAAI8M,WAAW,SAAmB,cAAR9M,GAC3BA,EAAI8M,WAAW,WACf9M,EAAI8M,WAAW,UACf9M,EAAI8M,WAAW,UACfqoE,GAAiBz1E,IAAIM,EAC7B,CCtDA,IAAIq1E,GAAiBr1E,IAASo1E,GAAkBp1E,GAoBhD,KAnBiCs1E,GAyBLvrE,QAAQ,0BAA0BxK,WArB1D81E,GAAiBr1E,GAAQA,EAAI8M,WAAW,OAASsoE,GAAkBp1E,GAAOs1E,GAAYt1E,GAsB1F,CACA,MAAOwmE,IAEP,CA7BA,IAAiC8O,GCDjC,SAASC,GAAWjpD,EAAQ8U,EAAQkF,GAChC,MAAyB,iBAAXha,EACRA,EACAwvC,EAAGqC,UAAU/8B,EAASkF,EAAOha,EACvC,CCJA,MAAMkpD,GAAW,CACbp0C,OAAQ,oBACRq0C,MAAO,oBAELC,GAAY,CACdt0C,OAAQ,mBACRq0C,MAAO,mBCDX,SAASE,GAAc3wE,GAAO,MAAE4wE,EAAK,MAAEC,EAAK,UAAEC,EAAS,QAAE51B,EAAO,QAAE7hB,EAAO,WAAE03C,EAAU,YAAEC,EAAc,EAAC,WAAEC,EAAa,KAElHC,GAAUlsE,EAASmsE,EAAU3C,GAM5B,GALAF,GAAgBtuE,EAAOkxE,EAAQlsE,EAASwpE,GAKpC2C,EAIA,YAHInxE,EAAMmb,MAAMglB,UACZngC,EAAMoxE,MAAMjxC,QAAUngC,EAAMmb,MAAMglB,UAI1CngC,EAAMoxE,MAAQpxE,EAAMmb,MACpBnb,EAAMmb,MAAQ,CAAC,EACf,MAAM,MAAEi2D,EAAK,MAAEj2D,EAAK,WAAEk2D,GAAerxE,EAKjCoxE,EAAMjY,YACFkY,IACAl2D,EAAMg+C,UAAYiY,EAAMjY,kBACrBiY,EAAMjY,WAGbkY,SACanzE,IAAZg9C,QAAqCh9C,IAAZm7B,GAAyBle,EAAMg+C,aACzDh+C,EAAMszD,gBFzBd,SAAgC4C,EAAYn2B,EAAS7hB,GAGjD,MAAO,GAFWk3C,GAAWr1B,EAASm2B,EAAW78E,EAAG68E,EAAW7yD,UAC7C+xD,GAAWl3C,EAASg4C,EAAWv/E,EAAGu/E,EAAW5yD,SAEnE,CEqBgC6yD,CAAuBD,OAAwBnzE,IAAZg9C,EAAwBA,EAAU,QAAiBh9C,IAAZm7B,EAAwBA,EAAU,UAG1Hn7B,IAAV0yE,IACAQ,EAAM58E,EAAIo8E,QACA1yE,IAAV2yE,IACAO,EAAMt/E,EAAI++E,QACI3yE,IAAd4yE,IACAM,EAAM5pC,MAAQspC,QAEC5yE,IAAf6yE,GD7BR,SAAsBK,EAAO7+E,EAAQg/E,EAAU,EAAGn1C,EAAS,EAAGo1C,GAAc,GAExEJ,EAAML,WAAa,EAGnB,MAAM1lE,EAAOmmE,EAAchB,GAAWE,GAEtCU,EAAM/lE,EAAK+wB,QAAU06B,EAAGqC,WAAW/8B,GAEnC,MAAM20C,EAAaja,EAAGqC,UAAU5mE,GAC1By+E,EAAcla,EAAGqC,UAAUoY,GACjCH,EAAM/lE,EAAKolE,OAAS,GAAGM,KAAcC,GACzC,CCkBQS,CAAaL,EAAOL,EAAYC,EAAaC,GAAY,EAEjE,CC/CA,MAAMS,GAAuB,KAAM,IAC5BtC,KACHgC,MAAO,CAAC,ICJND,GAAYQ,GAAuB,iBAARA,GAA0C,QAAtBA,EAAIh+E,cCMzD,SAASi+E,GAAY70E,EAAOisE,EAAa6I,EAAWjzE,GAChD,MAAMkzE,GAAc,IAAArvC,UAAQ,KACxB,MAAMziC,EAAQ0xE,KAEd,OADAf,GAAc3wE,EAAOgpE,EAAa,CAAE+F,4BAA4B,GAASoC,GAASvyE,GAAY7B,EAAMyxE,mBAC7F,IACAxuE,EAAMoxE,MACTj2D,MAAO,IAAKnb,EAAMmb,OACrB,GACF,CAAC6tD,IACJ,GAAIjsE,EAAMoe,MAAO,CACb,MAAM42D,EAAY,CAAC,EACnB1C,GAAkB0C,EAAWh1E,EAAMoe,MAAOpe,GAC1C+0E,EAAY32D,MAAQ,IAAK42D,KAAcD,EAAY32D,MACvD,CACA,OAAO22D,CACX,CCdA,SAASE,GAAgBC,GAAqB,GAwB1C,MAvBkB,CAACrzE,EAAW7B,EAAOoD,GAAOouE,gBAAgB7H,KACxD,MAGMoL,GAHiBpH,EAAe9rE,GAChCgzE,GACAnC,IAC6B1yE,EAAOwxE,EAAc7H,EAAU9nE,GAC5DszE,EPoBd,SAAqBn1E,EAAOo1E,EAAOF,GAC/B,MAAMC,EAAgB,CAAC,EACvB,IAAK,MAAMl3E,KAAO+B,EAQF,WAAR/B,GAA4C,iBAAjB+B,EAAMqX,SAEjCi8D,GAAcr1E,KACU,IAAvBi3E,GAA+B7B,GAAkBp1E,KAChDm3E,IAAU/B,GAAkBp1E,IAE7B+B,EAAiB,WAAK/B,EAAI8M,WAAW,aACtCoqE,EAAcl3E,GAAO+B,EAAM/B,IAGnC,OAAOk3E,CACX,COzC8BE,CAAYr1E,EAA4B,iBAAd6B,EAAwBqzE,GAClEI,EAAe,IACdH,KACAJ,EACH3xE,QAOE,SAAExB,GAAa5B,EACfu1E,GAAmB,IAAA7vC,UAAQ,IAAOsoC,EAAcpsE,GAAYA,EAAShH,MAAQgH,GAAW,CAACA,IAC/F,OAAO,IAAAH,eAAcI,EAAW,IACzByzE,EACH1zE,SAAU2zE,GACZ,CAGV,CC7BA,MAAMC,GAAer5E,GAAQA,EAAItF,QAAQ,kBAAmB,SAASD,cCHrE,SAAS6+E,GAAWzzE,GAAS,MAAEoc,EAAK,KAAE0hB,GAAQ41C,EAAWC,GACrD73E,OAAOmY,OAAOjU,EAAQoc,MAAOA,EAAOu3D,GAAcA,EAAWC,oBAAoBF,IAEjF,IAAK,MAAMz3E,KAAO6hC,EACd99B,EAAQoc,MAAM04C,YAAY74D,EAAK6hC,EAAK7hC,GAE5C,CCHA,MAAM43E,GAAsB,IAAI5gE,IAAI,CAChC,gBACA,kBACA,eACA,mBACA,aACA,WACA,oBACA,eACA,cACA,aACA,UACA,UACA,eACA,mBACA,mBACA,eACA,cACA,UACA,oBACA,aACA,cACA,aACA,iBCtBJ,SAAS6gE,GAAU9zE,EAAS+zE,EAAaC,EAAYL,GACjDF,GAAWzzE,EAAS+zE,OAAa50E,EAAWw0E,GAC5C,IAAK,MAAM13E,KAAO83E,EAAY1B,MAC1BryE,EAAQ8P,aAAc+jE,GAAoBl4E,IAAIM,GAA0BA,EAAnBu3E,GAAYv3E,GAAY83E,EAAY1B,MAAMp2E,GAEvG,CCNA,SAASg4E,GAA4Bj2E,EAAOF,GACxC,MAAM,MAAEse,GAAUpe,EACZk2E,EAAY,CAAC,EACnB,IAAK,MAAMj4E,KAAOmgB,GACV4vD,EAAc5vD,EAAMngB,KACnB6B,EAAUse,OAAS4vD,EAAcluE,EAAUse,MAAMngB,KAClD8vE,EAAoB9vE,EAAK+B,MACzBk2E,EAAUj4E,GAAOmgB,EAAMngB,IAG/B,OAAOi4E,CACX,CCVA,SAAS,GAA4Bl2E,EAAOF,GACxC,MAAMo2E,EAAYD,GAA8Bj2E,EAAOF,GACvD,IAAK,MAAM7B,KAAO+B,EACd,GAAIguE,EAAchuE,EAAM/B,KAAS+vE,EAAcluE,EAAU7B,IAAO,CAI5Di4E,GAHuD,IAArCrI,EAAmBlkE,QAAQ1L,GACvC,OAASA,EAAIiM,OAAO,GAAGivB,cAAgBl7B,EAAI7F,UAAU,GACrD6F,GACiB+B,EAAM/B,EACjC,CAEJ,OAAOi4E,CACX,CCfA,SAASC,GAAwBn2E,EAAOo2E,EAAYv5C,EAAQw5C,EAAgB,CAAC,EAAGC,EAAkB,CAAC,GAsB/F,MAlB0B,mBAAfF,IACPA,EAAaA,OAAsBj1E,IAAX07B,EAAuBA,EAAS78B,EAAM68B,OAAQw5C,EAAeC,IAM/D,iBAAfF,IACPA,EAAap2E,EAAMusC,UAAYvsC,EAAMusC,SAAS6pC,IAOxB,mBAAfA,IACPA,EAAaA,OAAsBj1E,IAAX07B,EAAuBA,EAAS78B,EAAM68B,OAAQw5C,EAAeC,IAElFF,CACX,gBCvBA,MAAMG,GAAqB5gF,GAChBF,MAAMs5C,QAAQp5C,GCCnB6gF,GAAiB7gF,GACZiwB,QAAQjwB,GAAkB,iBAANA,GAAkBA,EAAE8gF,KAAO9gF,EAAE+gF,SAEtDC,GAAgChhF,GAE3B4gF,GAAkB5gF,GAAKA,EAAEA,EAAEH,OAAS,IAAM,EAAIG,ECCzD,SAASihF,GAAmBj1E,GACxB,MAAMk1E,EAAiB7I,EAAcrsE,GAASA,EAAM/G,MAAQ+G,EAC5D,OAAO60E,GAAcK,GACfA,EAAeH,UACfG,CACV,CCMA,MAAMC,GAAsBp7C,GAAW,CAAC17B,EAAO2pE,KAC3C,MAAMpgD,GAAU,IAAApmB,YAAW0mE,GACrBuC,GAAkB,IAAAjpE,YAAW,KAC7B4zE,EAAO,IAbjB,UAAmB,4BAAEd,EAA2B,kBAAEe,EAAiB,QAAEC,GAAYj3E,EAAOupB,EAAS6iD,GAC7F,MAAMnpE,EAAQ,CACVuuE,aAAc0F,GAAiBl3E,EAAOupB,EAAS6iD,EAAiB6J,GAChEF,YAAaiB,KAKjB,OAHIC,IACAh0E,EAAMgqE,MAAStgE,GAAasqE,EAAQj3E,EAAO2M,EAAU1J,IAElDA,CACX,CAIuBk0E,CAAUz7C,EAAQ17B,EAAOupB,EAAS6iD,GACrD,OAAOzC,EAAWoN,KAAS,QAAYA,EAAK,EAEhD,SAASG,GAAiBl3E,EAAOupB,EAAS6iD,EAAiBgL,GACvD,MAAM//D,EAAS,CAAC,EACVggE,EAAeD,EAAmBp3E,EAAO,CAAC,GAChD,IAAK,MAAM/B,KAAOo5E,EACdhgE,EAAOpZ,GAAO24E,GAAmBS,EAAap5E,IAElD,IAAI,QAAEmnC,EAAO,QAAEoH,GAAYxsC,EAC3B,MAAMs3E,EAA0BjN,EAAsBrqE,GAChDu3E,EAAkBjN,EAActqE,GAClCupB,GACAguD,IACCD,IACiB,IAAlBt3E,EAAM+2C,eACU51C,IAAZikC,IACAA,EAAU7b,EAAQ6b,cACNjkC,IAAZqrC,IACAA,EAAUjjB,EAAQijB,UAE1B,IAAIgrC,IAA4BpL,IACE,IAA5BA,EAAgBhnC,QAEtBoyC,EAA4BA,IAAyC,IAAZpyC,EACzD,MAAMqyC,EAAeD,EAA4BhrC,EAAUpH,EAC3D,GAAIqyC,GACwB,kBAAjBA,IACNvN,EAAoBuN,GAAe,EACvBhiF,MAAMs5C,QAAQ0oC,GAAgBA,EAAe,CAACA,IACtD77E,SAASw6E,IACV,MAAMsB,EAAWvB,GAAwBn2E,EAAOo2E,GAChD,IAAKsB,EACD,OACJ,MAAM,cAAEC,EAAa,WAAE5rC,KAAe9b,GAAWynD,EACjD,IAAK,MAAMz5E,KAAOgyB,EAAQ,CACtB,IAAI2nD,EAAc3nD,EAAOhyB,GACzB,GAAIxI,MAAMs5C,QAAQ6oC,GAAc,CAQ5BA,EAAcA,EAHAJ,EACRI,EAAYpiF,OAAS,EACrB,EAEV,CACoB,OAAhBoiF,IACAvgE,EAAOpZ,GAAO25E,EAEtB,CACA,IAAK,MAAM35E,KAAO05E,EACdtgE,EAAOpZ,GAAO05E,EAAc15E,EAAI,GAE5C,CACA,OAAOoZ,CACX,gBCtEA,MAAMwgE,GAAkB,CACpBrM,eAAgBsL,GAAmB,CAC/Bb,4BAA6B,GAC7Be,kBAAmBrC,GACnBsC,QAAS,CAACj3E,EAAO2M,GAAYopE,cAAavE,mBACtC,MAAMvwE,MAAK,KACP,IACI80E,EAAYzB,WAEJ,mBADG3nE,EAASisD,QAEVjsD,EAASisD,UACTjsD,EAAS8xB,uBACvB,CACA,MAAOxqC,GAEH8hF,EAAYzB,WAAa,CACrB78E,EAAG,EACH1C,EAAG,EACH0sB,MAAO,EACPC,OAAQ,EAEhB,KAEJ,MAAMlgB,QAAO,KACToyE,GAAcmC,EAAavE,EAAc,CAAEQ,4BAA4B,GAASoC,GAASznE,EAAS0tD,SAAUr6D,EAAMyxE,mBAClHqE,GAAUnpE,EAAUopE,EAAY,GAClC,KC9BR+B,GAAmB,CACrBtM,eAAgBsL,GAAmB,CAC/Bb,4BAA2B,GAC3Be,kBAAmB3E,MCP3B,SAAS0F,GAAY9nD,EAAQuC,EAAWjpB,EAAStB,EAAU,CAAE+vE,SAAS,IAElE,OADA/nD,EAAOlvB,iBAAiByxB,EAAWjpB,EAAStB,GACrC,IAAMgoB,EAAO5uB,oBAAoBmxB,EAAWjpB,EACvD,CCHA,MAAM0uE,GAAoB91D,GACI,UAAtBA,EAAM+1D,YACyB,iBAAjB/1D,EAAMgL,QAAuBhL,EAAMgL,QAAU,GAWhC,IAApBhL,EAAMg2D,UCXrB,SAASC,GAAiBj2D,EAAOk2D,EAAY,QACzC,MAAO,CACHt8C,MAAO,CACHtkC,EAAG0qB,EAAMk2D,EAAY,KACrBtjF,EAAGotB,EAAMk2D,EAAY,MAGjC,CACA,MAAMC,GAAkB/uE,GACZ4Y,GAAU81D,GAAiB91D,IAAU5Y,EAAQ4Y,EAAOi2D,GAAiBj2D,ICRjF,SAASo2D,GAAgBtoD,EAAQuC,EAAWjpB,EAAStB,GACjD,OAAO8vE,GAAY9nD,EAAQuC,EAAW8lD,GAAe/uE,GAAUtB,EACnE,CCEA,MAAMuwE,GAAmB,CAACjkF,EAAG6C,IAAOzB,GAAMyB,EAAE7C,EAAEoB,IACxC29D,GAAO,IAAImlB,IAAiBA,EAAa5vE,OAAO2vE,ICRtD,SAASE,GAAWzjF,GAChB,IAAI0jF,EAAO,KACX,MAAO,KACH,MAAMC,EAAW,KACbD,EAAO,IAAI,EAEf,OAAa,OAATA,IACAA,EAAO1jF,EACA2jF,EAEC,CAEpB,CACA,MAAMC,GAAuBH,GAAW,kBAClCI,GAAqBJ,GAAW,gBACtC,SAASK,GAAcpO,GACnB,IAAIgO,GAAO,EACX,GAAa,MAAThO,EACAgO,EAAOG,UAEN,GAAa,MAATnO,EACLgO,EAAOE,SAEN,CACD,MAAMG,EAAiBH,KACjBI,EAAeH,KACjBE,GAAkBC,EAClBN,EAAO,KACHK,IACAC,GAAc,GAKdD,GACAA,IACAC,GACAA,IAEZ,CACA,OAAON,CACX,CACA,SAASO,KAGL,MAAMC,EAAkBJ,IAAc,GACtC,OAAKI,IAELA,KACO,EACX,CClDA,MAAMC,GACF,WAAAjsE,CAAY/M,GACRxI,KAAKssC,WAAY,EACjBtsC,KAAKwI,KAAOA,CAChB,CACA,MAAAosE,GAAW,ECCf,SAAS6M,GAAcj5E,EAAM4nD,GACzB,MAAMx1B,EAAY,WAAaw1B,EAAW,QAAU,SAC9CsxB,EAAe,WAAatxB,EAAW,QAAU,OAYvD,OAAOuwB,GAAgBn4E,EAAKmD,QAASivB,GAXjB,CAACrQ,EAAOyuB,KACxB,GAAmB,UAAfzuB,EAAM7Y,MAAoB4vE,KAC1B,OACJ,MAAMl5E,EAAQI,EAAK0sB,WACf1sB,EAAKusE,gBAAkB3sE,EAAMmsC,YAC7B/rC,EAAKusE,eAAe4M,UAAU,aAAcvxB,GAE5ChoD,EAAMs5E,IACN,MAAM9M,QAAO,IAAMxsE,EAAMs5E,GAAcn3D,EAAOyuB,IAClD,GAEyD,CACzDonC,SAAU53E,EAAK0sB,WAAWwsD,IAElC,CChBA,MAAME,GAAgB,CAAClpD,EAAQyV,MACtBA,IAGIzV,IAAWyV,GAITyzC,GAAclpD,EAAQyV,EAAM0zC,+BCL3C,SAASC,GAA0BzkF,EAAMsU,GACrC,IAAKA,EACD,OACJ,MAAMowE,EAAwB,IAAIC,aAAa,UAAY3kF,GAC3DsU,EAAQowE,EAAuBvB,GAAiBuB,GACpD,CCVA,MAAME,GAAoB,IAAIr7E,QAMxBs7E,GAAY,IAAIt7E,QAChBu7E,GAAwBC,IAC1B,MAAMx9D,EAAWq9D,GAAkBj/E,IAAIo/E,EAAM/pD,QAC7CzT,GAAYA,EAASw9D,EAAM,EAEzBC,GAA4B/pE,IAC9BA,EAAQtU,QAAQm+E,GAAqB,EAqBzC,SAASG,GAAoBl4E,EAASiG,EAASuU,GAC3C,MAAM29D,EApBV,UAAkC,KAAEryD,KAAS7f,IACzC,MAAMmyE,EAAatyD,GAAQznB,SAItBy5E,GAAUn8E,IAAIy8E,IACfN,GAAU9/E,IAAIogF,EAAY,CAAC,GAE/B,MAAMC,EAAgBP,GAAUl/E,IAAIw/E,GAC9Bn8E,EAAMuE,KAAKE,UAAUuF,GAQ3B,OAHKoyE,EAAcp8E,KACfo8E,EAAcp8E,GAAO,IAAIq8E,qBAAqBL,GAA0B,CAAEnyD,UAAS7f,KAEhFoyE,EAAcp8E,EACzB,CAEsCs8E,CAAyBtyE,GAG3D,OAFA4xE,GAAkB7/E,IAAIgI,EAASwa,GAC/B29D,EAA0BK,QAAQx4E,GAC3B,KACH63E,GAAkBxkE,OAAOrT,GACzBm4E,EAA0BM,UAAUz4E,EAAQ,CAEpD,CC3CA,MAAM04E,GAAiB,CACnBjlE,KAAM,EACNtM,IAAK,GCAT,MAAMwxE,GAAoB,CACtB5P,OAAQ,CACJqO,QDAR,cAA4BA,GACxB,WAAAjsE,GACIytE,SAASzjF,WACTS,KAAKijF,gBAAiB,EACtBjjF,KAAKkjF,UAAW,CACpB,CACA,aAAAC,GACInjF,KAAKs1E,UACL,MAAM,SAAE8N,EAAW,CAAC,GAAMpjF,KAAKwI,KAAK0sB,YAC9B,KAAEhF,EAAMuoD,OAAQ4K,EAAU,OAAE18B,EAAS,OAAM,KAAE28B,GAASF,EACtD/yE,EAAU,CACZ6f,KAAMA,EAAOA,EAAKvkB,aAAUpC,EAC5B85E,aACAxgD,UAA6B,iBAAX8jB,EAAsBA,EAASm8B,GAAen8B,IA+BpE,OAAO27B,GAAoBtiF,KAAKwI,KAAKmD,QAAS0E,GA7BhB+xE,IAC1B,MAAM,eAAEmB,GAAmBnB,EAI3B,GAAIpiF,KAAKkjF,WAAaK,EAClB,OAMJ,GALAvjF,KAAKkjF,SAAWK,EAKZD,IAASC,GAAkBvjF,KAAKijF,eAChC,OAEKM,IACLvjF,KAAKijF,gBAAiB,GAEtBjjF,KAAKwI,KAAKusE,gBACV/0E,KAAKwI,KAAKusE,eAAe4M,UAAU,cAAe4B,GAMtD,MAAM,gBAAEC,EAAe,gBAAEC,GAAoBzjF,KAAKwI,KAAK0sB,WACjDtQ,EAAW2+D,EAAiBC,EAAkBC,EACpD7+D,GAAYA,EAASw9D,EAAM,GAGnC,CACA,KAAA/M,GACIr1E,KAAKmjF,eACT,CACA,MAAAvO,GACI,GAAoC,oBAAzB8N,qBACP,OACJ,MAAM,MAAEt6E,EAAK,UAAEF,GAAclI,KAAKwI,KACR,CAAC,SAAU,SAAU,QAAQqV,KAO/D,UAAkC,SAAEulE,EAAW,CAAC,IAAOA,SAAUM,EAAe,CAAC,GAAM,CAAC,GACpF,OAAQrmF,GAAS+lF,EAAS/lF,KAAUqmF,EAAarmF,EACrD,CAToEsmF,CAAyBv7E,EAAOF,KAExFlI,KAAKmjF,eAEb,CACA,OAAA7N,GAAY,ICxDZrC,IAAK,CACDuO,QHMR,cAA2BA,GACvB,WAAAjsE,GACIytE,SAASzjF,WACTS,KAAK4jF,qBAAuBhS,GAAA,EAC5B5xE,KAAK6jF,mBAAqBjS,GAAA,EAC1B5xE,KAAK8jF,0BAA4BlS,GAAA,EACjC5xE,KAAK+jF,kBAAoB,CAACC,EAAYC,KAElC,GADAjkF,KAAK6jF,qBACD7jF,KAAKkkF,WACL,OACJ,MAAM97E,EAAQpI,KAAKwI,KAAK0sB,WAelBivD,EAA0BxD,GAAgBh5E,OAAQ,aAdhC,CAACy8E,EAAUC,KAC/B,IAAKrkF,KAAKskF,gBACN,OACJ,MAAM,MAAEhJ,EAAK,YAAEiJ,GAAgBvkF,KAAKwI,KAAK0sB,WACzC,MAAM0/C,QAAO,KAKRgN,GAAc5hF,KAAKwI,KAAKmD,QAASy4E,EAAS/rD,QAErCijD,GAASA,EAAM8I,EAAUC,GADzBE,GAAeA,EAAYH,EAAUC,EACJ,GACzC,GAEgF,CAAEjE,UAAWh4E,EAAMkzE,OAASlzE,EAAmB,eAC/Ho8E,EAA8B7D,GAAgBh5E,OAAQ,iBAAiB,CAAC88E,EAAaC,IAAe1kF,KAAK2kF,YAAYF,EAAaC,IAAa,CAAEtE,UAAWh4E,EAAMm8E,aAAen8E,EAAuB,mBAC9MpI,KAAK6jF,mBAAqBnoB,GAAKyoB,EAAyBK,GACxDxkF,KAAK4kF,WAAWZ,EAAYC,EAAU,EAE1CjkF,KAAK6kF,qBAAuB,KACxB,MAmBMC,EAAwB3E,GAAYngF,KAAKwI,KAAKmD,QAAS,WAnBtCo5E,IACnB,GAAyB,UAArBA,EAAa1+E,KAAmBrG,KAAKkkF,WACrC,OAWJlkF,KAAK6jF,qBACL7jF,KAAK6jF,mBAAqB1D,GAAYngF,KAAKwI,KAAKmD,QAAS,SAXpCq5E,IACM,UAAnBA,EAAW3+E,KAAoBrG,KAAKskF,iBAExCxC,GAA0B,MAAM,CAACv3D,EAAOyuB,KACpC,MAAM,MAAEsiC,GAAUt7E,KAAKwI,KAAK0sB,WACxBomD,GACA,MAAM1G,QAAO,IAAM0G,EAAM/wD,EAAOyuB,IACpC,GACF,IAIN8oC,GAA0B,QAAQ,CAACv3D,EAAOyuB,KACtCh5C,KAAK4kF,WAAWr6D,EAAOyuB,EAAK,GAC9B,IAQAisC,EAAqB9E,GAAYngF,KAAKwI,KAAKmD,QAAS,QALvC,KACV3L,KAAKkkF,YAEVpC,GAA0B,UAAU,CAAC2C,EAAaC,IAAe1kF,KAAK2kF,YAAYF,EAAaC,IAAY,IAG/G1kF,KAAK8jF,0BAA4BpoB,GAAKopB,EAAuBG,EAAmB,CAExF,CACA,UAAAL,CAAWr6D,EAAOyuB,GACdh5C,KAAKkkF,YAAa,EAClB,MAAM,WAAE3I,EAAU,SAAE/mC,GAAax0C,KAAKwI,KAAK0sB,WAIvCsf,GAAYx0C,KAAKwI,KAAKusE,gBACtB/0E,KAAKwI,KAAKusE,eAAe4M,UAAU,YAAY,GAE/CpG,GACA,MAAM3G,QAAO,IAAM2G,EAAWhxD,EAAOyuB,IAE7C,CACA,aAAAsrC,GACItkF,KAAK6jF,qBACL7jF,KAAKkkF,YAAa,EAKlB,OAJclkF,KAAKwI,KAAK0sB,WACdsf,UAAYx0C,KAAKwI,KAAKusE,gBAC5B/0E,KAAKwI,KAAKusE,eAAe4M,UAAU,YAAY,IAE3CL,IACZ,CACA,WAAAqD,CAAYp6D,EAAOyuB,GACf,IAAKh5C,KAAKskF,gBACN,OACJ,MAAM,YAAEC,GAAgBvkF,KAAKwI,KAAK0sB,WAC9BqvD,GACA,MAAM3P,QAAO,IAAM2P,EAAYh6D,EAAOyuB,IAE9C,CACA,KAAAq8B,GACI,MAAMjtE,EAAQpI,KAAKwI,KAAK0sB,WAClBgwD,EAAwBvE,GAAgB3gF,KAAKwI,KAAKmD,QAAS,cAAe3L,KAAK+jF,kBAAmB,CAAE3D,UAAWh4E,EAAMmzE,YAAcnzE,EAAsB,kBACzJ+8E,EAAsBhF,GAAYngF,KAAKwI,KAAKmD,QAAS,QAAS3L,KAAK6kF,sBACzE7kF,KAAK4jF,qBAAuBloB,GAAKwpB,EAAuBC,EAC5D,CACA,OAAA7P,GACIt1E,KAAK4jF,uBACL5jF,KAAK6jF,qBACL7jF,KAAK8jF,2BACT,IGxGA/sD,MAAO,CACHyqD,QCTR,cAA2BA,GACvB,WAAAjsE,GACIytE,SAASzjF,WACTS,KAAKowD,UAAW,CACpB,CACA,OAAAg1B,GACI,IAAIC,GAAiB,EAOrB,IACIA,EAAiBrlF,KAAKwI,KAAKmD,QAAQ25E,QAAQ,iBAC/C,CACA,MAAOjpF,GACHgpF,GAAiB,CACrB,CACKA,GAAmBrlF,KAAKwI,KAAKusE,iBAElC/0E,KAAKwI,KAAKusE,eAAe4M,UAAU,cAAc,GACjD3hF,KAAKowD,UAAW,EACpB,CACA,MAAAm1B,GACSvlF,KAAKowD,UAAapwD,KAAKwI,KAAKusE,iBAEjC/0E,KAAKwI,KAAKusE,eAAe4M,UAAU,cAAc,GACjD3hF,KAAKowD,UAAW,EACpB,CACA,KAAAilB,GACIr1E,KAAKs1E,QAAU5Z,GAAKykB,GAAYngF,KAAKwI,KAAKmD,QAAS,SAAS,IAAM3L,KAAKolF,YAAYjF,GAAYngF,KAAKwI,KAAKmD,QAAS,QAAQ,IAAM3L,KAAKulF,WACzI,CACA,OAAAjQ,GAAY,IDtBZtC,MAAO,CACHwO,QLQR,cAA2BA,GACvB,KAAAnM,GACIr1E,KAAKs1E,QAAU5Z,GAAK+lB,GAAczhF,KAAKwI,MAAM,GAAOi5E,GAAczhF,KAAKwI,MAAM,GACjF,CACA,OAAA8sE,GAAY,KO5BhB,SAAShoD,GAAenc,EAAM2vC,GAC1B,IAAKjjD,MAAMs5C,QAAQ2J,GACf,OAAO,EACX,MAAM0kC,EAAa1kC,EAAKljD,OACxB,GAAI4nF,IAAer0E,EAAKvT,OACpB,OAAO,EACX,IAAK,IAAIpB,EAAI,EAAGA,EAAIgpF,EAAYhpF,IAC5B,GAAIskD,EAAKtkD,KAAO2U,EAAK3U,GACjB,OAAO,EAEf,OAAO,CACX,CCOA,SAASipF,GAAenR,EAAekK,EAAYv5C,GAC/C,MAAM78B,EAAQksE,EAAcp/C,WAC5B,OAAOqpD,GAAwBn2E,EAAOo2E,OAAuBj1E,IAAX07B,EAAuBA,EAAS78B,EAAM68B,OAf5F,SAAoBqvC,GAChB,MAAM3oE,EAAU,CAAC,EAEjB,OADA2oE,EAAc70D,OAAOzb,SAAQ,CAAC+F,EAAO1D,IAASsF,EAAQtF,GAAO0D,EAAM/G,QAC5D2I,CACX,CAWoG+5E,CAAWpR,GAP/G,SAAqBA,GACjB,MAAMqR,EAAW,CAAC,EAElB,OADArR,EAAc70D,OAAOzb,SAAQ,CAAC+F,EAAO1D,IAASs/E,EAASt/E,GAAO0D,EAAMssE,gBAC7DsP,CACX,CAG+HtP,CAAY/B,GAC3I,CCnBA,MACMsR,GAA+B,QAAUhI,GADjB,iCCI9B,MAAMiI,GAAyBC,GAAsB,IAAVA,EACrCC,GAAyBC,GAAiBA,EAAe,ICPzDC,IACO,ECDPC,GAAsBC,GAAWtoF,MAAMs5C,QAAQgvC,IAAgC,iBAAdA,EAAO,GCE9E,SAASC,GAAuBD,GAC5B,OAAOn4D,SAASm4D,GACO,iBAAXA,GAAuBE,GAAqBF,IACpDD,GAAmBC,IAClBtoF,MAAMs5C,QAAQgvC,IAAWA,EAAO3xD,MAAM4xD,IAC/C,CACA,MAAME,GAAsB,EAAE3pF,EAAG6C,EAAG3C,EAAGG,KAAO,gBAAgBL,MAAM6C,MAAM3C,MAAMG,KAC1EqpF,GAAuB,CACzBE,OAAQ,SACRvhD,KAAM,OACNuO,OAAQ,UACR4H,QAAS,WACTpI,UAAW,cACXyzC,OAAQF,GAAoB,CAAC,EAAG,IAAM,IAAM,IAC5CG,QAASH,GAAoB,CAAC,IAAM,EAAG,EAAG,MAC1CI,OAAQJ,GAAoB,CAAC,IAAM,IAAM,KAAO,MAChDK,QAASL,GAAoB,CAAC,IAAM,KAAM,IAAM,OAEpD,SAASM,GAAwBT,GAC7B,GAAKA,EAEL,OAAOD,GAAmBC,GACpBG,GAAoBH,GACpBtoF,MAAMs5C,QAAQgvC,GACVA,EAAOr1E,IAAI81E,IACXP,GAAqBF,EACnC,CCRA,MAAMU,GAAa,CAACzqF,EAAG4nC,EAAIC,OAAU,EAAM,EAAMA,EAAK,EAAMD,GAAM5nC,GAAK,EAAM6nC,EAAK,EAAMD,IAAO5nC,EAAI,EAAM4nC,GACrG5nC,EACE0qF,GAAuB,KACvBC,GAA2B,GAkBjC,SAASC,GAAYC,EAAKC,EAAKC,EAAKC,GAEhC,GAAIH,IAAQC,GAAOC,IAAQC,EACvB,OAAOxV,GAAA,EACX,MAAMyV,EAAYC,GArBtB,SAAyBznF,EAAG0nF,EAAYC,EAAYP,EAAKE,GACrD,IAAIM,EACAC,EACAlrF,EAAI,EACR,GACIkrF,EAAWH,GAAcC,EAAaD,GAAc,EACpDE,EAAWZ,GAAWa,EAAUT,EAAKE,GAAOtnF,EACxC4nF,EAAW,EACXD,EAAaE,EAGbH,EAAaG,QAEZxpF,KAAKC,IAAIspF,GAAYX,MACxBtqF,EAAIuqF,IACV,OAAOW,CACX,CAK6BC,CAAgBL,EAAI,EAAG,EAAGL,EAAKE,GAExD,OAAQ/qF,GAAY,IAANA,GAAiB,IAANA,EAAUA,EAAIyqF,GAAWQ,EAASjrF,GAAI8qF,EAAKE,EACxE,CC9CA,MAAM7zC,GAASyzC,GAAY,IAAM,EAAG,EAAG,GACjC7rC,GAAU6rC,GAAY,EAAG,EAAG,IAAM,GAClCj0C,GAAYi0C,GAAY,IAAM,EAAG,IAAM,GCJvCY,GAAiB5iD,GACZnnC,MAAMs5C,QAAQnS,IAA4B,iBAAZA,EAAK,GCCxC6iD,GAAgB1B,GAAYxnF,GAAMA,GAAK,GAAMwnF,EAAO,EAAIxnF,GAAK,GAAK,EAAIwnF,EAAO,GAAK,EAAIxnF,KAAO,ECA7FmpF,GAAiB3B,GAAYxnF,GAAM,EAAIwnF,EAAO,EAAIxnF,GCClD6nF,GAAU7nF,GAAM,EAAIT,KAAKw+B,IAAIx+B,KAAKmhC,KAAK1gC,IACvC8nF,GAAUqB,GAActB,IACxBuB,GAAYF,GAAapB,ICDzBE,GAAUK,GAAY,IAAM,KAAM,IAAM,KACxCN,GAASoB,GAAcnB,IACvBqB,GAAYH,GAAanB,ICEzBuB,GAAe,CACjB1B,OAAQ3U,GAAA,EACRr+B,OAAM,GACNR,UAAS,GACToI,QAAO,GACPqrC,OAAM,GACNuB,UAAS,GACTtB,QAAO,GACPC,OAAM,GACNsB,UAAS,GACTrB,QAAO,GACPuB,WCjBgBvpF,IAAOA,GAAK,GAAK,EAAI,GAAM+nF,GAAO/nF,GAAK,IAAO,EAAIT,KAAK4oD,IAAI,GAAI,IAAMnoD,EAAI,MDmBvFwpF,GAA8B3J,IAChC,GAAI3gF,MAAMs5C,QAAQqnC,GAAa,EAE3B,QAAgC,IAAtBA,EAAW5gF,OAAc,2DACnC,MAAOsgC,EAAIC,EAAIoE,EAAIC,GAAMg8C,EACzB,OAAOwI,GAAY9oD,EAAIC,EAAIoE,EAAIC,EACnC,CACK,MAA0B,iBAAfg8C,IAEZ,aAAuCj1E,IAA7B0+E,GAAazJ,GAA2B,wBAAwBA,MACnEyJ,GAAazJ,IAEjBA,CAAU,EE3Bf4J,GAAgB,CAAC12E,EAAM22E,IAActqF,GAChCiwB,QAASiuC,EAASl+D,IAAMk5E,EAAiB32E,KAAKvC,IAAMA,EAAEoV,WAAWzB,IACnE22E,GAAYniF,OAAOhG,UAAUoG,eAAeC,KAAKxI,EAAGsqF,IAEvDj+B,GAAa,CAACk+B,EAAOC,EAAOC,IAAWzqF,IACzC,IAAKk+D,EAASl+D,GACV,OAAOA,EACX,MAAOpB,EAAG6C,EAAG3C,EAAG4hE,GAAS1gE,EAAEwC,MAAMw2E,GACjC,MAAO,CACH,CAACuR,GAAQ5gD,WAAW/qC,GACpB,CAAC4rF,GAAQ7gD,WAAWloC,GACpB,CAACgpF,GAAQ9gD,WAAW7qC,GACpB4hE,WAAiBl1D,IAAVk1D,EAAsB/2B,WAAW+2B,GAAS,EACpD,ECbCgqB,GAAU,IACT5R,EACHrS,UAAYzmE,GAAMG,KAAKgF,MAHN,CAACnF,GAAM09D,EAAM,EAAG,IAAK19D,GAGT2qF,CAAa3qF,KAExC4qF,GAAO,CACTroF,KAAM8nF,GAAc,MAAO,OAC3BnoF,MAAOmqD,GAAW,MAAO,QAAS,QAClCoa,UAAW,EAAG3a,MAAKD,QAAOR,OAAMqV,MAAOmqB,EAAU,KAAQ,QACrDH,GAAQjkB,UAAU3a,GAClB,KACA4+B,GAAQjkB,UAAU5a,GAClB,KACA6+B,GAAQjkB,UAAUpb,GAClB,KACA0tB,EAASrY,EAAM+F,UAAUokB,IACzB,KCYR,MAAMC,GAAM,CACRvoF,KAAM8nF,GAAc,KACpBnoF,MAhCJ,SAAkBlC,GACd,IAAIxB,EAAI,GACJ2C,EAAI,GACJM,EAAI,GACJ7C,EAAI,GAmBR,OAjBIoB,EAAEH,OAAS,GACXrB,EAAIwB,EAAEyC,UAAU,EAAG,GACnBtB,EAAInB,EAAEyC,UAAU,EAAG,GACnBhB,EAAIzB,EAAEyC,UAAU,EAAG,GACnB7D,EAAIoB,EAAEyC,UAAU,EAAG,KAInBjE,EAAIwB,EAAEyC,UAAU,EAAG,GACnBtB,EAAInB,EAAEyC,UAAU,EAAG,GACnBhB,EAAIzB,EAAEyC,UAAU,EAAG,GACnB7D,EAAIoB,EAAEyC,UAAU,EAAG,GACnBjE,GAAKA,EACL2C,GAAKA,EACLM,GAAKA,EACL7C,GAAKA,GAEF,CACHktD,IAAKW,SAASjuD,EAAG,IACjBqtD,MAAOY,SAAStrD,EAAG,IACnBkqD,KAAMoB,SAAShrD,EAAG,IAClBi/D,MAAO9hE,EAAI6tD,SAAS7tD,EAAG,IAAM,IAAM,EAE3C,EAII6nE,UAAWmkB,GAAKnkB,WC/BdskB,GAAO,CACTxoF,KAAM8nF,GAAc,MAAO,OAC3BnoF,MAAOmqD,GAAW,MAAO,aAAc,aACvCoa,UAAW,EAAGukB,MAAKC,aAAYC,YAAWxqB,MAAOmqB,EAAU,KAC/C,QACJ1qF,KAAKgF,MAAM6lF,GACX,KACA3R,EAAQ5S,UAAUsS,EAASkS,IAC3B,KACA5R,EAAQ5S,UAAUsS,EAASmS,IAC3B,KACAnS,EAASrY,EAAM+F,UAAUokB,IACzB,KCZN79B,GAAQ,CACVzqD,KAAOvC,GAAM4qF,GAAKroF,KAAKvC,IAAM8qF,GAAIvoF,KAAKvC,IAAM+qF,GAAKxoF,KAAKvC,GACtDkC,MAAQlC,GACA4qF,GAAKroF,KAAKvC,GACH4qF,GAAK1oF,MAAMlC,GAEb+qF,GAAKxoF,KAAKvC,GACR+qF,GAAK7oF,MAAMlC,GAGX8qF,GAAI5oF,MAAMlC,GAGzBymE,UAAYzmE,GACDk+D,EAASl+D,GACVA,EACAA,EAAEuI,eAAe,OACbqiF,GAAKnkB,UAAUzmE,GACf+qF,GAAKtkB,UAAUzmE,ICF3B8gF,GAAM,CAACr/D,EAAMqL,EAAI89B,KAAcA,EAAWnpC,EAAOmpC,EAAW99B,EAAKrL,ECpBvE,SAAS0pE,GAASvqF,EAAGg2B,EAAGv4B,GAKpB,OAJIA,EAAI,IACJA,GAAK,GACLA,EAAI,IACJA,GAAK,GACLA,EAAI,EAAI,EACDuC,EAAc,GAATg2B,EAAIh2B,GAASvC,EACzBA,EAAI,GACGu4B,EACPv4B,EAAI,EAAI,EACDuC,GAAKg2B,EAAIh2B,IAAM,EAAI,EAAIvC,GAAK,EAChCuC,CACX,CCHA,MAAMwqF,GAAiB,CAAC3pE,EAAMqL,EAAI9sB,KAC9B,MAAMqrF,EAAW5pE,EAAOA,EACxB,OAAOthB,KAAK6+B,KAAK7+B,KAAK81B,IAAI,EAAGj2B,GAAK8sB,EAAKA,EAAKu+D,GAAYA,GAAU,EAEhEC,GAAa,CAACR,GAAKF,GAAMG,IAE/B,SAASQ,GAAOv+B,GACZ,MAAMr5C,GAFY3T,EAEQgtD,EAFFs+B,GAAWE,MAAM73E,GAASA,EAAKpR,KAAKvC,MAA3C,IAACA,GAGlB,QAAUiwB,QAAQtc,GAAO,IAAIq5C,yEAC7B,IAAIy+B,EAAQ93E,EAAKzR,MAAM8qD,GAKvB,OAJIr5C,IAASo3E,KAETU,EDRR,UAAoB,IAAET,EAAG,WAAEC,EAAU,UAAEC,EAAS,MAAExqB,IAC9CsqB,GAAO,IAEPE,GAAa,IACb,IAAIp/B,EAAM,EACND,EAAQ,EACRR,EAAO,EACX,GALA4/B,GAAc,IAQT,CACD,MAAMr0D,EAAIs0D,EAAY,GAChBA,GAAa,EAAID,GACjBC,EAAYD,EAAaC,EAAYD,EACrCrqF,EAAI,EAAIsqF,EAAYt0D,EAC1Bk1B,EAAMq/B,GAASvqF,EAAGg2B,EAAGo0D,EAAM,EAAI,GAC/Bn/B,EAAQs/B,GAASvqF,EAAGg2B,EAAGo0D,GACvB3/B,EAAO8/B,GAASvqF,EAAGg2B,EAAGo0D,EAAM,EAAI,EACpC,MAVIl/B,EAAMD,EAAQR,EAAO6/B,EAWzB,MAAO,CACHp/B,IAAK3rD,KAAKgF,MAAY,IAAN2mD,GAChBD,MAAO1rD,KAAKgF,MAAc,IAAR0mD,GAClBR,KAAMlrD,KAAKgF,MAAa,IAAPkmD,GACjBqV,QAER,CCjBgBgrB,CAAWD,IAEhBA,CACX,CACA,MAAME,GAAW,CAAClqE,EAAMqL,KACpB,MAAM8+D,EAAWL,GAAO9pE,GAClBoqE,EAASN,GAAOz+D,GAChBg/D,EAAU,IAAKF,GACrB,OAAQ5rF,IACJ8rF,EAAQhgC,IAAMs/B,GAAeQ,EAAS9/B,IAAK+/B,EAAO//B,IAAK9rD,GACvD8rF,EAAQjgC,MAAQu/B,GAAeQ,EAAS//B,MAAOggC,EAAOhgC,MAAO7rD,GAC7D8rF,EAAQzgC,KAAO+/B,GAAeQ,EAASvgC,KAAMwgC,EAAOxgC,KAAMrrD,GAC1D8rF,EAAQprB,MAAQogB,GAAI8K,EAASlrB,MAAOmrB,EAAOnrB,MAAO1gE,GAC3C4qF,GAAKnkB,UAAUqlB,GACzB,ECtBL,MAAMC,GAAkB,CACpBC,MvEZqB,gFuEarBC,SAAU,OACVvT,MAAO,OACPx2E,MAAO2xE,GAAA,GAELqY,GAAiB,CACnBF,MAAO/S,EACPgT,SAAU,SACVvT,MAAO,OACPx2E,MAAO8qD,GAAM9qD,OAEXiqF,GAAkB,CACpBH,MAAOhT,EACPiT,SAAU,UACVvT,MAAO,OACPx2E,MAAO42E,EAAO52E,OAElB,SAASkqF,GAASnxC,GAAM,MAAE+wC,EAAK,SAAEC,EAAQ,MAAEvT,EAAK,MAAEx2E,IAC9C,MAAMqlF,EAAUtsC,EAAKoxC,UAAU7pF,MAAMwpF,GAChCzE,IAELtsC,EAAK,MAAQgxC,GAAY1E,EAAQ1nF,OACjCo7C,EAAKoxC,UAAYpxC,EAAKoxC,UAAUnrF,QAAQ8qF,EAAOtT,GAC/Cz9B,EAAKv5B,OAAO7N,QAAQ0zE,EAAQx0E,IAAI7Q,IACpC,CACA,SAASoqF,GAAoBtgF,GACzB,MAAMugF,EAAgBvgF,EAAMlI,WACtBm3C,EAAO,CACTjvC,MAAOugF,EACPF,UAAWE,EACX7qE,OAAQ,GACR8qE,QAAS,EACTC,UAAW,EACXC,WAAY,GAMhB,OAJIzxC,EAAKjvC,MAAMqU,SAAS,WACpB+rE,GAASnxC,EAAM8wC,IACnBK,GAASnxC,EAAMixC,IACfE,GAASnxC,EAAMkxC,IACRlxC,CACX,CACA,SAAS0xC,GAAkB3sF,GACvB,OAAOssF,GAAoBtsF,GAAG0hB,MAClC,CACA,SAASkrE,GAAkBziB,GACvB,MAAM,OAAEzoD,EAAM,UAAE+qE,EAAS,QAAED,EAAO,UAAEH,GAAcC,GAAoBniB,GAChE0iB,EAAYnrE,EAAO7hB,OACzB,OAAQG,IACJ,IAAI8sF,EAAST,EACb,IAAK,IAAI5tF,EAAI,EAAGA,EAAIouF,EAAWpuF,IAEvBquF,EADAruF,EAAI+tF,EACKM,EAAO5rF,QAAQ6qF,GAAgBrT,MAAO14E,EAAEvB,IAE5CA,EAAI+tF,EAAUC,EACVK,EAAO5rF,QAAQgrF,GAAexT,MAAO1rB,GAAMyZ,UAAUzmE,EAAEvB,KAGvDquF,EAAO5rF,QAAQirF,GAAgBzT,MAAOK,EAAS/4E,EAAEvB,KAGlE,OAAOquF,CAAM,CAErB,CACA,MAAMC,GAAwB/sF,GAAmB,iBAANA,EAAiB,EAAIA,EAMhE,MAAMgtF,GAAU,CACZzqF,KA/EJ,SAAcvC,GACV,IAAI8uE,EAAIme,EACR,OAAQp5D,MAAM7zB,IACVk+D,EAASl+D,MACwB,QAA9B8uE,EAAK9uE,EAAEwC,MAAMw2E,UAAgC,IAAPlK,OAAgB,EAASA,EAAGjvE,SAAW,KAC3C,QAA9BotF,EAAKjtF,EAAEwC,MAAMy2E,UAAgC,IAAPgU,OAAgB,EAASA,EAAGptF,SAAW,GAChF,CACZ,EAyEIqC,MAAOyqF,GACPC,qBACAM,kBATJ,SAA2BltF,GACvB,MAAMmtF,EAASR,GAAkB3sF,GAEjC,OADoB4sF,GAAkB5sF,EAC/BotF,CAAYD,EAAOp6E,IAAIg6E,IAClC,GC5EMM,GAAe,CAACz4D,EAAQ0F,IAAY15B,GAAM,GAAGA,EAAI,EAAI05B,EAAS1F,IACpE,SAAS04D,GAAS14D,EAAQ0F,GACtB,MAAsB,iBAAX1F,EACC50B,GAAM8gF,GAAIlsD,EAAQ0F,EAAQt6B,GAE7BgtD,GAAMzqD,KAAKqyB,GACT+2D,GAAS/2D,EAAQ0F,GAGjB1F,EAAOxf,WAAW,QACnBi4E,GAAaz4D,EAAQ0F,GACrBizD,GAAW34D,EAAQ0F,EAEjC,CACA,MAAMkzD,GAAW,CAAC/rE,EAAMqL,KACpB,MAAMggE,EAAS,IAAIrrE,GACborE,EAAYC,EAAOjtF,OACnB4tF,EAAahsE,EAAK1O,KAAI,CAAC26E,EAAUjvF,IAAM6uF,GAASI,EAAU5gE,EAAGruB,MACnE,OAAQuB,IACJ,IAAK,IAAIvB,EAAI,EAAGA,EAAIouF,EAAWpuF,IAC3BquF,EAAOruF,GAAKgvF,EAAWhvF,GAAGuB,GAE9B,OAAO8sF,CAAM,CAChB,EAECa,GAAY,CAAC/4D,EAAQ0F,KACvB,MAAMwyD,EAAS,IAAKl4D,KAAW0F,GACzBmzD,EAAa,CAAC,EACpB,IAAK,MAAMnlF,KAAOwkF,OACMthF,IAAhBopB,EAAOtsB,SAAsCkD,IAAhB8uB,EAAOhyB,KACpCmlF,EAAWnlF,GAAOglF,GAAS14D,EAAOtsB,GAAMgyB,EAAOhyB,KAGvD,OAAQtI,IACJ,IAAK,MAAMsI,KAAOmlF,EACdX,EAAOxkF,GAAOmlF,EAAWnlF,GAAKtI,GAElC,OAAO8sF,CAAM,CAChB,EAECS,GAAa,CAAC34D,EAAQ0F,KACxB,MAAMszD,EAAWZ,GAAQJ,kBAAkBtyD,GACrCuzD,EAAcvB,GAAoB13D,GAClCk5D,EAAcxB,GAAoBhyD,GAIxC,OAHuBuzD,EAAYrB,UAAYsB,EAAYtB,SACvDqB,EAAYpB,YAAcqB,EAAYrB,WACtCoB,EAAYnB,YAAcoB,EAAYpB,WAE/B/uB,GAAK6vB,GAASK,EAAYnsE,OAAQosE,EAAYpsE,QAASksE,KAG9D,SAAQ,EAAM,mBAAmBh5D,WAAgB0F,6KAC1C+yD,GAAaz4D,EAAQ0F,GAChC,EChDEswB,GAAW,CAACnpC,EAAMqL,EAAI9gB,KACxB,MAAM+hF,EAAmBjhE,EAAKrL,EAC9B,OAA4B,IAArBssE,EAAyB,GAAK/hF,EAAQyV,GAAQssE,CAAgB,ECJnEC,GAAY,CAACvsE,EAAMqL,IAAQlsB,GAAMkgF,GAAIr/D,EAAMqL,EAAIlsB,GAgBrD,SAASqtF,GAAanB,EAAQ7lD,EAAMinD,GAChC,MAAMC,EAAS,GACTC,EAAeF,IAhBJ,iBADOluF,EAiB+B8sF,EAAO,IAfnDkB,GAEW,iBAANhuF,EACLgtD,GAAMzqD,KAAKvC,GAAK2rF,GAAW4B,GAE7BztF,MAAMs5C,QAAQp5C,GACZwtF,GAEW,iBAANxtF,EACL2tF,GAEJK,IAbX,IAA4BhuF,EAkBxB,MAAMquF,EAAYvB,EAAOjtF,OAAS,EAClC,IAAK,IAAIpB,EAAI,EAAGA,EAAI4vF,EAAW5vF,IAAK,CAChC,IAAI6vF,EAAQF,EAAatB,EAAOruF,GAAIquF,EAAOruF,EAAI,IAC/C,GAAIwoC,EAAM,CACN,MAAMsnD,EAAiBzuF,MAAMs5C,QAAQnS,GAAQA,EAAKxoC,IAAMo1E,GAAA,EAAO5sC,EAC/DqnD,EAAQ3wB,GAAK4wB,EAAgBD,EACjC,CACAH,EAAOt6E,KAAKy6E,EAChB,CACA,OAAOH,CACX,CAoBA,SAASrwB,GAAYn3D,EAAOmmF,GAAUpvB,MAAO8wB,GAAU,EAAI,KAAEvnD,EAAI,MAAEqnD,GAAU,CAAC,GAC1E,MAAMG,EAAc9nF,EAAM9G,OAM1B,IALA,QAAU4uF,IAAgB3B,EAAOjtF,OAAQ,wDAKrB,IAAhB4uF,EACA,MAAO,IAAM3B,EAAO,GAEpBnmF,EAAM,GAAKA,EAAM8nF,EAAc,KAC/B9nF,EAAQ,IAAIA,GAAOsqD,UACnB67B,EAAS,IAAIA,GAAQ77B,WAEzB,MAAMk9B,EAASF,GAAanB,EAAQ7lD,EAAMqnD,GACpCD,EAAYF,EAAOtuF,OACnB6uF,EAAgB1uF,IAClB,IAAIvB,EAAI,EACR,GAAI4vF,EAAY,EACZ,KAAO5vF,EAAIkI,EAAM9G,OAAS,KAClBG,EAAI2G,EAAMlI,EAAI,IADOA,KAKjC,MAAMkwF,EAAkB/jC,GAASjkD,EAAMlI,GAAIkI,EAAMlI,EAAI,GAAIuB,GACzD,OAAOmuF,EAAO1vF,GAAGkwF,EAAgB,EAErC,OAAOH,EACAxuF,GAAM0uF,EAAahxB,EAAM/2D,EAAM,GAAIA,EAAM8nF,EAAc,GAAIzuF,IAC5D0uF,CACV,CCvFA,SAASE,GAAc3d,GACnB,MAAMvnC,EAAS,CAAC,GAEhB,OCFJ,SAAoBA,EAAQmlD,GACxB,MAAM9pF,EAAM2kC,EAAOA,EAAO7pC,OAAS,GACnC,IAAK,IAAIpB,EAAI,EAAGA,GAAKowF,EAAWpwF,IAAK,CACjC,MAAMqwF,EAAiBlkC,GAAS,EAAGikC,EAAWpwF,GAC9CirC,EAAO71B,KAAKitE,GAAI/7E,EAAK,EAAG+pF,GAC5B,CACJ,CDLIC,CAAWrlD,EAAQunC,EAAIpxE,OAAS,GACzB6pC,CACX,CEIA,SAASgZ,IAAU,SAAE3W,EAAW,IAAK2W,UAAWssC,EAAc,MAAEC,EAAK,KAAEhoD,EAAO,cAK1E,MAAMioD,EAAkBrF,GAAc5iD,GAChCA,EAAKl0B,IAAIq3E,IACTA,GAA2BnjD,GAK3B35B,EAAQ,CACVo/D,MAAM,EACN1gE,MAAOgjF,EAAe,IAKpBG,EC7BV,SAA8BzlD,EAAQqC,GAClC,OAAOrC,EAAO32B,KAAKlU,GAAMA,EAAIktC,GACjC,CD2B0BqjD,CAGtBH,GAASA,EAAMpvF,SAAWmvF,EAAenvF,OACnCovF,EACAL,GAAcI,GAAiBjjD,GAC/BsjD,EAAoBvxB,GAAYqxB,EAAeH,EAAgB,CACjE/nD,KAAMnnC,MAAMs5C,QAAQ81C,GACdA,GA9BSxtE,EA+BKstE,EA/BG5G,EA+Ba8G,EA9BjCxtE,EAAO3O,KAAI,IAAMq1E,GAAUpzC,KAAWjhC,OAAO,EAAG2N,EAAO7hB,OAAS,MAD3E,IAAuB6hB,EAAQ0mE,EAiC3B,MAAO,CACHkH,mBAAoBvjD,EACpB34B,KAAO/U,IACHiP,EAAMtB,MAAQqjF,EAAkBhxF,GAChCiP,EAAMo/D,KAAOruE,GAAK0tC,EACXz+B,GAGnB,CE1CA,SAASiiF,GAAkB3H,EAAU4H,GACjC,OAAOA,EAAgB5H,GAAY,IAAO4H,GAAiB,CAC/D,CCNA,MAAMC,GAAyB,EAC/B,SAASC,GAAsBC,EAActxF,EAAGuP,GAC5C,MAAMgiF,EAAQzvF,KAAK81B,IAAI53B,EAAIoxF,GAAwB,GACnD,OAAOF,GAAkB3hF,EAAU+hF,EAAaC,GAAQvxF,EAAIuxF,EAChE,CCFA,MAAMC,GAAU,KACVC,GAAc,IACdC,GAAc,GACdC,GAAa,IACbC,GAAa,EACnB,SAASC,IAAW,SAAEnkD,EAAW,IAAG,OAAEokD,EAAS,IAAI,SAAEvI,EAAW,EAAC,KAAEwI,EAAO,IACtE,IAAIC,EACAC,GACJ,QAAQvkD,GAAY+7C,GAAsBiI,IAAc,8CACxD,IAAIQ,EAAe,EAAIJ,EAIvBI,EAAe7yB,EAAMsyB,GAAYC,GAAYM,GAC7CxkD,EAAW2xB,EAAMoyB,GAAaC,GAAa/H,GAAsBj8C,IAC7DwkD,EAAe,GAIfF,EAAYG,IACR,MAAMC,EAAmBD,EAAeD,EAClC9d,EAAQge,EAAmB1kD,EAC3BntC,EAAI6xF,EAAmB7I,EACvBnmF,EAAIivF,GAAgBF,EAAcD,GAClCzxF,EAAIqB,KAAKwwF,KAAKle,GACpB,OAAOod,GAAWjxF,EAAI6C,EAAK3C,CAAC,EAEhCwxF,EAAcE,IACV,MACM/d,EADmB+d,EAAeD,EACPxkD,EAC3B9sC,EAAIwzE,EAAQmV,EAAWA,EACvBtpF,EAAI6B,KAAK4oD,IAAIwnC,EAAc,GAAKpwF,KAAK4oD,IAAIynC,EAAc,GAAKzkD,EAC5DhtC,EAAIoB,KAAKwwF,KAAKle,GACdtxE,EAAIuvF,GAAgBvwF,KAAK4oD,IAAIynC,EAAc,GAAID,GAErD,QADgBF,EAASG,GAAgBX,GAAU,GAAK,EAAI,KACzC5wF,EAAIX,GAAKS,GAAMoC,CAAC,IAOvCkvF,EAAYG,GACErwF,KAAKwwF,KAAKH,EAAezkD,KACxBykD,EAAe5I,GAAY77C,EAAW,GACzC8jD,GAEZS,EAAcE,GACArwF,KAAKwwF,KAAKH,EAAezkD,IACIA,EAAWA,GAAvC67C,EAAW4I,KAI9B,MACMA,EAmBV,SAAyBH,EAAUC,EAAYM,GAC3C,IAAI59E,EAAS49E,EACb,IAAK,IAAInyF,EAAI,EAAGA,EAAIoyF,GAAgBpyF,IAChCuU,GAAkBq9E,EAASr9E,GAAUs9E,EAAWt9E,GAEpD,OAAOA,CACX,CAzByB89E,CAAgBT,EAAUC,EAD1B,EAAIvkD,GAGzB,GADAA,EAAW+7C,GAAsB/7C,GAC7BlY,MAAM28D,GACN,MAAO,CACHO,UAAW,IACXC,QAAS,GACTjlD,YAGH,CACD,MAAMglD,EAAY5wF,KAAK4oD,IAAIynC,EAAc,GAAKJ,EAC9C,MAAO,CACHW,YACAC,QAAwB,EAAfT,EAAmBpwF,KAAK6+B,KAAKoxD,EAAOW,GAC7ChlD,WAER,CACJ,CACA,MAAM8kD,GAAiB,GAQvB,SAASH,GAAgBF,EAAcD,GACnC,OAAOC,EAAerwF,KAAK6+B,KAAK,EAAIuxD,EAAeA,EACvD,CClFA,MAAMU,GAAe,CAAC,WAAY,UAC5BC,GAAc,CAAC,YAAa,UAAW,QAC7C,SAASC,GAAa7+E,EAASqG,GAC3B,OAAOA,EAAKmH,MAAMxX,QAAyBkD,IAAjB8G,EAAQhK,IACtC,CAwBA,SAAS8oF,IAAO,UAAE1uC,EAAS,UAAE2uC,EAAS,UAAEC,KAAch/E,IAClD,MAAMsiB,EAAS8tB,EAAU,GACnBpoB,EAASooB,EAAUA,EAAU7iD,OAAS,GAKtCyN,EAAQ,CAAEo/D,MAAM,EAAO1gE,MAAO4oB,IAC9B,UAAEm8D,EAAS,QAAEC,EAAO,KAAEZ,EAAI,SAAExI,EAAQ,SAAE77C,EAAQ,uBAAEwlD,GA/B1D,SAA0Bj/E,GACtB,IAAIk/E,EAAgB,CAChB5J,SAAU,EACVmJ,UAAW,IACXC,QAAS,GACTZ,KAAM,EACNmB,wBAAwB,KACrBj/E,GAGP,IAAK6+E,GAAa7+E,EAAS4+E,KACvBC,GAAa7+E,EAAS2+E,IAAe,CACrC,MAAMQ,EAAUvB,GAAW59E,GAC3Bk/E,EAAgB,IACTA,KACAC,EACH7J,SAAU,EACVwI,KAAM,GAEVoB,EAAcD,wBAAyB,CAC3C,CACA,OAAOC,CACX,CASsFE,CAAiBp/E,GAC7Fq/E,EAAkB/J,GAAYI,GAAsBJ,GAAY,EAChE2I,EAAeS,GAAW,EAAI7wF,KAAK6+B,KAAK+xD,EAAYX,IACpDwB,EAAet3D,EAAS1F,EACxBi9D,EAAsB7J,GAAsB7nF,KAAK6+B,KAAK+xD,EAAYX,IAQlE0B,EAAkB3xF,KAAKC,IAAIwxF,GAAgB,EAGjD,IAAIG,EACJ,GAHAT,IAAcA,EAAYQ,EAAkB,IAAO,GACnDT,IAAcA,EAAYS,EAAkB,KAAQ,IAEhDvB,EAAe,EAAG,CAClB,MAAMyB,EAActB,GAAgBmB,EAAqBtB,GAEzDwB,EAAiB1zF,IACb,MAAMgyF,EAAWlwF,KAAKwwF,KAAKJ,EAAesB,EAAsBxzF,GAChE,OAAQi8B,EACJ+1D,IACOsB,EACCpB,EAAesB,EAAsBD,GACrCI,EACA7xF,KAAKw+B,IAAIqzD,EAAc3zF,GACvBuzF,EAAezxF,KAAK0+B,IAAImzD,EAAc3zF,GAAI,CAE9D,MACK,GAAqB,IAAjBkyF,EAELwB,EAAiB1zF,GAAMi8B,EACnBn6B,KAAKwwF,KAAKkB,EAAsBxzF,IAC3BuzF,GACID,EAAkBE,EAAsBD,GAAgBvzF,OAEpE,CAED,MAAM4zF,EAAoBJ,EAAsB1xF,KAAK6+B,KAAKuxD,EAAeA,EAAe,GACxFwB,EAAiB1zF,IACb,MAAMgyF,EAAWlwF,KAAKwwF,KAAKJ,EAAesB,EAAsBxzF,GAE1D6zF,EAAW/xF,KAAK4E,IAAIktF,EAAoB5zF,EAAG,KACjD,OAAQi8B,EACH+1D,IACKsB,EACEpB,EAAesB,EAAsBD,GACrCzxF,KAAKgyF,KAAKD,GACVD,EACIL,EACAzxF,KAAKiyF,KAAKF,IAClBD,CAAkB,CAElC,CACA,MAAO,CACH3C,mBAAoBiC,GAAyBxlD,GAAmB,KAChE34B,KAAO/U,IACH,MAAMuP,EAAUmkF,EAAc1zF,GAC9B,GAAKkzF,EAqBDjkF,EAAMo/D,KAAOruE,GAAK0tC,MArBO,CACzB,IAAI40C,EAAkBgR,EACZ,IAANtzF,IAOIsiF,EADA4P,EAAe,EACGb,GAAsBqC,EAAe1zF,EAAGuP,GAGxC,GAG1B,MAAMykF,EAA2BlyF,KAAKC,IAAIugF,IAAoB2Q,EACxDgB,EAA+BnyF,KAAKC,IAAIk6B,EAAS1sB,IAAYyjF,EACnE/jF,EAAMo/D,KACF2lB,GAA4BC,CACpC,CAKA,OADAhlF,EAAMtB,MAAQsB,EAAMo/D,KAAOpyC,EAAS1sB,EAC7BN,CAAK,EAGxB,CC3HA,SAASilF,IAAQ,UAAE7vC,EAAS,SAAEklC,EAAW,EAAG,MAAEz3B,EAAQ,GAAG,aAAEqiC,EAAe,IAAG,cAAEC,EAAgB,GAAE,gBAAEC,EAAkB,IAAG,aAAEC,EAAY,IAAE5tF,EAAG,IAAEkxB,EAAG,UAAEo7D,EAAY,GAAG,UAAEC,IAC/J,MAAM18D,EAAS8tB,EAAU,GACnBp1C,EAAQ,CACVo/D,MAAM,EACN1gE,MAAO4oB,GAGLg+D,EAAmB5yF,QACTwL,IAARzG,EACOkxB,OACCzqB,IAARyqB,GAEG91B,KAAKC,IAAI2E,EAAM/E,GAAKG,KAAKC,IAAI61B,EAAMj2B,GAD/B+E,EAC0CkxB,EAEzD,IAAI05B,EAAYQ,EAAQy3B,EACxB,MAAMiL,EAAQj+D,EAAS+6B,EACjBr1B,OAA0B9uB,IAAjBmnF,EAA6BE,EAAQF,EAAaE,GAK7Dv4D,IAAWu4D,IACXljC,EAAYr1B,EAAS1F,GACzB,MAAMk+D,EAAaz0F,IAAOsxD,EAAYxvD,KAAKwwF,KAAKtyF,EAAIm0F,GAC9CO,EAAc10F,GAAMi8B,EAASw4D,EAAUz0F,GACvC20F,EAAiB30F,IACnB,MAAMo0E,EAAQqgB,EAAUz0F,GAClBmgF,EAASuU,EAAW10F,GAC1BiP,EAAMo/D,KAAOvsE,KAAKC,IAAIqyE,IAAU4e,EAChC/jF,EAAMtB,MAAQsB,EAAMo/D,KAAOpyC,EAASkkD,CAAM,EAQ9C,IAAIyU,EACAC,EACJ,MAAMC,EAAsB90F,IAjCN,IAAC2B,KAkCAsN,EAAMtB,WAlCSR,IAARzG,GAAqB/E,EAAI+E,QAAiByG,IAARyqB,GAAqBj2B,EAAIi2B,KAoCrFg9D,EAAsB50F,EACtB60F,EAAW9B,GAAO,CACd1uC,UAAW,CAACp1C,EAAMtB,MAAO4mF,EAAgBtlF,EAAMtB,QAC/C47E,SAAU8H,GAAsBqD,EAAY10F,EAAGiP,EAAMtB,OACrDglF,QAASyB,EACT1B,UAAW2B,EACXrB,YACAC,cACF,EAGN,OADA6B,EAAmB,GACZ,CACH7D,mBAAoB,KACpBl8E,KAAO/U,IAOH,IAAI+0F,GAAkB,EAUtB,OATKF,QAAoC1nF,IAAxBynF,IACbG,GAAkB,EAClBJ,EAAc30F,GACd80F,EAAmB90F,SAMKmN,IAAxBynF,GAAqC50F,EAAI40F,EAClCC,EAAS9/E,KAAK/U,EAAI40F,KAGxBG,GAAmBJ,EAAc30F,GAC3BiP,EACX,EAGZ,CClFA,MAAM+lF,GAAmBxc,IACrB,MAAMyc,EAAgB,EAAG5gB,eAAgBmE,EAAOnE,GAChD,MAAO,CACH7vD,MAAO,IAAM,MAAMg0D,OAAOyc,GAAe,GACzCC,KAAM,KAAM,SAAYD,GAKxBj+D,IAAK,IAAM,GAAA+8C,UAAUO,aAAe,GAAAP,UAAUM,UAAYphD,YAAY+D,MACzE,ECRCm+D,GAAuB,IAC7B,SAASC,GAAsBC,GAC3B,IAAI3nD,EAAW,EAEf,IAAIz+B,EAAQomF,EAAUtgF,KAAK24B,GAC3B,MAAQz+B,EAAMo/D,MAAQ3gC,EAAWynD,IAC7BznD,GAHa,GAIbz+B,EAAQomF,EAAUtgF,KAAK24B,GAE3B,OAAOA,GAAYynD,GAAuB3iC,IAAW9kB,CACzD,CCLA,MAAM4nD,GAAQ,CACVC,MAAOrB,GACPA,QAAO,GACPxoD,MAAO2Y,GACPA,UAAWA,GACX0uC,OAAM,IASV,SAASyC,IAAa,SAAEC,GAAW,EAAI,MAAEv/C,EAAQ,EAAC,OAAEw/C,EAASV,GAAiB3wC,UAAWsxC,EAAW,KAAErgF,EAAO,YAAW,OAAE4yC,EAAS,EAAC,YAAEuK,EAAc,EAAC,WAAEmjC,EAAa,OAAM,OAAEC,EAAM,OAAEC,EAAM,WAAEl/C,EAAU,SAAEwf,KAAaniD,IACjN,IAEI8hF,EACAC,EAHAC,EAAQ,EACRC,GAAa,EAOjB,MAAMC,EAAwB,KAC1BH,EAAyB,IAAI/gF,SAASC,IAClC6gF,EAAyB7gF,CAAO,GAClC,EAIN,IAAIkhF,EADJD,IAEA,MAAME,EAAmBf,GAAMhgF,IAAS+uC,GAMxC,IAAIiyC,EACAD,IAAqBhyC,IACK,iBAAnBsxC,EAAY,KACnBW,EAAwB72B,GAAY,CAAC,EAAG,KAAMk2B,EAAa,CACvDt2B,OAAO,IAEXs2B,EAAc,CAAC,EAAG,MAEtB,MAAMN,EAAYgB,EAAiB,IAAKpiF,EAASowC,UAAWsxC,IAC5D,IAAIY,EACe,WAAfX,IACAW,EAAoBF,EAAiB,IAC9BpiF,EACHowC,UAAW,IAAIsxC,GAAa/iC,UAC5B22B,WAAYt1E,EAAQs1E,UAAY,MAGxC,IAAIiN,EAAY,OACZC,EAAW,KACX3jC,EAAY,KACZ4jC,EAAa,KASoB,OAAjCrB,EAAUpE,oBAA+B/oC,IACzCmtC,EAAUpE,mBAAqBmE,GAAsBC,IAEzD,MAAM,mBAAEpE,GAAuBoE,EAC/B,IAAIsB,EAAmBnkC,IACnBxM,EAAgBwM,IACO,OAAvBy+B,IACA0F,EAAmB1F,EAAqBx+B,EACxCzM,EAAgB2wC,GAAoBzuC,EAAS,GAAKuK,GAEtD,IAAImkC,EAAc,EAClB,MAAMvnC,EAAQglB,IACV,GAAkB,OAAdvhB,EACA,OAOAmjC,EAAQ,IACRnjC,EAAYhxD,KAAK4E,IAAIosD,EAAWuhB,IAChC4hB,EAAQ,IACRnjC,EAAYhxD,KAAK4E,IAAI2tE,EAAYruB,EAAgBiwC,EAAOnjC,IAExD8jC,EADa,OAAbH,EACcA,EAMA30F,KAAKgF,MAAMutE,EAAYvhB,GAAamjC,EAGtD,MAAMY,EAAmBD,EAAc1gD,GAAS+/C,GAAS,EAAI,GAAK,GAC5Da,EAAiBb,GAAS,EAAIY,EAAmB,EAAIA,EAAmB7wC,EAC9E4wC,EAAc90F,KAAK81B,IAAIi/D,EAAkB,GAKvB,aAAdL,GAAyC,OAAbC,IAC5BG,EAAc5wC,GAElB,IAAImJ,EAAUynC,EACVG,EAAiB1B,EACrB,GAAIntC,EAAQ,CAMR,MAAMqE,EAAWqqC,EAAcD,EAK/B,IAAIK,EAAmBl1F,KAAKE,MAAMuqD,GAK9B0qC,EAAoB1qC,EAAW,GAK9B0qC,GAAqB1qC,GAAY,IAClC0qC,EAAoB,GAEF,IAAtBA,GAA2BD,IAC3BA,EAAmBl1F,KAAK4E,IAAIswF,EAAkB9uC,EAAS,GAIvD,MAAMgvC,EAAiBtlE,QAAQolE,EAAmB,GAC9CE,IACmB,YAAftB,GACAqB,EAAoB,EAAIA,EACpBxkC,IACAwkC,GAAqBxkC,EAAckkC,IAGnB,WAAff,IACLmB,EAAiBR,IAGzB,IAAIh0F,EAAI88D,EAAM,EAAG,EAAG43B,GAChBL,EAAc5wC,IACdzjD,EAAmB,YAAfqzF,GAA4BsB,EAAiB,EAAI,GAEzD/nC,EAAU5sD,EAAIo0F,CAClB,CAMA,MAAM1nF,EAAQ6nF,EACR,CAAEzoB,MAAM,EAAO1gE,MAAOgoF,EAAY,IAClCoB,EAAehiF,KAAKo6C,GACtBmnC,IACArnF,EAAMtB,MAAQ2oF,EAAsBrnF,EAAMtB,QAE9C,IAAI,KAAE0gE,GAASp/D,EACV6nF,GAAyC,OAAvB7F,IACnB5iB,EAAO4nB,GAAS,EAAIW,GAAe5wC,EAAgB4wC,GAAe,GAEtE,MAAMO,EAAmC,OAAbV,IACT,aAAdD,GAA2C,YAAdA,GAA2BnoB,GAO7D,OANIjY,GACAA,EAASnnD,EAAMtB,OAEfwpF,GACAC,IAEGnoF,CAAK,EAEVooF,EAAsB,KACxBjB,GAAmBA,EAAgBlB,OACnCkB,OAAkBjpF,CAAS,EAEzB4X,EAAS,KACXyxE,EAAY,OACZa,IACAtB,IACAI,IACArjC,EAAY4jC,EAAa,IAAI,EAE3BU,EAAS,KACXZ,EAAY,WACZ5/C,GAAcA,IACdygD,IACAtB,GAAwB,EAEtBpiC,EAAO,KACT,GAAIuiC,EACA,OACCE,IACDA,EAAkBV,EAAOrmC,IAC7B,MAAMr4B,EAAMo/D,EAAgBp/D,MAC5B6+D,GAAUA,IACO,OAAbY,EACA3jC,EAAY97B,EAAMy/D,EAEZ3jC,GAA2B,aAAd0jC,IACnB1jC,EAAY97B,GAEE,aAAdw/D,GACAL,IAEJO,EAAa5jC,EACb2jC,EAAW,KAKXD,EAAY,UACZJ,EAAgB5xE,OAAO,EAEvBixE,GACA9hC,IAEJ,MAAM2jC,EAAW,CACb,IAAAtiF,CAAKE,EAAS0I,GACV,OAAOo4E,EAAuBhhF,KAAKE,EAAS0I,EAChD,EACA,QAAI2lC,GACA,OAAOomC,GAAsBiN,EACjC,EACA,QAAIrzC,CAAKg0C,GACLA,EAAU9N,GAAsB8N,GAChCX,EAAcW,EACG,OAAbd,GAAsBL,GAA6B,IAAVH,EAIzCnjC,EAAYsjC,EAAgBp/D,MAAQugE,EAAUtB,EAH9CQ,EAAWc,CAKnB,EACA,YAAI7pD,GACA,MAAMA,EAA4C,OAAjC2nD,EAAUpE,mBACrBmE,GAAsBC,GACtBA,EAAUpE,mBAChB,OAAOtH,GAAsBj8C,EACjC,EACA,SAAIuoD,GACA,OAAOA,CACX,EACA,SAAIA,CAAMuB,GACFA,IAAavB,GAAUG,IAE3BH,EAAQuB,EACRF,EAAS/zC,KAAOomC,GAAsBiN,GAC1C,EACA,SAAI3nF,GACA,OAAOunF,CACX,EACA7iC,OACAC,MAAO,KACH4iC,EAAY,SACZC,EAAWG,CAAW,EAE1B1B,KAAM,KACFgB,GAAa,EACK,SAAdM,IAEJA,EAAY,OACZV,GAAUA,IACV/wE,IAAQ,EAEZA,OAAQ,KACe,OAAf2xE,GACArnC,EAAKqnC,GACT3xE,GAAQ,EAEZ0yE,SAAU,KACNjB,EAAY,UAAU,EAE1BkB,OAASvoC,IACL2D,EAAY,EACLzD,EAAKF,KAGpB,OAAOmoC,CACX,CCnSA,MAAMK,GCTN,SAAcnvE,GACV,IAAI7T,EACJ,MAAO,UACYxH,IAAXwH,IACAA,EAAS6T,KACN7T,EAEf,CDEsBijF,EAAK,IAAM9tF,OAAOI,eAAeC,KAAK0tF,QAAQ/zF,UAAW,aAIzEg0F,GAAoB,IAAI72E,IAAI,CAC9B,UACA,WACA,SACA,YACA,oBAgBJ,SAAS82E,GAA2BpqF,EAAOqqF,GAAW,SAAE5hC,EAAQ,WAAExf,KAAe3iC,IAO7E,KAN+B0jF,MAC3BG,GAAkBnuF,IAAIquF,KACrB/jF,EAAQw+C,aACc,WAAvBx+C,EAAQ2hF,YACY,IAApB3hF,EAAQ0+E,SACS,YAAjB1+E,EAAQqB,MAER,OAAO,EAIX,IACIygF,EACAC,EAFAE,GAAa,EAOjB,MAAMC,EAAwB,KAC1BH,EAAyB,IAAI/gF,SAASC,IAClC6gF,EAAyB7gF,CAAO,GAClC,EAGNihF,IACA,IAAI,UAAE9xC,EAAS,SAAE3W,EAAW,IAAG,KAAE9E,EAAI,MAAEgoD,GAAU38E,EAIjD,GAjCkC,EAAC+jF,EAAW/jF,IAA6B,WAAjBA,EAAQqB,MACpD,oBAAd0iF,IACChO,GAAuB/1E,EAAQ20B,MA+B5BqvD,CAA8BD,EAAW/jF,GAAU,CACnD,MAAMikF,EAAkB1C,GAAa,IAC9BvhF,EACHi0C,OAAQ,EACRhS,MAAO,IAEX,IAAIjnC,EAAQ,CAAEo/D,MAAM,EAAO1gE,MAAO02C,EAAU,IAC5C,MAAM8zC,EAAwB,GAK9B,IAAIn4F,EAAI,EACR,MAAQiP,EAAMo/D,MAAQruE,EA/CV,KAgDRiP,EAAQipF,EAAgBR,OAAO13F,GAC/Bm4F,EAAsB3iF,KAAKvG,EAAMtB,OACjC3N,GAvDQ,GAyDZ4wF,OAAQzjF,EACRk3C,EAAY8zC,EACZzqD,EAAW1tC,EA3DC,GA4DZ4oC,EAAO,QACX,CACA,MAAM0a,EErFV,SAAsBt1C,EAASgqF,EAAW3zC,GAAW,MAAEnO,EAAQ,EAAC,SAAExI,EAAQ,OAAEwa,EAAS,EAAC,WAAE0tC,EAAa,OAAM,KAAEhtD,EAAI,MAAEgoD,GAAW,CAAC,GAC3H,MAAMwH,EAAkB,CAAE,CAACJ,GAAY3zC,GACnCusC,IACAwH,EAAgB/sD,OAASulD,GAC7B,MAAM7G,EAASS,GAAwB5hD,GAMvC,OAFInnC,MAAMs5C,QAAQgvC,KACdqO,EAAgBrO,OAASA,GACtB/7E,EAAQwqC,QAAQ4/C,EAAiB,CACpCliD,QACAxI,WACAq8C,OAAStoF,MAAMs5C,QAAQgvC,GAAmB,SAATA,EACjCsO,KAAM,OACNC,WAAYpwC,EAAS,EACrBwjB,UAA0B,YAAfkqB,EAA2B,YAAc,UAE5D,CFmEsB2C,CAAa5qF,EAAM6qF,MAAMjpF,QAASyoF,EAAW3zC,EAAW,IACnEpwC,EACHy5B,WASA9E,KAAMA,EACNgoD,UAQA38E,EAAQwkF,YACRn1C,EAAUwP,UAAY,GAAAihB,UAAUO,aAC1B,GAAAP,UAAUM,UACVhoE,SAASkqC,SACLlqC,SAASkqC,SAASqgD,YAClB3jE,YAAY+D,OAE1B,MAAM0hE,EAAkB,IAAMp1C,EAAUv+B,SAClC4zE,EAAa,KACf,MAAMngB,OAAOkgB,GACb3C,IACAI,GAAuB,EAU3B7yC,EAAUs1C,SAAW,KACjBjrF,EAAM3H,IGjId,SAA0Bq+C,GAAW,OAAE6D,EAAM,WAAE0tC,EAAa,SAIxD,OAAOvxC,EAHO6D,GAAyB,SAAf0tC,GAAyB1tC,EAAS,GAAM,EAC1D,EACA7D,EAAU7iD,OAAS,EAE7B,CH4HkBq3F,CAAiBx0C,EAAWpwC,IACtC2iC,GAAcA,IACd+hD,GAAY,EAgEhB,MA3DiB,CACb,IAAA3jF,CAAKE,EAAS0I,GACV,OAAOo4E,EAAuBhhF,KAAKE,EAAS0I,EAChD,EACA,cAAAk7E,CAAeviD,GAGX,OAFA+M,EAAU/M,SAAWA,EACrB+M,EAAUs1C,SAAW,KACdpjB,GAAA,CACX,EACA,QAAIjyB,GACA,OAAOomC,GAAsBrmC,EAAUszC,aAAe,EAC1D,EACA,QAAIrzC,CAAKg0C,GACLj0C,EAAUszC,YAAcnN,GAAsB8N,EAClD,EACA,SAAItB,GACA,OAAO3yC,EAAUy1C,YACrB,EACA,SAAI9C,CAAMuB,GACNl0C,EAAUy1C,aAAevB,CAC7B,EACA,YAAI9pD,GACA,OAAOi8C,GAAsBj8C,EACjC,EACAimB,KAAM,KACEuiC,IAEJ5yC,EAAUqQ,QAIV,SAAY+kC,GAAgB,EAEhC9kC,MAAO,IAAMtQ,EAAUsQ,QACvBshC,KAAM,KAEF,GADAgB,GAAa,EACe,SAAxB5yC,EAAUkzC,UACV,OASJ,MAAM,YAAEI,GAAgBtzC,EACxB,GAAIszC,EAAa,CACb,MAAMsB,EAAkB1C,GAAa,IAC9BvhF,EACHwhF,UAAU,IAEd9nF,EAAMqrF,gBAAgBd,EAAgBR,OAAOd,EAnKzC,IAmKoEjpF,MAAOuqF,EAAgBR,OAAOd,GAAajpF,MAnK/G,GAoKR,CACAgrF,GAAY,EAEhBlB,SAAU,IAAMn0C,EAAU8zC,SAC1BryE,OAAQ4zE,EAGhB,CIlMA,MAAMM,GAAoB,CACtB3jF,KAAM,SACNo9E,UAAW,IACXC,QAAS,GACTM,UAAW,IAQTiG,GAAsB,CACxB5jF,KAAM,YACNo4B,SAAU,IAMR9E,GAAO,CACTtzB,KAAM,YACNszB,KAAM,CAAC,IAAM,GAAK,IAAM,GACxB8E,SAAU,IAERyrD,GAAuB,CAACC,GAAY/0C,eAClCA,EAAU7iD,OAAS,EACZ03F,GAEFpf,EAAenwE,IAAIyvF,GACjBA,EAASriF,WAAW,SAxBQ,CACvCzB,KAAM,SACNo9E,UAAW,IACXC,QAAoB,IAsBatuC,EAAU,GAtBnB,EAAIviD,KAAK6+B,KAAK,KAAO,GAC7CsyD,UAAW,IAsBDgG,GAEHrwD,GCzBLywD,GAAe,CAACpvF,EAAK0D,IAEX,WAAR1D,MAKiB,iBAAV0D,IAAsBlM,MAAMs5C,QAAQptC,OAE1B,iBAAVA,IACNghF,GAAQzqF,KAAKyJ,IAAoB,MAAVA,GACvBA,EAAMoJ,WAAW,UChBpBuiF,GAAc,IAAIr4E,IAAI,CAAC,aAAc,WAAY,WAAY,YACnE,SAASs4E,GAAmB53F,GACxB,MAAOV,EAAM0M,GAAShM,EAAE2E,MAAM,GAAI,GAAGnF,MAAM,KAC3C,GAAa,gBAATF,EACA,OAAOU,EACX,MAAO84E,GAAU9sE,EAAMxJ,MAAMw2E,IAAe,GAC5C,IAAKF,EACD,OAAO94E,EACX,MAAMy8D,EAAOzwD,EAAM9K,QAAQ43E,EAAQ,IACnC,IAAI7lD,EAAe0kE,GAAY3vF,IAAI1I,GAAQ,EAAI,EAG/C,OAFIw5E,IAAW9sE,IACXinB,GAAgB,KACb3zB,EAAO,IAAM2zB,EAAewpC,EAAO,GAC9C,CACA,MAAMo7B,GAAgB,oBAChB5kF,GAAS,IACR+5E,GACHE,kBAAoBltF,IAChB,MAAM49D,EAAY59D,EAAEwC,MAAMq1F,IAC1B,OAAOj6B,EAAYA,EAAU7qD,IAAI6kF,IAAoB73F,KAAK,KAAOC,CAAC,GClBpE83F,GAAoB,IACnBre,GAEHzsB,MAAK,GACL+qC,gBAAiB/qC,GACjBgrC,aAAchrC,GACd0pC,KAAM1pC,GACNirC,OAAQjrC,GAERkrC,YAAalrC,GACbmrC,eAAgBnrC,GAChBorC,iBAAkBprC,GAClBqrC,kBAAmBrrC,GACnBsrC,gBAAiBtrC,GACjB/5C,OAAM,GACNslF,aAActlF,IAKZulF,GAAuBlwF,GAAQwvF,GAAkBxvF,GCvBvD,SAAS,GAAkBA,EAAK0D,GAC5B,IAAIysF,EAAmBD,GAAoBlwF,GAI3C,OAHImwF,IAAqBxlF,KACrBwlF,EAAmBzL,IAEhByL,EAAiBvL,kBAClBuL,EAAiBvL,kBAAkBlhF,QACnCR,CACV,CCTA,MAAMktF,GAAqB14F,GAAM,aAAauC,KAAKvC,GCDnD,SAAS24F,GAAO3sF,GACZ,MAAqB,iBAAVA,EACU,IAAVA,EAEQ,OAAVA,EACY,SAAVA,GAA8B,MAAVA,GAAiB0sF,GAAkB1sF,QAD7D,CAGT,CCDA,SAAS4sF,GAAmBxiD,EAAY9tC,GACpC,OAAO8tC,EAAW9tC,IAAQ8tC,EAAoB,SAAKA,CACvD,CCCA,MAAMyiD,GAAqB,CAACxC,EAAWrqF,EAAOsuB,EAAQ8b,EAAa,CAAC,IACxDnB,IACJ,MAAM6jD,EAAkBF,GAAmBxiD,EAAYigD,IAAc,CAAC,EAMhE9hD,EAAQukD,EAAgBvkD,OAAS6B,EAAW7B,OAAS,EAK3D,IAAI,QAAEiZ,EAAU,GAAMpX,EACtBoX,GAAoBs6B,GAAsBvzC,GAC1C,MAAMmO,ECtBd,SAAsB12C,EAAOqqF,EAAW/7D,EAAQ8b,GAC5C,MAAM2iD,EAAqBrB,GAAarB,EAAW/7D,GACnD,IAAIooB,EAEAA,EADA5iD,MAAMs5C,QAAQ9e,GACF,IAAIA,GAGJ,CAAC,KAAMA,GAEvB,MAAM0+D,OAAoCxtF,IAApB4qC,EAAW30B,KAAqB20B,EAAW30B,KAAOzV,EAAM/G,MAC9E,IAAIg0F,EACJ,MAAMC,EAAsB,GAC5B,IAAK,IAAIz6F,EAAI,EAAGA,EAAIikD,EAAU7iD,OAAQpB,IAIb,OAAjBikD,EAAUjkD,KACVikD,EAAUjkD,GAAW,IAANA,EAAUu6F,EAAgBt2C,EAAUjkD,EAAI,IAEvDk6F,GAAOj2C,EAAUjkD,KACjBy6F,EAAoBrlF,KAAKpV,GAGD,iBAAjBikD,EAAUjkD,IACA,SAAjBikD,EAAUjkD,IACO,MAAjBikD,EAAUjkD,KACVw6F,EAA0Bv2C,EAAUjkD,IAG5C,GAAIs6F,GACAG,EAAoBr5F,QACpBo5F,EACA,IAAK,IAAIx6F,EAAI,EAAGA,EAAIy6F,EAAoBr5F,OAAQpB,IAE5CikD,EADcw2C,EAAoBz6F,IACf,GAAkB43F,EAAW4C,GAGxD,OAAOv2C,CACX,CDhB0By2C,CAAantF,EAAOqqF,EAAW/7D,EAAQw+D,GAMnDM,EAAiB12C,EAAU,GAC3B22C,EAAiB32C,EAAUA,EAAU7iD,OAAS,GAC9Cy5F,EAAqB5B,GAAarB,EAAW+C,GAC7CL,EAAqBrB,GAAarB,EAAWgD,IACnD,QAAQC,IAAuBP,EAAoB,6BAA6B1C,WAAmB+C,UAAuBC,OAAoBD,+DAA4EA,8BAA2CC,iCACrQ,IAAI/mF,EAAU,CACVowC,YACAklC,SAAU57E,EAAMssE,cAChBrxC,KAAM,aACH6xD,EACHvkD,OAAQiZ,EACRiH,SAAWz0D,IACPgM,EAAM3H,IAAIrE,GACV84F,EAAgBrkC,UAAYqkC,EAAgBrkC,SAASz0D,EAAE,EAE3Di1C,WAAY,KACRA,IACA6jD,EAAgB7jD,YAAc6jD,EAAgB7jD,YAAY,GAwBlE,GDpER,UAA6B,KAAEoC,EAAM9C,MAAO6Q,EAAM,cAAEm0C,EAAa,gBAAEC,EAAe,iBAAEC,EAAgB,OAAElzC,EAAM,WAAE0tC,EAAU,YAAEnjC,EAAW,KAAErvC,EAAI,QAAE+rC,KAAYpX,IACrJ,QAASjuC,OAAOwQ,KAAKy9B,GAAYv2C,MACrC,CCiDa65F,CAAoBZ,KACrBxmF,EAAU,IACHA,KACAklF,GAAqBnB,EAAW/jF,KAQvCA,EAAQy5B,WACRz5B,EAAQy5B,SAAW+7C,GAAsBx1E,EAAQy5B,WAEjDz5B,EAAQw+C,cACRx+C,EAAQw+C,YAAcg3B,GAAsBx1E,EAAQw+C,eAEnDwoC,IACAP,GACD7Q,KACyB,IAAzB4Q,EAAgBnlF,KAKhB,OE9EZ,UAAgC,UAAE+uC,EAAS,MAAEnO,EAAK,SAAEkgB,EAAQ,WAAExf,IAC1D,MAAMq7B,EAAW,KACb7b,GAAYA,EAAS/R,EAAUA,EAAU7iD,OAAS,IAClDo1C,GAAcA,IAQP,CACH2M,KAAM,EACN0yC,MAAO,EACPvoD,SAAU,EACVimB,KAAO6hB,GAAI,EACX5hB,MAAQ4hB,GAAI,EACZ0f,KAAO1f,GAAI,EACXxgE,KAAOE,IACHA,IACOD,QAAQC,WAEnB6P,OAASywD,GAAI,EACbiiB,SAAWjiB,GAAI,IAGvB,OAAOt/B,EACDs/C,GAAa,CACXnxC,UAAW,CAAC,EAAG,GACf3W,SAAU,EACVwI,QACAU,WAAYq7B,IAEdA,GACV,CF4CmBqpB,CAAuBzR,GACxB,IAAK51E,EAASiiC,MAAO,GACrBjiC,GAKV,GAAItG,EAAM6qF,OACN7qF,EAAM6qF,MAAMjpF,mBAAmBuZ,cAC9Bnb,EAAM6qF,MAAM1/D,WAAWs9B,SAAU,CAClC,MAAMmlC,EAAuBxD,GAA2BpqF,EAAOqqF,EAAW/jF,GAC1E,GAAIsnF,EACA,OAAOA,CACf,CAIA,OAAO/F,GAAavhF,EAAQ,EGhGpC,SAASunF,GAAwB7tF,GAC7B,OAAOikB,QAAQooD,EAAcrsE,IAAUA,EAAMtL,IACjD,CCDA,MAAMo5F,GAAqB95F,GAAM,iBAAiBuC,KAAKvC,GCHvD,SAAS+5F,GAAc9oB,EAAK11B,IACG,IAAvB01B,EAAIj9D,QAAQunC,IACZ01B,EAAIp9D,KAAK0nC,EACjB,CACA,SAASrqB,GAAW+/C,EAAK11B,GACrB,MAAM72B,EAAQusD,EAAIj9D,QAAQunC,GACtB72B,GAAS,GACTusD,EAAIl9D,OAAO2Q,EAAO,EAC1B,CCNA,MAAMs1E,GACF,WAAAxiF,GACIvV,KAAKg4F,cAAgB,EACzB,CACA,GAAAv5F,CAAIkT,GAEA,OADAmmF,GAAc93F,KAAKg4F,cAAermF,GAC3B,IAAMsd,GAAWjvB,KAAKg4F,cAAermF,EAChD,CACA,MAAAsmF,CAAOt7F,EAAG6C,EAAG3C,GACT,MAAMq7F,EAAmBl4F,KAAKg4F,cAAcp6F,OAC5C,GAAKs6F,EAEL,GAAyB,IAArBA,EAIAl4F,KAAKg4F,cAAc,GAAGr7F,EAAG6C,EAAG3C,QAG5B,IAAK,IAAIL,EAAI,EAAGA,EAAI07F,EAAkB17F,IAAK,CAKvC,MAAMmV,EAAU3R,KAAKg4F,cAAcx7F,GACnCmV,GAAWA,EAAQhV,EAAG6C,EAAG3C,EAC7B,CAER,CACA,OAAAs7F,GACI,OAAOn4F,KAAKg4F,cAAcp6F,MAC9B,CACA,KAAA6xC,GACIzvC,KAAKg4F,cAAcp6F,OAAS,CAChC,EC/BJ,MAGMw6F,GAAsB,CACxBzsF,aAASpC,GAOb,MAAM8uF,GASF,WAAA9iF,CAAY7U,EAAM2P,EAAU,CAAC,GApBjB,IAACtG,EAyBT/J,KAAK4lC,QAAU,UAMf5lC,KAAKs4F,UAAY,EAMjBt4F,KAAKu4F,YAAc,EAQnBv4F,KAAKw4F,kBAAmB,EAIxBx4F,KAAKy4F,OAAS,CAAC,EACfz4F,KAAK04F,gBAAkB,CAAC36F,EAAG6L,GAAS,KAChC5J,KAAK8gD,KAAO9gD,KAAK2L,QACjB3L,KAAK2L,QAAU5N,EAEf,MAAM,MAAEyyE,EAAK,UAAEC,GAAc,GAAAN,UACzBnwE,KAAKu4F,cAAgB9nB,IACrBzwE,KAAKs4F,UAAY9nB,EACjBxwE,KAAKu4F,YAAc9nB,EACnB,MAAM7hC,WAAW5uC,KAAK24F,wBAGtB34F,KAAK8gD,OAAS9gD,KAAK2L,SAAW3L,KAAKy4F,OAAO5+B,QAC1C75D,KAAKy4F,OAAO5+B,OAAOo+B,OAAOj4F,KAAK2L,SAG/B3L,KAAKy4F,OAAOG,gBACZ54F,KAAKy4F,OAAOG,eAAeX,OAAOj4F,KAAKq2E,eAGvCzsE,GAAU5J,KAAKy4F,OAAOI,eACtB74F,KAAKy4F,OAAOI,cAAcZ,OAAOj4F,KAAK2L,QAC1C,EAUJ3L,KAAK24F,sBAAwB,IAAM,MAAM/pD,WAAW5uC,KAAK84F,eAUzD94F,KAAK84F,cAAgB,EAAGroB,gBAChBA,IAAczwE,KAAKu4F,cACnBv4F,KAAK8gD,KAAO9gD,KAAK2L,QACb3L,KAAKy4F,OAAOG,gBACZ54F,KAAKy4F,OAAOG,eAAeX,OAAOj4F,KAAKq2E,eAE/C,EAEJr2E,KAAK+4F,aAAc,EACnB/4F,KAAK8gD,KAAO9gD,KAAK2L,QAAUjL,EAC3BV,KAAKw4F,kBArGIzuF,EAqGuB/J,KAAK2L,SApGjCimB,MAAM8V,WAAW39B,KAqGrB/J,KAAK40F,MAAQvkF,EAAQukF,KACzB,CAyCA,QAAAoE,CAASC,GAIL,OAAOj5F,KAAKyR,GAAG,SAAUwnF,EAC7B,CACA,EAAAxnF,CAAGmpB,EAAWhW,GACL5kB,KAAKy4F,OAAO79D,KACb56B,KAAKy4F,OAAO79D,GAAa,IAAIm9D,IAEjC,MAAMmB,EAAcl5F,KAAKy4F,OAAO79D,GAAWn8B,IAAImmB,GAC/C,MAAkB,WAAdgW,EACO,KACHs+D,IAKA,MAAM7vF,MAAK,KACFrJ,KAAKy4F,OAAO5+B,OAAOs+B,WACpBn4F,KAAKsxF,MACT,GACF,EAGH4H,CACX,CACA,cAAAC,GACI,IAAK,MAAMC,KAAiBp5F,KAAKy4F,OAC7Bz4F,KAAKy4F,OAAOW,GAAe3pD,OAEnC,CAMA,MAAA4pD,CAAOC,EAAeC,GAClBv5F,KAAKs5F,cAAgBA,EACrBt5F,KAAKu5F,kBAAoBA,CAC7B,CAgBA,GAAAn3F,CAAIrE,EAAG6L,GAAS,GACPA,GAAW5J,KAAKs5F,cAIjBt5F,KAAKs5F,cAAcv7F,EAAGiC,KAAK04F,iBAH3B14F,KAAK04F,gBAAgB36F,EAAG6L,EAKhC,CACA,eAAAwrF,CAAgBt0C,EAAMn1C,EAAS6kE,GAC3BxwE,KAAKoC,IAAIuJ,GACT3L,KAAK8gD,KAAOA,EACZ9gD,KAAKs4F,UAAY9nB,CACrB,CAKA,IAAAgpB,CAAKz7F,GACDiC,KAAK04F,gBAAgB36F,GACrBiC,KAAK8gD,KAAO/iD,EACZiC,KAAKsxF,OACDtxF,KAAKu5F,mBACLv5F,KAAKu5F,mBACb,CAQA,GAAAv2F,GAII,OAHIo1F,GAAoBzsF,SACpBysF,GAAoBzsF,QAAQiG,KAAK5R,MAE9BA,KAAK2L,OAChB,CAIA,WAAA8tF,GACI,OAAOz5F,KAAK8gD,IAChB,CAQA,WAAAu1B,GAEI,OAAOr2E,KAAKw4F,iBAEJlL,GAAkB5lD,WAAW1nC,KAAK2L,SAC9B+7B,WAAW1nC,KAAK8gD,MAAO9gD,KAAKs4F,WAClC,CACV,CAaA,KAAA13E,CAAM84E,GAEF,OADA15F,KAAKsxF,OACE,IAAIjgF,SAASC,IAChBtR,KAAK+4F,aAAc,EACnB/4F,KAAK0/C,UAAYg6C,EAAepoF,GAC5BtR,KAAKy4F,OAAOkB,gBACZ35F,KAAKy4F,OAAOkB,eAAe1B,QAC/B,IACD7mF,MAAK,KACApR,KAAKy4F,OAAOmB,mBACZ55F,KAAKy4F,OAAOmB,kBAAkB3B,SAElCj4F,KAAK65F,gBAAgB,GAE7B,CAMA,IAAAvI,GACQtxF,KAAK0/C,YACL1/C,KAAK0/C,UAAU4xC,OACXtxF,KAAKy4F,OAAOqB,iBACZ95F,KAAKy4F,OAAOqB,gBAAgB7B,UAGpCj4F,KAAK65F,gBACT,CAMA,WAAAE,GACI,QAAS/5F,KAAK0/C,SAClB,CACA,cAAAm6C,UACW75F,KAAK0/C,SAChB,CAUA,OAAAs6C,GACIh6F,KAAKm5F,iBACLn5F,KAAKsxF,OACDtxF,KAAKu5F,mBACLv5F,KAAKu5F,mBAEb,EAEJ,SAASU,GAAYv5F,EAAM2P,GACvB,OAAO,IAAIgoF,GAAY33F,EAAM2P,EACjC,CC3UA,MAAM6pF,GAAiBn8F,GAAO2T,GAASA,EAAKpR,KAAKvC,GCK3Co8F,GAAsB,CAACtjB,EAAQ1U,EAAIiV,EAASD,EAASG,GAAID,ECLlD,CACT/2E,KAAOvC,GAAY,SAANA,EACbkC,MAAQlC,GAAMA,IDOZq8F,GAA0Br8F,GAAMo8F,GAAoB5Q,KAAK2Q,GAAcn8F,IEJvEs8F,GAAa,IAAIF,GAAqBpvC,GAAOggC,ICKnD,SAASuP,GAAehmB,EAAejuE,EAAK0D,GACpCuqE,EAAcimB,SAASl0F,GACvBiuE,EAAckmB,SAASn0F,GAAKjE,IAAI2H,GAGhCuqE,EAAcmmB,SAASp0F,EAAK4zF,GAAYlwF,GAEhD,CACA,SAAS2wF,GAAUpmB,EAAekK,GAC9B,MAAMsB,EAAW2F,GAAenR,EAAekK,GAC/C,IAAI,cAAEuB,EAAgB,CAAC,EAAC,WAAE5rC,EAAa,CAAC,KAAM9b,GAAWynD,EAAWxL,EAAcqmB,qBAAqB7a,GAAU,GAAS,CAAC,EAC3HznD,EAAS,IAAKA,KAAW0nD,GACzB,IAAK,MAAM15E,KAAOgyB,EAAQ,CAEtBiiE,GAAehmB,EAAejuE,EADhB04E,GAA6B1mD,EAAOhyB,IAEtD,CACJ,CAuEA,SAASu0F,GAAwBv0F,EAAK8tC,GAClC,IAAKA,EACD,OAEJ,OADwBA,EAAW9tC,IAAQ8tC,EAAoB,SAAKA,GAC7C30B,IAC3B,CC5FA,SAASq7E,IAAqB,cAAEC,EAAa,eAAEC,GAAkB10F,GAC7D,MAAM20F,EAAcF,EAAcx0F,eAAeD,KAAgC,IAAxB00F,EAAe10F,GAExE,OADA00F,EAAe10F,IAAO,EACf20F,CACX,CACA,SAASC,GAAc3mB,EAAekK,GAAY,MAAElsC,EAAQ,EAAC,mBAAE4oD,EAAkB,KAAExpF,GAAS,CAAC,GACzF,IAAI,WAAEyiC,EAAamgC,EAAcihB,uBAAsB,cAAExV,KAAkB1nD,GAAWi8C,EAAcqmB,qBAAqBnc,GACzH,MAAM2c,EAAa7mB,EAAckmB,SAAS,cACtCU,IACA/mD,EAAa+mD,GACjB,MAAMloC,EAAa,GACbooC,EAAqB1pF,GACvB4iE,EAAcS,gBACdT,EAAcS,eAAe9J,WAAWv5D,GAC5C,IAAK,MAAMrL,KAAOgyB,EAAQ,CACtB,MAAMtuB,EAAQuqE,EAAckmB,SAASn0F,GAC/B25E,EAAc3nD,EAAOhyB,GAC3B,IAAK0D,QACeR,IAAhBy2E,GACCob,GACGP,GAAqBO,EAAoB/0F,GAC7C,SAEJ,MAAMwwF,EAAkB,CACpBvkD,QACAiZ,QAAS,KACNpX,GAMP,GAAIxsC,OAAOmtE,0BAA4B/qE,EAAMgvF,YAAa,CACtD,MAAMsC,EAAW/mB,EAAcp/C,WAAW0wD,IACtCyV,IACAxE,EAAgBtrC,QAAU5jD,OAAOmtE,wBAAwBumB,EAAUh1F,EAAK0D,EAAO,OAC/E8sF,EAAgBhC,WAAY,EAEpC,CACA9qF,EAAM6W,MAAMg2E,GAAmBvwF,EAAK0D,EAAOi2E,EAAa1L,EAAcgnB,oBAAsBplB,EAAenwE,IAAIM,GACzG,CAAEqL,MAAM,GACRmlF,IACN,MAAMn3C,EAAY31C,EAAM21C,UACpBk4C,GAAwBuD,KACxBA,EAAW18F,IAAI4H,GACfq5C,EAAUtuC,MAAK,IAAM+pF,EAAW3uF,OAAOnG,MAE3C2sD,EAAWphD,KAAK8tC,EACpB,CAMA,OALIqgC,GACA1uE,QAAQE,IAAIyhD,GAAY5hD,MAAK,KACzB2uE,GAAiB2a,GAAUpmB,EAAeyL,EAAc,IAGzD/sB,CACX,CCjEA,SAASuoC,GAAejnB,EAAeknB,EAASnrF,EAAU,CAAC,GACvD,MAAMyvE,EAAW2F,GAAenR,EAAeknB,EAASnrF,EAAQ40B,QAChE,IAAI,WAAEkP,EAAamgC,EAAcihB,wBAA0B,CAAC,GAAMzV,GAAY,CAAC,EAC3EzvE,EAAQ6qF,qBACR/mD,EAAa9jC,EAAQ6qF,oBAMzB,MAAMO,EAAe3b,EACf,IAAMzuE,QAAQE,IAAI0pF,GAAc3mB,EAAewL,EAAUzvE,IACzD,IAAMgB,QAAQC,UAKdoqF,EAAqBpnB,EAAcqnB,iBAAmBrnB,EAAcqnB,gBAAgBhvD,KACpF,CAACivD,EAAe,KACd,MAAM,cAAEtE,EAAgB,EAAC,gBAAEC,EAAe,iBAAEC,GAAsBrjD,EAClE,OAkBZ,SAAyBmgC,EAAeknB,EAASlE,EAAgB,EAAGC,EAAkB,EAAGC,EAAmB,EAAGnnF,GAC3G,MAAM2iD,EAAa,GACb6oC,GAAsBvnB,EAAcqnB,gBAAgBhvD,KAAO,GAAK4qD,EAChEuE,EAA+C,IAArBtE,EAC1B,CAACh7F,EAAI,IAAMA,EAAI+6F,EACf,CAAC/6F,EAAI,IAAMq/F,EAAqBr/F,EAAI+6F,EAU1C,OATA15F,MAAM2hB,KAAK80D,EAAcqnB,iBACpBrnE,KAAKynE,IACL/3F,SAAQ,CAACmqC,EAAO3xC,KACjB2xC,EAAM8pD,OAAO,iBAAkBuD,GAC/BxoC,EAAWphD,KAAK2pF,GAAeptD,EAAOqtD,EAAS,IACxCnrF,EACHiiC,MAAOglD,EAAgBwE,EAAwBt/F,KAChD4U,MAAK,IAAM+8B,EAAM8pD,OAAO,oBAAqBuD,KAAU,IAEvDnqF,QAAQE,IAAIyhD,EACvB,CAlCmBgpC,CAAgB1nB,EAAeknB,EAASlE,EAAgBsE,EAAcrE,EAAiBC,EAAkBnnF,EAAQ,EAE1H,IAAMgB,QAAQC,WAKd,KAAE8jC,GAASjB,EACjB,GAAIiB,EAAM,CACN,MAAOH,EAAO0kB,GAAiB,mBAATvkB,EAChB,CAACqmD,EAAcC,GACf,CAACA,EAAoBD,GAC3B,OAAOxmD,IAAQ7jC,MAAK,IAAMuoD,KAC9B,CAEI,OAAOtoD,QAAQE,IAAI,CAACkqF,IAAgBC,EAAmBrrF,EAAQiiC,QAEvE,CAkBA,SAASypD,GAAgBp/F,EAAG6C,GACxB,OAAO7C,EAAEs/F,iBAAiBz8F,EAC9B,CCpDA,MAAM08F,GAAuB,IAAI3pB,GAAsBvjB,UACjDmtC,GAAoB5pB,EAAqB30E,OAC/C,SAASw+F,GAAY9nB,GACjB,OAAQthB,GAAe3hD,QAAQE,IAAIyhD,EAAWliD,KAAI,EAAG4uC,YAAWrvC,aCPpE,SAA8BikE,EAAekK,EAAYnuE,EAAU,CAAC,GAEhE,IAAIqvC,EACJ,GAFA40B,EAAc2jB,OAAO,iBAAkBzZ,GAEnC3gF,MAAMs5C,QAAQqnC,GAAa,CAC3B,MAAMxrB,EAAawrB,EAAW1tE,KAAK0qF,GAAYD,GAAejnB,EAAeknB,EAASnrF,KACtFqvC,EAAYruC,QAAQE,IAAIyhD,EAC5B,MACK,GAA0B,iBAAfwrB,EACZ9+B,EAAY67C,GAAejnB,EAAekK,EAAYnuE,OAErD,CACD,MAAMgsF,EAA2C,mBAAf7d,EAC5BiH,GAAenR,EAAekK,EAAYnuE,EAAQ40B,QAClDu5C,EACN9+B,EAAYruC,QAAQE,IAAI0pF,GAAc3mB,EAAe+nB,EAAoBhsF,GAC7E,CACA,OAAOqvC,EAAUtuC,MAAK,IAAMkjE,EAAc2jB,OAAO,oBAAqBzZ,IAC1E,CDVkF8d,CAAqBhoB,EAAe50B,EAAWrvC,KACjI,CACA,SAASksF,GAAqBjoB,GAC1B,IAAI1/B,EAAUwnD,GAAY9nB,GAC1B,MAAMjpE,EAoSC,CACHupC,QAAS4nD,IAAgB,GACzBC,YAAaD,KACbjoD,WAAYioD,KACZhoD,SAAUgoD,KACVE,UAAWF,KACXG,WAAYH,KACZ3nD,KAAM2nD,MA1SV,IAAIjtD,GAAkB,EAKtB,MAAMqtD,EAA0B,CAACjsB,EAAK6N,KAClC,MAAMsB,EAAW2F,GAAenR,EAAekK,GAC/C,GAAIsB,EAAU,CACV,MAAM,WAAE3rC,EAAU,cAAE4rC,KAAkB1nD,GAAWynD,EACjDnP,EAAM,IAAKA,KAAQt4C,KAAW0nD,EAClC,CACA,OAAOpP,CAAG,EAmBd,SAASqE,EAAe3kE,EAASwsF,GAC7B,MAAMz0F,EAAQksE,EAAcp/C,WACtBvD,EAAU2iD,EAAcwoB,mBAAkB,IAAS,CAAC,EAKpD9pC,EAAa,GAKb+pC,EAAc,IAAI1/E,IAMxB,IAAI2/E,EAAkB,CAAC,EAKnBC,EAAsBruC,IAO1B,IAAK,IAAIpyD,EAAI,EAAGA,EAAI2/F,GAAmB3/F,IAAK,CACxC,MAAMkV,EAAOwqF,GAAqB1/F,GAC5B0gG,EAAY7xF,EAAMqG,GAClBojD,OAAuBvrD,IAAhBnB,EAAMsJ,GAAsBtJ,EAAMsJ,GAAQigB,EAAQjgB,GACzDyrF,EAAgB9qB,EAAevd,GAK/BsoC,EAAc1rF,IAASmrF,EAAoBK,EAAU9sC,SAAW,MAClD,IAAhBgtC,IACAH,EAAsBzgG,GAO1B,IAAI6gG,EAAcvoC,IAASnjC,EAAQjgB,IAASojD,IAAS1sD,EAAMsJ,IAASyrF,EAepE,GAXIE,GACA9tD,GACA+kC,EAAcgpB,yBACdD,GAAc,GAMlBH,EAAUpC,cAAgB,IAAKkC,IAI7BE,EAAU9sC,UAA4B,OAAhBgtC,IAElBtoC,IAASooC,EAAUK,UAErBjrB,EAAoBxd,IACJ,kBAATA,EACP,SAOJ,MAAM0oC,EAAmBC,GAAuBP,EAAUK,SAAUzoC,GACpE,IAAI4oC,EAAoBF,GAEnB9rF,IAASmrF,GACNK,EAAU9sC,WACTitC,GACDF,GAEH3gG,EAAIygG,GAAuBE,EAKhC,MAAMQ,EAAiB9/F,MAAMs5C,QAAQ2d,GAAQA,EAAO,CAACA,GAKrD,IAAI8oC,EAAiBD,EAAe1sF,OAAO2rF,EAAyB,CAAC,IACjD,IAAhBQ,IACAQ,EAAiB,CAAC,GAUtB,MAAM,mBAAEC,EAAqB,CAAC,GAAMX,EAC9BY,EAAU,IACTD,KACAD,GAEDG,EAAiB13F,IACnBq3F,GAAoB,EACpBX,EAAYt/E,OAAOpX,GACnB62F,EAAUnC,eAAe10F,IAAO,CAAI,EAExC,IAAK,MAAMA,KAAOy3F,EAAS,CACvB,MAAM3sF,EAAOysF,EAAev3F,GACtBy6C,EAAO+8C,EAAmBx3F,GAE5B22F,EAAgB12F,eAAeD,KAK/B8K,IAAS2vC,EAKL69B,GAAkBxtE,IAASwtE,GAAkB79B,IACxCxzB,GAAenc,EAAM2vC,IAAS08C,EAC/BO,EAAc13F,GAOd62F,EAAUpC,cAAcz0F,IAAO,OAGrBkD,IAAT4H,EAEL4sF,EAAc13F,GAId02F,EAAYt+F,IAAI4H,QAGNkD,IAAT4H,GAAsB4rF,EAAYh3F,IAAIM,GAK3C03F,EAAc13F,GAOd62F,EAAUpC,cAAcz0F,IAAO,EAEvC,CAKA62F,EAAUK,SAAWzoC,EACrBooC,EAAUW,mBAAqBD,EAI3BV,EAAU9sC,WACV4sC,EAAkB,IAAKA,KAAoBY,IAE3CruD,GAAmB+kC,EAAcK,wBACjC+oB,GAAoB,GAOpBA,IAAsBL,GACtBrqC,EAAWphD,QAAQ+rF,EAAe7sF,KAAK4uC,IAAc,CACjDA,UAAWA,EACXrvC,QAAS,CAAEqB,UAASrB,OAGhC,CAMA,GAAI0sF,EAAYpwD,KAAM,CAClB,MAAMqxD,EAAoB,CAAC,EAC3BjB,EAAY/4F,SAASqC,IACjB,MAAM43F,EAAiB3pB,EAAc4pB,cAAc73F,QAC5BkD,IAAnB00F,IACAD,EAAkB33F,GAAO43F,EAC7B,IAEJjrC,EAAWphD,KAAK,CAAE8tC,UAAWs+C,GACjC,CACA,IAAIG,EAAgBnwE,QAAQglC,EAAWp1D,QAOvC,OANI2xC,IACkB,IAAlBnnC,EAAMolC,UACL8mC,EAAcgpB,yBACfa,GAAgB,GAEpB5uD,GAAkB,EACX4uD,EAAgBvpD,EAAQoe,GAAc3hD,QAAQC,SACzD,CAkBA,MAAO,CACH0jE,iBACA2M,UAhBJ,SAAmBjwE,EAAM0+C,EAAU//C,GAC/B,IAAIw8D,EAEJ,GAAIxhE,EAAMqG,GAAM0+C,WAAaA,EACzB,OAAO/+C,QAAQC,UAEsB,QAAxCu7D,EAAKyH,EAAcqnB,uBAAoC,IAAP9uB,GAAyBA,EAAG7oE,SAASmqC,IAAY,IAAI0+B,EAAI,OAAuC,QAA/BA,EAAK1+B,EAAM4mC,sBAAmC,IAAPlI,OAAgB,EAASA,EAAG8U,UAAUjwE,EAAM0+C,EAAS,IAC9M/kD,EAAMqG,GAAM0+C,SAAWA,EACvB,MAAM4C,EAAagiB,EAAe3kE,EAASqB,GAC3C,IAAK,MAAMrL,KAAOgF,EACdA,EAAMhF,GAAKy0F,cAAgB,CAAC,EAEhC,OAAO9nC,CACX,EAIIorC,mBA5PJ,SAA4BC,GACxBzpD,EAAUypD,EAAa/pB,EAC3B,EA2PIrJ,SAAU,IAAM5/D,EAExB,CACA,SAASoyF,GAAuB38C,EAAM3vC,GAClC,MAAoB,iBAATA,EACAA,IAAS2vC,IAEXjjD,MAAMs5C,QAAQhmC,KACXmc,GAAenc,EAAM2vC,EAGrC,CACA,SAAS07C,GAAgBpsC,GAAW,GAChC,MAAO,CACHA,WACA0qC,cAAe,CAAC,EAChBC,eAAgB,CAAC,EACjB8C,mBAAoB,CAAC,EAE7B,CE/SA,IAAI/nF,GAAK,ECCT,MAAMk9C,GAAa,CACftT,UAAW,CACP8hC,QCDR,cAA+BA,GAM3B,WAAAjsE,CAAY/M,GACRw6E,MAAMx6E,GACNA,EAAKusE,iBAAmBvsE,EAAKusE,eAAiBwnB,GAAqB/zF,GACvE,CACA,mCAAA81F,GACI,MAAM,QAAE1pD,GAAY50C,KAAKwI,KAAK0sB,WAC9Bl1B,KAAKs1E,UACDhD,EAAoB19B,KACpB50C,KAAKs1E,QAAU1gC,EAAQ2pD,UAAUv+F,KAAKwI,MAE9C,CAIA,KAAA6sE,GACIr1E,KAAKs+F,qCACT,CACA,MAAA1pB,GACI,MAAM,QAAEhgC,GAAY50C,KAAKwI,KAAK0sB,YACtB0f,QAAS4pD,GAAgBx+F,KAAKwI,KAAKN,WAAa,CAAC,EACrD0sC,IAAY4pD,GACZx+F,KAAKs+F,qCAEb,CACA,OAAAhpB,GAAY,ID3BZzgC,KAAM,CACF2sC,QDLR,cAAmCA,GAC/B,WAAAjsE,GACIytE,SAASzjF,WACTS,KAAK8V,GAAKA,IACd,CACA,MAAA8+D,GACI,IAAK50E,KAAKwI,KAAKgsE,gBACX,OACJ,MAAM,UAAE9nC,EAAS,eAAEe,EAAc,OAAExI,GAAWjlC,KAAKwI,KAAKgsE,iBAChD9nC,UAAW+xD,GAAkBz+F,KAAKwI,KAAKk2F,qBAAuB,CAAC,EACvE,IAAK1+F,KAAKwI,KAAKusE,gBAAkBroC,IAAc+xD,EAC3C,OAEJ,MAAME,EAAgB3+F,KAAKwI,KAAKusE,eAAe4M,UAAU,QAASj1C,EAAW,CAAEzH,OAAQA,QAAuCA,EAASjlC,KAAKwI,KAAK0sB,WAAW+P,SACxJwI,IAAmBf,GACnBiyD,EAAcvtF,MAAK,IAAMq8B,EAAeztC,KAAK8V,KAErD,CACA,KAAAu/D,GACI,MAAM,SAAE1kD,GAAa3wB,KAAKwI,KAAKgsE,iBAAmB,CAAC,EAC/C7jD,IACA3wB,KAAKs1E,QAAU3kD,EAAS3wB,KAAK8V,IAErC,CACA,OAAAw/D,GAAY,KG3BVjtB,GAAW,CAAC1rD,EAAG6C,IAAMtB,KAAKC,IAAIxB,EAAI6C,GCWxC,MAAMo/F,GACF,WAAArpF,CAAYgV,EAAOs0E,GAAU,mBAAE/sB,GAAuB,CAAC,GA0DnD,GAtDA9xE,KAAKgkF,WAAa,KAIlBhkF,KAAK8+F,cAAgB,KAIrB9+F,KAAK++F,kBAAoB,KAIzB/+F,KAAK6+F,SAAW,CAAC,EACjB7+F,KAAKg/F,YAAc,KACf,IAAMh/F,KAAK8+F,gBAAiB9+F,KAAK++F,kBAC7B,OACJ,MAAM/lD,EAAOimD,GAAWj/F,KAAK++F,kBAAmB/+F,KAAKkrB,SAC/Cg0E,EAAmC,OAApBl/F,KAAKgkF,WAIpBmb,EDpClB,SAAoBxiG,EAAG6C,GAEnB,MAAM4/F,EAAS/2C,GAAS1rD,EAAEkD,EAAGL,EAAEK,GACzBw/F,EAASh3C,GAAS1rD,EAAEQ,EAAGqC,EAAErC,GAC/B,OAAOe,KAAK6+B,KAAKqiE,GAAU,EAAIC,GAAU,EAC7C,CC+B4CC,CAAWtmD,EAAKvR,OAAQ,CAAE5nC,EAAG,EAAG1C,EAAG,KAAQ,EAC3E,IAAK+hG,IAAiBC,EAClB,OACJ,MAAM,MAAEh7D,GAAU6U,GACZ,UAAEy3B,GAAc,GAAAN,UACtBnwE,KAAKkrB,QAAQtZ,KAAK,IAAKuyB,EAAOssC,cAC9B,MAAM,QAAE1c,EAAO,OAAEwrC,GAAWv/F,KAAK6+F,SAC5BK,IACDnrC,GAAWA,EAAQ/zD,KAAK8+F,cAAe9lD,GACvCh5C,KAAKgkF,WAAahkF,KAAK8+F,eAE3BS,GAAUA,EAAOv/F,KAAK8+F,cAAe9lD,EAAK,EAE9Ch5C,KAAKw/F,kBAAoB,CAACj1E,EAAOyuB,KAC7Bh5C,KAAK8+F,cAAgBv0E,EACrBvqB,KAAK++F,kBAAoBU,GAAezmD,EAAMh5C,KAAK8xE,oBAEnD,MAAM8C,OAAO50E,KAAKg/F,aAAa,EAAK,EAExCh/F,KAAK0/F,gBAAkB,CAACn1E,EAAOyuB,KAE3B,GADAh5C,KAAKsmD,OACCtmD,KAAK8+F,gBAAiB9+F,KAAK++F,kBAC7B,OACJ,MAAM,MAAEY,EAAK,aAAEC,GAAiB5/F,KAAK6+F,SAC/BgB,EAAUZ,GAA0B,kBAAf10E,EAAM7Y,KAC3B1R,KAAK++F,kBACLU,GAAezmD,EAAMh5C,KAAK8xE,oBAAqB9xE,KAAKkrB,SACtDlrB,KAAKgkF,YAAc2b,GACnBA,EAAMp1E,EAAOs1E,GAEjBD,GAAgBA,EAAar1E,EAAOs1E,EAAQ,GAG3Cxf,GAAiB91D,GAClB,OACJvqB,KAAK6+F,SAAWA,EAChB7+F,KAAK8xE,mBAAqBA,EAC1B,MACMguB,EAAcL,GADPjf,GAAiBj2D,GACWvqB,KAAK8xE,qBACxC,MAAE3tC,GAAU27D,GACZ,UAAErvB,GAAc,GAAAN,UACtBnwE,KAAKkrB,QAAU,CAAC,IAAKiZ,EAAOssC,cAC5B,MAAM,eAAEsvB,GAAmBlB,EAC3BkB,GACIA,EAAex1E,EAAO00E,GAAWa,EAAa9/F,KAAKkrB,UACvDlrB,KAAKggG,gBAAkBtkC,GAAKilB,GAAgBh5E,OAAQ,cAAe3H,KAAKw/F,mBAAoB7e,GAAgBh5E,OAAQ,YAAa3H,KAAK0/F,iBAAkB/e,GAAgBh5E,OAAQ,gBAAiB3H,KAAK0/F,iBAC1M,CACA,cAAAO,CAAepB,GACX7+F,KAAK6+F,SAAWA,CACpB,CACA,GAAAv4C,GACItmD,KAAKggG,iBAAmBhgG,KAAKggG,mBAC7B,SAAYhgG,KAAKg/F,YACrB,EAEJ,SAASS,GAAezmD,EAAM84B,GAC1B,OAAOA,EAAqB,CAAE3tC,MAAO2tC,EAAmB94B,EAAK7U,QAAW6U,CAC5E,CACA,SAASknD,GAAcvjG,EAAG6C,GACtB,MAAO,CAAEK,EAAGlD,EAAEkD,EAAIL,EAAEK,EAAG1C,EAAGR,EAAEQ,EAAIqC,EAAErC,EACtC,CACA,SAAS8hG,IAAW,MAAE96D,GAASjZ,GAC3B,MAAO,CACHiZ,QACAqsC,MAAO0vB,GAAc/7D,EAAOg8D,GAAgBj1E,IAC5Cuc,OAAQy4D,GAAc/7D,EAAOi8D,GAAiBl1E,IAC9Cy6D,SAAU,GAAYz6D,EAAS,IAEvC,CACA,SAASk1E,GAAiBl1E,GACtB,OAAOA,EAAQ,EACnB,CACA,SAASi1E,GAAgBj1E,GACrB,OAAOA,EAAQA,EAAQttB,OAAS,EACpC,CACA,SAAS,GAAYstB,EAASotE,GAC1B,GAAIptE,EAAQttB,OAAS,EACjB,MAAO,CAAEiC,EAAG,EAAG1C,EAAG,GAEtB,IAAIX,EAAI0uB,EAAQttB,OAAS,EACrByiG,EAAmB,KACvB,MAAMC,EAAYH,GAAgBj1E,GAClC,KAAO1uB,GAAK,IACR6jG,EAAmBn1E,EAAQ1uB,KACvB8jG,EAAU7vB,UAAY4vB,EAAiB5vB,UACvCoV,GAAsByS,MAG1B97F,IAEJ,IAAK6jG,EACD,MAAO,CAAExgG,EAAG,EAAG1C,EAAG,GAEtB,MAAMwiD,EAAOomC,GAAsBua,EAAU7vB,UAAY4vB,EAAiB5vB,WAC1E,GAAa,IAAT9wB,EACA,MAAO,CAAE9/C,EAAG,EAAG1C,EAAG,GAEtB,MAAMuhF,EAAkB,CACpB7+E,GAAIygG,EAAUzgG,EAAIwgG,EAAiBxgG,GAAK8/C,EACxCxiD,GAAImjG,EAAUnjG,EAAIkjG,EAAiBljG,GAAKwiD,GAQ5C,OANI++B,EAAgB7+E,IAAM+uD,MACtB8vB,EAAgB7+E,EAAI,GAEpB6+E,EAAgBvhF,IAAMyxD,MACtB8vB,EAAgBvhF,EAAI,GAEjBuhF,CACX,CC/IA,SAAS6hB,GAAWl6D,GAChB,OAAOA,EAAKrS,IAAMqS,EAAKvjC,GAC3B,CACA,SAAS09F,GAAOz2F,EAAOsuB,EAAS,EAAGooE,EAAc,KAC7C,OAAOviG,KAAKC,IAAI4L,EAAQsuB,IAAWooE,CACvC,CACA,SAASC,GAAclwB,EAAOtI,EAAQ7vC,EAAQ1F,EAAS,IACnD69C,EAAM79C,OAASA,EACf69C,EAAMmwB,YAAc9hB,GAAI3W,EAAOplE,IAAKolE,EAAOl0C,IAAKw8C,EAAM79C,QACtD69C,EAAM39B,MAAQ0tD,GAAWloE,GAAUkoE,GAAWr4B,IAC1Cs4B,GAAOhwB,EAAM39B,MAAO,EAAG,OAAWjhB,MAAM4+C,EAAM39B,UAC9C29B,EAAM39B,MAAQ,GAClB29B,EAAMowB,UACF/hB,GAAIxmD,EAAOv1B,IAAKu1B,EAAOrE,IAAKw8C,EAAM79C,QAAU69C,EAAMmwB,aAClDH,GAAOhwB,EAAMowB,YAAchvE,MAAM4+C,EAAMowB,cACvCpwB,EAAMowB,UAAY,EAC1B,CACA,SAASC,GAAarwB,EAAOtI,EAAQ7vC,EAAQ1F,GACzC+tE,GAAclwB,EAAM3wE,EAAGqoE,EAAOroE,EAAGw4B,EAAOx4B,EAAG8yB,EAASA,EAAO4zB,aAAUh9C,GACrEm3F,GAAclwB,EAAMrzE,EAAG+qE,EAAO/qE,EAAGk7B,EAAOl7B,EAAGw1B,EAASA,EAAO+R,aAAUn7B,EACzE,CACA,SAASu3F,GAAiBzoE,EAAQmrC,EAAU9qC,GACxCL,EAAOv1B,IAAM41B,EAAO51B,IAAM0gE,EAAS1gE,IACnCu1B,EAAOrE,IAAMqE,EAAOv1B,IAAMy9F,GAAW/8B,EACzC,CAKA,SAASu9B,GAAyB1oE,EAAQ+6C,EAAQ16C,GAC9CL,EAAOv1B,IAAMswE,EAAOtwE,IAAM41B,EAAO51B,IACjCu1B,EAAOrE,IAAMqE,EAAOv1B,IAAMy9F,GAAWntB,EACzC,CACA,SAAS4tB,GAAqB3oE,EAAQ+6C,EAAQ16C,GAC1CqoE,GAAyB1oE,EAAOx4B,EAAGuzE,EAAOvzE,EAAG64B,EAAO74B,GACpDkhG,GAAyB1oE,EAAOl7B,EAAGi2E,EAAOj2E,EAAGu7B,EAAOv7B,EACxD,CCZA,SAAS8jG,GAA4B56D,EAAMvjC,EAAKkxB,GAC5C,MAAO,CACHlxB,SAAayG,IAARzG,EAAoBujC,EAAKvjC,IAAMA,OAAMyG,EAC1CyqB,SAAazqB,IAARyqB,EACCqS,EAAKrS,IAAMA,GAAOqS,EAAKrS,IAAMqS,EAAKvjC,UAClCyG,EAEd,CAcA,SAAS23F,GAA4BC,EAAYC,GAC7C,IAAIt+F,EAAMs+F,EAAgBt+F,IAAMq+F,EAAWr+F,IACvCkxB,EAAMotE,EAAgBptE,IAAMmtE,EAAWntE,IAO3C,OAJIotE,EAAgBptE,IAAMotE,EAAgBt+F,IACtCq+F,EAAWntE,IAAMmtE,EAAWr+F,OAC3BA,EAAKkxB,GAAO,CAACA,EAAKlxB,IAEhB,CAAEA,MAAKkxB,MAClB,CAuCA,MAAMqtE,GAAiB,IAgBvB,SAASC,GAAmBC,EAAaC,EAAUC,GAC/C,MAAO,CACH3+F,IAAK4+F,GAAoBH,EAAaC,GACtCxtE,IAAK0tE,GAAoBH,EAAaE,GAE9C,CACA,SAASC,GAAoBH,EAAa71D,GACtC,MAA8B,iBAAhB61D,EACRA,EACAA,EAAY71D,IAAU,CAChC,CC1HA,MAMMi2D,GAAc,KAAM,CACtB9hG,EAP0B,CAC1B+gG,UAAW,EACX/tD,MAAO,EACPlgB,OAAQ,EACRguE,YAAa,GAIbxjG,EAR0B,CAC1ByjG,UAAW,EACX/tD,MAAO,EACPlgB,OAAQ,EACRguE,YAAa,KAOXiB,GAAY,KAAM,CACpB/hG,EAFqB,CAAGiD,IAAK,EAAGkxB,IAAK,GAGrC72B,EAHqB,CAAG2F,IAAK,EAAGkxB,IAAK,KCVzC,SAAS6tE,GAASj9E,GACd,MAAO,CAACA,EAAS,KAAMA,EAAS,KACpC,CCGA,SAASk9E,IAAwB,IAAEl4E,EAAG,KAAEud,EAAI,MAAEw8B,EAAK,OAAED,IACjD,MAAO,CACH7jE,EAAG,CAAEiD,IAAKqkC,EAAMnT,IAAK2vC,GACrBxmE,EAAG,CAAE2F,IAAK8mB,EAAKoK,IAAK0vC,GAE5B,CCVA,SAASq+B,GAAgBlvD,GACrB,YAAiBtpC,IAAVspC,GAAiC,IAAVA,CAClC,CACA,SAASmvD,IAAS,MAAEnvD,EAAK,OAAEO,EAAM,OAAEisB,IAC/B,OAAS0iC,GAAgBlvD,KACpBkvD,GAAgB3uD,KAChB2uD,GAAgB1iC,EACzB,CACA,SAAS0a,GAAat6D,GAClB,OAAQuiF,GAASviF,IACbwiF,GAAexiF,IACfA,EAAOzhB,GACPyhB,EAAOo5D,QACPp5D,EAAOq5D,SACPr5D,EAAOs5D,OACf,CACA,SAASkpB,GAAexiF,GACpB,OAAOyiF,GAAcziF,EAAO5f,IAAMqiG,GAAcziF,EAAOtiB,EAC3D,CACA,SAAS+kG,GAAcn4F,GACnB,OAAOA,GAAmB,OAAVA,CACpB,CCfA,SAASo4F,GAAWh+D,EAAO0O,EAAO8tD,GAG9B,OAAOA,EADQ9tD,GADY1O,EAAQw8D,EAGvC,CAIA,SAASyB,GAAgBj+D,EAAOy8D,EAAW/tD,EAAO8tD,EAAa0B,GAI3D,YAHiB94F,IAAb84F,IACAl+D,EAAQg+D,GAAWh+D,EAAOk+D,EAAU1B,IAEjCwB,GAAWh+D,EAAO0O,EAAO8tD,GAAeC,CACnD,CAIA,SAAS0B,GAAej8D,EAAMu6D,EAAY,EAAG/tD,EAAQ,EAAG8tD,EAAa0B,GACjEh8D,EAAKvjC,IAAMs/F,GAAgB/7D,EAAKvjC,IAAK89F,EAAW/tD,EAAO8tD,EAAa0B,GACpEh8D,EAAKrS,IAAMouE,GAAgB/7D,EAAKrS,IAAK4sE,EAAW/tD,EAAO8tD,EAAa0B,EACxE,CAIA,SAASE,GAAcC,GAAK,EAAE3iG,EAAC,EAAE1C,IAC7BmlG,GAAeE,EAAI3iG,EAAGA,EAAE+gG,UAAW/gG,EAAEgzC,MAAOhzC,EAAE8gG,aAC9C2B,GAAeE,EAAIrlG,EAAGA,EAAEyjG,UAAWzjG,EAAE01C,MAAO11C,EAAEwjG,YAClD,CAuDA,SAAS8B,GAAc5vD,GACnB,OAAI5vC,OAAOy/F,UAAU7vD,IAEdA,EAAQ,iBAAmBA,EAAQ,cAD/BA,EACwD,CACvE,CACA,SAAS8vD,GAAct8D,EAAMgiB,GACzBhiB,EAAKvjC,IAAMujC,EAAKvjC,IAAMulD,EACtBhiB,EAAKrS,IAAMqS,EAAKrS,IAAMq0B,CAC1B,CAMA,SAASu6C,GAAcv8D,EAAMmhC,GAAanhE,EAAKw8F,EAAUC,IACrD,MAAMC,OAAuCx5F,IAA1Bi+D,EAAWs7B,GAA2Bt7B,EAAWs7B,GAAa,GAC3EnC,EAAc9hB,GAAIx4C,EAAKvjC,IAAKujC,EAAKrS,IAAK+uE,GAE5CT,GAAej8D,EAAMmhC,EAAWnhE,GAAMmhE,EAAWq7B,GAAWlC,EAAan5B,EAAW30B,MACxF,CAIA,MAAMmwD,GAAQ,CAAC,IAAK,SAAU,WACxBC,GAAQ,CAAC,IAAK,SAAU,WAI9B,SAASC,GAAaV,EAAKh+B,GACvBo+B,GAAcJ,EAAI3iG,EAAG2kE,EAAWw+B,IAChCJ,GAAcJ,EAAIrlG,EAAGqnE,EAAWy+B,GACpC,CCpHA,SAASE,GAAmBpuF,EAAU0qF,GAClC,OAAOqC,GHeX,SAA4B39D,EAAOs7D,GAC/B,IAAKA,EACD,OAAOt7D,EACX,MAAMi/D,EAAU3D,EAAe,CAAE5/F,EAAGskC,EAAMgD,KAAMhqC,EAAGgnC,EAAMva,MACnDy5E,EAAc5D,EAAe,CAAE5/F,EAAGskC,EAAMw/B,MAAOxmE,EAAGgnC,EAAMu/B,SAC9D,MAAO,CACH95C,IAAKw5E,EAAQjmG,EACbgqC,KAAMi8D,EAAQvjG,EACd6jE,OAAQ2/B,EAAYlmG,EACpBwmE,MAAO0/B,EAAYxjG,EAE3B,CG1BmCyjG,CAAmBvuF,EAAS8xB,wBAAyB44D,GACxF,CCaA,MAAM8D,GAAsB,IAAI38F,QAKhC,MAAM48F,GACF,WAAAjuF,CAAY++D,GAIRt0E,KAAKyjG,eAAiB,KACtBzjG,KAAK0jG,YAAa,EAClB1jG,KAAK2jG,iBAAmB,KACxB3jG,KAAK2gG,YAAc,CAAE9gG,EAAG,EAAG1C,EAAG,GAI9B6C,KAAK4jG,aAAc,EACnB5jG,KAAK6jG,uBAAwB,EAI7B7jG,KAAK8jG,QAAUlC,KACf5hG,KAAKs0E,cAAgBA,CACzB,CACA,KAAA1zD,CAAMmjF,GAAa,aAAEC,GAAe,GAAU,CAAC,GAI3C,MAAM,gBAAExvB,GAAoBx0E,KAAKs0E,cACjC,GAAIE,IAAiD,IAA9BA,EAAgB9nC,UACnC,OAuFJ1sC,KAAKikG,WAAa,IAAIrF,GAAWmF,EAAa,CAC1ChE,eAvFoBx1E,IAGpBvqB,KAAKkkG,gBACDF,GACAhkG,KAAKgkG,aAAaxjB,GAAiBj2D,EAAO,QAAQ4Z,MACtD,EAkFA4vB,QAhFY,CAACxpC,EAAOyuB,KAEpB,MAAM,KAAE+5B,EAAI,gBAAEoxB,EAAe,YAAEC,GAAgBpkG,KAAKk1B,WACpD,GAAI69C,IAASoxB,IACLnkG,KAAKyjG,gBACLzjG,KAAKyjG,iBACTzjG,KAAKyjG,eAAiBtiB,GAAcpO,IAE/B/yE,KAAKyjG,gBACN,OAERzjG,KAAK0jG,YAAa,EAClB1jG,KAAK2jG,iBAAmB,KACxB3jG,KAAKqkG,qBACDrkG,KAAKs0E,cAAcyJ,aACnB/9E,KAAKs0E,cAAcyJ,WAAWumB,oBAAqB,EACnDtkG,KAAKs0E,cAAcyJ,WAAW1lD,YAAS9uB,GAK3Cs4F,IAAUx7D,IACN,IAAI16B,EAAU3L,KAAKukG,mBAAmBl+D,GAAMrjC,OAAS,EAIrD,GAAIo0E,EAAQ92E,KAAKqL,GAAU,CACvB,MAAM,WAAEoyE,GAAe/9E,KAAKs0E,cAC5B,GAAIyJ,GAAcA,EAAW3K,OAAQ,CACjC,MAAMoxB,EAAezmB,EAAW3K,OAAOqxB,UAAUp+D,GACjD,GAAIm+D,EAAc,CAEd74F,EADe40F,GAAWiE,IACN98D,WAAW/7B,GAAW,IAC9C,CACJ,CACJ,CACA3L,KAAK2gG,YAAYt6D,GAAQ16B,CAAO,IAGhCy4F,GACA,MAAMxvB,QAAO,IAAMwvB,EAAY75E,EAAOyuB,KAAO,GAAO,GAExD,MAAM,eAAE+7B,GAAmB/0E,KAAKs0E,cAChCS,GAAkBA,EAAe4M,UAAU,aAAa,EAAK,EAsC7D4d,OApCW,CAACh1E,EAAOyuB,KAEnB,MAAM,gBAAEmrD,EAAe,kBAAEO,EAAiB,gBAAEC,EAAe,OAAEC,GAAY5kG,KAAKk1B,WAE9E,IAAKivE,IAAoBnkG,KAAKyjG,eAC1B,OACJ,MAAM,OAAEh8D,GAAWuR,EAEnB,GAAI0rD,GAA+C,OAA1B1kG,KAAK2jG,iBAM1B,OALA3jG,KAAK2jG,iBA6UrB,SAA6Bl8D,EAAQo9D,EAAgB,IACjD,IAAI/8B,EAAY,KACZ5pE,KAAKC,IAAIspC,EAAOtqC,GAAK0nG,EACrB/8B,EAAY,IAEP5pE,KAAKC,IAAIspC,EAAO5nC,GAAKglG,IAC1B/8B,EAAY,KAEhB,OAAOA,CACX,CAtVwCg9B,CAAoBr9D,QAEd,OAA1BznC,KAAK2jG,kBACLgB,GAAmBA,EAAgB3kG,KAAK2jG,mBAKhD3jG,KAAK+kG,WAAW,IAAK/rD,EAAK7U,MAAOsD,GACjCznC,KAAK+kG,WAAW,IAAK/rD,EAAK7U,MAAOsD,GAOjCznC,KAAKs0E,cAAc1qE,SAKnBg7F,GAAUA,EAAOr6E,EAAOyuB,EAAK,EAO7B4mD,aALiB,CAACr1E,EAAOyuB,IAASh5C,KAAKsxF,KAAK/mE,EAAOyuB,IAMpD,CAAE84B,mBAAoB9xE,KAAKs0E,cAAc0wB,yBAChD,CACA,IAAA1T,CAAK/mE,EAAOyuB,GACR,MAAM0qD,EAAa1jG,KAAK0jG,WAExB,GADA1jG,KAAKmhB,UACAuiF,EACD,OACJ,MAAM,SAAE/d,GAAa3sC,EACrBh5C,KAAK05F,eAAe/T,GACpB,MAAM,UAAEsf,GAAcjlG,KAAKk1B,WACvB+vE,GACA,MAAMrwB,QAAO,IAAMqwB,EAAU16E,EAAOyuB,IAE5C,CACA,MAAA73B,GACInhB,KAAK0jG,YAAa,EAClB,MAAM,WAAE3lB,EAAU,eAAEhJ,GAAmB/0E,KAAKs0E,cACxCyJ,IACAA,EAAWumB,oBAAqB,GAEpCtkG,KAAKikG,YAAcjkG,KAAKikG,WAAW39C,MACnCtmD,KAAKikG,gBAAa16F,EAClB,MAAM,gBAAE46F,GAAoBnkG,KAAKk1B,YAC5BivE,GAAmBnkG,KAAKyjG,iBACzBzjG,KAAKyjG,iBACLzjG,KAAKyjG,eAAiB,MAE1B1uB,GAAkBA,EAAe4M,UAAU,aAAa,EAC5D,CACA,UAAAojB,CAAW1+D,EAAM6+D,EAAQz9D,GACrB,MAAM,KAAEsrC,GAAS/yE,KAAKk1B,WAEtB,IAAKuS,IAAW09D,GAAW9+D,EAAM0sC,EAAM/yE,KAAK2jG,kBACxC,OACJ,MAAMyB,EAAYplG,KAAKukG,mBAAmBl+D,GAC1C,IAAIl1B,EAAOnR,KAAK2gG,YAAYt6D,GAAQoB,EAAOpB,GAEvCrmC,KAAK4jG,aAAe5jG,KAAK4jG,YAAYv9D,KACrCl1B,EPzKZ,SAA0BgzB,GAAO,IAAErhC,EAAG,IAAEkxB,GAAO8vE,GAS3C,YARYv6F,IAARzG,GAAqBqhC,EAAQrhC,EAE7BqhC,EAAQ2/D,EAAUjlB,GAAI/7E,EAAKqhC,EAAO2/D,EAAQhhG,KAAO5E,KAAK81B,IAAImQ,EAAOrhC,QAEpDyG,IAARyqB,GAAqBmQ,EAAQnQ,IAElCmQ,EAAQ2/D,EAAUjlB,GAAI7qD,EAAKmQ,EAAO2/D,EAAQ9vE,KAAO91B,KAAK4E,IAAIqhC,EAAOnQ,IAE9DmQ,CACX,CO+JmBkhE,CAAiBl0F,EAAMnR,KAAK4jG,YAAYv9D,GAAOrmC,KAAK8jG,QAAQz9D,KAEvE++D,EAAUhjG,IAAI+O,EAClB,CACA,kBAAAkzF,GACI,MAAM,gBAAEiB,EAAe,YAAE/D,GAAgBvhG,KAAKk1B,YACxC,OAAEk+C,GAAWpzE,KAAKs0E,cAAcyJ,YAAc,CAAC,EAC/CwnB,EAAkBvlG,KAAK4jG,YACzB0B,GAAmBlzB,EAAYkzB,GAC1BtlG,KAAK4jG,cACN5jG,KAAK4jG,YAAc5jG,KAAKwlG,yBAKxBxlG,KAAK4jG,eADL0B,IAAmBlyB,IP3JnC,SAAiCqxB,GAAW,IAAE76E,EAAG,KAAEud,EAAI,OAAEu8B,EAAM,MAAEC,IAC7D,MAAO,CACH9jE,EAAGohG,GAA4BwD,EAAU5kG,EAAGsnC,EAAMw8B,GAClDxmE,EAAG8jG,GAA4BwD,EAAUtnG,EAAGysB,EAAK85C,GAEzD,COuJmC+hC,CAAwBryB,EAAOqxB,UAAWa,GAMrEtlG,KAAK8jG,QPpGb,SAA4BvC,EAAcF,IAOtC,OANoB,IAAhBE,EACAA,EAAc,GAEO,IAAhBA,IACLA,EAAcF,IAEX,CACHxhG,EAAGyhG,GAAmBC,EAAa,OAAQ,SAC3CpkG,EAAGmkG,GAAmBC,EAAa,MAAO,UAElD,COyFuBmE,CAAmBnE,GAK9BgE,IAAoBvlG,KAAK4jG,aACzBxwB,GACApzE,KAAK4jG,cACJ5jG,KAAK6jG,uBACNhC,IAAUx7D,IACFrmC,KAAKukG,mBAAmBl+D,KACxBrmC,KAAK4jG,YAAYv9D,GP7HrC,SAA+B+sC,EAAQwwB,GACnC,MAAM+B,EAAsB,CAAC,EAO7B,YANwBp8F,IAApBq6F,EAAY9gG,MACZ6iG,EAAoB7iG,IAAM8gG,EAAY9gG,IAAMswE,EAAOtwE,UAE/ByG,IAApBq6F,EAAY5vE,MACZ2xE,EAAoB3xE,IAAM4vE,EAAY5vE,IAAMo/C,EAAOtwE,KAEhD6iG,CACX,COoH6CC,CAAsBxyB,EAAOqxB,UAAUp+D,GAAOrmC,KAAK4jG,YAAYv9D,IAC5F,GAGZ,CACA,qBAAAm/D,GACI,MAAQF,gBAAiB1B,EAAW,yBAAEiC,GAA6B7lG,KAAKk1B,WACxE,IAAK0uE,IAAgBxxB,EAAYwxB,GAC7B,OAAO,EACX,MAAMkC,EAAqBlC,EAAYj4F,SACvC,QAAiC,OAAvBm6F,EAA6B,0GACvC,MAAM,WAAE/nB,GAAe/9E,KAAKs0E,cAE5B,IAAKyJ,IAAeA,EAAW3K,OAC3B,OAAO,EACX,MAAM2yB,ED5Nd,SAAwB37F,EAAS47F,EAAoBl0B,GACjD,MAAMm0B,EAAc9C,GAAmB/4F,EAAS0nE,IAC1C,OAAEvrC,GAAWy/D,EAKnB,OAJIz/D,IACAo8D,GAAcsD,EAAYpmG,EAAG0mC,EAAOkB,OAAO5nC,GAC3C8iG,GAAcsD,EAAY9oG,EAAGopC,EAAOkB,OAAOtqC,IAExC8oG,CACX,CCoN+BC,CAAeJ,EAAoB/nB,EAAW7tD,KAAMlwB,KAAKs0E,cAAc0wB,yBAC9F,IAAImB,EPtKZ,SAAiC1B,EAAWsB,GACxC,MAAO,CACHlmG,EAAGqhG,GAA4BuD,EAAU5kG,EAAGkmG,EAAelmG,GAC3D1C,EAAG+jG,GAA4BuD,EAAUtnG,EAAG4oG,EAAe5oG,GAEnE,COiKkCipG,CAAwBroB,EAAW3K,OAAOqxB,UAAWsB,GAK/E,GAAIF,EAA0B,CAC1B,MAAMQ,EAAkBR,EJ9NpC,UAAiC,EAAEhmG,EAAC,EAAE1C,IAClC,MAAO,CAAEysB,IAAKzsB,EAAE2F,IAAK6gE,MAAO9jE,EAAEm0B,IAAK0vC,OAAQvmE,EAAE62B,IAAKmT,KAAMtnC,EAAEiD,IAC9D,CI4N6DwjG,CAAwBH,IACzEnmG,KAAK6jG,wBAA0BwC,EAC3BA,IACAF,EAAsBrE,GAAwBuE,GAEtD,CACA,OAAOF,CACX,CACA,cAAAzM,CAAe/T,GACX,MAAM,KAAE5S,EAAI,aAAEwzB,EAAY,YAAEhF,EAAW,eAAEiF,EAAc,iBAAEC,EAAgB,oBAAEC,GAAyB1mG,KAAKk1B,WACnG0uE,EAAc5jG,KAAK4jG,aAAe,CAAC,EACnC+C,EAAqB9E,IAAUx7D,IACjC,IAAK8+D,GAAW9+D,EAAM0sC,EAAM/yE,KAAK2jG,kBAC7B,OAEJ,IAAIxvD,EAAcyvD,GAAeA,EAAYv9D,IAAU,CAAC,EACpDogE,IACAtyD,EAAa,CAAErxC,IAAK,EAAGkxB,IAAK,IAOhC,MAAMy8D,EAAkB8Q,EAAc,IAAM,IACtC/Q,EAAgB+Q,EAAc,GAAK,IACnCjR,EAAU,CACZ5+E,KAAM,UACNi0E,SAAU4gB,EAAe5gB,EAASt/C,GAAQ,EAC1CoqD,kBACAD,gBACAD,aAAc,IACdnB,UAAW,EACXC,UAAW,MACRmX,KACAryD,GAKP,OAAOn0C,KAAK4mG,wBAAwBvgE,EAAMiqD,EAAQ,IAGtD,OAAOj/E,QAAQE,IAAIo1F,GAAoBv1F,KAAKs1F,EAChD,CACA,uBAAAE,CAAwBvgE,EAAM8N,GAC1B,MAAMixD,EAAYplG,KAAKukG,mBAAmBl+D,GAC1C,OAAO++D,EAAUxkF,MAAMg2E,GAAmBvwD,EAAM++D,EAAW,EAAGjxD,GAClE,CACA,aAAA+vD,GACIrC,IAAUx7D,GAASrmC,KAAKukG,mBAAmBl+D,GAAMirD,QACrD,CAOA,kBAAAiT,CAAmBl+D,GACf,MAAMwgE,EAAU,QAAUxgE,EAAK9E,cACzBn5B,EAAQpI,KAAKs0E,cAAcp/C,WAC3B4xE,EAAsB1+F,EAAMy+F,GAClC,OAAOC,GAED9mG,KAAKs0E,cAAckmB,SAASn0D,GAAOj+B,EAAMolC,QAAUplC,EAAMolC,QAAQnH,QAAQ98B,IAAc,EACjG,CACA,YAAAy6F,CAAa7/D,GACT09D,IAAUx7D,IACN,MAAM,KAAE0sC,GAAS/yE,KAAKk1B,WAEtB,IAAKiwE,GAAW9+D,EAAM0sC,EAAM/yE,KAAK2jG,kBAC7B,OACJ,MAAM,WAAE5lB,GAAe/9E,KAAKs0E,cACtB8wB,EAAYplG,KAAKukG,mBAAmBl+D,GAC1C,GAAI03C,GAAcA,EAAW3K,OAAQ,CACjC,MAAM,IAAEtwE,EAAG,IAAEkxB,GAAQ+pD,EAAW3K,OAAOqxB,UAAUp+D,GACjD++D,EAAUhjG,IAAI+hC,EAAMkC,GAAQw4C,GAAI/7E,EAAKkxB,EAAK,IAC9C,IAER,CAMA,8BAAA+yE,GACI,IAAK/mG,KAAKs0E,cAAc3oE,QACpB,OACJ,MAAM,KAAEonE,EAAI,gBAAEuyB,GAAoBtlG,KAAKk1B,YACjC,WAAE6oD,GAAe/9E,KAAKs0E,cAC5B,IAAKlC,EAAYkzB,KAAqBvnB,IAAe/9E,KAAK4jG,YACtD,OAKJ5jG,KAAKkkG,gBAKL,MAAM8C,EAAc,CAAEnnG,EAAG,EAAG1C,EAAG,GAC/B0kG,IAAUx7D,IACN,MAAM++D,EAAYplG,KAAKukG,mBAAmBl+D,GAC1C,GAAI++D,EAAW,CACX,MAAM7oB,EAAS6oB,EAAUpiG,MACzBgkG,EAAY3gE,GP5Q5B,SAAoB6hC,EAAQ7vC,GACxB,IAAI1F,EAAS,GACb,MAAMs0E,EAAe1G,GAAWr4B,GAC1Bg/B,EAAe3G,GAAWloE,GAOhC,OANI6uE,EAAeD,EACft0E,EAASg2B,GAAStwB,EAAOv1B,IAAKu1B,EAAOrE,IAAMizE,EAAc/+B,EAAOplE,KAE3DmkG,EAAeC,IACpBv0E,EAASg2B,GAASuf,EAAOplE,IAAKolE,EAAOl0C,IAAMkzE,EAAc7uE,EAAOv1B,MAE7D24D,EAAM,EAAG,EAAG9oC,EACvB,COiQoC,CAAW,CAAE7vB,IAAKy5E,EAAQvoD,IAAKuoD,GAAUv8E,KAAK4jG,YAAYv9D,GAClF,KAKJ,MAAM,kBAAEwzC,GAAsB75E,KAAKs0E,cAAcp/C,WACjDl1B,KAAKs0E,cAAc3oE,QAAQ6a,MAAMg+C,UAAYqV,EACvCA,EAAkB,CAAC,EAAG,IACtB,OACNkE,EAAW7tD,MAAQ6tD,EAAW7tD,KAAKi3E,eACnCppB,EAAWqpB,eACXpnG,KAAKqkG,qBAKLxC,IAAUx7D,IACN,IAAK8+D,GAAW9+D,EAAM0sC,EAAM,MACxB,OAIJ,MAAMqyB,EAAYplG,KAAKukG,mBAAmBl+D,IACpC,IAAEvjC,EAAG,IAAEkxB,GAAQh0B,KAAK4jG,YAAYv9D,GACtC++D,EAAUhjG,IAAIy8E,GAAI/7E,EAAKkxB,EAAKgzE,EAAY3gE,IAAO,GAEvD,CACA,YAAAghE,GACI,IAAKrnG,KAAKs0E,cAAc3oE,QACpB,OACJ43F,GAAoBnhG,IAAIpC,KAAKs0E,cAAet0E,MAC5C,MAIMsnG,EAAsB3mB,GAJZ3gF,KAAKs0E,cAAc3oE,QAIkB,eAAgB4e,IACjE,MAAM,KAAEwoD,EAAI,aAAEiI,GAAe,GAASh7E,KAAKk1B,WAC3C69C,GAAQiI,GAAgBh7E,KAAK4gB,MAAM2J,EAAM,IAEvCg9E,EAAyB,KAC3B,MAAM,gBAAEjC,GAAoBtlG,KAAKk1B,WAC7Bk9C,EAAYkzB,KACZtlG,KAAK4jG,YAAc5jG,KAAKwlG,wBAC5B,GAEE,WAAEznB,GAAe/9E,KAAKs0E,cACtBkzB,EAA4BzpB,EAAW50E,iBAAiB,UAAWo+F,GACrExpB,IAAeA,EAAW3K,SAC1B2K,EAAW7tD,MAAQ6tD,EAAW7tD,KAAKi3E,eACnCppB,EAAWqpB,gBAEfG,IAKA,MAAME,EAAqBtnB,GAAYx4E,OAAQ,UAAU,IAAM3H,KAAK+mG,mCAK9DW,EAA2B3pB,EAAW50E,iBAAiB,aAAa,EAAIqnE,QAAOm3B,uBAC7E3nG,KAAK0jG,YAAciE,IACnB9F,IAAUx7D,IACN,MAAM4zD,EAAcj6F,KAAKukG,mBAAmBl+D,GACvC4zD,IAELj6F,KAAK2gG,YAAYt6D,IAASmqC,EAAMnqC,GAAMu6D,UACtC3G,EAAY73F,IAAI63F,EAAYj3F,MAAQwtE,EAAMnqC,GAAMu6D,WAAU,IAE9D5gG,KAAKs0E,cAAc1qE,SAE1B,IACD,MAAO,KACH69F,IACAH,IACAE,IACAE,GAA4BA,GAA0B,CAE9D,CACA,QAAAxyE,GACI,MAAM9sB,EAAQpI,KAAKs0E,cAAcp/C,YAC3B,KAAE69C,GAAO,EAAK,kBAAE2xB,GAAoB,EAAK,gBAAEP,GAAkB,EAAK,gBAAEmB,GAAkB,EAAK,YAAE/D,EAAcF,GAAc,aAAEkF,GAAe,GAAUn+F,EAC1J,MAAO,IACAA,EACH2qE,OACA2xB,oBACAP,kBACAmB,kBACA/D,cACAgF,eAER,EAEJ,SAASpB,GAAWr9B,EAAWiL,EAAM4wB,GACjC,SAAkB,IAAT5wB,GAAiBA,IAASjL,GACT,OAArB67B,GAA6BA,IAAqB77B,EAC3D,CC/aA,MAAM8/B,GAAgBj2F,GAAY,CAAC4Y,EAAOyuB,KAClCrnC,GACA,MAAMijE,QAAO,IAAMjjE,EAAQ4Y,EAAOyuB,IACtC,ECJJ,MAAM6uD,GAAwB,CAK1BC,wBAAwB,EAKxBC,gBAAgB,GCbpB,SAASC,GAAgBC,EAAQ5hE,GAC7B,OAAIA,EAAKrS,MAAQqS,EAAKvjC,IACX,EACHmlG,GAAU5hE,EAAKrS,IAAMqS,EAAKvjC,KAAQ,GAC9C,CAQA,MAAMolG,GAAsB,CACxBC,QAAS,CAAC5rB,EAAQ/zE,KACd,IAAKA,EAAK6vB,OACN,OAAOkkD,EAKX,GAAsB,iBAAXA,EAAqB,CAC5B,IAAIpa,EAAG7hE,KAAKi8E,GAIR,OAAOA,EAHPA,EAAS70C,WAAW60C,EAK5B,CAOA,MAAO,GAFGyrB,GAAgBzrB,EAAQ/zE,EAAK6vB,OAAOx4B,OACpCmoG,GAAgBzrB,EAAQ/zE,EAAK6vB,OAAOl7B,KAC1B,GCjCtBirG,GAAmB,CACrBD,QAAS,CAAC5rB,GAAU8rB,YAAWC,sBAC3B,MAAMC,EAAWhsB,EACXisB,EAASzd,GAAQ9qF,MAAMs8E,GAE7B,GAAIisB,EAAO5qG,OAAS,EAChB,OAAO2qG,EACX,MAAM5c,EAAWZ,GAAQJ,kBAAkBpO,GACrC90C,EAA8B,iBAAd+gE,EAAO,GAAkB,EAAI,EAE7CC,EAASH,EAAgBzoG,EAAEgzC,MAAQw1D,EAAUxoG,EAC7C6oG,EAASJ,EAAgBnrG,EAAE01C,MAAQw1D,EAAUlrG,EACnDqrG,EAAO,EAAI/gE,IAAWghE,EACtBD,EAAO,EAAI/gE,IAAWihE,EAOtB,MAAMC,EAAe9pB,GAAI4pB,EAAQC,EAAQ,IAOzC,MALkC,iBAAvBF,EAAO,EAAI/gE,KAClB+gE,EAAO,EAAI/gE,IAAWkhE,GAEQ,iBAAvBH,EAAO,EAAI/gE,KAClB+gE,EAAO,EAAI/gE,IAAWkhE,GACnBhd,EAAS6c,EAAO,GCpB/B,MAAMI,WAAiC,YAMnC,iBAAA3/F,GACI,MAAM,cAAEqrE,EAAa,YAAEu0B,EAAW,kBAAEC,EAAiB,SAAE30B,GAAan0E,KAAKoI,OACnE,WAAE21E,GAAezJ,E3IjB/B,IAA2By0B,I2IkBDC,G3IjBtB9iG,OAAOmY,OAAO23D,EAAiB+yB,G2IkBvBhrB,IACI8qB,EAAYI,OACZJ,EAAYI,MAAMxqG,IAAIs/E,GACtB+qB,GAAqBA,EAAkBn4E,UAAYwjD,GACnD20B,EAAkBn4E,SAASotD,GAE/BA,EAAW7tD,KAAKg5E,YAChBnrB,EAAW50E,iBAAiB,qBAAqB,KAC7CnJ,KAAKmpG,cAAc,IAEvBprB,EAAWqrB,WAAW,IACfrrB,EAAW1tE,QACdo9B,eAAgB,IAAMztC,KAAKmpG,kBAGnCtB,GAAsBE,gBAAiB,CAC3C,CACA,uBAAAv7D,CAAwBtkC,GACpB,MAAM,iBAAEmhG,EAAgB,cAAE/0B,EAAa,KAAEvB,EAAI,UAAErmC,GAAc1sC,KAAKoI,MAC5D21E,EAAazJ,EAAcyJ,WACjC,OAAKA,GASLA,EAAWrxC,UAAYA,EACnBqmC,GACA7qE,EAAUmhG,mBAAqBA,QACV9/F,IAArB8/F,EACAtrB,EAAWurB,aAGXtpG,KAAKmpG,eAELjhG,EAAUwkC,YAAcA,IACpBA,EACAqxC,EAAWwrB,UAELxrB,EAAWyrB,YAMjB,MAAM56D,YAAW,KACb,MAAMr2B,EAAQwlE,EAAW0rB,WACpBlxF,GAAUA,EAAMmxF,QAAQ9rG,QACzBoC,KAAKmpG,cACT,KAIL,MAnCI,IAoCf,CACA,kBAAAz/F,GACI,MAAM,WAAEq0E,GAAe/9E,KAAKoI,MAAMksE,cAC9ByJ,IACAA,EAAW7tD,KAAKg5E,YAChBS,gBAAe,MACN5rB,EAAW6rB,kBAAoB7rB,EAAW8rB,UAC3C7pG,KAAKmpG,cACT,IAGZ,CACA,oBAAA3/F,GACI,MAAM,cAAE8qE,EAAa,YAAEu0B,EAAaC,kBAAmBgB,GAAoB9pG,KAAKoI,OAC1E,WAAE21E,GAAezJ,EACnByJ,IACAA,EAAWgsB,4BACPlB,GAAeA,EAAYI,OAC3BJ,EAAYI,MAAMz8F,OAAOuxE,GACzB+rB,GAAkBA,EAAeE,YACjCF,EAAeE,WAAWjsB,GAEtC,CACA,YAAAorB,GACI,MAAM,aAAEA,GAAiBnpG,KAAKoI,MAC9B+gG,GAAgBA,GACpB,CACA,MAAAv/F,GACI,OAAO,IACX,EAEJ,SAASqqE,GAAc7rE,GACnB,MAAOskC,EAAWy8D,GCnFtB,WACI,MAAMx3E,GAAU,IAAApmB,YAAW,KAC3B,GAAgB,OAAZomB,EACA,MAAO,EAAC,EAAM,MAClB,MAAM,UAAE+a,EAAS,eAAEe,EAAc,SAAE9c,GAAagB,EAG1C7b,GAAK,IAAAo3B,SAGX,OAFA,IAAAroB,YAAU,IAAM8L,EAAS7a,IAAK,KAEtB42B,GAAae,EAAiB,EAAC,EADlB,IAAMA,GAAkBA,EAAe33B,IACE,EAAC,EACnE,CDwEsCm0F,GAC5BpB,GAAc,IAAAt9F,YAAWgjC,EAAA,GAC/B,OAAQ,gBAA6Bq6D,GAA0B,IAAKxgG,EAAOygG,YAAaA,EAAaC,mBAAmB,IAAAv9F,YAAWgoE,GAA2B7mC,UAAWA,EAAWy8D,aAAcA,GACtM,CACA,MAAMH,GAAyB,CAC3BlxB,aAAc,IACPowB,GACHgC,QAAS,CACL,sBACA,uBACA,yBACA,4BAGRnyB,oBAAqBmwB,GACrBlwB,qBAAsBkwB,GACtBhwB,uBAAwBgwB,GACxBjwB,wBAAyBiwB,GACzBiC,UAAW/B,IEzHTgC,GAAU,CAAC,UAAW,WAAY,aAAc,eAChDC,GAAaD,GAAQxsG,OACrB0sG,GAAYvgG,GAA2B,iBAAVA,EAAqB29B,WAAW39B,GAASA,EACtEwgG,GAAQxgG,GAA2B,iBAAVA,GAAsBo4D,EAAG7hE,KAAKyJ,GA0C7D,SAASygG,GAAU/qF,EAAQgrF,GACvB,YAA8BlhG,IAAvBkW,EAAOgrF,GACRhrF,EAAOgrF,GACPhrF,EAAOq4D,YACjB,CAwBA,MAAM4yB,GAAkBC,GAAS,EAAG,GAAKlkB,IACnCmkB,GAAmBD,GAAS,GAAK,IAAM/4B,GAAA,GAC7C,SAAS+4B,GAAS7nG,EAAKkxB,EAAKmyD,GACxB,OAAQxnF,GAEAA,EAAImE,EACG,EACPnE,EAAIq1B,EACG,EACJmyD,EAAOx9B,GAAS7lD,EAAKkxB,EAAKr1B,GAEzC,CCrFA,SAASksG,GAAaxkE,EAAMykE,GACxBzkE,EAAKvjC,IAAMgoG,EAAWhoG,IACtBujC,EAAKrS,IAAM82E,EAAW92E,GAC1B,CAMA,SAAS+2E,GAAYvI,EAAKwI,GACtBH,GAAarI,EAAI3iG,EAAGmrG,EAAUnrG,GAC9BgrG,GAAarI,EAAIrlG,EAAG6tG,EAAU7tG,EAClC,CCVA,SAAS8tG,GAAiB9mE,EAAOy8D,EAAW/tD,EAAO8tD,EAAa0B,GAM5D,OAJAl+D,EAAQg+D,GADRh+D,GAASy8D,EACiB,EAAI/tD,EAAO8tD,QACpBp3F,IAAb84F,IACAl+D,EAAQg+D,GAAWh+D,EAAO,EAAIk+D,EAAU1B,IAErCx8D,CACX,CAsBA,SAAS+mE,GAAqB7kE,EAAMmhC,GAAanhE,EAAKw8F,EAAUC,GAAYnwE,EAAQw4E,IAlBpF,SAAyB9kE,EAAMu6D,EAAY,EAAG/tD,EAAQ,EAAGlgB,EAAS,GAAK0vE,EAAUyI,EAAazkE,EAAM8kE,EAAa9kE,GACzG+wC,EAAQ92E,KAAKsgG,KACbA,EAAYl5D,WAAWk5D,GAEvBA,EADyB/hB,GAAIssB,EAAWroG,IAAKqoG,EAAWn3E,IAAK4sE,EAAY,KAC1CuK,EAAWroG,KAE9C,GAAyB,iBAAd89F,EACP,OACJ,IAAID,EAAc9hB,GAAIisB,EAAWhoG,IAAKgoG,EAAW92E,IAAKrB,GAClD0T,IAASykE,IACTnK,GAAeC,GACnBv6D,EAAKvjC,IAAMmoG,GAAiB5kE,EAAKvjC,IAAK89F,EAAW/tD,EAAO8tD,EAAa0B,GACrEh8D,EAAKrS,IAAMi3E,GAAiB5kE,EAAKrS,IAAK4sE,EAAW/tD,EAAO8tD,EAAa0B,EACzE,CAMI+I,CAAgB/kE,EAAMmhC,EAAWnhE,GAAMmhE,EAAWq7B,GAAWr7B,EAAWs7B,GAAYt7B,EAAW30B,MAAOlgB,EAAQw4E,EAClH,CAIA,MAAM,GAAQ,CAAC,IAAK,SAAU,WACxB,GAAQ,CAAC,IAAK,SAAU,WAK9B,SAASE,GAAoB7I,EAAKh7B,EAAYwjC,EAAWM,GACrDJ,GAAqB1I,EAAI3iG,EAAG2nE,EAAY,GAAOwjC,EAAYA,EAAUnrG,OAAI0J,EAAW+hG,EAAYA,EAAUzrG,OAAI0J,GAC9G2hG,GAAqB1I,EAAIrlG,EAAGqqE,EAAY,GAAOwjC,EAAYA,EAAU7tG,OAAIoM,EAAW+hG,EAAYA,EAAUnuG,OAAIoM,EAClH,CCjDA,SAASgiG,GAAgB/6B,GACrB,OAA2B,IAApBA,EAAMowB,WAAmC,IAAhBpwB,EAAM39B,KAC1C,CACA,SAAS24D,GAAYh7B,GACjB,OAAO+6B,GAAgB/6B,EAAM3wE,IAAM0rG,GAAgB/6B,EAAMrzE,EAC7D,CAOA,SAASsuG,GAAiB9uG,EAAG6C,GACzB,OAAQtB,KAAKgF,MAAMvG,EAAEkD,EAAEiD,OAAS5E,KAAKgF,MAAM1D,EAAEK,EAAEiD,MAC3C5E,KAAKgF,MAAMvG,EAAEkD,EAAEm0B,OAAS91B,KAAKgF,MAAM1D,EAAEK,EAAEm0B,MACvC91B,KAAKgF,MAAMvG,EAAEQ,EAAE2F,OAAS5E,KAAKgF,MAAM1D,EAAErC,EAAE2F,MACvC5E,KAAKgF,MAAMvG,EAAEQ,EAAE62B,OAAS91B,KAAKgF,MAAM1D,EAAErC,EAAE62B,IAC/C,CACA,SAAS03E,GAAYlJ,GACjB,OAAOjC,GAAWiC,EAAI3iG,GAAK0gG,GAAWiC,EAAIrlG,EAC9C,CCpBA,MAAMwuG,GACF,WAAAp2F,GACIvV,KAAK0pG,QAAU,EACnB,CACA,GAAAjrG,CAAI+J,GACAsvF,GAAc93F,KAAK0pG,QAASlhG,GAC5BA,EAAKojG,gBACT,CACA,MAAAp/F,CAAOhE,GAKH,GAJAymB,GAAWjvB,KAAK0pG,QAASlhG,GACrBA,IAASxI,KAAK6rG,WACd7rG,KAAK6rG,cAAWtiG,GAEhBf,IAASxI,KAAK8rG,KAAM,CACpB,MAAMD,EAAW7rG,KAAK0pG,QAAQ1pG,KAAK0pG,QAAQ9rG,OAAS,GAChDiuG,GACA7rG,KAAKupG,QAAQsC,EAErB,CACJ,CACA,QAAArC,CAAShhG,GACL,MAAMujG,EAAc/rG,KAAK0pG,QAAQhnF,WAAWspF,GAAWxjG,IAASwjG,IAChE,GAAoB,IAAhBD,EACA,OAAO,EAIX,IAAIF,EACJ,IAAK,IAAIrvG,EAAIuvG,EAAavvG,GAAK,EAAGA,IAAK,CACnC,MAAMwvG,EAAShsG,KAAK0pG,QAAQltG,GAC5B,IAAyB,IAArBwvG,EAAOt/D,UAAqB,CAC5Bm/D,EAAWG,EACX,KACJ,CACJ,CACA,QAAIH,IACA7rG,KAAKupG,QAAQsC,IACN,EAKf,CACA,OAAAtC,CAAQ/gG,EAAMyjG,GACV,MAAMJ,EAAW7rG,KAAK8rG,KACtB,GAAItjG,IAASqjG,IAEb7rG,KAAK6rG,SAAWA,EAChB7rG,KAAK8rG,KAAOtjG,EACZA,EAAK0jG,OACDL,GAAU,CACVA,EAAS92F,UAAY82F,EAASD,iBAC9BpjG,EAAKojG,iBACLpjG,EAAK2jG,WAAaN,EACdI,IACAzjG,EAAK2jG,WAAWC,iBAAkB,GAElCP,EAASQ,WACT7jG,EAAK6jG,SAAWR,EAASQ,SACzB7jG,EAAK6jG,SAASzyB,aACViyB,EAASS,iBAAmBT,EAASjyB,cAEzCpxE,EAAK0nB,MAAQ1nB,EAAK0nB,KAAKq8E,aACvB/jG,EAAKgkG,eAAgB,GAEzB,MAAM,UAAEC,GAAcjkG,EAAK6H,SACT,IAAdo8F,GACAZ,EAASa,MAcjB,CACJ,CACA,qBAAAC,GACI3sG,KAAK0pG,QAAQ1lG,SAASwE,IAClB,MAAM,QAAE6H,EAAO,aAAEu8F,GAAiBpkG,EAClC6H,EAAQo9B,gBAAkBp9B,EAAQo9B,iBAC9Bm/D,GACAA,EAAav8F,QAAQo9B,gBACjBm/D,EAAav8F,QAAQo9B,gBAC7B,GAER,CACA,cAAAm+D,GACI5rG,KAAK0pG,QAAQ1lG,SAASwE,IAClBA,EAAKuM,UAAYvM,EAAKojG,gBAAe,EAAM,GAEnD,CAKA,kBAAAiB,GACQ7sG,KAAK8rG,MAAQ9rG,KAAK8rG,KAAKO,WACvBrsG,KAAK8rG,KAAKO,cAAW9iG,EAE7B,EC5GJ,SAASujG,GAAyBt8B,EAAO63B,EAAW0E,GAChD,IAAIvoC,EAAY,GAOhB,MAAMwoC,EAAax8B,EAAM3wE,EAAE+gG,UAAYyH,EAAUxoG,EAC3CotG,EAAaz8B,EAAMrzE,EAAEyjG,UAAYyH,EAAUlrG,EAWjD,IAVI6vG,GAAcC,KACdzoC,EAAY,eAAewoC,QAAiBC,YAM5B,IAAhB5E,EAAUxoG,GAA2B,IAAhBwoG,EAAUlrG,IAC/BqnE,GAAa,SAAS,EAAI6jC,EAAUxoG,MAAM,EAAIwoG,EAAUlrG,OAExD4vG,EAAiB,CACjB,MAAM,OAAEl0B,EAAM,QAAEC,EAAO,QAAEC,GAAYg0B,EACjCl0B,IACArU,GAAa,UAAUqU,UACvBC,IACAtU,GAAa,WAAWsU,UACxBC,IACAvU,GAAa,WAAWuU,SAChC,CAKA,MAAMm0B,EAAgB18B,EAAM3wE,EAAEgzC,MAAQw1D,EAAUxoG,EAC1CstG,EAAgB38B,EAAMrzE,EAAE01C,MAAQw1D,EAAUlrG,EAIhD,OAHsB,IAAlB+vG,GAAyC,IAAlBC,IACvB3oC,GAAa,SAAS0oC,MAAkBC,MAErC3oC,GAAa,MACxB,CCvCA,MAAM4oC,GAAiB,CAACzwG,EAAG6C,IAAM7C,EAAE0wG,MAAQ7tG,EAAE6tG,MCG7C,MAAMC,GACF,WAAA/3F,GACIvV,KAAKgK,SAAW,GAChBhK,KAAKutG,SAAU,CACnB,CACA,GAAA9uG,CAAI0vC,GACA2pD,GAAc93F,KAAKgK,SAAUmkC,GAC7BnuC,KAAKutG,SAAU,CACnB,CACA,MAAA/gG,CAAO2hC,GACHlf,GAAWjvB,KAAKgK,SAAUmkC,GAC1BnuC,KAAKutG,SAAU,CACnB,CACA,OAAAvpG,CAAQ4gB,GACJ5kB,KAAKutG,SAAWvtG,KAAKgK,SAASsqB,KAAK84E,IACnCptG,KAAKutG,SAAU,EACfvtG,KAAKgK,SAAShG,QAAQ4gB,EAC1B,ECMJ,MAAM4oF,GAAgB,CAAC,GAAI,IAAK,IAAK,KAMrC,IAAI,GAAK,EAKT,MAAMC,GAAsB,CACxB/7F,KAAM,kBACNg8F,WAAY,EACZC,qBAAsB,EACtBC,uBAAwB,GAE5B,SAASC,IAAqB,qBAAEC,EAAoB,cAAEC,EAAa,cAAEC,EAAa,kBAAEC,EAAiB,eAAEC,IACnG,OAAO,MACH,WAAA34F,CAAYqkE,EAAe,CAAC,EAAGlhD,GAASq1E,aAAqD,EAASA,MAIlG/tG,KAAK8V,GAAK,KAIV9V,KAAKmuG,YAAc,EAOnBnuG,KAAKgK,SAAW,IAAIqT,IAKpBrd,KAAKqQ,QAAU,CAAC,EAMhBrQ,KAAKouG,iBAAkB,EACvBpuG,KAAKskG,oBAAqB,EAO1BtkG,KAAKwsG,eAAgB,EAKrBxsG,KAAKquG,mBAAoB,EAKzBruG,KAAKsuG,yBAA0B,EAK/BtuG,KAAKuuG,kBAAmB,EAIxBvuG,KAAKwuG,uBAAwB,EAC7BxuG,KAAKyuG,uBAAwB,EAK7BzuG,KAAKusG,YAAa,EAIlBvsG,KAAKoiE,OAAQ,EAKbpiE,KAAK0uG,YAAa,EAIlB1uG,KAAK2uG,sBAAuB,EAS5B3uG,KAAKqoG,UAAY,CAAExoG,EAAG,EAAG1C,EAAG,GAI5B6C,KAAK4uG,cAAgB,IAAIp8F,IACzBxS,KAAK6uG,iBAAkB,EAEvB7uG,KAAK8uG,iBAAkB,EACvB9uG,KAAK+uG,kBAAoB,KACjB/uG,KAAKusG,aACLvsG,KAAKusG,YAAa,EAClBvsG,KAAKgvG,oBACT,EAOJhvG,KAAKivG,iBAAmB,KCjJpC,IAAgB73F,EDsJAq2F,GAAoBC,WAChBD,GAAoBE,qBAChBF,GAAoBG,uBAChB,EACZ5tG,KAAKkvG,MAAMlrG,QAAQmrG,IACnBnvG,KAAKkvG,MAAMlrG,QAAQorG,IACnBpvG,KAAKkvG,MAAMlrG,QAAQqrG,IACnBrvG,KAAKkvG,MAAMlrG,QAAQsrG,IC7JnBl4F,ED8JOq2F,GC7Jf9lG,OAAO4nG,aACP5nG,OAAO4nG,YAAYC,OAAOp4F,ED4JS,EAE/BpX,KAAKyvG,cAAe,EACpBzvG,KAAK0vG,WAAY,EACjB1vG,KAAK2vG,kBAAoB,EAKzB3vG,KAAK4vG,YAAc,IAAIp9F,IACvBxS,KAAK45E,aAAeA,EACpB55E,KAAKkwB,KAAOwI,EAASA,EAAOxI,MAAQwI,EAAS14B,KAC7CA,KAAKoS,KAAOsmB,EAAS,IAAIA,EAAOtmB,KAAMsmB,GAAU,GAChD14B,KAAK04B,OAASA,EACd14B,KAAKqtG,MAAQ30E,EAASA,EAAO20E,MAAQ,EAAI,EACzC,IAAK,IAAI7wG,EAAI,EAAGA,EAAIwD,KAAKoS,KAAKxU,OAAQpB,IAClCwD,KAAKoS,KAAK5V,GAAGmyG,sBAAuB,EAEpC3uG,KAAKkwB,OAASlwB,OACdA,KAAKkvG,MAAQ,IAAI5B,GACzB,CACA,gBAAAnkG,CAAiB9L,EAAMsU,GAInB,OAHK3R,KAAK4uG,cAAc7oG,IAAI1I,IACxB2C,KAAK4uG,cAAcxsG,IAAI/E,EAAM,IAAI06F,IAE9B/3F,KAAK4uG,cAAc5rG,IAAI3F,GAAMoB,IAAIkT,EAC5C,CACA,eAAAk+F,CAAgBxyG,KAASiC,GACrB,MAAMwwG,EAAsB9vG,KAAK4uG,cAAc5rG,IAAI3F,GACnDyyG,GAAuBA,EAAoB7X,UAAU34F,EACzD,CACA,YAAAywG,CAAa1yG,GACT,OAAO2C,KAAK4uG,cAAc7oG,IAAI1I,EAClC,CAIA,KAAAg4E,CAAMtgE,EAAUy3F,EAAgBxsG,KAAKkwB,KAAK2+E,iBACtC,GAAI7uG,KAAK+U,SACL,OErMhB,IAAsB3K,EFsMVpK,KAAKoiE,OEtMKh4D,EFsMgB2K,aErMRi7F,YAAkC,QAApB5lG,EAAQq4D,QFsMxCziE,KAAK+U,SAAWA,EAChB,MAAM,SAAEo/D,EAAQ,OAAEf,EAAM,cAAEkB,GAAkBt0E,KAAKqQ,QASjD,GARIikE,IAAkBA,EAAc3oE,SAChC2oE,EAAce,MAAMtgE,GAExB/U,KAAKkwB,KAAKg/E,MAAMzwG,IAAIuB,MACpBA,KAAK04B,QAAU14B,KAAK04B,OAAO1uB,SAASvL,IAAIuB,MACpCwsG,IAAkBp5B,GAAUe,KAC5Bn0E,KAAKwsG,eAAgB,GAErBsB,EAAsB,CACtB,IAAImC,EACJ,MAAMC,EAAsB,IAAOlwG,KAAKkwB,KAAKu+E,uBAAwB,EACrEX,EAAqB/4F,GAAU,KAC3B/U,KAAKkwB,KAAKu+E,uBAAwB,EAClCwB,GAAeA,IACfA,EGlNpB,SAAerrF,EAAUiV,GACrB,MAAMjZ,EAAQyO,YAAY+D,MACpB+8E,EAAe,EAAG1/B,gBACpB,MAAMllB,EAAUklB,EAAY7vD,EACxB2qC,GAAW1xB,KACX,SAAYs2E,GACZvrF,EAAS2mC,EAAU1xB,GACvB,EAGJ,OADA,MAAMxwB,KAAK8mG,GAAc,GAClB,KAAM,SAAYA,EAC7B,CHuMkC79D,CAAM49D,EAAqB,KACrCrI,GAAsBC,yBACtBD,GAAsBC,wBAAyB,EAC/C9nG,KAAKkvG,MAAMlrG,QAAQosG,IACvB,GAER,CACIj8B,GACAn0E,KAAKkwB,KAAKmgF,mBAAmBl8B,EAAUn0E,OAGd,IAAzBA,KAAKqQ,QAAQukC,SACb0/B,IACCH,GAAYf,IACbpzE,KAAKmJ,iBAAiB,aAAa,EAAGqnE,QAAOm3B,mBAAkB2I,2BAA0Bl9B,OAAQm9B,MAC7F,GAAIvwG,KAAKwwG,yBAGL,OAFAxwG,KAAKq4B,YAAS9uB,OACdvJ,KAAKywG,oBAAiBlnG,GAI1B,MAAMmnG,EAAmB1wG,KAAKqQ,QAAQ8jC,YAClCmgC,EAAcihB,wBACdob,IACE,uBAAEC,EAAsB,0BAAEC,GAA+Bv8B,EAAcp/C,WAKvE47E,GAAiB9wG,KAAK+wG,eACvBtF,GAAiBzrG,KAAK+wG,aAAcR,IACrCD,EAMEU,GAAgCrJ,GAAoB2I,EAC1D,GAAItwG,KAAKqQ,QAAQ4gG,YACZjxG,KAAKmsG,YAAcnsG,KAAKmsG,WAAWp3F,UACpCi8F,GACCrJ,IACImJ,IAAkB9wG,KAAK4pG,kBAAoB,CAC5C5pG,KAAKmsG,aACLnsG,KAAK4sG,aAAe5sG,KAAKmsG,WACzBnsG,KAAK4sG,aAAaA,kBAAerjG,GAErCvJ,KAAKkxG,mBAAmB1gC,EAAOwgC,GAC/B,MAAMG,EAAmB,IAClBxa,GAAmB+Z,EAAkB,UACxCze,OAAQ2e,EACR59D,WAAY69D,IAEZv8B,EAAcgnB,oBACdt7F,KAAKqQ,QAAQ4gG,cACbE,EAAiB7+D,MAAQ,EACzB6+D,EAAiBz/F,MAAO,GAE5B1R,KAAK05F,eAAeyX,EACxB,MAOSxJ,GACDyI,GAAgBpwG,MAEhBA,KAAK6pG,UAAY7pG,KAAKqQ,QAAQo9B,gBAC9BztC,KAAKqQ,QAAQo9B,iBAGrBztC,KAAK+wG,aAAeR,CAAS,GAGzC,CACA,OAAAj7B,GACIt1E,KAAKqQ,QAAQ8jE,UAAYn0E,KAAKspG,aAC9BtpG,KAAKkwB,KAAKg/E,MAAM1iG,OAAOxM,MACvB,MAAMuY,EAAQvY,KAAKypG,WACnBlxF,GAASA,EAAM/L,OAAOxM,MACtBA,KAAK04B,QAAU14B,KAAK04B,OAAO1uB,SAASyT,OAAOzd,MAC3CA,KAAK+U,cAAWxL,GAChB,SAAYvJ,KAAKivG,iBACrB,CAEA,WAAAmC,GACIpxG,KAAKwuG,uBAAwB,CACjC,CACA,aAAA6C,GACIrxG,KAAKwuG,uBAAwB,CACjC,CACA,eAAA8C,GACI,OAAOtxG,KAAKwuG,uBAAyBxuG,KAAKyuG,qBAC9C,CACA,sBAAA+B,GACI,OAAQxwG,KAAKskG,oBACRtkG,KAAK04B,QAAU14B,KAAK04B,OAAO83E,2BAC5B,CACR,CAEA,WAAAe,GACQvxG,KAAKsxG,oBAETtxG,KAAKusG,YAAa,EAClBvsG,KAAKkvG,OAASlvG,KAAKkvG,MAAMlrG,QAAQwtG,IACjCxxG,KAAKmuG,cACT,CACA,oBAAAsD,GACI,MAAM,cAAEn9B,GAAkBt0E,KAAKqQ,QAC/B,OAAOikE,GAAiBA,EAAcp/C,WAAW2kD,iBACrD,CACA,UAAAyvB,CAAWoI,GAAwB,GAE/B,GADA1xG,KAAKkwB,KAAK2+E,iBAAkB,EACxB7uG,KAAKkwB,KAAKohF,kBAEV,YADAtxG,KAAKqQ,QAAQo9B,gBAAkBztC,KAAKqQ,QAAQo9B,kBAIhD,IADCztC,KAAKkwB,KAAKq8E,YAAcvsG,KAAKkwB,KAAKqhF,cAC/BvxG,KAAKwsG,cACL,OACJxsG,KAAKwsG,eAAgB,EACrB,IAAK,IAAIhwG,EAAI,EAAGA,EAAIwD,KAAKoS,KAAKxU,OAAQpB,IAAK,CACvC,MAAMgM,EAAOxI,KAAKoS,KAAK5V,GACvBgM,EAAKmmG,sBAAuB,EAC5BnmG,EAAK2+F,aAAa,YACd3+F,EAAK6H,QAAQ4gG,YACbzoG,EAAK8gG,YAAW,EAExB,CACA,MAAM,SAAEn1B,EAAQ,OAAEf,GAAWpzE,KAAKqQ,QAClC,QAAiB9G,IAAb4qE,IAA2Bf,EAC3B,OACJ,MAAMyG,EAAoB75E,KAAKyxG,uBAC/BzxG,KAAK2xG,2BAA6B93B,EAC5BA,EAAkB75E,KAAK45E,aAAc,SACrCrwE,EACNvJ,KAAK4xG,iBACLF,GAAyB1xG,KAAK6vG,gBAAgB,aAClD,CACA,MAAAj7B,GACI50E,KAAK8uG,iBAAkB,EAKvB,GAJyB9uG,KAAKsxG,kBAQ1B,OAHAtxG,KAAKqxG,gBACLrxG,KAAKgvG,yBACLhvG,KAAKkvG,MAAMlrG,QAAQ6tG,IAGlB7xG,KAAKusG,YACNvsG,KAAKkvG,MAAMlrG,QAAQ8tG,IAEvB9xG,KAAKusG,YAAa,EAIlBvsG,KAAKkvG,MAAMlrG,QAAQ+tG,IAKnB/xG,KAAKkvG,MAAMlrG,QAAQojG,IAKnBpnG,KAAKkvG,MAAMlrG,QAAQguG,IACnBhyG,KAAKgvG,oBAML,MAAM57E,EAAM/D,YAAY+D,MACxB,GAAA+8C,UAAUK,MAAQ/U,EAAM,EAAG,IAAO,GAAIroC,EAAM,GAAA+8C,UAAUM,WACtD,GAAAN,UAAUM,UAAYr9C,EACtB,GAAA+8C,UAAUO,cAAe,EACzB,MAAMkE,OAAO/oC,QAAQ,GAAAskC,WACrB,MAAM8hC,UAAUpmE,QAAQ,GAAAskC,WACxB,MAAMvmE,OAAOiiC,QAAQ,GAAAskC,WACrB,GAAAA,UAAUO,cAAe,CAC7B,CACA,SAAAw4B,GACSlpG,KAAK8uG,kBACN9uG,KAAK8uG,iBAAkB,EACvBnF,gBAAe,IAAM3pG,KAAK40E,WAElC,CACA,iBAAAo6B,GACIhvG,KAAKkvG,MAAMlrG,QAAQkuG,IACnBlyG,KAAK4vG,YAAY5rG,QAAQmuG,GAC7B,CACA,wBAAAC,GACI,MAAMH,UAAUjyG,KAAKivG,kBAAkB,GAAO,EAClD,CACA,yBAAAlF,GAMI,MAAMn7D,YAAW,KACT5uC,KAAKwsG,cACLxsG,KAAKkwB,KAAKg5E,YAGVlpG,KAAKkwB,KAAK6+E,mBACd,GAER,CAIA,cAAA6C,IACQ5xG,KAAKqsG,UAAarsG,KAAK+U,WAE3B/U,KAAKqsG,SAAWrsG,KAAKqyG,UACzB,CACA,YAAAjL,GACI,IAAKpnG,KAAK+U,SACN,OAGJ,GADA/U,KAAKmnG,iBACCnnG,KAAKqQ,QAAQiiG,qBAAuBtyG,KAAK6pG,UAC1C7pG,KAAKwsG,eACN,OASJ,GAAIxsG,KAAKmsG,aAAensG,KAAKmsG,WAAWp3F,SACpC,IAAK,IAAIvY,EAAI,EAAGA,EAAIwD,KAAKoS,KAAKxU,OAAQpB,IAAK,CAC1BwD,KAAKoS,KAAK5V,GAClB2qG,cACT,CAEJ,MAAMoL,EAAavyG,KAAKozE,OACxBpzE,KAAKozE,OAASpzE,KAAKqyG,SAAQ,GAC3BryG,KAAKwyG,gBAAkB5Q,KACvB5hG,KAAKwsG,eAAgB,EACrBxsG,KAAKsoG,qBAAkB/+F,EACvBvJ,KAAK6vG,gBAAgB,UAAW7vG,KAAKozE,OAAOqxB,WAC5C,MAAM,cAAEnwB,GAAkBt0E,KAAKqQ,QAC/BikE,GACIA,EAAc2jB,OAAO,gBAAiBj4F,KAAKozE,OAAOqxB,UAAW8N,EAAaA,EAAW9N,eAAYl7F,EACzG,CACA,YAAA49F,CAAasL,EAAQ,WACjB,IAAIC,EAAmB1kF,QAAQhuB,KAAKqQ,QAAQsiG,cAAgB3yG,KAAK+U,UAC7D/U,KAAKumC,QACLvmC,KAAKumC,OAAO4nE,cAAgBnuG,KAAKkwB,KAAKi+E,aACtCnuG,KAAKumC,OAAOksE,QAAUA,IACtBC,GAAmB,GAEnBA,IACA1yG,KAAKumC,OAAS,CACV4nE,YAAanuG,KAAKkwB,KAAKi+E,YACvBsE,QACA1rE,OAAQknE,EAAkBjuG,KAAK+U,UAC/B0yB,OAAQumE,EAAchuG,KAAK+U,WAGvC,CACA,cAAAm5F,GACI,IAAKA,EACD,OACJ,MAAM0E,EAAmB5yG,KAAKwsG,eAAiBxsG,KAAK2uG,qBAC9CkE,EAAgB7yG,KAAKsoG,kBAAoBkD,GAAYxrG,KAAKsoG,iBAC1DzuB,EAAoB75E,KAAKyxG,uBACzBqB,EAAyBj5B,EACzBA,EAAkB75E,KAAK45E,aAAc,SACrCrwE,EACAwpG,EAA8BD,IAA2B9yG,KAAK2xG,2BAChEiB,IACCC,GACG94B,GAAa/5E,KAAK45E,eAClBm5B,KACJ7E,EAAeluG,KAAK+U,SAAU+9F,GAC9B9yG,KAAK2uG,sBAAuB,EAC5B3uG,KAAK4rG,iBAEb,CACA,OAAAyG,CAAQW,GAAkB,GACtB,MAAMC,EAAUjzG,KAAKkmG,iBACrB,IAAIzB,EAAYzkG,KAAKkzG,oBAAoBD,GAi9BrD,IAAkBzQ,EAv8BN,OAJIwQ,IACAvO,EAAYzkG,KAAKgzG,gBAAgBvO,IA28B7C0O,IADc3Q,EAx8BGiC,GAy8BH5kG,GACdszG,GAAU3Q,EAAIrlG,GAz8BC,CACHgxG,YAAanuG,KAAKkwB,KAAKi+E,YACvBiF,YAAaH,EACbxO,YACA7qB,aAAc,CAAC,EACf1R,OAAQloE,KAAK8V,GAErB,CACA,cAAAowF,GACI,MAAM,cAAE5xB,GAAkBt0E,KAAKqQ,QAC/B,IAAKikE,EACD,OAAOstB,KACX,MAAMY,EAAMluB,EAAc6uB,sBAEpB,OAAE58D,GAAWvmC,KAAKkwB,KAKxB,OAJIqW,IACAo8D,GAAcH,EAAI3iG,EAAG0mC,EAAOkB,OAAO5nC,GACnC8iG,GAAcH,EAAIrlG,EAAGopC,EAAOkB,OAAOtqC,IAEhCqlG,CACX,CACA,mBAAA0Q,CAAoB1Q,GAChB,MAAM6Q,EAAmBzR,KACzBmJ,GAAYsI,EAAkB7Q,GAK9B,IAAK,IAAIhmG,EAAI,EAAGA,EAAIwD,KAAKoS,KAAKxU,OAAQpB,IAAK,CACvC,MAAMgM,EAAOxI,KAAKoS,KAAK5V,IACjB,OAAE+pC,EAAM,QAAEl2B,GAAY7H,EAC5B,GAAIA,IAASxI,KAAKkwB,MAAQqW,GAAUl2B,EAAQsiG,aAAc,CAKtD,GAAIpsE,EAAOQ,OAAQ,CACfgkE,GAAYsI,EAAkB7Q,GAC9B,MAAQj8D,OAAQ+sE,GAAetzG,KAAKkwB,KAKhCojF,IACA3Q,GAAc0Q,EAAiBxzG,GAAIyzG,EAAW7rE,OAAO5nC,GACrD8iG,GAAc0Q,EAAiBl2G,GAAIm2G,EAAW7rE,OAAOtqC,GAE7D,CACAwlG,GAAc0Q,EAAiBxzG,EAAG0mC,EAAOkB,OAAO5nC,GAChD8iG,GAAc0Q,EAAiBl2G,EAAGopC,EAAOkB,OAAOtqC,EACpD,CACJ,CACA,OAAOk2G,CACX,CACA,cAAAE,CAAe/Q,EAAKgR,GAAgB,GAChC,MAAMC,EAAiB7R,KACvBmJ,GAAY0I,EAAgBjR,GAC5B,IAAK,IAAIhmG,EAAI,EAAGA,EAAIwD,KAAKoS,KAAKxU,OAAQpB,IAAK,CACvC,MAAMgM,EAAOxI,KAAKoS,KAAK5V,IAClBg3G,GACDhrG,EAAK6H,QAAQsiG,cACbnqG,EAAK+9B,QACL/9B,IAASA,EAAK0nB,MACdgzE,GAAauQ,EAAgB,CACzB5zG,GAAI2I,EAAK+9B,OAAOkB,OAAO5nC,EACvB1C,GAAIqL,EAAK+9B,OAAOkB,OAAOtqC,IAG1B48E,GAAavxE,EAAKoxE,eAEvBspB,GAAauQ,EAAgBjrG,EAAKoxE,aACtC,CAIA,OAHIG,GAAa/5E,KAAK45E,eAClBspB,GAAauQ,EAAgBzzG,KAAK45E,cAE/B65B,CACX,CACA,eAAAT,CAAgBxQ,GACZ,MAAMkR,EAAsB9R,KAC5BmJ,GAAY2I,EAAqBlR,GACjC,IAAK,IAAIhmG,EAAI,EAAGA,EAAIwD,KAAKoS,KAAKxU,OAAQpB,IAAK,CACvC,MAAMgM,EAAOxI,KAAKoS,KAAK5V,GACvB,IAAKgM,EAAKuM,SACN,SACJ,IAAKglE,GAAavxE,EAAKoxE,cACnB,SACJooB,GAASx5F,EAAKoxE,eAAiBpxE,EAAKopG,iBACpC,MAAMtG,EAAY1J,KAElBmJ,GAAYO,EADI9iG,EAAK09F,kBAErBmF,GAAoBqI,EAAqBlrG,EAAKoxE,aAAcpxE,EAAK6jG,SAAW7jG,EAAK6jG,SAAS5H,eAAYl7F,EAAW+hG,EACrH,CAIA,OAHIvxB,GAAa/5E,KAAK45E,eAClByxB,GAAoBqI,EAAqB1zG,KAAK45E,cAE3C85B,CACX,CACA,cAAAC,CAAenjC,GACXxwE,KAAK4zG,YAAcpjC,EACnBxwE,KAAKkwB,KAAKkiF,2BACVpyG,KAAKquG,mBAAoB,CAC7B,CACA,UAAAjF,CAAW/4F,GACPrQ,KAAKqQ,QAAU,IACRrQ,KAAKqQ,WACLA,EACHo8F,eAAiCljG,IAAtB8G,EAAQo8F,WAA0Bp8F,EAAQo8F,UAE7D,CACA,iBAAAoF,GACI7xG,KAAKumC,YAASh9B,EACdvJ,KAAKozE,YAAS7pE,EACdvJ,KAAKqsG,cAAW9iG,EAChBvJ,KAAK2xG,gCAA6BpoG,EAClCvJ,KAAK4zG,iBAAcrqG,EACnBvJ,KAAKq4B,YAAS9uB,EACdvJ,KAAKwsG,eAAgB,CACzB,CACA,kCAAAqH,GACS7zG,KAAK8zG,gBAQN9zG,KAAK8zG,eAAeC,2BACpB,GAAA5jC,UAAUM,WACVzwE,KAAK8zG,eAAe1E,oBAAmB,EAE/C,CACA,kBAAAA,CAAmB4E,GAAqB,GACpC,IAAInnC,EAMJ,MAAMi/B,EAAO9rG,KAAKi0G,UAClBj0G,KAAKquG,oBAAsBruG,KAAKquG,kBAAoBvC,EAAKuC,mBACzDruG,KAAKuuG,mBAAqBvuG,KAAKuuG,iBAAmBzC,EAAKyC,kBACvDvuG,KAAKsuG,0BAA4BtuG,KAAKsuG,wBAA0BxC,EAAKwC,yBACrE,MAAM4F,EAAWlmF,QAAQhuB,KAAK4sG,eAAiB5sG,OAAS8rG,EAUxD,KALkBkI,GACbE,GAAYl0G,KAAKsuG,yBAClBtuG,KAAKquG,oBACmB,QAAtBxhC,EAAK7sE,KAAK04B,cAA2B,IAAPm0C,OAAgB,EAASA,EAAGwhC,oBAC5DruG,KAAKm0G,gCAEL,OACJ,MAAM,OAAE/gC,EAAM,SAAEe,GAAan0E,KAAKqQ,QAIlC,GAAKrQ,KAAKozE,SAAYA,GAAUe,GAAhC,CASA,GAPAn0E,KAAK+zG,yBAA2B,GAAA5jC,UAAUM,WAOrCzwE,KAAK4zG,cAAgB5zG,KAAKywG,eAAgB,CAE3C,MAAMqD,EAAiB9zG,KAAKo0G,6BACxBN,GACAA,EAAe1gC,QACY,IAA3BpzE,KAAK2vG,mBACL3vG,KAAK8zG,eAAiBA,EACtB9zG,KAAK6zG,qCACL7zG,KAAKywG,eAAiB7O,KACtB5hG,KAAKq0G,qBAAuBzS,KAC5BZ,GAAqBhhG,KAAKq0G,qBAAsBr0G,KAAKozE,OAAOqxB,UAAWqP,EAAe1gC,OAAOqxB,WAC7FsG,GAAY/qG,KAAKywG,eAAgBzwG,KAAKq0G,uBAGtCr0G,KAAK8zG,eAAiB9zG,KAAKywG,oBAAiBlnG,CAEpD,CAKA,GAAKvJ,KAAKywG,gBAAmBzwG,KAAK4zG,YAAlC,CvBtqBZ,IAAyBv7E,EAAQmrC,EAAU9qC,EuB+sB/B,GApCK14B,KAAKq4B,SACNr4B,KAAKq4B,OAASupE,KACd5hG,KAAKs0G,qBAAuB1S,MAK5B5hG,KAAKywG,gBACLzwG,KAAKq0G,sBACLr0G,KAAK8zG,gBACL9zG,KAAK8zG,eAAez7E,QACpBr4B,KAAK6zG,qCvBtrBIx7E,EuBurBOr4B,KAAKq4B,OvBvrBJmrC,EuBurBYxjE,KAAKywG,evBvrBP/3E,EuBurBuB14B,KAAK8zG,eAAez7E,OvBtrBlFyoE,GAAiBzoE,EAAOx4B,EAAG2jE,EAAS3jE,EAAG64B,EAAO74B,GAC9CihG,GAAiBzoE,EAAOl7B,EAAGqmE,EAASrmE,EAAGu7B,EAAOv7B,IuB0rB7B6C,KAAK4zG,aACN5lF,QAAQhuB,KAAK4sG,cAEb5sG,KAAKq4B,OAASr4B,KAAKuzG,eAAevzG,KAAKozE,OAAOqxB,WAG9CsG,GAAY/qG,KAAKq4B,OAAQr4B,KAAKozE,OAAOqxB,WAEzClC,GAAcviG,KAAKq4B,OAAQr4B,KAAK4zG,cAMhC7I,GAAY/qG,KAAKq4B,OAAQr4B,KAAKozE,OAAOqxB,WAKrCzkG,KAAKm0G,+BAAgC,CACrCn0G,KAAKm0G,gCAAiC,EACtC,MAAML,EAAiB9zG,KAAKo0G,6BACxBN,GACA9lF,QAAQ8lF,EAAelH,gBACnB5+E,QAAQhuB,KAAK4sG,gBAChBkH,EAAezjG,QAAQsiG,cACxBmB,EAAez7E,QACY,IAA3Br4B,KAAK2vG,mBACL3vG,KAAK8zG,eAAiBA,EACtB9zG,KAAK6zG,qCACL7zG,KAAKywG,eAAiB7O,KACtB5hG,KAAKq0G,qBAAuBzS,KAC5BZ,GAAqBhhG,KAAKq0G,qBAAsBr0G,KAAKq4B,OAAQy7E,EAAez7E,QAC5E0yE,GAAY/qG,KAAKywG,eAAgBzwG,KAAKq0G,uBAGtCr0G,KAAK8zG,eAAiB9zG,KAAKywG,oBAAiBlnG,CAEpD,CAIAkkG,GAAoBE,sBA/DV,CA9BA,CA8Fd,CACA,0BAAAyG,GACI,GAAKp0G,KAAK04B,SACNspE,GAAShiG,KAAK04B,OAAOkhD,gBACrBqoB,GAAejiG,KAAK04B,OAAOkhD,cAG/B,OAAI55E,KAAK04B,OAAO67E,eACLv0G,KAAK04B,OAGL14B,KAAK04B,OAAO07E,4BAE3B,CACA,YAAAG,GACI,OAAOvmF,SAAShuB,KAAKywG,gBACjBzwG,KAAK4zG,aACL5zG,KAAKqQ,QAAQ4gG,aACbjxG,KAAKozE,OACb,CACA,cAAAi8B,GACI,IAAIxiC,EACJ,MAAMi/B,EAAO9rG,KAAKi0G,UACZC,EAAWlmF,QAAQhuB,KAAK4sG,eAAiB5sG,OAAS8rG,EACxD,IAAI0I,GAAU,EAuBd,IAlBIx0G,KAAKquG,oBAA6C,QAAtBxhC,EAAK7sE,KAAK04B,cAA2B,IAAPm0C,OAAgB,EAASA,EAAGwhC,sBACtFmG,GAAU,GAMVN,IACCl0G,KAAKsuG,yBAA2BtuG,KAAKuuG,oBACtCiG,GAAU,GAMVx0G,KAAK+zG,2BAA6B,GAAA5jC,UAAUM,YAC5C+jC,GAAU,GAEVA,EACA,OACJ,MAAM,OAAEphC,EAAM,SAAEe,GAAan0E,KAAKqQ,QAWlC,GANArQ,KAAKouG,gBAAkBpgF,QAAShuB,KAAK04B,QAAU14B,KAAK04B,OAAO01E,iBACvDpuG,KAAK4pG,kBACL5pG,KAAKy0G,kBACJz0G,KAAKouG,kBACNpuG,KAAK4zG,YAAc5zG,KAAKywG,oBAAiBlnG,IAExCvJ,KAAKozE,SAAYA,IAAUe,EAC5B,OAKJ42B,GAAY/qG,KAAKwyG,gBAAiBxyG,KAAKozE,OAAOqxB,WAI9C,MAAMiQ,EAAiB10G,KAAKqoG,UAAUxoG,EAChC80G,EAAiB30G,KAAKqoG,UAAUlrG,GjBjyBlD,SAAyBqlG,EAAK6F,EAAWuM,EAAUC,GAAqB,GACpE,MAAMC,EAAaF,EAASh3G,OAC5B,IAAKk3G,EACD,OAGJ,IAAItsG,EACAgoE,EAFJ63B,EAAUxoG,EAAIwoG,EAAUlrG,EAAI,EAG5B,IAAK,IAAIX,EAAI,EAAGA,EAAIs4G,EAAYt4G,IAAK,CACjCgM,EAAOosG,EAASp4G,GAChBg0E,EAAQhoE,EAAK8/F,gBAKb,MAAMvzF,EAAWvM,EAAKuM,SAClBA,GACAA,EAASyR,OACkB,aAA3BzR,EAASyR,MAAMysB,UAGf4hE,GACArsG,EAAK6H,QAAQsiG,cACbnqG,EAAK+9B,QACL/9B,IAASA,EAAK0nB,MACdgzE,GAAaV,EAAK,CACd3iG,GAAI2I,EAAK+9B,OAAOkB,OAAO5nC,EACvB1C,GAAIqL,EAAK+9B,OAAOkB,OAAOtqC,IAG3BqzE,IAEA63B,EAAUxoG,GAAK2wE,EAAM3wE,EAAEgzC,MACvBw1D,EAAUlrG,GAAKqzE,EAAMrzE,EAAE01C,MAEvB0vD,GAAcC,EAAKhyB,IAEnBqkC,GAAsB96B,GAAavxE,EAAKoxE,eACxCspB,GAAaV,EAAKh6F,EAAKoxE,cAE/B,CAKAyuB,EAAUxoG,EAAI4iG,GAAc4F,EAAUxoG,GACtCwoG,EAAUlrG,EAAIslG,GAAc4F,EAAUlrG,EAC1C,CiBuvBY43G,CAAgB/0G,KAAKwyG,gBAAiBxyG,KAAKqoG,UAAWroG,KAAKoS,KAAM8hG,IAK7DpI,EAAK14B,QACJ04B,EAAKzzE,QACgB,IAArBr4B,KAAKqoG,UAAUxoG,GAAgC,IAArBG,KAAKqoG,UAAUlrG,IAC1C2uG,EAAKzzE,OAASyzE,EAAK14B,OAAOqxB,WAE9B,MAAM,OAAEpsE,GAAWyzE,EACnB,IAAKzzE,EAWD,YALIr4B,KAAKg1G,sBACLh1G,KAAKsoG,gBAAkB3G,KACvB3hG,KAAKg1G,oBAAsB,OAC3Bh1G,KAAK4rG,mBAIR5rG,KAAKsoG,kBACNtoG,KAAKsoG,gBAAkB3G,KACvB3hG,KAAKi1G,6BAA+BtT,MAExC,MAAMuT,EAA0Bl1G,KAAKg1G,oBAUrCnU,GAAa7gG,KAAKsoG,gBAAiBtoG,KAAKwyG,gBAAiBn6E,EAAQr4B,KAAK45E,cACtE55E,KAAKg1G,oBAAsBlI,GAAyB9sG,KAAKsoG,gBAAiBtoG,KAAKqoG,WAC3EroG,KAAKg1G,sBAAwBE,GAC7Bl1G,KAAKqoG,UAAUxoG,IAAM60G,GACrB10G,KAAKqoG,UAAUlrG,IAAMw3G,IACrB30G,KAAKyvG,cAAe,EACpBzvG,KAAK4rG,iBACL5rG,KAAK6vG,gBAAgB,mBAAoBx3E,IAK7Co1E,GAAoBG,wBACxB,CACA,IAAAlB,GACI1sG,KAAK0vG,WAAY,CAErB,CACA,IAAAxD,GACIlsG,KAAK0vG,WAAY,CAErB,CACA,cAAA9D,CAAeuJ,GAAY,GAEvB,GADAn1G,KAAKqQ,QAAQu7F,gBAAkB5rG,KAAKqQ,QAAQu7F,iBACxCuJ,EAAW,CACX,MAAM58F,EAAQvY,KAAKypG,WACnBlxF,GAASA,EAAMqzF,gBACnB,CACI5rG,KAAK4sG,eAAiB5sG,KAAK4sG,aAAa73F,WACxC/U,KAAK4sG,kBAAerjG,EAE5B,CACA,kBAAA2nG,CAAmB1gC,EAAOwgC,GAA+B,GACrD,MAAM3E,EAAWrsG,KAAKqsG,SAChB+I,EAAuB/I,EACvBA,EAASzyB,aACT,CAAC,EACDy7B,EAAc,IAAKr1G,KAAK45E,cACxBg6B,EAAcjS,KACf3hG,KAAK8zG,gBACL9zG,KAAK8zG,eAAezjG,QAAQ4gG,aAC7BjxG,KAAKywG,eAAiBzwG,KAAKq0G,0BAAuB9qG,GAEtDvJ,KAAKm0G,gCAAkCnD,EACvC,MAAMsE,EAAiB1T,KAGjB2T,GAFiBlJ,EAAWA,EAASnkC,YAAS3+D,MAC/BvJ,KAAKozE,OAASpzE,KAAKozE,OAAOlL,YAAS3+D,GAElDgP,EAAQvY,KAAKypG,WACb+L,GAAgBj9F,GAASA,EAAMmxF,QAAQ9rG,QAAU,EACjD63G,EAAyBznF,QAAQunF,IAClCC,IAC0B,IAA3Bx1G,KAAKqQ,QAAQo8F,YACZzsG,KAAKoS,KAAKyL,KAAK63F,KAEpB,IAAIC,EADJ31G,KAAK2vG,kBAAoB,EAEzB3vG,KAAK41G,eAAkBr5B,IACnB,MAAM5zB,EAAW4zB,EAAS,ILr6B1C,IAAmB5/E,EAAG6C,EKy6CNqrF,EAAQrrE,EAAMqL,EAAIlsB,EAngBlBk3G,GAAajC,EAAY/zG,EAAG2wE,EAAM3wE,EAAG8oD,GACrCktD,GAAajC,EAAYz2G,EAAGqzE,EAAMrzE,EAAGwrD,GACrC3oD,KAAK2zG,eAAeC,GAChB5zG,KAAKywG,gBACLzwG,KAAKq0G,sBACLr0G,KAAKozE,QACLpzE,KAAK8zG,gBACL9zG,KAAK8zG,eAAe1gC,SACpB4tB,GAAqBsU,EAAgBt1G,KAAKozE,OAAOqxB,UAAWzkG,KAAK8zG,eAAe1gC,OAAOqxB,WA2f3F5Z,EA1fW7qF,KAAKywG,eA0fRjxF,EA1fwBxf,KAAKq0G,qBA0fvBxpF,EA1f6CyqF,EA0fzC32G,EA1fyDgqD,EA2fvFmtD,GAAQjrB,EAAOhrF,EAAG2f,EAAK3f,EAAGgrB,EAAGhrB,EAAGlB,GAChCm3G,GAAQjrB,EAAO1tF,EAAGqiB,EAAKriB,EAAG0tB,EAAG1tB,EAAGwB,GAvfZg3G,ILp7BLh5G,EKq7BeqD,KAAKywG,eLr7BjBjxG,EKq7BiCm2G,ELp7B3Ch5G,EAAEkD,EAAEiD,MAAQtD,EAAEK,EAAEiD,KACpBnG,EAAEkD,EAAEm0B,MAAQx0B,EAAEK,EAAEm0B,KAChBr3B,EAAEQ,EAAE2F,MAAQtD,EAAErC,EAAE2F,KAChBnG,EAAEQ,EAAE62B,MAAQx0B,EAAErC,EAAE62B,OKk7BAh0B,KAAKquG,mBAAoB,GAExBsH,IACDA,EAAqB/T,MACzBmJ,GAAY4K,EAAoB31G,KAAKywG,iBAErC8E,IACAv1G,KAAKssG,gBAAkB+I,ER37B3C,SAAmBh9E,EAAQ09E,EAAQjK,EAAMnjD,EAAU8sD,EAAwBD,GACnEC,GACAp9E,EAAOua,QAAUisC,GAAI,OAEJt1E,IAAjBuiG,EAAKl5D,QAAwBk5D,EAAKl5D,QAAU,EAAG83D,GAAgB/hD,IAC/DtwB,EAAO29E,YAAcn3B,QAAuBt1E,IAAnBwsG,EAAOnjE,QAAwBmjE,EAAOnjE,QAAU,EAAG,EAAGg4D,GAAiBjiD,KAE3F6sD,IACLn9E,EAAOua,QAAUisC,QAAuBt1E,IAAnBwsG,EAAOnjE,QAAwBmjE,EAAOnjE,QAAU,OAAoBrpC,IAAjBuiG,EAAKl5D,QAAwBk5D,EAAKl5D,QAAU,EAAG+V,IAK3H,IAAK,IAAInsD,EAAI,EAAGA,EAAI6tG,GAAY7tG,IAAK,CACjC,MAAMy5G,EAAc,SAAS7L,GAAQ5tG,WACrC,IAAI05G,EAAe1L,GAAUuL,EAAQE,GACjCE,EAAa3L,GAAUsB,EAAMmK,QACZ1sG,IAAjB2sG,QAA6C3sG,IAAf4sG,IAElCD,IAAiBA,EAAe,GAChCC,IAAeA,EAAa,GACI,IAAjBD,GACI,IAAfC,GACA5L,GAAK2L,KAAkB3L,GAAK4L,IAE5B99E,EAAO49E,GAAe/3G,KAAK81B,IAAI6qD,GAAIyrB,GAAS4L,GAAe5L,GAAS6L,GAAaxtD,GAAW,IACxFyuB,EAAQ92E,KAAK61G,IAAe/+B,EAAQ92E,KAAK41G,MACzC79E,EAAO49E,IAAgB,MAI3B59E,EAAO49E,GAAeE,EAE9B,EAIIJ,EAAOl9B,QAAUizB,EAAKjzB,UACtBxgD,EAAOwgD,OAASgG,GAAIk3B,EAAOl9B,QAAU,EAAGizB,EAAKjzB,QAAU,EAAGlwB,GAElE,CQo5BoBytD,CAAUf,EAAaD,EAAsBp1G,KAAK45E,aAAcjxB,EAAU8sD,EAAwBD,IAEtGx1G,KAAKkwB,KAAKkiF,2BACVpyG,KAAK4rG,iBACL5rG,KAAK2vG,kBAAoBhnD,CAAQ,EAErC3oD,KAAK41G,eAAe51G,KAAKqQ,QAAQ4gG,WAAa,IAAO,EACzD,CACA,cAAAvX,CAAerpF,GACXrQ,KAAK6vG,gBAAgB,kBACrB7vG,KAAK4pG,kBAAoB5pG,KAAK4pG,iBAAiBtY,OAC3CtxF,KAAK4sG,cAAgB5sG,KAAK4sG,aAAahD,kBACvC5pG,KAAK4sG,aAAahD,iBAAiBtY,OAEnCtxF,KAAKy0G,oBACL,SAAYz0G,KAAKy0G,kBACjBz0G,KAAKy0G,sBAAmBlrG,GAO5BvJ,KAAKy0G,iBAAmB,MAAM7/B,QAAO,KACjCizB,GAAsBC,wBAAyB,EAC/C9nG,KAAK4pG,iBI39BrB,SAA4B7/F,EAAO02C,EAAWpwC,GAC1C,MAAMgmG,EAAgBjgC,EAAcrsE,GAASA,EAAQkwF,GAAYlwF,GAEjE,OADAssG,EAAcz1F,MAAMg2E,GAAmB,GAAIyf,EAAe51D,EAAWpwC,IAC9DgmG,EAAc32D,SACzB,CJu9BwC42D,CAAmB,EAh8BnC,IAg8BuD,IACxDjmG,EACHmiD,SAAW+pB,IACPv8E,KAAK41G,eAAer5B,GACpBlsE,EAAQmiD,UAAYniD,EAAQmiD,SAAS+pB,EAAO,EAEhDvpC,WAAY,KACR3iC,EAAQ2iC,YAAc3iC,EAAQ2iC,aAC9BhzC,KAAKu2G,mBAAmB,IAG5Bv2G,KAAK4sG,eACL5sG,KAAK4sG,aAAahD,iBAAmB5pG,KAAK4pG,kBAE9C5pG,KAAKy0G,sBAAmBlrG,CAAS,GAEzC,CACA,iBAAAgtG,GACQv2G,KAAK4sG,eACL5sG,KAAK4sG,aAAahD,sBAAmBrgG,EACrCvJ,KAAK4sG,aAAaR,qBAAkB7iG,GAExC,MAAMgP,EAAQvY,KAAKypG,WACnBlxF,GAASA,EAAMo0F,wBACf3sG,KAAK4sG,aACD5sG,KAAK4pG,iBACD5pG,KAAKssG,qBACD/iG,EACZvJ,KAAK6vG,gBAAgB,oBACzB,CACA,eAAAO,GACQpwG,KAAK4pG,mBACL5pG,KAAK41G,gBAAkB51G,KAAK41G,eAh+BpB,KAi+BR51G,KAAK4pG,iBAAiBtY,QAE1BtxF,KAAKu2G,mBACT,CACA,uBAAAC,GACI,MAAM1K,EAAO9rG,KAAKi0G,UAClB,IAAI,qBAAEK,EAAoB,OAAEj8E,EAAM,OAAE+6C,EAAM,aAAEwG,GAAiBkyB,EAC7D,GAAKwI,GAAyBj8E,GAAW+6C,EAAzC,CAOA,GAAIpzE,OAAS8rG,GACT9rG,KAAKozE,QACLA,GACAqjC,GAA0Bz2G,KAAKqQ,QAAQqmG,cAAe12G,KAAKozE,OAAOqxB,UAAWrxB,EAAOqxB,WAAY,CAChGpsE,EAASr4B,KAAKq4B,QAAUupE,KACxB,MAAM+U,EAAUpW,GAAWvgG,KAAKozE,OAAOqxB,UAAU5kG,GACjDw4B,EAAOx4B,EAAEiD,IAAMgpG,EAAKzzE,OAAOx4B,EAAEiD,IAC7Bu1B,EAAOx4B,EAAEm0B,IAAMqE,EAAOx4B,EAAEiD,IAAM6zG,EAC9B,MAAMC,EAAUrW,GAAWvgG,KAAKozE,OAAOqxB,UAAUtnG,GACjDk7B,EAAOl7B,EAAE2F,IAAMgpG,EAAKzzE,OAAOl7B,EAAE2F,IAC7Bu1B,EAAOl7B,EAAE62B,IAAMqE,EAAOl7B,EAAE2F,IAAM8zG,CAClC,CACA7L,GAAYuJ,EAAsBj8E,GAMlC6qE,GAAaoR,EAAsB16B,GAOnCinB,GAAa7gG,KAAKi1G,6BAA8Bj1G,KAAKwyG,gBAAiB8B,EAAsB16B,EA/BlF,CAgCd,CACA,kBAAAy2B,CAAmBl8B,EAAU3rE,GACpBxI,KAAK4vG,YAAY7pG,IAAIouE,IACtBn0E,KAAK4vG,YAAYxtG,IAAI+xE,EAAU,IAAIw3B,IAEzB3rG,KAAK4vG,YAAY5sG,IAAImxE,GAC7B11E,IAAI+J,GACV,MAAMs7B,EAASt7B,EAAK6H,QAAQwmG,uBAC5BruG,EAAK+gG,QAAQ,CACTp1D,WAAYrQ,EAASA,EAAOqQ,gBAAa5qC,EACzC0iG,sBAAuBnoE,GAAUA,EAAOgzE,4BAClChzE,EAAOgzE,4BAA4BtuG,QACnCe,GAEd,CACA,MAAAsgG,GACI,MAAMtxF,EAAQvY,KAAKypG,WACnB,OAAOlxF,GAAQA,EAAMuzF,OAAS9rG,IAClC,CACA,OAAAi0G,GACI,IAAIpnC,EACJ,MAAM,SAAEsH,GAAan0E,KAAKqQ,QAC1B,OAAO8jE,IAAuC,QAA1BtH,EAAK7sE,KAAKypG,kBAA+B,IAAP58B,OAAgB,EAASA,EAAGi/B,OAAgB9rG,IACtG,CACA,WAAA+2G,GACI,IAAIlqC,EACJ,MAAM,SAAEsH,GAAan0E,KAAKqQ,QAC1B,OAAO8jE,EAAsC,QAA1BtH,EAAK7sE,KAAKypG,kBAA+B,IAAP58B,OAAgB,EAASA,EAAGg/B,cAAWtiG,CAChG,CACA,QAAAkgG,GACI,MAAM,SAAEt1B,GAAan0E,KAAKqQ,QAC1B,GAAI8jE,EACA,OAAOn0E,KAAKkwB,KAAK0/E,YAAY5sG,IAAImxE,EACzC,CACA,OAAAo1B,EAAQ,WAAEmF,EAAU,WAAEv6D,EAAU,sBAAE83D,GAA2B,CAAC,GAC1D,MAAM1zF,EAAQvY,KAAKypG,WACflxF,GACAA,EAAMgxF,QAAQvpG,KAAMisG,GACpByC,IACA1uG,KAAKsoG,qBAAkB/+F,EACvBvJ,KAAK0uG,YAAa,GAElBv6D,GACAn0C,KAAKopG,WAAW,CAAEj1D,cAC1B,CACA,QAAAq1D,GACI,MAAMjxF,EAAQvY,KAAKypG,WACnB,QAAIlxF,GACOA,EAAMixF,SAASxpG,KAK9B,CACA,aAAAwxG,GACI,MAAM,cAAEl9B,GAAkBt0E,KAAKqQ,QAC/B,IAAKikE,EACD,OAEJ,IAAI0iC,GAAY,EAKhB,MAAM,aAAEp9B,GAAiBtF,EAQzB,IAPIsF,EAAaf,QACbe,EAAad,SACbc,EAAab,SACba,EAAaZ,WACbg+B,GAAY,IAGXA,EACD,OACJ,MAAMC,EAAc,CAAC,EAErB,IAAK,IAAIz6G,EAAI,EAAGA,EAAIgxG,GAAc5vG,OAAQpB,IAAK,CAC3C,MAAM6J,EAAM,SAAWmnG,GAAchxG,GAEjCo9E,EAAavzE,KACb4wG,EAAY5wG,GAAOuzE,EAAavzE,GAChCiuE,EAAc4iC,eAAe7wG,EAAK,GAE1C,CAGAiuE,EAAc1qE,SAEd,IAAK,MAAMvD,KAAO4wG,EACd3iC,EAAc4iC,eAAe7wG,EAAK4wG,EAAY5wG,IAIlDiuE,EAAcs3B,gBAClB,CACA,mBAAA5tB,CAAoBF,EAAY,CAAC,GAC7B,IAAIjR,EAAIme,EAER,MAAMmsB,EAAS,CAAC,EAChB,IAAKn3G,KAAK+U,UAAY/U,KAAKoiE,MACvB,OAAO+0C,EACX,IAAKn3G,KAAK0vG,UACN,MAAO,CAAE0H,WAAY,UAGrBD,EAAOC,WAAa,GAExB,MAAMv9B,EAAoB75E,KAAKyxG,uBAC/B,GAAIzxG,KAAK0uG,WAQL,OAPA1uG,KAAK0uG,YAAa,EAClByI,EAAOvkE,QAAU,GACjBukE,EAAOE,cACHr4B,GAAmBlB,EAAUu5B,gBAAkB,GACnDF,EAAO3yC,UAAYqV,EACbA,EAAkB75E,KAAK45E,aAAc,IACrC,OACCu9B,EAEX,MAAMrL,EAAO9rG,KAAKi0G,UAClB,IAAKj0G,KAAKsoG,kBAAoBtoG,KAAKozE,SAAW04B,EAAKzzE,OAAQ,CACvD,MAAMi/E,EAAc,CAAC,EAerB,OAdIt3G,KAAKqQ,QAAQ8jE,WACbmjC,EAAY1kE,aACsBrpC,IAA9BvJ,KAAK45E,aAAahnC,QACZ5yC,KAAK45E,aAAahnC,QAClB,EACV0kE,EAAYD,cACRr4B,GAAmBlB,EAAUu5B,gBAAkB,IAEnDr3G,KAAKyvG,eAAiB11B,GAAa/5E,KAAK45E,gBACxC09B,EAAY9yC,UAAYqV,EAClBA,EAAkB,CAAC,EAAG,IACtB,OACN75E,KAAKyvG,cAAe,GAEjB6H,CACX,CACA,MAAMC,EAAiBzL,EAAKQ,iBAAmBR,EAAKlyB,aACpD55E,KAAKw2G,0BACLW,EAAO3yC,UAAYsoC,GAAyB9sG,KAAKi1G,6BAA8Bj1G,KAAKqoG,UAAWkP,GAC3F19B,IACAs9B,EAAO3yC,UAAYqV,EAAkB09B,EAAgBJ,EAAO3yC,YAEhE,MAAM,EAAE3kE,EAAC,EAAE1C,GAAM6C,KAAKsoG,gBACtB6O,EAAOr9B,gBAAkB,GAAc,IAAXj6E,EAAE8yB,WAA4B,IAAXx1B,EAAEw1B,YAC7Cm5E,EAAKQ,gBAKL6K,EAAOvkE,QACHk5D,IAAS9rG,KACiG,QAAnGgrF,EAAuC,QAAjCne,EAAK0qC,EAAe3kE,eAA4B,IAAPi6B,EAAgBA,EAAK7sE,KAAK45E,aAAahnC,eAA4B,IAAPo4C,EAAgBA,EAAK,EACjIhrF,KAAKosG,gBACDpsG,KAAK45E,aAAahnC,QAClB2kE,EAAevB,YAO7BmB,EAAOvkE,QACHk5D,IAAS9rG,UACwBuJ,IAA3BguG,EAAe3kE,QACX2kE,EAAe3kE,QACf,QAC2BrpC,IAA/BguG,EAAevB,YACXuB,EAAevB,YACf,EAKlB,IAAK,MAAM3vG,KAAO2vE,EAAiB,CAC/B,QAA4BzsE,IAAxBguG,EAAelxG,GACf,SACJ,MAAM,QAAE8hG,EAAO,QAAE+B,GAAYl0B,EAAgB3vE,GAOvCmxG,EAAiC,SAArBL,EAAO3yC,UACnB+yC,EAAelxG,GACf8hG,EAAQoP,EAAelxG,GAAMylG,GACnC,GAAI5B,EAAS,CACT,MAAMuN,EAAMvN,EAAQtsG,OACpB,IAAK,IAAIpB,EAAI,EAAGA,EAAIi7G,EAAKj7G,IACrB26G,EAAOjN,EAAQ1tG,IAAMg7G,CAE7B,MAEIL,EAAO9wG,GAAOmxG,CAEtB,CAYA,OANIx3G,KAAKqQ,QAAQ8jE,WACbgjC,EAAOE,cACHvL,IAAS9rG,KACHg/E,GAAmBlB,EAAUu5B,gBAAkB,GAC/C,QAEPF,CACX,CACA,aAAAjF,GACIlyG,KAAKmsG,WAAansG,KAAKqsG,cAAW9iG,CACtC,CAEA,SAAAmuG,GACI13G,KAAKkwB,KAAKg/E,MAAMlrG,SAASwE,IAAW,IAAIqkE,EAAI,OAAwC,QAAhCA,EAAKrkE,EAAKohG,wBAAqC,IAAP/8B,OAAgB,EAASA,EAAGykB,MAAM,IAC9HtxF,KAAKkwB,KAAKg/E,MAAMlrG,QAAQ6tG,IACxB7xG,KAAKkwB,KAAK0/E,YAAYngE,OAC1B,EAER,CACA,SAAS23D,GAAa5+F,GAClBA,EAAK4+F,cACT,CACA,SAAS4K,GAAmBxpG,GACxB,IAAIqkE,EACJ,MAAMw/B,GAAuC,QAA1Bx/B,EAAKrkE,EAAK2jG,kBAA+B,IAAPt/B,OAAgB,EAASA,EAAGw/B,WAAa7jG,EAAK6jG,SACnG,GAAI7jG,EAAKqhG,UACLrhG,EAAK4qE,QACLi5B,GACA7jG,EAAKunG,aAAa,aAAc,CAChC,MAAQtL,UAAWrxB,EAAQggC,YAAauE,GAAmBnvG,EAAK4qE,QAC1D,cAAEsjC,GAAkBluG,EAAK6H,QACzB6jG,EAAW7H,EAASnkC,SAAW1/D,EAAK4qE,OAAOlL,OAG3B,SAAlBwuC,EACA7U,IAAUx7D,IACN,MAAMuxE,EAAe1D,EACf7H,EAAS+G,YAAY/sE,GACrBgmE,EAAS5H,UAAUp+D,GACnBzoC,EAAS2iG,GAAWqX,GAC1BA,EAAa90G,IAAMswE,EAAO/sC,GAAMvjC,IAChC80G,EAAa5jF,IAAM4jF,EAAa90G,IAAMlF,CAAM,IAG3C64G,GAA0BC,EAAerK,EAAS5H,UAAWrxB,IAClEyuB,IAAUx7D,IACN,MAAMuxE,EAAe1D,EACf7H,EAAS+G,YAAY/sE,GACrBgmE,EAAS5H,UAAUp+D,GACnBzoC,EAAS2iG,GAAWntB,EAAO/sC,IACjCuxE,EAAa5jF,IAAM4jF,EAAa90G,IAAMlF,EAIlC4K,EAAKioG,iBAAmBjoG,EAAKohG,mBAC7BphG,EAAK6lG,mBAAoB,EACzB7lG,EAAKioG,eAAepqE,GAAMrS,IACtBxrB,EAAKioG,eAAepqE,GAAMvjC,IAAMlF,EACxC,IAGR,MAAMi6G,EAAclW,KACpBd,GAAagX,EAAazkC,EAAQi5B,EAAS5H,WAC3C,MAAMqT,EAAcnW,KAChBuS,EACArT,GAAaiX,EAAatvG,EAAK+qG,eAAeoE,GAAgB,GAAOtL,EAAS+G,aAG9EvS,GAAaiX,EAAa1kC,EAAQi5B,EAAS5H,WAE/C,MAAMkD,GAAoB6D,GAAYqM,GACtC,IAAIvH,GAA2B,EAC/B,IAAK9nG,EAAK2jG,WAAY,CAClB,MAAM2H,EAAiBtrG,EAAK4rG,6BAK5B,GAAIN,IAAmBA,EAAe3H,WAAY,CAC9C,MAAQE,SAAU0L,EAAgB3kC,OAAQ4kC,GAAiBlE,EAC3D,GAAIiE,GAAkBC,EAAc,CAChC,MAAMC,EAAmBrW,KACzBZ,GAAqBiX,EAAkB5L,EAAS5H,UAAWsT,EAAetT,WAC1E,MAAM6Q,EAAiB1T,KACvBZ,GAAqBsU,EAAgBliC,EAAQ4kC,EAAavT,WACrDgH,GAAiBwM,EAAkB3C,KACpChF,GAA2B,GAE3BwD,EAAezjG,QAAQ4gG,aACvBzoG,EAAKioG,eAAiB6E,EACtB9sG,EAAK6rG,qBAAuB4D,EAC5BzvG,EAAKsrG,eAAiBA,EAE9B,CACJ,CACJ,CACAtrG,EAAKqnG,gBAAgB,YAAa,CAC9Bz8B,SACAi5B,WACA77B,MAAOsnC,EACPD,cACAlQ,mBACA2I,4BAER,MACK,GAAI9nG,EAAKqhG,SAAU,CACpB,MAAM,eAAEp8D,GAAmBjlC,EAAK6H,QAChCo9B,GAAkBA,GACtB,CAMAjlC,EAAK6H,QAAQ8jC,gBAAa5qC,CAC9B,CACA,SAAS4lG,GAAoB3mG,GAIzBilG,GAAoBC,aACfllG,EAAKkwB,SAQLlwB,EAAK+rG,iBACN/rG,EAAK6lG,kBAAoB7lG,EAAKkwB,OAAO21E,mBAOzC7lG,EAAK8lG,0BAA4B9lG,EAAK8lG,wBAA0BtgF,QAAQxlB,EAAK6lG,mBACzE7lG,EAAKkwB,OAAO21E,mBACZ7lG,EAAKkwB,OAAO41E,0BAChB9lG,EAAK+lG,mBAAqB/lG,EAAK+lG,iBAAmB/lG,EAAKkwB,OAAO61E,kBAClE,CACA,SAASe,GAAgB9mG,GACrBA,EAAK6lG,kBACD7lG,EAAK8lG,wBACD9lG,EAAK+lG,kBACD,CAChB,CACA,SAAS2D,GAAc1pG,GACnBA,EAAK0pG,eACT,CACA,SAASL,GAAkBrpG,GACvBA,EAAKqpG,mBACT,CACA,SAASC,GAAmBtpG,GACxBA,EAAKgkG,eAAgB,CACzB,CACA,SAASuF,GAAoBvpG,GACzB,MAAM,cAAE8rE,GAAkB9rE,EAAK6H,QAC3BikE,GAAiBA,EAAcp/C,WAAWgjF,uBAC1C5jC,EAAc2jB,OAAO,uBAEzBzvF,EAAK0lG,gBACT,CACA,SAASkC,GAAgB5nG,GACrBA,EAAK4nG,kBACL5nG,EAAKorG,YAAcprG,EAAKioG,eAAiBjoG,EAAK6vB,YAAS9uB,EACvDf,EAAK6lG,mBAAoB,CAC7B,CACA,SAASe,GAAmB5mG,GACxBA,EAAK4mG,oBACT,CACA,SAASC,GAAe7mG,GACpBA,EAAK6mG,gBACT,CACA,SAASmC,GAAchpG,GACnBA,EAAKgpG,eACT,CACA,SAASW,GAAoB55F,GACzBA,EAAMs0F,oBACV,CACA,SAASgJ,GAAahrB,EAAQra,EAAO7xE,GACjCksF,EAAO+V,UAAY/hB,GAAIrO,EAAMowB,UAAW,EAAGjiG,GAC3CksF,EAAOh4C,MAAQgsC,GAAIrO,EAAM39B,MAAO,EAAGl0C,GACnCksF,EAAOl4D,OAAS69C,EAAM79C,OACtBk4D,EAAO8V,YAAcnwB,EAAMmwB,WAC/B,CACA,SAASmV,GAAQjrB,EAAQrrE,EAAMqL,EAAIlsB,GAC/BksF,EAAO/nF,IAAM+7E,GAAIr/D,EAAK1c,IAAK+nB,EAAG/nB,IAAKnE,GACnCksF,EAAO72D,IAAM6qD,GAAIr/D,EAAKwU,IAAKnJ,EAAGmJ,IAAKr1B,EACvC,CAKA,SAAS+2G,GAAoBltG,GACzB,OAAQA,EAAK8jG,sBAAwD/iG,IAArCf,EAAK8jG,gBAAgB0J,WACzD,CACA,MAAMrF,GAA0B,CAC5B7mE,SAAU,IACV9E,KAAM,CAAC,GAAK,EAAG,GAAK,IAElBmzE,GAAqBC,GAAgC,oBAAdv2F,WACzCA,UAAUI,UAAUjjB,cAAcof,SAASg6F,GAMzCC,GAAaF,GAAkB,kBAAoBA,GAAkB,WACrEj6G,KAAKgF,MACL0uE,GAAA,EACN,SAASuhC,GAAU9sE,GAEfA,EAAKvjC,IAAMu1G,GAAWhyE,EAAKvjC,KAC3BujC,EAAKrS,IAAMqkF,GAAWhyE,EAAKrS,IAC/B,CAKA,SAASyiF,GAA0BC,EAAerK,EAAUj5B,GACxD,MAA0B,aAAlBsjC,GACe,oBAAlBA,IACIlW,GAAOkL,GAAYW,GAAWX,GAAYt4B,GAAS,GAChE,CKh9CA,MAAMklC,GAAyBzK,GAAqB,CAChDC,qBAAsB,CAACtiG,EAAKysF,IAAW9X,GAAY30E,EAAK,SAAUysF,GAClE+V,cAAe,KAAM,CACjBnuG,EAAG4I,SAASonB,gBAAgBwX,YAAc5+B,SAASkd,KAAK0hB,WACxDlqC,EAAGsL,SAASonB,gBAAgBhkB,WAAapD,SAASkd,KAAK9Z,YAE3DoiG,kBAAmB,KAAM,ICNvBjI,GAAqB,CACvBr6F,aAASpC,GAEPgvG,GAAqB1K,GAAqB,CAC5CG,cAAgBj5F,IAAa,CACzBlV,EAAGkV,EAASsyB,WACZlqC,EAAG4X,EAASlJ,YAEhBkiG,cAAe,KACX,IAAK/H,GAAmBr6F,QAAS,CAC7B,MAAM6sG,EAAe,IAAIF,GAAuB,CAAC,GACjDE,EAAanjC,MAAM1tE,QACnB6wG,EAAapP,WAAW,CAAEuJ,cAAc,IACxC3M,GAAmBr6F,QAAU6sG,CACjC,CACA,OAAOxS,GAAmBr6F,OAAO,EAErCuiG,eAAgB,CAACn5F,EAAUhL,KACvBgL,EAASyR,MAAMg+C,eAAsBj7D,IAAVQ,EAAsBA,EAAQ,MAAM,EAEnEkkG,kBAAoBl5F,GAAaiZ,QAAuD,UAA/CrmB,OAAOs4D,iBAAiBlrD,GAAU9M,YClBzE8qE,GAAO,CACTG,IAAK,CACDsO,QrBIR,cAAyBA,GACrB,WAAAjsE,GACIytE,SAASzjF,WACTS,KAAKy4G,0BAA4B7mC,GAAA,CACrC,CACA,aAAA8mC,CAAcC,GACV34G,KAAK44G,QAAU,IAAIha,GAAW+Z,EAAkB34G,KAAK64G,oBAAqB,CAAE/mC,mBAAoB9xE,KAAKwI,KAAKw8F,yBAC9G,CACA,iBAAA6T,GACI,MAAM,kBAAEC,EAAiB,WAAEC,EAAU,MAAEC,EAAK,SAAEC,GAAaj5G,KAAKwI,KAAK0sB,WACrE,MAAO,CACH6qE,eAAgB6H,GAAakR,GAC7B/kD,QAAS6zC,GAAamR,GACtBxZ,OAAQyZ,EACRrZ,MAAO,CAACp1E,EAAOyuB,YACJh5C,KAAK44G,QACRK,GACA,MAAMrkC,QAAO,IAAMqkC,EAAS1uF,EAAOyuB,IACvC,EAGZ,CACA,KAAAq8B,GACIr1E,KAAKy4G,0BAA4B93B,GAAgB3gF,KAAKwI,KAAKmD,QAAS,eAAgB4e,GAAUvqB,KAAK04G,cAAcnuF,IACrH,CACA,MAAAqqD,GACI50E,KAAK44G,SAAW54G,KAAK44G,QAAQ3Y,eAAejgG,KAAK64G,oBACrD,CACA,OAAAvjC,GACIt1E,KAAKy4G,4BACLz4G,KAAK44G,SAAW54G,KAAK44G,QAAQtyD,KACjC,IqBjCAysB,KAAM,CACFyO,QCNR,cAA0BA,GACtB,WAAAjsE,CAAY/M,GACRw6E,MAAMx6E,GACNxI,KAAKk5G,oBAAsBtnC,GAAA,EAC3B5xE,KAAKggG,gBAAkBpuB,GAAA,EACvB5xE,KAAK0zF,SAAW,IAAI8P,GAA0Bh7F,EAClD,CACA,KAAA6sE,GAGI,MAAM,aAAE8jC,GAAiBn5G,KAAKwI,KAAK0sB,WAC/BikF,IACAn5G,KAAKk5G,oBAAsBC,EAAa5a,UAAUv+F,KAAK0zF,WAE3D1zF,KAAKggG,gBAAkBhgG,KAAK0zF,SAAS2T,gBAAkBz1B,GAAA,CAC3D,CACA,OAAA0D,GACIt1E,KAAKk5G,sBACLl5G,KAAKggG,iBACT,GDZIoZ,eAAgBb,GAChBtkC,cAAa,KECfolC,GAAwB,uDAQ9B,MAAMC,GAAW,EACjB,SAASC,GAAiB5tG,EAASvB,EAASijG,EAAQ,IAChD,QAAUA,GAASiM,GAAU,yDAAyD3tG,yDACtF,MAAO8qE,EAAO+iC,GAVlB,SAA0B7tG,GACtB,MAAMpL,EAAQ84G,GAAsBplF,KAAKtoB,GACzC,IAAKpL,EACD,MAAO,CAAC,GACZ,MAAO,CAAEk2E,EAAO+iC,GAAYj5G,EAC5B,MAAO,CAACk2E,EAAO+iC,EACnB,CAI8BC,CAAiB9tG,GAE3C,IAAK8qE,EACD,OAEJ,MAAMqJ,EAAWn4E,OAAOs4D,iBAAiB71D,GAAS81D,iBAAiBuW,GACnE,GAAIqJ,EAAU,CACV,MAAM45B,EAAU55B,EAASlnE,OACzB,OAAOi/E,GAAkB6hB,GAAWhyE,WAAWgyE,GAAWA,CAC9D,CACK,OAAI/iC,EAAmB6iC,GAEjBD,GAAiBC,EAAUpvG,EAASijG,EAAQ,GAG5CmM,CAEf,CCjCA,MAAMG,GAAiB,IAAIt8F,IAAI,CAC3B,QACA,SACA,MACA,OACA,QACA,SACA,IACA,IACA,aACA,eAEEu8F,GAAmBvzG,GAAQszG,GAAe5zG,IAAIM,GAI9CwzG,GAAiB97G,GAAMA,IAAM84E,GAAU94E,IAAMokE,EAC7C23C,GAAmB,CAACv1C,EAAQw1C,IAAQryE,WAAW68B,EAAOhnE,MAAM,MAAMw8G,IAClEC,GAAyB,CAACC,EAAMC,IAAS,CAACC,GAAS31C,gBACrD,GAAkB,SAAdA,IAAyBA,EACzB,OAAO,EACX,MAAM41C,EAAW51C,EAAUjkE,MAAM,sBACjC,GAAI65G,EACA,OAAON,GAAiBM,EAAS,GAAIF,GAEpC,CACD,MAAM31C,EAASC,EAAUjkE,MAAM,oBAC/B,OAAIgkE,EACOu1C,GAAiBv1C,EAAO,GAAI01C,GAG5B,CAEf,GAEEI,GAAgB,IAAIh9F,IAAI,CAAC,IAAK,IAAK,MACnCi9F,GAAgCrkC,EAAmBjlE,QAAQ3K,IAASg0G,GAAct0G,IAAIM,KAe5F,MAAMk0G,GAAmB,CAErB1wF,MAAO,EAAGhqB,MAAO24E,cAAc,IAAKF,eAAe,OAAUz4E,EAAEm0B,IAAMn0B,EAAEiD,IAAM4kC,WAAW8wC,GAAe9wC,WAAW4wC,GAClHxuD,OAAQ,EAAG3sB,MAAOk7E,aAAa,IAAKE,gBAAgB,OAAUp7E,EAAE62B,IAAM72B,EAAE2F,IAAM4kC,WAAW2wC,GAAc3wC,WAAW6wC,GAClH3uD,IAAK,CAACuwF,GAASvwF,SAAU8d,WAAW9d,GACpCud,KAAM,CAACgzE,GAAShzE,UAAWO,WAAWP,GACtCu8B,OAAQ,EAAGvmE,MAAOysB,SAAU8d,WAAW9d,IAAQzsB,EAAE62B,IAAM72B,EAAE2F,KACzD6gE,MAAO,EAAG9jE,MAAOsnC,UAAWO,WAAWP,IAAStnC,EAAEm0B,IAAMn0B,EAAEiD,KAE1DjD,EAAGm6G,GAAuB,EAAG,IAC7B78G,EAAG68G,GAAuB,EAAG,KAGjCO,GAAiBphC,WAAaohC,GAAiB16G,EAC/C06G,GAAiBnhC,WAAamhC,GAAiBp9G,EAC/C,MA6BMq9G,GAAmC,CAAClmC,EAAej8C,EAAQ1F,EAAS,CAAC,EAAGotD,EAAgB,CAAC,KAC3F1nD,EAAS,IAAKA,GACd0nD,EAAgB,IAAKA,GACrB,MAAM06B,EAAuBv0G,OAAOwQ,KAAK2hB,GAAQrnB,OAAO4oG,IAGxD,IAAIc,EAAyB,GACzBC,GAAsC,EAC1C,MAAMC,EAAuB,GAkF7B,GAjFAH,EAAqBz2G,SAASqC,IAC1B,MAAM0D,EAAQuqE,EAAckmB,SAASn0F,GACrC,IAAKiuE,EAAcimB,SAASl0F,GACxB,OACJ,IAAImZ,EAAOmT,EAAOtsB,GACdw0G,EAAWzgB,GAAuB56E,GACtC,MAAMqL,EAAKwN,EAAOhyB,GAClB,IAAIy0G,EAKJ,GAAIn8B,GAAkB9zD,GAAK,CACvB,MAAMkwF,EAAelwF,EAAGjtB,OAClBo9G,EAAsB,OAAVnwF,EAAG,GAAc,EAAI,EACvCrL,EAAOqL,EAAGmwF,GACVH,EAAWzgB,GAAuB56E,GAClC,IAAK,IAAIhjB,EAAIw+G,EAAWx+G,EAAIu+G,GAKV,OAAVlwF,EAAGruB,GAL+BA,IAOjCs+G,GAMD,QAAU1gB,GAAuBvvE,EAAGruB,MAAQs+G,EAAQ,2CALpDA,EAAS1gB,GAAuBvvE,EAAGruB,KACnC,QAAUs+G,IAAWD,GAChBhB,GAAcgB,IAAahB,GAAciB,GAAU,gEAMpE,MAEIA,EAAS1gB,GAAuBvvE,GAEpC,GAAIgwF,IAAaC,EAGb,GAAIjB,GAAcgB,IAAahB,GAAciB,GAAS,CAClD,MAAMnvG,EAAU5B,EAAM/G,MACC,iBAAZ2I,GACP5B,EAAM3H,IAAIslC,WAAW/7B,IAEP,iBAAPkf,EACPwN,EAAOhyB,GAAOqhC,WAAW7c,GAEpBhtB,MAAMs5C,QAAQtsB,IAAOiwF,IAAW34C,IACrC9pC,EAAOhyB,GAAOwkB,EAAG/Z,IAAI42B,YAE7B,MACUmzE,aAA2C,EAASA,EAASr2C,aAClEs2C,aAAuC,EAASA,EAAOt2C,aAC9C,IAAThlD,GAAqB,IAAPqL,GAGF,IAATrL,EACAzV,EAAM3H,IAAI04G,EAAOt2C,UAAUhlD,IAG3B6Y,EAAOhyB,GAAOw0G,EAASr2C,UAAU35C,IAMhC8vF,IACDD,EAvIpB,SAAyCpmC,GACrC,MAAM2mC,EAAoB,GAW1B,OAVAX,GAA8Bt2G,SAASqC,IACnC,MAAM0D,EAAQuqE,EAAckmB,SAASn0F,QACvBkD,IAAVQ,IACAkxG,EAAkBrpG,KAAK,CAACvL,EAAK0D,EAAM/G,QACnC+G,EAAM3H,IAAIiE,EAAI8M,WAAW,SAAW,EAAI,GAC5C,IAGA8nG,EAAkBr9G,QAClB02E,EAAc1qE,SACXqxG,CACX,CA2HwBC,CAAgC5mC,GACpCqmC,GAAsC,GAE1CC,EAAqBhpG,KAAKvL,GAC1B05E,EAAc15E,QACakD,IAAvBw2E,EAAc15E,GACR05E,EAAc15E,GACdgyB,EAAOhyB,GACjB0D,EAAMyvF,KAAK3uE,GAEnB,IAEA+vF,EAAqBh9G,OAAQ,CAC7B,MAAMgK,EAAUgzG,EAAqB7oG,QAAQ,WAAa,EACpDpK,OAAOu/B,YACP,KACAi0E,EA3HmB,EAAC9iF,EAAQi8C,EAAe8mC,KACrD,MAAMC,EAAa/mC,EAAc6uB,qBAC3B/4F,EAAUkqE,EAAc3oE,QACxB2vG,EAAuBr7C,iBAAiB71D,IACxC,QAAE6oC,GAAYqoE,EACd3oF,EAAS,CAAC,EAGA,SAAZsgB,GACAqhC,EAAc4iC,eAAe,UAAW7+E,EAAO4a,SAAW,SAK9DmoE,EAAYp3G,SAASqC,IACjBssB,EAAOtsB,GAAOk0G,GAAiBl0G,GAAKg1G,EAAYC,EAAqB,IAGzEhnC,EAAc1qE,SACd,MAAM2xG,EAAajnC,EAAc6uB,qBAQjC,OAPAiY,EAAYp3G,SAASqC,IAGjB,MAAM0D,EAAQuqE,EAAckmB,SAASn0F,GACrC0D,GAASA,EAAMyvF,KAAK7mE,EAAOtsB,IAC3BgyB,EAAOhyB,GAAOk0G,GAAiBl0G,GAAKk1G,EAAYD,EAAqB,IAElEjjF,CAAM,EAgGemjF,CAAyBnjF,EAAQi8C,EAAesmC,GAaxE,OAXIF,EAAuB98G,QACvB88G,EAAuB12G,SAAQ,EAAEqC,EAAK0D,MAClCuqE,EAAckmB,SAASn0F,GAAKjE,IAAI2H,EAAM,IAI9CuqE,EAAc1qE,SAEV,KAAyB,OAAZhC,GACbD,OAAOU,SAAS,CAAEuhB,IAAKhiB,IAEpB,CAAEywB,OAAQ8iF,EAAiBp7B,gBACtC,CAEI,MAAO,CAAE1nD,SAAQ0nD,gBACrB,EASJ,SAAS07B,GAAennC,EAAej8C,EAAQ1F,EAAQotD,GACnD,MA3MqB,CAAC1nD,GACfnyB,OAAOwQ,KAAK2hB,GAAQxa,KAAK+7F,IA0MzB8B,CAAiBrjF,GAClBmiF,GAAiClmC,EAAej8C,EAAQ1F,EAAQotD,GAChE,CAAE1nD,SAAQ0nD,gBACpB,CC5NA,MAAM47B,GAAkB,CAACrnC,EAAej8C,EAAQ1F,EAAQotD,KACpD,MAAMD,EFuCV,SAA6BxL,MAAoBj8C,GAAU0nD,GACvD,MAAM31E,EAAUkqE,EAAc3oE,QAC9B,KAAMvB,aAAmB6pF,SACrB,MAAO,CAAE57D,SAAQ0nD,iBAGjBA,IACAA,EAAgB,IAAKA,IAGzBzL,EAAc70D,OAAOzb,SAAS+F,IAC1B,MAAM4B,EAAU5B,EAAM/G,MACtB,IAAK2zE,EAAmBhrE,GACpB,OACJ,MAAMm0E,EAAWy5B,GAAiB5tG,EAASvB,GACvC01E,GACA/1E,EAAM3H,IAAI09E,EAAS,IAI3B,IAAK,MAAMz5E,KAAOgyB,EAAQ,CACtB,MAAM1sB,EAAU0sB,EAAOhyB,GACvB,IAAKswE,EAAmBhrE,GACpB,SACJ,MAAMm0E,EAAWy5B,GAAiB5tG,EAASvB,GACtC01E,IAGLznD,EAAOhyB,GAAOy5E,EACTC,IACDA,EAAgB,CAAC,QAIMx2E,IAAvBw2E,EAAc15E,KACd05E,EAAc15E,GAAOsF,GAE7B,CACA,MAAO,CAAE0sB,SAAQ0nD,gBACrB,CE9EqB67B,CAAoBtnC,EAAej8C,EAAQ0nD,GAG5D,OAAO07B,GAAennC,EAFtBj8C,EAASynD,EAASznD,OAE2B1F,EAD7CotD,EAAgBD,EAASC,cAC0C,ECVjE87B,GAAuB,CAAElwG,QAAS,MAClCmwG,GAA2B,CAAEnwG,SAAS,GCF5C,MAAMowG,GAAqB,IAAIn1G,QCoBzBo1G,GAAe91G,OAAOwQ,KAAK28D,GAC3B4oC,GAAcD,GAAap+G,OAC3Bs+G,GAAoB,CACtB,iBACA,oBACA,SACA,sBACA,gBACA,uBACA,2BAEEC,GAAkB3pC,EAAa50E,OAKrC,MAAMw+G,GACF,WAAA7mG,EAAY,OAAEmjB,EAAM,MAAEtwB,EAAK,gBAAEosE,EAAe,oBAAEC,EAAmB,YAAEJ,GAAgBhkE,EAAU,CAAC,GAK1FrQ,KAAK2L,QAAU,KAIf3L,KAAKgK,SAAW,IAAIqT,IAIpBrd,KAAK0yE,eAAgB,EACrB1yE,KAAKyyE,uBAAwB,EAQ7BzyE,KAAKs7F,mBAAqB,KAM1Bt7F,KAAKyf,OAAS,IAAIjN,IAIlBxS,KAAK6zE,SAAW,CAAC,EAKjB7zE,KAAKq8G,mBAAqB,IAAI7pG,IAM9BxS,KAAKs8G,iBAAmB,CAAC,EAIzBt8G,KAAKy4F,OAAS,CAAC,EAMfz4F,KAAKu8G,uBAAyB,CAAC,EAC/Bv8G,KAAKw8G,aAAe,IAAMx8G,KAAKi4F,OAAO,SAAUj4F,KAAK45E,cACrD55E,KAAK4J,OAAS,KACL5J,KAAK2L,UAEV3L,KAAKy8G,eACLz8G,KAAK08G,eAAe18G,KAAK2L,QAAS3L,KAAKm+E,YAAan+E,KAAKoI,MAAMoe,MAAOxmB,KAAK+9E,YAAW,EAE1F/9E,KAAK4rG,eAAiB,IAAM,MAAMhiG,OAAO5J,KAAK4J,QAAQ,GAAO,GAC7D,MAAM,aAAEgwE,EAAY,YAAEuE,GAAgB9J,EACtCr0E,KAAK45E,aAAeA,EACpB55E,KAAK28G,WAAa,IAAK/iC,GACvB55E,KAAK48G,cAAgBx0G,EAAMolC,QAAU,IAAKosC,GAAiB,CAAC,EAC5D55E,KAAKm+E,YAAcA,EACnBn+E,KAAK04B,OAASA,EACd14B,KAAKoI,MAAQA,EACbpI,KAAKw0E,gBAAkBA,EACvBx0E,KAAKqtG,MAAQ30E,EAASA,EAAO20E,MAAQ,EAAI,EACzCrtG,KAAKy0E,oBAAsBA,EAC3Bz0E,KAAKqQ,QAAUA,EACfrQ,KAAKyyE,sBAAwBA,EAAsBrqE,GACnDpI,KAAK0yE,cAAgBA,EAActqE,GAC/BpI,KAAK0yE,gBACL1yE,KAAK27F,gBAAkB,IAAIt+E,KAE/Brd,KAAKs9F,uBAAyBtvE,QAAQ0K,GAAUA,EAAO/sB,SAWvD,MAAM,WAAEwvF,KAAe0hB,GAAwB78G,KAAKq+E,4BAA4Bj2E,EAAO,CAAC,GACxF,IAAK,MAAM/B,KAAOw2G,EAAqB,CACnC,MAAM9yG,EAAQ8yG,EAAoBx2G,QACRkD,IAAtBqwE,EAAavzE,IAAsB+vE,EAAcrsE,KACjDA,EAAM3H,IAAIw3E,EAAavzE,IAAM,GACzBuxF,GAAwBuD,IACxBA,EAAW18F,IAAI4H,GAG3B,CACJ,CAQA,2BAAAg4E,CAA4B51C,EAAQq0E,GAChC,MAAO,CAAC,CACZ,CACA,KAAAznC,CAAMtgE,GACF/U,KAAK2L,QAAUoJ,EACfgnG,GAAmB35G,IAAI2S,EAAU/U,MAC7BA,KAAK+9E,aAAe/9E,KAAK+9E,WAAWhpE,UACpC/U,KAAK+9E,WAAW1I,MAAMtgE,GAEtB/U,KAAK04B,QAAU14B,KAAK0yE,gBAAkB1yE,KAAKyyE,wBAC3CzyE,KAAK+8G,sBAAwB/8G,KAAK04B,OAAOskF,gBAAgBh9G,OAE7DA,KAAKyf,OAAOzb,SAAQ,CAAC+F,EAAO1D,IAAQrG,KAAKi9G,kBAAkB52G,EAAK0D,KAC3D+xG,GAAyBnwG,SC1JtC,WAEI,GADAmwG,GAAyBnwG,SAAU,EAC9B,IAEL,GAAIhE,OAAOu1G,WAAY,CACnB,MAAMC,EAAmBx1G,OAAOu1G,WAAW,4BACrCE,EAA8B,IAAOvB,GAAqBlwG,QAAUwxG,EAAiB73B,QAC3F63B,EAAiBE,YAAYD,GAC7BA,GACJ,MAEIvB,GAAqBlwG,SAAU,CAEvC,CD8IY2xG,GAEJt9G,KAAKs7F,mBAC4B,UAA7Bt7F,KAAKy0E,sBAE8B,WAA7Bz0E,KAAKy0E,qBAEDonC,GAAqBlwG,SAI/B3L,KAAK04B,QACL14B,KAAK04B,OAAO1uB,SAASvL,IAAIuB,MAC7BA,KAAK40E,OAAO50E,KAAKoI,MAAOpI,KAAKw0E,gBACjC,CACA,OAAAc,GACIymC,GAAmBt+F,OAAOzd,KAAK2L,SAC/B3L,KAAK+9E,YAAc/9E,KAAK+9E,WAAWzI,WACnC,SAAYt1E,KAAKw8G,eACjB,SAAYx8G,KAAK4J,QACjB5J,KAAKq8G,mBAAmBr4G,SAASwI,GAAWA,MAC5CxM,KAAK+8G,uBAAyB/8G,KAAK+8G,wBACnC/8G,KAAK04B,QAAU14B,KAAK04B,OAAO1uB,SAASyT,OAAOzd,MAC3C,IAAK,MAAMqG,KAAOrG,KAAKy4F,OACnBz4F,KAAKy4F,OAAOpyF,GAAKopC,QAErB,IAAK,MAAMppC,KAAOrG,KAAK6zE,SACnB7zE,KAAK6zE,SAASxtE,GAAKivE,UAEvBt1E,KAAK2L,QAAU,IACnB,CACA,iBAAAsxG,CAAkB52G,EAAK0D,GACnB,MAAMwzG,EAAmBrnC,EAAenwE,IAAIM,GACtCm3G,EAAiBzzG,EAAM0H,GAAG,UAAWgsG,IACvCz9G,KAAK45E,aAAavzE,GAAOo3G,EACzBz9G,KAAKoI,MAAMoqD,UACP,MAAMoiB,OAAO50E,KAAKw8G,cAAc,GAAO,GACvCe,GAAoBv9G,KAAK+9E,aACzB/9E,KAAK+9E,WAAWwwB,kBAAmB,EACvC,IAEEmP,EAAwB3zG,EAAM0H,GAAG,gBAAiBzR,KAAK4rG,gBAC7D5rG,KAAKq8G,mBAAmBj6G,IAAIiE,GAAK,KAC7Bm3G,IACAE,GAAuB,GAE/B,CACA,gBAAAzhB,CAAiB/xD,GAIb,OAAKlqC,KAAK2L,SACL3L,KAAK29G,0BACN39G,KAAK0R,OAASw4B,EAAMx4B,KAGjB1R,KAAK29G,yBAAyB39G,KAAK2L,QAASu+B,EAAMv+B,SAF9C,CAGf,CACA,YAAAmoE,EAAa,SAAE9pE,KAAa4zG,GAAiBxoC,EAAU3B,EAAmB0B,GACtE,IAAI0oC,EACA5pC,EAaJ,IAAK,IAAIz3E,EAAI,EAAGA,EAAIy/G,GAAaz/G,IAAK,CAClC,MAAMa,EAAO2+G,GAAax/G,IACpB,UAAE82E,EAAWkO,QAASs8B,EAAkB,eAAE1E,EAAgBnlC,cAAe8pC,GAA4B1qC,EAAmBh2E,GAC1H+7G,IACAyE,EAA4BzE,GAC5B9lC,EAAUsqC,MACL59G,KAAK6zE,SAASx2E,IAASygH,IACxB99G,KAAK6zE,SAASx2E,GAAQ,IAAIygH,EAAmB99G,OAE7C+9G,IACA9pC,EAAgB8pC,GAG5B,CACA,IAAK/9G,KAAK+9E,YAAc8/B,EAA2B,CAC/C79G,KAAK+9E,WAAa,IAAI8/B,EAA0B79G,KAAK45E,aAAc55E,KAAK04B,QAAU14B,KAAK04B,OAAOqlD,YAC9F,MAAM,SAAE5J,EAAQ,OAAEf,EAAM,KAAEL,EAAI,gBAAEuyB,EAAe,aAAEqN,EAAY,WAAE1B,GAAgB2M,EAC/E59G,KAAK+9E,WAAWqrB,WAAW,CACvBj1B,WACAf,SACAk/B,oBAAqBtkF,QAAQ+kD,IACxBuyB,GAAmBlzB,EAAYkzB,GACpChxB,cAAet0E,KACf4rG,eAAgB,IAAM5rG,KAAK4rG,iBAQ3B8K,cAAiC,iBAAXtjC,EAAsBA,EAAS,OACrDyjC,uBAAwB1hC,EACxBw9B,eACA1B,cAER,CACA,OAAOh9B,CACX,CACA,cAAAgB,GACI,IAAK,MAAM5uE,KAAOrG,KAAK6zE,SAAU,CAC7B,MAAMp6D,EAAUzZ,KAAK6zE,SAASxtE,GAC1BoT,EAAQ6yB,UACR7yB,EAAQm7D,UAGRn7D,EAAQ47D,QACR57D,EAAQ6yB,WAAY,EAE5B,CACJ,CACA,YAAAmwE,GACIz8G,KAAKg+G,MAAMh+G,KAAKm+E,YAAan+E,KAAK45E,aAAc55E,KAAKqQ,QAASrQ,KAAKoI,MACvE,CAMA,kBAAA+6F,GACI,OAAOnjG,KAAK2L,QACN3L,KAAKi+G,2BAA2Bj+G,KAAK2L,QAAS3L,KAAKoI,OACnDw5F,IACV,CACA,cAAAsc,CAAe73G,GACX,OAAOrG,KAAK45E,aAAavzE,EAC7B,CACA,cAAA6wG,CAAe7wG,EAAK0D,GAChB/J,KAAK45E,aAAavzE,GAAO0D,CAC7B,CAQA,oBAAA4wF,CAAqBtiE,EAAQ8lF,GAAY,GACrC,OAAOn+G,KAAKo+G,iCAAiC/lF,EAAQr4B,KAAKoI,MAAO+1G,EACrE,CAKA,MAAAvpC,CAAOxsE,EAAOosE,IACNpsE,EAAMyxE,mBAAqB75E,KAAKoI,MAAMyxE,oBACtC75E,KAAK4rG,iBAET5rG,KAAKkI,UAAYlI,KAAKoI,MACtBpI,KAAKoI,MAAQA,EACbpI,KAAK0+F,oBAAsB1+F,KAAKw0E,gBAChCx0E,KAAKw0E,gBAAkBA,EAIvB,IAAK,IAAIh4E,EAAI,EAAGA,EAAI0/G,GAAkBt+G,OAAQpB,IAAK,CAC/C,MAAM6J,EAAM61G,GAAkB1/G,GAC1BwD,KAAKu8G,uBAAuBl2G,KAC5BrG,KAAKu8G,uBAAuBl2G,YACrBrG,KAAKu8G,uBAAuBl2G,IAEvC,MAAM4nE,EAAW7lE,EAAM,KAAO/B,GAC1B4nE,IACAjuE,KAAKu8G,uBAAuBl2G,GAAOrG,KAAKyR,GAAGpL,EAAK4nE,GAExD,CACAjuE,KAAKs8G,iBE5Ub,SAAqClyG,EAAS+G,EAAM2vC,GAChD,MAAM,WAAEq6C,GAAehqF,EACvB,IAAK,MAAM9K,KAAO8K,EAAM,CACpB,MAAMktG,EAAYltG,EAAK9K,GACjBi4G,EAAYx9D,EAAKz6C,GACvB,GAAI+vE,EAAcioC,GAKdj0G,EAAQqwF,SAASp0F,EAAKg4G,GAClBzmB,GAAwBuD,IACxBA,EAAW18F,IAAI4H,QAUlB,GAAI+vE,EAAckoC,GAKnBl0G,EAAQqwF,SAASp0F,EAAK4zF,GAAYokB,EAAW,CAAEzpB,MAAOxqF,KAClDwtF,GAAwBuD,IACxBA,EAAW3uF,OAAOnG,QAGrB,GAAIi4G,IAAcD,EAMnB,GAAIj0G,EAAQmwF,SAASl0F,GAAM,CACvB,MAAMk4G,EAAgBn0G,EAAQowF,SAASn0F,IAEtCk4G,EAAcxlB,aAAewlB,EAAcn8G,IAAIi8G,EACpD,KACK,CACD,MAAMZ,EAAcrzG,EAAQ8zG,eAAe73G,GAC3C+D,EAAQqwF,SAASp0F,EAAK4zF,QAA4B1wF,IAAhBk0G,EAA4BA,EAAcY,EAAW,CAAEzpB,MAAOxqF,IACpG,CAER,CAEA,IAAK,MAAM/D,KAAOy6C,OACIv3C,IAAd4H,EAAK9K,IACL+D,EAAQo0G,YAAYn4G,GAE5B,OAAO8K,CACX,CFqRgCstG,CAA4Bz+G,KAAMA,KAAKq+E,4BAA4Bj2E,EAAOpI,KAAKkI,WAAYlI,KAAKs8G,kBACpHt8G,KAAK0+G,wBACL1+G,KAAK0+G,wBAEb,CACA,QAAAxpF,GACI,OAAOl1B,KAAKoI,KAChB,CAIA,UAAAu2G,CAAWthH,GACP,OAAO2C,KAAKoI,MAAMusC,SAAW30C,KAAKoI,MAAMusC,SAASt3C,QAAQkM,CAC7D,CAIA,oBAAAgsF,GACI,OAAOv1F,KAAKoI,MAAM+rC,UACtB,CACA,qBAAA6wD,GACI,OAAOhlG,KAAKoI,MAAM0pE,kBACtB,CACA,qBAAA8sC,GACI,OAAO5+G,KAAK0yE,cACN1yE,KACAA,KAAK04B,OACD14B,KAAK04B,OAAOkmF,6BACZr1G,CACd,CACA,iBAAAuzF,CAAkB+hB,GAAgB,GAC9B,GAAIA,EACA,OAAO7+G,KAAK04B,OAAS14B,KAAK04B,OAAOokE,yBAAsBvzF,EAE3D,IAAKvJ,KAAKyyE,sBAAuB,CAC7B,MAAM9gD,EAAU3xB,KAAK04B,QACf14B,KAAK04B,OAAOokE,qBACZ,CAAC,EAIP,YAH2BvzF,IAAvBvJ,KAAKoI,MAAMolC,UACX7b,EAAQ6b,QAAUxtC,KAAKoI,MAAMolC,SAE1B7b,CACX,CACA,MAAMA,EAAU,CAAC,EACjB,IAAK,IAAIn1B,EAAI,EAAGA,EAAI2/G,GAAiB3/G,IAAK,CACtC,MAAMa,EAAOm1E,EAAah2E,GACpBs4D,EAAO90D,KAAKoI,MAAM/K,IACpBg1E,EAAevd,KAAkB,IAATA,KACxBnjC,EAAQt0B,GAAQy3D,EAExB,CACA,OAAOnjC,CACX,CAIA,eAAAqrF,CAAgB7uE,GACZ,MAAM2wE,EAAqB9+G,KAAK4+G,wBAChC,GAAIE,EAGA,OAFAA,EAAmBnjB,iBACfmjB,EAAmBnjB,gBAAgBl9F,IAAI0vC,GACpC,IAAM2wE,EAAmBnjB,gBAAgBl+E,OAAO0wB,EAE/D,CAIA,QAAAssD,CAASp0F,EAAK0D,GAENA,IAAU/J,KAAKyf,OAAOzc,IAAIqD,KAC1BrG,KAAKw+G,YAAYn4G,GACjBrG,KAAKi9G,kBAAkB52G,EAAK0D,IAEhC/J,KAAKyf,OAAOrd,IAAIiE,EAAK0D,GACrB/J,KAAK45E,aAAavzE,GAAO0D,EAAM/G,KACnC,CAIA,WAAAw7G,CAAYn4G,GACRrG,KAAKyf,OAAOhC,OAAOpX,GACnB,MAAM6yF,EAAcl5F,KAAKq8G,mBAAmBr5G,IAAIqD,GAC5C6yF,IACAA,IACAl5F,KAAKq8G,mBAAmB5+F,OAAOpX,WAE5BrG,KAAK45E,aAAavzE,GACzBrG,KAAK++G,2BAA2B14G,EAAKrG,KAAKm+E,YAC9C,CAIA,QAAAoc,CAASl0F,GACL,OAAOrG,KAAKyf,OAAO1Z,IAAIM,EAC3B,CACA,QAAAm0F,CAASn0F,EAAK2qB,GACV,GAAIhxB,KAAKoI,MAAMqX,QAAUzf,KAAKoI,MAAMqX,OAAOpZ,GACvC,OAAOrG,KAAKoI,MAAMqX,OAAOpZ,GAE7B,IAAI0D,EAAQ/J,KAAKyf,OAAOzc,IAAIqD,GAK5B,YAJckD,IAAVQ,QAAwCR,IAAjBynB,IACvBjnB,EAAQkwF,GAAYjpE,EAAc,CAAE4jE,MAAO50F,OAC3CA,KAAKy6F,SAASp0F,EAAK0D,IAEhBA,CACX,CAMA,SAAAokE,CAAU9nE,GACN,IAAIwmE,EACJ,YAAkCtjE,IAA3BvJ,KAAK45E,aAAavzE,IAAuBrG,KAAK2L,QAES,QAAvDkhE,EAAK7sE,KAAKg/G,uBAAuBh/G,KAAKoI,MAAO/B,UAAyB,IAAPwmE,EAAgBA,EAAK7sE,KAAKi/G,sBAAsBj/G,KAAK2L,QAAStF,EAAKrG,KAAKqQ,SADxIrQ,KAAK45E,aAAavzE,EAE5B,CAKA,aAAA64G,CAAc74G,EAAK0D,GACf/J,KAAK28G,WAAWt2G,GAAO0D,CAC3B,CAKA,aAAAm0F,CAAc73F,GACV,IAAIwmE,EACJ,MAAM,QAAEr/B,GAAYxtC,KAAKoI,MACnB+2G,EAAsC,iBAAZ3xE,GAA2C,iBAAZA,EACD,QAAvDq/B,EAAK0R,GAAwBv+E,KAAKoI,MAAOolC,UAA6B,IAAPq/B,OAAgB,EAASA,EAAGxmE,QAC5FkD,EAIN,GAAIikC,QAAgCjkC,IAArB41G,EACX,OAAOA,EAMX,MAAM9mF,EAASr4B,KAAKg/G,uBAAuBh/G,KAAKoI,MAAO/B,GACvD,YAAekD,IAAX8uB,GAAyB+9C,EAAc/9C,QAMR9uB,IAA5BvJ,KAAK48G,cAAcv2G,SACDkD,IAArB41G,OACE51G,EACAvJ,KAAK28G,WAAWt2G,GARXgyB,CASf,CACA,EAAA5mB,CAAGmpB,EAAWhW,GAIV,OAHK5kB,KAAKy4F,OAAO79D,KACb56B,KAAKy4F,OAAO79D,GAAa,IAAIm9D,IAE1B/3F,KAAKy4F,OAAO79D,GAAWn8B,IAAImmB,EACtC,CACA,MAAAqzE,CAAOr9D,KAAct7B,GACbU,KAAKy4F,OAAO79D,IACZ56B,KAAKy4F,OAAO79D,GAAWq9D,UAAU34F,EAEzC,EGnfJ,MAAM8/G,WAAyBhD,GAC3B,wBAAAuB,CAAyBhhH,EAAG6C,GAMxB,OAAsC,EAA/B7C,EAAE0iH,wBAAwB7/G,GAAS,GAAK,CACnD,CACA,sBAAAw/G,CAAuB52G,EAAO/B,GAC1B,OAAO+B,EAAMoe,MAAQpe,EAAMoe,MAAMngB,QAAOkD,CAC5C,CACA,0BAAAw1G,CAA2B14G,GAAK,KAAE6hC,EAAI,MAAE1hB,WAC7B0hB,EAAK7hC,UACLmgB,EAAMngB,EACjB,CACA,gCAAA+3G,EAAiC,WAAEjqE,EAAU,cAAE4rC,KAAkB1nD,IAAU,gBAAEwiD,GAAmBvuC,GAC5F,IAAI3Z,ElDqFZ,SAAmB0F,EAAQ8b,EAAYmgC,GACnC,MAAM3hD,EAAS,CAAC,EAChB,IAAK,MAAMtsB,KAAOgyB,EAAQ,CACtB,MAAMinF,EAAmB1kB,GAAwBv0F,EAAK8tC,GACtD,QAAyB5qC,IAArB+1G,EACA3sF,EAAOtsB,GAAOi5G,MAEb,CACD,MAAMv1G,EAAQuqE,EAAckmB,SAASn0F,GACjC0D,IACA4oB,EAAOtsB,GAAO0D,EAAM/G,MAE5B,CACJ,CACA,OAAO2vB,CACX,CkDpGqB4sF,CAAUlnF,EAAQ8b,GAAc,CAAC,EAAGn0C,MAYjD,GARI66E,IACIkF,IACAA,EAAgBlF,EAAgBkF,IAChC1nD,IACAA,EAASwiD,EAAgBxiD,IACzB1F,IACAA,EAASkoD,EAAgBloD,KAE7B2Z,EAAW,ElDoBvB,SAAiCgoC,EAAej8C,EAAQ1F,GACpD,IAAIk6C,EAAIme,EACR,MAAMw0B,EAAet5G,OAAOwQ,KAAK2hB,GAAQrnB,QAAQ3K,IAASiuE,EAAcimB,SAASl0F,KAC3Eo5G,EAAeD,EAAa5hH,OD5ChB,IAACG,EC6CnB,GAAK0hH,EAEL,IAAK,IAAIjjH,EAAI,EAAGA,EAAIijH,EAAcjjH,IAAK,CACnC,MAAM6J,EAAMm5G,EAAahjH,GACnBkjH,EAAcrnF,EAAOhyB,GAC3B,IAAI0D,EAAQ,KAKRlM,MAAMs5C,QAAQuoE,KACd31G,EAAQ21G,EAAY,IAOV,OAAV31G,IACAA,EAAoG,QAA3FihF,EAA4B,QAAtBne,EAAKl6C,EAAOtsB,UAAyB,IAAPwmE,EAAgBA,EAAKyH,EAAcnG,UAAU9nE,UAAyB,IAAP2kF,EAAgBA,EAAK3yD,EAAOhyB,IAMxI0D,UAEiB,iBAAVA,IACN8tF,GAAkB9tF,IAAU0sF,GAAkB1sF,IAE/CA,EAAQ29B,WAAW39B,ID3ERhM,EC6ESgM,GD7EHswF,GAAW9Q,KAAK2Q,GAAcn8F,KC6EjBgtF,GAAQzqF,KAAKo/G,KAC3C31G,EAAQ,GAAkB1D,EAAKq5G,KAEnCprC,EAAcmmB,SAASp0F,EAAK4zF,GAAYlwF,EAAO,CAAE6qF,MAAOtgB,UACpC/qE,IAAhBopB,EAAOtsB,KACPssB,EAAOtsB,GAAO0D,GAEJ,OAAVA,GACAuqE,EAAc4qC,cAAc74G,EAAK0D,GACzC,CACJ,CkDjEY41G,CAAwB3/G,KAAMq4B,EAAQ1F,GACtC,MAAMu4D,EAASywB,GAAgB37G,KAAMq4B,EAAQ1F,EAAQotD,GACrDA,EAAgBmL,EAAOnL,cACvB1nD,EAAS6yD,EAAO7yD,MACpB,CACA,MAAO,CACH8b,aACA4rC,mBACG1nD,EAEX,EC/BJ,MAAMunF,WAA0BR,GAC5B,qBAAAH,CAAsBlqG,EAAU1O,GAC5B,GAAI6vE,EAAenwE,IAAIM,GAAM,CACzB,MAAMw5G,EAActpB,GAAoBlwF,GACxC,OAAOw5G,GAAcA,EAAYj6G,SAAe,CACpD,CACK,CACD,MAAMk6G,GAVQ11G,EAUyB2K,EATxCpN,OAAOs4D,iBAAiB71D,IAUjBL,GAAS2sE,EAAkBrwE,GAC3By5G,EAAc5/C,iBAAiB75D,GAC/By5G,EAAcz5G,KAAS,EAC7B,MAAwB,iBAAV0D,EAAqBA,EAAM6O,OAAS7O,CACtD,CAfR,IAA0BK,CAgBtB,CACA,0BAAA6zG,CAA2BlpG,GAAU,mBAAE+8D,IACnC,OAAOqxB,GAAmBpuF,EAAU+8D,EACxC,CACA,KAAAksC,CAAM7/B,EAAavE,EAAcvpE,EAASjI,GACtCuxE,GAAgBwE,EAAavE,EAAcvpE,EAASjI,EAAMyxE,kBAC9D,CACA,2BAAAwE,CAA4Bj2E,EAAOF,GAC/B,OAAOm2E,GAA4Bj2E,EAAOF,EAC9C,CACA,sBAAAw2G,GACQ1+G,KAAK+/G,oBACL//G,KAAK+/G,2BACE//G,KAAK+/G,mBAEhB,MAAM,SAAE/1G,GAAahK,KAAKoI,MACtBguE,EAAcpsE,KACdhK,KAAK+/G,kBAAoB/1G,EAASyH,GAAG,UAAW8qE,IACxCv8E,KAAK2L,UACL3L,KAAK2L,QAAQugB,YAAc,GAAGqwD,IAAQ,IAGtD,CACA,cAAAmgC,CAAe3nG,EAAUopE,EAAaL,EAAWC,GAC7CF,GAAW9oE,EAAUopE,EAAaL,EAAWC,EACjD,ECxCJ,MAAMiiC,WAAyBZ,GAC3B,WAAA7pG,GACIytE,SAASzjF,WACTS,KAAKw8E,UAAW,CACpB,CACA,sBAAAwiC,CAAuB52G,EAAO/B,GAC1B,OAAO+B,EAAM/B,EACjB,CACA,qBAAA44G,CAAsBlqG,EAAU1O,GAC5B,GAAI6vE,EAAenwE,IAAIM,GAAM,CACzB,MAAMw5G,EAActpB,GAAoBlwF,GACxC,OAAOw5G,GAAcA,EAAYj6G,SAAe,CACpD,CAEA,OADAS,EAAO43E,GAAoBl4E,IAAIM,GAA0BA,EAAnBu3E,GAAYv3E,GAC3C0O,EAASqQ,aAAa/e,EACjC,CACA,0BAAA43G,GACI,OAAOrc,IACX,CACA,2BAAAvjB,CAA4Bj2E,EAAOF,GAC/B,OAAO,GAA4BE,EAAOF,EAC9C,CACA,KAAA81G,CAAM7/B,EAAavE,EAAcvpE,EAASjI,GACtC4zE,GAAcmC,EAAavE,EAAcvpE,EAASrQ,KAAKw8E,SAAUp0E,EAAMyxE,kBAC3E,CACA,cAAA6iC,CAAe3nG,EAAUopE,EAAaL,EAAWC,GAC7CG,GAAUnpE,EAAUopE,EAAaL,EAAWC,EAChD,CACA,KAAA1I,CAAMtgE,GACF/U,KAAKw8E,SAAWA,GAASznE,EAAS0tD,SAClCugB,MAAM3N,MAAMtgE,EAChB,ECtCJ,MAAM,GAAyB,CAAC9K,EAAWoG,IAChC0lE,EAAe9rE,GAChB,IAAI+1G,GAAiB3vG,EAAS,CAAE+pE,4BAA4B,IAC5D,IAAIwlC,GAAkBvvG,EAAS,CAAE+pE,4BAA4B,ICEjE3G,GAAoB,IACnBzgB,MACA+vB,MACAhQ,MCTQ,CACXK,OAAQ,CACJgmC,eAAgBb,GAChBtkC,cAAa,MDef3/B,GAAuBmhC,GAAkB,CAACxrE,EAAW65B,IEhB3D,SAA+B75B,GAAW,mBAAEqzE,GAAqB,GAAS7J,EAAmBC,GAIzF,MAAO,IAHYqC,EAAe9rE,GAC5Bg2E,GACAC,GAGFzM,oBACAE,UAAW0J,GAAgBC,GAC3B5J,sBACAzpE,YAER,CFKsE,CAAsBA,EAAW65B,EAAQ2vC,GAAmB,8GGnBlI,IAAIwsC,EAAU,IACVC,EAAY,uECHhB,MAAMnvE,EAAgC,oBAAbtoC,4ECAzB,MAAMmpE,EAAQuuC,GAAQA,mFCStB,SAASC,EAAY1/G,GACjB,MAAM8K,GAAM,IAAAC,QAAO,MAInB,OAHoB,OAAhBD,EAAIG,UACJH,EAAIG,QAAUjL,KAEX8K,EAAIG,OACf,mFCZA,MAAM00G,UAA4B,EAAY,EAAA30G,gBAAkB,EAAAmZ,6CCDhE,SAASxG,EAAQga,GACf,IAAK,IAAI77B,EAAI,EAAGA,EAAI+C,UAAU3B,OAAQpB,IAAK,CACzC,IAAI0rE,EAAS3oE,UAAU/C,GACvB,IAAK,IAAI6J,KAAO6hE,EACd7vC,EAAOhyB,GAAO6hE,EAAO7hE,EAEzB,CACA,OAAOgyB,CACT,iCAwHA,IAAI3nB,EAlGJ,SAAShQ,EAAMoqE,EAAWw1C,GACxB,SAASl+G,EAAK/E,EAAM0M,EAAOmc,GACzB,GAAwB,oBAAbzd,SAAX,CAMkC,iBAFlCyd,EAAa7H,EAAO,CAAC,EAAGiiG,EAAmBp6F,IAErB4xB,UACpB5xB,EAAW4xB,QAAU,IAAI13C,KAAKA,KAAKgzB,MAA6B,MAArBlN,EAAW4xB,UAEpD5xB,EAAW4xB,UACb5xB,EAAW4xB,QAAU5xB,EAAW4xB,QAAQh0C,eAG1CzG,EAAOyV,mBAAmBzV,GACvB4B,QAAQ,uBAAwB8T,oBAChC9T,QAAQ,QAASshH,QAEpB,IAAIC,EAAwB,GAC5B,IAAK,IAAIn5F,KAAiBnB,EACnBA,EAAWmB,KAIhBm5F,GAAyB,KAAOn5F,GAEE,IAA9BnB,EAAWmB,KAWfm5F,GAAyB,IAAMt6F,EAAWmB,GAAe9pB,MAAM,KAAK,KAGtE,OAAQkL,SAAS6jE,OACfjvE,EAAO,IAAMytE,EAAU21C,MAAM12G,EAAO1M,GAAQmjH,CAtC9C,CAuCF,CA4BA,OAAOt6G,OAAOsL,OACZ,CACEpP,MACAY,IA7BJ,SAAc3F,GACZ,GAAwB,oBAAboL,YAA6BlJ,UAAU3B,QAAWP,GAA7D,CAQA,IAFA,IAAIi1B,EAAU7pB,SAAS6jE,OAAS7jE,SAAS6jE,OAAO/uE,MAAM,MAAQ,GAC1DmjH,EAAM,CAAC,EACFlkH,EAAI,EAAGA,EAAI81B,EAAQ10B,OAAQpB,IAAK,CACvC,IAAImkH,EAAQruF,EAAQ91B,GAAGe,MAAM,KACzBwM,EAAQ42G,EAAMj+G,MAAM,GAAG5E,KAAK,KAEhC,IACE,IAAI8iH,EAAQ7tG,mBAAmB4tG,EAAM,IAGrC,GAFAD,EAAIE,GAAS91C,EAAUzhE,KAAKU,EAAO62G,GAE/BvjH,IAASujH,EACX,KAEJ,CAAE,MAAOvkH,GAAI,CACf,CAEA,OAAOgB,EAAOqjH,EAAIrjH,GAAQqjH,CApB1B,CAqBF,EAMIl0G,OAAQ,SAAUnP,EAAM6oB,GACtB9jB,EACE/E,EACA,GACAghB,EAAO,CAAC,EAAG6H,EAAY,CACrB4xB,SAAU,IAGhB,EACA+oE,eAAgB,SAAU36F,GACxB,OAAOxlB,EAAKV,KAAK8qE,UAAWzsD,EAAO,CAAC,EAAGre,KAAKkmB,WAAYA,GAC1D,EACA46F,cAAe,SAAUh2C,GACvB,OAAOpqE,EAAK2d,EAAO,CAAC,EAAGre,KAAK8qE,UAAWA,GAAY9qE,KAAKkmB,WAC1D,GAEF,CACEA,WAAY,CAAEnc,MAAO7D,OAAO66G,OAAOT,IACnCx1C,UAAW,CAAE/gE,MAAO7D,OAAO66G,OAAOj2C,KAGxC,CAEUpqE,CApHa,CACrB2I,KAAM,SAAUU,GAId,MAHiB,MAAbA,EAAM,KACRA,EAAQA,EAAMrH,MAAM,GAAI,IAEnBqH,EAAM9K,QAAQ,mBAAoB8T,mBAC3C,EACA0tG,MAAO,SAAU12G,GACf,OAAO+I,mBAAmB/I,GAAO9K,QAC/B,2CACA8T,mBAEJ,GAwG+B,CAAEX,KAAM","sources":["webpack://sjf/./node_modules/dayjs/dayjs.min.js","webpack://sjf/./node_modules/escape-string-regexp/index.js","webpack://sjf/./node_modules/gatsby-page-utils/dist/apply-trailing-slash-option.js","webpack://sjf/./node_modules/gatsby-react-router-scroll/index.js","webpack://sjf/./node_modules/gatsby-react-router-scroll/scroll-handler.js","webpack://sjf/./node_modules/gatsby-react-router-scroll/session-storage.js","webpack://sjf/./node_modules/gatsby-react-router-scroll/use-scroll-restoration.js","webpack://sjf/./node_modules/gatsby/dist/internal-plugins/partytown/gatsby-browser.js","webpack://sjf/./node_modules/gatsby/dist/internal-plugins/partytown/utils/get-forwards.js","webpack://sjf/./node_modules/gatsby/dist/internal-plugins/partytown/utils/inject-partytown-snippet.js","webpack://sjf/./.cache/_this_is_virtual_fs_path_/$virtual/async-requires.js","webpack://sjf/./.cache/api-runner-browser-plugins.js","webpack://sjf/./.cache/api-runner-browser.js","webpack://sjf/./.cache/create-content-digest-browser-shim.js","webpack://sjf/./.cache/emitter.js","webpack://sjf/./node_modules/mitt/dist/mitt.es.js","webpack://sjf/./.cache/normalize-page-path.js","webpack://sjf/./.cache/find-path.js","webpack://sjf/./node_modules/@babel/runtime/helpers/esm/construct.js","webpack://sjf/./node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","webpack://sjf/./node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","webpack://sjf/./.cache/slice/server-slice-renderer.js","webpack://sjf/./.cache/slice/server-slice.js","webpack://sjf/./.cache/slice/inline-slice.js","webpack://sjf/./.cache/slice.js","webpack://sjf/./.cache/gatsby-browser-entry.js","webpack://sjf/./.cache/prefetch.js","webpack://sjf/./.cache/loader.js","webpack://sjf/./.cache/head/components/fire-callback-in-effect.js","webpack://sjf/./.cache/head/constants.js","webpack://sjf/./.cache/head/utils.js","webpack://sjf/./.cache/head/head-export-handler-for-browser.js","webpack://sjf/./.cache/page-renderer.js","webpack://sjf/./.cache/route-announcer-props.js","webpack://sjf/./.cache/navigation.js","webpack://sjf/./node_modules/shallow-compare/es/index.js","webpack://sjf/./.cache/ensure-resources.js","webpack://sjf/./.cache/production-app.js","webpack://sjf/./.cache/public-page-renderer-prod.js","webpack://sjf/./.cache/public-page-renderer.js","webpack://sjf/./.cache/react-dom-utils.js","webpack://sjf/./.cache/redirect-utils.js","webpack://sjf/./.cache/register-service-worker.js","webpack://sjf/./.cache/slice/context.js","webpack://sjf/./.cache/static-query.js","webpack://sjf/./.cache/context-utils.js","webpack://sjf/./.cache/strip-prefix.js","webpack://sjf/./node_modules/react-cookie/es6/CookiesProvider.js","webpack://sjf/./node_modules/react-cookie/es6/CookiesContext.js","webpack://sjf/./gatsby-wrapper.tsx","webpack://sjf/./gatsby-browser.js","webpack://sjf/../src/lib/history.js","webpack://sjf/../src/lib/hooks-create-context.js","webpack://sjf/../src/lib/hooks-use-context.js","webpack://sjf/../src/lib/redirect.js","webpack://sjf/../src/lib/utils.js","webpack://sjf/../src/lib/link.js","webpack://sjf/../src/lib/error-boundary.js","webpack://sjf/../src/lib/location-provider.js","webpack://sjf/../src/lib/location.js","webpack://sjf/../src/lib/location-server.js","webpack://sjf/../src/lib/match.js","webpack://sjf/../src/lib/focus-handler.js","webpack://sjf/../src/lib/router.js","webpack://sjf/../src/hooks/use-location.js","webpack://sjf/../src/hooks/use-navigate.js","webpack://sjf/../src/hooks/use-params.js","webpack://sjf/../src/hooks/use-match.js","webpack://sjf/./node_modules/gatsby-plugin-catch-links/catch-links.js","webpack://sjf/./node_modules/gatsby-plugin-catch-links/gatsby-browser.js","webpack://sjf/./node_modules/gatsby-plugin-google-tagmanager/gatsby-browser.js","webpack://sjf/./node_modules/gatsby-plugin-manifest/gatsby-browser.js","webpack://sjf/./node_modules/gatsby-plugin-manifest/get-manifest-pathname.js","webpack://sjf/../src/gatsby-browser.ts","webpack://sjf/./node_modules/gsap/utils/paths.js","webpack://sjf/./node_modules/gsap/CustomEase.js","webpack://sjf/./node_modules/gsap/ScrollToPlugin.js","webpack://sjf/./src/utility/smoothScroll.ts","webpack://sjf/./src/components/elements/Link.tsx","webpack://sjf/./src/components/elements/icons/EnterIcon.tsx","webpack://sjf/./src/components/elements/icons/Instagram.tsx","webpack://sjf/./src/components/elements/icons/Twiiter.tsx","webpack://sjf/./src/components/elements/logos/MainLogo.tsx","webpack://sjf/./src/components/functional/urls.ts","webpack://sjf/./node_modules/framer-motion/dist/es/utils/use-is-mounted.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/components/AnimatePresence/PopChild.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/utils/use-force-update.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/utils/use-unmount-effect.mjs","webpack://sjf/./src/hooks/useLogin.tsx","webpack://sjf/./src/components/layouts/Footer.tsx","webpack://sjf/./src/components/elements/icons/TranslateIcon.tsx","webpack://sjf/./src/components/elements/buttons/SwitchLanguageButton.tsx","webpack://sjf/./src/components/parts/Logos.tsx","webpack://sjf/./src/components/layouts/Header.tsx","webpack://sjf/./src/components/layouts/Loading.tsx","webpack://sjf/./src/components/elements/icons/MenuIcon.tsx","webpack://sjf/./src/components/elements/icons/CloseIcon.tsx","webpack://sjf/./src/components/layouts/ModalMenu.tsx","webpack://sjf/./src/components/layouts/TransitionLayout.tsx","webpack://sjf/./src/components/parts/LanguageText.tsx","webpack://sjf/./src/components/parts/SnsLinks.tsx","webpack://sjf/./src/services/auth.ts","webpack://sjf/./src/status/LanguageState.ts","webpack://sjf/./src/status/ModalMenuState.ts","webpack://sjf/./src/status/UserState.ts","webpack://sjf/./src/utility/LoginHandler.ts","webpack://sjf/./src/utility/get.ts","webpack://sjf/./node_modules/gsap/gsap-core.js","webpack://sjf/./node_modules/gsap/CSSPlugin.js","webpack://sjf/./node_modules/gsap/index.js","webpack://sjf/./node_modules/invariant/browser.js","webpack://sjf/./node_modules/react-cookie/es6/Cookies.js","webpack://sjf/./node_modules/react-server-dom-webpack/cjs/react-server-dom-webpack.production.min.js","webpack://sjf/./node_modules/react-server-dom-webpack/index.js","webpack://sjf/./node_modules/recoil-persist/dist/index.js","webpack://sjf/./src/assets/images/common__icn__close.svg","webpack://sjf/./src/assets/images/common__icn__enter.svg","webpack://sjf/./src/assets/images/common__icn__instagram.svg","webpack://sjf/./src/assets/images/common__icn__menu.svg","webpack://sjf/./src/assets/images/common__icn__translate.svg","webpack://sjf/./src/assets/images/common__icn__twitter.svg","webpack://sjf/./src/assets/images/common__logo__main.svg","webpack://sjf/./node_modules/universal-cookie/es6/utils.js","webpack://sjf/./node_modules/universal-cookie/es6/Cookies.js","webpack://sjf/./node_modules/universal-cookie/es6/index.js","webpack://sjf/./node_modules/universal-cookie/node_modules/cookie/index.js","webpack://sjf/./node_modules/usehooks-ts/dist/esm/useEventCallback/useEventCallback.js","webpack://sjf/./node_modules/usehooks-ts/dist/esm/useEventListener/useEventListener.js","webpack://sjf/./node_modules/usehooks-ts/dist/esm/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js","webpack://sjf/./node_modules/usehooks-ts/dist/esm/useSessionStorage/useSessionStorage.js","webpack://sjf/./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack://sjf/./node_modules/@babel/runtime/helpers/inheritsLoose.js","webpack://sjf/./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://sjf/./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack://sjf/./node_modules/@builder.io/partytown/integration/index.cjs","webpack://sjf/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://sjf/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://sjf/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://sjf/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://sjf/./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack://sjf/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://sjf/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://sjf/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://sjf/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://sjf/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://sjf/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://sjf/./node_modules/clsx/dist/clsx.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/context/LayoutGroupContext.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/context/PresenceContext.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/frameloop/render-step.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/frameloop/batcher.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/frameloop/frame.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/context/MotionConfigContext.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/context/MotionContext/index.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/context/LazyContext.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/utils/is-ref-object.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/render/utils/is-variant-label.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/animation/utils/is-animation-controls.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/render/utils/variant-props.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/render/utils/is-controlling-variants.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/context/MotionContext/create.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/context/MotionContext/utils.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/motion/features/definitions.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/context/SwitchLayoutGroupContext.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/motion/utils/symbol.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/motion/index.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/motion/features/load-features.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/render/dom/motion-proxy.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/render/svg/lowercase-elements.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/render/dom/utils/is-svg-component.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/projection/styles/scale-correction.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/render/html/utils/transform.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/motion/utils/is-forced-motion-value.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/value/utils/is-motion-value.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/render/html/utils/build-transform.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/render/dom/utils/is-css-variable.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/render/dom/value-types/get-as-type.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/utils/clamp.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/value/types/numbers/index.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/value/types/utils.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/value/types/numbers/units.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/render/dom/value-types/type-int.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/render/dom/value-types/number.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/render/html/utils/build-styles.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/render/html/utils/create-render-state.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/render/html/use-props.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/motion/utils/valid-prop.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/render/dom/utils/filter-props.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/render/svg/utils/transform-origin.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/render/svg/utils/path.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/render/svg/utils/build-attrs.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/render/svg/utils/create-render-state.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/render/svg/utils/is-svg-tag.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/render/svg/use-props.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/render/dom/use-render.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/render/dom/utils/camel-to-dash.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/render/html/utils/render.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/render/svg/utils/camel-case-attrs.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/render/svg/utils/render.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/render/html/utils/scrape-motion-values.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/render/svg/utils/scrape-motion-values.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/render/utils/resolve-variants.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/animation/utils/is-keyframes-target.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/utils/resolve-value.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/value/utils/resolve-motion-value.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/motion/utils/use-visual-state.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/render/svg/config-motion.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/render/html/config-motion.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/events/add-dom-event.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/events/utils/is-primary-pointer.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/events/event-info.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/events/add-pointer-event.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/utils/pipe.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/gestures/drag/utils/lock.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/motion/features/Feature.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/gestures/hover.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/gestures/utils/is-node-or-child.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/gestures/press.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/motion/features/viewport/observers.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/motion/features/viewport/index.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/motion/features/gestures.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/gestures/focus.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/utils/shallow-compare.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/render/utils/resolve-dynamic-variants.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/animation/optimized-appear/data-id.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/utils/time-conversion.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/utils/use-instant-transition-state.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/easing/utils/is-bezier-definition.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/animation/animators/waapi/easing.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/easing/cubic-bezier.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/easing/ease.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/easing/utils/is-easing-array.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/easing/modifiers/mirror.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/easing/modifiers/reverse.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/easing/circ.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/easing/back.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/easing/utils/map.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/easing/anticipate.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/value/types/color/utils.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/value/types/color/rgba.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/value/types/color/hex.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/value/types/color/hsla.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/value/types/color/index.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/utils/mix.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/utils/hsla-to-rgba.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/utils/mix-color.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/value/types/complex/index.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/utils/mix-complex.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/utils/progress.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/utils/interpolate.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/utils/offsets/default.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/utils/offsets/fill.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/animation/generators/keyframes.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/utils/offsets/time.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/utils/velocity-per-second.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/animation/generators/utils/velocity.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/animation/generators/spring/find.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/animation/generators/spring/index.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/animation/generators/inertia.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/animation/animators/js/driver-frameloop.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/animation/generators/utils/calc-duration.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/animation/animators/js/index.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/animation/animators/waapi/create-accelerated-animation.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/utils/memo.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/animation/animators/waapi/index.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/animation/animators/waapi/utils/get-final-keyframe.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/animation/utils/default-transitions.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/animation/utils/is-animatable.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/value/types/complex/filter.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/render/dom/value-types/defaults.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/render/dom/value-types/animatable-none.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/utils/is-zero-value-string.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/animation/utils/is-none.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/animation/utils/transitions.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/animation/interfaces/motion-value.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/animation/utils/keyframes.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/animation/animators/instant.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/value/use-will-change/is.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/utils/is-numerical-string.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/utils/array.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/utils/subscription-manager.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/value/index.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/render/dom/value-types/test.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/render/dom/value-types/dimensions.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/render/dom/value-types/type-auto.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/render/dom/value-types/find.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/render/utils/setters.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/animation/interfaces/visual-element-target.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/animation/interfaces/visual-element-variant.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/render/utils/animation-state.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/animation/interfaces/visual-element.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/motion/features/animation/exit.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/motion/features/animations.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/motion/features/animation/index.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/utils/distance.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/gestures/pan/PanSession.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/projection/geometry/delta-calc.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/gestures/drag/utils/constraints.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/projection/geometry/models.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/projection/utils/each-axis.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/projection/geometry/conversion.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/projection/utils/has-transform.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/projection/geometry/delta-apply.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/projection/utils/measure.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/gestures/pan/index.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/projection/node/state.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/projection/styles/scale-border-radius.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/projection/styles/scale-box-shadow.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/projection/animation/mix-values.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/projection/geometry/copy.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/projection/geometry/delta-remove.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/projection/geometry/utils.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/projection/shared/stack.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/projection/styles/transform.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/render/utils/compare-by-depth.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/render/utils/flat-tree.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/projection/node/create-projection-node.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/debug/record.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/render/dom/utils/is-svg-element.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/utils/delay.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/animation/interfaces/single-value.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/projection/node/DocumentProjectionNode.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/projection/node/HTMLProjectionNode.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/motion/features/drag.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/gestures/drag/index.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/render/dom/utils/css-variables-conversion.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/render/dom/utils/unit-conversion.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/render/dom/utils/parse-dom-variant.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/utils/reduced-motion/state.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/render/store.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/render/VisualElement.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/utils/reduced-motion/index.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/render/utils/motion-values.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/render/dom/DOMVisualElement.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/render/html/HTMLVisualElement.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/render/svg/SVGVisualElement.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/render/dom/create-visual-element.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/render/dom/motion.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/motion/features/layout.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/render/dom/utils/create-config.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/utils/errors.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/utils/is-browser.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/utils/noop.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/utils/use-constant.mjs","webpack://sjf/./node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.mjs","webpack://sjf/./node_modules/js-cookie/dist/js.cookie.mjs"],"sourcesContent":["!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) {\n for (const suffix of suffixes) {\n if (input.endsWith(suffix)) return true;\n }\n return false;\n};\nconst suffixes = [`.html`, `.json`, `.js`, `.map`, `.txt`, `.xml`, `.pdf`];\nconst applyTrailingSlashOption = (input, option = `always`) => {\n if (input === `/`) return input;\n const hasTrailingSlash = input.endsWith(`/`);\n if (endsWithSuffixes(suffixes, input)) {\n return input;\n }\n if (option === `always`) {\n return hasTrailingSlash ? input : `${input}/`;\n }\n if (option === `never`) {\n return hasTrailingSlash ? input.slice(0, -1) : input;\n }\n return input;\n};\nexports.applyTrailingSlashOption = applyTrailingSlashOption;","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = exports.ScrollContext = void 0;\nvar _scrollHandler = require(\"./scroll-handler\");\nexports.ScrollContext = _scrollHandler.ScrollHandler;\nvar _useScrollRestoration = require(\"./use-scroll-restoration\");\nexports.useScrollRestoration = _useScrollRestoration.useScrollRestoration;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nexports.__esModule = true;\nexports.ScrollHandler = exports.ScrollContext = void 0;\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _sessionStorage = require(\"./session-storage\");\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nvar ScrollContext = /*#__PURE__*/React.createContext(new _sessionStorage.SessionStorage());\nexports.ScrollContext = ScrollContext;\nScrollContext.displayName = \"GatsbyScrollContext\";\nvar ScrollHandler = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(ScrollHandler, _React$Component);\n function ScrollHandler() {\n var _this;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this._stateStorage = new _sessionStorage.SessionStorage();\n _this._isTicking = false;\n _this._latestKnownScrollY = 0;\n _this.scrollListener = function () {\n _this._latestKnownScrollY = window.scrollY;\n if (!_this._isTicking) {\n _this._isTicking = true;\n requestAnimationFrame(_this._saveScroll.bind((0, _assertThisInitialized2.default)(_this)));\n }\n };\n _this.windowScroll = function (position, prevProps) {\n if (_this.shouldUpdateScroll(prevProps, _this.props)) {\n window.scrollTo(0, position);\n }\n };\n _this.scrollToHash = function (hash, prevProps) {\n var node = document.getElementById(hash.substring(1));\n if (node && _this.shouldUpdateScroll(prevProps, _this.props)) {\n node.scrollIntoView();\n }\n };\n _this.shouldUpdateScroll = function (prevRouterProps, routerProps) {\n var shouldUpdateScroll = _this.props.shouldUpdateScroll;\n if (!shouldUpdateScroll) {\n return true;\n }\n\n // Hack to allow accessing this._stateStorage.\n return shouldUpdateScroll.call((0, _assertThisInitialized2.default)(_this), prevRouterProps, routerProps);\n };\n return _this;\n }\n var _proto = ScrollHandler.prototype;\n _proto._saveScroll = function _saveScroll() {\n var key = this.props.location.key || null;\n if (key) {\n this._stateStorage.save(this.props.location, key, this._latestKnownScrollY);\n }\n this._isTicking = false;\n };\n _proto.componentDidMount = function componentDidMount() {\n window.addEventListener(\"scroll\", this.scrollListener);\n var scrollPosition;\n var _this$props$location = this.props.location,\n key = _this$props$location.key,\n hash = _this$props$location.hash;\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n\n /** If a hash is present in the browser url as the component mounts (i.e. the user is navigating\n * from an external website) then scroll to the hash instead of any previously stored scroll\n * position. */\n if (hash) {\n this.scrollToHash(decodeURI(hash), undefined);\n } else if (scrollPosition) {\n this.windowScroll(scrollPosition, undefined);\n }\n };\n _proto.componentWillUnmount = function componentWillUnmount() {\n window.removeEventListener(\"scroll\", this.scrollListener);\n };\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var _this$props$location2 = this.props.location,\n hash = _this$props$location2.hash,\n key = _this$props$location2.key;\n var scrollPosition;\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n\n /** There are two pieces of state: the browser url and\n * history state which keeps track of scroll position\n * Native behaviour prescribes that we ought to restore scroll position\n * when a user navigates back in their browser (this is the `POP` action)\n * Currently, reach router has a bug that prevents this at https://github.com/reach/router/issues/228\n * So we _always_ stick to the url as a source of truth — if the url\n * contains a hash, we scroll to it\n */\n\n if (hash) {\n this.scrollToHash(decodeURI(hash), prevProps);\n } else {\n this.windowScroll(scrollPosition, prevProps);\n }\n };\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(ScrollContext.Provider, {\n value: this._stateStorage\n }, this.props.children);\n };\n return ScrollHandler;\n}(React.Component);\nexports.ScrollHandler = ScrollHandler;\nScrollHandler.propTypes = {\n shouldUpdateScroll: _propTypes.default.func,\n children: _propTypes.default.element.isRequired,\n location: _propTypes.default.object.isRequired\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.SessionStorage = void 0;\nvar STATE_KEY_PREFIX = \"@@scroll|\";\nvar GATSBY_ROUTER_SCROLL_STATE = \"___GATSBY_REACT_ROUTER_SCROLL\";\nvar SessionStorage = /*#__PURE__*/function () {\n function SessionStorage() {}\n var _proto = SessionStorage.prototype;\n _proto.read = function read(location, key) {\n var stateKey = this.getStateKey(location, key);\n try {\n var value = window.sessionStorage.getItem(stateKey);\n return value ? JSON.parse(value) : 0;\n } catch (e) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to access sessionStorage; sessionStorage is not available.\");\n }\n if (window && window[GATSBY_ROUTER_SCROLL_STATE] && window[GATSBY_ROUTER_SCROLL_STATE][stateKey]) {\n return window[GATSBY_ROUTER_SCROLL_STATE][stateKey];\n }\n return 0;\n }\n };\n _proto.save = function save(location, key, value) {\n var stateKey = this.getStateKey(location, key);\n var storedValue = JSON.stringify(value);\n try {\n window.sessionStorage.setItem(stateKey, storedValue);\n } catch (e) {\n if (window && window[GATSBY_ROUTER_SCROLL_STATE]) {\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n } else {\n window[GATSBY_ROUTER_SCROLL_STATE] = {};\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n }\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to save state in sessionStorage; sessionStorage is not available.\");\n }\n }\n };\n _proto.getStateKey = function getStateKey(location, key) {\n var stateKeyBase = \"\" + STATE_KEY_PREFIX + location.pathname;\n return key === null || typeof key === \"undefined\" ? stateKeyBase : stateKeyBase + \"|\" + key;\n };\n return SessionStorage;\n}();\nexports.SessionStorage = SessionStorage;","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = useScrollRestoration;\nvar _scrollHandler = require(\"./scroll-handler\");\nvar _react = require(\"react\");\nvar _reachRouter = require(\"@gatsbyjs/reach-router\");\nfunction useScrollRestoration(identifier) {\n var location = (0, _reachRouter.useLocation)();\n var state = (0, _react.useContext)(_scrollHandler.ScrollContext);\n var ref = (0, _react.useRef)(null);\n (0, _react.useLayoutEffect)(function () {\n if (ref.current) {\n var position = state.read(location, identifier);\n ref.current.scrollTo(0, position || 0);\n }\n }, [location.key]);\n return {\n ref: ref,\n onScroll: function onScroll() {\n if (ref.current) {\n state.save(location, identifier, ref.current.scrollTop);\n }\n }\n };\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.onInitialClientRender = void 0;\nvar _gatsbyScript = require(\"gatsby-script\");\nvar _injectPartytownSnippet = require(\"./utils/inject-partytown-snippet\");\n// Makes sure off-main-thread scripts are loaded in `gatsby develop`\nconst onInitialClientRender = () => {\n if (process.env.NODE_ENV !== `development`) {\n return;\n }\n (0, _injectPartytownSnippet.injectPartytownSnippet)(_gatsbyScript.collectedScriptsByPage.get(window.location.pathname));\n\n // Clear scripts after we've used them to avoid leaky behavior\n _gatsbyScript.collectedScriptsByPage.delete(window.location.pathname);\n};\n\n// Client-side navigation (CSR, e.g. Gatsby Link navigations) are broken upstream in Partytown.\n// We need an official API from Partytown for handling re-configuration and on-demand script loading.\n// Until then, `off-main-thread` scripts load only on server-side navigation (SSR).\n// See https://github.com/BuilderIO/partytown/issues/74 for more details.\nexports.onInitialClientRender = onInitialClientRender;\n//# sourceMappingURL=gatsby-browser.js.map","\"use strict\";\n\nexports.__esModule = true;\nexports.getForwards = getForwards;\nfunction getForwards(collectedScripts) {\n return collectedScripts === null || collectedScripts === void 0 ? void 0 : collectedScripts.flatMap(script => (script === null || script === void 0 ? void 0 : script.forward) || []);\n}\n//# sourceMappingURL=get-forwards.js.map","\"use strict\";\n\nexports.__esModule = true;\nexports.injectPartytownSnippet = injectPartytownSnippet;\nvar _integration = require(\"@builder.io/partytown/integration\");\nvar _getForwards = require(\"./get-forwards\");\n// Adapted from https://github.com/BuilderIO/partytown/blob/main/src/react/snippet.tsx to only include CSR logic\nfunction injectPartytownSnippet(collectedScripts) {\n if (!collectedScripts.length) {\n return;\n }\n const existingSnippet = document.querySelector(`script[data-partytown]`);\n const existingSandbox = document.querySelector(`iframe[src*=\"~partytown/partytown-sandbox-sw\"]`);\n if (existingSnippet) {\n existingSnippet.remove();\n }\n if (existingSandbox) {\n existingSandbox.remove();\n }\n const forwards = (0, _getForwards.getForwards)(collectedScripts);\n const snippet = document.createElement(`script`);\n snippet.dataset.partytown = ``;\n snippet.innerHTML = (0, _integration.partytownSnippet)({\n forward: forwards\n });\n document.head.appendChild(snippet);\n}\n//# sourceMappingURL=inject-partytown-snippet.js.map","exports.components = {\n \"component---src-pages-404-tsx\": () => import(\"./../../../src/pages/404.tsx\" /* webpackChunkName: \"component---src-pages-404-tsx\" */),\n \"component---src-pages-500-tsx\": () => import(\"./../../../src/pages/500.tsx\" /* webpackChunkName: \"component---src-pages-500-tsx\" */),\n \"component---src-pages-about-tsx\": () => import(\"./../../../src/pages/about.tsx\" /* webpackChunkName: \"component---src-pages-about-tsx\" */),\n \"component---src-pages-biography-tsx\": () => import(\"./../../../src/pages/biography.tsx\" /* webpackChunkName: \"component---src-pages-biography-tsx\" */),\n \"component---src-pages-connect-tsx\": () => import(\"./../../../src/pages/connect.tsx\" /* webpackChunkName: \"component---src-pages-connect-tsx\" */),\n \"component---src-pages-contact-form-complete-tsx\": () => import(\"./../../../src/pages/contact/form/complete.tsx\" /* webpackChunkName: \"component---src-pages-contact-form-complete-tsx\" */),\n \"component---src-pages-contact-form-confirm-tsx\": () => import(\"./../../../src/pages/contact/form/confirm.tsx\" /* webpackChunkName: \"component---src-pages-contact-form-confirm-tsx\" */),\n \"component---src-pages-contact-form-index-tsx\": () => import(\"./../../../src/pages/contact/form/index.tsx\" /* webpackChunkName: \"component---src-pages-contact-form-index-tsx\" */),\n \"component---src-pages-contact-index-tsx\": () => import(\"./../../../src/pages/contact/index.tsx\" /* webpackChunkName: \"component---src-pages-contact-index-tsx\" */),\n \"component---src-pages-en-about-tsx\": () => import(\"./../../../src/pages/en/about.tsx\" /* webpackChunkName: \"component---src-pages-en-about-tsx\" */),\n \"component---src-pages-en-biography-tsx\": () => import(\"./../../../src/pages/en/biography.tsx\" /* webpackChunkName: \"component---src-pages-en-biography-tsx\" */),\n \"component---src-pages-en-contact-form-complete-tsx\": () => import(\"./../../../src/pages/en/contact/form/complete.tsx\" /* webpackChunkName: \"component---src-pages-en-contact-form-complete-tsx\" */),\n \"component---src-pages-en-contact-form-confirm-tsx\": () => import(\"./../../../src/pages/en/contact/form/confirm.tsx\" /* webpackChunkName: \"component---src-pages-en-contact-form-confirm-tsx\" */),\n \"component---src-pages-en-contact-form-index-tsx\": () => import(\"./../../../src/pages/en/contact/form/index.tsx\" /* webpackChunkName: \"component---src-pages-en-contact-form-index-tsx\" */),\n \"component---src-pages-en-contact-index-tsx\": () => import(\"./../../../src/pages/en/contact/index.tsx\" /* webpackChunkName: \"component---src-pages-en-contact-index-tsx\" */),\n \"component---src-pages-en-index-tsx\": () => import(\"./../../../src/pages/en/index.tsx\" /* webpackChunkName: \"component---src-pages-en-index-tsx\" */),\n \"component---src-pages-en-member-account-memberid-tsx\": () => import(\"./../../../src/pages/en/member/account/memberid.tsx\" /* webpackChunkName: \"component---src-pages-en-member-account-memberid-tsx\" */),\n \"component---src-pages-en-member-index-tsx\": () => import(\"./../../../src/pages/en/member/index.tsx\" /* webpackChunkName: \"component---src-pages-en-member-index-tsx\" */),\n \"component---src-pages-en-member-letter-complete-tsx\": () => import(\"./../../../src/pages/en/member/letter/complete.tsx\" /* webpackChunkName: \"component---src-pages-en-member-letter-complete-tsx\" */),\n \"component---src-pages-en-member-letter-confirm-tsx\": () => import(\"./../../../src/pages/en/member/letter/confirm.tsx\" /* webpackChunkName: \"component---src-pages-en-member-letter-confirm-tsx\" */),\n \"component---src-pages-en-member-letter-index-tsx\": () => import(\"./../../../src/pages/en/member/letter/index.tsx\" /* webpackChunkName: \"component---src-pages-en-member-letter-index-tsx\" */),\n \"component---src-pages-index-tsx\": () => import(\"./../../../src/pages/index.tsx\" /* webpackChunkName: \"component---src-pages-index-tsx\" */),\n \"component---src-pages-member-account-dev-tsx\": () => import(\"./../../../src/pages/member/account/dev.tsx\" /* webpackChunkName: \"component---src-pages-member-account-dev-tsx\" */),\n \"component---src-pages-member-account-memberid-tsx\": () => import(\"./../../../src/pages/member/account/memberid.tsx\" /* webpackChunkName: \"component---src-pages-member-account-memberid-tsx\" */),\n \"component---src-pages-member-index-tsx\": () => import(\"./../../../src/pages/member/index.tsx\" /* webpackChunkName: \"component---src-pages-member-index-tsx\" */),\n \"component---src-pages-member-letter-complete-tsx\": () => import(\"./../../../src/pages/member/letter/complete.tsx\" /* webpackChunkName: \"component---src-pages-member-letter-complete-tsx\" */),\n \"component---src-pages-member-letter-confirm-tsx\": () => import(\"./../../../src/pages/member/letter/confirm.tsx\" /* webpackChunkName: \"component---src-pages-member-letter-confirm-tsx\" */),\n \"component---src-pages-member-letter-index-tsx\": () => import(\"./../../../src/pages/member/letter/index.tsx\" /* webpackChunkName: \"component---src-pages-member-letter-index-tsx\" */),\n \"component---src-templates-member-album-article-tsx\": () => import(\"./../../../src/templates/member-album-article.tsx\" /* webpackChunkName: \"component---src-templates-member-album-article-tsx\" */),\n \"component---src-templates-member-album-list-tsx\": () => import(\"./../../../src/templates/member-album-list.tsx\" /* webpackChunkName: \"component---src-templates-member-album-list-tsx\" */),\n \"component---src-templates-member-birthday-article-tsx\": () => import(\"./../../../src/templates/member-birthday-article.tsx\" /* webpackChunkName: \"component---src-templates-member-birthday-article-tsx\" */),\n \"component---src-templates-member-birthday-index-tsx\": () => import(\"./../../../src/templates/member-birthday-index.tsx\" /* webpackChunkName: \"component---src-templates-member-birthday-index-tsx\" */),\n \"component---src-templates-member-download-article-tsx\": () => import(\"./../../../src/templates/member-download-article.tsx\" /* webpackChunkName: \"component---src-templates-member-download-article-tsx\" */),\n \"component---src-templates-member-download-list-tsx\": () => import(\"./../../../src/templates/member-download-list.tsx\" /* webpackChunkName: \"component---src-templates-member-download-list-tsx\" */),\n \"component---src-templates-member-movie-article-tsx\": () => import(\"./../../../src/templates/member-movie-article.tsx\" /* webpackChunkName: \"component---src-templates-member-movie-article-tsx\" */),\n \"component---src-templates-member-movie-list-tsx\": () => import(\"./../../../src/templates/member-movie-list.tsx\" /* webpackChunkName: \"component---src-templates-member-movie-list-tsx\" */),\n \"component---src-templates-member-private-article-tsx\": () => import(\"./../../../src/templates/member-private-article.tsx\" /* webpackChunkName: \"component---src-templates-member-private-article-tsx\" */),\n \"component---src-templates-member-private-list-tsx\": () => import(\"./../../../src/templates/member-private-list.tsx\" /* webpackChunkName: \"component---src-templates-member-private-list-tsx\" */),\n \"component---src-templates-member-report-article-tsx\": () => import(\"./../../../src/templates/member-report-article.tsx\" /* webpackChunkName: \"component---src-templates-member-report-article-tsx\" */),\n \"component---src-templates-member-report-list-tsx\": () => import(\"./../../../src/templates/member-report-list.tsx\" /* webpackChunkName: \"component---src-templates-member-report-list-tsx\" */),\n \"component---src-templates-member-ticket-article-tsx\": () => import(\"./../../../src/templates/member-ticket-article.tsx\" /* webpackChunkName: \"component---src-templates-member-ticket-article-tsx\" */),\n \"component---src-templates-member-ticket-list-tsx\": () => import(\"./../../../src/templates/member-ticket-list.tsx\" /* webpackChunkName: \"component---src-templates-member-ticket-list-tsx\" */),\n \"component---src-templates-member-topics-article-tsx\": () => import(\"./../../../src/templates/member-topics-article.tsx\" /* webpackChunkName: \"component---src-templates-member-topics-article-tsx\" */),\n \"component---src-templates-member-topics-list-tsx\": () => import(\"./../../../src/templates/member-topics-list.tsx\" /* webpackChunkName: \"component---src-templates-member-topics-list-tsx\" */),\n \"component---src-templates-news-article-tsx\": () => import(\"./../../../src/templates/news-article.tsx\" /* webpackChunkName: \"component---src-templates-news-article-tsx\" */),\n \"component---src-templates-news-list-tsx\": () => import(\"./../../../src/templates/news-list.tsx\" /* webpackChunkName: \"component---src-templates-news-list-tsx\" */),\n \"component---src-templates-page-tsx\": () => import(\"./../../../src/templates/page.tsx\" /* webpackChunkName: \"component---src-templates-page-tsx\" */)\n}\n\n","module.exports = [{\n plugin: require('../node_modules/gatsby-plugin-catch-links/gatsby-browser.js'),\n options: {\"plugins\":[]},\n },{\n plugin: require('../node_modules/gatsby-source-wordpress/gatsby-browser.js'),\n options: {\"plugins\":[],\"html\":{\"useGatsbyImage\":false,\"createStaticFiles\":true,\"generateWebpImages\":true,\"generateAvifImages\":true,\"placeholderType\":\"none\",\"gatsbyImageOptions\":{\"loading\":\"lazy\",\"placeholder\":\"none\",\"quality\":100},\"imageMaxWidth\":null,\"fallbackImageMaxWidth\":1024,\"imageQuality\":70},\"develop\":{\"hardCacheData\":false,\"hardCacheMediaFiles\":true,\"nodeUpdateInterval\":5000},\"schema\":{\"perPage\":20,\"requestConcurrency\":5,\"previewRequestConcurrency\":2,\"queryDepth\":15,\"circularQueryLimit\":5,\"typePrefix\":\"Wp\",\"timeout\":30000},\"url\":\"https://wp.ssj.net/__graphql\",\"type\":{\"RootQuery\":\"{ excludeFieldNames: ['viewer', 'node', 'schemaMd5'], },\"},\"hostingWPCOM\":false,\"useACF\":true,\"verbose\":true,\"catchLinks\":true},\n },{\n plugin: require('../node_modules/gatsby-plugin-manifest/gatsby-browser.js'),\n options: {\"plugins\":[],\"name\":\"志尊淳オフィシャルサイト - JUN SHISON OFFICIAL SITE\",\"short_name\":\"S.S.J\",\"start_url\":\"/\",\"background_color\":\"#000000\",\"theme_color\":\"#000000\",\"icon\":\"static/icon_fc.png\",\"include_favicon\":false,\"crossOrigin\":\"use-credentials\",\"legacy\":true,\"theme_color_in_head\":true,\"cache_busting_mode\":\"query\",\"cacheDigest\":\"72e97c4ca300698bf238bfda41e876ef\"},\n },{\n plugin: require('../node_modules/gatsby-plugin-google-tagmanager/gatsby-browser.js'),\n options: {\"plugins\":[],\"id\":\"GTM-PWNR9WKL\",\"includeInDevelopment\":false,\"defaultDataLayer\":null,\"routeChangeEventName\":\"gatsby-route-change\",\"enableWebVitalsTracking\":false,\"selfHostedOrigin\":\"https://www.googletagmanager.com\"},\n },{\n plugin: require('../gatsby-browser.js'),\n options: {\"plugins\":[]},\n },{\n plugin: require('../node_modules/gatsby/dist/internal-plugins/partytown/gatsby-browser.js'),\n options: {\"plugins\":[]},\n }]\n","const plugins = require(`./api-runner-browser-plugins`)\nconst { getResourceURLsForPathname, loadPage, loadPageSync } =\n require(`./loader`).publicLoader\n\nexports.apiRunner = (api, args = {}, defaultReturn, argTransform) => {\n // Hooks for gatsby-cypress's API handler\n if (process.env.CYPRESS_SUPPORT) {\n if (window.___apiHandler) {\n window.___apiHandler(api)\n } else if (window.___resolvedAPIs) {\n window.___resolvedAPIs.push(api)\n } else {\n window.___resolvedAPIs = [api]\n }\n }\n\n let results = plugins.map(plugin => {\n if (!plugin.plugin[api]) {\n return undefined\n }\n\n args.getResourceURLsForPathname = getResourceURLsForPathname\n args.loadPage = loadPage\n args.loadPageSync = loadPageSync\n\n const result = plugin.plugin[api](args, plugin.options)\n if (result && argTransform) {\n args = argTransform({ args, result, plugin })\n }\n return result\n })\n\n // Filter out undefined results.\n results = results.filter(result => typeof result !== `undefined`)\n\n if (results.length > 0) {\n return results\n } else if (defaultReturn) {\n return [defaultReturn]\n } else {\n return []\n }\n}\n\nexports.apiRunnerAsync = (api, args, defaultReturn) =>\n plugins.reduce(\n (previous, next) =>\n next.plugin[api]\n ? previous.then(() => next.plugin[api](args, next.options))\n : previous,\n Promise.resolve()\n )\n","exports.createContentDigest = () => ``\n","import mitt from \"mitt\"\n\nconst emitter = mitt()\nexport default emitter\n","// \n// An event handler can take an optional event argument\n// and should not return a value\n \n \n\n// An array of all currently registered event handlers for a type\n \n \n// A map of event types and their corresponding event handlers.\n \n \n \n \n\n/** Mitt: Tiny (~200b) functional event emitter / pubsub.\n * @name mitt\n * @returns {Mitt}\n */\nfunction mitt(all ) {\n\tall = all || Object.create(null);\n\n\treturn {\n\t\t/**\n\t\t * Register an event handler for the given type.\n\t\t *\n\t\t * @param {String} type\tType of event to listen for, or `\"*\"` for all events\n\t\t * @param {Function} handler Function to call in response to given event\n\t\t * @memberOf mitt\n\t\t */\n\t\ton: function on(type , handler ) {\n\t\t\t(all[type] || (all[type] = [])).push(handler);\n\t\t},\n\n\t\t/**\n\t\t * Remove an event handler for the given type.\n\t\t *\n\t\t * @param {String} type\tType of event to unregister `handler` from, or `\"*\"`\n\t\t * @param {Function} handler Handler function to remove\n\t\t * @memberOf mitt\n\t\t */\n\t\toff: function off(type , handler ) {\n\t\t\tif (all[type]) {\n\t\t\t\tall[type].splice(all[type].indexOf(handler) >>> 0, 1);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Invoke all handlers for the given type.\n\t\t * If present, `\"*\"` handlers are invoked after type-matched handlers.\n\t\t *\n\t\t * @param {String} type The event type to invoke\n\t\t * @param {Any} [evt] Any value (object is recommended and powerful), passed to each handler\n\t\t * @memberOf mitt\n\t\t */\n\t\temit: function emit(type , evt ) {\n\t\t\t(all[type] || []).slice().map(function (handler) { handler(evt); });\n\t\t\t(all['*'] || []).slice().map(function (handler) { handler(type, evt); });\n\t\t}\n\t};\n}\n\nexport default mitt;\n//# sourceMappingURL=mitt.es.js.map\n","export default pathAndSearch => {\n if (pathAndSearch === undefined) {\n return pathAndSearch\n }\n let [path, search = ``] = pathAndSearch.split(`?`)\n if (search) {\n search = `?` + search\n }\n\n if (path === `/`) {\n return `/` + search\n }\n if (path.charAt(path.length - 1) === `/`) {\n return path.slice(0, -1) + search\n }\n return path + search\n}\n","import { pick } from \"@gatsbyjs/reach-router\"\nimport stripPrefix from \"./strip-prefix\"\nimport normalizePagePath from \"./normalize-page-path\"\nimport { maybeGetBrowserRedirect } from \"./redirect-utils.js\"\n\nconst pathCache = new Map()\nlet matchPaths = []\n\nconst trimPathname = rawPathname => {\n let newRawPathname = rawPathname\n const queryIndex = rawPathname.indexOf(`?`)\n\n if (queryIndex !== -1) {\n const [path, qs] = rawPathname.split(`?`)\n newRawPathname = `${path}?${encodeURIComponent(qs)}`\n }\n\n const pathname = decodeURIComponent(newRawPathname)\n\n // Remove the pathPrefix from the pathname.\n const trimmedPathname = stripPrefix(\n pathname,\n decodeURIComponent(__BASE_PATH__)\n )\n // Remove any hashfragment\n .split(`#`)[0]\n\n return trimmedPathname\n}\n\nfunction absolutify(path) {\n // If it's already absolute, return as-is\n if (\n path.startsWith(`/`) ||\n path.startsWith(`https://`) ||\n path.startsWith(`http://`)\n ) {\n return path\n }\n // Calculate path relative to current location, adding a trailing slash to\n // match behavior of @reach/router\n return new URL(\n path,\n window.location.href + (window.location.href.endsWith(`/`) ? `` : `/`)\n ).pathname\n}\n\n/**\n * Set list of matchPaths\n *\n * @param {Array<{path: string, matchPath: string}>} value collection of matchPaths\n */\nexport const setMatchPaths = value => {\n matchPaths = value\n}\n\n/**\n * Return a matchpath url\n * if `match-paths.json` contains `{ \"/foo*\": \"/page1\", ...}`, then\n * `/foo?bar=far` => `/page1`\n *\n * @param {string} rawPathname A raw pathname\n * @return {string|null}\n */\nexport const findMatchPath = rawPathname => {\n const trimmedPathname = cleanPath(rawPathname)\n\n const pickPaths = matchPaths.map(({ path, matchPath }) => {\n return {\n path: matchPath,\n originalPath: path,\n }\n })\n\n const path = pick(pickPaths, trimmedPathname)\n\n if (path) {\n return normalizePagePath(path.route.originalPath)\n }\n\n return null\n}\n\n/**\n * Return a matchpath params from reach/router rules\n * if `match-paths.json` contains `{ \":bar/*foo\" }`, and the path is /baz/zaz/zoo\n * then it returns\n * { bar: baz, foo: zaz/zoo }\n *\n * @param {string} rawPathname A raw pathname\n * @return {object}\n */\nexport const grabMatchParams = rawPathname => {\n const trimmedPathname = cleanPath(rawPathname)\n\n const pickPaths = matchPaths.map(({ path, matchPath }) => {\n return {\n path: matchPath,\n originalPath: path,\n }\n })\n\n const path = pick(pickPaths, trimmedPathname)\n\n if (path) {\n return path.params\n }\n\n return {}\n}\n\n// Given a raw URL path, returns the cleaned version of it (trim off\n// `#` and query params), or if it matches an entry in\n// `match-paths.json`, its matched path is returned\n//\n// E.g. `/foo?bar=far` => `/foo`\n//\n// Or if `match-paths.json` contains `{ \"/foo*\": \"/page1\", ...}`, then\n// `/foo?bar=far` => `/page1`\nexport const findPath = rawPathname => {\n const trimmedPathname = trimPathname(absolutify(rawPathname))\n if (pathCache.has(trimmedPathname)) {\n return pathCache.get(trimmedPathname)\n }\n\n const redirect = maybeGetBrowserRedirect(rawPathname)\n if (redirect) {\n return findPath(redirect.toPath)\n }\n\n let foundPath = findMatchPath(trimmedPathname)\n\n if (!foundPath) {\n foundPath = cleanPath(rawPathname)\n }\n\n pathCache.set(trimmedPathname, foundPath)\n\n return foundPath\n}\n\n/**\n * Clean a url and converts /index.html => /\n * E.g. `/foo?bar=far` => `/foo`\n *\n * @param {string} rawPathname A raw pathname\n * @return {string}\n */\nexport const cleanPath = rawPathname => {\n const trimmedPathname = trimPathname(absolutify(rawPathname))\n\n let foundPath = trimmedPathname\n if (foundPath === `/index.html`) {\n foundPath = `/`\n }\n\n foundPath = normalizePagePath(foundPath)\n\n return foundPath\n}\n","import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct.bind();\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n return _construct.apply(null, arguments);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n try {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n } catch (e) {\n return typeof fn === \"function\";\n }\n}","import React from \"react\"\n\nexport const ServerSliceRenderer = ({ sliceId, children }) => {\n const contents = [\n React.createElement(`slice-start`, {\n id: `${sliceId}-1`,\n }),\n React.createElement(`slice-end`, {\n id: `${sliceId}-1`,\n }),\n ]\n\n if (children) {\n // if children exist, we split the slice into a before and after piece\n // see renderSlices in render-html\n contents.push(children)\n contents.push(\n React.createElement(`slice-start`, {\n id: `${sliceId}-2`,\n }),\n React.createElement(`slice-end`, {\n id: `${sliceId}-2`,\n })\n )\n }\n\n return contents\n}\n","import React, { useContext } from \"react\"\nimport { createContentDigest } from \"gatsby-core-utils/create-content-digest\"\nimport { SlicesMapContext, SlicesPropsContext } from \"./context\"\nimport { ServerSliceRenderer } from \"./server-slice-renderer\"\n\nconst getSliceId = (sliceName, sliceProps) => {\n if (!Object.keys(sliceProps).length) {\n return sliceName\n }\n\n const propsString = createContentDigest(sliceProps)\n return `${sliceName}-${propsString}`\n}\n\nexport const ServerSlice = ({\n sliceName,\n allowEmpty,\n children,\n ...sliceProps\n}) => {\n const slicesMap = useContext(SlicesMapContext)\n const slicesProps = useContext(SlicesPropsContext)\n const concreteSliceName = slicesMap[sliceName]\n\n if (!concreteSliceName) {\n if (allowEmpty) {\n return null\n } else {\n throw new Error(\n `Slice \"${concreteSliceName}\" for \"${sliceName}\" slot not found`\n )\n }\n }\n\n const sliceId = getSliceId(concreteSliceName, sliceProps)\n\n // set props on context object for static-entry to return\n let sliceUsage = slicesProps[sliceId]\n if (!sliceUsage) {\n slicesProps[sliceId] = sliceUsage = {\n props: sliceProps,\n sliceName: concreteSliceName,\n hasChildren: !!children,\n }\n } else {\n if (children) {\n sliceUsage.hasChildren = true\n }\n }\n\n return {children}\n}\n","import React, { useContext } from \"react\"\nimport { SlicesMapContext, SlicesResultsContext } from \"./context\"\n\nexport const InlineSlice = ({\n sliceName,\n allowEmpty,\n children,\n ...sliceProps\n}) => {\n const slicesMap = useContext(SlicesMapContext)\n const slicesResultsMap = useContext(SlicesResultsContext)\n const concreteSliceName = slicesMap[sliceName]\n const slice = slicesResultsMap.get(concreteSliceName)\n\n if (!slice) {\n if (allowEmpty) {\n return null\n } else {\n throw new Error(\n `Slice \"${concreteSliceName}\" for \"${sliceName}\" slot not found`\n )\n }\n }\n\n return (\n \n {children}\n \n )\n}\n","\"use client\"\n\nimport React, { useContext } from \"react\"\nimport { ServerSlice } from \"./slice/server-slice\"\nimport { InlineSlice } from \"./slice/inline-slice\"\nimport { SlicesContext } from \"./slice/context\"\n\nexport function Slice(props) {\n if (process.env.GATSBY_SLICES) {\n // we use sliceName internally, so remap alias to sliceName\n const internalProps = {\n ...props,\n sliceName: props.alias,\n }\n delete internalProps.alias\n delete internalProps.__renderedByLocation\n\n const slicesContext = useContext(SlicesContext)\n\n // validate props\n const propErrors = validateSliceProps(props)\n if (Object.keys(propErrors).length) {\n throw new SlicePropsError(\n slicesContext.renderEnvironment === `browser`,\n internalProps.sliceName,\n propErrors,\n props.__renderedByLocation\n )\n }\n\n if (slicesContext.renderEnvironment === `server`) {\n return \n } else if (slicesContext.renderEnvironment === `browser`) {\n // in the browser, we'll just render the component as is\n return \n } else if (\n slicesContext.renderEnvironment === `engines` ||\n slicesContext.renderEnvironment === `dev-ssr`\n ) {\n // if we're in SSR, we'll just render the component as is\n return \n } else if (slicesContext.renderEnvironment === `slices`) {\n // we are not yet supporting nested slices\n\n let additionalContextMessage = ``\n\n // just in case generating additional contextual information fails, we still want the base message to show\n // and not show another cryptic error message\n try {\n additionalContextMessage = `\\n\\nSlice component \"${slicesContext.sliceRoot.name}\" (${slicesContext.sliceRoot.componentPath}) tried to render `\n } catch {\n // don't need to handle it, we will just skip the additional context message if we fail to generate it\n }\n\n throw new Error(\n `Nested slices are not supported.${additionalContextMessage}\\n\\nSee https://gatsbyjs.com/docs/reference/built-in-components/gatsby-slice#nested-slices`\n )\n } else {\n throw new Error(\n `Slice context \"${slicesContext.renderEnvironment}\" is not supported.`\n )\n }\n } else {\n throw new Error(`Slices are disabled.`)\n }\n}\n\nclass SlicePropsError extends Error {\n constructor(inBrowser, sliceName, propErrors, renderedByLocation) {\n const errors = Object.entries(propErrors)\n .map(\n ([key, value]) =>\n `not serializable \"${value}\" type passed to \"${key}\" prop`\n )\n .join(`, `)\n\n const name = `SlicePropsError`\n let stack = ``\n let message = ``\n\n if (inBrowser) {\n // They're just (kinda) kidding, I promise... You can still work here <3\n // https://www.gatsbyjs.com/careers/\n const fullStack =\n React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactDebugCurrentFrame.getCurrentStack()\n\n // remove the first line of the stack trace\n const stackLines = fullStack.trim().split(`\\n`).slice(1)\n stackLines[0] = stackLines[0].trim()\n stack = `\\n` + stackLines.join(`\\n`)\n\n message = `Slice \"${sliceName}\" was passed props that are not serializable (${errors}).`\n } else {\n // we can't really grab any extra info outside of the browser, so just print what we can\n message = `${name}: Slice \"${sliceName}\" was passed props that are not serializable (${errors}).`\n const stackLines = new Error().stack.trim().split(`\\n`).slice(2)\n stack = `${message}\\n${stackLines.join(`\\n`)}`\n }\n\n super(message)\n this.name = name\n if (stack) {\n this.stack = stack\n } else {\n Error.captureStackTrace(this, SlicePropsError)\n }\n\n if (renderedByLocation) {\n this.forcedLocation = { ...renderedByLocation, functionName: `Slice` }\n }\n }\n}\n\nconst validateSliceProps = (\n props,\n errors = {},\n seenObjects = [],\n path = null\n) => {\n // recursively validate all props\n for (const [name, value] of Object.entries(props)) {\n if (\n value === undefined ||\n value === null ||\n (!path && name === `children`)\n ) {\n continue\n }\n\n const propPath = path ? `${path}.${name}` : name\n\n if (typeof value === `function`) {\n errors[propPath] = typeof value\n } else if (typeof value === `object` && seenObjects.indexOf(value) <= 0) {\n seenObjects.push(value)\n validateSliceProps(value, errors, seenObjects, propPath)\n }\n }\n\n return errors\n}\n","import loader from \"./loader\"\n\nconst prefetchPathname = loader.enqueue\n\nfunction graphql() {\n throw new Error(\n `It appears like Gatsby is misconfigured. Gatsby related \\`graphql\\` calls ` +\n `are supposed to only be evaluated at compile time, and then compiled away. ` +\n `Unfortunately, something went wrong and the query was left in the compiled code.\\n\\n` +\n `Unless your site has a complex or custom babel/Gatsby configuration this is likely a bug in Gatsby.`\n )\n}\n\nexport { default as PageRenderer } from \"./public-page-renderer\"\nexport { useScrollRestoration } from \"gatsby-react-router-scroll\"\nexport {\n Link,\n withPrefix,\n withAssetPrefix,\n navigate,\n parsePath,\n} from \"gatsby-link\"\n\nexport { graphql, prefetchPathname }\nexport { StaticQuery, StaticQueryContext, useStaticQuery } from \"./static-query\"\nexport { Slice } from \"./slice\"\nexport * from \"gatsby-script\"\n","const support = function (feature) {\n if (typeof document === `undefined`) {\n return false\n }\n const fakeLink = document.createElement(`link`)\n try {\n if (fakeLink.relList && typeof fakeLink.relList.supports === `function`) {\n return fakeLink.relList.supports(feature)\n }\n } catch (err) {\n return false\n }\n return false\n}\n\nconst linkPrefetchStrategy = function (url, options) {\n return new Promise((resolve, reject) => {\n if (typeof document === `undefined`) {\n reject()\n return\n }\n\n const link = document.createElement(`link`)\n link.setAttribute(`rel`, `prefetch`)\n link.setAttribute(`href`, url)\n\n Object.keys(options).forEach(key => {\n link.setAttribute(key, options[key])\n })\n\n link.onload = resolve\n link.onerror = reject\n\n const parentElement =\n document.getElementsByTagName(`head`)[0] ||\n document.getElementsByName(`script`)[0].parentNode\n parentElement.appendChild(link)\n })\n}\n\nconst xhrPrefetchStrategy = function (url) {\n return new Promise((resolve, reject) => {\n const req = new XMLHttpRequest()\n req.open(`GET`, url, true)\n\n req.onload = () => {\n if (req.status === 200) {\n resolve()\n } else {\n reject()\n }\n }\n\n req.send(null)\n })\n}\n\nconst supportedPrefetchStrategy = support(`prefetch`)\n ? linkPrefetchStrategy\n : xhrPrefetchStrategy\n\nconst preFetched = {}\n\nconst prefetch = function (url, options) {\n return new Promise(resolve => {\n if (preFetched[url]) {\n resolve()\n return\n }\n\n supportedPrefetchStrategy(url, options)\n .then(() => {\n resolve()\n preFetched[url] = true\n })\n .catch(() => {}) // 404s are logged to the console anyway\n })\n}\n\nexport default prefetch\n","import { createFromReadableStream } from \"react-server-dom-webpack\"\nimport prefetchHelper from \"./prefetch\"\nimport emitter from \"./emitter\"\nimport { setMatchPaths, findPath, findMatchPath } from \"./find-path\"\n\n/**\n * Available resource loading statuses\n */\nexport const PageResourceStatus = {\n /**\n * At least one of critical resources failed to load\n */\n Error: `error`,\n /**\n * Resources loaded successfully\n */\n Success: `success`,\n}\n\nconst preferDefault = m => (m && m.default) || m\n\nconst stripSurroundingSlashes = s => {\n s = s[0] === `/` ? s.slice(1) : s\n s = s.endsWith(`/`) ? s.slice(0, -1) : s\n return s\n}\n\nconst createPageDataUrl = rawPath => {\n const [path, maybeSearch] = rawPath.split(`?`)\n const fixedPath = path === `/` ? `index` : stripSurroundingSlashes(path)\n return `${__PATH_PREFIX__}/page-data/${fixedPath}/page-data.json${\n maybeSearch ? `?${maybeSearch}` : ``\n }`\n}\n\n/**\n * Utility to check the path that goes into doFetch for e.g. potential malicious intentions.\n * It checks for \"//\" because with this you could do a fetch request to a different domain.\n */\nconst shouldAbortFetch = rawPath => rawPath.startsWith(`//`)\n\nfunction doFetch(url, method = `GET`) {\n return new Promise(resolve => {\n const req = new XMLHttpRequest()\n req.open(method, url, true)\n req.onreadystatechange = () => {\n if (req.readyState == 4) {\n resolve(req)\n }\n }\n req.send(null)\n })\n}\n\nconst doesConnectionSupportPrefetch = () => {\n if (\n `connection` in navigator &&\n typeof navigator.connection !== `undefined`\n ) {\n if ((navigator.connection.effectiveType || ``).includes(`2g`)) {\n return false\n }\n if (navigator.connection.saveData) {\n return false\n }\n }\n return true\n}\n\n// Regex that matches common search crawlers\nconst BOT_REGEX = /bot|crawler|spider|crawling/i\n\nconst toPageResources = (pageData, component = null, head) => {\n const page = {\n componentChunkName: pageData.componentChunkName,\n path: pageData.path,\n webpackCompilationHash: pageData.webpackCompilationHash,\n matchPath: pageData.matchPath,\n staticQueryHashes: pageData.staticQueryHashes,\n getServerDataError: pageData.getServerDataError,\n slicesMap: pageData.slicesMap ?? {},\n }\n\n return {\n component,\n head,\n json: pageData.result,\n page,\n }\n}\n\nfunction waitForResponse(response) {\n return new Promise(resolve => {\n try {\n const result = response.readRoot()\n resolve(result)\n } catch (err) {\n if (\n Object.hasOwnProperty.call(err, `_response`) &&\n Object.hasOwnProperty.call(err, `_status`)\n ) {\n setTimeout(() => {\n waitForResponse(response).then(resolve)\n }, 200)\n } else {\n throw err\n }\n }\n })\n}\n\nexport class BaseLoader {\n constructor(loadComponent, matchPaths) {\n // Map of pagePath -> Page. Where Page is an object with: {\n // status: PageResourceStatus.Success || PageResourceStatus.Error,\n // payload: PageResources, // undefined if PageResourceStatus.Error\n // }\n // PageResources is {\n // component,\n // json: pageData.result,\n // page: {\n // componentChunkName,\n // path,\n // webpackCompilationHash,\n // staticQueryHashes\n // },\n // staticQueryResults\n // }\n this.pageDb = new Map()\n this.inFlightDb = new Map()\n this.staticQueryDb = {}\n this.pageDataDb = new Map()\n this.partialHydrationDb = new Map()\n this.slicesDataDb = new Map()\n this.sliceInflightDb = new Map()\n this.slicesDb = new Map()\n this.isPrefetchQueueRunning = false\n this.prefetchQueued = []\n this.prefetchTriggered = new Set()\n this.prefetchCompleted = new Set()\n this.loadComponent = loadComponent\n setMatchPaths(matchPaths)\n }\n\n inFlightNetworkRequests = new Map()\n\n memoizedGet(url) {\n let inFlightPromise = this.inFlightNetworkRequests.get(url)\n\n if (!inFlightPromise) {\n inFlightPromise = doFetch(url, `GET`)\n this.inFlightNetworkRequests.set(url, inFlightPromise)\n }\n\n // Prefer duplication with then + catch over .finally to prevent problems in ie11 + firefox\n return inFlightPromise\n .then(response => {\n this.inFlightNetworkRequests.delete(url)\n return response\n })\n .catch(err => {\n this.inFlightNetworkRequests.delete(url)\n throw err\n })\n }\n\n setApiRunner(apiRunner) {\n this.apiRunner = apiRunner\n this.prefetchDisabled = apiRunner(`disableCorePrefetching`).some(a => a)\n }\n\n fetchPageDataJson(loadObj) {\n const { pagePath, retries = 0 } = loadObj\n const url = createPageDataUrl(pagePath)\n return this.memoizedGet(url).then(req => {\n const { status, responseText } = req\n\n // Handle 200\n if (status === 200) {\n try {\n const jsonPayload = JSON.parse(responseText)\n if (jsonPayload.path === undefined) {\n throw new Error(`not a valid pageData response`)\n }\n\n const maybeSearch = pagePath.split(`?`)[1]\n if (maybeSearch && !jsonPayload.path.includes(maybeSearch)) {\n jsonPayload.path += `?${maybeSearch}`\n }\n\n return Object.assign(loadObj, {\n status: PageResourceStatus.Success,\n payload: jsonPayload,\n })\n } catch (err) {\n // continue regardless of error\n }\n }\n\n // Handle 404\n if (status === 404 || status === 200) {\n // If the request was for a 404/500 page and it doesn't exist, we're done\n if (pagePath === `/404.html` || pagePath === `/500.html`) {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n }\n\n // Need some code here to cache the 404 request. In case\n // multiple loadPageDataJsons result in 404s\n return this.fetchPageDataJson(\n Object.assign(loadObj, { pagePath: `/404.html`, notFound: true })\n )\n }\n\n // handle 500 response (Unrecoverable)\n if (status === 500) {\n return this.fetchPageDataJson(\n Object.assign(loadObj, {\n pagePath: `/500.html`,\n internalServerError: true,\n })\n )\n }\n\n // Handle everything else, including status === 0, and 503s. Should retry\n if (retries < 3) {\n return this.fetchPageDataJson(\n Object.assign(loadObj, { retries: retries + 1 })\n )\n }\n\n // Retried 3 times already, result is an error.\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n })\n }\n\n fetchPartialHydrationJson(loadObj) {\n const { pagePath, retries = 0 } = loadObj\n const url = createPageDataUrl(pagePath).replace(`.json`, `-rsc.json`)\n return this.memoizedGet(url).then(req => {\n const { status, responseText } = req\n\n // Handle 200\n if (status === 200) {\n try {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Success,\n payload: responseText,\n })\n } catch (err) {\n // continue regardless of error\n }\n }\n\n // Handle 404\n if (status === 404 || status === 200) {\n // If the request was for a 404/500 page and it doesn't exist, we're done\n if (pagePath === `/404.html` || pagePath === `/500.html`) {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n }\n\n // Need some code here to cache the 404 request. In case\n // multiple loadPageDataJsons result in 404s\n return this.fetchPartialHydrationJson(\n Object.assign(loadObj, { pagePath: `/404.html`, notFound: true })\n )\n }\n\n // handle 500 response (Unrecoverable)\n if (status === 500) {\n return this.fetchPartialHydrationJson(\n Object.assign(loadObj, {\n pagePath: `/500.html`,\n internalServerError: true,\n })\n )\n }\n\n // Handle everything else, including status === 0, and 503s. Should retry\n if (retries < 3) {\n return this.fetchPartialHydrationJson(\n Object.assign(loadObj, { retries: retries + 1 })\n )\n }\n\n // Retried 3 times already, result is an error.\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n })\n }\n\n loadPageDataJson(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.pageDataDb.has(pagePath)) {\n const pageData = this.pageDataDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !pageData.stale) {\n return Promise.resolve(pageData)\n }\n }\n\n return this.fetchPageDataJson({ pagePath }).then(pageData => {\n this.pageDataDb.set(pagePath, pageData)\n\n return pageData\n })\n }\n\n loadPartialHydrationJson(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.partialHydrationDb.has(pagePath)) {\n const pageData = this.partialHydrationDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !pageData.stale) {\n return Promise.resolve(pageData)\n }\n }\n\n return this.fetchPartialHydrationJson({ pagePath }).then(pageData => {\n this.partialHydrationDb.set(pagePath, pageData)\n\n return pageData\n })\n }\n\n loadSliceDataJson(sliceName) {\n if (this.slicesDataDb.has(sliceName)) {\n const jsonPayload = this.slicesDataDb.get(sliceName)\n return Promise.resolve({ sliceName, jsonPayload })\n }\n\n const url = `${__PATH_PREFIX__}/slice-data/${sliceName}.json`\n return doFetch(url, `GET`).then(res => {\n const jsonPayload = JSON.parse(res.responseText)\n\n this.slicesDataDb.set(sliceName, jsonPayload)\n return { sliceName, jsonPayload }\n })\n }\n\n findMatchPath(rawPath) {\n return findMatchPath(rawPath)\n }\n\n // TODO check all uses of this and whether they use undefined for page resources not exist\n loadPage(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.pageDb.has(pagePath)) {\n const page = this.pageDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !page.payload.stale) {\n if (page.error) {\n return Promise.resolve({\n error: page.error,\n status: page.status,\n })\n }\n\n return Promise.resolve(page.payload)\n }\n }\n\n if (this.inFlightDb.has(pagePath)) {\n return this.inFlightDb.get(pagePath)\n }\n\n const loadDataPromises = [\n this.loadAppData(),\n this.loadPageDataJson(pagePath),\n ]\n\n if (global.hasPartialHydration) {\n loadDataPromises.push(this.loadPartialHydrationJson(pagePath))\n }\n\n const inFlightPromise = Promise.all(loadDataPromises).then(allData => {\n const [appDataResponse, pageDataResponse, rscDataResponse] = allData\n\n if (\n pageDataResponse.status === PageResourceStatus.Error ||\n rscDataResponse?.status === PageResourceStatus.Error\n ) {\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n let pageData = pageDataResponse.payload\n\n const {\n componentChunkName,\n staticQueryHashes: pageStaticQueryHashes = [],\n slicesMap = {},\n } = pageData\n\n const finalResult = {}\n\n const dedupedSliceNames = Array.from(new Set(Object.values(slicesMap)))\n\n const loadSlice = slice => {\n if (this.slicesDb.has(slice.name)) {\n return this.slicesDb.get(slice.name)\n } else if (this.sliceInflightDb.has(slice.name)) {\n return this.sliceInflightDb.get(slice.name)\n }\n\n const inFlight = this.loadComponent(slice.componentChunkName).then(\n component => {\n return {\n component: preferDefault(component),\n sliceContext: slice.result.sliceContext,\n data: slice.result.data,\n }\n }\n )\n\n this.sliceInflightDb.set(slice.name, inFlight)\n inFlight.then(results => {\n this.slicesDb.set(slice.name, results)\n this.sliceInflightDb.delete(slice.name)\n })\n\n return inFlight\n }\n\n return Promise.all(\n dedupedSliceNames.map(sliceName => this.loadSliceDataJson(sliceName))\n ).then(slicesData => {\n const slices = []\n const dedupedStaticQueryHashes = [...pageStaticQueryHashes]\n\n for (const { jsonPayload, sliceName } of Object.values(slicesData)) {\n slices.push({ name: sliceName, ...jsonPayload })\n for (const staticQueryHash of jsonPayload.staticQueryHashes) {\n if (!dedupedStaticQueryHashes.includes(staticQueryHash)) {\n dedupedStaticQueryHashes.push(staticQueryHash)\n }\n }\n }\n\n const loadChunkPromises = [\n Promise.all(slices.map(loadSlice)),\n this.loadComponent(componentChunkName, `head`),\n ]\n\n if (!global.hasPartialHydration) {\n loadChunkPromises.push(this.loadComponent(componentChunkName))\n }\n\n // In develop we have separate chunks for template and Head components\n // to enable HMR (fast refresh requires single exports).\n // In production we have shared chunk with both exports. Double loadComponent here\n // will be deduped by webpack runtime resulting in single request and single module\n // being loaded for both `component` and `head`.\n // get list of components to get\n const componentChunkPromises = Promise.all(loadChunkPromises).then(\n components => {\n const [sliceComponents, headComponent, pageComponent] = components\n\n finalResult.createdAt = new Date()\n\n for (const sliceComponent of sliceComponents) {\n if (!sliceComponent || sliceComponent instanceof Error) {\n finalResult.status = PageResourceStatus.Error\n finalResult.error = sliceComponent\n }\n }\n\n if (\n !global.hasPartialHydration &&\n (!pageComponent || pageComponent instanceof Error)\n ) {\n finalResult.status = PageResourceStatus.Error\n finalResult.error = pageComponent\n }\n\n let pageResources\n\n if (finalResult.status !== PageResourceStatus.Error) {\n finalResult.status = PageResourceStatus.Success\n if (\n pageDataResponse.notFound === true ||\n rscDataResponse?.notFound === true\n ) {\n finalResult.notFound = true\n }\n pageData = Object.assign(pageData, {\n webpackCompilationHash: appDataResponse\n ? appDataResponse.webpackCompilationHash\n : ``,\n })\n\n if (typeof rscDataResponse?.payload === `string`) {\n pageResources = toPageResources(pageData, null, headComponent)\n\n pageResources.partialHydration = rscDataResponse.payload\n\n const readableStream = new ReadableStream({\n start(controller) {\n const te = new TextEncoder()\n controller.enqueue(te.encode(rscDataResponse.payload))\n },\n pull(controller) {\n // close on next read when queue is empty\n controller.close()\n },\n cancel() {},\n })\n\n return waitForResponse(\n createFromReadableStream(readableStream)\n ).then(result => {\n pageResources.partialHydration = result\n\n return pageResources\n })\n } else {\n pageResources = toPageResources(\n pageData,\n pageComponent,\n headComponent\n )\n }\n }\n\n // undefined if final result is an error\n return pageResources\n }\n )\n\n // get list of static queries to get\n const staticQueryBatchPromise = Promise.all(\n dedupedStaticQueryHashes.map(staticQueryHash => {\n // Check for cache in case this static query result has already been loaded\n if (this.staticQueryDb[staticQueryHash]) {\n const jsonPayload = this.staticQueryDb[staticQueryHash]\n return { staticQueryHash, jsonPayload }\n }\n\n return this.memoizedGet(\n `${__PATH_PREFIX__}/page-data/sq/d/${staticQueryHash}.json`\n )\n .then(req => {\n const jsonPayload = JSON.parse(req.responseText)\n return { staticQueryHash, jsonPayload }\n })\n .catch(() => {\n throw new Error(\n `We couldn't load \"${__PATH_PREFIX__}/page-data/sq/d/${staticQueryHash}.json\"`\n )\n })\n })\n ).then(staticQueryResults => {\n const staticQueryResultsMap = {}\n\n staticQueryResults.forEach(({ staticQueryHash, jsonPayload }) => {\n staticQueryResultsMap[staticQueryHash] = jsonPayload\n this.staticQueryDb[staticQueryHash] = jsonPayload\n })\n\n return staticQueryResultsMap\n })\n\n return (\n Promise.all([componentChunkPromises, staticQueryBatchPromise])\n .then(([pageResources, staticQueryResults]) => {\n let payload\n if (pageResources) {\n payload = { ...pageResources, staticQueryResults }\n finalResult.payload = payload\n emitter.emit(`onPostLoadPageResources`, {\n page: payload,\n pageResources: payload,\n })\n }\n\n this.pageDb.set(pagePath, finalResult)\n\n if (finalResult.error) {\n return {\n error: finalResult.error,\n status: finalResult.status,\n }\n }\n\n return payload\n })\n // when static-query fail to load we throw a better error\n .catch(err => {\n return {\n error: err,\n status: PageResourceStatus.Error,\n }\n })\n )\n })\n })\n\n inFlightPromise\n .then(() => {\n this.inFlightDb.delete(pagePath)\n })\n .catch(error => {\n this.inFlightDb.delete(pagePath)\n throw error\n })\n\n this.inFlightDb.set(pagePath, inFlightPromise)\n\n return inFlightPromise\n }\n\n // returns undefined if the page does not exists in cache\n loadPageSync(rawPath, options = {}) {\n const pagePath = findPath(rawPath)\n if (this.pageDb.has(pagePath)) {\n const pageData = this.pageDb.get(pagePath)\n\n if (pageData.payload) {\n return pageData.payload\n }\n\n if (options?.withErrorDetails) {\n return {\n error: pageData.error,\n status: pageData.status,\n }\n }\n }\n return undefined\n }\n\n shouldPrefetch(pagePath) {\n // Skip prefetching if we know user is on slow or constrained connection\n if (!doesConnectionSupportPrefetch()) {\n return false\n }\n\n // Don't prefetch if this is a crawler bot\n if (navigator.userAgent && BOT_REGEX.test(navigator.userAgent)) {\n return false\n }\n\n // Check if the page exists.\n if (this.pageDb.has(pagePath)) {\n return false\n }\n\n return true\n }\n\n prefetch(pagePath) {\n if (!this.shouldPrefetch(pagePath)) {\n return {\n then: resolve => resolve(false),\n abort: () => {},\n }\n }\n if (this.prefetchTriggered.has(pagePath)) {\n return {\n then: resolve => resolve(true),\n abort: () => {},\n }\n }\n\n const defer = {\n resolve: null,\n reject: null,\n promise: null,\n }\n defer.promise = new Promise((resolve, reject) => {\n defer.resolve = resolve\n defer.reject = reject\n })\n this.prefetchQueued.push([pagePath, defer])\n const abortC = new AbortController()\n abortC.signal.addEventListener(`abort`, () => {\n const index = this.prefetchQueued.findIndex(([p]) => p === pagePath)\n // remove from the queue\n if (index !== -1) {\n this.prefetchQueued.splice(index, 1)\n }\n })\n\n if (!this.isPrefetchQueueRunning) {\n this.isPrefetchQueueRunning = true\n setTimeout(() => {\n this._processNextPrefetchBatch()\n }, 3000)\n }\n\n return {\n then: (resolve, reject) => defer.promise.then(resolve, reject),\n abort: abortC.abort.bind(abortC),\n }\n }\n\n _processNextPrefetchBatch() {\n const idleCallback = window.requestIdleCallback || (cb => setTimeout(cb, 0))\n\n idleCallback(() => {\n const toPrefetch = this.prefetchQueued.splice(0, 4)\n const prefetches = Promise.all(\n toPrefetch.map(([pagePath, dPromise]) => {\n // Tell plugins with custom prefetching logic that they should start\n // prefetching this path.\n if (!this.prefetchTriggered.has(pagePath)) {\n this.apiRunner(`onPrefetchPathname`, { pathname: pagePath })\n this.prefetchTriggered.add(pagePath)\n }\n\n // If a plugin has disabled core prefetching, stop now.\n if (this.prefetchDisabled) {\n return dPromise.resolve(false)\n }\n\n return this.doPrefetch(findPath(pagePath)).then(() => {\n if (!this.prefetchCompleted.has(pagePath)) {\n this.apiRunner(`onPostPrefetchPathname`, { pathname: pagePath })\n this.prefetchCompleted.add(pagePath)\n }\n\n dPromise.resolve(true)\n })\n })\n )\n\n if (this.prefetchQueued.length) {\n prefetches.then(() => {\n setTimeout(() => {\n this._processNextPrefetchBatch()\n }, 3000)\n })\n } else {\n this.isPrefetchQueueRunning = false\n }\n })\n }\n\n doPrefetch(pagePath) {\n const pageDataUrl = createPageDataUrl(pagePath)\n\n if (global.hasPartialHydration) {\n return Promise.all([\n prefetchHelper(pageDataUrl, {\n crossOrigin: `anonymous`,\n as: `fetch`,\n }).then(() =>\n // This was just prefetched, so will return a response from\n // the cache instead of making another request to the server\n this.loadPageDataJson(pagePath)\n ),\n prefetchHelper(pageDataUrl.replace(`.json`, `-rsc.json`), {\n crossOrigin: `anonymous`,\n as: `fetch`,\n }).then(() =>\n // This was just prefetched, so will return a response from\n // the cache instead of making another request to the server\n this.loadPartialHydrationJson(pagePath)\n ),\n ])\n } else {\n return prefetchHelper(pageDataUrl, {\n crossOrigin: `anonymous`,\n as: `fetch`,\n }).then(() =>\n // This was just prefetched, so will return a response from\n // the cache instead of making another request to the server\n this.loadPageDataJson(pagePath)\n )\n }\n }\n\n hovering(rawPath) {\n this.loadPage(rawPath)\n }\n\n getResourceURLsForPathname(rawPath) {\n const pagePath = findPath(rawPath)\n const page = this.pageDataDb.get(pagePath)\n if (page) {\n const pageResources = toPageResources(page.payload)\n\n return [\n ...createComponentUrls(pageResources.page.componentChunkName),\n createPageDataUrl(pagePath),\n ]\n } else {\n return null\n }\n }\n\n isPageNotFound(rawPath) {\n const pagePath = findPath(rawPath)\n const page = this.pageDb.get(pagePath)\n return !page || page.notFound\n }\n\n loadAppData(retries = 0) {\n return this.memoizedGet(`${__PATH_PREFIX__}/page-data/app-data.json`).then(\n req => {\n const { status, responseText } = req\n\n let appData\n\n if (status !== 200 && retries < 3) {\n // Retry 3 times incase of non-200 responses\n return this.loadAppData(retries + 1)\n }\n\n // Handle 200\n if (status === 200) {\n try {\n const jsonPayload = JSON.parse(responseText)\n if (jsonPayload.webpackCompilationHash === undefined) {\n throw new Error(`not a valid app-data response`)\n }\n\n appData = jsonPayload\n } catch (err) {\n // continue regardless of error\n }\n }\n\n return appData\n }\n )\n }\n}\n\nconst createComponentUrls = componentChunkName =>\n (window.___chunkMapping[componentChunkName] || []).map(\n chunk => __PATH_PREFIX__ + chunk\n )\n\nexport class ProdLoader extends BaseLoader {\n constructor(asyncRequires, matchPaths, pageData) {\n const loadComponent = (chunkName, exportType = `components`) => {\n if (!global.hasPartialHydration) {\n exportType = `components`\n }\n\n if (!asyncRequires[exportType][chunkName]) {\n throw new Error(\n `We couldn't find the correct component chunk with the name \"${chunkName}\"`\n )\n }\n\n return (\n asyncRequires[exportType][chunkName]()\n // loader will handle the case when component is error\n .catch(err => err)\n )\n }\n\n super(loadComponent, matchPaths)\n\n if (pageData) {\n this.pageDataDb.set(findPath(pageData.path), {\n pagePath: pageData.path,\n payload: pageData,\n status: `success`,\n })\n }\n }\n\n doPrefetch(pagePath) {\n return super.doPrefetch(pagePath).then(result => {\n if (result.status !== PageResourceStatus.Success) {\n return Promise.resolve()\n }\n const pageData = result.payload\n const chunkName = pageData.componentChunkName\n const componentUrls = createComponentUrls(chunkName)\n return Promise.all(componentUrls.map(prefetchHelper)).then(() => pageData)\n })\n }\n\n loadPageDataJson(rawPath) {\n return super.loadPageDataJson(rawPath).then(data => {\n if (data.notFound) {\n if (shouldAbortFetch(rawPath)) {\n return data\n }\n // check if html file exist using HEAD request:\n // if it does we should navigate to it instead of showing 404\n return doFetch(rawPath, `HEAD`).then(req => {\n if (req.status === 200) {\n // page (.html file) actually exist (or we asked for 404 )\n // returning page resources status as errored to trigger\n // regular browser navigation to given page\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n // if HEAD request wasn't 200, return notFound result\n // and show 404 page\n return data\n })\n }\n return data\n })\n }\n\n loadPartialHydrationJson(rawPath) {\n return super.loadPartialHydrationJson(rawPath).then(data => {\n if (data.notFound) {\n if (shouldAbortFetch(rawPath)) {\n return data\n }\n // check if html file exist using HEAD request:\n // if it does we should navigate to it instead of showing 404\n return doFetch(rawPath, `HEAD`).then(req => {\n if (req.status === 200) {\n // page (.html file) actually exist (or we asked for 404 )\n // returning page resources status as errored to trigger\n // regular browser navigation to given page\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n // if HEAD request wasn't 200, return notFound result\n // and show 404 page\n return data\n })\n }\n return data\n })\n }\n}\n\nlet instance\n\nexport const setLoader = _loader => {\n instance = _loader\n}\n\nexport const publicLoader = {\n enqueue: rawPath => instance.prefetch(rawPath),\n\n // Real methods\n getResourceURLsForPathname: rawPath =>\n instance.getResourceURLsForPathname(rawPath),\n loadPage: rawPath => instance.loadPage(rawPath),\n // TODO add deprecation to v4 so people use withErrorDetails and then we can remove in v5 and change default behaviour\n loadPageSync: (rawPath, options = {}) =>\n instance.loadPageSync(rawPath, options),\n prefetch: rawPath => instance.prefetch(rawPath),\n isPageNotFound: rawPath => instance.isPageNotFound(rawPath),\n hovering: rawPath => instance.hovering(rawPath),\n loadAppData: () => instance.loadAppData(),\n}\n\nexport default publicLoader\n\nexport function getStaticQueryResults() {\n if (instance) {\n return instance.staticQueryDb\n } else {\n return {}\n }\n}\n\nexport function getSliceResults() {\n if (instance) {\n return instance.slicesDb\n } else {\n return {}\n }\n}\n","import { useEffect } from \"react\"\n\n/*\n * Calls callback in an effect and renders children\n */\nexport function FireCallbackInEffect({ children, callback }) {\n useEffect(() => {\n callback()\n })\n\n return children\n}\n","export const VALID_NODE_NAMES = [\n `link`,\n `meta`,\n `style`,\n `title`,\n `base`,\n `noscript`,\n `script`,\n `html`,\n `body`,\n]\n","import { VALID_NODE_NAMES } from \"./constants\"\n\n/**\n * Filter the props coming from a page down to just the ones that are relevant for head.\n * This e.g. filters out properties that are undefined during SSR.\n */\nexport function filterHeadProps(input) {\n return {\n location: {\n pathname: input.location.pathname,\n },\n params: input.params,\n data: input.data || {},\n serverData: input.serverData,\n pageContext: input.pageContext,\n }\n}\n\n/**\n * Throw error if Head export is not a valid function\n */\nexport function headExportValidator(head) {\n if (typeof head !== `function`)\n throw new Error(\n `Expected \"Head\" export to be a function got \"${typeof head}\".`\n )\n}\n\n/**\n * Warn once for same messsage\n */\nlet warnOnce = _ => {}\nif (process.env.NODE_ENV !== `production`) {\n const warnings = new Set()\n warnOnce = msg => {\n if (!warnings.has(msg)) {\n console.warn(msg)\n }\n warnings.add(msg)\n }\n}\n\n/**\n * Warn for invalid tags in Head which may have been directly added or introduced by `wrapRootElement`\n * @param {string} tagName\n */\nexport function warnForInvalidTag(tagName) {\n if (process.env.NODE_ENV !== `production`) {\n const warning = createWarningForInvalidTag(tagName)\n warnOnce(warning)\n }\n}\n\nfunction createWarningForInvalidTag(tagName) {\n return `<${tagName}> is not a valid head element. Please use one of the following: ${VALID_NODE_NAMES.join(\n `, `\n )}.\\n\\nAlso make sure that wrapRootElement in gatsby-ssr/gatsby-browser doesn't contain UI elements: https://gatsby.dev/invalid-head-elements`\n}\n\n/**\n * When a `nonce` is present on an element, browsers such as Chrome and Firefox strip it out of the\n * actual HTML attributes for security reasons *when the element is added to the document*. Thus,\n * given two equivalent elements that have nonces, `Element,isEqualNode()` will return false if one\n * of those elements gets added to the document. Although the `element.nonce` property will be the\n * same for both elements, the one that was added to the document will return an empty string for\n * its nonce HTML attribute value.\n *\n * This custom `isEqualNode()` function therefore removes the nonce value from the `newTag` before\n * comparing it to `oldTag`, restoring it afterwards.\n *\n * For more information, see:\n * https://bugs.chromium.org/p/chromium/issues/detail?id=1211471#c12\n */\nexport function isEqualNode(oldTag, newTag) {\n if (oldTag instanceof HTMLElement && newTag instanceof HTMLElement) {\n const nonce = newTag.getAttribute(`nonce`)\n // Only strip the nonce if `oldTag` has had it stripped. An element's nonce attribute will not\n // be stripped if there is no content security policy response header that includes a nonce.\n if (nonce && !oldTag.getAttribute(`nonce`)) {\n const cloneTag = newTag.cloneNode(true)\n cloneTag.setAttribute(`nonce`, ``)\n cloneTag.nonce = nonce\n return nonce === oldTag.nonce && oldTag.isEqualNode(cloneTag)\n }\n }\n\n return oldTag.isEqualNode(newTag)\n}\n\nexport function diffNodes({ oldNodes, newNodes, onStale, onNew }) {\n for (const existingHeadElement of oldNodes) {\n const indexInNewNodes = newNodes.findIndex(e =>\n isEqualNode(e, existingHeadElement)\n )\n\n if (indexInNewNodes === -1) {\n onStale(existingHeadElement)\n } else {\n // this node is re-created as-is, so we keep old node, and remove it from list of new nodes (as we handled it already here)\n newNodes.splice(indexInNewNodes, 1)\n }\n }\n\n // remaing new nodes didn't have matching old node, so need to be added\n for (const newNode of newNodes) {\n onNew(newNode)\n }\n}\n\nexport function getValidHeadNodesAndAttributes(\n rootNode,\n htmlAndBodyAttributes = {\n html: {},\n body: {},\n }\n) {\n const seenIds = new Map()\n const validHeadNodes = []\n\n // Filter out non-element nodes before looping since we don't care about them\n for (const node of rootNode.childNodes) {\n const nodeName = node.nodeName.toLowerCase()\n const id = node.attributes?.id?.value\n\n if (!isElementType(node)) continue\n\n if (isValidNodeName(nodeName)) {\n // and tags are treated differently, in that we don't render them, we only extract the attributes and apply them separetely\n if (nodeName === `html` || nodeName === `body`) {\n for (const attribute of node.attributes) {\n const isStyleAttribute = attribute.name === `style`\n\n // Merge attributes for same nodeName from previous loop iteration\n htmlAndBodyAttributes[nodeName] = {\n ...htmlAndBodyAttributes[nodeName],\n }\n\n if (!isStyleAttribute) {\n htmlAndBodyAttributes[nodeName][attribute.name] = attribute.value\n }\n\n // If there is already a style attribute, we need to merge them as otherwise the last one will \"win\"\n if (isStyleAttribute) {\n htmlAndBodyAttributes[nodeName].style = `${\n htmlAndBodyAttributes[nodeName]?.style\n ? htmlAndBodyAttributes[nodeName].style\n : ``\n }${attribute.value} `\n }\n }\n } else {\n let clonedNode = node.cloneNode(true)\n clonedNode.setAttribute(`data-gatsby-head`, true)\n\n // // This is hack to make script tags work\n if (clonedNode.nodeName.toLowerCase() === `script`) {\n clonedNode = massageScript(clonedNode)\n }\n // Duplicate ids are not allowed in the head, so we need to dedupe them\n if (id) {\n if (!seenIds.has(id)) {\n validHeadNodes.push(clonedNode)\n seenIds.set(id, validHeadNodes.length - 1)\n } else {\n const indexOfPreviouslyInsertedNode = seenIds.get(id)\n validHeadNodes[\n indexOfPreviouslyInsertedNode\n ].parentNode?.removeChild(\n validHeadNodes[indexOfPreviouslyInsertedNode]\n )\n validHeadNodes[indexOfPreviouslyInsertedNode] = clonedNode\n }\n } else {\n validHeadNodes.push(clonedNode)\n }\n }\n } else {\n warnForInvalidTag(nodeName)\n }\n\n if (node.childNodes.length) {\n validHeadNodes.push(\n ...getValidHeadNodesAndAttributes(node, htmlAndBodyAttributes)\n .validHeadNodes\n )\n }\n }\n\n return { validHeadNodes, htmlAndBodyAttributes }\n}\n\nfunction massageScript(node) {\n const script = document.createElement(`script`)\n for (const attr of node.attributes) {\n script.setAttribute(attr.name, attr.value)\n }\n script.innerHTML = node.innerHTML\n\n return script\n}\n\nexport function isValidNodeName(nodeName) {\n return VALID_NODE_NAMES.includes(nodeName)\n}\n/*\n * For Head, we only care about element nodes(type = 1), so this util is used to skip over non-element nodes\n * For Node type, see https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType\n */\nexport function isElementType(node) {\n return node.nodeType === 1\n}\n\n/**\n * Removes all the head elements that were added by `Head`\n */\nexport function removePrevHeadElements() {\n const prevHeadNodes = document.querySelectorAll(`[data-gatsby-head]`)\n for (const node of prevHeadNodes) {\n node.parentNode.removeChild(node)\n }\n}\n\nexport function applyHtmlAndBodyAttributes(htmlAndBodyAttributes) {\n if (!htmlAndBodyAttributes) return\n\n const { html, body } = htmlAndBodyAttributes\n\n const htmlElement = document.querySelector(`html`)\n if (htmlElement) {\n Object.entries(html).forEach(([attributeName, attributeValue]) => {\n htmlElement.setAttribute(attributeName, attributeValue)\n })\n }\n\n const bodyElement = document.querySelector(`body`)\n if (bodyElement) {\n Object.entries(body).forEach(([attributeName, attributeValue]) => {\n bodyElement.setAttribute(attributeName, attributeValue)\n })\n }\n}\n\nexport function removeHtmlAndBodyAttributes(htmlAndBodyattributeList) {\n if (!htmlAndBodyattributeList) return\n\n const { html, body } = htmlAndBodyattributeList\n\n if (html) {\n const htmlElement = document.querySelector(`html`)\n html.forEach(attributeName => {\n if (htmlElement) {\n htmlElement.removeAttribute(attributeName)\n }\n })\n }\n\n if (body) {\n const bodyElement = document.querySelector(`body`)\n body.forEach(attributeName => {\n if (bodyElement) {\n bodyElement.removeAttribute(attributeName)\n }\n })\n }\n}\n","import React from \"react\"\nimport { useEffect } from \"react\"\nimport { StaticQueryContext } from \"gatsby\"\nimport { LocationProvider } from \"@gatsbyjs/reach-router\"\nimport { reactDOMUtils } from \"../react-dom-utils\"\nimport { FireCallbackInEffect } from \"./components/fire-callback-in-effect\"\nimport {\n headExportValidator,\n filterHeadProps,\n diffNodes,\n getValidHeadNodesAndAttributes,\n removePrevHeadElements,\n applyHtmlAndBodyAttributes,\n removeHtmlAndBodyAttributes,\n} from \"./utils\"\nimport { apiRunner } from \"../api-runner-browser\"\n\nconst hiddenRoot = document.createElement(`div`)\nconst keysOfHtmlAndBodyAttributes = {\n html: [],\n body: [],\n}\n\nconst onHeadRendered = () => {\n const { validHeadNodes, htmlAndBodyAttributes } =\n getValidHeadNodesAndAttributes(hiddenRoot)\n\n keysOfHtmlAndBodyAttributes.html = Object.keys(htmlAndBodyAttributes.html)\n keysOfHtmlAndBodyAttributes.body = Object.keys(htmlAndBodyAttributes.body)\n\n applyHtmlAndBodyAttributes(htmlAndBodyAttributes)\n\n /**\n * The rest of the code block below is a diffing mechanism to ensure that\n * the head elements aren't duplicted on every re-render.\n */\n const existingHeadElements = document.querySelectorAll(`[data-gatsby-head]`)\n\n if (existingHeadElements.length === 0) {\n document.head.append(...validHeadNodes)\n return\n }\n\n const newHeadNodes = []\n diffNodes({\n oldNodes: existingHeadElements,\n newNodes: validHeadNodes,\n onStale: node => node.parentNode.removeChild(node),\n onNew: node => newHeadNodes.push(node),\n })\n\n document.head.append(...newHeadNodes)\n}\n\nif (process.env.BUILD_STAGE === `develop`) {\n // sigh ... and elements are not valid descedents of
(our hidden element)\n // react-dom in dev mode will warn about this. There doesn't seem to be a way to render arbitrary\n // user Head without hitting this issue (our hidden element could be just \"new Document()\", but\n // this can only have 1 child, and we don't control what is being rendered so that's not an option)\n // instead we continue to render to
, and just silence warnings for and elements\n // https://github.com/facebook/react/blob/e2424f33b3ad727321fc12e75c5e94838e84c2b5/packages/react-dom-bindings/src/client/validateDOMNesting.js#L498-L520\n const originalConsoleError = console.error.bind(console)\n console.error = (...args) => {\n if (\n Array.isArray(args) &&\n args.length >= 2 &&\n args[0]?.includes?.(`validateDOMNesting(...): %s cannot appear as`) &&\n (args[1] === `` || args[1] === ``)\n ) {\n return undefined\n }\n return originalConsoleError(...args)\n }\n\n /* We set up observer to be able to regenerate after react-refresh\n updates our hidden element.\n */\n const observer = new MutationObserver(onHeadRendered)\n observer.observe(hiddenRoot, {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true,\n })\n}\n\nexport function headHandlerForBrowser({\n pageComponent,\n staticQueryResults,\n pageComponentProps,\n}) {\n useEffect(() => {\n if (pageComponent?.Head) {\n headExportValidator(pageComponent.Head)\n\n const { render } = reactDOMUtils()\n\n const HeadElement = (\n \n )\n\n const WrapHeadElement = apiRunner(\n `wrapRootElement`,\n { element: HeadElement },\n HeadElement,\n ({ result }) => {\n return { element: result }\n }\n ).pop()\n\n render(\n // just a hack to call the callback after react has done first render\n // Note: In dev, we call onHeadRendered twice( in FireCallbackInEffect and after mutualution observer dectects initail render into hiddenRoot) this is for hot reloading\n // In Prod we only call onHeadRendered in FireCallbackInEffect to render to head\n \n \n {WrapHeadElement}\n \n ,\n hiddenRoot\n )\n }\n\n return () => {\n removePrevHeadElements()\n removeHtmlAndBodyAttributes(keysOfHtmlAndBodyAttributes)\n }\n })\n}\n","import React, { Suspense, createElement } from \"react\"\nimport PropTypes from \"prop-types\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport { grabMatchParams } from \"./find-path\"\nimport { headHandlerForBrowser } from \"./head/head-export-handler-for-browser\"\n\n// Renders page\nfunction PageRenderer(props) {\n const pageComponentProps = {\n ...props,\n params: {\n ...grabMatchParams(props.location.pathname),\n ...props.pageResources.json.pageContext.__params,\n },\n }\n\n const preferDefault = m => (m && m.default) || m\n\n let pageElement\n if (props.pageResources.partialHydration) {\n pageElement = props.pageResources.partialHydration\n } else {\n pageElement = createElement(preferDefault(props.pageResources.component), {\n ...pageComponentProps,\n key: props.path || props.pageResources.page.path,\n })\n }\n\n const pageComponent = props.pageResources.head\n\n headHandlerForBrowser({\n pageComponent,\n staticQueryResults: props.pageResources.staticQueryResults,\n pageComponentProps,\n })\n\n const wrappedPage = apiRunner(\n `wrapPageElement`,\n {\n element: pageElement,\n props: pageComponentProps,\n },\n pageElement,\n ({ result }) => {\n return { element: result, props: pageComponentProps }\n }\n ).pop()\n\n return wrappedPage\n}\n\nPageRenderer.propTypes = {\n location: PropTypes.object.isRequired,\n pageResources: PropTypes.object.isRequired,\n data: PropTypes.object,\n pageContext: PropTypes.object.isRequired,\n}\n\nexport default PageRenderer\n","// This is extracted to separate module because it's shared\n// between browser and SSR code\nexport const RouteAnnouncerProps = {\n id: `gatsby-announcer`,\n style: {\n position: `absolute`,\n top: 0,\n width: 1,\n height: 1,\n padding: 0,\n overflow: `hidden`,\n clip: `rect(0, 0, 0, 0)`,\n whiteSpace: `nowrap`,\n border: 0,\n },\n \"aria-live\": `assertive`,\n \"aria-atomic\": `true`,\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport loader, { PageResourceStatus } from \"./loader\"\nimport { maybeGetBrowserRedirect } from \"./redirect-utils.js\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport emitter from \"./emitter\"\nimport { RouteAnnouncerProps } from \"./route-announcer-props\"\nimport {\n navigate as reachNavigate,\n globalHistory,\n} from \"@gatsbyjs/reach-router\"\nimport { parsePath } from \"gatsby-link\"\n\nfunction maybeRedirect(pathname) {\n const redirect = maybeGetBrowserRedirect(pathname)\n const { hash, search } = window.location\n\n if (redirect != null) {\n window.___replace(redirect.toPath + search + hash)\n return true\n } else {\n return false\n }\n}\n\n// Catch unhandled chunk loading errors and force a restart of the app.\nlet nextRoute = ``\n\nwindow.addEventListener(`unhandledrejection`, event => {\n if (/loading chunk \\d* failed./i.test(event.reason)) {\n if (nextRoute) {\n window.location.pathname = nextRoute\n }\n }\n})\n\nconst onPreRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(location.pathname)) {\n nextRoute = location.pathname\n apiRunner(`onPreRouteUpdate`, { location, prevLocation })\n }\n}\n\nconst onRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(location.pathname)) {\n apiRunner(`onRouteUpdate`, { location, prevLocation })\n if (\n process.env.GATSBY_QUERY_ON_DEMAND &&\n process.env.GATSBY_QUERY_ON_DEMAND_LOADING_INDICATOR === `true`\n ) {\n emitter.emit(`onRouteUpdate`, { location, prevLocation })\n }\n }\n}\n\nconst navigate = (to, options = {}) => {\n // Support forward/backward navigation with numbers\n // navigate(-2) (jumps back 2 history steps)\n // navigate(2) (jumps forward 2 history steps)\n if (typeof to === `number`) {\n globalHistory.navigate(to)\n return\n }\n\n const { pathname, search, hash } = parsePath(to)\n const redirect = maybeGetBrowserRedirect(pathname)\n\n // If we're redirecting, just replace the passed in pathname\n // to the one we want to redirect to.\n if (redirect) {\n to = redirect.toPath + search + hash\n }\n\n // If we had a service worker update, no matter the path, reload window and\n // reset the pathname whitelist\n if (window.___swUpdated) {\n window.location = pathname + search + hash\n return\n }\n\n // Start a timer to wait for a second before transitioning and showing a\n // loader in case resources aren't around yet.\n const timeoutId = setTimeout(() => {\n emitter.emit(`onDelayedLoadPageResources`, { pathname })\n apiRunner(`onRouteUpdateDelayed`, {\n location: window.location,\n })\n }, 1000)\n\n loader.loadPage(pathname + search).then(pageResources => {\n // If no page resources, then refresh the page\n // Do this, rather than simply `window.location.reload()`, so that\n // pressing the back/forward buttons work - otherwise when pressing\n // back, the browser will just change the URL and expect JS to handle\n // the change, which won't always work since it might not be a Gatsby\n // page.\n if (!pageResources || pageResources.status === PageResourceStatus.Error) {\n window.history.replaceState({}, ``, location.href)\n window.location = pathname\n clearTimeout(timeoutId)\n return\n }\n\n // If the loaded page has a different compilation hash to the\n // window, then a rebuild has occurred on the server. Reload.\n if (process.env.NODE_ENV === `production` && pageResources) {\n if (\n pageResources.page.webpackCompilationHash !==\n window.___webpackCompilationHash\n ) {\n // Purge plugin-offline cache\n if (\n `serviceWorker` in navigator &&\n navigator.serviceWorker.controller !== null &&\n navigator.serviceWorker.controller.state === `activated`\n ) {\n navigator.serviceWorker.controller.postMessage({\n gatsbyApi: `clearPathResources`,\n })\n }\n\n window.location = pathname + search + hash\n }\n }\n reachNavigate(to, options)\n clearTimeout(timeoutId)\n })\n}\n\nfunction shouldUpdateScroll(prevRouterProps, { location }) {\n const { pathname, hash } = location\n const results = apiRunner(`shouldUpdateScroll`, {\n prevRouterProps,\n // `pathname` for backwards compatibility\n pathname,\n routerProps: { location },\n getSavedScrollPosition: args => [\n 0,\n // FIXME this is actually a big code smell, we should fix this\n // eslint-disable-next-line @babel/no-invalid-this\n this._stateStorage.read(args, args.key),\n ],\n })\n if (results.length > 0) {\n // Use the latest registered shouldUpdateScroll result, this allows users to override plugin's configuration\n // @see https://github.com/gatsbyjs/gatsby/issues/12038\n return results[results.length - 1]\n }\n\n if (prevRouterProps) {\n const {\n location: { pathname: oldPathname },\n } = prevRouterProps\n if (oldPathname === pathname) {\n // Scroll to element if it exists, if it doesn't, or no hash is provided,\n // scroll to top.\n return hash ? decodeURI(hash.slice(1)) : [0, 0]\n }\n }\n return true\n}\n\nfunction init() {\n // The \"scroll-behavior\" package expects the \"action\" to be on the location\n // object so let's copy it over.\n globalHistory.listen(args => {\n args.location.action = args.action\n })\n\n window.___push = to => navigate(to, { replace: false })\n window.___replace = to => navigate(to, { replace: true })\n window.___navigate = (to, options) => navigate(to, options)\n}\n\nclass RouteAnnouncer extends React.Component {\n constructor(props) {\n super(props)\n this.announcementRef = React.createRef()\n }\n\n componentDidUpdate(prevProps, nextProps) {\n requestAnimationFrame(() => {\n let pageName = `new page at ${this.props.location.pathname}`\n if (document.title) {\n pageName = document.title\n }\n const pageHeadings = document.querySelectorAll(`#gatsby-focus-wrapper h1`)\n if (pageHeadings && pageHeadings.length) {\n pageName = pageHeadings[0].textContent\n }\n const newAnnouncement = `Navigated to ${pageName}`\n if (this.announcementRef.current) {\n const oldAnnouncement = this.announcementRef.current.innerText\n if (oldAnnouncement !== newAnnouncement) {\n this.announcementRef.current.innerText = newAnnouncement\n }\n }\n })\n }\n\n render() {\n return
\n }\n}\n\nconst compareLocationProps = (prevLocation, nextLocation) => {\n if (prevLocation.href !== nextLocation.href) {\n return true\n }\n\n if (prevLocation?.state?.key !== nextLocation?.state?.key) {\n return true\n }\n\n return false\n}\n\n// Fire on(Pre)RouteUpdate APIs\nclass RouteUpdates extends React.Component {\n constructor(props) {\n super(props)\n onPreRouteUpdate(props.location, null)\n }\n\n componentDidMount() {\n onRouteUpdate(this.props.location, null)\n }\n\n shouldComponentUpdate(nextProps) {\n if (compareLocationProps(this.props.location, nextProps.location)) {\n onPreRouteUpdate(nextProps.location, this.props.location)\n return true\n }\n return false\n }\n\n componentDidUpdate(prevProps) {\n if (compareLocationProps(prevProps.location, this.props.location)) {\n onRouteUpdate(this.props.location, prevProps.location)\n }\n }\n\n render() {\n return (\n \n {this.props.children}\n \n \n )\n }\n}\n\nRouteUpdates.propTypes = {\n location: PropTypes.object.isRequired,\n}\n\nexport { init, shouldUpdateScroll, RouteUpdates, maybeGetBrowserRedirect }\n","// Pulled from react-compat\n// https://github.com/developit/preact-compat/blob/7c5de00e7c85e2ffd011bf3af02899b63f699d3a/src/index.js#L349\nfunction shallowDiffers(a, b) {\n for (var i in a) {\n if (!(i in b)) return true;\n }for (var _i in b) {\n if (a[_i] !== b[_i]) return true;\n }return false;\n}\n\nexport default (function (instance, nextProps, nextState) {\n return shallowDiffers(instance.props, nextProps) || shallowDiffers(instance.state, nextState);\n});","import React from \"react\"\nimport loader, { PageResourceStatus } from \"./loader\"\nimport shallowCompare from \"shallow-compare\"\n\nclass EnsureResources extends React.Component {\n constructor(props) {\n super()\n const { location, pageResources } = props\n this.state = {\n location: { ...location },\n pageResources:\n pageResources ||\n loader.loadPageSync(location.pathname + location.search, {\n withErrorDetails: true,\n }),\n }\n }\n\n static getDerivedStateFromProps({ location }, prevState) {\n if (prevState.location.href !== location.href) {\n const pageResources = loader.loadPageSync(\n location.pathname + location.search,\n {\n withErrorDetails: true,\n }\n )\n\n return {\n pageResources,\n location: { ...location },\n }\n }\n\n return {\n location: { ...location },\n }\n }\n\n loadResources(rawPath) {\n loader.loadPage(rawPath).then(pageResources => {\n if (pageResources && pageResources.status !== PageResourceStatus.Error) {\n this.setState({\n location: { ...window.location },\n pageResources,\n })\n } else {\n window.history.replaceState({}, ``, location.href)\n window.location = rawPath\n }\n })\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n // Always return false if we're missing resources.\n if (!nextState.pageResources) {\n this.loadResources(\n nextProps.location.pathname + nextProps.location.search\n )\n return false\n }\n\n if (\n process.env.BUILD_STAGE === `develop` &&\n nextState.pageResources.stale\n ) {\n this.loadResources(\n nextProps.location.pathname + nextProps.location.search\n )\n return false\n }\n\n // Check if the component or json have changed.\n if (this.state.pageResources !== nextState.pageResources) {\n return true\n }\n if (\n this.state.pageResources.component !== nextState.pageResources.component\n ) {\n return true\n }\n\n if (this.state.pageResources.json !== nextState.pageResources.json) {\n return true\n }\n // Check if location has changed on a page using internal routing\n // via matchPath configuration.\n if (\n this.state.location.key !== nextState.location.key &&\n nextState.pageResources.page &&\n (nextState.pageResources.page.matchPath ||\n nextState.pageResources.page.path)\n ) {\n return true\n }\n return shallowCompare(this, nextProps, nextState)\n }\n\n render() {\n if (\n process.env.NODE_ENV !== `production` &&\n (!this.state.pageResources ||\n this.state.pageResources.status === PageResourceStatus.Error)\n ) {\n const message = `EnsureResources was not able to find resources for path: \"${this.props.location.pathname}\"\nThis typically means that an issue occurred building components for that path.\nRun \\`gatsby clean\\` to remove any cached elements.`\n if (this.state.pageResources?.error) {\n console.error(message)\n throw this.state.pageResources.error\n }\n\n throw new Error(message)\n }\n\n return this.props.children(this.state)\n }\n}\n\nexport default EnsureResources\n","import { apiRunner, apiRunnerAsync } from \"./api-runner-browser\"\nimport React from \"react\"\nimport { Router, navigate, Location, BaseContext } from \"@gatsbyjs/reach-router\"\nimport { ScrollContext } from \"gatsby-react-router-scroll\"\nimport { StaticQueryContext } from \"./static-query\"\nimport {\n SlicesMapContext,\n SlicesContext,\n SlicesResultsContext,\n} from \"./slice/context\"\nimport {\n shouldUpdateScroll,\n init as navigationInit,\n RouteUpdates,\n} from \"./navigation\"\nimport emitter from \"./emitter\"\nimport PageRenderer from \"./page-renderer\"\nimport asyncRequires from \"$virtual/async-requires\"\nimport {\n setLoader,\n ProdLoader,\n publicLoader,\n PageResourceStatus,\n getStaticQueryResults,\n getSliceResults,\n} from \"./loader\"\nimport EnsureResources from \"./ensure-resources\"\nimport stripPrefix from \"./strip-prefix\"\n\n// Generated during bootstrap\nimport matchPaths from \"$virtual/match-paths.json\"\nimport { reactDOMUtils } from \"./react-dom-utils\"\n\nconst loader = new ProdLoader(asyncRequires, matchPaths, window.pageData)\nsetLoader(loader)\nloader.setApiRunner(apiRunner)\n\nconst { render, hydrate } = reactDOMUtils()\n\nwindow.asyncRequires = asyncRequires\nwindow.___emitter = emitter\nwindow.___loader = publicLoader\n\nnavigationInit()\n\nconst reloadStorageKey = `gatsby-reload-compilation-hash-match`\n\napiRunnerAsync(`onClientEntry`).then(() => {\n // Let plugins register a service worker. The plugin just needs\n // to return true.\n if (apiRunner(`registerServiceWorker`).filter(Boolean).length > 0) {\n require(`./register-service-worker`)\n }\n\n // In gatsby v2 if Router is used in page using matchPaths\n // paths need to contain full path.\n // For example:\n // - page have `/app/*` matchPath\n // - inside template user needs to use `/app/xyz` as path\n // Resetting `basepath`/`baseuri` keeps current behaviour\n // to not introduce breaking change.\n // Remove this in v3\n const RouteHandler = props => (\n \n \n \n )\n\n const DataContext = React.createContext({})\n\n const slicesContext = {\n renderEnvironment: `browser`,\n }\n\n class GatsbyRoot extends React.Component {\n render() {\n const { children } = this.props\n return (\n \n {({ location }) => (\n \n {({ pageResources, location }) => {\n const staticQueryResults = getStaticQueryResults()\n const sliceResults = getSliceResults()\n\n return (\n \n \n \n \n \n {children}\n \n \n \n \n \n )\n }}\n \n )}\n \n )\n }\n }\n\n class LocationHandler extends React.Component {\n render() {\n return (\n \n {({ pageResources, location }) => (\n \n \n \n \n \n \n \n )}\n \n )\n }\n }\n\n const { pagePath, location: browserLoc } = window\n\n // Explicitly call navigate if the canonical path (window.pagePath)\n // is different to the browser path (window.location.pathname). SSR\n // page paths might include search params, while SSG and DSG won't.\n // If page path include search params we also compare query params.\n // But only if NONE of the following conditions hold:\n //\n // - The url matches a client side route (page.matchPath)\n // - it's a 404 page\n // - it's the offline plugin shell (/offline-plugin-app-shell-fallback/)\n if (\n pagePath &&\n __BASE_PATH__ + pagePath !==\n browserLoc.pathname + (pagePath.includes(`?`) ? browserLoc.search : ``) &&\n !(\n loader.findMatchPath(stripPrefix(browserLoc.pathname, __BASE_PATH__)) ||\n pagePath.match(/^\\/(404|500)(\\/?|.html)$/) ||\n pagePath.match(/^\\/offline-plugin-app-shell-fallback\\/?$/)\n )\n ) {\n navigate(\n __BASE_PATH__ +\n pagePath +\n (!pagePath.includes(`?`) ? browserLoc.search : ``) +\n browserLoc.hash,\n {\n replace: true,\n }\n )\n }\n\n // It's possible that sessionStorage can throw an exception if access is not granted, see https://github.com/gatsbyjs/gatsby/issues/34512\n const getSessionStorage = () => {\n try {\n return sessionStorage\n } catch {\n return null\n }\n }\n\n publicLoader.loadPage(browserLoc.pathname + browserLoc.search).then(page => {\n const sessionStorage = getSessionStorage()\n\n if (\n page?.page?.webpackCompilationHash &&\n page.page.webpackCompilationHash !== window.___webpackCompilationHash\n ) {\n // Purge plugin-offline cache\n if (\n `serviceWorker` in navigator &&\n navigator.serviceWorker.controller !== null &&\n navigator.serviceWorker.controller.state === `activated`\n ) {\n navigator.serviceWorker.controller.postMessage({\n gatsbyApi: `clearPathResources`,\n })\n }\n\n // We have not matching html + js (inlined `window.___webpackCompilationHash`)\n // with our data (coming from `app-data.json` file). This can cause issues such as\n // errors trying to load static queries (as list of static queries is inside `page-data`\n // which might not match to currently loaded `.js` scripts).\n // We are making attempt to reload if hashes don't match, but we also have to handle case\n // when reload doesn't fix it (possibly broken deploy) so we don't end up in infinite reload loop\n if (sessionStorage) {\n const isReloaded = sessionStorage.getItem(reloadStorageKey) === `1`\n\n if (!isReloaded) {\n sessionStorage.setItem(reloadStorageKey, `1`)\n window.location.reload(true)\n return\n }\n }\n }\n\n if (sessionStorage) {\n sessionStorage.removeItem(reloadStorageKey)\n }\n\n if (!page || page.status === PageResourceStatus.Error) {\n const message = `page resources for ${browserLoc.pathname} not found. Not rendering React`\n\n // if the chunk throws an error we want to capture the real error\n // This should help with https://github.com/gatsbyjs/gatsby/issues/19618\n if (page && page.error) {\n console.error(message)\n throw page.error\n }\n\n throw new Error(message)\n }\n\n const SiteRoot = apiRunner(\n `wrapRootElement`,\n { element: },\n ,\n ({ result }) => {\n return { element: result }\n }\n ).pop()\n\n const App = function App() {\n const onClientEntryRanRef = React.useRef(false)\n\n React.useEffect(() => {\n if (!onClientEntryRanRef.current) {\n onClientEntryRanRef.current = true\n if (performance.mark) {\n performance.mark(`onInitialClientRender`)\n }\n\n apiRunner(`onInitialClientRender`)\n }\n }, [])\n\n return {SiteRoot}\n }\n\n const focusEl = document.getElementById(`gatsby-focus-wrapper`)\n\n // Client only pages have any empty body so we just do a normal\n // render to avoid React complaining about hydration mis-matches.\n let defaultRenderer = render\n if (focusEl && focusEl.children.length) {\n defaultRenderer = hydrate\n }\n\n const renderer = apiRunner(\n `replaceHydrateFunction`,\n undefined,\n defaultRenderer\n )[0]\n\n function runRender() {\n const rootElement =\n typeof window !== `undefined`\n ? document.getElementById(`___gatsby`)\n : null\n\n renderer(, rootElement)\n }\n\n // https://github.com/madrobby/zepto/blob/b5ed8d607f67724788ec9ff492be297f64d47dfc/src/zepto.js#L439-L450\n // TODO remove IE 10 support\n const doc = document\n if (\n doc.readyState === `complete` ||\n (doc.readyState !== `loading` && !doc.documentElement.doScroll)\n ) {\n setTimeout(function () {\n runRender()\n }, 0)\n } else {\n const handler = function () {\n doc.removeEventListener(`DOMContentLoaded`, handler, false)\n window.removeEventListener(`load`, handler, false)\n\n runRender()\n }\n\n doc.addEventListener(`DOMContentLoaded`, handler, false)\n window.addEventListener(`load`, handler, false)\n }\n\n return\n })\n})\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nimport loader from \"./loader\"\nimport InternalPageRenderer from \"./page-renderer\"\n\nconst ProdPageRenderer = ({ location }) => {\n const pageResources = loader.loadPageSync(location.pathname)\n if (!pageResources) {\n return null\n }\n return React.createElement(InternalPageRenderer, {\n location,\n pageResources,\n ...pageResources.json,\n })\n}\n\nProdPageRenderer.propTypes = {\n location: PropTypes.shape({\n pathname: PropTypes.string.isRequired,\n }).isRequired,\n}\n\nexport default ProdPageRenderer\n","const preferDefault = m => (m && m.default) || m\n\nif (process.env.BUILD_STAGE === `develop`) {\n module.exports = preferDefault(require(`./public-page-renderer-dev`))\n} else if (process.env.BUILD_STAGE === `build-javascript`) {\n module.exports = preferDefault(require(`./public-page-renderer-prod`))\n} else {\n module.exports = () => null\n}\n","const map = new WeakMap()\n\nexport function reactDOMUtils() {\n const reactDomClient = require(`react-dom/client`)\n\n const render = (Component, el) => {\n let root = map.get(el)\n if (!root) {\n map.set(el, (root = reactDomClient.createRoot(el)))\n }\n root.render(Component)\n }\n\n const hydrate = (Component, el) => reactDomClient.hydrateRoot(el, Component)\n\n return { render, hydrate }\n}\n","import redirects from \"./redirects.json\"\n\n// Convert to a map for faster lookup in maybeRedirect()\n\nconst redirectMap = new Map()\nconst redirectIgnoreCaseMap = new Map()\n\nredirects.forEach(redirect => {\n if (redirect.ignoreCase) {\n redirectIgnoreCaseMap.set(redirect.fromPath, redirect)\n } else {\n redirectMap.set(redirect.fromPath, redirect)\n }\n})\n\nexport function maybeGetBrowserRedirect(pathname) {\n let redirect = redirectMap.get(pathname)\n if (!redirect) {\n redirect = redirectIgnoreCaseMap.get(pathname.toLowerCase())\n }\n return redirect\n}\n","import { apiRunner } from \"./api-runner-browser\"\n\nif (\n window.location.protocol !== `https:` &&\n window.location.hostname !== `localhost`\n) {\n console.error(\n `Service workers can only be used over HTTPS, or on localhost for development`\n )\n} else if (`serviceWorker` in navigator) {\n navigator.serviceWorker\n .register(`${__BASE_PATH__}/sw.js`)\n .then(function (reg) {\n reg.addEventListener(`updatefound`, () => {\n apiRunner(`onServiceWorkerUpdateFound`, { serviceWorker: reg })\n // The updatefound event implies that reg.installing is set; see\n // https://w3c.github.io/ServiceWorker/#service-worker-registration-updatefound-event\n const installingWorker = reg.installing\n console.log(`installingWorker`, installingWorker)\n installingWorker.addEventListener(`statechange`, () => {\n switch (installingWorker.state) {\n case `installed`:\n if (navigator.serviceWorker.controller) {\n // At this point, the old content will have been purged and the fresh content will\n // have been added to the cache.\n\n // We set a flag so Gatsby Link knows to refresh the page on next navigation attempt\n window.___swUpdated = true\n // We call the onServiceWorkerUpdateReady API so users can show update prompts.\n apiRunner(`onServiceWorkerUpdateReady`, { serviceWorker: reg })\n\n // If resources failed for the current page, reload.\n if (window.___failedResources) {\n console.log(`resources failed, SW updated - reloading`)\n window.location.reload()\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a \"Content is cached for offline use.\" message.\n console.log(`Content is now available offline!`)\n\n // Post to service worker that install is complete.\n // Delay to allow time for the event listener to be added --\n // otherwise fetch is called too soon and resources aren't cached.\n apiRunner(`onServiceWorkerInstalled`, { serviceWorker: reg })\n }\n break\n\n case `redundant`:\n console.error(`The installing service worker became redundant.`)\n apiRunner(`onServiceWorkerRedundant`, { serviceWorker: reg })\n break\n\n case `activated`:\n apiRunner(`onServiceWorkerActive`, { serviceWorker: reg })\n break\n }\n })\n })\n })\n .catch(function (e) {\n console.error(`Error during service worker registration:`, e)\n })\n}\n","import React from \"react\"\n\nconst SlicesResultsContext = React.createContext({})\nconst SlicesContext = React.createContext({})\nconst SlicesMapContext = React.createContext({})\nconst SlicesPropsContext = React.createContext({})\n\nexport {\n SlicesResultsContext,\n SlicesContext,\n SlicesMapContext,\n SlicesPropsContext,\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport { createServerOrClientContext } from \"./context-utils\"\n\nconst StaticQueryContext = createServerOrClientContext(`StaticQuery`, {})\n\nfunction StaticQueryDataRenderer({ staticQueryData, data, query, render }) {\n const finalData = data\n ? data.data\n : staticQueryData[query] && staticQueryData[query].data\n\n return (\n \n {finalData && render(finalData)}\n {!finalData &&
Loading (StaticQuery)
}\n
\n )\n}\n\nlet warnedAboutStaticQuery = false\n\n// TODO(v6): Remove completely\nconst StaticQuery = props => {\n const { data, query, render, children } = props\n\n if (process.env.NODE_ENV === `development` && !warnedAboutStaticQuery) {\n console.warn(\n `The component is deprecated and will be removed in Gatsby v6. Use useStaticQuery instead. Refer to the migration guide for more information: https://gatsby.dev/migrating-4-to-5/#staticquery--is-deprecated`\n )\n warnedAboutStaticQuery = true\n }\n\n return (\n \n {staticQueryData => (\n \n )}\n \n )\n}\n\nStaticQuery.propTypes = {\n data: PropTypes.object,\n query: PropTypes.string.isRequired,\n render: PropTypes.func,\n children: PropTypes.func,\n}\n\nconst useStaticQuery = query => {\n if (\n typeof React.useContext !== `function` &&\n process.env.NODE_ENV === `development`\n ) {\n // TODO(v5): Remove since we require React >= 18\n throw new Error(\n `You're likely using a version of React that doesn't support Hooks\\n` +\n `Please update React and ReactDOM to 16.8.0 or later to use the useStaticQuery hook.`\n )\n }\n\n const context = React.useContext(StaticQueryContext)\n\n // query is a stringified number like `3303882` when wrapped with graphql, If a user forgets\n // to wrap the query in a grqphql, then casting it to a Number results in `NaN` allowing us to\n // catch the misuse of the API and give proper direction\n if (isNaN(Number(query))) {\n throw new Error(`useStaticQuery was called with a string but expects to be called using \\`graphql\\`. Try this:\n\nimport { useStaticQuery, graphql } from 'gatsby';\n\nuseStaticQuery(graphql\\`${query}\\`);\n`)\n }\n\n if (context[query]?.data) {\n return context[query].data\n } else {\n throw new Error(\n `The result of this StaticQuery could not be fetched.\\n\\n` +\n `This is likely a bug in Gatsby and if refreshing the page does not fix it, ` +\n `please open an issue in https://github.com/gatsbyjs/gatsby/issues`\n )\n }\n}\n\nexport { StaticQuery, StaticQueryContext, useStaticQuery }\n","import React from \"react\"\n\n// Ensure serverContext is not created more than once as React will throw when creating it more than once\n// https://github.com/facebook/react/blob/dd2d6522754f52c70d02c51db25eb7cbd5d1c8eb/packages/react/src/ReactServerContext.js#L101\nconst createServerContext = (name, defaultValue = null) => {\n /* eslint-disable no-undef */\n if (!globalThis.__SERVER_CONTEXT) {\n globalThis.__SERVER_CONTEXT = {}\n }\n\n if (!globalThis.__SERVER_CONTEXT[name]) {\n globalThis.__SERVER_CONTEXT[name] = React.createServerContext(\n name,\n defaultValue\n )\n }\n\n return globalThis.__SERVER_CONTEXT[name]\n}\n\nfunction createServerOrClientContext(name, defaultValue) {\n if (React.createServerContext) {\n return createServerContext(name, defaultValue)\n }\n\n return React.createContext(defaultValue)\n}\n\nexport { createServerOrClientContext }\n","/**\n * Remove a prefix from a string. Return the input string if the given prefix\n * isn't found.\n */\n\nexport default function stripPrefix(str, prefix = ``) {\n if (!prefix) {\n return str\n }\n\n if (str === prefix) {\n return `/`\n }\n\n if (str.startsWith(`${prefix}/`)) {\n return str.slice(prefix.length)\n }\n\n return str\n}\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport * as React from 'react';\r\nimport Cookies from 'universal-cookie';\r\nimport { Provider } from './CookiesContext';\r\nvar CookiesProvider = /** @class */ (function (_super) {\r\n __extends(CookiesProvider, _super);\r\n function CookiesProvider(props) {\r\n var _this = _super.call(this, props) || this;\r\n if (props.cookies) {\r\n _this.cookies = props.cookies;\r\n }\r\n else {\r\n _this.cookies = new Cookies();\r\n }\r\n return _this;\r\n }\r\n CookiesProvider.prototype.render = function () {\r\n return React.createElement(Provider, { value: this.cookies }, this.props.children);\r\n };\r\n return CookiesProvider;\r\n}(React.Component));\r\nexport default CookiesProvider;\r\n","import * as React from 'react';\r\nimport Cookies from './Cookies';\r\nvar CookiesContext = React.createContext(new Cookies());\r\nexport var Provider = CookiesContext.Provider, Consumer = CookiesContext.Consumer;\r\nexport default CookiesContext;\r\n","import React from 'react'\nimport Layout from './src/components/layouts/TransitionLayout'\nimport './src/styles/global.sass'\nimport { RecoilRoot } from 'recoil'\nimport { CookiesProvider } from 'react-cookie'\n\nexport const wrapWithPage = ({ element, props }:any) => {\n\treturn \n\t\t{element}\n\t\n}\n\nexport const wrapWithProvider = ({ element, props }:any) => {\n\treturn \n\t\t\t{element}\n\t\t\n}","// import \"@fontsource/dm-sans\"\n// import \"@fontsource/dm-sans/500.css\"\n// import \"@fontsource/dm-sans/700.css\"\n// import \"@fontsource/dm-mono\"\n// import \"@fontsource/dm-mono/500.css\"\n\nimport { wrapWithProvider, wrapWithPage } from './gatsby-wrapper'\n\nexport const wrapRootElement = wrapWithProvider\nexport const wrapPageElement = wrapWithPage\n","const getLocation = source => {\n const { search, hash, href, origin, protocol, host, hostname, port } =\n source.location\n let { pathname } = source.location\n\n if (!pathname && href && canUseDOM) {\n const url = new URL(href)\n pathname = url.pathname\n }\n\n return {\n pathname: encodeURI(decodeURI(pathname)),\n search,\n hash,\n href,\n origin,\n protocol,\n host,\n hostname,\n port,\n state: source.history.state,\n key: (source.history.state && source.history.state.key) || \"initial\",\n }\n}\n\nconst createHistory = (source, options) => {\n let listeners = []\n let location = getLocation(source)\n let transitioning = false\n let resolveTransition = () => {}\n\n return {\n get location() {\n return location\n },\n\n get transitioning() {\n return transitioning\n },\n\n _onTransitionComplete() {\n transitioning = false\n resolveTransition()\n },\n\n listen(listener) {\n listeners.push(listener)\n\n const popstateListener = () => {\n location = getLocation(source)\n listener({ location, action: \"POP\" })\n }\n\n source.addEventListener(\"popstate\", popstateListener)\n\n return () => {\n source.removeEventListener(\"popstate\", popstateListener)\n listeners = listeners.filter(fn => fn !== listener)\n }\n },\n\n navigate(to, { state, replace = false } = {}) {\n if (typeof to === \"number\") {\n source.history.go(to)\n } else {\n state = { ...state, key: Date.now() + \"\" }\n // try...catch iOS Safari limits to 100 pushState calls\n try {\n if (transitioning || replace) {\n source.history.replaceState(state, null, to)\n } else {\n source.history.pushState(state, null, to)\n }\n } catch (e) {\n source.location[replace ? \"replace\" : \"assign\"](to)\n }\n }\n\n location = getLocation(source)\n transitioning = true\n const transition = new Promise(res => (resolveTransition = res))\n listeners.forEach(listener => listener({ location, action: \"PUSH\" }))\n return transition\n },\n }\n}\n\n// Stores history entries in memory for testing or other platforms like Native\nconst createMemorySource = (initialPath = \"/\") => {\n const searchIndex = initialPath.indexOf(\"?\")\n const initialLocation = {\n pathname:\n searchIndex > -1 ? initialPath.substr(0, searchIndex) : initialPath,\n search: searchIndex > -1 ? initialPath.substr(searchIndex) : \"\",\n }\n let index = 0\n const stack = [initialLocation]\n const states = [null]\n\n return {\n get location() {\n return stack[index]\n },\n addEventListener(name, fn) {},\n removeEventListener(name, fn) {},\n history: {\n get entries() {\n return stack\n },\n get index() {\n return index\n },\n get state() {\n return states[index]\n },\n pushState(state, _, uri) {\n const [pathname, search = \"\"] = uri.split(\"?\")\n index++\n stack.push({ pathname, search: search.length ? `?${search}` : search })\n states.push(state)\n },\n replaceState(state, _, uri) {\n const [pathname, search = \"\"] = uri.split(\"?\")\n stack[index] = { pathname, search }\n states[index] = state\n },\n go(to) {\n const newIndex = index + to\n\n if (newIndex < 0 || newIndex > states.length - 1) {\n return\n }\n\n index = newIndex\n },\n },\n }\n}\n\n// global history - uses window.history as the source if available, otherwise a\n// memory history\nconst canUseDOM = !!(\n typeof window !== \"undefined\" &&\n window.document &&\n window.document.createElement\n)\nconst getSource = () => {\n return canUseDOM ? window : createMemorySource()\n}\n\nconst globalSource = getSource()\nconst globalHistory = createHistory(globalSource)\nconst { navigate } = globalHistory\n\nexport { globalHistory, navigate, createHistory, createMemorySource }\n","/* eslint-disable no-undef */\n\nimport React from \"react\"\n\nconst createServerContext = (name, defaultValue = null) => {\n if (!globalThis.__SERVER_CONTEXT) {\n globalThis.__SERVER_CONTEXT = {}\n }\n\n if (!globalThis.__SERVER_CONTEXT[name]) {\n globalThis.__SERVER_CONTEXT[name] = React.createServerContext(\n name,\n defaultValue\n )\n }\n\n return globalThis.__SERVER_CONTEXT[name]\n}\n\nfunction createServerOrClientContext(name, defaultValue) {\n if (React.createServerContext) {\n return createServerContext(name, defaultValue)\n }\n\n return React.createContext(defaultValue)\n}\n\nexport const BaseContext = createServerOrClientContext(\"Base\", {\n baseuri: \"/\",\n basepath: \"/\",\n})\nexport const LocationContext = createServerOrClientContext(\"Location\")\n","import * as React from \"react\"\nimport { BaseContext, LocationContext } from \"./hooks-create-context\"\n\nexport const useBaseContext = () => React.useContext(BaseContext)\nexport const useLocationContext = () => React.useContext(LocationContext)\n","import * as React from \"react\"\nimport PropTypes from \"prop-types\"\nimport { navigate } from \"./history\"\nimport { resolve, insertParams } from \"./utils\"\nimport { useBaseContext, useLocationContext } from \"./hooks-use-context\"\n\nfunction RedirectRequest(uri) {\n this.uri = uri\n}\n\nconst isRedirect = o => o instanceof RedirectRequest\n\nconst redirectTo = to => {\n throw new RedirectRequest(to)\n}\n\nfunction RedirectImpl(props) {\n const { to, replace = true, state, noThrow, baseuri } = props\n\n React.useEffect(() => {\n Promise.resolve().then(() => {\n const resolvedTo = resolve(to, baseuri)\n navigate(insertParams(resolvedTo, props), { replace, state })\n })\n }, [])\n\n const resolvedTo = resolve(to, baseuri)\n\n if (!noThrow) {\n redirectTo(insertParams(resolvedTo, props))\n }\n\n return null\n}\n\nconst Redirect = props => {\n const locationContext = useLocationContext()\n const { baseuri } = useBaseContext()\n\n return \n}\n\nRedirect.propTypes = {\n from: PropTypes.string,\n to: PropTypes.string.isRequired,\n}\n\nexport { Redirect, isRedirect, redirectTo }\n","import * as React from \"react\"\nimport invariant from \"invariant\"\nimport { Redirect } from \"./redirect\"\n\n/**\n * startsWith(string, search) - Check if `string` starts with `search`\n */\nconst startsWith = (string, search) => {\n return string.substr(0, search.length) === search\n}\n\n/**\n * pick(routes, uri)\n\n Ranks and picks the best route to match. Each segment gets the highest\n amount of points, then the type of segment gets an additional amount of\n points where\n\n static > dynamic > splat > root\n\n This way we don't have to worry about the order of our routes, let the\n computers do it.\n\n A route looks like this\n\n { path, default, value }\n\n And a returned match looks like:\n\n { route, params, uri }\n\n I know, I should use TypeScript not comments for these types. \n */\nconst pick = (routes, uri) => {\n let match\n let default_\n\n const [uriPathname] = uri.split(\"?\")\n const uriSegments = segmentize(uriPathname)\n const isRootUri = uriSegments[0] === \"\"\n const ranked = rankRoutes(routes)\n\n for (let i = 0, l = ranked.length; i < l; i++) {\n let missed = false\n const route = ranked[i].route\n\n if (route.default) {\n default_ = {\n route,\n params: {},\n uri,\n }\n continue\n }\n\n const routeSegments = segmentize(route.path)\n const params = {}\n const max = Math.max(uriSegments.length, routeSegments.length)\n let index = 0\n\n for (; index < max; index++) {\n const routeSegment = routeSegments[index]\n const uriSegment = uriSegments[index]\n\n if (isSplat(routeSegment)) {\n // Hit a splat, just grab the rest, and return a match\n // uri: /files/documents/work\n // route: /files/*\n const param = routeSegment.slice(1) || \"*\"\n params[param] = uriSegments\n .slice(index)\n .map(decodeURIComponent)\n .join(\"/\")\n break\n }\n\n if (uriSegment === undefined) {\n // URI is shorter than the route, no match\n // uri: /users\n // route: /users/:userId\n missed = true\n break\n }\n\n const dynamicMatch = paramRe.exec(routeSegment)\n\n if (dynamicMatch && !isRootUri) {\n const matchIsNotReserved = reservedNames.indexOf(dynamicMatch[1]) === -1\n invariant(\n matchIsNotReserved,\n ` dynamic segment \"${dynamicMatch[1]}\" is a reserved name. Please use a different name in path \"${route.path}\".`\n )\n const value = decodeURIComponent(uriSegment)\n params[dynamicMatch[1]] = value\n } else if (routeSegment !== uriSegment) {\n // Current segments don't match, not dynamic, not splat, so no match\n // uri: /users/123/settings\n // route: /users/:id/profile\n missed = true\n break\n }\n }\n\n if (!missed) {\n match = {\n route,\n params,\n uri: \"/\" + uriSegments.slice(0, index).join(\"/\"),\n }\n break\n }\n }\n\n return match || default_ || null\n}\n\n/**\n * match(path, uri) - Matches just one path to a uri, also lol\n */\nconst match = (path, uri) => pick([{ path }], uri)\n\n/**\n * resolve(to, basepath)\n\n Resolves URIs as though every path is a directory, no files. Relative URIs\n in the browser can feel awkward because not only can you be \"in a directory\"\n you can be \"at a file\", too. For example\n\n browserSpecResolve('foo', '/bar/') => /bar/foo\n browserSpecResolve('foo', '/bar') => /foo\n\n But on the command line of a file system, it's not as complicated, you can't\n `cd` from a file, only directories. This way, links have to know less about\n their current path. To go deeper you can do this:\n\n \n // instead of\n \n\n Just like `cd`, if you want to go deeper from the command line, you do this:\n\n cd deeper\n // not\n cd $(pwd)/deeper\n\n By treating every path as a directory, linking to relative paths should\n require less contextual information and (fingers crossed) be more intuitive.\n */\nconst resolve = (to, base) => {\n // /foo/bar, /baz/qux => /foo/bar\n if (startsWith(to, \"/\")) {\n return to\n }\n\n const [toPathname, toQuery] = to.split(\"?\")\n const [basePathname] = base.split(\"?\")\n\n const toSegments = segmentize(toPathname)\n const baseSegments = segmentize(basePathname)\n\n // ?a=b, /users?b=c => /users?a=b\n if (toSegments[0] === \"\") {\n return addQuery(basePathname, toQuery)\n }\n\n // profile, /users/789 => /users/789/profile\n if (!startsWith(toSegments[0], \".\")) {\n const pathname = baseSegments.concat(toSegments).join(\"/\")\n return addQuery((basePathname === \"/\" ? \"\" : \"/\") + pathname, toQuery)\n }\n\n // ./ /users/123 => /users/123\n // ../ /users/123 => /users\n // ../.. /users/123 => /\n // ../../one /a/b/c/d => /a/b/one\n // .././one /a/b/c/d => /a/b/c/one\n const allSegments = baseSegments.concat(toSegments)\n const segments = []\n for (let i = 0, l = allSegments.length; i < l; i++) {\n const segment = allSegments[i]\n if (segment === \"..\") segments.pop()\n else if (segment !== \".\") segments.push(segment)\n }\n\n return addQuery(\"/\" + segments.join(\"/\"), toQuery)\n}\n\nconst insertParams = (path, params) => {\n const [pathBase, query = \"\"] = path.split(\"?\")\n const segments = segmentize(pathBase)\n let constructedPath =\n \"/\" +\n segments\n .map(segment => {\n const match = paramRe.exec(segment)\n return match ? params[match[1]] : segment\n })\n .join(\"/\")\n const { location: { search = \"\" } = {} } = params\n const searchSplit = search.split(\"?\")[1] || \"\"\n constructedPath = addQuery(constructedPath, query, searchSplit)\n return constructedPath\n}\n\nconst validateRedirect = (from, to) => {\n const filter = segment => isDynamic(segment)\n const fromString = segmentize(from).filter(filter).sort().join(\"/\")\n const toString = segmentize(to).filter(filter).sort().join(\"/\")\n return fromString === toString\n}\n\nconst paramRe = /^:(.+)/\n\nconst SEGMENT_POINTS = 4\nconst STATIC_POINTS = 3\nconst DYNAMIC_POINTS = 2\nconst SPLAT_PENALTY = 1\nconst ROOT_POINTS = 1\n\nconst isRootSegment = segment => segment === \"\"\nconst isDynamic = segment => paramRe.test(segment)\nconst isSplat = segment => segment && segment[0] === \"*\"\n\nconst rankRoute = (route, index) => {\n const score = route.default\n ? 0\n : segmentize(route.path).reduce((score, segment) => {\n score += SEGMENT_POINTS\n if (isRootSegment(segment)) score += ROOT_POINTS\n else if (isDynamic(segment)) score += DYNAMIC_POINTS\n else if (isSplat(segment)) score -= SEGMENT_POINTS + SPLAT_PENALTY\n else score += STATIC_POINTS\n return score\n }, 0)\n return { route, score, index }\n}\n\nconst rankRoutes = routes =>\n routes\n .map(rankRoute)\n .sort((a, b) =>\n a.score < b.score ? 1 : a.score > b.score ? -1 : a.index - b.index\n )\n\nconst segmentize = uri =>\n uri\n // strip starting/ending slashes\n .replace(/(^\\/+|\\/+$)/g, \"\")\n .split(\"/\")\n\nconst addQuery = (pathname, ...query) => {\n query = query.filter(q => q && q.length > 0)\n return pathname + (query && query.length > 0 ? `?${query.join(\"&\")}` : \"\")\n}\n\nconst reservedNames = [\"uri\", \"path\"]\n\n/**\n * Shallow compares two objects.\n * @param {Object} obj1 The first object to compare.\n * @param {Object} obj2 The second object to compare.\n */\nconst shallowCompare = (obj1, obj2) => {\n const obj1Keys = Object.keys(obj1)\n return (\n obj1Keys.length === Object.keys(obj2).length &&\n obj1Keys.every(key => obj2.hasOwnProperty(key) && obj1[key] === obj2[key])\n )\n}\n\nconst stripSlashes = str => str.replace(/(^\\/+|\\/+$)/g, \"\")\n\nconst createRoute = basepath => element => {\n if (!element) {\n return null\n }\n\n if (element.type === React.Fragment && element.props.children) {\n return React.Children.map(element.props.children, createRoute(basepath))\n }\n invariant(\n element.props.path || element.props.default || element.type === Redirect,\n `: Children of must have a \\`path\\` or \\`default\\` prop, or be a \\`\\`. None found on element type \\`${element.type}\\``\n )\n\n invariant(\n !(element.type === Redirect && (!element.props.from || !element.props.to)),\n ` requires both \"from\" and \"to\" props when inside a .`\n )\n\n invariant(\n !(\n element.type === Redirect &&\n !validateRedirect(element.props.from, element.props.to)\n ),\n ` has mismatched dynamic segments, ensure both paths have the exact same dynamic segments.`\n )\n\n if (element.props.default) {\n return { value: element, default: true }\n }\n\n const elementPath =\n element.type === Redirect ? element.props.from : element.props.path\n\n const path =\n elementPath === \"/\"\n ? basepath\n : `${stripSlashes(basepath)}/${stripSlashes(elementPath)}`\n\n return {\n value: element,\n default: element.props.default,\n path: element.props.children ? `${stripSlashes(path)}/*` : path,\n }\n}\n\nconst shouldNavigate = event =>\n !event.defaultPrevented &&\n event.button === 0 &&\n !(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey)\n\nexport {\n startsWith,\n pick,\n match,\n resolve,\n insertParams,\n validateRedirect,\n shallowCompare,\n createRoute,\n shouldNavigate,\n}\n","/* eslint-disable jsx-a11y/anchor-has-content */\nimport * as React from \"react\"\nimport PropTypes from \"prop-types\"\nimport { navigate } from \"./history\"\nimport { resolve, startsWith, shouldNavigate, shallowCompare } from \"./utils\"\nimport { useBaseContext, useLocationContext } from \"./hooks-use-context\"\n\nlet { forwardRef } = React\n\nif (typeof forwardRef === \"undefined\") {\n forwardRef = C => C\n}\n\nconst k = () => {}\n\nexport const Link = forwardRef(({ innerRef, ...props }, ref) => {\n const { baseuri } = useBaseContext()\n const { location } = useLocationContext()\n\n const { to, state, replace, getProps = k, ...anchorProps } = props\n const href = resolve(to, baseuri)\n const encodedHref = encodeURI(href)\n const isCurrent = location.pathname === encodedHref\n const isPartiallyCurrent = startsWith(location.pathname, encodedHref)\n\n return (\n {\n if (anchorProps.onClick) anchorProps.onClick(event)\n if (shouldNavigate(event)) {\n event.preventDefault()\n let shouldReplace = replace\n if (typeof replace !== \"boolean\" && isCurrent) {\n const { key, ...restState } = { ...location.state }\n shouldReplace = shallowCompare({ ...state }, restState)\n }\n navigate(href, {\n state,\n replace: shouldReplace,\n })\n }\n }}\n />\n )\n})\n\nLink.displayName = \"Link\"\n\nLink.propTypes = {\n to: PropTypes.string.isRequired,\n}\n","// MIT LICENSE - Taken from: https://github.com/tatethurston/react-use-error-boundary/blob/525225a34d4ad50f52b5f5ac8731cdf6999cf8a8/src/index.tsx\n\nimport * as React from \"react\"\n\nclass ErrorBoundary extends React.Component {\n displayName = \"ReactUseErrorBoundary\"\n\n componentDidCatch(...args) {\n // silence React warning:\n // ErrorBoundary: Error boundaries should implement getDerivedStateFromError(). In that method, return a state update to display an error message or fallback UI\n this.setState({})\n this.props.onError(...args)\n }\n\n render() {\n return this.props.children\n }\n}\n\nconst noop = () => false\n\nconst errorBoundaryContext = React.createContext({\n componentDidCatch: { current: undefined },\n error: undefined,\n setError: noop,\n})\n\nexport function ErrorBoundaryContext({ children }) {\n const [error, setError] = React.useState()\n const componentDidCatch = React.useRef()\n const ctx = React.useMemo(\n () => ({\n componentDidCatch,\n error,\n setError,\n }),\n [error]\n )\n return (\n \n {\n setError(error)\n componentDidCatch.current?.(error, errorInfo)\n }}\n >\n {children}\n \n \n )\n}\nErrorBoundaryContext.displayName = \"ReactUseErrorBoundaryContext\"\n\nexport function withErrorBoundary(WrappedComponent) {\n function WithErrorBoundary(props) {\n return (\n \n \n \n )\n }\n WithErrorBoundary.displayName = `WithErrorBoundary(${\n WrappedComponent.displayName ?? WrappedComponent.name ?? \"Component\"\n })`\n\n return WithErrorBoundary\n}\n\nexport function useErrorBoundary(componentDidCatch) {\n const ctx = React.useContext(errorBoundaryContext)\n ctx.componentDidCatch.current = componentDidCatch\n const resetError = React.useCallback(() => {\n ctx.setError(undefined)\n }, [])\n\n return [ctx.error, resetError]\n}\n","import * as React from \"react\"\nimport { globalHistory, navigate } from \"./history\"\nimport { isRedirect } from \"./redirect\"\nimport { LocationContext } from \"./hooks-create-context\"\nimport { withErrorBoundary, useErrorBoundary } from \"./error-boundary\"\n\nexport const LocationProvider = withErrorBoundary(\n ({ history = globalHistory, children }) => {\n const { location } = history\n\n const [context, setContext] = React.useState({ location })\n const [error] = useErrorBoundary()\n\n React.useEffect(() => {\n history._onTransitionComplete()\n }, [context.location])\n\n React.useEffect(() => {\n let isCancelled = false\n const unlisten = history.listen(({ location }) => {\n Promise.resolve().then(() => {\n requestAnimationFrame(() => {\n if (!isCancelled) {\n setContext({ location })\n }\n })\n })\n })\n return () => {\n isCancelled = true\n unlisten()\n }\n }, [])\n\n if (error) {\n if (isRedirect(error)) {\n navigate(error.uri, { replace: true })\n } else {\n throw error\n }\n }\n\n return (\n \n {typeof children === \"function\" ? children(context) : children || null}\n \n )\n }\n)\n","import * as React from \"react\"\nimport { useLocationContext } from \"./hooks-use-context\"\nimport { LocationProvider } from \"./location-provider\"\n\nexport const Location = ({ children }) => {\n const context = useLocationContext()\n\n if (context) {\n return children(context)\n } else {\n return {children}\n }\n}\n","import * as React from \"react\"\nimport { LocationContext } from \"./hooks-create-context\"\n\nexport const ServerLocation = ({ url, children }) => {\n const searchIndex = url.indexOf(\"?\")\n const searchExists = searchIndex > -1\n let pathname\n let search = \"\"\n const hash = \"\"\n\n if (searchExists) {\n pathname = url.substring(0, searchIndex)\n search = url.substring(searchIndex)\n } else {\n pathname = url\n }\n\n return (\n \n {children}\n \n )\n}\n","import { useBaseContext, useLocationContext } from \"./hooks-use-context\"\nimport { resolve, match } from \"./utils\"\n\nconst Match = ({ path, children }) => {\n const { baseuri } = useBaseContext()\n const { location } = useLocationContext()\n\n const resolvedPath = resolve(path, baseuri)\n const result = match(resolvedPath, location.pathname)\n return children({\n location,\n match: result\n ? {\n ...result.params,\n uri: result.uri,\n path,\n }\n : null,\n })\n}\n\nexport { Match }\n","import * as React from \"react\"\n\nexport const FocusHandler = ({ uri, location, component, ...domProps }) => {\n return (\n \n )\n}\n\nlet focusHandlerCount = 0\n\nconst FocusHandlerImpl = ({\n children,\n style,\n component: Comp = \"div\",\n uri,\n location,\n ...domProps\n}) => {\n const focusWrapperRef = React.useRef()\n const initialRenderRef = React.useRef(true)\n const uriRef = React.useRef(uri)\n const pathnameRef = React.useRef(location.pathname)\n const shouldFocusRef = React.useRef(false)\n\n const _requestFocus = requestNode => {\n if (shouldFocusRef.current && requestNode) {\n requestNode.focus()\n }\n }\n\n // Initial mount/unmount logic\n React.useEffect(() => {\n focusHandlerCount++\n focus()\n\n return () => {\n focusHandlerCount--\n if (focusHandlerCount === 0) {\n initialRenderRef.current = true\n }\n }\n }, [])\n\n // Subsequent navigation logic\n React.useEffect(() => {\n let uriChanged = false\n let pathnameChanged = false\n\n if (uri !== uriRef.current) {\n uriRef.current = uri\n uriChanged = true\n }\n\n if (location.pathname !== pathnameRef.current) {\n pathnameRef.current = location.pathname\n pathnameChanged = true\n }\n\n const navigatedUpToMe = pathnameChanged && location.pathname === uri\n\n shouldFocusRef.current = uriChanged || navigatedUpToMe\n\n if (shouldFocusRef.current) {\n focus()\n }\n }, [uri, location])\n\n const focus = React.useCallback(() => {\n if (process.env.NODE_ENV === \"test\") {\n // TODO: Check if change for tests still needed\n return\n }\n\n // Don't focus the on initial render\n if (initialRenderRef.current) {\n initialRenderRef.current = false\n } else {\n _requestFocus(focusWrapperRef.current)\n }\n }, [])\n\n return (\n \n {children}\n \n )\n}\n","import * as React from \"react\"\nimport { BaseContext } from \"./hooks-create-context\"\nimport { createRoute, pick } from \"./utils\"\nimport { FocusHandler } from \"./focus-handler\"\nimport { useBaseContext, useLocationContext } from \"./hooks-use-context\"\n\nexport const Router = props => {\n const baseContext = useBaseContext()\n const locationContext = useLocationContext()\n\n return \n}\n\nfunction RouterImpl(props) {\n const {\n location,\n primary = true,\n children,\n basepath,\n baseuri,\n component = \"div\",\n ...domProps\n } = props\n\n const routes = React.Children.toArray(children).reduce((array, child) => {\n const routes = createRoute(basepath)(child)\n return array.concat(routes)\n }, [])\n const { pathname } = location\n const match = pick(routes, pathname)\n\n if (match) {\n const {\n params,\n uri,\n route,\n route: { value: element },\n } = match\n\n // remove the /* from the end for child routes relative paths\n const normalizedBasePath = route.default\n ? basepath\n : route.path.replace(/\\*$/, \"\")\n\n const props = {\n ...params,\n uri,\n location,\n }\n\n const clone = React.cloneElement(\n element,\n props,\n element.props.children ? (\n \n {element.props.children}\n \n ) : undefined\n )\n\n // using 'div' for < 16.3 support\n const FocusWrapper = primary ? FocusHandler : component\n // don't pass any props to 'div'\n const wrapperProps = primary\n ? { uri, location, component, ...domProps }\n : domProps\n\n return (\n \n {clone}\n \n )\n } else {\n return null\n }\n}\n","import { useLocationContext } from \"../lib/hooks-use-context\"\n\nexport const useLocation = () => {\n const context = useLocationContext()\n\n if (!context) {\n throw new Error(\n \"useLocation hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\"\n )\n }\n\n return context.location\n}\n","export const useNavigate = () => {\n throw new Error(\n \"useNavigate is removed. Use import { navigate } from 'gatsby' instead\"\n )\n}\n","import { useBaseContext } from \"../lib/hooks-use-context\"\nimport { match } from \"../lib/utils\"\nimport { useLocation } from \"./use-location\"\n\nexport const useParams = () => {\n const context = useBaseContext()\n\n if (!context) {\n throw new Error(\n \"useParams hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\"\n )\n }\n\n const location = useLocation()\n\n const results = match(context.basepath, location.pathname)\n\n return results ? results.params : null\n}\n","import { useBaseContext } from \"../lib/hooks-use-context\"\nimport { resolve, match } from \"../lib/utils\"\nimport { useLocation } from \"./use-location\"\n\nexport const useMatch = path => {\n if (!path) {\n throw new Error(\n \"useMatch(path: string) requires an argument of a string to match against\"\n )\n }\n const context = useBaseContext()\n\n if (!context) {\n throw new Error(\n \"useMatch hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\"\n )\n }\n\n const location = useLocation()\n\n const resolvedPath = resolve(path, context.baseuri)\n const result = match(resolvedPath, location.pathname)\n return result\n ? {\n ...result.params,\n uri: result.uri,\n path,\n }\n : null\n}\n","import escapeStringRegexp from \"escape-string-regexp\";\nimport { withPrefix } from \"gatsby\";\nexport const userIsForcingNavigation = event => event.button !== 0 || event.altKey || event.ctrlKey || event.metaKey || event.shiftKey;\n\n// IE does not include leading slash in anchor.pathname\nexport const slashedPathname = pathname => pathname[0] === `/` ? pathname : `/${pathname}`;\nexport const navigationWasHandledElsewhere = event => event.defaultPrevented;\nexport const findClosestAnchor = node => {\n for (; node.parentNode; node = node.parentNode) {\n if (node.nodeName.toLowerCase() === `a`) {\n return node;\n }\n }\n return null;\n};\nexport const anchorsTargetIsEquivalentToSelf = anchor => /* If target attribute is not present it's treated as _self */\nanchor.hasAttribute(`target`) === false ||\n/**\n * The browser defaults to _self, but, not all browsers set\n * a.target to the string value `_self` by default\n */\n\n/**\n * Assumption: some browsers use null/undefined for default\n * attribute values\n */\nanchor.target == null ||\n/**\n * Some browsers use the empty string to mean _self, check\n * for actual `_self`\n */\n[`_self`, ``].includes(anchor.target) ||\n/**\n * As per https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#attr-target\n */\nanchor.target === `_parent` && (!anchor.ownerDocument.defaultView.parent ||\n// Assumption: This can be falsey\nanchor.ownerDocument.defaultView.parent === anchor.ownerDocument.defaultView) || anchor.target === `_top` && (!anchor.ownerDocument.defaultView.top ||\n// Assumption: This can be falsey\nanchor.ownerDocument.defaultView.top === anchor.ownerDocument.defaultView);\nexport const authorIsForcingNavigation = anchor =>\n/**\n * HTML5 attribute that informs the browser to handle the\n * href as a downloadable file; let the browser handle it\n */\nanchor.hasAttribute(`download`) === true ||\n/**\n * Let the browser handle anything that doesn't look like a\n * target=\"_self\" anchor\n */\nanchorsTargetIsEquivalentToSelf(anchor) === false;\n\n// https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy\nexport const urlsAreOnSameOrigin = (origin, destination) => origin.protocol === destination.protocol && /* a.host includes both hostname and port in the expected format host:port */\norigin.host === destination.host;\nexport const pathIsNotHandledByApp = (destination, pathStartRegEx) => {\n const pathFileExtensionRegEx = /^.*\\.((?!htm)[a-z0-9]{1,5})$/i;\n return (\n /**\n * For when pathPrefix is used in an app and there happens to be a link\n * pointing to the same domain but outside of the app's pathPrefix. For\n * example, a Gatsby app lives at https://example.com/myapp/, with the\n * pathPrefix set to `/myapp`. When adding an absolute link to the same\n * domain but outside of the /myapp path, for example, `` the plugin won't catch it and\n * will navigate to an external link instead of doing a pushState resulting\n * in `https://example.com/myapp/https://example.com/not-my-app`\n */\n pathStartRegEx.test(slashedPathname(destination.pathname)) === false ||\n /**\n * Don't catch links pointed at what look like file extensions (other than\n * .htm/html extensions).\n */\n destination.pathname.search(pathFileExtensionRegEx) !== -1\n );\n};\nexport const hashShouldBeFollowed = (origin, destination) => destination.hash !== `` && (\n/**\n * Dynamically created anchor links (href=\"#my-anchor\") do not always\n * have pathname on IE\n */\ndestination.pathname === `` || /* Don't catch links pointed to the same page but with a hash. */\ndestination.pathname === origin.pathname);\nexport const routeThroughBrowserOrApp = (hrefHandler, pluginOptions) => event => {\n if (window.___failedResources) return true;\n if (userIsForcingNavigation(event)) return true;\n if (navigationWasHandledElsewhere(event)) return true;\n const clickedAnchor = findClosestAnchor(event.target);\n if (clickedAnchor == null) return true;\n if (authorIsForcingNavigation(clickedAnchor)) return true;\n\n // IE clears the host value if the anchor href changed after creation, e.g.\n // in React. Creating a new anchor element to ensure host value is present\n const destination = document.createElement(`a`);\n\n // https://html.spec.whatwg.org/multipage/links.html#concept-hyperlink-url-set\n // If clickedAnchor has no href attribute like `example`, the href getter returns empty string.\n if (clickedAnchor.href !== ``) {\n destination.href = clickedAnchor.href;\n }\n if (`SVGAnimatedString` in window && clickedAnchor.href instanceof SVGAnimatedString) {\n destination.href = clickedAnchor.href.animVal;\n }\n\n // In IE, the default port is included in the anchor host but excluded from\n // the location host. This affects the ability to directly compare\n // location host to anchor host. For example: http://example.com would\n // have a location.host of 'example.com' and an destination.host of\n // 'example.com:80' Creating anchor from the location.href to normalize the\n // host value.\n const origin = document.createElement(`a`);\n origin.href = window.location.href;\n if (urlsAreOnSameOrigin(origin, destination) === false) return true;\n\n // Regex to test pathname against pathPrefix\n const pathStartRegEx = new RegExp(`^${escapeStringRegexp(withPrefix(`/`))}`);\n if (pathIsNotHandledByApp(destination, pathStartRegEx)) return true;\n if (hashShouldBeFollowed(origin, destination)) return true;\n if (pluginOptions.excludePattern) {\n const excludeRegex = new RegExp(pluginOptions.excludePattern);\n if (excludeRegex.test(destination.pathname)) {\n return true;\n }\n }\n event.preventDefault();\n\n // See issue #8907: destination.pathname already includes pathPrefix added\n // by gatsby-transformer-remark but gatsby-link.navigate needs href without\n const destinationPathname = slashedPathname(destination.pathname).replace(pathStartRegEx, `/`);\n hrefHandler(`${destinationPathname}${destination.search}${destination.hash}`);\n return false;\n};\nexport default function (root, pluginOptions, cb) {\n const clickHandler = routeThroughBrowserOrApp(cb, pluginOptions);\n root.addEventListener(`click`, clickHandler);\n return () => root.removeEventListener(`click`, clickHandler);\n}","import { navigate } from \"gatsby\";\nimport catchLinks from \"./catch-links\";\nexport const onClientEntry = (_, pluginOptions = {}) => {\n catchLinks(window, pluginOptions, href => {\n navigate(href);\n });\n};","const listOfMetricsSend = new Set();\nfunction debounce(fn, timeout) {\n let timer = null;\n return function (...args) {\n if (timer) {\n clearTimeout(timer);\n }\n timer = setTimeout(fn, timeout, ...args);\n };\n}\nfunction sendWebVitals(dataLayerName = `dataLayer`) {\n const win = window;\n function sendData(data) {\n if (listOfMetricsSend.has(data.name)) {\n return;\n }\n listOfMetricsSend.add(data.name);\n sendToGTM(data, win[dataLayerName]);\n }\n return import(`web-vitals/base`).then(({\n getLCP,\n getFID,\n getCLS\n }) => {\n const debouncedCLS = debounce(sendData, 3000);\n // we don't need to debounce FID - we send it when it happens\n const debouncedFID = sendData;\n // LCP can occur multiple times so we debounce it\n const debouncedLCP = debounce(sendData, 3000);\n\n // With the true flag, we measure all previous occurences too, in case we start listening to late.\n getCLS(debouncedCLS, true);\n getFID(debouncedFID, true);\n getLCP(debouncedLCP, true);\n });\n}\nfunction sendToGTM({\n name,\n value,\n id\n}, dataLayer) {\n dataLayer.push({\n event: `core-web-vitals`,\n webVitalsMeasurement: {\n name: name,\n // The `id` value will be unique to the current page load. When sending\n // multiple values from the same page (e.g. for CLS), Google Analytics can\n // compute a total by grouping on this ID (note: requires `eventLabel` to\n // be a dimension in your report).\n id,\n // Google Analytics metrics must be integers, so the value is rounded.\n // For CLS the value is first multiplied by 1000 for greater precision\n // (note: increase the multiplier for greater precision if needed).\n value: Math.round(name === `CLS` ? value * 1000 : value)\n }\n });\n}\nexport function onRouteUpdate(_, pluginOptions) {\n if (process.env.NODE_ENV === `production` || pluginOptions.includeInDevelopment) {\n // wrap inside a timeout to ensure the title has properly been changed\n setTimeout(() => {\n const data = pluginOptions.dataLayerName ? window[pluginOptions.dataLayerName] : window.dataLayer;\n const eventName = pluginOptions.routeChangeEventName ? pluginOptions.routeChangeEventName : `gatsby-route-change`;\n data.push({\n event: eventName\n });\n }, 50);\n }\n}\nexport function onInitialClientRender(_, pluginOptions) {\n // we only load the polyfill in production so we can't enable it in development\n if (process.env.NODE_ENV === `production` && pluginOptions.enableWebVitalsTracking) {\n sendWebVitals(pluginOptions.dataLayerName);\n }\n}","/* global __MANIFEST_PLUGIN_HAS_LOCALISATION__ */\nimport { withPrefix } from \"gatsby\";\nimport getManifestForPathname from \"./get-manifest-pathname\";\n\n// when we don't have localisation in our manifest, we tree shake everything away\nexport const onRouteUpdate = function onRouteUpdate({\n location\n}, pluginOptions) {\n if (__MANIFEST_PLUGIN_HAS_LOCALISATION__) {\n const {\n localize\n } = pluginOptions;\n const manifestFilename = getManifestForPathname(location.pathname, localize, true);\n const manifestEl = document.head.querySelector(`link[rel=\"manifest\"]`);\n if (manifestEl) {\n manifestEl.setAttribute(`href`, withPrefix(manifestFilename));\n }\n }\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\nvar _gatsby = require(\"gatsby\");\n/**\n * Get a manifest filename depending on localized pathname\n *\n * @param {string} pathname\n * @param {Array<{start_url: string, lang: string}>} localizedManifests\n * @param {boolean} shouldPrependPathPrefix\n * @return string\n */\nvar _default = (pathname, localizedManifests, shouldPrependPathPrefix = false) => {\n const defaultFilename = `manifest.webmanifest`;\n if (!Array.isArray(localizedManifests)) {\n return defaultFilename;\n }\n const localizedManifest = localizedManifests.find(app => {\n let startUrl = app.start_url;\n if (shouldPrependPathPrefix) {\n startUrl = (0, _gatsby.withPrefix)(startUrl);\n }\n return pathname.startsWith(startUrl);\n });\n if (!localizedManifest) {\n return defaultFilename;\n }\n return `manifest_${localizedManifest.lang}.webmanifest`;\n};\nexports.default = _default;","import type { GatsbyImageProps } from \"gatsby-plugin-image\"\nimport React from \"react\"\nimport ReactDOM from \"react-dom/client\"\n\nlet hydrateRef\n\nexport function onRouteUpdate(): void {\n if (`requestIdleCallback` in window) {\n if (hydrateRef) {\n // @ts-ignore cancelIdleCallback is on window object\n cancelIdleCallback(hydrateRef)\n }\n\n // @ts-ignore requestIdleCallback is on window object\n hydrateRef = requestIdleCallback(hydrateImages)\n } else {\n if (hydrateRef) {\n clearTimeout(hydrateRef)\n }\n hydrateRef = setTimeout(hydrateImages)\n }\n}\n\nfunction hydrateImages(): void {\n const doc = document\n const inlineWPimages: Array = Array.from(\n doc.querySelectorAll(`[data-wp-inline-image]`)\n )\n\n if (!inlineWPimages.length) {\n return\n }\n\n import(\n /* webpackChunkName: \"gatsby-plugin-image\" */ `gatsby-plugin-image`\n ).then(mod => {\n inlineWPimages.forEach(image => {\n // usually this is the right element to hydrate on\n const grandParentIsGatsbyImage =\n // @ts-ignore-next-line classList is on HTMLElement\n image?.parentNode?.parentNode?.classList?.contains(\n `gatsby-image-wrapper`\n )\n\n // but sometimes this is the right element\n const parentIsGatsbyImage =\n // @ts-ignore-next-line classList is on HTMLElement\n image?.parentNode?.classList?.contains(`gatsby-image-wrapper`)\n\n if (!grandParentIsGatsbyImage && !parentIsGatsbyImage) {\n return\n }\n\n const gatsbyImageHydrationElement = grandParentIsGatsbyImage\n ? image.parentNode.parentNode\n : image.parentNode\n\n if (\n image.dataset &&\n image.dataset.wpInlineImage &&\n gatsbyImageHydrationElement\n ) {\n const hydrationData = doc.querySelector(\n `script[data-wp-inline-image-hydration=\"${image.dataset.wpInlineImage}\"]`\n )\n\n if (hydrationData) {\n const imageProps: GatsbyImageProps = JSON.parse(\n hydrationData.innerHTML\n )\n\n // @ts-ignore - TODO: Fix me\n const root = ReactDOM.createRoot(gatsbyImageHydrationElement)\n root.render(React.createElement(mod.GatsbyImage, imageProps))\n }\n }\n })\n })\n}\n","/*!\n * paths 3.6.1\n * https://greensock.com\n *\n * Copyright 2008-2021, GreenSock. All rights reserved.\n * Subject to the terms at https://greensock.com/standard-license or for\n * Club GreenSock members, the agreement issued with that membership.\n * @author: Jack Doyle, jack@greensock.com\n*/\n\n/* eslint-disable */\nvar _svgPathExp = /[achlmqstvz]|(-?\\d*\\.?\\d*(?:e[\\-+]?\\d+)?)[0-9]/ig,\n _numbersExp = /(?:(-)?\\d*\\.?\\d*(?:e[\\-+]?\\d+)?)[0-9]/ig,\n _scientific = /[\\+\\-]?\\d*\\.?\\d+e[\\+\\-]?\\d+/ig,\n _selectorExp = /(^[#\\.][a-z]|[a-y][a-z])/i,\n _DEG2RAD = Math.PI / 180,\n _RAD2DEG = 180 / Math.PI,\n _sin = Math.sin,\n _cos = Math.cos,\n _abs = Math.abs,\n _sqrt = Math.sqrt,\n _atan2 = Math.atan2,\n _largeNum = 1e8,\n _isString = function _isString(value) {\n return typeof value === \"string\";\n},\n _isNumber = function _isNumber(value) {\n return typeof value === \"number\";\n},\n _isUndefined = function _isUndefined(value) {\n return typeof value === \"undefined\";\n},\n _temp = {},\n _temp2 = {},\n _roundingNum = 1e5,\n _wrapProgress = function _wrapProgress(progress) {\n return Math.round((progress + _largeNum) % 1 * _roundingNum) / _roundingNum || (progress < 0 ? 0 : 1);\n},\n //if progress lands on 1, the % will make it 0 which is why we || 1, but not if it's negative because it makes more sense for motion to end at 0 in that case.\n_round = function _round(value) {\n return Math.round(value * _roundingNum) / _roundingNum || 0;\n},\n _roundPrecise = function _roundPrecise(value) {\n return Math.round(value * 1e10) / 1e10 || 0;\n},\n _splitSegment = function _splitSegment(rawPath, segIndex, i, t) {\n var segment = rawPath[segIndex],\n shift = t === 1 ? 6 : subdivideSegment(segment, i, t);\n\n if (shift && shift + i + 2 < segment.length) {\n rawPath.splice(segIndex, 0, segment.slice(0, i + shift + 2));\n segment.splice(0, i + shift);\n return 1;\n }\n},\n _reverseRawPath = function _reverseRawPath(rawPath, skipOuter) {\n var i = rawPath.length;\n skipOuter || rawPath.reverse();\n\n while (i--) {\n rawPath[i].reversed || reverseSegment(rawPath[i]);\n }\n},\n _copyMetaData = function _copyMetaData(source, copy) {\n copy.totalLength = source.totalLength;\n\n if (source.samples) {\n //segment\n copy.samples = source.samples.slice(0);\n copy.lookup = source.lookup.slice(0);\n copy.minLength = source.minLength;\n copy.resolution = source.resolution;\n } else if (source.totalPoints) {\n //rawPath\n copy.totalPoints = source.totalPoints;\n }\n\n return copy;\n},\n //pushes a new segment into a rawPath, but if its starting values match the ending values of the last segment, it'll merge it into that same segment (to reduce the number of segments)\n_appendOrMerge = function _appendOrMerge(rawPath, segment) {\n var index = rawPath.length,\n prevSeg = rawPath[index - 1] || [],\n l = prevSeg.length;\n\n if (index && segment[0] === prevSeg[l - 2] && segment[1] === prevSeg[l - 1]) {\n segment = prevSeg.concat(segment.slice(2));\n index--;\n }\n\n rawPath[index] = segment;\n},\n _bestDistance;\n/* TERMINOLOGY\n - RawPath - an array of arrays, one for each Segment. A single RawPath could have multiple \"M\" commands, defining Segments (paths aren't always connected).\n - Segment - an array containing a sequence of Cubic Bezier coordinates in alternating x, y, x, y format. Starting anchor, then control point 1, control point 2, and ending anchor, then the next control point 1, control point 2, anchor, etc. Uses less memory than an array with a bunch of {x, y} points.\n - Bezier - a single cubic Bezier with a starting anchor, two control points, and an ending anchor.\n - the variable \"t\" is typically the position along an individual Bezier path (time) and it's NOT linear, meaning it could accelerate/decelerate based on the control points whereas the \"p\" or \"progress\" value is linearly mapped to the whole path, so it shouldn't really accelerate/decelerate based on control points. So a progress of 0.2 would be almost exactly 20% along the path. \"t\" is ONLY in an individual Bezier piece.\n */\n//accepts basic selector text, a path instance, a RawPath instance, or a Segment and returns a RawPath (makes it easy to homogenize things). If an element or selector text is passed in, it'll also cache the value so that if it's queried again, it'll just take the path data from there instead of parsing it all over again (as long as the path data itself hasn't changed - it'll check).\n\n\nexport function getRawPath(value) {\n value = _isString(value) && _selectorExp.test(value) ? document.querySelector(value) || value : value;\n var e = value.getAttribute ? value : 0,\n rawPath;\n\n if (e && (value = value.getAttribute(\"d\"))) {\n //implements caching\n if (!e._gsPath) {\n e._gsPath = {};\n }\n\n rawPath = e._gsPath[value];\n return rawPath && !rawPath._dirty ? rawPath : e._gsPath[value] = stringToRawPath(value);\n }\n\n return !value ? console.warn(\"Expecting a element or an SVG path data string\") : _isString(value) ? stringToRawPath(value) : _isNumber(value[0]) ? [value] : value;\n} //copies a RawPath WITHOUT the length meta data (for speed)\n\nexport function copyRawPath(rawPath) {\n var a = [],\n i = 0;\n\n for (; i < rawPath.length; i++) {\n a[i] = _copyMetaData(rawPath[i], rawPath[i].slice(0));\n }\n\n return _copyMetaData(rawPath, a);\n}\nexport function reverseSegment(segment) {\n var i = 0,\n y;\n segment.reverse(); //this will invert the order y, x, y, x so we must flip it back.\n\n for (; i < segment.length; i += 2) {\n y = segment[i];\n segment[i] = segment[i + 1];\n segment[i + 1] = y;\n }\n\n segment.reversed = !segment.reversed;\n}\n\nvar _createPath = function _createPath(e, ignore) {\n var path = document.createElementNS(\"http://www.w3.org/2000/svg\", \"path\"),\n attr = [].slice.call(e.attributes),\n i = attr.length,\n name;\n ignore = \",\" + ignore + \",\";\n\n while (--i > -1) {\n name = attr[i].nodeName.toLowerCase(); //in Microsoft Edge, if you don't set the attribute with a lowercase name, it doesn't render correctly! Super weird.\n\n if (ignore.indexOf(\",\" + name + \",\") < 0) {\n path.setAttributeNS(null, name, attr[i].nodeValue);\n }\n }\n\n return path;\n},\n _typeAttrs = {\n rect: \"rx,ry,x,y,width,height\",\n circle: \"r,cx,cy\",\n ellipse: \"rx,ry,cx,cy\",\n line: \"x1,x2,y1,y2\"\n},\n _attrToObj = function _attrToObj(e, attrs) {\n var props = attrs ? attrs.split(\",\") : [],\n obj = {},\n i = props.length;\n\n while (--i > -1) {\n obj[props[i]] = +e.getAttribute(props[i]) || 0;\n }\n\n return obj;\n}; //converts an SVG shape like , , , , , etc. to a , swapping it in and copying the attributes to match.\n\n\nexport function convertToPath(element, swap) {\n var type = element.tagName.toLowerCase(),\n circ = 0.552284749831,\n data,\n x,\n y,\n r,\n ry,\n path,\n rcirc,\n rycirc,\n points,\n w,\n h,\n x2,\n x3,\n x4,\n x5,\n x6,\n y2,\n y3,\n y4,\n y5,\n y6,\n attr;\n\n if (type === \"path\" || !element.getBBox) {\n return element;\n }\n\n path = _createPath(element, \"x,y,width,height,cx,cy,rx,ry,r,x1,x2,y1,y2,points\");\n attr = _attrToObj(element, _typeAttrs[type]);\n\n if (type === \"rect\") {\n r = attr.rx;\n ry = attr.ry || r;\n x = attr.x;\n y = attr.y;\n w = attr.width - r * 2;\n h = attr.height - ry * 2;\n\n if (r || ry) {\n //if there are rounded corners, render cubic beziers\n x2 = x + r * (1 - circ);\n x3 = x + r;\n x4 = x3 + w;\n x5 = x4 + r * circ;\n x6 = x4 + r;\n y2 = y + ry * (1 - circ);\n y3 = y + ry;\n y4 = y3 + h;\n y5 = y4 + ry * circ;\n y6 = y4 + ry;\n data = \"M\" + x6 + \",\" + y3 + \" V\" + y4 + \" C\" + [x6, y5, x5, y6, x4, y6, x4 - (x4 - x3) / 3, y6, x3 + (x4 - x3) / 3, y6, x3, y6, x2, y6, x, y5, x, y4, x, y4 - (y4 - y3) / 3, x, y3 + (y4 - y3) / 3, x, y3, x, y2, x2, y, x3, y, x3 + (x4 - x3) / 3, y, x4 - (x4 - x3) / 3, y, x4, y, x5, y, x6, y2, x6, y3].join(\",\") + \"z\";\n } else {\n data = \"M\" + (x + w) + \",\" + y + \" v\" + h + \" h\" + -w + \" v\" + -h + \" h\" + w + \"z\";\n }\n } else if (type === \"circle\" || type === \"ellipse\") {\n if (type === \"circle\") {\n r = ry = attr.r;\n rycirc = r * circ;\n } else {\n r = attr.rx;\n ry = attr.ry;\n rycirc = ry * circ;\n }\n\n x = attr.cx;\n y = attr.cy;\n rcirc = r * circ;\n data = \"M\" + (x + r) + \",\" + y + \" C\" + [x + r, y + rycirc, x + rcirc, y + ry, x, y + ry, x - rcirc, y + ry, x - r, y + rycirc, x - r, y, x - r, y - rycirc, x - rcirc, y - ry, x, y - ry, x + rcirc, y - ry, x + r, y - rycirc, x + r, y].join(\",\") + \"z\";\n } else if (type === \"line\") {\n data = \"M\" + attr.x1 + \",\" + attr.y1 + \" L\" + attr.x2 + \",\" + attr.y2; //previously, we just converted to \"Mx,y Lx,y\" but Safari has bugs that cause that not to render properly when using a stroke-dasharray that's not fully visible! Using a cubic bezier fixes that issue.\n } else if (type === \"polyline\" || type === \"polygon\") {\n points = (element.getAttribute(\"points\") + \"\").match(_numbersExp) || [];\n x = points.shift();\n y = points.shift();\n data = \"M\" + x + \",\" + y + \" L\" + points.join(\",\");\n\n if (type === \"polygon\") {\n data += \",\" + x + \",\" + y + \"z\";\n }\n }\n\n path.setAttribute(\"d\", rawPathToString(path._gsRawPath = stringToRawPath(data)));\n\n if (swap && element.parentNode) {\n element.parentNode.insertBefore(path, element);\n element.parentNode.removeChild(element);\n }\n\n return path;\n} //returns the rotation (in degrees) at a particular progress on a rawPath (the slope of the tangent)\n\nexport function getRotationAtProgress(rawPath, progress) {\n var d = getProgressData(rawPath, progress >= 1 ? 1 - 1e-9 : progress ? progress : 1e-9);\n return getRotationAtBezierT(d.segment, d.i, d.t);\n}\n\nfunction getRotationAtBezierT(segment, i, t) {\n var a = segment[i],\n b = segment[i + 2],\n c = segment[i + 4],\n x;\n a += (b - a) * t;\n b += (c - b) * t;\n a += (b - a) * t;\n x = b + (c + (segment[i + 6] - c) * t - b) * t - a;\n a = segment[i + 1];\n b = segment[i + 3];\n c = segment[i + 5];\n a += (b - a) * t;\n b += (c - b) * t;\n a += (b - a) * t;\n return _round(_atan2(b + (c + (segment[i + 7] - c) * t - b) * t - a, x) * _RAD2DEG);\n}\n\nexport function sliceRawPath(rawPath, start, end) {\n end = _isUndefined(end) ? 1 : _roundPrecise(end) || 0; // we must round to avoid issues like 4.15 / 8 = 0.8300000000000001 instead of 0.83 or 2.8 / 5 = 0.5599999999999999 instead of 0.56 and if someone is doing a loop like start: 2.8 / 0.5, end: 2.8 / 0.5 + 1.\n\n start = _roundPrecise(start) || 0;\n var loops = Math.max(0, ~~(_abs(end - start) - 1e-8)),\n path = copyRawPath(rawPath);\n\n if (start > end) {\n start = 1 - start;\n end = 1 - end;\n\n _reverseRawPath(path);\n\n path.totalLength = 0;\n }\n\n if (start < 0 || end < 0) {\n var offset = Math.abs(~~Math.min(start, end)) + 1;\n start += offset;\n end += offset;\n }\n\n path.totalLength || cacheRawPathMeasurements(path);\n var wrap = end > 1,\n s = getProgressData(path, start, _temp, true),\n e = getProgressData(path, end, _temp2),\n eSeg = e.segment,\n sSeg = s.segment,\n eSegIndex = e.segIndex,\n sSegIndex = s.segIndex,\n ei = e.i,\n si = s.i,\n sameSegment = sSegIndex === eSegIndex,\n sameBezier = ei === si && sameSegment,\n wrapsBehind,\n sShift,\n eShift,\n i,\n copy,\n totalSegments,\n l,\n j;\n\n if (wrap || loops) {\n wrapsBehind = eSegIndex < sSegIndex || sameSegment && ei < si || sameBezier && e.t < s.t;\n\n if (_splitSegment(path, sSegIndex, si, s.t)) {\n sSegIndex++;\n\n if (!wrapsBehind) {\n eSegIndex++;\n\n if (sameBezier) {\n e.t = (e.t - s.t) / (1 - s.t);\n ei = 0;\n } else if (sameSegment) {\n ei -= si;\n }\n }\n }\n\n if (1 - (end - start) < 1e-5) {\n eSegIndex = sSegIndex - 1;\n } else if (!e.t && eSegIndex) {\n eSegIndex--;\n } else if (_splitSegment(path, eSegIndex, ei, e.t) && wrapsBehind) {\n sSegIndex++;\n }\n\n if (s.t === 1) {\n sSegIndex = (sSegIndex + 1) % path.length;\n }\n\n copy = [];\n totalSegments = path.length;\n l = 1 + totalSegments * loops;\n j = sSegIndex;\n l += (totalSegments - sSegIndex + eSegIndex) % totalSegments;\n\n for (i = 0; i < l; i++) {\n _appendOrMerge(copy, path[j++ % totalSegments]);\n }\n\n path = copy;\n } else {\n eShift = e.t === 1 ? 6 : subdivideSegment(eSeg, ei, e.t);\n\n if (start !== end) {\n sShift = subdivideSegment(sSeg, si, sameBezier ? s.t / e.t : s.t);\n sameSegment && (eShift += sShift);\n eSeg.splice(ei + eShift + 2);\n (sShift || si) && sSeg.splice(0, si + sShift);\n i = path.length;\n\n while (i--) {\n //chop off any extra segments\n (i < sSegIndex || i > eSegIndex) && path.splice(i, 1);\n }\n } else {\n eSeg.angle = getRotationAtBezierT(eSeg, ei + eShift, 0); //record the value before we chop because it'll be impossible to determine the angle after its length is 0!\n\n ei += eShift;\n s = eSeg[ei];\n e = eSeg[ei + 1];\n eSeg.length = eSeg.totalLength = 0;\n eSeg.totalPoints = path.totalPoints = 8;\n eSeg.push(s, e, s, e, s, e, s, e);\n }\n }\n\n path.totalLength = 0;\n return path;\n} //measures a Segment according to its resolution (so if segment.resolution is 6, for example, it'll take 6 samples equally across each Bezier) and create/populate a \"samples\" Array that has the length up to each of those sample points (always increasing from the start) as well as a \"lookup\" array that's broken up according to the smallest distance between 2 samples. This gives us a very fast way of looking up a progress position rather than looping through all the points/Beziers. You can optionally have it only measure a subset, starting at startIndex and going for a specific number of beziers (remember, there are 3 x/y pairs each, for a total of 6 elements for each Bezier). It will also populate a \"totalLength\" property, but that's not generally super accurate because by default it'll only take 6 samples per Bezier. But for performance reasons, it's perfectly adequate for measuring progress values along the path. If you need a more accurate totalLength, either increase the resolution or use the more advanced bezierToPoints() method which keeps adding points until they don't deviate by more than a certain precision value.\n\nfunction measureSegment(segment, startIndex, bezierQty) {\n startIndex = startIndex || 0;\n\n if (!segment.samples) {\n segment.samples = [];\n segment.lookup = [];\n }\n\n var resolution = ~~segment.resolution || 12,\n inc = 1 / resolution,\n endIndex = bezierQty ? startIndex + bezierQty * 6 + 1 : segment.length,\n x1 = segment[startIndex],\n y1 = segment[startIndex + 1],\n samplesIndex = startIndex ? startIndex / 6 * resolution : 0,\n samples = segment.samples,\n lookup = segment.lookup,\n min = (startIndex ? segment.minLength : _largeNum) || _largeNum,\n prevLength = samples[samplesIndex + bezierQty * resolution - 1],\n length = startIndex ? samples[samplesIndex - 1] : 0,\n i,\n j,\n x4,\n x3,\n x2,\n xd,\n xd1,\n y4,\n y3,\n y2,\n yd,\n yd1,\n inv,\n t,\n lengthIndex,\n l,\n segLength;\n samples.length = lookup.length = 0;\n\n for (j = startIndex + 2; j < endIndex; j += 6) {\n x4 = segment[j + 4] - x1;\n x3 = segment[j + 2] - x1;\n x2 = segment[j] - x1;\n y4 = segment[j + 5] - y1;\n y3 = segment[j + 3] - y1;\n y2 = segment[j + 1] - y1;\n xd = xd1 = yd = yd1 = 0;\n\n if (_abs(x4) < 1e-5 && _abs(y4) < 1e-5 && _abs(x2) + _abs(y2) < 1e-5) {\n //dump points that are sufficiently close (basically right on top of each other, making a bezier super tiny or 0 length)\n if (segment.length > 8) {\n segment.splice(j, 6);\n j -= 6;\n endIndex -= 6;\n }\n } else {\n for (i = 1; i <= resolution; i++) {\n t = inc * i;\n inv = 1 - t;\n xd = xd1 - (xd1 = (t * t * x4 + 3 * inv * (t * x3 + inv * x2)) * t);\n yd = yd1 - (yd1 = (t * t * y4 + 3 * inv * (t * y3 + inv * y2)) * t);\n l = _sqrt(yd * yd + xd * xd);\n\n if (l < min) {\n min = l;\n }\n\n length += l;\n samples[samplesIndex++] = length;\n }\n }\n\n x1 += x4;\n y1 += y4;\n }\n\n if (prevLength) {\n prevLength -= length;\n\n for (; samplesIndex < samples.length; samplesIndex++) {\n samples[samplesIndex] += prevLength;\n }\n }\n\n if (samples.length && min) {\n segment.totalLength = segLength = samples[samples.length - 1] || 0;\n segment.minLength = min;\n l = lengthIndex = 0;\n\n for (i = 0; i < segLength; i += min) {\n lookup[l++] = samples[lengthIndex] < i ? ++lengthIndex : lengthIndex;\n }\n } else {\n segment.totalLength = samples[0] = 0;\n }\n\n return startIndex ? length - samples[startIndex / 2 - 1] : length;\n}\n\nexport function cacheRawPathMeasurements(rawPath, resolution) {\n var pathLength, points, i;\n\n for (i = pathLength = points = 0; i < rawPath.length; i++) {\n rawPath[i].resolution = ~~resolution || 12; //steps per Bezier curve (anchor, 2 control points, to anchor)\n\n points += rawPath[i].length;\n pathLength += measureSegment(rawPath[i]);\n }\n\n rawPath.totalPoints = points;\n rawPath.totalLength = pathLength;\n return rawPath;\n} //divide segment[i] at position t (value between 0 and 1, progress along that particular cubic bezier segment that starts at segment[i]). Returns how many elements were spliced into the segment array (either 0 or 6)\n\nexport function subdivideSegment(segment, i, t) {\n if (t <= 0 || t >= 1) {\n return 0;\n }\n\n var ax = segment[i],\n ay = segment[i + 1],\n cp1x = segment[i + 2],\n cp1y = segment[i + 3],\n cp2x = segment[i + 4],\n cp2y = segment[i + 5],\n bx = segment[i + 6],\n by = segment[i + 7],\n x1a = ax + (cp1x - ax) * t,\n x2 = cp1x + (cp2x - cp1x) * t,\n y1a = ay + (cp1y - ay) * t,\n y2 = cp1y + (cp2y - cp1y) * t,\n x1 = x1a + (x2 - x1a) * t,\n y1 = y1a + (y2 - y1a) * t,\n x2a = cp2x + (bx - cp2x) * t,\n y2a = cp2y + (by - cp2y) * t;\n x2 += (x2a - x2) * t;\n y2 += (y2a - y2) * t;\n segment.splice(i + 2, 4, _round(x1a), //first control point\n _round(y1a), _round(x1), //second control point\n _round(y1), _round(x1 + (x2 - x1) * t), //new fabricated anchor on line\n _round(y1 + (y2 - y1) * t), _round(x2), //third control point\n _round(y2), _round(x2a), //fourth control point\n _round(y2a));\n segment.samples && segment.samples.splice(i / 6 * segment.resolution | 0, 0, 0, 0, 0, 0, 0, 0);\n return 6;\n} // returns an object {path, segment, segIndex, i, t}\n\nfunction getProgressData(rawPath, progress, decoratee, pushToNextIfAtEnd) {\n decoratee = decoratee || {};\n rawPath.totalLength || cacheRawPathMeasurements(rawPath);\n\n if (progress < 0 || progress > 1) {\n progress = _wrapProgress(progress);\n }\n\n var segIndex = 0,\n segment = rawPath[0],\n samples,\n resolution,\n length,\n min,\n max,\n i,\n t;\n\n if (!progress) {\n t = i = segIndex = 0;\n segment = rawPath[0];\n } else if (progress === 1) {\n t = 1;\n segIndex = rawPath.length - 1;\n segment = rawPath[segIndex];\n i = segment.length - 8;\n } else {\n if (rawPath.length > 1) {\n //speed optimization: most of the time, there's only one segment so skip the recursion.\n length = rawPath.totalLength * progress;\n max = i = 0;\n\n while ((max += rawPath[i++].totalLength) < length) {\n segIndex = i;\n }\n\n segment = rawPath[segIndex];\n min = max - segment.totalLength;\n progress = (length - min) / (max - min) || 0;\n }\n\n samples = segment.samples;\n resolution = segment.resolution; //how many samples per cubic bezier chunk\n\n length = segment.totalLength * progress;\n i = segment.lookup[~~(length / segment.minLength)] || 0;\n min = i ? samples[i - 1] : 0;\n max = samples[i];\n\n if (max < length) {\n min = max;\n max = samples[++i];\n }\n\n t = 1 / resolution * ((length - min) / (max - min) + i % resolution);\n i = ~~(i / resolution) * 6;\n\n if (pushToNextIfAtEnd && t === 1) {\n if (i + 6 < segment.length) {\n i += 6;\n t = 0;\n } else if (segIndex + 1 < rawPath.length) {\n i = t = 0;\n segment = rawPath[++segIndex];\n }\n }\n }\n\n decoratee.t = t;\n decoratee.i = i;\n decoratee.path = rawPath;\n decoratee.segment = segment;\n decoratee.segIndex = segIndex;\n return decoratee;\n}\n\nexport function getPositionOnPath(rawPath, progress, includeAngle, point) {\n var segment = rawPath[0],\n result = point || {},\n samples,\n resolution,\n length,\n min,\n max,\n i,\n t,\n a,\n inv;\n\n if (progress < 0 || progress > 1) {\n progress = _wrapProgress(progress);\n }\n\n if (rawPath.length > 1) {\n //speed optimization: most of the time, there's only one segment so skip the recursion.\n length = rawPath.totalLength * progress;\n max = i = 0;\n\n while ((max += rawPath[i++].totalLength) < length) {\n segment = rawPath[i];\n }\n\n min = max - segment.totalLength;\n progress = (length - min) / (max - min) || 0;\n }\n\n samples = segment.samples;\n resolution = segment.resolution;\n length = segment.totalLength * progress;\n i = segment.lookup[progress < 1 ? ~~(length / segment.minLength) : segment.lookup.length - 1] || 0;\n min = i ? samples[i - 1] : 0;\n max = samples[i];\n\n if (max < length) {\n min = max;\n max = samples[++i];\n }\n\n t = 1 / resolution * ((length - min) / (max - min) + i % resolution) || 0;\n inv = 1 - t;\n i = ~~(i / resolution) * 6;\n a = segment[i];\n result.x = _round((t * t * (segment[i + 6] - a) + 3 * inv * (t * (segment[i + 4] - a) + inv * (segment[i + 2] - a))) * t + a);\n result.y = _round((t * t * (segment[i + 7] - (a = segment[i + 1])) + 3 * inv * (t * (segment[i + 5] - a) + inv * (segment[i + 3] - a))) * t + a);\n\n if (includeAngle) {\n result.angle = segment.totalLength ? getRotationAtBezierT(segment, i, t >= 1 ? 1 - 1e-9 : t ? t : 1e-9) : segment.angle || 0;\n }\n\n return result;\n} //applies a matrix transform to RawPath (or a segment in a RawPath) and returns whatever was passed in (it transforms the values in the array(s), not a copy).\n\nexport function transformRawPath(rawPath, a, b, c, d, tx, ty) {\n var j = rawPath.length,\n segment,\n l,\n i,\n x,\n y;\n\n while (--j > -1) {\n segment = rawPath[j];\n l = segment.length;\n\n for (i = 0; i < l; i += 2) {\n x = segment[i];\n y = segment[i + 1];\n segment[i] = x * a + y * c + tx;\n segment[i + 1] = x * b + y * d + ty;\n }\n }\n\n rawPath._dirty = 1;\n return rawPath;\n} // translates SVG arc data into a segment (cubic beziers). Angle is in degrees.\n\nfunction arcToSegment(lastX, lastY, rx, ry, angle, largeArcFlag, sweepFlag, x, y) {\n if (lastX === x && lastY === y) {\n return;\n }\n\n rx = _abs(rx);\n ry = _abs(ry);\n\n var angleRad = angle % 360 * _DEG2RAD,\n cosAngle = _cos(angleRad),\n sinAngle = _sin(angleRad),\n PI = Math.PI,\n TWOPI = PI * 2,\n dx2 = (lastX - x) / 2,\n dy2 = (lastY - y) / 2,\n x1 = cosAngle * dx2 + sinAngle * dy2,\n y1 = -sinAngle * dx2 + cosAngle * dy2,\n x1_sq = x1 * x1,\n y1_sq = y1 * y1,\n radiiCheck = x1_sq / (rx * rx) + y1_sq / (ry * ry);\n\n if (radiiCheck > 1) {\n rx = _sqrt(radiiCheck) * rx;\n ry = _sqrt(radiiCheck) * ry;\n }\n\n var rx_sq = rx * rx,\n ry_sq = ry * ry,\n sq = (rx_sq * ry_sq - rx_sq * y1_sq - ry_sq * x1_sq) / (rx_sq * y1_sq + ry_sq * x1_sq);\n\n if (sq < 0) {\n sq = 0;\n }\n\n var coef = (largeArcFlag === sweepFlag ? -1 : 1) * _sqrt(sq),\n cx1 = coef * (rx * y1 / ry),\n cy1 = coef * -(ry * x1 / rx),\n sx2 = (lastX + x) / 2,\n sy2 = (lastY + y) / 2,\n cx = sx2 + (cosAngle * cx1 - sinAngle * cy1),\n cy = sy2 + (sinAngle * cx1 + cosAngle * cy1),\n ux = (x1 - cx1) / rx,\n uy = (y1 - cy1) / ry,\n vx = (-x1 - cx1) / rx,\n vy = (-y1 - cy1) / ry,\n temp = ux * ux + uy * uy,\n angleStart = (uy < 0 ? -1 : 1) * Math.acos(ux / _sqrt(temp)),\n angleExtent = (ux * vy - uy * vx < 0 ? -1 : 1) * Math.acos((ux * vx + uy * vy) / _sqrt(temp * (vx * vx + vy * vy)));\n\n isNaN(angleExtent) && (angleExtent = PI); //rare edge case. Math.cos(-1) is NaN.\n\n if (!sweepFlag && angleExtent > 0) {\n angleExtent -= TWOPI;\n } else if (sweepFlag && angleExtent < 0) {\n angleExtent += TWOPI;\n }\n\n angleStart %= TWOPI;\n angleExtent %= TWOPI;\n\n var segments = Math.ceil(_abs(angleExtent) / (TWOPI / 4)),\n rawPath = [],\n angleIncrement = angleExtent / segments,\n controlLength = 4 / 3 * _sin(angleIncrement / 2) / (1 + _cos(angleIncrement / 2)),\n ma = cosAngle * rx,\n mb = sinAngle * rx,\n mc = sinAngle * -ry,\n md = cosAngle * ry,\n i;\n\n for (i = 0; i < segments; i++) {\n angle = angleStart + i * angleIncrement;\n x1 = _cos(angle);\n y1 = _sin(angle);\n ux = _cos(angle += angleIncrement);\n uy = _sin(angle);\n rawPath.push(x1 - controlLength * y1, y1 + controlLength * x1, ux + controlLength * uy, uy - controlLength * ux, ux, uy);\n } //now transform according to the actual size of the ellipse/arc (the beziers were noramlized, between 0 and 1 on a circle).\n\n\n for (i = 0; i < rawPath.length; i += 2) {\n x1 = rawPath[i];\n y1 = rawPath[i + 1];\n rawPath[i] = x1 * ma + y1 * mc + cx;\n rawPath[i + 1] = x1 * mb + y1 * md + cy;\n }\n\n rawPath[i - 2] = x; //always set the end to exactly where it's supposed to be\n\n rawPath[i - 1] = y;\n return rawPath;\n} //Spits back a RawPath with absolute coordinates. Each segment starts with a \"moveTo\" command (x coordinate, then y) and then 2 control points (x, y, x, y), then anchor. The goal is to minimize memory and maximize speed.\n\n\nexport function stringToRawPath(d) {\n var a = (d + \"\").replace(_scientific, function (m) {\n var n = +m;\n return n < 0.0001 && n > -0.0001 ? 0 : n;\n }).match(_svgPathExp) || [],\n //some authoring programs spit out very small numbers in scientific notation like \"1e-5\", so make sure we round that down to 0 first.\n path = [],\n relativeX = 0,\n relativeY = 0,\n twoThirds = 2 / 3,\n elements = a.length,\n points = 0,\n errorMessage = \"ERROR: malformed path: \" + d,\n i,\n j,\n x,\n y,\n command,\n isRelative,\n segment,\n startX,\n startY,\n difX,\n difY,\n beziers,\n prevCommand,\n flag1,\n flag2,\n line = function line(sx, sy, ex, ey) {\n difX = (ex - sx) / 3;\n difY = (ey - sy) / 3;\n segment.push(sx + difX, sy + difY, ex - difX, ey - difY, ex, ey);\n };\n\n if (!d || !isNaN(a[0]) || isNaN(a[1])) {\n console.log(errorMessage);\n return path;\n }\n\n for (i = 0; i < elements; i++) {\n prevCommand = command;\n\n if (isNaN(a[i])) {\n command = a[i].toUpperCase();\n isRelative = command !== a[i]; //lower case means relative\n } else {\n //commands like \"C\" can be strung together without any new command characters between.\n i--;\n }\n\n x = +a[i + 1];\n y = +a[i + 2];\n\n if (isRelative) {\n x += relativeX;\n y += relativeY;\n }\n\n if (!i) {\n startX = x;\n startY = y;\n } // \"M\" (move)\n\n\n if (command === \"M\") {\n if (segment) {\n if (segment.length < 8) {\n //if the path data was funky and just had a M with no actual drawing anywhere, skip it.\n path.length -= 1;\n } else {\n points += segment.length;\n }\n }\n\n relativeX = startX = x;\n relativeY = startY = y;\n segment = [x, y];\n path.push(segment);\n i += 2;\n command = \"L\"; //an \"M\" with more than 2 values gets interpreted as \"lineTo\" commands (\"L\").\n // \"C\" (cubic bezier)\n } else if (command === \"C\") {\n if (!segment) {\n segment = [0, 0];\n }\n\n if (!isRelative) {\n relativeX = relativeY = 0;\n } //note: \"*1\" is just a fast/short way to cast the value as a Number. WAAAY faster in Chrome, slightly slower in Firefox.\n\n\n segment.push(x, y, relativeX + a[i + 3] * 1, relativeY + a[i + 4] * 1, relativeX += a[i + 5] * 1, relativeY += a[i + 6] * 1);\n i += 6; // \"S\" (continuation of cubic bezier)\n } else if (command === \"S\") {\n difX = relativeX;\n difY = relativeY;\n\n if (prevCommand === \"C\" || prevCommand === \"S\") {\n difX += relativeX - segment[segment.length - 4];\n difY += relativeY - segment[segment.length - 3];\n }\n\n if (!isRelative) {\n relativeX = relativeY = 0;\n }\n\n segment.push(difX, difY, x, y, relativeX += a[i + 3] * 1, relativeY += a[i + 4] * 1);\n i += 4; // \"Q\" (quadratic bezier)\n } else if (command === \"Q\") {\n difX = relativeX + (x - relativeX) * twoThirds;\n difY = relativeY + (y - relativeY) * twoThirds;\n\n if (!isRelative) {\n relativeX = relativeY = 0;\n }\n\n relativeX += a[i + 3] * 1;\n relativeY += a[i + 4] * 1;\n segment.push(difX, difY, relativeX + (x - relativeX) * twoThirds, relativeY + (y - relativeY) * twoThirds, relativeX, relativeY);\n i += 4; // \"T\" (continuation of quadratic bezier)\n } else if (command === \"T\") {\n difX = relativeX - segment[segment.length - 4];\n difY = relativeY - segment[segment.length - 3];\n segment.push(relativeX + difX, relativeY + difY, x + (relativeX + difX * 1.5 - x) * twoThirds, y + (relativeY + difY * 1.5 - y) * twoThirds, relativeX = x, relativeY = y);\n i += 2; // \"H\" (horizontal line)\n } else if (command === \"H\") {\n line(relativeX, relativeY, relativeX = x, relativeY);\n i += 1; // \"V\" (vertical line)\n } else if (command === \"V\") {\n //adjust values because the first (and only one) isn't x in this case, it's y.\n line(relativeX, relativeY, relativeX, relativeY = x + (isRelative ? relativeY - relativeX : 0));\n i += 1; // \"L\" (line) or \"Z\" (close)\n } else if (command === \"L\" || command === \"Z\") {\n if (command === \"Z\") {\n x = startX;\n y = startY;\n segment.closed = true;\n }\n\n if (command === \"L\" || _abs(relativeX - x) > 0.5 || _abs(relativeY - y) > 0.5) {\n line(relativeX, relativeY, x, y);\n\n if (command === \"L\") {\n i += 2;\n }\n }\n\n relativeX = x;\n relativeY = y; // \"A\" (arc)\n } else if (command === \"A\") {\n flag1 = a[i + 4];\n flag2 = a[i + 5];\n difX = a[i + 6];\n difY = a[i + 7];\n j = 7;\n\n if (flag1.length > 1) {\n // for cases when the flags are merged, like \"a8 8 0 018 8\" (the 0 and 1 flags are WITH the x value of 8, but it could also be \"a8 8 0 01-8 8\" so it may include x or not)\n if (flag1.length < 3) {\n difY = difX;\n difX = flag2;\n j--;\n } else {\n difY = flag2;\n difX = flag1.substr(2);\n j -= 2;\n }\n\n flag2 = flag1.charAt(1);\n flag1 = flag1.charAt(0);\n }\n\n beziers = arcToSegment(relativeX, relativeY, +a[i + 1], +a[i + 2], +a[i + 3], +flag1, +flag2, (isRelative ? relativeX : 0) + difX * 1, (isRelative ? relativeY : 0) + difY * 1);\n i += j;\n\n if (beziers) {\n for (j = 0; j < beziers.length; j++) {\n segment.push(beziers[j]);\n }\n }\n\n relativeX = segment[segment.length - 2];\n relativeY = segment[segment.length - 1];\n } else {\n console.log(errorMessage);\n }\n }\n\n i = segment.length;\n\n if (i < 6) {\n //in case there's odd SVG like a M0,0 command at the very end.\n path.pop();\n i = 0;\n } else if (segment[0] === segment[i - 2] && segment[1] === segment[i - 1]) {\n segment.closed = true;\n }\n\n path.totalPoints = points + i;\n return path;\n} //populates the points array in alternating x/y values (like [x, y, x, y...] instead of individual point objects [{x, y}, {x, y}...] to conserve memory and stay in line with how we're handling segment arrays\n\nexport function bezierToPoints(x1, y1, x2, y2, x3, y3, x4, y4, threshold, points, index) {\n var x12 = (x1 + x2) / 2,\n y12 = (y1 + y2) / 2,\n x23 = (x2 + x3) / 2,\n y23 = (y2 + y3) / 2,\n x34 = (x3 + x4) / 2,\n y34 = (y3 + y4) / 2,\n x123 = (x12 + x23) / 2,\n y123 = (y12 + y23) / 2,\n x234 = (x23 + x34) / 2,\n y234 = (y23 + y34) / 2,\n x1234 = (x123 + x234) / 2,\n y1234 = (y123 + y234) / 2,\n dx = x4 - x1,\n dy = y4 - y1,\n d2 = _abs((x2 - x4) * dy - (y2 - y4) * dx),\n d3 = _abs((x3 - x4) * dy - (y3 - y4) * dx),\n length;\n\n if (!points) {\n points = [x1, y1, x4, y4];\n index = 2;\n }\n\n points.splice(index || points.length - 2, 0, x1234, y1234);\n\n if ((d2 + d3) * (d2 + d3) > threshold * (dx * dx + dy * dy)) {\n length = points.length;\n bezierToPoints(x1, y1, x12, y12, x123, y123, x1234, y1234, threshold, points, index);\n bezierToPoints(x1234, y1234, x234, y234, x34, y34, x4, y4, threshold, points, index + 2 + (points.length - length));\n }\n\n return points;\n}\n/*\nfunction getAngleBetweenPoints(x0, y0, x1, y1, x2, y2) { //angle between 3 points in radians\n\tvar dx1 = x1 - x0,\n\t\tdy1 = y1 - y0,\n\t\tdx2 = x2 - x1,\n\t\tdy2 = y2 - y1,\n\t\tdx3 = x2 - x0,\n\t\tdy3 = y2 - y0,\n\t\ta = dx1 * dx1 + dy1 * dy1,\n\t\tb = dx2 * dx2 + dy2 * dy2,\n\t\tc = dx3 * dx3 + dy3 * dy3;\n\treturn Math.acos( (a + b - c) / _sqrt(4 * a * b) );\n},\n*/\n//pointsToSegment() doesn't handle flat coordinates (where y is always 0) the way we need (the resulting control points are always right on top of the anchors), so this function basically makes the control points go directly up and down, varying in length based on the curviness (more curvy, further control points)\n\nexport function flatPointsToSegment(points, curviness) {\n if (curviness === void 0) {\n curviness = 1;\n }\n\n var x = points[0],\n y = 0,\n segment = [x, y],\n i = 2;\n\n for (; i < points.length; i += 2) {\n segment.push(x, y, points[i], y = (points[i] - x) * curviness / 2, x = points[i], -y);\n }\n\n return segment;\n} //points is an array of x/y points, like [x, y, x, y, x, y]\n\nexport function pointsToSegment(points, curviness, cornerThreshold) {\n //points = simplifyPoints(points, tolerance);\n _abs(points[0] - points[2]) < 1e-4 && _abs(points[1] - points[3]) < 1e-4 && (points = points.slice(2)); // if the first two points are super close, dump the first one.\n\n var l = points.length - 2,\n x = +points[0],\n y = +points[1],\n nextX = +points[2],\n nextY = +points[3],\n segment = [x, y, x, y],\n dx2 = nextX - x,\n dy2 = nextY - y,\n closed = Math.abs(points[l] - x) < 0.001 && Math.abs(points[l + 1] - y) < 0.001,\n prevX,\n prevY,\n angle,\n slope,\n i,\n dx1,\n dx3,\n dy1,\n dy3,\n d1,\n d2,\n a,\n b,\n c;\n\n if (isNaN(cornerThreshold)) {\n cornerThreshold = Math.PI / 10;\n }\n\n if (closed) {\n // if the start and end points are basically on top of each other, close the segment by adding the 2nd point to the end, and the 2nd-to-last point to the beginning (we'll remove them at the end, but this allows the curvature to look perfect)\n points.push(nextX, nextY);\n nextX = x;\n nextY = y;\n x = points[l - 2];\n y = points[l - 1];\n points.unshift(x, y);\n l += 4;\n }\n\n curviness = curviness || curviness === 0 ? +curviness : 1;\n\n for (i = 2; i < l; i += 2) {\n prevX = x;\n prevY = y;\n x = nextX;\n y = nextY;\n nextX = +points[i + 2];\n nextY = +points[i + 3];\n\n if (x === nextX && y === nextY) {\n continue;\n }\n\n dx1 = dx2;\n dy1 = dy2;\n dx2 = nextX - x;\n dy2 = nextY - y;\n dx3 = nextX - prevX;\n dy3 = nextY - prevY;\n a = dx1 * dx1 + dy1 * dy1;\n b = dx2 * dx2 + dy2 * dy2;\n c = dx3 * dx3 + dy3 * dy3;\n angle = Math.acos((a + b - c) / _sqrt(4 * a * b)); //angle between the 3 points\n\n d2 = angle / Math.PI * curviness; //temporary precalculation for speed (reusing d2 variable)\n\n d1 = _sqrt(a) * d2; //the tighter the angle, the shorter we make the handles in proportion.\n\n d2 *= _sqrt(b);\n\n if (x !== prevX || y !== prevY) {\n if (angle > cornerThreshold) {\n slope = _atan2(dy3, dx3);\n segment.push(_round(x - _cos(slope) * d1), //first control point\n _round(y - _sin(slope) * d1), _round(x), //anchor\n _round(y), _round(x + _cos(slope) * d2), //second control point\n _round(y + _sin(slope) * d2));\n } else {\n slope = _atan2(dy1, dx1);\n segment.push(_round(x - _cos(slope) * d1), //first control point\n _round(y - _sin(slope) * d1));\n slope = _atan2(dy2, dx2);\n segment.push(_round(x), //anchor\n _round(y), _round(x + _cos(slope) * d2), //second control point\n _round(y + _sin(slope) * d2));\n }\n }\n }\n\n x !== nextX || y !== nextY || segment.length < 4 ? segment.push(_round(nextX), _round(nextY), _round(nextX), _round(nextY)) : segment.length -= 2;\n\n if (closed) {\n segment.splice(0, 6);\n segment.length = segment.length - 6;\n }\n\n return segment;\n} //returns the squared distance between an x/y coordinate and a segment between x1/y1 and x2/y2\n\nfunction pointToSegDist(x, y, x1, y1, x2, y2) {\n var dx = x2 - x1,\n dy = y2 - y1,\n t;\n\n if (dx || dy) {\n t = ((x - x1) * dx + (y - y1) * dy) / (dx * dx + dy * dy);\n\n if (t > 1) {\n x1 = x2;\n y1 = y2;\n } else if (t > 0) {\n x1 += dx * t;\n y1 += dy * t;\n }\n }\n\n return Math.pow(x - x1, 2) + Math.pow(y - y1, 2);\n}\n\nfunction simplifyStep(points, first, last, tolerance, simplified) {\n var maxSqDist = tolerance,\n firstX = points[first],\n firstY = points[first + 1],\n lastX = points[last],\n lastY = points[last + 1],\n index,\n i,\n d;\n\n for (i = first + 2; i < last; i += 2) {\n d = pointToSegDist(points[i], points[i + 1], firstX, firstY, lastX, lastY);\n\n if (d > maxSqDist) {\n index = i;\n maxSqDist = d;\n }\n }\n\n if (maxSqDist > tolerance) {\n index - first > 2 && simplifyStep(points, first, index, tolerance, simplified);\n simplified.push(points[index], points[index + 1]);\n last - index > 2 && simplifyStep(points, index, last, tolerance, simplified);\n }\n} //points is an array of x/y values like [x, y, x, y, x, y]\n\n\nexport function simplifyPoints(points, tolerance) {\n var prevX = parseFloat(points[0]),\n prevY = parseFloat(points[1]),\n temp = [prevX, prevY],\n l = points.length - 2,\n i,\n x,\n y,\n dx,\n dy,\n result,\n last;\n tolerance = Math.pow(tolerance || 1, 2);\n\n for (i = 2; i < l; i += 2) {\n x = parseFloat(points[i]);\n y = parseFloat(points[i + 1]);\n dx = prevX - x;\n dy = prevY - y;\n\n if (dx * dx + dy * dy > tolerance) {\n temp.push(x, y);\n prevX = x;\n prevY = y;\n }\n }\n\n temp.push(parseFloat(points[l]), parseFloat(points[l + 1]));\n last = temp.length - 2;\n result = [temp[0], temp[1]];\n simplifyStep(temp, 0, last, tolerance, result);\n result.push(temp[last], temp[last + 1]);\n return result;\n}\n\nfunction getClosestProgressOnBezier(iterations, px, py, start, end, slices, x0, y0, x1, y1, x2, y2, x3, y3) {\n var inc = (end - start) / slices,\n best = 0,\n t = start,\n x,\n y,\n d,\n dx,\n dy,\n inv;\n _bestDistance = _largeNum;\n\n while (t <= end) {\n inv = 1 - t;\n x = inv * inv * inv * x0 + 3 * inv * inv * t * x1 + 3 * inv * t * t * x2 + t * t * t * x3;\n y = inv * inv * inv * y0 + 3 * inv * inv * t * y1 + 3 * inv * t * t * y2 + t * t * t * y3;\n dx = x - px;\n dy = y - py;\n d = dx * dx + dy * dy;\n\n if (d < _bestDistance) {\n _bestDistance = d;\n best = t;\n }\n\n t += inc;\n }\n\n return iterations > 1 ? getClosestProgressOnBezier(iterations - 1, px, py, Math.max(best - inc, 0), Math.min(best + inc, 1), slices, x0, y0, x1, y1, x2, y2, x3, y3) : best;\n}\n\nexport function getClosestData(rawPath, x, y, slices) {\n //returns an object with the closest j, i, and t (j is the segment index, i is the index of the point in that segment, and t is the time/progress along that bezier)\n var closest = {\n j: 0,\n i: 0,\n t: 0\n },\n bestDistance = _largeNum,\n i,\n j,\n t,\n segment;\n\n for (j = 0; j < rawPath.length; j++) {\n segment = rawPath[j];\n\n for (i = 0; i < segment.length; i += 6) {\n t = getClosestProgressOnBezier(1, x, y, 0, 1, slices || 20, segment[i], segment[i + 1], segment[i + 2], segment[i + 3], segment[i + 4], segment[i + 5], segment[i + 6], segment[i + 7]);\n\n if (bestDistance > _bestDistance) {\n bestDistance = _bestDistance;\n closest.j = j;\n closest.i = i;\n closest.t = t;\n }\n }\n }\n\n return closest;\n} //subdivide a Segment closest to a specific x,y coordinate\n\nexport function subdivideSegmentNear(x, y, segment, slices, iterations) {\n var l = segment.length,\n bestDistance = _largeNum,\n bestT = 0,\n bestSegmentIndex = 0,\n t,\n i;\n slices = slices || 20;\n iterations = iterations || 3;\n\n for (i = 0; i < l; i += 6) {\n t = getClosestProgressOnBezier(1, x, y, 0, 1, slices, segment[i], segment[i + 1], segment[i + 2], segment[i + 3], segment[i + 4], segment[i + 5], segment[i + 6], segment[i + 7]);\n\n if (bestDistance > _bestDistance) {\n bestDistance = _bestDistance;\n bestT = t;\n bestSegmentIndex = i;\n }\n }\n\n t = getClosestProgressOnBezier(iterations, x, y, bestT - 0.05, bestT + 0.05, slices, segment[bestSegmentIndex], segment[bestSegmentIndex + 1], segment[bestSegmentIndex + 2], segment[bestSegmentIndex + 3], segment[bestSegmentIndex + 4], segment[bestSegmentIndex + 5], segment[bestSegmentIndex + 6], segment[bestSegmentIndex + 7]);\n subdivideSegment(segment, bestSegmentIndex, t);\n return bestSegmentIndex + 6;\n}\n/*\nTakes any of the following and converts it to an all Cubic Bezier SVG data string:\n- A data string like \"M0,0 L2,4 v20,15 H100\"\n- A RawPath, like [[x, y, x, y, x, y, x, y][[x, y, x, y, x, y, x, y]]\n- A Segment, like [x, y, x, y, x, y, x, y]\n\nNote: all numbers are rounded down to the closest 0.001 to minimize memory, maximize speed, and avoid odd numbers like 1e-13\n*/\n\nexport function rawPathToString(rawPath) {\n if (_isNumber(rawPath[0])) {\n //in case a segment is passed in instead\n rawPath = [rawPath];\n }\n\n var result = \"\",\n l = rawPath.length,\n sl,\n s,\n i,\n segment;\n\n for (s = 0; s < l; s++) {\n segment = rawPath[s];\n result += \"M\" + _round(segment[0]) + \",\" + _round(segment[1]) + \" C\";\n sl = segment.length;\n\n for (i = 2; i < sl; i++) {\n result += _round(segment[i++]) + \",\" + _round(segment[i++]) + \" \" + _round(segment[i++]) + \",\" + _round(segment[i++]) + \" \" + _round(segment[i++]) + \",\" + _round(segment[i]) + \" \";\n }\n\n if (segment.closed) {\n result += \"z\";\n }\n }\n\n return result;\n}\n/*\n// takes a segment with coordinates [x, y, x, y, ...] and converts the control points into angles and lengths [x, y, angle, length, angle, length, x, y, angle, length, ...] so that it animates more cleanly and avoids odd breaks/kinks. For example, if you animate from 1 o'clock to 6 o'clock, it'd just go directly/linearly rather than around. So the length would be very short in the middle of the tween.\nexport function cpCoordsToAngles(segment, copy) {\n\tvar result = copy ? segment.slice(0) : segment,\n\t\tx, y, i;\n\tfor (i = 0; i < segment.length; i+=6) {\n\t\tx = segment[i+2] - segment[i];\n\t\ty = segment[i+3] - segment[i+1];\n\t\tresult[i+2] = Math.atan2(y, x);\n\t\tresult[i+3] = Math.sqrt(x * x + y * y);\n\t\tx = segment[i+6] - segment[i+4];\n\t\ty = segment[i+7] - segment[i+5];\n\t\tresult[i+4] = Math.atan2(y, x);\n\t\tresult[i+5] = Math.sqrt(x * x + y * y);\n\t}\n\treturn result;\n}\n\n// takes a segment that was converted with cpCoordsToAngles() to have angles and lengths instead of coordinates for the control points, and converts it BACK into coordinates.\nexport function cpAnglesToCoords(segment, copy) {\n\tvar result = copy ? segment.slice(0) : segment,\n\t\tlength = segment.length,\n\t\trnd = 1000,\n\t\tangle, l, i, j;\n\tfor (i = 0; i < length; i+=6) {\n\t\tangle = segment[i+2];\n\t\tl = segment[i+3]; //length\n\t\tresult[i+2] = (((segment[i] + Math.cos(angle) * l) * rnd) | 0) / rnd;\n\t\tresult[i+3] = (((segment[i+1] + Math.sin(angle) * l) * rnd) | 0) / rnd;\n\t\tangle = segment[i+4];\n\t\tl = segment[i+5]; //length\n\t\tresult[i+4] = (((segment[i+6] - Math.cos(angle) * l) * rnd) | 0) / rnd;\n\t\tresult[i+5] = (((segment[i+7] - Math.sin(angle) * l) * rnd) | 0) / rnd;\n\t}\n\treturn result;\n}\n\n//adds an \"isSmooth\" array to each segment and populates it with a boolean value indicating whether or not it's smooth (the control points have basically the same slope). For any smooth control points, it converts the coordinates into angle (x, in radians) and length (y) and puts them into the same index value in a smoothData array.\nexport function populateSmoothData(rawPath) {\n\tlet j = rawPath.length,\n\t\tsmooth, segment, x, y, x2, y2, i, l, a, a2, isSmooth, smoothData;\n\twhile (--j > -1) {\n\t\tsegment = rawPath[j];\n\t\tisSmooth = segment.isSmooth = segment.isSmooth || [0, 0, 0, 0];\n\t\tsmoothData = segment.smoothData = segment.smoothData || [0, 0, 0, 0];\n\t\tisSmooth.length = 4;\n\t\tl = segment.length - 2;\n\t\tfor (i = 6; i < l; i += 6) {\n\t\t\tx = segment[i] - segment[i - 2];\n\t\t\ty = segment[i + 1] - segment[i - 1];\n\t\t\tx2 = segment[i + 2] - segment[i];\n\t\t\ty2 = segment[i + 3] - segment[i + 1];\n\t\t\ta = _atan2(y, x);\n\t\t\ta2 = _atan2(y2, x2);\n\t\t\tsmooth = (Math.abs(a - a2) < 0.09);\n\t\t\tif (smooth) {\n\t\t\t\tsmoothData[i - 2] = a;\n\t\t\t\tsmoothData[i + 2] = a2;\n\t\t\t\tsmoothData[i - 1] = _sqrt(x * x + y * y);\n\t\t\t\tsmoothData[i + 3] = _sqrt(x2 * x2 + y2 * y2);\n\t\t\t}\n\t\t\tisSmooth.push(smooth, smooth, 0, 0, smooth, smooth);\n\t\t}\n\t\t//if the first and last points are identical, check to see if there's a smooth transition. We must handle this a bit differently due to their positions in the array.\n\t\tif (segment[l] === segment[0] && segment[l+1] === segment[1]) {\n\t\t\tx = segment[0] - segment[l-2];\n\t\t\ty = segment[1] - segment[l-1];\n\t\t\tx2 = segment[2] - segment[0];\n\t\t\ty2 = segment[3] - segment[1];\n\t\t\ta = _atan2(y, x);\n\t\t\ta2 = _atan2(y2, x2);\n\t\t\tif (Math.abs(a - a2) < 0.09) {\n\t\t\t\tsmoothData[l-2] = a;\n\t\t\t\tsmoothData[2] = a2;\n\t\t\t\tsmoothData[l-1] = _sqrt(x * x + y * y);\n\t\t\t\tsmoothData[3] = _sqrt(x2 * x2 + y2 * y2);\n\t\t\t\tisSmooth[l-2] = isSmooth[l-1] = true; //don't change indexes 2 and 3 because we'll trigger everything from the END, and this will optimize file size a bit.\n\t\t\t}\n\t\t}\n\t}\n\treturn rawPath;\n}\nexport function pointToScreen(svgElement, point) {\n\tif (arguments.length < 2) { //by default, take the first set of coordinates in the path as the point\n\t\tlet rawPath = getRawPath(svgElement);\n\t\tpoint = svgElement.ownerSVGElement.createSVGPoint();\n\t\tpoint.x = rawPath[0][0];\n\t\tpoint.y = rawPath[0][1];\n\t}\n\treturn point.matrixTransform(svgElement.getScreenCTM());\n}\n\n*/","/*!\n * CustomEase 3.6.1\n * https://greensock.com\n *\n * @license Copyright 2008-2021, GreenSock. All rights reserved.\n * Subject to the terms at https://greensock.com/standard-license or for\n * Club GreenSock members, the agreement issued with that membership.\n * @author: Jack Doyle, jack@greensock.com\n*/\n\n/* eslint-disable */\nimport { stringToRawPath, rawPathToString, transformRawPath } from \"./utils/paths.js\";\n\nvar gsap,\n _coreInitted,\n _getGSAP = function _getGSAP() {\n return gsap || typeof window !== \"undefined\" && (gsap = window.gsap) && gsap.registerPlugin && gsap;\n},\n _initCore = function _initCore() {\n gsap = _getGSAP();\n\n if (gsap) {\n gsap.registerEase(\"_CE\", CustomEase.create);\n _coreInitted = 1;\n } else {\n console.warn(\"Please gsap.registerPlugin(CustomEase)\");\n }\n},\n _bigNum = 1e20,\n _round = function _round(value) {\n return ~~(value * 1000 + (value < 0 ? -.5 : .5)) / 1000;\n},\n _bonusValidated = 1,\n //CustomEase\n_numExp = /[-+=\\.]*\\d+[\\.e\\-\\+]*\\d*[e\\-\\+]*\\d*/gi,\n //finds any numbers, including ones that start with += or -=, negative numbers, and ones in scientific notation like 1e-8.\n_needsParsingExp = /[cLlsSaAhHvVtTqQ]/g,\n _findMinimum = function _findMinimum(values) {\n var l = values.length,\n min = _bigNum,\n i;\n\n for (i = 1; i < l; i += 6) {\n +values[i] < min && (min = +values[i]);\n }\n\n return min;\n},\n //takes all the points and translates/scales them so that the x starts at 0 and ends at 1.\n_normalize = function _normalize(values, height, originY) {\n if (!originY && originY !== 0) {\n originY = Math.max(+values[values.length - 1], +values[1]);\n }\n\n var tx = +values[0] * -1,\n ty = -originY,\n l = values.length,\n sx = 1 / (+values[l - 2] + tx),\n sy = -height || (Math.abs(+values[l - 1] - +values[1]) < 0.01 * (+values[l - 2] - +values[0]) ? _findMinimum(values) + ty : +values[l - 1] + ty),\n i;\n\n if (sy) {\n //typically y ends at 1 (so that the end values are reached)\n sy = 1 / sy;\n } else {\n //in case the ease returns to its beginning value, scale everything proportionally\n sy = -sx;\n }\n\n for (i = 0; i < l; i += 2) {\n values[i] = (+values[i] + tx) * sx;\n values[i + 1] = (+values[i + 1] + ty) * sy;\n }\n},\n //note that this function returns point objects like {x, y} rather than working with segments which are arrays with alternating x, y values as in the similar function in paths.js\n_bezierToPoints = function _bezierToPoints(x1, y1, x2, y2, x3, y3, x4, y4, threshold, points, index) {\n var x12 = (x1 + x2) / 2,\n y12 = (y1 + y2) / 2,\n x23 = (x2 + x3) / 2,\n y23 = (y2 + y3) / 2,\n x34 = (x3 + x4) / 2,\n y34 = (y3 + y4) / 2,\n x123 = (x12 + x23) / 2,\n y123 = (y12 + y23) / 2,\n x234 = (x23 + x34) / 2,\n y234 = (y23 + y34) / 2,\n x1234 = (x123 + x234) / 2,\n y1234 = (y123 + y234) / 2,\n dx = x4 - x1,\n dy = y4 - y1,\n d2 = Math.abs((x2 - x4) * dy - (y2 - y4) * dx),\n d3 = Math.abs((x3 - x4) * dy - (y3 - y4) * dx),\n length;\n\n if (!points) {\n points = [{\n x: x1,\n y: y1\n }, {\n x: x4,\n y: y4\n }];\n index = 1;\n }\n\n points.splice(index || points.length - 1, 0, {\n x: x1234,\n y: y1234\n });\n\n if ((d2 + d3) * (d2 + d3) > threshold * (dx * dx + dy * dy)) {\n length = points.length;\n\n _bezierToPoints(x1, y1, x12, y12, x123, y123, x1234, y1234, threshold, points, index);\n\n _bezierToPoints(x1234, y1234, x234, y234, x34, y34, x4, y4, threshold, points, index + 1 + (points.length - length));\n }\n\n return points;\n};\n\nexport var CustomEase = /*#__PURE__*/function () {\n function CustomEase(id, data, config) {\n _coreInitted || _initCore();\n this.id = id;\n _bonusValidated && this.setData(data, config);\n }\n\n var _proto = CustomEase.prototype;\n\n _proto.setData = function setData(data, config) {\n config = config || {};\n data = data || \"0,0,1,1\";\n var values = data.match(_numExp),\n closest = 1,\n points = [],\n lookup = [],\n precision = config.precision || 1,\n fast = precision <= 1,\n l,\n a1,\n a2,\n i,\n inc,\n j,\n point,\n prevPoint,\n p;\n this.data = data;\n\n if (_needsParsingExp.test(data) || ~data.indexOf(\"M\") && data.indexOf(\"C\") < 0) {\n values = stringToRawPath(data)[0];\n }\n\n l = values.length;\n\n if (l === 4) {\n values.unshift(0, 0);\n values.push(1, 1);\n l = 8;\n } else if ((l - 2) % 6) {\n throw \"Invalid CustomEase\";\n }\n\n if (+values[0] !== 0 || +values[l - 2] !== 1) {\n _normalize(values, config.height, config.originY);\n }\n\n this.segment = values;\n\n for (i = 2; i < l; i += 6) {\n a1 = {\n x: +values[i - 2],\n y: +values[i - 1]\n };\n a2 = {\n x: +values[i + 4],\n y: +values[i + 5]\n };\n points.push(a1, a2);\n\n _bezierToPoints(a1.x, a1.y, +values[i], +values[i + 1], +values[i + 2], +values[i + 3], a2.x, a2.y, 1 / (precision * 200000), points, points.length - 1);\n }\n\n l = points.length;\n\n for (i = 0; i < l; i++) {\n point = points[i];\n prevPoint = points[i - 1] || point;\n\n if ((point.x > prevPoint.x || prevPoint.y !== point.y && prevPoint.x === point.x || point === prevPoint) && point.x <= 1) {\n //if a point goes BACKWARD in time or is a duplicate, just drop it. Also it shouldn't go past 1 on the x axis, as could happen in a string like \"M0,0 C0,0 0.12,0.68 0.18,0.788 0.195,0.845 0.308,1 0.32,1 0.403,1.005 0.398,1 0.5,1 0.602,1 0.816,1.005 0.9,1 0.91,1 0.948,0.69 0.962,0.615 1.003,0.376 1,0 1,0\".\n prevPoint.cx = point.x - prevPoint.x; //change in x between this point and the next point (performance optimization)\n\n prevPoint.cy = point.y - prevPoint.y;\n prevPoint.n = point;\n prevPoint.nx = point.x; //next point's x value (performance optimization, making lookups faster in getRatio()). Remember, the lookup will always land on a spot where it's either this point or the very next one (never beyond that)\n\n if (fast && i > 1 && Math.abs(prevPoint.cy / prevPoint.cx - points[i - 2].cy / points[i - 2].cx) > 2) {\n //if there's a sudden change in direction, prioritize accuracy over speed. Like a bounce ease - you don't want to risk the sampling chunks landing on each side of the bounce anchor and having it clipped off.\n fast = 0;\n }\n\n if (prevPoint.cx < closest) {\n if (!prevPoint.cx) {\n prevPoint.cx = 0.001; //avoids math problems in getRatio() (dividing by zero)\n\n if (i === l - 1) {\n //in case the final segment goes vertical RIGHT at the end, make sure we end at the end.\n prevPoint.x -= 0.001;\n closest = Math.min(closest, 0.001);\n fast = 0;\n }\n } else {\n closest = prevPoint.cx;\n }\n }\n } else {\n points.splice(i--, 1);\n l--;\n }\n }\n\n l = 1 / closest + 1 | 0;\n inc = 1 / l;\n j = 0;\n point = points[0];\n\n if (fast) {\n for (i = 0; i < l; i++) {\n //for fastest lookups, we just sample along the path at equal x (time) distance. Uses more memory and is slightly less accurate for anchors that don't land on the sampling points, but for the vast majority of eases it's excellent (and fast).\n p = i * inc;\n\n if (point.nx < p) {\n point = points[++j];\n }\n\n a1 = point.y + (p - point.x) / point.cx * point.cy;\n lookup[i] = {\n x: p,\n cx: inc,\n y: a1,\n cy: 0,\n nx: 9\n };\n\n if (i) {\n lookup[i - 1].cy = a1 - lookup[i - 1].y;\n }\n }\n\n lookup[l - 1].cy = points[points.length - 1].y - a1;\n } else {\n //this option is more accurate, ensuring that EVERY anchor is hit perfectly. Clipping across a bounce, for example, would never happen.\n for (i = 0; i < l; i++) {\n //build a lookup table based on the smallest distance so that we can instantly find the appropriate point (well, it'll either be that point or the very next one). We'll look up based on the linear progress. So it's it's 0.5 and the lookup table has 100 elements, it'd be like lookup[Math.floor(0.5 * 100)]\n if (point.nx < i * inc) {\n point = points[++j];\n }\n\n lookup[i] = point;\n }\n\n if (j < points.length - 1) {\n lookup[i - 1] = points[points.length - 2];\n }\n } //this._calcEnd = (points[points.length-1].y !== 1 || points[0].y !== 0); //ensures that we don't run into floating point errors. As long as we're starting at 0 and ending at 1, tell GSAP to skip the final calculation and use 0/1 as the factor.\n\n\n this.ease = function (p) {\n var point = lookup[p * l | 0] || lookup[l - 1];\n\n if (point.nx < p) {\n point = point.n;\n }\n\n return point.y + (p - point.x) / point.cx * point.cy;\n };\n\n this.ease.custom = this;\n this.id && gsap.registerEase(this.id, this.ease);\n return this;\n };\n\n _proto.getSVGData = function getSVGData(config) {\n return CustomEase.getSVGData(this, config);\n };\n\n CustomEase.create = function create(id, data, config) {\n return new CustomEase(id, data, config).ease;\n };\n\n CustomEase.register = function register(core) {\n gsap = core;\n\n _initCore();\n };\n\n CustomEase.get = function get(id) {\n return gsap.parseEase(id);\n };\n\n CustomEase.getSVGData = function getSVGData(ease, config) {\n config = config || {};\n var width = config.width || 100,\n height = config.height || 100,\n x = config.x || 0,\n y = (config.y || 0) + height,\n e = gsap.utils.toArray(config.path)[0],\n a,\n slope,\n i,\n inc,\n tx,\n ty,\n precision,\n threshold,\n prevX,\n prevY;\n\n if (config.invert) {\n height = -height;\n y = 0;\n }\n\n if (typeof ease === \"string\") {\n ease = gsap.parseEase(ease);\n }\n\n if (ease.custom) {\n ease = ease.custom;\n }\n\n if (ease instanceof CustomEase) {\n a = rawPathToString(transformRawPath([ease.segment], width, 0, 0, -height, x, y));\n } else {\n a = [x, y];\n precision = Math.max(5, (config.precision || 1) * 200);\n inc = 1 / precision;\n precision += 2;\n threshold = 5 / precision;\n prevX = _round(x + inc * width);\n prevY = _round(y + ease(inc) * -height);\n slope = (prevY - y) / (prevX - x);\n\n for (i = 2; i < precision; i++) {\n tx = _round(x + i * inc * width);\n ty = _round(y + ease(i * inc) * -height);\n\n if (Math.abs((ty - prevY) / (tx - prevX) - slope) > threshold || i === precision - 1) {\n //only add points when the slope changes beyond the threshold\n a.push(prevX, prevY);\n slope = (ty - prevY) / (tx - prevX);\n }\n\n prevX = tx;\n prevY = ty;\n }\n\n a = \"M\" + a.join(\",\");\n }\n\n e && e.setAttribute(\"d\", a);\n return a;\n };\n\n return CustomEase;\n}();\n_getGSAP() && gsap.registerPlugin(CustomEase);\nCustomEase.version = \"3.6.1\";\nexport { CustomEase as default };","/*!\n * ScrollToPlugin 3.6.1\n * https://greensock.com\n *\n * @license Copyright 2008-2021, GreenSock. All rights reserved.\n * Subject to the terms at https://greensock.com/standard-license or for\n * Club GreenSock members, the agreement issued with that membership.\n * @author: Jack Doyle, jack@greensock.com\n*/\n\n/* eslint-disable */\nvar gsap,\n _coreInitted,\n _window,\n _docEl,\n _body,\n _toArray,\n _config,\n _windowExists = function _windowExists() {\n return typeof window !== \"undefined\";\n},\n _getGSAP = function _getGSAP() {\n return gsap || _windowExists() && (gsap = window.gsap) && gsap.registerPlugin && gsap;\n},\n _isString = function _isString(value) {\n return typeof value === \"string\";\n},\n _isFunction = function _isFunction(value) {\n return typeof value === \"function\";\n},\n _max = function _max(element, axis) {\n var dim = axis === \"x\" ? \"Width\" : \"Height\",\n scroll = \"scroll\" + dim,\n client = \"client\" + dim;\n return element === _window || element === _docEl || element === _body ? Math.max(_docEl[scroll], _body[scroll]) - (_window[\"inner\" + dim] || _docEl[client] || _body[client]) : element[scroll] - element[\"offset\" + dim];\n},\n _buildGetter = function _buildGetter(e, axis) {\n //pass in an element and an axis (\"x\" or \"y\") and it'll return a getter function for the scroll position of that element (like scrollTop or scrollLeft, although if the element is the window, it'll use the pageXOffset/pageYOffset or the documentElement's scrollTop/scrollLeft or document.body's. Basically this streamlines things and makes a very fast getter across browsers.\n var p = \"scroll\" + (axis === \"x\" ? \"Left\" : \"Top\");\n\n if (e === _window) {\n if (e.pageXOffset != null) {\n p = \"page\" + axis.toUpperCase() + \"Offset\";\n } else {\n e = _docEl[p] != null ? _docEl : _body;\n }\n }\n\n return function () {\n return e[p];\n };\n},\n _clean = function _clean(value, index, target, targets) {\n _isFunction(value) && (value = value(index, target, targets));\n\n if (typeof value !== \"object\") {\n return _isString(value) && value !== \"max\" && value.charAt(1) !== \"=\" ? {\n x: value,\n y: value\n } : {\n y: value\n }; //if we don't receive an object as the parameter, assume the user intends \"y\".\n } else if (value.nodeType) {\n return {\n y: value,\n x: value\n };\n } else {\n var result = {},\n p;\n\n for (p in value) {\n result[p] = p !== \"onAutoKill\" && _isFunction(value[p]) ? value[p](index, target, targets) : value[p];\n }\n\n return result;\n }\n},\n _getOffset = function _getOffset(element, container) {\n element = _toArray(element)[0];\n\n if (!element || !element.getBoundingClientRect) {\n return console.warn(\"scrollTo target doesn't exist. Using 0\") || {\n x: 0,\n y: 0\n };\n }\n\n var rect = element.getBoundingClientRect(),\n isRoot = !container || container === _window || container === _body,\n cRect = isRoot ? {\n top: _docEl.clientTop - (_window.pageYOffset || _docEl.scrollTop || _body.scrollTop || 0),\n left: _docEl.clientLeft - (_window.pageXOffset || _docEl.scrollLeft || _body.scrollLeft || 0)\n } : container.getBoundingClientRect(),\n offsets = {\n x: rect.left - cRect.left,\n y: rect.top - cRect.top\n };\n\n if (!isRoot && container) {\n //only add the current scroll position if it's not the window/body.\n offsets.x += _buildGetter(container, \"x\")();\n offsets.y += _buildGetter(container, \"y\")();\n }\n\n return offsets;\n},\n _parseVal = function _parseVal(value, target, axis, currentVal, offset) {\n return !isNaN(value) && typeof value !== \"object\" ? parseFloat(value) - offset : _isString(value) && value.charAt(1) === \"=\" ? parseFloat(value.substr(2)) * (value.charAt(0) === \"-\" ? -1 : 1) + currentVal - offset : value === \"max\" ? _max(target, axis) - offset : Math.min(_max(target, axis), _getOffset(value, target)[axis] - offset);\n},\n _initCore = function _initCore() {\n gsap = _getGSAP();\n\n if (_windowExists() && gsap && document.body) {\n _window = window;\n _body = document.body;\n _docEl = document.documentElement;\n _toArray = gsap.utils.toArray;\n gsap.config({\n autoKillThreshold: 7\n });\n _config = gsap.config();\n _coreInitted = 1;\n }\n};\n\nexport var ScrollToPlugin = {\n version: \"3.6.1\",\n name: \"scrollTo\",\n rawVars: 1,\n register: function register(core) {\n gsap = core;\n\n _initCore();\n },\n init: function init(target, value, tween, index, targets) {\n _coreInitted || _initCore();\n var data = this;\n data.isWin = target === _window;\n data.target = target;\n data.tween = tween;\n value = _clean(value, index, target, targets);\n data.vars = value;\n data.autoKill = !!value.autoKill;\n data.getX = _buildGetter(target, \"x\");\n data.getY = _buildGetter(target, \"y\");\n data.x = data.xPrev = data.getX();\n data.y = data.yPrev = data.getY();\n\n if (value.x != null) {\n data.add(data, \"x\", data.x, _parseVal(value.x, target, \"x\", data.x, value.offsetX || 0), index, targets);\n\n data._props.push(\"scrollTo_x\");\n } else {\n data.skipX = 1;\n }\n\n if (value.y != null) {\n data.add(data, \"y\", data.y, _parseVal(value.y, target, \"y\", data.y, value.offsetY || 0), index, targets);\n\n data._props.push(\"scrollTo_y\");\n } else {\n data.skipY = 1;\n }\n },\n render: function render(ratio, data) {\n var pt = data._pt,\n target = data.target,\n tween = data.tween,\n autoKill = data.autoKill,\n xPrev = data.xPrev,\n yPrev = data.yPrev,\n isWin = data.isWin,\n x,\n y,\n yDif,\n xDif,\n threshold;\n\n while (pt) {\n pt.r(ratio, pt.d);\n pt = pt._next;\n }\n\n x = isWin || !data.skipX ? data.getX() : xPrev;\n y = isWin || !data.skipY ? data.getY() : yPrev;\n yDif = y - yPrev;\n xDif = x - xPrev;\n threshold = _config.autoKillThreshold;\n\n if (data.x < 0) {\n //can't scroll to a position less than 0! Might happen if someone uses a Back.easeOut or Elastic.easeOut when scrolling back to the top of the page (for example)\n data.x = 0;\n }\n\n if (data.y < 0) {\n data.y = 0;\n }\n\n if (autoKill) {\n //note: iOS has a bug that throws off the scroll by several pixels, so we need to check if it's within 7 pixels of the previous one that we set instead of just looking for an exact match.\n if (!data.skipX && (xDif > threshold || xDif < -threshold) && x < _max(target, \"x\")) {\n data.skipX = 1; //if the user scrolls separately, we should stop tweening!\n }\n\n if (!data.skipY && (yDif > threshold || yDif < -threshold) && y < _max(target, \"y\")) {\n data.skipY = 1; //if the user scrolls separately, we should stop tweening!\n }\n\n if (data.skipX && data.skipY) {\n tween.kill();\n data.vars.onAutoKill && data.vars.onAutoKill.apply(tween, data.vars.onAutoKillParams || []);\n }\n }\n\n if (isWin) {\n _window.scrollTo(!data.skipX ? data.x : x, !data.skipY ? data.y : y);\n } else {\n data.skipY || (target.scrollTop = data.y);\n data.skipX || (target.scrollLeft = data.x);\n }\n\n data.xPrev = data.x;\n data.yPrev = data.y;\n },\n kill: function kill(property) {\n var both = property === \"scrollTo\";\n\n if (both || property === \"scrollTo_x\") {\n this.skipX = 1;\n }\n\n if (both || property === \"scrollTo_y\") {\n this.skipY = 1;\n }\n }\n};\nScrollToPlugin.max = _max;\nScrollToPlugin.getOffset = _getOffset;\nScrollToPlugin.buildGetter = _buildGetter;\n_getGSAP() && gsap.registerPlugin(ScrollToPlugin);\nexport { ScrollToPlugin as default };","// import React from 'react'\nimport { gsap } from \"gsap\"\nimport { CustomEase } from \"gsap/CustomEase\"\nimport { ScrollToPlugin } from \"gsap/ScrollToPlugin\"\n// import browser from 'browser-detect'\n\ngsap.registerPlugin(CustomEase)\ngsap.registerPlugin(ScrollToPlugin)\nlet customEase = CustomEase.create(\"custom\", \"M0,0 C0.356,-0.002 0.298,0.608 0.4,0.8 0.506,1 0.764,1 1,1\")\n\n// Hook\nfunction SmoothScroll(targetId:string, offset = 100)\n{\n // const { mobile } = browser()\n // let spOffset = 0\n // if( mobile ){\n // spOffset = 64\n // }\n\n if(!targetId) return\n\n let t = document.getElementById(targetId.replace( /#/g , '' ))\n let header = document.getElementById('header')\n if(!header) return\n const h = header.getBoundingClientRect().height\n if( t ){\n let y = t.getBoundingClientRect().top - h - 16 + window.scrollY\n y = y < 0 ? 0 : y\n \n gsap.to(window,{\n duration: 0.6,\n scrollTo: 0,\n ease: customEase,\n })\n }\n}\n\nexport { SmoothScroll }","\nimport { globalHistory } from '@reach/router'\nimport { Link, navigate } from 'gatsby-link'\nimport { useRecoilState, useRecoilValue, } from \"recoil\"\nimport { LanguageState } from \"../../status/LanguageState\"\nimport { ModalMenuState } from \"../../status/ModalMenuState\"\nimport { SmoothScroll } from \"../../utility/smoothScroll\"\nimport { useTransition } from \"../layouts/TransitionLayout\"\n// import { useRecoilState, useRecoilValue, useSetRecoilState } from 'recoil'\n// import { modalMenuState } from '@states/modal-menu-state'\n\n// import { useStore } from '@hooks/useStore'\nconst MyLink = ({\n\tchildren,\n\tto,\n\tblank,\n\tscroll,\n\tonClick,\n\tisStopPropagation,\n\t...other\n}: {\n\tclassName?: string\n\tchildren: any\n\tto: string\n\tblank?: boolean\n\tscroll?: string\n\tonClick?: any\n\tisStopPropagation?: boolean\n}) => {\n\tconst language = useRecoilValue(LanguageState)\n\tconst [isModalMenu, setIsModalMenu] = useRecoilState(ModalMenuState)\n\tconst { transitionState, setTranstionState, duration } = useTransition() as any\n\n\tlet isInternal = /^\\/(?!\\/)/.test(to)\n\tconst isHash = /^(!?#)/.test(to)\n\tlet languageTo = `${language === \"ja\" ? \"\" : \"/en\"}${to}`\n\tlanguageTo = languageTo.replace(/-en$/g,\"\")\n\t// const { appStore } = useStore()\n\n\tif (isHash || scroll) {\n\t\tisInternal = true\n\t}\n\n\tconst { location } = globalHistory\n\n\tconst onClickHandler = (e:any) => {\n\t\tisStopPropagation && e.stopPropagation()\n\t\te.preventDefault()\n\t\tif( transitionState !== 0){ return }\n\n\t\tif ( (location.pathname === languageTo) || (location.pathname === `${languageTo}/`) || !languageTo) {\n\t\t\tif (scroll) {\n\t\t\t\t// console.log(scroll)\n\t\t\t\tonClick && onClick()\n\t\t\t\tSmoothScroll(scroll)\n\t\t\t} else {\n\t\t\t\tonClick && onClick()\n\t\t\t\tSmoothScroll('#root')\n\t\t\t}\n\t\t\treturn\n\t\t} else {\n\n\t\t\tonClick && onClick()\n\t\t\tsetTranstionState(1)\n\t\t\tif( isModalMenu === true){\n\t\t\t\tsetIsModalMenu(false)\n\t\t\t}\n\t\t\tsetTimeout(() => {\n\n\t\t\t\tif( language !== \"en\" && languageTo.match(/\\/en\\//g) ){\n\t\t\t\t\tconsole.log(\"href========>\")\n\t\t\t\t\twindow.location.href = languageTo\n\t\t\t\t} else {\n\t\t\t\t\tconsole.log(\"nav========>\")\n\t\t\t\t\tnavigate(languageTo)\n\t\t\t\t}\n\t\t\t\tif (scroll) {\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tSmoothScroll(scroll)\n\t\t\t\t\t}, 1000)\n\t\t\t\t}\n\t\t\t}, 1 * 1000)\n\t\t}\n\t}\n\n\t// useEffect(()=>{\n\t// })\n\t\n\treturn (\n\t\t<>\n\t\t{ isInternal ?\n\t\t\t\t\n\t\t\t\t\t{children}\n\t\t\t\t\n\t\t\t:\n\t\t\t\t\n\t\t\t\t\t{children}\n\t\t\t\t\n\t\t}\n\t\t\n\t)\n}\n\nconst MyNavigate = (path:string) => {\n\t// let modalMenuValue = useRecoilValue(modalMenuState)\n\tconst { transitionState, setTranstionState, duration } = useTransition() as any\n\tsetTranstionState(1)\n\tconsole.log(path)\n\tnavigate(path)\n}\n\nexport { MyLink, MyNavigate }","import * as React from \"react\"\nimport Svg from \"/src/assets/images/common__icn__enter.svg\"\n\ninterface Props {\n width?: number\n height?: number\n}\n\nexport default function EnterIcon({width, height}:Props){\n return(\n \n )\n}","import * as React from \"react\"\nimport Svg from \"/src/assets/images/common__icn__instagram.svg\"\n\ninterface Props {\n width?: number\n height?: number\n}\n\nexport default function Instagram({width, height}:Props){\n return(\n \n )\n}","import * as React from \"react\"\nimport Svg from \"/src/assets/images/common__icn__twitter.svg\"\n\ninterface Props {\n width?: number\n height?: number\n}\n\nexport default function Twitter({width, height}:Props){\n return(\n \n )\n}","import * as React from \"react\"\nimport Svg from \"/src/assets/images/common__logo__main.svg\"\n\ninterface Props {\n w?: number\n h?: number\n viewBox?: string\n}\n\nexport default function MainLogo({w,h, viewBox}:Props){\n return(\n \n )\n}","import { lt } from \"../parts/LanguageText\"\n\ntype menuUrls = {\n label: string\n en_label?: string\n to: string,\n blank?: boolean,\n}\n\nexport const urlMenuList:menuUrls[] = [\n {\n label: \"NEWS\",\n to: \"/news/\"\n },{\n label: \"BIOGRAPHY\",\n to: \"/biography/\"\n },{\n label: \"CONTACT\",\n to: \"/contact/\"\n },{\n label: \"SHOP\",\n to: \"https://ssj-shop.net\",\n blank: true,\n },{\n label: \"FANCLUB\",\n to: \"login\"\n }\n]\n\nexport const urlFooterMenuList = () => [\n {\n label: lt(\"footer_nav_01\"),\n to: \"/about/\"\n },{\n label: lt(\"footer_nav_02\"),\n to: \"/contact/\"\n },{\n label: lt(\"footer_nav_03\"),\n to: `${process.env.GATSBY_MODD_URL_PRIVACY}`\n }\n]\n\n\nexport const urlModalMenuFooterMenuList = () => [\n {\n label: lt(\"footer_nav_01\"),\n to: \"/about/\"\n },\n // {\n // label: lt(\"footer_nav_02\"),\n // to: \"/contact/\"\n // },\n {\n label: lt(\"footer_nav_03\"),\n to: `${process.env.GATSBY_MODD_URL_PRIVACY}`\n }\n]\n\nexport const urlFcMenuList:menuUrls[] = [\n {\n label: \"TOPICS\",\n to: \"/member/topics\"\n },{\n label: \"PRIVATE\",\n to: \"/member/private\"\n },{\n label: \"ALBUM\",\n to: \"/member/album\"\n },{\n label: \"MOVIE\",\n to: \"/member/movie\"\n },{\n label: \"REPORT\",\n to: \"/member/report\"\n },{\n label: \"TICKET\",\n to: \"/member/ticket\"\n },{\n label: \"MEMBER ID\",\n to: \"/member/account/memberid\"\n },{\n label: \"DOWNLOAD\",\n to: \"/member/download\",\n },{\n label: \"LETTER\",\n to: \"/member/letter\"\n },{\n label: \"SHOP\",\n to: \"https://ssj-shop.net\",\n blank: true,\n },{\n label: \"LOGOUT\",\n to: \"logout\"\n }\n]\n\nexport const urlFcFooterMenuList = () => [\n {\n label: lt(\"footer_fc_nav_01\"),\n to: `${process.env.GATSBY_MODD_URL_TERM}`\n },{\n label: lt(\"footer_fc_nav_02\"),\n to: `${process.env.GATSBY_MODD_URL_HELP}`\n },{\n label: lt(\"footer_fc_nav_03\"),\n to: \"/contact/\"\n },{\n label: lt(\"footer_fc_nav_04\"),\n to: `${process.env.GATSBY_MODD_URL_PRIVACY}`\n },{\n label: lt(\"footer_fc_nav_05\"),\n to: `${process.env.GATSBY_MODD_URL_TOKUTEI}`\n }\n]\n\nexport const urlFcModalMenuFooterMenuList = () => [\n {\n label: lt(\"footer_fc_nav_01\"),\n to: `${process.env.GATSBY_MODD_URL_TERM}`\n },{\n label: lt(\"footer_fc_nav_02\"),\n to: `${process.env.GATSBY_MODD_URL_HELP}`\n },{\n label: lt(\"footer_fc_nav_03\"),\n to: \"/contact/\"\n },{\n label: lt(\"footer_fc_nav_04\"),\n to: `${process.env.GATSBY_MODD_URL_PRIVACY}`\n },{\n label: lt(\"footer_fc_nav_05\"),\n to: `${process.env.GATSBY_MODD_URL_TOKUTEI}`\n }\n]\n\n\nexport const urlSns = {\n twitter: `${process.env.GATSBY_SNS_URL_TWITTER}`,\n instagram: `${process.env.GATSBY_SNS_URL_INSTAGRAM}`,\n}\n","import { useRef } from 'react';\nimport { useIsomorphicLayoutEffect } from './use-isomorphic-effect.mjs';\n\nfunction useIsMounted() {\n const isMounted = useRef(false);\n useIsomorphicLayoutEffect(() => {\n isMounted.current = true;\n return () => {\n isMounted.current = false;\n };\n }, []);\n return isMounted;\n}\n\nexport { useIsMounted };\n","import * as React from 'react';\nimport { useId, useRef, useInsertionEffect } from 'react';\n\n/**\n * Measurement functionality has to be within a separate component\n * to leverage snapshot lifecycle.\n */\nclass PopChildMeasure extends React.Component {\n getSnapshotBeforeUpdate(prevProps) {\n const element = this.props.childRef.current;\n if (element && prevProps.isPresent && !this.props.isPresent) {\n const size = this.props.sizeRef.current;\n size.height = element.offsetHeight || 0;\n size.width = element.offsetWidth || 0;\n size.top = element.offsetTop;\n size.left = element.offsetLeft;\n }\n return null;\n }\n /**\n * Required with getSnapshotBeforeUpdate to stop React complaining.\n */\n componentDidUpdate() { }\n render() {\n return this.props.children;\n }\n}\nfunction PopChild({ children, isPresent }) {\n const id = useId();\n const ref = useRef(null);\n const size = useRef({\n width: 0,\n height: 0,\n top: 0,\n left: 0,\n });\n /**\n * We create and inject a style block so we can apply this explicit\n * sizing in a non-destructive manner by just deleting the style block.\n *\n * We can't apply size via render as the measurement happens\n * in getSnapshotBeforeUpdate (post-render), likewise if we apply the\n * styles directly on the DOM node, we might be overwriting\n * styles set via the style prop.\n */\n useInsertionEffect(() => {\n const { width, height, top, left } = size.current;\n if (isPresent || !ref.current || !width || !height)\n return;\n ref.current.dataset.motionPopId = id;\n const style = document.createElement(\"style\");\n document.head.appendChild(style);\n if (style.sheet) {\n style.sheet.insertRule(`\n [data-motion-pop-id=\"${id}\"] {\n position: absolute !important;\n width: ${width}px !important;\n height: ${height}px !important;\n top: ${top}px !important;\n left: ${left}px !important;\n }\n `);\n }\n return () => {\n document.head.removeChild(style);\n };\n }, [isPresent]);\n return (React.createElement(PopChildMeasure, { isPresent: isPresent, childRef: ref, sizeRef: size }, React.cloneElement(children, { ref })));\n}\n\nexport { PopChild };\n","import * as React from 'react';\nimport { useId, useMemo } from 'react';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\nimport { useConstant } from '../../utils/use-constant.mjs';\nimport { PopChild } from './PopChild.mjs';\n\nconst PresenceChild = ({ children, initial, isPresent, onExitComplete, custom, presenceAffectsLayout, mode, }) => {\n const presenceChildren = useConstant(newChildrenMap);\n const id = useId();\n const context = useMemo(() => ({\n id,\n initial,\n isPresent,\n custom,\n onExitComplete: (childId) => {\n presenceChildren.set(childId, true);\n for (const isComplete of presenceChildren.values()) {\n if (!isComplete)\n return; // can stop searching when any is incomplete\n }\n onExitComplete && onExitComplete();\n },\n register: (childId) => {\n presenceChildren.set(childId, false);\n return () => presenceChildren.delete(childId);\n },\n }), \n /**\n * If the presence of a child affects the layout of the components around it,\n * we want to make a new context value to ensure they get re-rendered\n * so they can detect that layout change.\n */\n presenceAffectsLayout ? undefined : [isPresent]);\n useMemo(() => {\n presenceChildren.forEach((_, key) => presenceChildren.set(key, false));\n }, [isPresent]);\n /**\n * If there's no `motion` components to fire exit animations, we want to remove this\n * component immediately.\n */\n React.useEffect(() => {\n !isPresent &&\n !presenceChildren.size &&\n onExitComplete &&\n onExitComplete();\n }, [isPresent]);\n if (mode === \"popLayout\") {\n children = React.createElement(PopChild, { isPresent: isPresent }, children);\n }\n return (React.createElement(PresenceContext.Provider, { value: context }, children));\n};\nfunction newChildrenMap() {\n return new Map();\n}\n\nexport { PresenceChild };\n","import * as React from 'react';\nimport { useContext, useRef, cloneElement, Children, isValidElement } from 'react';\nimport { useForceUpdate } from '../../utils/use-force-update.mjs';\nimport { useIsMounted } from '../../utils/use-is-mounted.mjs';\nimport { PresenceChild } from './PresenceChild.mjs';\nimport { LayoutGroupContext } from '../../context/LayoutGroupContext.mjs';\nimport { useIsomorphicLayoutEffect } from '../../utils/use-isomorphic-effect.mjs';\nimport { useUnmountEffect } from '../../utils/use-unmount-effect.mjs';\nimport { invariant } from '../../utils/errors.mjs';\n\nconst getChildKey = (child) => child.key || \"\";\nfunction updateChildLookup(children, allChildren) {\n children.forEach((child) => {\n const key = getChildKey(child);\n allChildren.set(key, child);\n });\n}\nfunction onlyElements(children) {\n const filtered = [];\n // We use forEach here instead of map as map mutates the component key by preprending `.$`\n Children.forEach(children, (child) => {\n if (isValidElement(child))\n filtered.push(child);\n });\n return filtered;\n}\n/**\n * `AnimatePresence` enables the animation of components that have been removed from the tree.\n *\n * When adding/removing more than a single child, every child **must** be given a unique `key` prop.\n *\n * Any `motion` components that have an `exit` property defined will animate out when removed from\n * the tree.\n *\n * ```jsx\n * import { motion, AnimatePresence } from 'framer-motion'\n *\n * export const Items = ({ items }) => (\n * \n * {items.map(item => (\n * \n * ))}\n * \n * )\n * ```\n *\n * You can sequence exit animations throughout a tree using variants.\n *\n * If a child contains multiple `motion` components with `exit` props, it will only unmount the child\n * once all `motion` components have finished animating out. Likewise, any components using\n * `usePresence` all need to call `safeToRemove`.\n *\n * @public\n */\nconst AnimatePresence = ({ children, custom, initial = true, onExitComplete, exitBeforeEnter, presenceAffectsLayout = true, mode = \"sync\", }) => {\n invariant(!exitBeforeEnter, \"Replace exitBeforeEnter with mode='wait'\");\n // We want to force a re-render once all exiting animations have finished. We\n // either use a local forceRender function, or one from a parent context if it exists.\n const forceRender = useContext(LayoutGroupContext).forceRender || useForceUpdate()[0];\n const isMounted = useIsMounted();\n // Filter out any children that aren't ReactElements. We can only track ReactElements with a props.key\n const filteredChildren = onlyElements(children);\n let childrenToRender = filteredChildren;\n const exitingChildren = useRef(new Map()).current;\n // Keep a living record of the children we're actually rendering so we\n // can diff to figure out which are entering and exiting\n const presentChildren = useRef(childrenToRender);\n // A lookup table to quickly reference components by key\n const allChildren = useRef(new Map()).current;\n // If this is the initial component render, just deal with logic surrounding whether\n // we play onMount animations or not.\n const isInitialRender = useRef(true);\n useIsomorphicLayoutEffect(() => {\n isInitialRender.current = false;\n updateChildLookup(filteredChildren, allChildren);\n presentChildren.current = childrenToRender;\n });\n useUnmountEffect(() => {\n isInitialRender.current = true;\n allChildren.clear();\n exitingChildren.clear();\n });\n if (isInitialRender.current) {\n return (React.createElement(React.Fragment, null, childrenToRender.map((child) => (React.createElement(PresenceChild, { key: getChildKey(child), isPresent: true, initial: initial ? undefined : false, presenceAffectsLayout: presenceAffectsLayout, mode: mode }, child)))));\n }\n // If this is a subsequent render, deal with entering and exiting children\n childrenToRender = [...childrenToRender];\n // Diff the keys of the currently-present and target children to update our\n // exiting list.\n const presentKeys = presentChildren.current.map(getChildKey);\n const targetKeys = filteredChildren.map(getChildKey);\n // Diff the present children with our target children and mark those that are exiting\n const numPresent = presentKeys.length;\n for (let i = 0; i < numPresent; i++) {\n const key = presentKeys[i];\n if (targetKeys.indexOf(key) === -1 && !exitingChildren.has(key)) {\n exitingChildren.set(key, undefined);\n }\n }\n // If we currently have exiting children, and we're deferring rendering incoming children\n // until after all current children have exiting, empty the childrenToRender array\n if (mode === \"wait\" && exitingChildren.size) {\n childrenToRender = [];\n }\n // Loop through all currently exiting components and clone them to overwrite `animate`\n // with any `exit` prop they might have defined.\n exitingChildren.forEach((component, key) => {\n // If this component is actually entering again, early return\n if (targetKeys.indexOf(key) !== -1)\n return;\n const child = allChildren.get(key);\n if (!child)\n return;\n const insertionIndex = presentKeys.indexOf(key);\n let exitingComponent = component;\n if (!exitingComponent) {\n const onExit = () => {\n allChildren.delete(key);\n exitingChildren.delete(key);\n // Remove this child from the present children\n const removeIndex = presentChildren.current.findIndex((presentChild) => presentChild.key === key);\n presentChildren.current.splice(removeIndex, 1);\n // Defer re-rendering until all exiting children have indeed left\n if (!exitingChildren.size) {\n presentChildren.current = filteredChildren;\n if (isMounted.current === false)\n return;\n forceRender();\n onExitComplete && onExitComplete();\n }\n };\n exitingComponent = (React.createElement(PresenceChild, { key: getChildKey(child), isPresent: false, onExitComplete: onExit, custom: custom, presenceAffectsLayout: presenceAffectsLayout, mode: mode }, child));\n exitingChildren.set(key, exitingComponent);\n }\n childrenToRender.splice(insertionIndex, 0, exitingComponent);\n });\n // Add `MotionContext` even to children that don't need it to ensure we're rendering\n // the same tree between renders\n childrenToRender = childrenToRender.map((child) => {\n const key = child.key;\n return exitingChildren.has(key) ? (child) : (React.createElement(PresenceChild, { key: getChildKey(child), isPresent: true, presenceAffectsLayout: presenceAffectsLayout, mode: mode }, child));\n });\n if (process.env.NODE_ENV !== \"production\" &&\n mode === \"wait\" &&\n childrenToRender.length > 1) {\n console.warn(`You're attempting to animate multiple children within AnimatePresence, but its mode is set to \"wait\". This will lead to odd visual behaviour.`);\n }\n return (React.createElement(React.Fragment, null, exitingChildren.size\n ? childrenToRender\n : childrenToRender.map((child) => cloneElement(child))));\n};\n\nexport { AnimatePresence };\n","import { useState, useCallback } from 'react';\nimport { useIsMounted } from './use-is-mounted.mjs';\nimport { frame } from '../frameloop/frame.mjs';\n\nfunction useForceUpdate() {\n const isMounted = useIsMounted();\n const [forcedRenderCount, setForcedRenderCount] = useState(0);\n const forceRender = useCallback(() => {\n isMounted.current && setForcedRenderCount(forcedRenderCount + 1);\n }, [forcedRenderCount]);\n /**\n * Defer this to the end of the next animation frame in case there are multiple\n * synchronous calls.\n */\n const deferredForceRender = useCallback(() => frame.postRender(forceRender), [forceRender]);\n return [deferredForceRender, forcedRenderCount];\n}\n\nexport { useForceUpdate };\n","import { useEffect } from 'react';\n\nfunction useUnmountEffect(callback) {\n return useEffect(() => () => callback(), []);\n}\n\nexport { useUnmountEffect };\n","import { navigate } from \"gatsby-link\"\nimport { useLayoutEffect, useState } from \"react\"\nimport { Cookies } from \"react-cookie\"\nimport { useRecoilState, useRecoilValue } from \"recoil\"\nimport { checkLogin, isBrowser, logout } from \"../services/auth\"\nimport { LanguageState } from \"../status/LanguageState\"\nimport { userLoginState } from \"../status/UserState\"\nimport { clickLoginHandler, } from \"../utility/LoginHandler\"\n\nconst useLogin = () => {\n\tconst cookies = new Cookies()\n\tconst language = useRecoilValue(LanguageState)\n const [userLogin, setUserLogin] = useRecoilState(userLoginState)\n // const [pageState, setPageState] = useRecoilState(PageState)\n const [checked, setChecked] = useState(0)\n // const [transitionState, setTranstionState] = useState(3)\n useLayoutEffect(() => {\n\tif (location.pathname === \"/error/\"){\n\t\tsetChecked(-3)\n\t\treturn\n\t}\n\tif (location.pathname === \"/404/\" || location.pathname === \"/500/\") {\n\t\tsetChecked(-3)\n\t\treturn\n\t}\n\tif( location.pathname.match(/\\/connect/g) || location.pathname.match(/\\/member/g) ){\n\t checkLogin({\n\t\t successCallback: () => {\n\t\t\t\tconsole.log(\"useLogin=>\",location.pathname)\n\t\t\t\tif ( location.pathname.match(/\\/connect/g) ) {\n\t\t\t\t\tif ( typeof window !== \"undefined\" ) {\n\t\t\t\t\t\tconst redirect_url = cookies.get(\"connect_redirect\")\n\t\t\t\t\t\tcookies.remove(\"connect_redirect\")\n\t\t\t\t\t\tif( redirect_url ){\n\t\t\t\t\t\t\tnavigate(redirect_url)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\twindow.location.href = `${language === \"en\" ? \"/en\" : \"\" }/member/`\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tsetChecked(1)\n\t\t\t\tsetUserLogin(true)\n\t\t },\n\t\t cancelCallback: () => {\n\t\t\t setChecked(-1)\n\t\t\t // if (isBrowser()) {\n\t\t\t // if (location.pathname !== \"/404/\") {\n\t\t\t // window.location.href = \"/404/\"\n\t\t\t // }\n\t\t\t // }\n\t\t },\n\t\t errorCallback: (error) => {\n\t\t\t console.log(\"api error\",error)\n\t\t\t setChecked(-2)\n\t\t\t logout({callback:()=>{}})\n\t\t\t if (isBrowser()) {\n\t\t\t\tif( error === \"Error: 999\" || error === \"Error: -1\" || error === \"Error: -2\"){\n\t\t\t\t\twindow.location.href = \"/500/\"\n\t\t\t\t} else\n\t\t\t\tif (error === \"Error: 110\" || error === \"Error: 120\" || error === \"Error: 121\" ){\n\t\t\t\t\tconsole.log(\"api error\", 'dead api server')\n\t\t\t\t\twindow.location.href = \"/500/\"\n\t\t\t\t} else {\n\t\t\t\t\t//auto login\n\t\t\t\t\t clickLoginHandler()\n\t\t\t\t}\n\t\t\t }\n\t\t }\n\t })\n\t}\n }, [])\n}\n\nexport { useLogin }","import * as React from \"react\"\n// import Logo from \"../../assets/images/common__header__logo.svg\"\nimport { urlFcFooterMenuList, urlFooterMenuList, urlSns } from \"../functional/urls\"\nimport clsx from \"clsx\"\nimport { Instagram, Twitter } from \"react-feather\"\nimport SNsLinks from \"../parts/SnsLinks\"\nimport { MyLink } from \"../elements/Link\"\nimport { globalHistory } from '@reach/router'\nimport { useRecoilValue } from \"recoil\"\nimport { LanguageState } from \"../../status/LanguageState\"\nimport { lt } from \"../parts/LanguageText\"\n\n\ninterface Props {\n}\n\nexport default function Footer({}:Props)\n{\n\tconst language = useRecoilValue(LanguageState)\n\tconst { pathname } = globalHistory.location\n\tlet footerMenuList = pathname.match(/member/g) ? urlFcFooterMenuList() : urlFooterMenuList()\n\tconst isMember = pathname.match(/\\/member/g)\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t\t{ isMember &&

\n\t\t\t\t\t{lt(\"footer_txt_01\")}\n\t\t\t\t

}\n\t\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t \n\t\t\t\t\t© {new Date().getFullYear()} {`${process.env.GATSBY_COPYRIGHT}`}\n\t\t\t\t
\n\t\t\t
\n\t\t\n\t)\n}","import * as React from \"react\"\nimport Svg from \"/src/assets/images/common__icn__translate.svg\"\n\ninterface Props {\n width?: number\n height?: number\n}\n\nexport default function TranslateIcon({width, height}:Props){\n return(\n \n )\n}","\nimport clsx from \"clsx\"\nimport { useLocalStorage } from \"usehooks-ts\"\nimport TranslateIcon from \"../icons/TranslateIcon\"\nimport { useEffect, useState } from \"react\"\nimport { useRecoilState } from \"recoil\"\nimport { LanguageState } from \"../../../status/LanguageState\"\nimport { useLocation } from \"@reach/router\"\nimport { navigate } from \"gatsby-link\"\nimport { useTransition } from \"../../layouts/TransitionLayout\"\n\ninterface Props {\n className?: string\n}\n\nexport default function SwitchLanguageButton({\n className\n}:Props){\n const { pathname } = useLocation()\n const [language, setLanguage] = useRecoilState(LanguageState)\n const { transitionState, setTranstionState, duration } = useTransition() as any\n // const [currentLang, setCurrentLang] = useState<\"ja\"|\"en\">(\"ja\")\n const onClickHandler = () => {\n if( transitionState !== 0){ return }\n setTranstionState(1)\n setTimeout(() => {\n setLanguage(language === \"ja\" ? \"en\" : \"ja\")\n switch (language) {\n case \"ja\":\n navigate(`/en${pathname}`)\n break\n case \"en\":\n let path = pathname\n if( pathname.match(/\\/en\\//g) ){\n path = path.replace(/\\/en/g,\"\")\n }\n if( pathname.match(/-en$/g) ){\n path = path.replace(\"-en\",\"\")\n }\n navigate(path)\n break\n }\n },1000)\n }\n\n useEffect(()=>{\n if( pathname.match(/\\/connect/g) ){\n return\n }\n //check\n if( pathname.match(/\\/en/g) && language === \"ja\" ){\n setLanguage(\"en\")\n } else\n if( !pathname.match(/\\/en/g) && language === \"en\" ){\n setLanguage(\"ja\")\n }\n },[])\n \n return(\n
\n \n {language.toUpperCase()}\n
\n )\n}","import clsx from \"clsx\"\nimport { MyLink } from \"../elements/Link\"\nimport { globalHistory } from \"@reach/router\"\nimport WatanabeLogo from \"../elements/logos/WatanabeLogo\"\nimport MainLogo from \"../elements/logos/MainLogo\"\n\nexport default function Logos({\n isBlendMode,\n\tisModal,\n}:{\n isBlendMode?:boolean\n\tisModal?:boolean\n}){\n const { pathname } = globalHistory.location\n const isMember = pathname.match(/member/g)\n\tconst homeUrl = isMember ? \"/member/\" : \"/\"\n const commonClass = \"z-50 fixed\"\n\tconst blendModeClass = \"mix-blend-difference\"\n return(\n <>\n\t\t\t\t{ isMember ?\n\t\t\t\t\t<>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t
\n\t\t\t\t\t\t{/* \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<>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\tJUN SHISON\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t
\n\t\t\t\t\t\t{/* \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}\n\t\t\t\n )\n}","import { globalHistory } from '@reach/router'\nimport clsx from \"clsx\"\nimport { useEffect } from \"react\"\nimport { useRecoilState } from \"recoil\"\nimport { userLoginState } from \"../../status/UserState\"\nimport { loginHandler, logoutHandler } from \"../../utility/LoginHandler\"\nimport { MyLink } from \"../elements/Link\"\nimport SwitchLanguageButton from \"../elements/buttons/SwitchLanguageButton\"\nimport EnterIcon from \"../elements/icons/EnterIcon\"\nimport { urlFcMenuList, urlMenuList } from \"../functional/urls\"\nimport Logos from \"../parts/Logos\"\n\ntype Props = {}\n\nexport default function Header({}:Props){\n\tconst { pathname } = globalHistory.location\n\tconst [userLogin, setUserLogin] = useRecoilState(userLoginState)\n\tuseEffect(()=>{\n\t\t// setUserLogin(true)\n\t},[])\n\tconsole.log(userLogin)\n\tconst isMember = pathname.match(/member/g)\n\tconst menuList = isMember ? urlFcMenuList : urlMenuList\n\tconst commonClass = \"z-50 fixed\"\n\tconst blendModeClass = \"mix-blend-difference\"\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t)\n}","\nimport React, { useRef } from \"react\"\nimport { gsap, Expo } from 'gsap'\nimport { useTransition } from \"./TransitionLayout\"\n\nexport default function Loading() {\n const { transitionState, duration, delay } = useTransition() as any\n // const q = useStaticQuery(graphql`\n // query {\n // logo : file(relativePath: { eq: \"header__logo__daisen-white.svg\" }) {\n // publicURL\n // }\n // }\n // `)\n const containerRef:any = useRef()\n const titleRef:any = useRef()\n const loading:any = useRef(true)\n const progressRef:any = useRef()\n\n React.useEffect(() => {\n console.log(\"transition\",transitionState)\n //start hide\n if (transitionState === 4) {\n if (!loading.current) return\n loading.current = false\n startHideContainer({ target: containerRef.current, duration, delay })\n startProgressbar({target:progressRef.current, duration, delay })\n \n } else\n if (transitionState === 1) {\n //start show\n if (loading.current) return\n loading.current = true\n startShowContainer({ target: containerRef.current, duration, delay })\n startShowProgressbar({target:progressRef.current, duration, delay })\n }\n\n if (transitionState === -1) {\n //browser back\n if (loading.current) return\n loading.current = true\n quiqShowContainer({ target: containerRef.current, duration, delay })\n quiqShowProgressbar({target:progressRef.current, duration, delay })\n }\n }, [transitionState, delay, duration])\n\n\n\n return (\n
\n
\n
\n
\n LOADING\n
\n
\n
\n
\n
\n
\n
\n )\n}\n\n\ntype TransProps = {\n target: any\n delay: number\n duration: number\n}\n\nfunction startProgressbar({ target, delay, duration }:TransProps) {\n let tl = gsap.timeline()\n tl.set(target, {\n scaleX: 0.01,\n })\n const random = Math.floor(Math.random() * 90)*0.01\n tl.to(target, {\n ease: Expo.easeInOut,\n duration: duration/2,\n scaleX: 1,\n })\n}\nfunction startShowProgressbar({ target, delay, duration }:TransProps) {\n let tl = gsap.timeline()\n tl.set(target, {\n scaleX: 0.01\n })\n}\nfunction quiqShowProgressbar({ target, delay, duration }:TransProps) {\n let tl = gsap.timeline()\n tl.set(target, {\n scaleX: 0.01,\n })\n}\n\nfunction startHideContainer({ target, delay, duration }:TransProps) {\n let tl = gsap.timeline()\n tl.set(target, {\n // x: `0%`,\n opacity: 1,\n scale: 1.0,\n })\n // .to(target, {\n // duration: duration/5 * 1,\n // marginTop: 100,\n // })\n .to(target, {\n ease: Expo.easeInOut,\n delay: delay,\n duration: duration / 5 * 5,\n // display: 'none',//svg waveアニメーションと相性がわるい\n // x: `100%`,\n opacity: 0,\n scale: 1.0,\n onComplete: () => {\n gsap.set(target, {\n // x: `-100%`,\n opacity: 0,\n scale: 1.5,\n display: \"none\"\n })\n }\n })\n}\nfunction startShowContainer({ target, delay, duration }:TransProps) {\n let tl = gsap.timeline()\n tl.set(target, {\n // x: `-100%`,\n opacity: 0,\n })\n tl.to(target, {\n // ease: Back.easeInOut.config(1.7),\n ease: Expo.easeIn,\n display: 'flex',\n duration: duration / 5 * 2,\n marginTop: 0,\n opacity: 0,\n })\n .to(target, {\n ease: Expo.easeInOut,\n duration: duration / 5 * 3,\n opacity: 1,\n scale: 1.0,\n // x: `0%`,\n marginTop: 0,\n })\n}\n\nfunction quiqShowContainer({ target, delay, duration }:TransProps) {\n gsap.set(target, {\n // x: `0%`,\n opacity: 1,\n scale: 1.3,\n display: 'flex',\n marginTop: 0,\n })\n gsap.to(target, {\n ease: Power4.easeInOut,\n delay: delay,\n duration: duration,\n opacity: 1,\n // display: 'none',\n onComplete: () => {\n gsap.set(target, {\n opacity: 0,\n })\n }\n })\n}\n","import * as React from \"react\"\nimport Svg from \"/src/assets/images/common__icn__menu.svg\"\n\ninterface Props {\n width?: number\n height?: number\n}\n\nexport default function MenuIcon({width, height}:Props){\n return(\n \n )\n}","import * as React from \"react\"\nimport Svg from \"/src/assets/images/common__icn__close.svg\"\n\ninterface Props {\n width?: number\n height?: number\n}\n\nexport default function CloseIcon({width, height}:Props){\n return(\n \n )\n}","import { urlFcFooterMenuList, urlFcMenuList, urlFcModalMenuFooterMenuList, urlFooterMenuList, urlMenuList, urlModalMenuFooterMenuList, urlSns } from \"../functional/urls\"\nimport MenuIcon from \"../elements/icons/MenuIcon\"\nimport CloseIcon from \"../elements/icons/CloseIcon\"\nimport clsx from \"clsx\"\n\nimport EnterIcon from \"../elements/icons/EnterIcon\"\nimport Twitter from \"../elements/icons/Twiiter\"\nimport Instagram from \"../elements/icons/Instagram\"\nimport { MyLink } from \"../elements/Link\"\nimport { globalHistory } from '@reach/router'\nimport { useEffect, useState } from \"react\"\nimport Logos from \"../parts/Logos\"\nimport { Variants, motion } from \"framer-motion\"\nimport { loginHandler, logoutHandler } from \"../../utility/LoginHandler\"\nimport { useEventListener } from \"usehooks-ts\"\nimport { useRecoilState, useRecoilValue } from \"recoil\"\nimport { ModalMenuState } from \"../../status/ModalMenuState\"\nimport { LanguageState } from \"../../status/LanguageState\"\n\ninterface Props {\n}\n\nlet snsList = [\n\t{\n\t\tto: urlSns.twitter,\n\t\tIcon: Twitter\n\t},{\n\t\tto: urlSns.instagram,\n\t\tIcon: Instagram\n\t}\n]\n\n\nconst ContainerAnimation:Variants = {\n open: {\n x: \"0%\",\n opacity: 1,\n\t transition: {\n duration: 0.3,\n ease: \"anticipate\",\n },\n },\n init: {\n x: \"100%\",\n opacity: 0,\n },\n close: {\n x: \"100%\",\n opacity: 0,\n },\n};\n\nconst NaviItemsAnimation = (i:number) => {\n const res:Variants = {\n\t\topen: {\n\t\t\tx: \"0%\",\n\t\t\topacity: 1,\n\t\t\ttransition: {\n\t\t\t duration: 0.3,\n\t\t\t delay: 0.04 * i,\n\t\t\t ease: \"anticipate\",\n\t\t\t},\n\t\t },\n\t\tinit: {\n\t\t\tx: \"100%\",\n\t\t\topacity: 0,\n\t\t},\n\t\tclose: {\n\t\t\tx: \"100%\",\n\t\t\topacity: 0,\n\t\t},\n\t}\n\treturn res\n};\n\nexport default function ModalMenu({}:Props){\n\tconst language = useRecoilValue(LanguageState)\n\tconst { pathname } = globalHistory.location\n\tconst [isModalMenu, setIsModalMenu] = useRecoilState(ModalMenuState)\n\tconst modalHandler = () => {\n\t\tsetIsModalMenu(!isModalMenu)\n\t}\n\tlet menuList = pathname.match(/member/g) ? urlFcMenuList : urlMenuList\n\tlet footerMenuList = pathname.match(/member/g) ? urlFcModalMenuFooterMenuList() : urlModalMenuFooterMenuList()\n\tconst isMember = pathname.match(/member/g) ? true : false\n\n\t\n\tconst onClickHandler = () => {\n\t\tif(isModalMenu){\n\t\t\tsetIsModalMenu(false)\n\t\t}\n\t}\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\t{ !isModalMenu ? : }\n\t\t\t\n\t\t\t\t e.stopPropagation()} \n\t\t\t\t\tvariants={ContainerAnimation}\n\t\t\t\t\tinitial=\"init\"\n\t\t\t\t\tanimate={isModalMenu ? \"open\" : \"close\"}\n\t\t\t\t\texit=\"init\"\n\t\t\t\t\tclassName={clsx(\n\t\t\t\t\t\t\"fixed top-0 left-0 bg-white h-full w-full z-[4000]\",\n\t\t\t\t\t\t// isModalOpen ? \"block\" : \"hidden\",\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t© {new Date().getFullYear()} {`${process.env.GATSBY_COPYRIGHT}`}\n\t\t\t\t
\n\t\t\t\n\t\t\n\t)\n}","import { AnimatePresence, type Variants, motion } from 'framer-motion'\nimport React, { createContext, useEffect } from \"react\"\nimport { useEventListener } from \"usehooks-ts\"\nimport { useLogin } from \"../../hooks/useLogin\"\nimport Footer from \"./Footer\"\nimport Header from \"./Header\"\nimport Loading from \"./Loading\"\nimport ModalMenu from \"./ModalMenu\"\n\nexport const TransitionContext:any = createContext(null)\nexport const useTransition = () => React.useContext(TransitionContext)\n\nconst options = {\n duration: 0.6,\n delay: 0.6,\n}\n\nexport default function TransitionLayout({ children, location }:{\n\tchildren: any\n\tlocation: any\n})\n{\n \n useLogin()\n const [first, setFirst] = React.useState(true)\n const [transitionState, setTranstionState] = React.useState(3)\n const key = location.pathname\n const duration = options.duration// + 10\n const delay = options.delay + (first ? 1000.0 : 0)\n\n const params:Variants = {\n initial: {\n position: 'relative',\n // opacity: 0,\n },\n enter: {\n transition: {\n duration: duration,\n delay: delay,\n when: 'beforeChildren',\n },\n // opacity: 1,\n },\n exit: {\n transition: { duration: duration },\n // opacity: 0,\n },\n }\n\tconsole.log(\"hoge\",key)\n\n useEffect(() => {\n // 0: none, 1:start, 2:loading, 3: complete\n //start with TransitionLink.\n console.log('test',transitionState)\n //init\n\n if (transitionState === 1) {\n console.log('[[[ Transition <<< Show Start >>> ]]]')\n } else if (transitionState === 2) {\n console.log('[[[ Transition <<< Loading Start >>> ]]]')\n } else if (transitionState === 3) {\n console.log('[[[ Transition <<< Loading Complete >>> ]]]')\n setTranstionState(4)\n } else if (transitionState === 4) {\n console.log('[[[ Transition <<< Hide Start >>> ]]]')\n setTimeout(() => {\n setTranstionState(0)\n }, (options.duration + options.delay) * 1000)\n }\n }, [transitionState])\n\n //browser back push action\n useEventListener('popstate', () => {\n setTranstionState(0)\n })\n\n return (\n \n
\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t
\n
\n {\n if (transitionState === 1) {\n setTranstionState(2)\n }\n }}\n mode=\"wait\"\n >\n {\n if( first === true ){\n setFirst(false)\n setTranstionState(2)\n }\n }}\n onAnimationComplete={() => {\n if (transitionState === 2) {\n setTranstionState(3)\n }\n }}\n >\n {/* {children} */}\n \n \n {children}\n
\n\t\t\t\t
\n
\n
\n )\n}\n","import clsx from \"clsx\"\nimport { useRecoilValue } from \"recoil\"\nimport { LanguageState } from \"../../status/LanguageState\"\nimport enJson from \"../../assets/locales/en/index.json\"\nimport jaJson from \"../../assets/locales/ja/index.json\"\nimport { getLanguageForLocalStorage } from \"../../utility/get\"\n\ninterface Props {\n n: string\n}\n\ntype MyObjectType = {\n [key: string]: string;\n};\n\nfunction isKeyOfMyObjectJa(key: any): key is keyof typeof jaJson {\n return key in jaJson\n}\nfunction isKeyOfMyObjectEn(key: any): key is keyof typeof enJson {\n return key in enJson\n}\n\nexport const lt = (n:string, state?:any) => {\n if( typeof window === \"undefined\" ) return\n let language = state || getLanguageForLocalStorage()\n let text:any = n\n switch (language) {\n case \"ja\":\n if (isKeyOfMyObjectJa(n)) {\n text = jaJson[n]\n }\n break;\n \n case \"en\":\n if (isKeyOfMyObjectEn(n)) {\n text = enJson[n]\n }\n break;\n }\n return text\n}","\nimport { urlSns } from \"../functional/urls\"\nimport clsx from \"clsx\"\nimport { MyLink } from \"../elements/Link\"\nimport Twitter from \"../elements/icons/Twiiter\"\nimport Instagram from \"../elements/icons/Instagram\"\n\ninterface Props {\n size?: number\n isPhotos?: boolean\n}\n\nexport default function SNsLinks({isPhotos ,size = 48}:Props){\n return(\n
\n

\n Discover More with Me\n

\n
\n \n \n
\n
\n )\n}","// import React from 'react'\nimport { globalHistory, } from '@reach/router'\nimport dayjs from 'dayjs'\nimport JsCookies from 'js-cookie'\n// import { useRecoilState, useRecoilValue } from 'recoil'\n// import { userLoginState, userInfoState } from \"@status/UserState\"\n// import { globalHistory } from '@reach/router'\nimport { Cookies } from 'react-cookie'\nimport { escapeSpecialChars } from '../utility/get'\n// import { getObjectSize } from '@src/utility/get';\n\nexport const isBrowser = () => typeof window !== \"undefined\"\nconst cookies = new Cookies(\"MyCookies\")\n\nexport const getUser = () => {\n\n return isBrowser() && cookies.get('user')\n ? cookies.get('user')\n : null\n}\n\nconst checkErrorCount = () => {\n const count = Number(cookies.get('error_count'))\n if(count > 2){\n cookies.set('error_count', 0, { path: '/' })\n return true\n }\n return false\n}\n\nconst validateTicket = async (ticket:string):Promise => {\n \n try {\n //validat ticket\n console.log(\"res\", JSON.stringify({ ticket: ticket }))\n const params:RequestInit = {\n method : \"POST\",\n body : JSON.stringify({ ticket: ticket }),\n headers: { \n \"Content-Type\": \"application/json\"\n },\n };\n const res = await fetch(`${process.env.GATSBY_MODD_API_VALIDATE_TICKET}`, params)\n const result = await res.json()\n const data = await JSON.parse(result.data)\n return data\n // let result\n // await axios({\n // withCredentials: true,\n // method: 'POST',\n // url: process.env.GATSBY_MODD_API_VALIDATE_TICKET,\n // headers: { \n // // 'content-type': 'application/x-www-form-urlencoded'\n // 'Content-Type': 'application/json',\n // // 'Accept': 'Application/json',\n // },\n // data: JSON.stringify({\n // ticket: ticket,\n // }),\n // })\n // .then(({ data }) => {\n // console.log(data)\n // result = data\n // })\n // .catch(error => {\n // console.log(error)\n // throw 'server error'\n // })\n } catch(error:any) {\n console.log(`Error: ${error}`)\n return null\n }\n}\n\nexport const getFcUser = async (userKey?:string):Promise => {\n console.log(\"userKey\", userKey)\n if( !userKey ){\n userKey = cookies.get('user_key')\n }\n if( !userKey ) return\n\n try {\n const params:RequestInit = {\n method : \"POST\",\n body : JSON.stringify({ userKey: userKey}),\n headers: { \n 'Content-Type': 'application/json',\n },\n };\n const res = await fetch(`${process.env.GATSBY_MODD_API_GET_USER}`, params)\n const result = await res.json()\n const json = await JSON.parse(result.data)\n console.log(\"getFcUser=>\",json)\n return json\n } catch(e){\n console.log(`Error: ${e}`)\n }\n\n // await axios({\n // method: 'POST',\n // url: `${process.env.GATSBY_MODD_API_GET_USER}`,\n // headers: { 'content-type': 'application/x-www-form-urlencoded' },\n // data: qs.stringify({\n // userKey: userKey,\n // }),\n // })\n // .then(({ data }) => {\n // result = data\n // })\n // .catch(error => {\n // throw error\n // })\n}\n\n//それをログイン前にランダムパラメーターを生成する\n//MODDにランダムパラメーターを渡すurl?id=xdacea\n//リダイレクトURLにもid=xdaceaが付与されているのでcookieと照合する\n//\ninterface Props {\n successCallback: ()=>void\n cancelCallback: ()=>void\n errorCallback: (error:any)=>void\n}\nexport const checkLogin = async ({\n successCallback, cancelCallback, errorCallback\n}:Props) => {\n const { location } = globalHistory\n const params = new URLSearchParams(location.search)\n let ticket = params.get('ticket')\n console.log(location)\n console.log(\"Cookies->\",JsCookies.get(\"logined\"))\n\n try {\n if( ticket ){\n //url書き換え\n cookies.set('ticket', ticket, { path: '/' })\n window.history.replaceState('', '', `${location.pathname}`)\n const logined = JsCookies.get(\"logined\")\n if( logined !== \"true\"){\n //ログイン処理をしてなかった場合は不正\n // throw \"Error: -1\"\n }\n } else {\n ticket = cookies.get('ticket')\n }\n console.log(\"ticket\",ticket)\n if (!ticket) {\n // console.log('Error: 000')\n if (cancelCallback ){\n cancelCallback()\n }\n throw \"Error: 000\"\n }\n\n if( checkErrorCount() ){\n throw \"Error: 999\"\n }\n //validate ticket\n const vtr = await validateTicket(ticket)\n if (!vtr ){\n console.log(\"vtr\",vtr)\n throw \"Error: 110\"\n }\n // const { ErrCode, ErrDetail, Expiration, Expired, UserKey, Result } = vtr\n console.log('api',vtr)\n if ( vtr.ErrCode !== \"\" && (typeof vtr.ErrCode === 'string' || vtr.Result !== \"1\")) {\n throw `[MODD API Error Code: ${vtr.ErrCode}] ${vtr.ErrDetail}`\n }\n //保存されているユーザーキーが違ったらエラー\n const ukey = cookies.get('user_key')\n if( ukey ){\n if( ukey !== vtr.UserKey ){\n console.log(\"userKey update\")\n cookies.set('user_key', vtr.UserKey)\n // throw \"Error: -1\"\n }\n }\n\n if (vtr.Expired === 'true') {\n cookies.remove('ticket', { path: '/' })\n cookies.remove('user_key', { path: '/' })\n cookies.remove('user', { path: '/' })\n throw \"Error: 111\"\n }\n\n //get user\n const gfu = await getFcUser(vtr.UserKey)\n console.log(\"gfu===>\",gfu)\n if( !gfu ){\n throw 'Error: 120'\n }\n console.log(gfu)\n // const { FcElements, Result } = fcUser\n let currentFcElement = gfu.FcElements.FcExpansionElement || gfu.FcElements\n currentFcElement = Array.isArray(currentFcElement) ? currentFcElement[0] : currentFcElement\n if( !currentFcElement ){\n throw 'Error: 121'\n }\n console.log(\"currentFcElement=>\",currentFcElement)\n //FcExpLimitDateは会員休眠期限\n const { FcStatus, FcExpDate, FcExpLimitDate } = currentFcElement\n console.log(\"FcExpansionElement=>\",FcStatus)\n console.log('api error', currentFcElement)\n \n //会員状態が活動会員でない場合はエラー\n let onePeriodExtension = false\n if (FcStatus !== 0 ) {\n console.log('api error', currentFcElement)\n //会員切れから一ヶ月以内は猶予\n const limit = dayjs(FcExpLimitDate)\n const limitToday = dayjs()\n const diff = limit.diff(limitToday, \"month\")\n console.log(\"diff===>\",diff, limit.format('YYYY-MM-DD'), limitToday.format('YYYY-MM-DD'))\n if( diff > 0 ){\n onePeriodExtension = true\n } else {\n throw 'Error: 122'\n // alert('Error: 122')\n }\n }\n //上書きして\n gfu.FcElements.FcExpansionElement = currentFcElement\n\n console.log('<<<<<< login ok >>>>>>')\n console.log(\"error\",cookies.get('error_count'))\n const today = new Date()\n const tomorrow = new Date()\n tomorrow.setDate(today.getDate() + 1)\n cookies.set('error_count', 0, { path: '/' })\n cookies.set('user_key', vtr.UserKey, { expires: tomorrow, path: '/' })\n delete gfu.crypto\n cookies.set('user', escapeSpecialChars({...gfu, _onePeriodExtension: onePeriodExtension}), { expires: tomorrow, path: '/' })\n // cookies.set('user', escapeSpecialChars({...gfu}), { expires: tomorrow, path: '/' })\n console.log('user=>', cookies.get('user'))\n if ( successCallback ){\n successCallback()\n }\n return true\n } catch(error:any){\n if( errorCallback ){\n errorCallback(error)\n }\n return false\n }\n}\n\nexport const isLoggedIn = () => {\n const user = getUser()\n const key = cookies.get(\"user_key\")\n console.log(\"login=>\",key, user,)\n if( user ){\n if( user.UserKey === key ){\n return true\n }\n }\n return false\n}\nexport const logout = ({\n callback\n}:{\n callback:()=>void\n}) => {\n //count\n let count = Number(cookies.get('error_count'))\n if(!count){\n count = 0\n }\n count += 1\n cookies.set('error_count', count, { path: '/' })\n console.log(\"error\",cookies.get('error_count'))\n\n cookies.remove('ticket', { path: '/' })\n cookies.remove('user_key', { path: '/' })\n cookies.remove('user', { path: '/' })\n //member\n cookies.remove('ticket', { path: '/member' })\n cookies.remove('user_key', { path: '/member' })\n cookies.remove('user', { path: '/member' })\n\n if (callback) {\n callback()\n }\n}","import { atom } from 'recoil'\n// import { recoilPersist } from 'recoil-persist'\n\n// const { persistAtom } = recoilPersist()\n\nconst LOCAL_STORAGE_KEY = \"language\"\nconst getToLocalStorage = () => {\n if (typeof window === \"undefined\") {\n return \"\"\n }\n const value = window.localStorage.getItem(LOCAL_STORAGE_KEY)\n return value ? JSON.parse(value) : \"\"\n}\n const saveToLocalStorage = (value: string) => {\n if (typeof window === \"undefined\") {\n return\n }\n window.localStorage.setItem(LOCAL_STORAGE_KEY, JSON.stringify(value))\n}\n\nexport const LanguageState = atom<\"ja\"|\"en\">({\n key: 'languageState',\n default: getToLocalStorage() || \"ja\",\n effects_UNSTABLE: [\n ({ onSet }) => {\n onSet((newValue) => {\n saveToLocalStorage(newValue);\n });\n },\n ],\n})","import { atom } from 'recoil'\nimport { recoilPersist } from 'recoil-persist'\n\nconst { persistAtom } = recoilPersist()\n\nexport const ModalMenuState = atom({\n key: 'modalMenuState',\n default: false,\n // effects_UNSTABLE: [persistAtom],\n})","import { atom } from 'recoil'\nimport { recoilPersist } from 'recoil-persist'\n\nconst { persistAtom } = recoilPersist({\n // storage: sessionStorage\n})\n\nexport const userLoginState = atom({\n key: 'userLogin',\n default: false\n})\n\nexport const userInfoState = atom({\n key: 'userInfo',\n default: {\n memberId: {},\n info: {},\n isSwitchingCard: false,\n },\n effects_UNSTABLE: [persistAtom],\n})","import { globalHistory, } from '@reach/router'\nimport Cookies from 'js-cookie'\nimport { isBrowser, logout } from '../services/auth'\n\nconst IS_DEBUG = false\n\nconst setRedirectPath = (location:any) => {\n let redirectPath = location.pathname\n\n const currentRedirectPath = Cookies.get(\"connect_redirect\")?.toString()\n if( !currentRedirectPath && ( redirectPath.match(/404/g) || redirectPath.match(/500/g) || !redirectPath.match(/\\/member/g))){\n redirectPath = \"/member/\"\n }\n // console.log(\"setRedirect\",currentRedirectPath)\n // Cookies.set(\"connect_redirect\", currentRedirectPath || \"empty\", {path:\"/\", expires: 30/86400})//3分\n Cookies.set(\"connect_redirect\", redirectPath, {path:\"/\", expires: 30/86400})//3分\n}\n\n// Hook\nconst registerHandler = () => {\n const { location } = globalHistory\n if( IS_DEBUG ) {\n window.location.href = `${location.origin}/member/`\n return\n }\n const url = location.href.replace(/\\?.*$/, \"\");\n if (isBrowser()) {\n window.location.href = `${process.env.GATSBY_MODD_URL_REGISTER}${url}`\n }\n}\n\nconst loginHandler = (isBlank?: boolean) => {\n const { location } = globalHistory\n if( IS_DEBUG ) {\n window.open(`${location.origin}/member/`, '_blank')\n return\n }\n //urlパラメータが含まれていたら削除\n setRedirectPath(location)\n\n const url = `${location.origin}/connect/`\n if (isBrowser()) {\n if(!isBlank){\n window.location.href = `${process.env.GATSBY_MODD_URL_LOGIN}${url}`\n } else {\n window.open(`${process.env.GATSBY_MODD_URL_LOGIN}${url}`, '_blank')\n }\n }\n}\n\nconst clickLoginHandler = (isBlank?:boolean) => {\n const { location } = globalHistory\n if( IS_DEBUG ) {\n window.open(`${location.origin}/member/`, '_blank')\n return\n }\n Cookies.set(\"logined\", 'true', {path:\"/\", expires: 30/86400})//3分\n console.log(\"pathname\",location.pathname)\n setRedirectPath(location)\n \n const url = `${location.origin}/connect/`\n if (isBrowser()) {\n if(!isBlank){\n window.location.href = `${process.env.GATSBY_MODD_URL_LOGIN}${url}`\n } else {\n window.open(`${process.env.GATSBY_MODD_URL_LOGIN}${url}`, '_blank')\n }\n }\n}\nconst logoutHandler = ({cb}:{cb?:()=>void}) => {\n if( IS_DEBUG ) {\n window.location.href = `${location.origin}`\n return\n }\n \n Cookies.remove(\"logined\")\n Cookies.remove(\"connect_redirect\")\n logout({\n callback: () => {\n if(cb){\n cb()\n }\n if (isBrowser()) {\n window.location.href = `${process.env.GATSBY_MODD_URL_LOGOUT}`\n }\n }\n })\n}\n\nexport { loginHandler, clickLoginHandler, registerHandler, logoutHandler }","export function getLanguageForLocalStorage(){\n let language = (window.localStorage.getItem(\"language\") || \"ja\" )\n language = language.replace(/\"/g,\"\")\n return language\n}\n\nexport function getObjectSize(object:any):any {\n const jsonString = JSON.stringify(object);\n let sizeInBytes = new Blob([jsonString], { type: 'application/json' }).size;\n return sizeInBytes;\n }\n\nexport function escapeSpecialChars(value:any):any {\n if (typeof value === 'string') {\n return value.replace(/[\\\\\"']/g, '\\\\$&').replace(/\\u0000/g, '\\\\0');\n } else if (Array.isArray(value)) {\n return value.map(item => escapeSpecialChars(item));\n } else if (value !== null && typeof value === 'object') {\n let escapedObject:any = {}\n for (const key in value) {\n escapedObject[key] = escapeSpecialChars(value[key]);\n }\n return escapedObject;\n }\n return value;\n}\n","function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\n/*!\n * GSAP 3.6.1\n * https://greensock.com\n *\n * @license Copyright 2008-2021, GreenSock. All rights reserved.\n * Subject to the terms at https://greensock.com/standard-license or for\n * Club GreenSock members, the agreement issued with that membership.\n * @author: Jack Doyle, jack@greensock.com\n*/\n\n/* eslint-disable */\nvar _config = {\n autoSleep: 120,\n force3D: \"auto\",\n nullTargetWarn: 1,\n units: {\n lineHeight: \"\"\n }\n},\n _defaults = {\n duration: .5,\n overwrite: false,\n delay: 0\n},\n _suppressOverwrites,\n _bigNum = 1e8,\n _tinyNum = 1 / _bigNum,\n _2PI = Math.PI * 2,\n _HALF_PI = _2PI / 4,\n _gsID = 0,\n _sqrt = Math.sqrt,\n _cos = Math.cos,\n _sin = Math.sin,\n _isString = function _isString(value) {\n return typeof value === \"string\";\n},\n _isFunction = function _isFunction(value) {\n return typeof value === \"function\";\n},\n _isNumber = function _isNumber(value) {\n return typeof value === \"number\";\n},\n _isUndefined = function _isUndefined(value) {\n return typeof value === \"undefined\";\n},\n _isObject = function _isObject(value) {\n return typeof value === \"object\";\n},\n _isNotFalse = function _isNotFalse(value) {\n return value !== false;\n},\n _windowExists = function _windowExists() {\n return typeof window !== \"undefined\";\n},\n _isFuncOrString = function _isFuncOrString(value) {\n return _isFunction(value) || _isString(value);\n},\n _isTypedArray = typeof ArrayBuffer === \"function\" && ArrayBuffer.isView || function () {},\n // note: IE10 has ArrayBuffer, but NOT ArrayBuffer.isView().\n_isArray = Array.isArray,\n _strictNumExp = /(?:-?\\.?\\d|\\.)+/gi,\n //only numbers (including negatives and decimals) but NOT relative values.\n_numExp = /[-+=.]*\\d+[.e\\-+]*\\d*[e\\-+]*\\d*/g,\n //finds any numbers, including ones that start with += or -=, negative numbers, and ones in scientific notation like 1e-8.\n_numWithUnitExp = /[-+=.]*\\d+[.e-]*\\d*[a-z%]*/g,\n _complexStringNumExp = /[-+=.]*\\d+\\.?\\d*(?:e-|e\\+)?\\d*/gi,\n //duplicate so that while we're looping through matches from exec(), it doesn't contaminate the lastIndex of _numExp which we use to search for colors too.\n_relExp = /[+-]=-?[.\\d]+/,\n _delimitedValueExp = /[#\\-+.]*\\b[a-z\\d-=+%.]+/gi,\n _unitExp = /[\\d.+\\-=]+(?:e[-+]\\d*)*/i,\n _globalTimeline,\n _win,\n _coreInitted,\n _doc,\n _globals = {},\n _installScope = {},\n _coreReady,\n _install = function _install(scope) {\n return (_installScope = _merge(scope, _globals)) && gsap;\n},\n _missingPlugin = function _missingPlugin(property, value) {\n return console.warn(\"Invalid property\", property, \"set to\", value, \"Missing plugin? gsap.registerPlugin()\");\n},\n _warn = function _warn(message, suppress) {\n return !suppress && console.warn(message);\n},\n _addGlobal = function _addGlobal(name, obj) {\n return name && (_globals[name] = obj) && _installScope && (_installScope[name] = obj) || _globals;\n},\n _emptyFunc = function _emptyFunc() {\n return 0;\n},\n _reservedProps = {},\n _lazyTweens = [],\n _lazyLookup = {},\n _lastRenderedFrame,\n _plugins = {},\n _effects = {},\n _nextGCFrame = 30,\n _harnessPlugins = [],\n _callbackNames = \"\",\n _harness = function _harness(targets) {\n var target = targets[0],\n harnessPlugin,\n i;\n _isObject(target) || _isFunction(target) || (targets = [targets]);\n\n if (!(harnessPlugin = (target._gsap || {}).harness)) {\n // find the first target with a harness. We assume targets passed into an animation will be of similar type, meaning the same kind of harness can be used for them all (performance optimization)\n i = _harnessPlugins.length;\n\n while (i-- && !_harnessPlugins[i].targetTest(target)) {}\n\n harnessPlugin = _harnessPlugins[i];\n }\n\n i = targets.length;\n\n while (i--) {\n targets[i] && (targets[i]._gsap || (targets[i]._gsap = new GSCache(targets[i], harnessPlugin))) || targets.splice(i, 1);\n }\n\n return targets;\n},\n _getCache = function _getCache(target) {\n return target._gsap || _harness(toArray(target))[0]._gsap;\n},\n _getProperty = function _getProperty(target, property, v) {\n return (v = target[property]) && _isFunction(v) ? target[property]() : _isUndefined(v) && target.getAttribute && target.getAttribute(property) || v;\n},\n _forEachName = function _forEachName(names, func) {\n return (names = names.split(\",\")).forEach(func) || names;\n},\n //split a comma-delimited list of names into an array, then run a forEach() function and return the split array (this is just a way to consolidate/shorten some code).\n_round = function _round(value) {\n return Math.round(value * 100000) / 100000 || 0;\n},\n _arrayContainsAny = function _arrayContainsAny(toSearch, toFind) {\n //searches one array to find matches for any of the items in the toFind array. As soon as one is found, it returns true. It does NOT return all the matches; it's simply a boolean search.\n var l = toFind.length,\n i = 0;\n\n for (; toSearch.indexOf(toFind[i]) < 0 && ++i < l;) {}\n\n return i < l;\n},\n _parseVars = function _parseVars(params, type, parent) {\n //reads the arguments passed to one of the key methods and figures out if the user is defining things with the OLD/legacy syntax where the duration is the 2nd parameter, and then it adjusts things accordingly and spits back the corrected vars object (with the duration added if necessary, as well as runBackwards or startAt or immediateRender). type 0 = to()/staggerTo(), 1 = from()/staggerFrom(), 2 = fromTo()/staggerFromTo()\n var isLegacy = _isNumber(params[1]),\n varsIndex = (isLegacy ? 2 : 1) + (type < 2 ? 0 : 1),\n vars = params[varsIndex],\n irVars;\n\n isLegacy && (vars.duration = params[1]);\n vars.parent = parent;\n\n if (type) {\n irVars = vars;\n\n while (parent && !(\"immediateRender\" in irVars)) {\n // inheritance hasn't happened yet, but someone may have set a default in an ancestor timeline. We could do vars.immediateRender = _isNotFalse(_inheritDefaults(vars).immediateRender) but that'd exact a slight performance penalty because _inheritDefaults() also runs in the Tween constructor. We're paying a small kb price here to gain speed.\n irVars = parent.vars.defaults || {};\n parent = _isNotFalse(parent.vars.inherit) && parent.parent;\n }\n\n vars.immediateRender = _isNotFalse(irVars.immediateRender);\n type < 2 ? vars.runBackwards = 1 : vars.startAt = params[varsIndex - 1]; // \"from\" vars\n }\n\n return vars;\n},\n _lazyRender = function _lazyRender() {\n var l = _lazyTweens.length,\n a = _lazyTweens.slice(0),\n i,\n tween;\n\n _lazyLookup = {};\n _lazyTweens.length = 0;\n\n for (i = 0; i < l; i++) {\n tween = a[i];\n tween && tween._lazy && (tween.render(tween._lazy[0], tween._lazy[1], true)._lazy = 0);\n }\n},\n _lazySafeRender = function _lazySafeRender(animation, time, suppressEvents, force) {\n _lazyTweens.length && _lazyRender();\n animation.render(time, suppressEvents, force);\n _lazyTweens.length && _lazyRender(); //in case rendering caused any tweens to lazy-init, we should render them because typically when someone calls seek() or time() or progress(), they expect an immediate render.\n},\n _numericIfPossible = function _numericIfPossible(value) {\n var n = parseFloat(value);\n return (n || n === 0) && (value + \"\").match(_delimitedValueExp).length < 2 ? n : _isString(value) ? value.trim() : value;\n},\n _passThrough = function _passThrough(p) {\n return p;\n},\n _setDefaults = function _setDefaults(obj, defaults) {\n for (var p in defaults) {\n p in obj || (obj[p] = defaults[p]);\n }\n\n return obj;\n},\n _setKeyframeDefaults = function _setKeyframeDefaults(obj, defaults) {\n for (var p in defaults) {\n p in obj || p === \"duration\" || p === \"ease\" || (obj[p] = defaults[p]);\n }\n},\n _merge = function _merge(base, toMerge) {\n for (var p in toMerge) {\n base[p] = toMerge[p];\n }\n\n return base;\n},\n _mergeDeep = function _mergeDeep(base, toMerge) {\n for (var p in toMerge) {\n p !== \"__proto__\" && p !== \"constructor\" && p !== \"prototype\" && (base[p] = _isObject(toMerge[p]) ? _mergeDeep(base[p] || (base[p] = {}), toMerge[p]) : toMerge[p]);\n }\n\n return base;\n},\n _copyExcluding = function _copyExcluding(obj, excluding) {\n var copy = {},\n p;\n\n for (p in obj) {\n p in excluding || (copy[p] = obj[p]);\n }\n\n return copy;\n},\n _inheritDefaults = function _inheritDefaults(vars) {\n var parent = vars.parent || _globalTimeline,\n func = vars.keyframes ? _setKeyframeDefaults : _setDefaults;\n\n if (_isNotFalse(vars.inherit)) {\n while (parent) {\n func(vars, parent.vars.defaults);\n parent = parent.parent || parent._dp;\n }\n }\n\n return vars;\n},\n _arraysMatch = function _arraysMatch(a1, a2) {\n var i = a1.length,\n match = i === a2.length;\n\n while (match && i-- && a1[i] === a2[i]) {}\n\n return i < 0;\n},\n _addLinkedListItem = function _addLinkedListItem(parent, child, firstProp, lastProp, sortBy) {\n if (firstProp === void 0) {\n firstProp = \"_first\";\n }\n\n if (lastProp === void 0) {\n lastProp = \"_last\";\n }\n\n var prev = parent[lastProp],\n t;\n\n if (sortBy) {\n t = child[sortBy];\n\n while (prev && prev[sortBy] > t) {\n prev = prev._prev;\n }\n }\n\n if (prev) {\n child._next = prev._next;\n prev._next = child;\n } else {\n child._next = parent[firstProp];\n parent[firstProp] = child;\n }\n\n if (child._next) {\n child._next._prev = child;\n } else {\n parent[lastProp] = child;\n }\n\n child._prev = prev;\n child.parent = child._dp = parent;\n return child;\n},\n _removeLinkedListItem = function _removeLinkedListItem(parent, child, firstProp, lastProp) {\n if (firstProp === void 0) {\n firstProp = \"_first\";\n }\n\n if (lastProp === void 0) {\n lastProp = \"_last\";\n }\n\n var prev = child._prev,\n next = child._next;\n\n if (prev) {\n prev._next = next;\n } else if (parent[firstProp] === child) {\n parent[firstProp] = next;\n }\n\n if (next) {\n next._prev = prev;\n } else if (parent[lastProp] === child) {\n parent[lastProp] = prev;\n }\n\n child._next = child._prev = child.parent = null; // don't delete the _dp just so we can revert if necessary. But parent should be null to indicate the item isn't in a linked list.\n},\n _removeFromParent = function _removeFromParent(child, onlyIfParentHasAutoRemove) {\n child.parent && (!onlyIfParentHasAutoRemove || child.parent.autoRemoveChildren) && child.parent.remove(child);\n child._act = 0;\n},\n _uncache = function _uncache(animation, child) {\n if (animation && (!child || child._end > animation._dur || child._start < 0)) {\n // performance optimization: if a child animation is passed in we should only uncache if that child EXTENDS the animation (its end time is beyond the end)\n var a = animation;\n\n while (a) {\n a._dirty = 1;\n a = a.parent;\n }\n }\n\n return animation;\n},\n _recacheAncestors = function _recacheAncestors(animation) {\n var parent = animation.parent;\n\n while (parent && parent.parent) {\n //sometimes we must force a re-sort of all children and update the duration/totalDuration of all ancestor timelines immediately in case, for example, in the middle of a render loop, one tween alters another tween's timeScale which shoves its startTime before 0, forcing the parent timeline to shift around and shiftChildren() which could affect that next tween's render (startTime). Doesn't matter for the root timeline though.\n parent._dirty = 1;\n parent.totalDuration();\n parent = parent.parent;\n }\n\n return animation;\n},\n _hasNoPausedAncestors = function _hasNoPausedAncestors(animation) {\n return !animation || animation._ts && _hasNoPausedAncestors(animation.parent);\n},\n _elapsedCycleDuration = function _elapsedCycleDuration(animation) {\n return animation._repeat ? _animationCycle(animation._tTime, animation = animation.duration() + animation._rDelay) * animation : 0;\n},\n // feed in the totalTime and cycleDuration and it'll return the cycle (iteration minus 1) and if the playhead is exactly at the very END, it will NOT bump up to the next cycle.\n_animationCycle = function _animationCycle(tTime, cycleDuration) {\n var whole = Math.floor(tTime /= cycleDuration);\n return tTime && whole === tTime ? whole - 1 : whole;\n},\n _parentToChildTotalTime = function _parentToChildTotalTime(parentTime, child) {\n return (parentTime - child._start) * child._ts + (child._ts >= 0 ? 0 : child._dirty ? child.totalDuration() : child._tDur);\n},\n _setEnd = function _setEnd(animation) {\n return animation._end = _round(animation._start + (animation._tDur / Math.abs(animation._ts || animation._rts || _tinyNum) || 0));\n},\n _alignPlayhead = function _alignPlayhead(animation, totalTime) {\n // adjusts the animation's _start and _end according to the provided totalTime (only if the parent's smoothChildTiming is true and the animation isn't paused). It doesn't do any rendering or forcing things back into parent timelines, etc. - that's what totalTime() is for.\n var parent = animation._dp;\n\n if (parent && parent.smoothChildTiming && animation._ts) {\n animation._start = _round(parent._time - (animation._ts > 0 ? totalTime / animation._ts : ((animation._dirty ? animation.totalDuration() : animation._tDur) - totalTime) / -animation._ts));\n\n _setEnd(animation);\n\n parent._dirty || _uncache(parent, animation); //for performance improvement. If the parent's cache is already dirty, it already took care of marking the ancestors as dirty too, so skip the function call here.\n }\n\n return animation;\n},\n\n/*\n_totalTimeToTime = (clampedTotalTime, duration, repeat, repeatDelay, yoyo) => {\n\tlet cycleDuration = duration + repeatDelay,\n\t\ttime = _round(clampedTotalTime % cycleDuration);\n\tif (time > duration) {\n\t\ttime = duration;\n\t}\n\treturn (yoyo && (~~(clampedTotalTime / cycleDuration) & 1)) ? duration - time : time;\n},\n*/\n_postAddChecks = function _postAddChecks(timeline, child) {\n var t;\n\n if (child._time || child._initted && !child._dur) {\n //in case, for example, the _start is moved on a tween that has already rendered. Imagine it's at its end state, then the startTime is moved WAY later (after the end of this timeline), it should render at its beginning.\n t = _parentToChildTotalTime(timeline.rawTime(), child);\n\n if (!child._dur || _clamp(0, child.totalDuration(), t) - child._tTime > _tinyNum) {\n child.render(t, true);\n }\n } //if the timeline has already ended but the inserted tween/timeline extends the duration, we should enable this timeline again so that it renders properly. We should also align the playhead with the parent timeline's when appropriate.\n\n\n if (_uncache(timeline, child)._dp && timeline._initted && timeline._time >= timeline._dur && timeline._ts) {\n //in case any of the ancestors had completed but should now be enabled...\n if (timeline._dur < timeline.duration()) {\n t = timeline;\n\n while (t._dp) {\n t.rawTime() >= 0 && t.totalTime(t._tTime); //moves the timeline (shifts its startTime) if necessary, and also enables it. If it's currently zero, though, it may not be scheduled to render until later so there's no need to force it to align with the current playhead position. Only move to catch up with the playhead.\n\n t = t._dp;\n }\n }\n\n timeline._zTime = -_tinyNum; // helps ensure that the next render() will be forced (crossingStart = true in render()), even if the duration hasn't changed (we're adding a child which would need to get rendered). Definitely an edge case. Note: we MUST do this AFTER the loop above where the totalTime() might trigger a render() because this _addToTimeline() method gets called from the Animation constructor, BEFORE tweens even record their targets, etc. so we wouldn't want things to get triggered in the wrong order.\n }\n},\n _addToTimeline = function _addToTimeline(timeline, child, position, skipChecks) {\n child.parent && _removeFromParent(child);\n child._start = _round(position + child._delay);\n child._end = _round(child._start + (child.totalDuration() / Math.abs(child.timeScale()) || 0));\n\n _addLinkedListItem(timeline, child, \"_first\", \"_last\", timeline._sort ? \"_start\" : 0);\n\n timeline._recent = child;\n skipChecks || _postAddChecks(timeline, child);\n return timeline;\n},\n _scrollTrigger = function _scrollTrigger(animation, trigger) {\n return (_globals.ScrollTrigger || _missingPlugin(\"scrollTrigger\", trigger)) && _globals.ScrollTrigger.create(trigger, animation);\n},\n _attemptInitTween = function _attemptInitTween(tween, totalTime, force, suppressEvents) {\n _initTween(tween, totalTime);\n\n if (!tween._initted) {\n return 1;\n }\n\n if (!force && tween._pt && (tween._dur && tween.vars.lazy !== false || !tween._dur && tween.vars.lazy) && _lastRenderedFrame !== _ticker.frame) {\n _lazyTweens.push(tween);\n\n tween._lazy = [totalTime, suppressEvents];\n return 1;\n }\n},\n _parentPlayheadIsBeforeStart = function _parentPlayheadIsBeforeStart(_ref) {\n var parent = _ref.parent;\n return parent && parent._ts && parent._initted && !parent._lock && (parent.rawTime() < 0 || _parentPlayheadIsBeforeStart(parent));\n},\n // check parent's _lock because when a timeline repeats/yoyos and does its artificial wrapping, we shouldn't force the ratio back to 0\n_renderZeroDurationTween = function _renderZeroDurationTween(tween, totalTime, suppressEvents, force) {\n var prevRatio = tween.ratio,\n ratio = totalTime < 0 || !totalTime && (!tween._start && _parentPlayheadIsBeforeStart(tween) || (tween._ts < 0 || tween._dp._ts < 0) && tween.data !== \"isFromStart\" && tween.data !== \"isStart\") ? 0 : 1,\n // if the tween or its parent is reversed and the totalTime is 0, we should go to a ratio of 0.\n repeatDelay = tween._rDelay,\n tTime = 0,\n pt,\n iteration,\n prevIteration;\n\n if (repeatDelay && tween._repeat) {\n // in case there's a zero-duration tween that has a repeat with a repeatDelay\n tTime = _clamp(0, tween._tDur, totalTime);\n iteration = _animationCycle(tTime, repeatDelay);\n prevIteration = _animationCycle(tween._tTime, repeatDelay);\n tween._yoyo && iteration & 1 && (ratio = 1 - ratio);\n\n if (iteration !== prevIteration) {\n prevRatio = 1 - ratio;\n tween.vars.repeatRefresh && tween._initted && tween.invalidate();\n }\n }\n\n if (ratio !== prevRatio || force || tween._zTime === _tinyNum || !totalTime && tween._zTime) {\n if (!tween._initted && _attemptInitTween(tween, totalTime, force, suppressEvents)) {\n // if we render the very beginning (time == 0) of a fromTo(), we must force the render (normal tweens wouldn't need to render at a time of 0 when the prevTime was also 0). This is also mandatory to make sure overwriting kicks in immediately.\n return;\n }\n\n prevIteration = tween._zTime;\n tween._zTime = totalTime || (suppressEvents ? _tinyNum : 0); // when the playhead arrives at EXACTLY time 0 (right on top) of a zero-duration tween, we need to discern if events are suppressed so that when the playhead moves again (next time), it'll trigger the callback. If events are NOT suppressed, obviously the callback would be triggered in this render. Basically, the callback should fire either when the playhead ARRIVES or LEAVES this exact spot, not both. Imagine doing a timeline.seek(0) and there's a callback that sits at 0. Since events are suppressed on that seek() by default, nothing will fire, but when the playhead moves off of that position, the callback should fire. This behavior is what people intuitively expect.\n\n suppressEvents || (suppressEvents = totalTime && !prevIteration); // if it was rendered previously at exactly 0 (_zTime) and now the playhead is moving away, DON'T fire callbacks otherwise they'll seem like duplicates.\n\n tween.ratio = ratio;\n tween._from && (ratio = 1 - ratio);\n tween._time = 0;\n tween._tTime = tTime;\n pt = tween._pt;\n\n while (pt) {\n pt.r(ratio, pt.d);\n pt = pt._next;\n }\n\n tween._startAt && totalTime < 0 && tween._startAt.render(totalTime, true, true);\n tween._onUpdate && !suppressEvents && _callback(tween, \"onUpdate\");\n tTime && tween._repeat && !suppressEvents && tween.parent && _callback(tween, \"onRepeat\");\n\n if ((totalTime >= tween._tDur || totalTime < 0) && tween.ratio === ratio) {\n ratio && _removeFromParent(tween, 1);\n\n if (!suppressEvents) {\n _callback(tween, ratio ? \"onComplete\" : \"onReverseComplete\", true);\n\n tween._prom && tween._prom();\n }\n }\n } else if (!tween._zTime) {\n tween._zTime = totalTime;\n }\n},\n _findNextPauseTween = function _findNextPauseTween(animation, prevTime, time) {\n var child;\n\n if (time > prevTime) {\n child = animation._first;\n\n while (child && child._start <= time) {\n if (!child._dur && child.data === \"isPause\" && child._start > prevTime) {\n return child;\n }\n\n child = child._next;\n }\n } else {\n child = animation._last;\n\n while (child && child._start >= time) {\n if (!child._dur && child.data === \"isPause\" && child._start < prevTime) {\n return child;\n }\n\n child = child._prev;\n }\n }\n},\n _setDuration = function _setDuration(animation, duration, skipUncache, leavePlayhead) {\n var repeat = animation._repeat,\n dur = _round(duration) || 0,\n totalProgress = animation._tTime / animation._tDur;\n totalProgress && !leavePlayhead && (animation._time *= dur / animation._dur);\n animation._dur = dur;\n animation._tDur = !repeat ? dur : repeat < 0 ? 1e10 : _round(dur * (repeat + 1) + animation._rDelay * repeat);\n totalProgress && !leavePlayhead ? _alignPlayhead(animation, animation._tTime = animation._tDur * totalProgress) : animation.parent && _setEnd(animation);\n skipUncache || _uncache(animation.parent, animation);\n return animation;\n},\n _onUpdateTotalDuration = function _onUpdateTotalDuration(animation) {\n return animation instanceof Timeline ? _uncache(animation) : _setDuration(animation, animation._dur);\n},\n _zeroPosition = {\n _start: 0,\n endTime: _emptyFunc\n},\n _parsePosition = function _parsePosition(animation, position) {\n var labels = animation.labels,\n recent = animation._recent || _zeroPosition,\n clippedDuration = animation.duration() >= _bigNum ? recent.endTime(false) : animation._dur,\n //in case there's a child that infinitely repeats, users almost never intend for the insertion point of a new child to be based on a SUPER long value like that so we clip it and assume the most recently-added child's endTime should be used instead.\n i,\n offset;\n\n if (_isString(position) && (isNaN(position) || position in labels)) {\n //if the string is a number like \"1\", check to see if there's a label with that name, otherwise interpret it as a number (absolute value).\n i = position.charAt(0);\n\n if (i === \"<\" || i === \">\") {\n return (i === \"<\" ? recent._start : recent.endTime(recent._repeat >= 0)) + (parseFloat(position.substr(1)) || 0);\n }\n\n i = position.indexOf(\"=\");\n\n if (i < 0) {\n position in labels || (labels[position] = clippedDuration);\n return labels[position];\n }\n\n offset = +(position.charAt(i - 1) + position.substr(i + 1));\n return i > 1 ? _parsePosition(animation, position.substr(0, i - 1)) + offset : clippedDuration + offset;\n }\n\n return position == null ? clippedDuration : +position;\n},\n _conditionalReturn = function _conditionalReturn(value, func) {\n return value || value === 0 ? func(value) : func;\n},\n _clamp = function _clamp(min, max, value) {\n return value < min ? min : value > max ? max : value;\n},\n getUnit = function getUnit(value) {\n if (typeof value !== \"string\") {\n return \"\";\n }\n\n var v = _unitExp.exec(value);\n\n return v ? value.substr(v.index + v[0].length) : \"\";\n},\n // note: protect against padded numbers as strings, like \"100.100\". That shouldn't return \"00\" as the unit. If it's numeric, return no unit.\nclamp = function clamp(min, max, value) {\n return _conditionalReturn(value, function (v) {\n return _clamp(min, max, v);\n });\n},\n _slice = [].slice,\n _isArrayLike = function _isArrayLike(value, nonEmpty) {\n return value && _isObject(value) && \"length\" in value && (!nonEmpty && !value.length || value.length - 1 in value && _isObject(value[0])) && !value.nodeType && value !== _win;\n},\n _flatten = function _flatten(ar, leaveStrings, accumulator) {\n if (accumulator === void 0) {\n accumulator = [];\n }\n\n return ar.forEach(function (value) {\n var _accumulator;\n\n return _isString(value) && !leaveStrings || _isArrayLike(value, 1) ? (_accumulator = accumulator).push.apply(_accumulator, toArray(value)) : accumulator.push(value);\n }) || accumulator;\n},\n //takes any value and returns an array. If it's a string (and leaveStrings isn't true), it'll use document.querySelectorAll() and convert that to an array. It'll also accept iterables like jQuery objects.\ntoArray = function toArray(value, leaveStrings) {\n return _isString(value) && !leaveStrings && (_coreInitted || !_wake()) ? _slice.call(_doc.querySelectorAll(value), 0) : _isArray(value) ? _flatten(value, leaveStrings) : _isArrayLike(value) ? _slice.call(value, 0) : value ? [value] : [];\n},\n shuffle = function shuffle(a) {\n return a.sort(function () {\n return .5 - Math.random();\n });\n},\n // alternative that's a bit faster and more reliably diverse but bigger: for (let j, v, i = a.length; i; j = Math.floor(Math.random() * i), v = a[--i], a[i] = a[j], a[j] = v); return a;\n//for distributing values across an array. Can accept a number, a function or (most commonly) a function which can contain the following properties: {base, amount, from, ease, grid, axis, length, each}. Returns a function that expects the following parameters: index, target, array. Recognizes the following\ndistribute = function distribute(v) {\n if (_isFunction(v)) {\n return v;\n }\n\n var vars = _isObject(v) ? v : {\n each: v\n },\n //n:1 is just to indicate v was a number; we leverage that later to set v according to the length we get. If a number is passed in, we treat it like the old stagger value where 0.1, for example, would mean that things would be distributed with 0.1 between each element in the array rather than a total \"amount\" that's chunked out among them all.\n ease = _parseEase(vars.ease),\n from = vars.from || 0,\n base = parseFloat(vars.base) || 0,\n cache = {},\n isDecimal = from > 0 && from < 1,\n ratios = isNaN(from) || isDecimal,\n axis = vars.axis,\n ratioX = from,\n ratioY = from;\n\n if (_isString(from)) {\n ratioX = ratioY = {\n center: .5,\n edges: .5,\n end: 1\n }[from] || 0;\n } else if (!isDecimal && ratios) {\n ratioX = from[0];\n ratioY = from[1];\n }\n\n return function (i, target, a) {\n var l = (a || vars).length,\n distances = cache[l],\n originX,\n originY,\n x,\n y,\n d,\n j,\n max,\n min,\n wrapAt;\n\n if (!distances) {\n wrapAt = vars.grid === \"auto\" ? 0 : (vars.grid || [1, _bigNum])[1];\n\n if (!wrapAt) {\n max = -_bigNum;\n\n while (max < (max = a[wrapAt++].getBoundingClientRect().left) && wrapAt < l) {}\n\n wrapAt--;\n }\n\n distances = cache[l] = [];\n originX = ratios ? Math.min(wrapAt, l) * ratioX - .5 : from % wrapAt;\n originY = ratios ? l * ratioY / wrapAt - .5 : from / wrapAt | 0;\n max = 0;\n min = _bigNum;\n\n for (j = 0; j < l; j++) {\n x = j % wrapAt - originX;\n y = originY - (j / wrapAt | 0);\n distances[j] = d = !axis ? _sqrt(x * x + y * y) : Math.abs(axis === \"y\" ? y : x);\n d > max && (max = d);\n d < min && (min = d);\n }\n\n from === \"random\" && shuffle(distances);\n distances.max = max - min;\n distances.min = min;\n distances.v = l = (parseFloat(vars.amount) || parseFloat(vars.each) * (wrapAt > l ? l - 1 : !axis ? Math.max(wrapAt, l / wrapAt) : axis === \"y\" ? l / wrapAt : wrapAt) || 0) * (from === \"edges\" ? -1 : 1);\n distances.b = l < 0 ? base - l : base;\n distances.u = getUnit(vars.amount || vars.each) || 0; //unit\n\n ease = ease && l < 0 ? _invertEase(ease) : ease;\n }\n\n l = (distances[i] - distances.min) / distances.max || 0;\n return _round(distances.b + (ease ? ease(l) : l) * distances.v) + distances.u; //round in order to work around floating point errors\n };\n},\n _roundModifier = function _roundModifier(v) {\n //pass in 0.1 get a function that'll round to the nearest tenth, or 5 to round to the closest 5, or 0.001 to the closest 1000th, etc.\n var p = v < 1 ? Math.pow(10, (v + \"\").length - 2) : 1; //to avoid floating point math errors (like 24 * 0.1 == 2.4000000000000004), we chop off at a specific number of decimal places (much faster than toFixed()\n\n return function (raw) {\n var n = Math.round(parseFloat(raw) / v) * v * p;\n return (n - n % 1) / p + (_isNumber(raw) ? 0 : getUnit(raw)); // n - n % 1 replaces Math.floor() in order to handle negative values properly. For example, Math.floor(-150.00000000000003) is 151!\n };\n},\n snap = function snap(snapTo, value) {\n var isArray = _isArray(snapTo),\n radius,\n is2D;\n\n if (!isArray && _isObject(snapTo)) {\n radius = isArray = snapTo.radius || _bigNum;\n\n if (snapTo.values) {\n snapTo = toArray(snapTo.values);\n\n if (is2D = !_isNumber(snapTo[0])) {\n radius *= radius; //performance optimization so we don't have to Math.sqrt() in the loop.\n }\n } else {\n snapTo = _roundModifier(snapTo.increment);\n }\n }\n\n return _conditionalReturn(value, !isArray ? _roundModifier(snapTo) : _isFunction(snapTo) ? function (raw) {\n is2D = snapTo(raw);\n return Math.abs(is2D - raw) <= radius ? is2D : raw;\n } : function (raw) {\n var x = parseFloat(is2D ? raw.x : raw),\n y = parseFloat(is2D ? raw.y : 0),\n min = _bigNum,\n closest = 0,\n i = snapTo.length,\n dx,\n dy;\n\n while (i--) {\n if (is2D) {\n dx = snapTo[i].x - x;\n dy = snapTo[i].y - y;\n dx = dx * dx + dy * dy;\n } else {\n dx = Math.abs(snapTo[i] - x);\n }\n\n if (dx < min) {\n min = dx;\n closest = i;\n }\n }\n\n closest = !radius || min <= radius ? snapTo[closest] : raw;\n return is2D || closest === raw || _isNumber(raw) ? closest : closest + getUnit(raw);\n });\n},\n random = function random(min, max, roundingIncrement, returnFunction) {\n return _conditionalReturn(_isArray(min) ? !max : roundingIncrement === true ? !!(roundingIncrement = 0) : !returnFunction, function () {\n return _isArray(min) ? min[~~(Math.random() * min.length)] : (roundingIncrement = roundingIncrement || 1e-5) && (returnFunction = roundingIncrement < 1 ? Math.pow(10, (roundingIncrement + \"\").length - 2) : 1) && Math.floor(Math.round((min - roundingIncrement / 2 + Math.random() * (max - min + roundingIncrement * .99)) / roundingIncrement) * roundingIncrement * returnFunction) / returnFunction;\n });\n},\n pipe = function pipe() {\n for (var _len = arguments.length, functions = new Array(_len), _key = 0; _key < _len; _key++) {\n functions[_key] = arguments[_key];\n }\n\n return function (value) {\n return functions.reduce(function (v, f) {\n return f(v);\n }, value);\n };\n},\n unitize = function unitize(func, unit) {\n return function (value) {\n return func(parseFloat(value)) + (unit || getUnit(value));\n };\n},\n normalize = function normalize(min, max, value) {\n return mapRange(min, max, 0, 1, value);\n},\n _wrapArray = function _wrapArray(a, wrapper, value) {\n return _conditionalReturn(value, function (index) {\n return a[~~wrapper(index)];\n });\n},\n wrap = function wrap(min, max, value) {\n // NOTE: wrap() CANNOT be an arrow function! A very odd compiling bug causes problems (unrelated to GSAP).\n var range = max - min;\n return _isArray(min) ? _wrapArray(min, wrap(0, min.length), max) : _conditionalReturn(value, function (value) {\n return (range + (value - min) % range) % range + min;\n });\n},\n wrapYoyo = function wrapYoyo(min, max, value) {\n var range = max - min,\n total = range * 2;\n return _isArray(min) ? _wrapArray(min, wrapYoyo(0, min.length - 1), max) : _conditionalReturn(value, function (value) {\n value = (total + (value - min) % total) % total || 0;\n return min + (value > range ? total - value : value);\n });\n},\n _replaceRandom = function _replaceRandom(value) {\n //replaces all occurrences of random(...) in a string with the calculated random value. can be a range like random(-100, 100, 5) or an array like random([0, 100, 500])\n var prev = 0,\n s = \"\",\n i,\n nums,\n end,\n isArray;\n\n while (~(i = value.indexOf(\"random(\", prev))) {\n end = value.indexOf(\")\", i);\n isArray = value.charAt(i + 7) === \"[\";\n nums = value.substr(i + 7, end - i - 7).match(isArray ? _delimitedValueExp : _strictNumExp);\n s += value.substr(prev, i - prev) + random(isArray ? nums : +nums[0], isArray ? 0 : +nums[1], +nums[2] || 1e-5);\n prev = end + 1;\n }\n\n return s + value.substr(prev, value.length - prev);\n},\n mapRange = function mapRange(inMin, inMax, outMin, outMax, value) {\n var inRange = inMax - inMin,\n outRange = outMax - outMin;\n return _conditionalReturn(value, function (value) {\n return outMin + ((value - inMin) / inRange * outRange || 0);\n });\n},\n interpolate = function interpolate(start, end, progress, mutate) {\n var func = isNaN(start + end) ? 0 : function (p) {\n return (1 - p) * start + p * end;\n };\n\n if (!func) {\n var isString = _isString(start),\n master = {},\n p,\n i,\n interpolators,\n l,\n il;\n\n progress === true && (mutate = 1) && (progress = null);\n\n if (isString) {\n start = {\n p: start\n };\n end = {\n p: end\n };\n } else if (_isArray(start) && !_isArray(end)) {\n interpolators = [];\n l = start.length;\n il = l - 2;\n\n for (i = 1; i < l; i++) {\n interpolators.push(interpolate(start[i - 1], start[i])); //build the interpolators up front as a performance optimization so that when the function is called many times, it can just reuse them.\n }\n\n l--;\n\n func = function func(p) {\n p *= l;\n var i = Math.min(il, ~~p);\n return interpolators[i](p - i);\n };\n\n progress = end;\n } else if (!mutate) {\n start = _merge(_isArray(start) ? [] : {}, start);\n }\n\n if (!interpolators) {\n for (p in end) {\n _addPropTween.call(master, start, p, \"get\", end[p]);\n }\n\n func = function func(p) {\n return _renderPropTweens(p, master) || (isString ? start.p : start);\n };\n }\n }\n\n return _conditionalReturn(progress, func);\n},\n _getLabelInDirection = function _getLabelInDirection(timeline, fromTime, backward) {\n //used for nextLabel() and previousLabel()\n var labels = timeline.labels,\n min = _bigNum,\n p,\n distance,\n label;\n\n for (p in labels) {\n distance = labels[p] - fromTime;\n\n if (distance < 0 === !!backward && distance && min > (distance = Math.abs(distance))) {\n label = p;\n min = distance;\n }\n }\n\n return label;\n},\n _callback = function _callback(animation, type, executeLazyFirst) {\n var v = animation.vars,\n callback = v[type],\n params,\n scope;\n\n if (!callback) {\n return;\n }\n\n params = v[type + \"Params\"];\n scope = v.callbackScope || animation;\n executeLazyFirst && _lazyTweens.length && _lazyRender(); //in case rendering caused any tweens to lazy-init, we should render them because typically when a timeline finishes, users expect things to have rendered fully. Imagine an onUpdate on a timeline that reports/checks tweened values.\n\n return params ? callback.apply(scope, params) : callback.call(scope);\n},\n _interrupt = function _interrupt(animation) {\n _removeFromParent(animation);\n\n animation.scrollTrigger && animation.scrollTrigger.kill(false);\n animation.progress() < 1 && _callback(animation, \"onInterrupt\");\n return animation;\n},\n _quickTween,\n _createPlugin = function _createPlugin(config) {\n config = !config.name && config[\"default\"] || config; //UMD packaging wraps things oddly, so for example MotionPathHelper becomes {MotionPathHelper:MotionPathHelper, default:MotionPathHelper}.\n\n var name = config.name,\n isFunc = _isFunction(config),\n Plugin = name && !isFunc && config.init ? function () {\n this._props = [];\n } : config,\n //in case someone passes in an object that's not a plugin, like CustomEase\n instanceDefaults = {\n init: _emptyFunc,\n render: _renderPropTweens,\n add: _addPropTween,\n kill: _killPropTweensOf,\n modifier: _addPluginModifier,\n rawVars: 0\n },\n statics = {\n targetTest: 0,\n get: 0,\n getSetter: _getSetter,\n aliases: {},\n register: 0\n };\n\n _wake();\n\n if (config !== Plugin) {\n if (_plugins[name]) {\n return;\n }\n\n _setDefaults(Plugin, _setDefaults(_copyExcluding(config, instanceDefaults), statics)); //static methods\n\n\n _merge(Plugin.prototype, _merge(instanceDefaults, _copyExcluding(config, statics))); //instance methods\n\n\n _plugins[Plugin.prop = name] = Plugin;\n\n if (config.targetTest) {\n _harnessPlugins.push(Plugin);\n\n _reservedProps[name] = 1;\n }\n\n name = (name === \"css\" ? \"CSS\" : name.charAt(0).toUpperCase() + name.substr(1)) + \"Plugin\"; //for the global name. \"motionPath\" should become MotionPathPlugin\n }\n\n _addGlobal(name, Plugin);\n\n config.register && config.register(gsap, Plugin, PropTween);\n},\n\n/*\n * --------------------------------------------------------------------------------------\n * COLORS\n * --------------------------------------------------------------------------------------\n */\n_255 = 255,\n _colorLookup = {\n aqua: [0, _255, _255],\n lime: [0, _255, 0],\n silver: [192, 192, 192],\n black: [0, 0, 0],\n maroon: [128, 0, 0],\n teal: [0, 128, 128],\n blue: [0, 0, _255],\n navy: [0, 0, 128],\n white: [_255, _255, _255],\n olive: [128, 128, 0],\n yellow: [_255, _255, 0],\n orange: [_255, 165, 0],\n gray: [128, 128, 128],\n purple: [128, 0, 128],\n green: [0, 128, 0],\n red: [_255, 0, 0],\n pink: [_255, 192, 203],\n cyan: [0, _255, _255],\n transparent: [_255, _255, _255, 0]\n},\n _hue = function _hue(h, m1, m2) {\n h = h < 0 ? h + 1 : h > 1 ? h - 1 : h;\n return (h * 6 < 1 ? m1 + (m2 - m1) * h * 6 : h < .5 ? m2 : h * 3 < 2 ? m1 + (m2 - m1) * (2 / 3 - h) * 6 : m1) * _255 + .5 | 0;\n},\n splitColor = function splitColor(v, toHSL, forceAlpha) {\n var a = !v ? _colorLookup.black : _isNumber(v) ? [v >> 16, v >> 8 & _255, v & _255] : 0,\n r,\n g,\n b,\n h,\n s,\n l,\n max,\n min,\n d,\n wasHSL;\n\n if (!a) {\n if (v.substr(-1) === \",\") {\n //sometimes a trailing comma is included and we should chop it off (typically from a comma-delimited list of values like a textShadow:\"2px 2px 2px blue, 5px 5px 5px rgb(255,0,0)\" - in this example \"blue,\" has a trailing comma. We could strip it out inside parseComplex() but we'd need to do it to the beginning and ending values plus it wouldn't provide protection from other potential scenarios like if the user passes in a similar value.\n v = v.substr(0, v.length - 1);\n }\n\n if (_colorLookup[v]) {\n a = _colorLookup[v];\n } else if (v.charAt(0) === \"#\") {\n if (v.length < 6) {\n //for shorthand like #9F0 or #9F0F (could have alpha)\n r = v.charAt(1);\n g = v.charAt(2);\n b = v.charAt(3);\n v = \"#\" + r + r + g + g + b + b + (v.length === 5 ? v.charAt(4) + v.charAt(4) : \"\");\n }\n\n if (v.length === 9) {\n // hex with alpha, like #fd5e53ff\n a = parseInt(v.substr(1, 6), 16);\n return [a >> 16, a >> 8 & _255, a & _255, parseInt(v.substr(7), 16) / 255];\n }\n\n v = parseInt(v.substr(1), 16);\n a = [v >> 16, v >> 8 & _255, v & _255];\n } else if (v.substr(0, 3) === \"hsl\") {\n a = wasHSL = v.match(_strictNumExp);\n\n if (!toHSL) {\n h = +a[0] % 360 / 360;\n s = +a[1] / 100;\n l = +a[2] / 100;\n g = l <= .5 ? l * (s + 1) : l + s - l * s;\n r = l * 2 - g;\n a.length > 3 && (a[3] *= 1); //cast as number\n\n a[0] = _hue(h + 1 / 3, r, g);\n a[1] = _hue(h, r, g);\n a[2] = _hue(h - 1 / 3, r, g);\n } else if (~v.indexOf(\"=\")) {\n //if relative values are found, just return the raw strings with the relative prefixes in place.\n a = v.match(_numExp);\n forceAlpha && a.length < 4 && (a[3] = 1);\n return a;\n }\n } else {\n a = v.match(_strictNumExp) || _colorLookup.transparent;\n }\n\n a = a.map(Number);\n }\n\n if (toHSL && !wasHSL) {\n r = a[0] / _255;\n g = a[1] / _255;\n b = a[2] / _255;\n max = Math.max(r, g, b);\n min = Math.min(r, g, b);\n l = (max + min) / 2;\n\n if (max === min) {\n h = s = 0;\n } else {\n d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n h = max === r ? (g - b) / d + (g < b ? 6 : 0) : max === g ? (b - r) / d + 2 : (r - g) / d + 4;\n h *= 60;\n }\n\n a[0] = ~~(h + .5);\n a[1] = ~~(s * 100 + .5);\n a[2] = ~~(l * 100 + .5);\n }\n\n forceAlpha && a.length < 4 && (a[3] = 1);\n return a;\n},\n _colorOrderData = function _colorOrderData(v) {\n // strips out the colors from the string, finds all the numeric slots (with units) and returns an array of those. The Array also has a \"c\" property which is an Array of the index values where the colors belong. This is to help work around issues where there's a mis-matched order of color/numeric data like drop-shadow(#f00 0px 1px 2px) and drop-shadow(0x 1px 2px #f00). This is basically a helper function used in _formatColors()\n var values = [],\n c = [],\n i = -1;\n v.split(_colorExp).forEach(function (v) {\n var a = v.match(_numWithUnitExp) || [];\n values.push.apply(values, a);\n c.push(i += a.length + 1);\n });\n values.c = c;\n return values;\n},\n _formatColors = function _formatColors(s, toHSL, orderMatchData) {\n var result = \"\",\n colors = (s + result).match(_colorExp),\n type = toHSL ? \"hsla(\" : \"rgba(\",\n i = 0,\n c,\n shell,\n d,\n l;\n\n if (!colors) {\n return s;\n }\n\n colors = colors.map(function (color) {\n return (color = splitColor(color, toHSL, 1)) && type + (toHSL ? color[0] + \",\" + color[1] + \"%,\" + color[2] + \"%,\" + color[3] : color.join(\",\")) + \")\";\n });\n\n if (orderMatchData) {\n d = _colorOrderData(s);\n c = orderMatchData.c;\n\n if (c.join(result) !== d.c.join(result)) {\n shell = s.replace(_colorExp, \"1\").split(_numWithUnitExp);\n l = shell.length - 1;\n\n for (; i < l; i++) {\n result += shell[i] + (~c.indexOf(i) ? colors.shift() || type + \"0,0,0,0)\" : (d.length ? d : colors.length ? colors : orderMatchData).shift());\n }\n }\n }\n\n if (!shell) {\n shell = s.split(_colorExp);\n l = shell.length - 1;\n\n for (; i < l; i++) {\n result += shell[i] + colors[i];\n }\n }\n\n return result + shell[l];\n},\n _colorExp = function () {\n var s = \"(?:\\\\b(?:(?:rgb|rgba|hsl|hsla)\\\\(.+?\\\\))|\\\\B#(?:[0-9a-f]{3,4}){1,2}\\\\b\",\n //we'll dynamically build this Regular Expression to conserve file size. After building it, it will be able to find rgb(), rgba(), # (hexadecimal), and named color values like red, blue, purple, etc.,\n p;\n\n for (p in _colorLookup) {\n s += \"|\" + p + \"\\\\b\";\n }\n\n return new RegExp(s + \")\", \"gi\");\n}(),\n _hslExp = /hsl[a]?\\(/,\n _colorStringFilter = function _colorStringFilter(a) {\n var combined = a.join(\" \"),\n toHSL;\n _colorExp.lastIndex = 0;\n\n if (_colorExp.test(combined)) {\n toHSL = _hslExp.test(combined);\n a[1] = _formatColors(a[1], toHSL);\n a[0] = _formatColors(a[0], toHSL, _colorOrderData(a[1])); // make sure the order of numbers/colors match with the END value.\n\n return true;\n }\n},\n\n/*\n * --------------------------------------------------------------------------------------\n * TICKER\n * --------------------------------------------------------------------------------------\n */\n_tickerActive,\n _ticker = function () {\n var _getTime = Date.now,\n _lagThreshold = 500,\n _adjustedLag = 33,\n _startTime = _getTime(),\n _lastUpdate = _startTime,\n _gap = 1000 / 240,\n _nextTime = _gap,\n _listeners = [],\n _id,\n _req,\n _raf,\n _self,\n _delta,\n _i,\n _tick = function _tick(v) {\n var elapsed = _getTime() - _lastUpdate,\n manual = v === true,\n overlap,\n dispatch,\n time,\n frame;\n\n elapsed > _lagThreshold && (_startTime += elapsed - _adjustedLag);\n _lastUpdate += elapsed;\n time = _lastUpdate - _startTime;\n overlap = time - _nextTime;\n\n if (overlap > 0 || manual) {\n frame = ++_self.frame;\n _delta = time - _self.time * 1000;\n _self.time = time = time / 1000;\n _nextTime += overlap + (overlap >= _gap ? 4 : _gap - overlap);\n dispatch = 1;\n }\n\n manual || (_id = _req(_tick)); //make sure the request is made before we dispatch the \"tick\" event so that timing is maintained. Otherwise, if processing the \"tick\" requires a bunch of time (like 15ms) and we're using a setTimeout() that's based on 16.7ms, it'd technically take 31.7ms between frames otherwise.\n\n if (dispatch) {\n for (_i = 0; _i < _listeners.length; _i++) {\n // use _i and check _listeners.length instead of a variable because a listener could get removed during the loop, and if that happens to an element less than the current index, it'd throw things off in the loop.\n _listeners[_i](time, _delta, frame, v);\n }\n }\n };\n\n _self = {\n time: 0,\n frame: 0,\n tick: function tick() {\n _tick(true);\n },\n deltaRatio: function deltaRatio(fps) {\n return _delta / (1000 / (fps || 60));\n },\n wake: function wake() {\n if (_coreReady) {\n if (!_coreInitted && _windowExists()) {\n _win = _coreInitted = window;\n _doc = _win.document || {};\n _globals.gsap = gsap;\n (_win.gsapVersions || (_win.gsapVersions = [])).push(gsap.version);\n\n _install(_installScope || _win.GreenSockGlobals || !_win.gsap && _win || {});\n\n _raf = _win.requestAnimationFrame;\n }\n\n _id && _self.sleep();\n\n _req = _raf || function (f) {\n return setTimeout(f, _nextTime - _self.time * 1000 + 1 | 0);\n };\n\n _tickerActive = 1;\n\n _tick(2);\n }\n },\n sleep: function sleep() {\n (_raf ? _win.cancelAnimationFrame : clearTimeout)(_id);\n _tickerActive = 0;\n _req = _emptyFunc;\n },\n lagSmoothing: function lagSmoothing(threshold, adjustedLag) {\n _lagThreshold = threshold || 1 / _tinyNum; //zero should be interpreted as basically unlimited\n\n _adjustedLag = Math.min(adjustedLag, _lagThreshold, 0);\n },\n fps: function fps(_fps) {\n _gap = 1000 / (_fps || 240);\n _nextTime = _self.time * 1000 + _gap;\n },\n add: function add(callback) {\n _listeners.indexOf(callback) < 0 && _listeners.push(callback);\n\n _wake();\n },\n remove: function remove(callback) {\n var i;\n ~(i = _listeners.indexOf(callback)) && _listeners.splice(i, 1) && _i >= i && _i--;\n },\n _listeners: _listeners\n };\n return _self;\n}(),\n _wake = function _wake() {\n return !_tickerActive && _ticker.wake();\n},\n //also ensures the core classes are initialized.\n\n/*\n* -------------------------------------------------\n* EASING\n* -------------------------------------------------\n*/\n_easeMap = {},\n _customEaseExp = /^[\\d.\\-M][\\d.\\-,\\s]/,\n _quotesExp = /[\"']/g,\n _parseObjectInString = function _parseObjectInString(value) {\n //takes a string like \"{wiggles:10, type:anticipate})\" and turns it into a real object. Notice it ends in \")\" and includes the {} wrappers. This is because we only use this function for parsing ease configs and prioritized optimization rather than reusability.\n var obj = {},\n split = value.substr(1, value.length - 3).split(\":\"),\n key = split[0],\n i = 1,\n l = split.length,\n index,\n val,\n parsedVal;\n\n for (; i < l; i++) {\n val = split[i];\n index = i !== l - 1 ? val.lastIndexOf(\",\") : val.length;\n parsedVal = val.substr(0, index);\n obj[key] = isNaN(parsedVal) ? parsedVal.replace(_quotesExp, \"\").trim() : +parsedVal;\n key = val.substr(index + 1).trim();\n }\n\n return obj;\n},\n _valueInParentheses = function _valueInParentheses(value) {\n var open = value.indexOf(\"(\") + 1,\n close = value.indexOf(\")\"),\n nested = value.indexOf(\"(\", open);\n return value.substring(open, ~nested && nested < close ? value.indexOf(\")\", close + 1) : close);\n},\n _configEaseFromString = function _configEaseFromString(name) {\n //name can be a string like \"elastic.out(1,0.5)\", and pass in _easeMap as obj and it'll parse it out and call the actual function like _easeMap.Elastic.easeOut.config(1,0.5). It will also parse custom ease strings as long as CustomEase is loaded and registered (internally as _easeMap._CE).\n var split = (name + \"\").split(\"(\"),\n ease = _easeMap[split[0]];\n return ease && split.length > 1 && ease.config ? ease.config.apply(null, ~name.indexOf(\"{\") ? [_parseObjectInString(split[1])] : _valueInParentheses(name).split(\",\").map(_numericIfPossible)) : _easeMap._CE && _customEaseExp.test(name) ? _easeMap._CE(\"\", name) : ease;\n},\n _invertEase = function _invertEase(ease) {\n return function (p) {\n return 1 - ease(1 - p);\n };\n},\n // allow yoyoEase to be set in children and have those affected when the parent/ancestor timeline yoyos.\n_propagateYoyoEase = function _propagateYoyoEase(timeline, isYoyo) {\n var child = timeline._first,\n ease;\n\n while (child) {\n if (child instanceof Timeline) {\n _propagateYoyoEase(child, isYoyo);\n } else if (child.vars.yoyoEase && (!child._yoyo || !child._repeat) && child._yoyo !== isYoyo) {\n if (child.timeline) {\n _propagateYoyoEase(child.timeline, isYoyo);\n } else {\n ease = child._ease;\n child._ease = child._yEase;\n child._yEase = ease;\n child._yoyo = isYoyo;\n }\n }\n\n child = child._next;\n }\n},\n _parseEase = function _parseEase(ease, defaultEase) {\n return !ease ? defaultEase : (_isFunction(ease) ? ease : _easeMap[ease] || _configEaseFromString(ease)) || defaultEase;\n},\n _insertEase = function _insertEase(names, easeIn, easeOut, easeInOut) {\n if (easeOut === void 0) {\n easeOut = function easeOut(p) {\n return 1 - easeIn(1 - p);\n };\n }\n\n if (easeInOut === void 0) {\n easeInOut = function easeInOut(p) {\n return p < .5 ? easeIn(p * 2) / 2 : 1 - easeIn((1 - p) * 2) / 2;\n };\n }\n\n var ease = {\n easeIn: easeIn,\n easeOut: easeOut,\n easeInOut: easeInOut\n },\n lowercaseName;\n\n _forEachName(names, function (name) {\n _easeMap[name] = _globals[name] = ease;\n _easeMap[lowercaseName = name.toLowerCase()] = easeOut;\n\n for (var p in ease) {\n _easeMap[lowercaseName + (p === \"easeIn\" ? \".in\" : p === \"easeOut\" ? \".out\" : \".inOut\")] = _easeMap[name + \".\" + p] = ease[p];\n }\n });\n\n return ease;\n},\n _easeInOutFromOut = function _easeInOutFromOut(easeOut) {\n return function (p) {\n return p < .5 ? (1 - easeOut(1 - p * 2)) / 2 : .5 + easeOut((p - .5) * 2) / 2;\n };\n},\n _configElastic = function _configElastic(type, amplitude, period) {\n var p1 = amplitude >= 1 ? amplitude : 1,\n //note: if amplitude is < 1, we simply adjust the period for a more natural feel. Otherwise the math doesn't work right and the curve starts at 1.\n p2 = (period || (type ? .3 : .45)) / (amplitude < 1 ? amplitude : 1),\n p3 = p2 / _2PI * (Math.asin(1 / p1) || 0),\n easeOut = function easeOut(p) {\n return p === 1 ? 1 : p1 * Math.pow(2, -10 * p) * _sin((p - p3) * p2) + 1;\n },\n ease = type === \"out\" ? easeOut : type === \"in\" ? function (p) {\n return 1 - easeOut(1 - p);\n } : _easeInOutFromOut(easeOut);\n\n p2 = _2PI / p2; //precalculate to optimize\n\n ease.config = function (amplitude, period) {\n return _configElastic(type, amplitude, period);\n };\n\n return ease;\n},\n _configBack = function _configBack(type, overshoot) {\n if (overshoot === void 0) {\n overshoot = 1.70158;\n }\n\n var easeOut = function easeOut(p) {\n return p ? --p * p * ((overshoot + 1) * p + overshoot) + 1 : 0;\n },\n ease = type === \"out\" ? easeOut : type === \"in\" ? function (p) {\n return 1 - easeOut(1 - p);\n } : _easeInOutFromOut(easeOut);\n\n ease.config = function (overshoot) {\n return _configBack(type, overshoot);\n };\n\n return ease;\n}; // a cheaper (kb and cpu) but more mild way to get a parameterized weighted ease by feeding in a value between -1 (easeIn) and 1 (easeOut) where 0 is linear.\n// _weightedEase = ratio => {\n// \tlet y = 0.5 + ratio / 2;\n// \treturn p => (2 * (1 - p) * p * y + p * p);\n// },\n// a stronger (but more expensive kb/cpu) parameterized weighted ease that lets you feed in a value between -1 (easeIn) and 1 (easeOut) where 0 is linear.\n// _weightedEaseStrong = ratio => {\n// \tratio = .5 + ratio / 2;\n// \tlet o = 1 / 3 * (ratio < .5 ? ratio : 1 - ratio),\n// \t\tb = ratio - o,\n// \t\tc = ratio + o;\n// \treturn p => p === 1 ? p : 3 * b * (1 - p) * (1 - p) * p + 3 * c * (1 - p) * p * p + p * p * p;\n// };\n\n\n_forEachName(\"Linear,Quad,Cubic,Quart,Quint,Strong\", function (name, i) {\n var power = i < 5 ? i + 1 : i;\n\n _insertEase(name + \",Power\" + (power - 1), i ? function (p) {\n return Math.pow(p, power);\n } : function (p) {\n return p;\n }, function (p) {\n return 1 - Math.pow(1 - p, power);\n }, function (p) {\n return p < .5 ? Math.pow(p * 2, power) / 2 : 1 - Math.pow((1 - p) * 2, power) / 2;\n });\n});\n\n_easeMap.Linear.easeNone = _easeMap.none = _easeMap.Linear.easeIn;\n\n_insertEase(\"Elastic\", _configElastic(\"in\"), _configElastic(\"out\"), _configElastic());\n\n(function (n, c) {\n var n1 = 1 / c,\n n2 = 2 * n1,\n n3 = 2.5 * n1,\n easeOut = function easeOut(p) {\n return p < n1 ? n * p * p : p < n2 ? n * Math.pow(p - 1.5 / c, 2) + .75 : p < n3 ? n * (p -= 2.25 / c) * p + .9375 : n * Math.pow(p - 2.625 / c, 2) + .984375;\n };\n\n _insertEase(\"Bounce\", function (p) {\n return 1 - easeOut(1 - p);\n }, easeOut);\n})(7.5625, 2.75);\n\n_insertEase(\"Expo\", function (p) {\n return p ? Math.pow(2, 10 * (p - 1)) : 0;\n});\n\n_insertEase(\"Circ\", function (p) {\n return -(_sqrt(1 - p * p) - 1);\n});\n\n_insertEase(\"Sine\", function (p) {\n return p === 1 ? 1 : -_cos(p * _HALF_PI) + 1;\n});\n\n_insertEase(\"Back\", _configBack(\"in\"), _configBack(\"out\"), _configBack());\n\n_easeMap.SteppedEase = _easeMap.steps = _globals.SteppedEase = {\n config: function config(steps, immediateStart) {\n if (steps === void 0) {\n steps = 1;\n }\n\n var p1 = 1 / steps,\n p2 = steps + (immediateStart ? 0 : 1),\n p3 = immediateStart ? 1 : 0,\n max = 1 - _tinyNum;\n return function (p) {\n return ((p2 * _clamp(0, max, p) | 0) + p3) * p1;\n };\n }\n};\n_defaults.ease = _easeMap[\"quad.out\"];\n\n_forEachName(\"onComplete,onUpdate,onStart,onRepeat,onReverseComplete,onInterrupt\", function (name) {\n return _callbackNames += name + \",\" + name + \"Params,\";\n});\n/*\n * --------------------------------------------------------------------------------------\n * CACHE\n * --------------------------------------------------------------------------------------\n */\n\n\nexport var GSCache = function GSCache(target, harness) {\n this.id = _gsID++;\n target._gsap = this;\n this.target = target;\n this.harness = harness;\n this.get = harness ? harness.get : _getProperty;\n this.set = harness ? harness.getSetter : _getSetter;\n};\n/*\n * --------------------------------------------------------------------------------------\n * ANIMATION\n * --------------------------------------------------------------------------------------\n */\n\nexport var Animation = /*#__PURE__*/function () {\n function Animation(vars, time) {\n var parent = vars.parent || _globalTimeline;\n this.vars = vars;\n this._delay = +vars.delay || 0;\n\n if (this._repeat = vars.repeat === Infinity ? -2 : vars.repeat || 0) {\n // TODO: repeat: Infinity on a timeline's children must flag that timeline internally and affect its totalDuration, otherwise it'll stop in the negative direction when reaching the start.\n this._rDelay = vars.repeatDelay || 0;\n this._yoyo = !!vars.yoyo || !!vars.yoyoEase;\n }\n\n this._ts = 1;\n\n _setDuration(this, +vars.duration, 1, 1);\n\n this.data = vars.data;\n _tickerActive || _ticker.wake();\n parent && _addToTimeline(parent, this, time || time === 0 ? time : parent._time, 1);\n vars.reversed && this.reverse();\n vars.paused && this.paused(true);\n }\n\n var _proto = Animation.prototype;\n\n _proto.delay = function delay(value) {\n if (value || value === 0) {\n this.parent && this.parent.smoothChildTiming && this.startTime(this._start + value - this._delay);\n this._delay = value;\n return this;\n }\n\n return this._delay;\n };\n\n _proto.duration = function duration(value) {\n return arguments.length ? this.totalDuration(this._repeat > 0 ? value + (value + this._rDelay) * this._repeat : value) : this.totalDuration() && this._dur;\n };\n\n _proto.totalDuration = function totalDuration(value) {\n if (!arguments.length) {\n return this._tDur;\n }\n\n this._dirty = 0;\n return _setDuration(this, this._repeat < 0 ? value : (value - this._repeat * this._rDelay) / (this._repeat + 1));\n };\n\n _proto.totalTime = function totalTime(_totalTime, suppressEvents) {\n _wake();\n\n if (!arguments.length) {\n return this._tTime;\n }\n\n var parent = this._dp;\n\n if (parent && parent.smoothChildTiming && this._ts) {\n _alignPlayhead(this, _totalTime);\n\n !parent._dp || parent.parent || _postAddChecks(parent, this); // edge case: if this is a child of a timeline that already completed, for example, we must re-activate the parent.\n //in case any of the ancestor timelines had completed but should now be enabled, we should reset their totalTime() which will also ensure that they're lined up properly and enabled. Skip for animations that are on the root (wasteful). Example: a TimelineLite.exportRoot() is performed when there's a paused tween on the root, the export will not complete until that tween is unpaused, but imagine a child gets restarted later, after all [unpaused] tweens have completed. The start of that child would get pushed out, but one of the ancestors may have completed.\n\n while (parent.parent) {\n if (parent.parent._time !== parent._start + (parent._ts >= 0 ? parent._tTime / parent._ts : (parent.totalDuration() - parent._tTime) / -parent._ts)) {\n parent.totalTime(parent._tTime, true);\n }\n\n parent = parent.parent;\n }\n\n if (!this.parent && this._dp.autoRemoveChildren && (this._ts > 0 && _totalTime < this._tDur || this._ts < 0 && _totalTime > 0 || !this._tDur && !_totalTime)) {\n //if the animation doesn't have a parent, put it back into its last parent (recorded as _dp for exactly cases like this). Limit to parents with autoRemoveChildren (like globalTimeline) so that if the user manually removes an animation from a timeline and then alters its playhead, it doesn't get added back in.\n _addToTimeline(this._dp, this, this._start - this._delay);\n }\n }\n\n if (this._tTime !== _totalTime || !this._dur && !suppressEvents || this._initted && Math.abs(this._zTime) === _tinyNum || !_totalTime && !this._initted && (this.add || this._ptLookup)) {\n // check for _ptLookup on a Tween instance to ensure it has actually finished being instantiated, otherwise if this.reverse() gets called in the Animation constructor, it could trigger a render() here even though the _targets weren't populated, thus when _init() is called there won't be any PropTweens (it'll act like the tween is non-functional)\n this._ts || (this._pTime = _totalTime); // otherwise, if an animation is paused, then the playhead is moved back to zero, then resumed, it'd revert back to the original time at the pause\n //if (!this._lock) { // avoid endless recursion (not sure we need this yet or if it's worth the performance hit)\n // this._lock = 1;\n\n _lazySafeRender(this, _totalTime, suppressEvents); // this._lock = 0;\n //}\n\n }\n\n return this;\n };\n\n _proto.time = function time(value, suppressEvents) {\n return arguments.length ? this.totalTime(Math.min(this.totalDuration(), value + _elapsedCycleDuration(this)) % this._dur || (value ? this._dur : 0), suppressEvents) : this._time; // note: if the modulus results in 0, the playhead could be exactly at the end or the beginning, and we always defer to the END with a non-zero value, otherwise if you set the time() to the very end (duration()), it would render at the START!\n };\n\n _proto.totalProgress = function totalProgress(value, suppressEvents) {\n return arguments.length ? this.totalTime(this.totalDuration() * value, suppressEvents) : this.totalDuration() ? Math.min(1, this._tTime / this._tDur) : this.ratio;\n };\n\n _proto.progress = function progress(value, suppressEvents) {\n return arguments.length ? this.totalTime(this.duration() * (this._yoyo && !(this.iteration() & 1) ? 1 - value : value) + _elapsedCycleDuration(this), suppressEvents) : this.duration() ? Math.min(1, this._time / this._dur) : this.ratio;\n };\n\n _proto.iteration = function iteration(value, suppressEvents) {\n var cycleDuration = this.duration() + this._rDelay;\n\n return arguments.length ? this.totalTime(this._time + (value - 1) * cycleDuration, suppressEvents) : this._repeat ? _animationCycle(this._tTime, cycleDuration) + 1 : 1;\n } // potential future addition:\n // isPlayingBackwards() {\n // \tlet animation = this,\n // \t\torientation = 1; // 1 = forward, -1 = backward\n // \twhile (animation) {\n // \t\torientation *= animation.reversed() || (animation.repeat() && !(animation.iteration() & 1)) ? -1 : 1;\n // \t\tanimation = animation.parent;\n // \t}\n // \treturn orientation < 0;\n // }\n ;\n\n _proto.timeScale = function timeScale(value) {\n if (!arguments.length) {\n return this._rts === -_tinyNum ? 0 : this._rts; // recorded timeScale. Special case: if someone calls reverse() on an animation with timeScale of 0, we assign it -_tinyNum to remember it's reversed.\n }\n\n if (this._rts === value) {\n return this;\n }\n\n var tTime = this.parent && this._ts ? _parentToChildTotalTime(this.parent._time, this) : this._tTime; // make sure to do the parentToChildTotalTime() BEFORE setting the new _ts because the old one must be used in that calculation.\n // prioritize rendering where the parent's playhead lines up instead of this._tTime because there could be a tween that's animating another tween's timeScale in the same rendering loop (same parent), thus if the timeScale tween renders first, it would alter _start BEFORE _tTime was set on that tick (in the rendering loop), effectively freezing it until the timeScale tween finishes.\n\n this._rts = +value || 0;\n this._ts = this._ps || value === -_tinyNum ? 0 : this._rts; // _ts is the functional timeScale which would be 0 if the animation is paused.\n\n return _recacheAncestors(this.totalTime(_clamp(-this._delay, this._tDur, tTime), true));\n };\n\n _proto.paused = function paused(value) {\n if (!arguments.length) {\n return this._ps;\n }\n\n if (this._ps !== value) {\n this._ps = value;\n\n if (value) {\n this._pTime = this._tTime || Math.max(-this._delay, this.rawTime()); // if the pause occurs during the delay phase, make sure that's factored in when resuming.\n\n this._ts = this._act = 0; // _ts is the functional timeScale, so a paused tween would effectively have a timeScale of 0. We record the \"real\" timeScale as _rts (recorded time scale)\n } else {\n _wake();\n\n this._ts = this._rts; //only defer to _pTime (pauseTime) if tTime is zero. Remember, someone could pause() an animation, then scrub the playhead and resume(). If the parent doesn't have smoothChildTiming, we render at the rawTime() because the startTime won't get updated.\n\n this.totalTime(this.parent && !this.parent.smoothChildTiming ? this.rawTime() : this._tTime || this._pTime, this.progress() === 1 && (this._tTime -= _tinyNum) && Math.abs(this._zTime) !== _tinyNum); // edge case: animation.progress(1).pause().play() wouldn't render again because the playhead is already at the end, but the call to totalTime() below will add it back to its parent...and not remove it again (since removing only happens upon rendering at a new time). Offsetting the _tTime slightly is done simply to cause the final render in totalTime() that'll pop it off its timeline (if autoRemoveChildren is true, of course). Check to make sure _zTime isn't -_tinyNum to avoid an edge case where the playhead is pushed to the end but INSIDE a tween/callback, the timeline itself is paused thus halting rendering and leaving a few unrendered. When resuming, it wouldn't render those otherwise.\n }\n }\n\n return this;\n };\n\n _proto.startTime = function startTime(value) {\n if (arguments.length) {\n this._start = value;\n var parent = this.parent || this._dp;\n parent && (parent._sort || !this.parent) && _addToTimeline(parent, this, value - this._delay);\n return this;\n }\n\n return this._start;\n };\n\n _proto.endTime = function endTime(includeRepeats) {\n return this._start + (_isNotFalse(includeRepeats) ? this.totalDuration() : this.duration()) / Math.abs(this._ts);\n };\n\n _proto.rawTime = function rawTime(wrapRepeats) {\n var parent = this.parent || this._dp; // _dp = detatched parent\n\n return !parent ? this._tTime : wrapRepeats && (!this._ts || this._repeat && this._time && this.totalProgress() < 1) ? this._tTime % (this._dur + this._rDelay) : !this._ts ? this._tTime : _parentToChildTotalTime(parent.rawTime(wrapRepeats), this);\n };\n\n _proto.globalTime = function globalTime(rawTime) {\n var animation = this,\n time = arguments.length ? rawTime : animation.rawTime();\n\n while (animation) {\n time = animation._start + time / (animation._ts || 1);\n animation = animation._dp;\n }\n\n return time;\n };\n\n _proto.repeat = function repeat(value) {\n if (arguments.length) {\n this._repeat = value === Infinity ? -2 : value;\n return _onUpdateTotalDuration(this);\n }\n\n return this._repeat === -2 ? Infinity : this._repeat;\n };\n\n _proto.repeatDelay = function repeatDelay(value) {\n if (arguments.length) {\n this._rDelay = value;\n return _onUpdateTotalDuration(this);\n }\n\n return this._rDelay;\n };\n\n _proto.yoyo = function yoyo(value) {\n if (arguments.length) {\n this._yoyo = value;\n return this;\n }\n\n return this._yoyo;\n };\n\n _proto.seek = function seek(position, suppressEvents) {\n return this.totalTime(_parsePosition(this, position), _isNotFalse(suppressEvents));\n };\n\n _proto.restart = function restart(includeDelay, suppressEvents) {\n return this.play().totalTime(includeDelay ? -this._delay : 0, _isNotFalse(suppressEvents));\n };\n\n _proto.play = function play(from, suppressEvents) {\n from != null && this.seek(from, suppressEvents);\n return this.reversed(false).paused(false);\n };\n\n _proto.reverse = function reverse(from, suppressEvents) {\n from != null && this.seek(from || this.totalDuration(), suppressEvents);\n return this.reversed(true).paused(false);\n };\n\n _proto.pause = function pause(atTime, suppressEvents) {\n atTime != null && this.seek(atTime, suppressEvents);\n return this.paused(true);\n };\n\n _proto.resume = function resume() {\n return this.paused(false);\n };\n\n _proto.reversed = function reversed(value) {\n if (arguments.length) {\n !!value !== this.reversed() && this.timeScale(-this._rts || (value ? -_tinyNum : 0)); // in case timeScale is zero, reversing would have no effect so we use _tinyNum.\n\n return this;\n }\n\n return this._rts < 0;\n };\n\n _proto.invalidate = function invalidate() {\n this._initted = this._act = 0;\n this._zTime = -_tinyNum;\n return this;\n };\n\n _proto.isActive = function isActive() {\n var parent = this.parent || this._dp,\n start = this._start,\n rawTime;\n return !!(!parent || this._ts && this._initted && parent.isActive() && (rawTime = parent.rawTime(true)) >= start && rawTime < this.endTime(true) - _tinyNum);\n };\n\n _proto.eventCallback = function eventCallback(type, callback, params) {\n var vars = this.vars;\n\n if (arguments.length > 1) {\n if (!callback) {\n delete vars[type];\n } else {\n vars[type] = callback;\n params && (vars[type + \"Params\"] = params);\n type === \"onUpdate\" && (this._onUpdate = callback);\n }\n\n return this;\n }\n\n return vars[type];\n };\n\n _proto.then = function then(onFulfilled) {\n var self = this;\n return new Promise(function (resolve) {\n var f = _isFunction(onFulfilled) ? onFulfilled : _passThrough,\n _resolve = function _resolve() {\n var _then = self.then;\n self.then = null; // temporarily null the then() method to avoid an infinite loop (see https://github.com/greensock/GSAP/issues/322)\n\n _isFunction(f) && (f = f(self)) && (f.then || f === self) && (self.then = _then);\n resolve(f);\n self.then = _then;\n };\n\n if (self._initted && self.totalProgress() === 1 && self._ts >= 0 || !self._tTime && self._ts < 0) {\n _resolve();\n } else {\n self._prom = _resolve;\n }\n });\n };\n\n _proto.kill = function kill() {\n _interrupt(this);\n };\n\n return Animation;\n}();\n\n_setDefaults(Animation.prototype, {\n _time: 0,\n _start: 0,\n _end: 0,\n _tTime: 0,\n _tDur: 0,\n _dirty: 0,\n _repeat: 0,\n _yoyo: false,\n parent: null,\n _initted: false,\n _rDelay: 0,\n _ts: 1,\n _dp: 0,\n ratio: 0,\n _zTime: -_tinyNum,\n _prom: 0,\n _ps: false,\n _rts: 1\n});\n/*\n * -------------------------------------------------\n * TIMELINE\n * -------------------------------------------------\n */\n\n\nexport var Timeline = /*#__PURE__*/function (_Animation) {\n _inheritsLoose(Timeline, _Animation);\n\n function Timeline(vars, time) {\n var _this;\n\n if (vars === void 0) {\n vars = {};\n }\n\n _this = _Animation.call(this, vars, time) || this;\n _this.labels = {};\n _this.smoothChildTiming = !!vars.smoothChildTiming;\n _this.autoRemoveChildren = !!vars.autoRemoveChildren;\n _this._sort = _isNotFalse(vars.sortChildren);\n _this.parent && _postAddChecks(_this.parent, _assertThisInitialized(_this));\n vars.scrollTrigger && _scrollTrigger(_assertThisInitialized(_this), vars.scrollTrigger);\n return _this;\n }\n\n var _proto2 = Timeline.prototype;\n\n _proto2.to = function to(targets, vars, position) {\n new Tween(targets, _parseVars(arguments, 0, this), _parsePosition(this, _isNumber(vars) ? arguments[3] : position));\n return this;\n };\n\n _proto2.from = function from(targets, vars, position) {\n new Tween(targets, _parseVars(arguments, 1, this), _parsePosition(this, _isNumber(vars) ? arguments[3] : position));\n return this;\n };\n\n _proto2.fromTo = function fromTo(targets, fromVars, toVars, position) {\n new Tween(targets, _parseVars(arguments, 2, this), _parsePosition(this, _isNumber(fromVars) ? arguments[4] : position));\n return this;\n };\n\n _proto2.set = function set(targets, vars, position) {\n vars.duration = 0;\n vars.parent = this;\n _inheritDefaults(vars).repeatDelay || (vars.repeat = 0);\n vars.immediateRender = !!vars.immediateRender;\n new Tween(targets, vars, _parsePosition(this, position), 1);\n return this;\n };\n\n _proto2.call = function call(callback, params, position) {\n return _addToTimeline(this, Tween.delayedCall(0, callback, params), _parsePosition(this, position));\n } //ONLY for backward compatibility! Maybe delete?\n ;\n\n _proto2.staggerTo = function staggerTo(targets, duration, vars, stagger, position, onCompleteAll, onCompleteAllParams) {\n vars.duration = duration;\n vars.stagger = vars.stagger || stagger;\n vars.onComplete = onCompleteAll;\n vars.onCompleteParams = onCompleteAllParams;\n vars.parent = this;\n new Tween(targets, vars, _parsePosition(this, position));\n return this;\n };\n\n _proto2.staggerFrom = function staggerFrom(targets, duration, vars, stagger, position, onCompleteAll, onCompleteAllParams) {\n vars.runBackwards = 1;\n _inheritDefaults(vars).immediateRender = _isNotFalse(vars.immediateRender);\n return this.staggerTo(targets, duration, vars, stagger, position, onCompleteAll, onCompleteAllParams);\n };\n\n _proto2.staggerFromTo = function staggerFromTo(targets, duration, fromVars, toVars, stagger, position, onCompleteAll, onCompleteAllParams) {\n toVars.startAt = fromVars;\n _inheritDefaults(toVars).immediateRender = _isNotFalse(toVars.immediateRender);\n return this.staggerTo(targets, duration, toVars, stagger, position, onCompleteAll, onCompleteAllParams);\n };\n\n _proto2.render = function render(totalTime, suppressEvents, force) {\n var prevTime = this._time,\n tDur = this._dirty ? this.totalDuration() : this._tDur,\n dur = this._dur,\n tTime = this !== _globalTimeline && totalTime > tDur - _tinyNum && totalTime >= 0 ? tDur : totalTime < _tinyNum ? 0 : totalTime,\n crossingStart = this._zTime < 0 !== totalTime < 0 && (this._initted || !dur),\n time,\n child,\n next,\n iteration,\n cycleDuration,\n prevPaused,\n pauseTween,\n timeScale,\n prevStart,\n prevIteration,\n yoyo,\n isYoyo;\n\n if (tTime !== this._tTime || force || crossingStart) {\n if (prevTime !== this._time && dur) {\n //if totalDuration() finds a child with a negative startTime and smoothChildTiming is true, things get shifted around internally so we need to adjust the time accordingly. For example, if a tween starts at -30 we must shift EVERYTHING forward 30 seconds and move this timeline's startTime backward by 30 seconds so that things align with the playhead (no jump).\n tTime += this._time - prevTime;\n totalTime += this._time - prevTime;\n }\n\n time = tTime;\n prevStart = this._start;\n timeScale = this._ts;\n prevPaused = !timeScale;\n\n if (crossingStart) {\n dur || (prevTime = this._zTime); //when the playhead arrives at EXACTLY time 0 (right on top) of a zero-duration timeline, we need to discern if events are suppressed so that when the playhead moves again (next time), it'll trigger the callback. If events are NOT suppressed, obviously the callback would be triggered in this render. Basically, the callback should fire either when the playhead ARRIVES or LEAVES this exact spot, not both. Imagine doing a timeline.seek(0) and there's a callback that sits at 0. Since events are suppressed on that seek() by default, nothing will fire, but when the playhead moves off of that position, the callback should fire. This behavior is what people intuitively expect.\n\n (totalTime || !suppressEvents) && (this._zTime = totalTime);\n }\n\n if (this._repeat) {\n //adjust the time for repeats and yoyos\n yoyo = this._yoyo;\n cycleDuration = dur + this._rDelay;\n\n if (this._repeat < -1 && totalTime < 0) {\n return this.totalTime(cycleDuration * 100 + totalTime, suppressEvents, force);\n }\n\n time = _round(tTime % cycleDuration); //round to avoid floating point errors. (4 % 0.8 should be 0 but some browsers report it as 0.79999999!)\n\n if (tTime === tDur) {\n // the tDur === tTime is for edge cases where there's a lengthy decimal on the duration and it may reach the very end but the time is rendered as not-quite-there (remember, tDur is rounded to 4 decimals whereas dur isn't)\n iteration = this._repeat;\n time = dur;\n } else {\n iteration = ~~(tTime / cycleDuration);\n\n if (iteration && iteration === tTime / cycleDuration) {\n time = dur;\n iteration--;\n }\n\n time > dur && (time = dur);\n }\n\n prevIteration = _animationCycle(this._tTime, cycleDuration);\n !prevTime && this._tTime && prevIteration !== iteration && (prevIteration = iteration); // edge case - if someone does addPause() at the very beginning of a repeating timeline, that pause is technically at the same spot as the end which causes this._time to get set to 0 when the totalTime would normally place the playhead at the end. See https://greensock.com/forums/topic/23823-closing-nav-animation-not-working-on-ie-and-iphone-6-maybe-other-older-browser/?tab=comments#comment-113005\n\n if (yoyo && iteration & 1) {\n time = dur - time;\n isYoyo = 1;\n }\n /*\n make sure children at the end/beginning of the timeline are rendered properly. If, for example,\n a 3-second long timeline rendered at 2.9 seconds previously, and now renders at 3.2 seconds (which\n would get translated to 2.8 seconds if the timeline yoyos or 0.2 seconds if it just repeats), there\n could be a callback or a short tween that's at 2.95 or 3 seconds in which wouldn't render. So\n we need to push the timeline to the end (and/or beginning depending on its yoyo value). Also we must\n ensure that zero-duration tweens at the very beginning or end of the Timeline work.\n */\n\n\n if (iteration !== prevIteration && !this._lock) {\n var rewinding = yoyo && prevIteration & 1,\n doesWrap = rewinding === (yoyo && iteration & 1);\n iteration < prevIteration && (rewinding = !rewinding);\n prevTime = rewinding ? 0 : dur;\n this._lock = 1;\n this.render(prevTime || (isYoyo ? 0 : _round(iteration * cycleDuration)), suppressEvents, !dur)._lock = 0;\n !suppressEvents && this.parent && _callback(this, \"onRepeat\");\n this.vars.repeatRefresh && !isYoyo && (this.invalidate()._lock = 1);\n\n if (prevTime && prevTime !== this._time || prevPaused !== !this._ts || this.vars.onRepeat && !this.parent && !this._act) {\n // if prevTime is 0 and we render at the very end, _time will be the end, thus won't match. So in this edge case, prevTime won't match _time but that's okay. If it gets killed in the onRepeat, eject as well.\n return this;\n }\n\n dur = this._dur; // in case the duration changed in the onRepeat\n\n tDur = this._tDur;\n\n if (doesWrap) {\n this._lock = 2;\n prevTime = rewinding ? dur : -0.0001;\n this.render(prevTime, true);\n }\n\n this._lock = 0;\n\n if (!this._ts && !prevPaused) {\n return this;\n } //in order for yoyoEase to work properly when there's a stagger, we must swap out the ease in each sub-tween.\n\n\n _propagateYoyoEase(this, isYoyo);\n }\n }\n\n if (this._hasPause && !this._forcing && this._lock < 2) {\n pauseTween = _findNextPauseTween(this, _round(prevTime), _round(time));\n\n if (pauseTween) {\n tTime -= time - (time = pauseTween._start);\n }\n }\n\n this._tTime = tTime;\n this._time = time;\n this._act = !timeScale; //as long as it's not paused, force it to be active so that if the user renders independent of the parent timeline, it'll be forced to re-render on the next tick.\n\n if (!this._initted) {\n this._onUpdate = this.vars.onUpdate;\n this._initted = 1;\n this._zTime = totalTime;\n prevTime = 0; // upon init, the playhead should always go forward; someone could invalidate() a completed timeline and then if they restart(), that would make child tweens render in reverse order which could lock in the wrong starting values if they build on each other, like tl.to(obj, {x: 100}).to(obj, {x: 0}).\n }\n\n !prevTime && time && !suppressEvents && _callback(this, \"onStart\");\n\n if (time >= prevTime && totalTime >= 0) {\n child = this._first;\n\n while (child) {\n next = child._next;\n\n if ((child._act || time >= child._start) && child._ts && pauseTween !== child) {\n if (child.parent !== this) {\n // an extreme edge case - the child's render could do something like kill() the \"next\" one in the linked list, or reparent it. In that case we must re-initiate the whole render to be safe.\n return this.render(totalTime, suppressEvents, force);\n }\n\n child.render(child._ts > 0 ? (time - child._start) * child._ts : (child._dirty ? child.totalDuration() : child._tDur) + (time - child._start) * child._ts, suppressEvents, force);\n\n if (time !== this._time || !this._ts && !prevPaused) {\n //in case a tween pauses or seeks the timeline when rendering, like inside of an onUpdate/onComplete\n pauseTween = 0;\n next && (tTime += this._zTime = -_tinyNum); // it didn't finish rendering, so flag zTime as negative so that so that the next time render() is called it'll be forced (to render any remaining children)\n\n break;\n }\n }\n\n child = next;\n }\n } else {\n child = this._last;\n var adjustedTime = totalTime < 0 ? totalTime : time; //when the playhead goes backward beyond the start of this timeline, we must pass that information down to the child animations so that zero-duration tweens know whether to render their starting or ending values.\n\n while (child) {\n next = child._prev;\n\n if ((child._act || adjustedTime <= child._end) && child._ts && pauseTween !== child) {\n if (child.parent !== this) {\n // an extreme edge case - the child's render could do something like kill() the \"next\" one in the linked list, or reparent it. In that case we must re-initiate the whole render to be safe.\n return this.render(totalTime, suppressEvents, force);\n }\n\n child.render(child._ts > 0 ? (adjustedTime - child._start) * child._ts : (child._dirty ? child.totalDuration() : child._tDur) + (adjustedTime - child._start) * child._ts, suppressEvents, force);\n\n if (time !== this._time || !this._ts && !prevPaused) {\n //in case a tween pauses or seeks the timeline when rendering, like inside of an onUpdate/onComplete\n pauseTween = 0;\n next && (tTime += this._zTime = adjustedTime ? -_tinyNum : _tinyNum); // it didn't finish rendering, so adjust zTime so that so that the next time render() is called it'll be forced (to render any remaining children)\n\n break;\n }\n }\n\n child = next;\n }\n }\n\n if (pauseTween && !suppressEvents) {\n this.pause();\n pauseTween.render(time >= prevTime ? 0 : -_tinyNum)._zTime = time >= prevTime ? 1 : -1;\n\n if (this._ts) {\n //the callback resumed playback! So since we may have held back the playhead due to where the pause is positioned, go ahead and jump to where it's SUPPOSED to be (if no pause happened).\n this._start = prevStart; //if the pause was at an earlier time and the user resumed in the callback, it could reposition the timeline (changing its startTime), throwing things off slightly, so we make sure the _start doesn't shift.\n\n _setEnd(this);\n\n return this.render(totalTime, suppressEvents, force);\n }\n }\n\n this._onUpdate && !suppressEvents && _callback(this, \"onUpdate\", true);\n if (tTime === tDur && tDur >= this.totalDuration() || !tTime && prevTime) if (prevStart === this._start || Math.abs(timeScale) !== Math.abs(this._ts)) if (!this._lock) {\n (totalTime || !dur) && (tTime === tDur && this._ts > 0 || !tTime && this._ts < 0) && _removeFromParent(this, 1); // don't remove if the timeline is reversed and the playhead isn't at 0, otherwise tl.progress(1).reverse() won't work. Only remove if the playhead is at the end and timeScale is positive, or if the playhead is at 0 and the timeScale is negative.\n\n if (!suppressEvents && !(totalTime < 0 && !prevTime) && (tTime || prevTime)) {\n _callback(this, tTime === tDur ? \"onComplete\" : \"onReverseComplete\", true);\n\n this._prom && !(tTime < tDur && this.timeScale() > 0) && this._prom();\n }\n }\n }\n\n return this;\n };\n\n _proto2.add = function add(child, position) {\n var _this2 = this;\n\n _isNumber(position) || (position = _parsePosition(this, position));\n\n if (!(child instanceof Animation)) {\n if (_isArray(child)) {\n child.forEach(function (obj) {\n return _this2.add(obj, position);\n });\n return this;\n }\n\n if (_isString(child)) {\n return this.addLabel(child, position);\n }\n\n if (_isFunction(child)) {\n child = Tween.delayedCall(0, child);\n } else {\n return this;\n }\n }\n\n return this !== child ? _addToTimeline(this, child, position) : this; //don't allow a timeline to be added to itself as a child!\n };\n\n _proto2.getChildren = function getChildren(nested, tweens, timelines, ignoreBeforeTime) {\n if (nested === void 0) {\n nested = true;\n }\n\n if (tweens === void 0) {\n tweens = true;\n }\n\n if (timelines === void 0) {\n timelines = true;\n }\n\n if (ignoreBeforeTime === void 0) {\n ignoreBeforeTime = -_bigNum;\n }\n\n var a = [],\n child = this._first;\n\n while (child) {\n if (child._start >= ignoreBeforeTime) {\n if (child instanceof Tween) {\n tweens && a.push(child);\n } else {\n timelines && a.push(child);\n nested && a.push.apply(a, child.getChildren(true, tweens, timelines));\n }\n }\n\n child = child._next;\n }\n\n return a;\n };\n\n _proto2.getById = function getById(id) {\n var animations = this.getChildren(1, 1, 1),\n i = animations.length;\n\n while (i--) {\n if (animations[i].vars.id === id) {\n return animations[i];\n }\n }\n };\n\n _proto2.remove = function remove(child) {\n if (_isString(child)) {\n return this.removeLabel(child);\n }\n\n if (_isFunction(child)) {\n return this.killTweensOf(child);\n }\n\n _removeLinkedListItem(this, child);\n\n if (child === this._recent) {\n this._recent = this._last;\n }\n\n return _uncache(this);\n };\n\n _proto2.totalTime = function totalTime(_totalTime2, suppressEvents) {\n if (!arguments.length) {\n return this._tTime;\n }\n\n this._forcing = 1;\n\n if (!this._dp && this._ts) {\n //special case for the global timeline (or any other that has no parent or detached parent).\n this._start = _round(_ticker.time - (this._ts > 0 ? _totalTime2 / this._ts : (this.totalDuration() - _totalTime2) / -this._ts));\n }\n\n _Animation.prototype.totalTime.call(this, _totalTime2, suppressEvents);\n\n this._forcing = 0;\n return this;\n };\n\n _proto2.addLabel = function addLabel(label, position) {\n this.labels[label] = _parsePosition(this, position);\n return this;\n };\n\n _proto2.removeLabel = function removeLabel(label) {\n delete this.labels[label];\n return this;\n };\n\n _proto2.addPause = function addPause(position, callback, params) {\n var t = Tween.delayedCall(0, callback || _emptyFunc, params);\n t.data = \"isPause\";\n this._hasPause = 1;\n return _addToTimeline(this, t, _parsePosition(this, position));\n };\n\n _proto2.removePause = function removePause(position) {\n var child = this._first;\n position = _parsePosition(this, position);\n\n while (child) {\n if (child._start === position && child.data === \"isPause\") {\n _removeFromParent(child);\n }\n\n child = child._next;\n }\n };\n\n _proto2.killTweensOf = function killTweensOf(targets, props, onlyActive) {\n var tweens = this.getTweensOf(targets, onlyActive),\n i = tweens.length;\n\n while (i--) {\n _overwritingTween !== tweens[i] && tweens[i].kill(targets, props);\n }\n\n return this;\n };\n\n _proto2.getTweensOf = function getTweensOf(targets, onlyActive) {\n var a = [],\n parsedTargets = toArray(targets),\n child = this._first,\n isGlobalTime = _isNumber(onlyActive),\n // a number is interpreted as a global time. If the animation spans\n children;\n\n while (child) {\n if (child instanceof Tween) {\n if (_arrayContainsAny(child._targets, parsedTargets) && (isGlobalTime ? (!_overwritingTween || child._initted && child._ts) && child.globalTime(0) <= onlyActive && child.globalTime(child.totalDuration()) > onlyActive : !onlyActive || child.isActive())) {\n // note: if this is for overwriting, it should only be for tweens that aren't paused and are initted.\n a.push(child);\n }\n } else if ((children = child.getTweensOf(parsedTargets, onlyActive)).length) {\n a.push.apply(a, children);\n }\n\n child = child._next;\n }\n\n return a;\n } // potential future feature - targets() on timelines\n // targets() {\n // \tlet result = [];\n // \tthis.getChildren(true, true, false).forEach(t => result.push(...t.targets()));\n // \treturn result;\n // }\n ;\n\n _proto2.tweenTo = function tweenTo(position, vars) {\n vars = vars || {};\n\n var tl = this,\n endTime = _parsePosition(tl, position),\n _vars = vars,\n startAt = _vars.startAt,\n _onStart = _vars.onStart,\n onStartParams = _vars.onStartParams,\n immediateRender = _vars.immediateRender,\n tween = Tween.to(tl, _setDefaults({\n ease: vars.ease || \"none\",\n lazy: false,\n immediateRender: false,\n time: endTime,\n overwrite: \"auto\",\n duration: vars.duration || Math.abs((endTime - (startAt && \"time\" in startAt ? startAt.time : tl._time)) / tl.timeScale()) || _tinyNum,\n onStart: function onStart() {\n tl.pause();\n var duration = vars.duration || Math.abs((endTime - tl._time) / tl.timeScale());\n tween._dur !== duration && _setDuration(tween, duration, 0, 1).render(tween._time, true, true);\n _onStart && _onStart.apply(tween, onStartParams || []); //in case the user had an onStart in the vars - we don't want to overwrite it.\n }\n }, vars));\n\n return immediateRender ? tween.render(0) : tween;\n };\n\n _proto2.tweenFromTo = function tweenFromTo(fromPosition, toPosition, vars) {\n return this.tweenTo(toPosition, _setDefaults({\n startAt: {\n time: _parsePosition(this, fromPosition)\n }\n }, vars));\n };\n\n _proto2.recent = function recent() {\n return this._recent;\n };\n\n _proto2.nextLabel = function nextLabel(afterTime) {\n if (afterTime === void 0) {\n afterTime = this._time;\n }\n\n return _getLabelInDirection(this, _parsePosition(this, afterTime));\n };\n\n _proto2.previousLabel = function previousLabel(beforeTime) {\n if (beforeTime === void 0) {\n beforeTime = this._time;\n }\n\n return _getLabelInDirection(this, _parsePosition(this, beforeTime), 1);\n };\n\n _proto2.currentLabel = function currentLabel(value) {\n return arguments.length ? this.seek(value, true) : this.previousLabel(this._time + _tinyNum);\n };\n\n _proto2.shiftChildren = function shiftChildren(amount, adjustLabels, ignoreBeforeTime) {\n if (ignoreBeforeTime === void 0) {\n ignoreBeforeTime = 0;\n }\n\n var child = this._first,\n labels = this.labels,\n p;\n\n while (child) {\n if (child._start >= ignoreBeforeTime) {\n child._start += amount;\n child._end += amount;\n }\n\n child = child._next;\n }\n\n if (adjustLabels) {\n for (p in labels) {\n if (labels[p] >= ignoreBeforeTime) {\n labels[p] += amount;\n }\n }\n }\n\n return _uncache(this);\n };\n\n _proto2.invalidate = function invalidate() {\n var child = this._first;\n this._lock = 0;\n\n while (child) {\n child.invalidate();\n child = child._next;\n }\n\n return _Animation.prototype.invalidate.call(this);\n };\n\n _proto2.clear = function clear(includeLabels) {\n if (includeLabels === void 0) {\n includeLabels = true;\n }\n\n var child = this._first,\n next;\n\n while (child) {\n next = child._next;\n this.remove(child);\n child = next;\n }\n\n this._dp && (this._time = this._tTime = this._pTime = 0);\n includeLabels && (this.labels = {});\n return _uncache(this);\n };\n\n _proto2.totalDuration = function totalDuration(value) {\n var max = 0,\n self = this,\n child = self._last,\n prevStart = _bigNum,\n prev,\n start,\n parent;\n\n if (arguments.length) {\n return self.timeScale((self._repeat < 0 ? self.duration() : self.totalDuration()) / (self.reversed() ? -value : value));\n }\n\n if (self._dirty) {\n parent = self.parent;\n\n while (child) {\n prev = child._prev; //record it here in case the tween changes position in the sequence...\n\n child._dirty && child.totalDuration(); //could change the tween._startTime, so make sure the animation's cache is clean before analyzing it.\n\n start = child._start;\n\n if (start > prevStart && self._sort && child._ts && !self._lock) {\n //in case one of the tweens shifted out of order, it needs to be re-inserted into the correct position in the sequence\n self._lock = 1; //prevent endless recursive calls - there are methods that get triggered that check duration/totalDuration when we add().\n\n _addToTimeline(self, child, start - child._delay, 1)._lock = 0;\n } else {\n prevStart = start;\n }\n\n if (start < 0 && child._ts) {\n //children aren't allowed to have negative startTimes unless smoothChildTiming is true, so adjust here if one is found.\n max -= start;\n\n if (!parent && !self._dp || parent && parent.smoothChildTiming) {\n self._start += start / self._ts;\n self._time -= start;\n self._tTime -= start;\n }\n\n self.shiftChildren(-start, false, -1e999);\n prevStart = 0;\n }\n\n child._end > max && child._ts && (max = child._end);\n child = prev;\n }\n\n _setDuration(self, self === _globalTimeline && self._time > max ? self._time : max, 1, 1);\n\n self._dirty = 0;\n }\n\n return self._tDur;\n };\n\n Timeline.updateRoot = function updateRoot(time) {\n if (_globalTimeline._ts) {\n _lazySafeRender(_globalTimeline, _parentToChildTotalTime(time, _globalTimeline));\n\n _lastRenderedFrame = _ticker.frame;\n }\n\n if (_ticker.frame >= _nextGCFrame) {\n _nextGCFrame += _config.autoSleep || 120;\n var child = _globalTimeline._first;\n if (!child || !child._ts) if (_config.autoSleep && _ticker._listeners.length < 2) {\n while (child && !child._ts) {\n child = child._next;\n }\n\n child || _ticker.sleep();\n }\n }\n };\n\n return Timeline;\n}(Animation);\n\n_setDefaults(Timeline.prototype, {\n _lock: 0,\n _hasPause: 0,\n _forcing: 0\n});\n\nvar _addComplexStringPropTween = function _addComplexStringPropTween(target, prop, start, end, setter, stringFilter, funcParam) {\n //note: we call _addComplexStringPropTween.call(tweenInstance...) to ensure that it's scoped properly. We may call it from within a plugin too, thus \"this\" would refer to the plugin.\n var pt = new PropTween(this._pt, target, prop, 0, 1, _renderComplexString, null, setter),\n index = 0,\n matchIndex = 0,\n result,\n startNums,\n color,\n endNum,\n chunk,\n startNum,\n hasRandom,\n a;\n pt.b = start;\n pt.e = end;\n start += \"\"; //ensure values are strings\n\n end += \"\";\n\n if (hasRandom = ~end.indexOf(\"random(\")) {\n end = _replaceRandom(end);\n }\n\n if (stringFilter) {\n a = [start, end];\n stringFilter(a, target, prop); //pass an array with the starting and ending values and let the filter do whatever it needs to the values.\n\n start = a[0];\n end = a[1];\n }\n\n startNums = start.match(_complexStringNumExp) || [];\n\n while (result = _complexStringNumExp.exec(end)) {\n endNum = result[0];\n chunk = end.substring(index, result.index);\n\n if (color) {\n color = (color + 1) % 5;\n } else if (chunk.substr(-5) === \"rgba(\") {\n color = 1;\n }\n\n if (endNum !== startNums[matchIndex++]) {\n startNum = parseFloat(startNums[matchIndex - 1]) || 0; //these nested PropTweens are handled in a special way - we'll never actually call a render or setter method on them. We'll just loop through them in the parent complex string PropTween's render method.\n\n pt._pt = {\n _next: pt._pt,\n p: chunk || matchIndex === 1 ? chunk : \",\",\n //note: SVG spec allows omission of comma/space when a negative sign is wedged between two numbers, like 2.5-5.3 instead of 2.5,-5.3 but when tweening, the negative value may switch to positive, so we insert the comma just in case.\n s: startNum,\n c: endNum.charAt(1) === \"=\" ? parseFloat(endNum.substr(2)) * (endNum.charAt(0) === \"-\" ? -1 : 1) : parseFloat(endNum) - startNum,\n m: color && color < 4 ? Math.round : 0\n };\n index = _complexStringNumExp.lastIndex;\n }\n }\n\n pt.c = index < end.length ? end.substring(index, end.length) : \"\"; //we use the \"c\" of the PropTween to store the final part of the string (after the last number)\n\n pt.fp = funcParam;\n\n if (_relExp.test(end) || hasRandom) {\n pt.e = 0; //if the end string contains relative values or dynamic random(...) values, delete the end it so that on the final render we don't actually set it to the string with += or -= characters (forces it to use the calculated value).\n }\n\n this._pt = pt; //start the linked list with this new PropTween. Remember, we call _addComplexStringPropTween.call(tweenInstance...) to ensure that it's scoped properly. We may call it from within a plugin too, thus \"this\" would refer to the plugin.\n\n return pt;\n},\n _addPropTween = function _addPropTween(target, prop, start, end, index, targets, modifier, stringFilter, funcParam) {\n _isFunction(end) && (end = end(index || 0, target, targets));\n var currentValue = target[prop],\n parsedStart = start !== \"get\" ? start : !_isFunction(currentValue) ? currentValue : funcParam ? target[prop.indexOf(\"set\") || !_isFunction(target[\"get\" + prop.substr(3)]) ? prop : \"get\" + prop.substr(3)](funcParam) : target[prop](),\n setter = !_isFunction(currentValue) ? _setterPlain : funcParam ? _setterFuncWithParam : _setterFunc,\n pt;\n\n if (_isString(end)) {\n if (~end.indexOf(\"random(\")) {\n end = _replaceRandom(end);\n }\n\n if (end.charAt(1) === \"=\") {\n end = parseFloat(parsedStart) + parseFloat(end.substr(2)) * (end.charAt(0) === \"-\" ? -1 : 1) + (getUnit(parsedStart) || 0);\n }\n }\n\n if (parsedStart !== end) {\n if (!isNaN(parsedStart * end)) {\n pt = new PropTween(this._pt, target, prop, +parsedStart || 0, end - (parsedStart || 0), typeof currentValue === \"boolean\" ? _renderBoolean : _renderPlain, 0, setter);\n funcParam && (pt.fp = funcParam);\n modifier && pt.modifier(modifier, this, target);\n return this._pt = pt;\n }\n\n !currentValue && !(prop in target) && _missingPlugin(prop, end);\n return _addComplexStringPropTween.call(this, target, prop, parsedStart, end, setter, stringFilter || _config.stringFilter, funcParam);\n }\n},\n //creates a copy of the vars object and processes any function-based values (putting the resulting values directly into the copy) as well as strings with \"random()\" in them. It does NOT process relative values.\n_processVars = function _processVars(vars, index, target, targets, tween) {\n _isFunction(vars) && (vars = _parseFuncOrString(vars, tween, index, target, targets));\n\n if (!_isObject(vars) || vars.style && vars.nodeType || _isArray(vars) || _isTypedArray(vars)) {\n return _isString(vars) ? _parseFuncOrString(vars, tween, index, target, targets) : vars;\n }\n\n var copy = {},\n p;\n\n for (p in vars) {\n copy[p] = _parseFuncOrString(vars[p], tween, index, target, targets);\n }\n\n return copy;\n},\n _checkPlugin = function _checkPlugin(property, vars, tween, index, target, targets) {\n var plugin, pt, ptLookup, i;\n\n if (_plugins[property] && (plugin = new _plugins[property]()).init(target, plugin.rawVars ? vars[property] : _processVars(vars[property], index, target, targets, tween), tween, index, targets) !== false) {\n tween._pt = pt = new PropTween(tween._pt, target, property, 0, 1, plugin.render, plugin, 0, plugin.priority);\n\n if (tween !== _quickTween) {\n ptLookup = tween._ptLookup[tween._targets.indexOf(target)]; //note: we can't use tween._ptLookup[index] because for staggered tweens, the index from the fullTargets array won't match what it is in each individual tween that spawns from the stagger.\n\n i = plugin._props.length;\n\n while (i--) {\n ptLookup[plugin._props[i]] = pt;\n }\n }\n }\n\n return plugin;\n},\n _overwritingTween,\n //store a reference temporarily so we can avoid overwriting itself.\n_initTween = function _initTween(tween, time) {\n var vars = tween.vars,\n ease = vars.ease,\n startAt = vars.startAt,\n immediateRender = vars.immediateRender,\n lazy = vars.lazy,\n onUpdate = vars.onUpdate,\n onUpdateParams = vars.onUpdateParams,\n callbackScope = vars.callbackScope,\n runBackwards = vars.runBackwards,\n yoyoEase = vars.yoyoEase,\n keyframes = vars.keyframes,\n autoRevert = vars.autoRevert,\n dur = tween._dur,\n prevStartAt = tween._startAt,\n targets = tween._targets,\n parent = tween.parent,\n fullTargets = parent && parent.data === \"nested\" ? parent.parent._targets : targets,\n autoOverwrite = tween._overwrite === \"auto\" && !_suppressOverwrites,\n tl = tween.timeline,\n cleanVars,\n i,\n p,\n pt,\n target,\n hasPriority,\n gsData,\n harness,\n plugin,\n ptLookup,\n index,\n harnessVars,\n overwritten;\n tl && (!keyframes || !ease) && (ease = \"none\");\n tween._ease = _parseEase(ease, _defaults.ease);\n tween._yEase = yoyoEase ? _invertEase(_parseEase(yoyoEase === true ? ease : yoyoEase, _defaults.ease)) : 0;\n\n if (yoyoEase && tween._yoyo && !tween._repeat) {\n //there must have been a parent timeline with yoyo:true that is currently in its yoyo phase, so flip the eases.\n yoyoEase = tween._yEase;\n tween._yEase = tween._ease;\n tween._ease = yoyoEase;\n }\n\n if (!tl) {\n //if there's an internal timeline, skip all the parsing because we passed that task down the chain.\n harness = targets[0] ? _getCache(targets[0]).harness : 0;\n harnessVars = harness && vars[harness.prop]; //someone may need to specify CSS-specific values AND non-CSS values, like if the element has an \"x\" property plus it's a standard DOM element. We allow people to distinguish by wrapping plugin-specific stuff in a css:{} object for example.\n\n cleanVars = _copyExcluding(vars, _reservedProps);\n prevStartAt && prevStartAt.render(-1, true).kill();\n\n if (startAt) {\n _removeFromParent(tween._startAt = Tween.set(targets, _setDefaults({\n data: \"isStart\",\n overwrite: false,\n parent: parent,\n immediateRender: true,\n lazy: _isNotFalse(lazy),\n startAt: null,\n delay: 0,\n onUpdate: onUpdate,\n onUpdateParams: onUpdateParams,\n callbackScope: callbackScope,\n stagger: 0\n }, startAt))); //copy the properties/values into a new object to avoid collisions, like var to = {x:0}, from = {x:500}; timeline.fromTo(e, from, to).fromTo(e, to, from);\n\n\n if (immediateRender) {\n if (time > 0) {\n autoRevert || (tween._startAt = 0); //tweens that render immediately (like most from() and fromTo() tweens) shouldn't revert when their parent timeline's playhead goes backward past the startTime because the initial render could have happened anytime and it shouldn't be directly correlated to this tween's startTime. Imagine setting up a complex animation where the beginning states of various objects are rendered immediately but the tween doesn't happen for quite some time - if we revert to the starting values as soon as the playhead goes backward past the tween's startTime, it will throw things off visually. Reversion should only happen in Timeline instances where immediateRender was false or when autoRevert is explicitly set to true.\n } else if (dur && !(time < 0 && prevStartAt)) {\n time && (tween._zTime = time);\n return; //we skip initialization here so that overwriting doesn't occur until the tween actually begins. Otherwise, if you create several immediateRender:true tweens of the same target/properties to drop into a Timeline, the last one created would overwrite the first ones because they didn't get placed into the timeline yet before the first render occurs and kicks in overwriting.\n }\n } else if (autoRevert === false) {\n tween._startAt = 0;\n }\n } else if (runBackwards && dur) {\n //from() tweens must be handled uniquely: their beginning values must be rendered but we don't want overwriting to occur yet (when time is still 0). Wait until the tween actually begins before doing all the routines like overwriting. At that time, we should render at the END of the tween to ensure that things initialize correctly (remember, from() tweens go backwards)\n if (prevStartAt) {\n !autoRevert && (tween._startAt = 0);\n } else {\n time && (immediateRender = false); //in rare cases (like if a from() tween runs and then is invalidate()-ed), immediateRender could be true but the initial forced-render gets skipped, so there's no need to force the render in this context when the _time is greater than 0\n\n p = _setDefaults({\n overwrite: false,\n data: \"isFromStart\",\n //we tag the tween with as \"isFromStart\" so that if [inside a plugin] we need to only do something at the very END of a tween, we have a way of identifying this tween as merely the one that's setting the beginning values for a \"from()\" tween. For example, clearProps in CSSPlugin should only get applied at the very END of a tween and without this tag, from(...{height:100, clearProps:\"height\", delay:1}) would wipe the height at the beginning of the tween and after 1 second, it'd kick back in.\n lazy: immediateRender && _isNotFalse(lazy),\n immediateRender: immediateRender,\n //zero-duration tweens render immediately by default, but if we're not specifically instructed to render this tween immediately, we should skip this and merely _init() to record the starting values (rendering them immediately would push them to completion which is wasteful in that case - we'd have to render(-1) immediately after)\n stagger: 0,\n parent: parent //ensures that nested tweens that had a stagger are handled properly, like gsap.from(\".class\", {y:gsap.utils.wrap([-100,100])})\n\n }, cleanVars);\n harnessVars && (p[harness.prop] = harnessVars); // in case someone does something like .from(..., {css:{}})\n\n _removeFromParent(tween._startAt = Tween.set(targets, p));\n\n if (!immediateRender) {\n _initTween(tween._startAt, _tinyNum); //ensures that the initial values are recorded\n\n } else if (!time) {\n return;\n }\n }\n }\n\n tween._pt = 0;\n lazy = dur && _isNotFalse(lazy) || lazy && !dur;\n\n for (i = 0; i < targets.length; i++) {\n target = targets[i];\n gsData = target._gsap || _harness(targets)[i]._gsap;\n tween._ptLookup[i] = ptLookup = {};\n _lazyLookup[gsData.id] && _lazyTweens.length && _lazyRender(); //if other tweens of the same target have recently initted but haven't rendered yet, we've got to force the render so that the starting values are correct (imagine populating a timeline with a bunch of sequential tweens and then jumping to the end)\n\n index = fullTargets === targets ? i : fullTargets.indexOf(target);\n\n if (harness && (plugin = new harness()).init(target, harnessVars || cleanVars, tween, index, fullTargets) !== false) {\n tween._pt = pt = new PropTween(tween._pt, target, plugin.name, 0, 1, plugin.render, plugin, 0, plugin.priority);\n\n plugin._props.forEach(function (name) {\n ptLookup[name] = pt;\n });\n\n plugin.priority && (hasPriority = 1);\n }\n\n if (!harness || harnessVars) {\n for (p in cleanVars) {\n if (_plugins[p] && (plugin = _checkPlugin(p, cleanVars, tween, index, target, fullTargets))) {\n plugin.priority && (hasPriority = 1);\n } else {\n ptLookup[p] = pt = _addPropTween.call(tween, target, p, \"get\", cleanVars[p], index, fullTargets, 0, vars.stringFilter);\n }\n }\n }\n\n tween._op && tween._op[i] && tween.kill(target, tween._op[i]);\n\n if (autoOverwrite && tween._pt) {\n _overwritingTween = tween;\n\n _globalTimeline.killTweensOf(target, ptLookup, tween.globalTime(0)); //Also make sure the overwriting doesn't overwrite THIS tween!!!\n\n\n overwritten = !tween.parent;\n _overwritingTween = 0;\n }\n\n tween._pt && lazy && (_lazyLookup[gsData.id] = 1);\n }\n\n hasPriority && _sortPropTweensByPriority(tween);\n tween._onInit && tween._onInit(tween); //plugins like RoundProps must wait until ALL of the PropTweens are instantiated. In the plugin's init() function, it sets the _onInit on the tween instance. May not be pretty/intuitive, but it's fast and keeps file size down.\n }\n\n tween._from = !tl && !!vars.runBackwards; //nested timelines should never run backwards - the backwards-ness is in the child tweens.\n\n tween._onUpdate = onUpdate;\n tween._initted = (!tween._op || tween._pt) && !overwritten; // if overwrittenProps resulted in the entire tween being killed, do NOT flag it as initted or else it may render for one tick.\n},\n _addAliasesToVars = function _addAliasesToVars(targets, vars) {\n var harness = targets[0] ? _getCache(targets[0]).harness : 0,\n propertyAliases = harness && harness.aliases,\n copy,\n p,\n i,\n aliases;\n\n if (!propertyAliases) {\n return vars;\n }\n\n copy = _merge({}, vars);\n\n for (p in propertyAliases) {\n if (p in copy) {\n aliases = propertyAliases[p].split(\",\");\n i = aliases.length;\n\n while (i--) {\n copy[aliases[i]] = copy[p];\n }\n }\n }\n\n return copy;\n},\n _parseFuncOrString = function _parseFuncOrString(value, tween, i, target, targets) {\n return _isFunction(value) ? value.call(tween, i, target, targets) : _isString(value) && ~value.indexOf(\"random(\") ? _replaceRandom(value) : value;\n},\n _staggerTweenProps = _callbackNames + \"repeat,repeatDelay,yoyo,repeatRefresh,yoyoEase\",\n _staggerPropsToSkip = (_staggerTweenProps + \",id,stagger,delay,duration,paused,scrollTrigger\").split(\",\");\n/*\n * --------------------------------------------------------------------------------------\n * TWEEN\n * --------------------------------------------------------------------------------------\n */\n\n\nexport var Tween = /*#__PURE__*/function (_Animation2) {\n _inheritsLoose(Tween, _Animation2);\n\n function Tween(targets, vars, time, skipInherit) {\n var _this3;\n\n if (typeof vars === \"number\") {\n time.duration = vars;\n vars = time;\n time = null;\n }\n\n _this3 = _Animation2.call(this, skipInherit ? vars : _inheritDefaults(vars), time) || this;\n var _this3$vars = _this3.vars,\n duration = _this3$vars.duration,\n delay = _this3$vars.delay,\n immediateRender = _this3$vars.immediateRender,\n stagger = _this3$vars.stagger,\n overwrite = _this3$vars.overwrite,\n keyframes = _this3$vars.keyframes,\n defaults = _this3$vars.defaults,\n scrollTrigger = _this3$vars.scrollTrigger,\n yoyoEase = _this3$vars.yoyoEase,\n parent = _this3.parent,\n parsedTargets = (_isArray(targets) || _isTypedArray(targets) ? _isNumber(targets[0]) : \"length\" in vars) ? [targets] : toArray(targets),\n tl,\n i,\n copy,\n l,\n p,\n curTarget,\n staggerFunc,\n staggerVarsToMerge;\n _this3._targets = parsedTargets.length ? _harness(parsedTargets) : _warn(\"GSAP target \" + targets + \" not found. https://greensock.com\", !_config.nullTargetWarn) || [];\n _this3._ptLookup = []; //PropTween lookup. An array containing an object for each target, having keys for each tweening property\n\n _this3._overwrite = overwrite;\n\n if (keyframes || stagger || _isFuncOrString(duration) || _isFuncOrString(delay)) {\n vars = _this3.vars;\n tl = _this3.timeline = new Timeline({\n data: \"nested\",\n defaults: defaults || {}\n });\n tl.kill();\n tl.parent = tl._dp = _assertThisInitialized(_this3);\n tl._start = 0;\n\n if (keyframes) {\n _setDefaults(tl.vars.defaults, {\n ease: \"none\"\n });\n\n keyframes.forEach(function (frame) {\n return tl.to(parsedTargets, frame, \">\");\n });\n } else {\n l = parsedTargets.length;\n staggerFunc = stagger ? distribute(stagger) : _emptyFunc;\n\n if (_isObject(stagger)) {\n //users can pass in callbacks like onStart/onComplete in the stagger object. These should fire with each individual tween.\n for (p in stagger) {\n if (~_staggerTweenProps.indexOf(p)) {\n staggerVarsToMerge || (staggerVarsToMerge = {});\n staggerVarsToMerge[p] = stagger[p];\n }\n }\n }\n\n for (i = 0; i < l; i++) {\n copy = {};\n\n for (p in vars) {\n if (_staggerPropsToSkip.indexOf(p) < 0) {\n copy[p] = vars[p];\n }\n }\n\n copy.stagger = 0;\n yoyoEase && (copy.yoyoEase = yoyoEase);\n staggerVarsToMerge && _merge(copy, staggerVarsToMerge);\n curTarget = parsedTargets[i]; //don't just copy duration or delay because if they're a string or function, we'd end up in an infinite loop because _isFuncOrString() would evaluate as true in the child tweens, entering this loop, etc. So we parse the value straight from vars and default to 0.\n\n copy.duration = +_parseFuncOrString(duration, _assertThisInitialized(_this3), i, curTarget, parsedTargets);\n copy.delay = (+_parseFuncOrString(delay, _assertThisInitialized(_this3), i, curTarget, parsedTargets) || 0) - _this3._delay;\n\n if (!stagger && l === 1 && copy.delay) {\n // if someone does delay:\"random(1, 5)\", repeat:-1, for example, the delay shouldn't be inside the repeat.\n _this3._delay = delay = copy.delay;\n _this3._start += delay;\n copy.delay = 0;\n }\n\n tl.to(curTarget, copy, staggerFunc(i, curTarget, parsedTargets));\n }\n\n tl.duration() ? duration = delay = 0 : _this3.timeline = 0; // if the timeline's duration is 0, we don't need a timeline internally!\n }\n\n duration || _this3.duration(duration = tl.duration());\n } else {\n _this3.timeline = 0; //speed optimization, faster lookups (no going up the prototype chain)\n }\n\n if (overwrite === true && !_suppressOverwrites) {\n _overwritingTween = _assertThisInitialized(_this3);\n\n _globalTimeline.killTweensOf(parsedTargets);\n\n _overwritingTween = 0;\n }\n\n parent && _postAddChecks(parent, _assertThisInitialized(_this3));\n\n if (immediateRender || !duration && !keyframes && _this3._start === _round(parent._time) && _isNotFalse(immediateRender) && _hasNoPausedAncestors(_assertThisInitialized(_this3)) && parent.data !== \"nested\") {\n _this3._tTime = -_tinyNum; //forces a render without having to set the render() \"force\" parameter to true because we want to allow lazying by default (using the \"force\" parameter always forces an immediate full render)\n\n _this3.render(Math.max(0, -delay)); //in case delay is negative\n\n }\n\n scrollTrigger && _scrollTrigger(_assertThisInitialized(_this3), scrollTrigger);\n return _this3;\n }\n\n var _proto3 = Tween.prototype;\n\n _proto3.render = function render(totalTime, suppressEvents, force) {\n var prevTime = this._time,\n tDur = this._tDur,\n dur = this._dur,\n tTime = totalTime > tDur - _tinyNum && totalTime >= 0 ? tDur : totalTime < _tinyNum ? 0 : totalTime,\n time,\n pt,\n iteration,\n cycleDuration,\n prevIteration,\n isYoyo,\n ratio,\n timeline,\n yoyoEase;\n\n if (!dur) {\n _renderZeroDurationTween(this, totalTime, suppressEvents, force);\n } else if (tTime !== this._tTime || !totalTime || force || !this._initted && this._tTime || this._startAt && this._zTime < 0 !== totalTime < 0) {\n //this senses if we're crossing over the start time, in which case we must record _zTime and force the render, but we do it in this lengthy conditional way for performance reasons (usually we can skip the calculations): this._initted && (this._zTime < 0) !== (totalTime < 0)\n time = tTime;\n timeline = this.timeline;\n\n if (this._repeat) {\n //adjust the time for repeats and yoyos\n cycleDuration = dur + this._rDelay;\n\n if (this._repeat < -1 && totalTime < 0) {\n return this.totalTime(cycleDuration * 100 + totalTime, suppressEvents, force);\n }\n\n time = _round(tTime % cycleDuration); //round to avoid floating point errors. (4 % 0.8 should be 0 but some browsers report it as 0.79999999!)\n\n if (tTime === tDur) {\n // the tDur === tTime is for edge cases where there's a lengthy decimal on the duration and it may reach the very end but the time is rendered as not-quite-there (remember, tDur is rounded to 4 decimals whereas dur isn't)\n iteration = this._repeat;\n time = dur;\n } else {\n iteration = ~~(tTime / cycleDuration);\n\n if (iteration && iteration === tTime / cycleDuration) {\n time = dur;\n iteration--;\n }\n\n time > dur && (time = dur);\n }\n\n isYoyo = this._yoyo && iteration & 1;\n\n if (isYoyo) {\n yoyoEase = this._yEase;\n time = dur - time;\n }\n\n prevIteration = _animationCycle(this._tTime, cycleDuration);\n\n if (time === prevTime && !force && this._initted) {\n //could be during the repeatDelay part. No need to render and fire callbacks.\n return this;\n }\n\n if (iteration !== prevIteration) {\n timeline && this._yEase && _propagateYoyoEase(timeline, isYoyo); //repeatRefresh functionality\n\n if (this.vars.repeatRefresh && !isYoyo && !this._lock) {\n this._lock = force = 1; //force, otherwise if lazy is true, the _attemptInitTween() will return and we'll jump out and get caught bouncing on each tick.\n\n this.render(_round(cycleDuration * iteration), true).invalidate()._lock = 0;\n }\n }\n }\n\n if (!this._initted) {\n if (_attemptInitTween(this, totalTime < 0 ? totalTime : time, force, suppressEvents)) {\n this._tTime = 0; // in constructor if immediateRender is true, we set _tTime to -_tinyNum to have the playhead cross the starting point but we can't leave _tTime as a negative number.\n\n return this;\n }\n\n if (dur !== this._dur) {\n // while initting, a plugin like InertiaPlugin might alter the duration, so rerun from the start to ensure everything renders as it should.\n return this.render(totalTime, suppressEvents, force);\n }\n }\n\n this._tTime = tTime;\n this._time = time;\n\n if (!this._act && this._ts) {\n this._act = 1; //as long as it's not paused, force it to be active so that if the user renders independent of the parent timeline, it'll be forced to re-render on the next tick.\n\n this._lazy = 0;\n }\n\n this.ratio = ratio = (yoyoEase || this._ease)(time / dur);\n\n if (this._from) {\n this.ratio = ratio = 1 - ratio;\n }\n\n time && !prevTime && !suppressEvents && _callback(this, \"onStart\");\n pt = this._pt;\n\n while (pt) {\n pt.r(ratio, pt.d);\n pt = pt._next;\n }\n\n timeline && timeline.render(totalTime < 0 ? totalTime : !time && isYoyo ? -_tinyNum : timeline._dur * ratio, suppressEvents, force) || this._startAt && (this._zTime = totalTime);\n\n if (this._onUpdate && !suppressEvents) {\n totalTime < 0 && this._startAt && this._startAt.render(totalTime, true, force); //note: for performance reasons, we tuck this conditional logic inside less traveled areas (most tweens don't have an onUpdate). We'd just have it at the end before the onComplete, but the values should be updated before any onUpdate is called, so we ALSO put it here and then if it's not called, we do so later near the onComplete.\n\n _callback(this, \"onUpdate\");\n }\n\n this._repeat && iteration !== prevIteration && this.vars.onRepeat && !suppressEvents && this.parent && _callback(this, \"onRepeat\");\n\n if ((tTime === this._tDur || !tTime) && this._tTime === tTime) {\n totalTime < 0 && this._startAt && !this._onUpdate && this._startAt.render(totalTime, true, true);\n (totalTime || !dur) && (tTime === this._tDur && this._ts > 0 || !tTime && this._ts < 0) && _removeFromParent(this, 1); // don't remove if we're rendering at exactly a time of 0, as there could be autoRevert values that should get set on the next tick (if the playhead goes backward beyond the startTime, negative totalTime). Don't remove if the timeline is reversed and the playhead isn't at 0, otherwise tl.progress(1).reverse() won't work. Only remove if the playhead is at the end and timeScale is positive, or if the playhead is at 0 and the timeScale is negative.\n\n if (!suppressEvents && !(totalTime < 0 && !prevTime) && (tTime || prevTime)) {\n // if prevTime and tTime are zero, we shouldn't fire the onReverseComplete. This could happen if you gsap.to(... {paused:true}).play();\n _callback(this, tTime === tDur ? \"onComplete\" : \"onReverseComplete\", true);\n\n this._prom && !(tTime < tDur && this.timeScale() > 0) && this._prom();\n }\n }\n }\n\n return this;\n };\n\n _proto3.targets = function targets() {\n return this._targets;\n };\n\n _proto3.invalidate = function invalidate() {\n this._pt = this._op = this._startAt = this._onUpdate = this._lazy = this.ratio = 0;\n this._ptLookup = [];\n this.timeline && this.timeline.invalidate();\n return _Animation2.prototype.invalidate.call(this);\n };\n\n _proto3.kill = function kill(targets, vars) {\n if (vars === void 0) {\n vars = \"all\";\n }\n\n if (!targets && (!vars || vars === \"all\")) {\n this._lazy = this._pt = 0;\n return this.parent ? _interrupt(this) : this;\n }\n\n if (this.timeline) {\n var tDur = this.timeline.totalDuration();\n this.timeline.killTweensOf(targets, vars, _overwritingTween && _overwritingTween.vars.overwrite !== true)._first || _interrupt(this); // if nothing is left tweening, interrupt.\n\n this.parent && tDur !== this.timeline.totalDuration() && _setDuration(this, this._dur * this.timeline._tDur / tDur, 0, 1); // if a nested tween is killed that changes the duration, it should affect this tween's duration. We must use the ratio, though, because sometimes the internal timeline is stretched like for keyframes where they don't all add up to whatever the parent tween's duration was set to.\n\n return this;\n }\n\n var parsedTargets = this._targets,\n killingTargets = targets ? toArray(targets) : parsedTargets,\n propTweenLookup = this._ptLookup,\n firstPT = this._pt,\n overwrittenProps,\n curLookup,\n curOverwriteProps,\n props,\n p,\n pt,\n i;\n\n if ((!vars || vars === \"all\") && _arraysMatch(parsedTargets, killingTargets)) {\n vars === \"all\" && (this._pt = 0);\n return _interrupt(this);\n }\n\n overwrittenProps = this._op = this._op || [];\n\n if (vars !== \"all\") {\n //so people can pass in a comma-delimited list of property names\n if (_isString(vars)) {\n p = {};\n\n _forEachName(vars, function (name) {\n return p[name] = 1;\n });\n\n vars = p;\n }\n\n vars = _addAliasesToVars(parsedTargets, vars);\n }\n\n i = parsedTargets.length;\n\n while (i--) {\n if (~killingTargets.indexOf(parsedTargets[i])) {\n curLookup = propTweenLookup[i];\n\n if (vars === \"all\") {\n overwrittenProps[i] = vars;\n props = curLookup;\n curOverwriteProps = {};\n } else {\n curOverwriteProps = overwrittenProps[i] = overwrittenProps[i] || {};\n props = vars;\n }\n\n for (p in props) {\n pt = curLookup && curLookup[p];\n\n if (pt) {\n if (!(\"kill\" in pt.d) || pt.d.kill(p) === true) {\n _removeLinkedListItem(this, pt, \"_pt\");\n }\n\n delete curLookup[p];\n }\n\n if (curOverwriteProps !== \"all\") {\n curOverwriteProps[p] = 1;\n }\n }\n }\n }\n\n this._initted && !this._pt && firstPT && _interrupt(this); //if all tweening properties are killed, kill the tween. Without this line, if there's a tween with multiple targets and then you killTweensOf() each target individually, the tween would technically still remain active and fire its onComplete even though there aren't any more properties tweening.\n\n return this;\n };\n\n Tween.to = function to(targets, vars) {\n return new Tween(targets, vars, arguments[2]);\n };\n\n Tween.from = function from(targets, vars) {\n return new Tween(targets, _parseVars(arguments, 1));\n };\n\n Tween.delayedCall = function delayedCall(delay, callback, params, scope) {\n return new Tween(callback, 0, {\n immediateRender: false,\n lazy: false,\n overwrite: false,\n delay: delay,\n onComplete: callback,\n onReverseComplete: callback,\n onCompleteParams: params,\n onReverseCompleteParams: params,\n callbackScope: scope\n });\n };\n\n Tween.fromTo = function fromTo(targets, fromVars, toVars) {\n return new Tween(targets, _parseVars(arguments, 2));\n };\n\n Tween.set = function set(targets, vars) {\n vars.duration = 0;\n vars.repeatDelay || (vars.repeat = 0);\n return new Tween(targets, vars);\n };\n\n Tween.killTweensOf = function killTweensOf(targets, props, onlyActive) {\n return _globalTimeline.killTweensOf(targets, props, onlyActive);\n };\n\n return Tween;\n}(Animation);\n\n_setDefaults(Tween.prototype, {\n _targets: [],\n _lazy: 0,\n _startAt: 0,\n _op: 0,\n _onInit: 0\n}); //add the pertinent timeline methods to Tween instances so that users can chain conveniently and create a timeline automatically. (removed due to concerns that it'd ultimately add to more confusion especially for beginners)\n// _forEachName(\"to,from,fromTo,set,call,add,addLabel,addPause\", name => {\n// \tTween.prototype[name] = function() {\n// \t\tlet tl = new Timeline();\n// \t\treturn _addToTimeline(tl, this)[name].apply(tl, toArray(arguments));\n// \t}\n// });\n//for backward compatibility. Leverage the timeline calls.\n\n\n_forEachName(\"staggerTo,staggerFrom,staggerFromTo\", function (name) {\n Tween[name] = function () {\n var tl = new Timeline(),\n params = _slice.call(arguments, 0);\n\n params.splice(name === \"staggerFromTo\" ? 5 : 4, 0, 0);\n return tl[name].apply(tl, params);\n };\n});\n/*\n * --------------------------------------------------------------------------------------\n * PROPTWEEN\n * --------------------------------------------------------------------------------------\n */\n\n\nvar _setterPlain = function _setterPlain(target, property, value) {\n return target[property] = value;\n},\n _setterFunc = function _setterFunc(target, property, value) {\n return target[property](value);\n},\n _setterFuncWithParam = function _setterFuncWithParam(target, property, value, data) {\n return target[property](data.fp, value);\n},\n _setterAttribute = function _setterAttribute(target, property, value) {\n return target.setAttribute(property, value);\n},\n _getSetter = function _getSetter(target, property) {\n return _isFunction(target[property]) ? _setterFunc : _isUndefined(target[property]) && target.setAttribute ? _setterAttribute : _setterPlain;\n},\n _renderPlain = function _renderPlain(ratio, data) {\n return data.set(data.t, data.p, Math.round((data.s + data.c * ratio) * 10000) / 10000, data);\n},\n _renderBoolean = function _renderBoolean(ratio, data) {\n return data.set(data.t, data.p, !!(data.s + data.c * ratio), data);\n},\n _renderComplexString = function _renderComplexString(ratio, data) {\n var pt = data._pt,\n s = \"\";\n\n if (!ratio && data.b) {\n //b = beginning string\n s = data.b;\n } else if (ratio === 1 && data.e) {\n //e = ending string\n s = data.e;\n } else {\n while (pt) {\n s = pt.p + (pt.m ? pt.m(pt.s + pt.c * ratio) : Math.round((pt.s + pt.c * ratio) * 10000) / 10000) + s; //we use the \"p\" property for the text inbetween (like a suffix). And in the context of a complex string, the modifier (m) is typically just Math.round(), like for RGB colors.\n\n pt = pt._next;\n }\n\n s += data.c; //we use the \"c\" of the PropTween to store the final chunk of non-numeric text.\n }\n\n data.set(data.t, data.p, s, data);\n},\n _renderPropTweens = function _renderPropTweens(ratio, data) {\n var pt = data._pt;\n\n while (pt) {\n pt.r(ratio, pt.d);\n pt = pt._next;\n }\n},\n _addPluginModifier = function _addPluginModifier(modifier, tween, target, property) {\n var pt = this._pt,\n next;\n\n while (pt) {\n next = pt._next;\n pt.p === property && pt.modifier(modifier, tween, target);\n pt = next;\n }\n},\n _killPropTweensOf = function _killPropTweensOf(property) {\n var pt = this._pt,\n hasNonDependentRemaining,\n next;\n\n while (pt) {\n next = pt._next;\n\n if (pt.p === property && !pt.op || pt.op === property) {\n _removeLinkedListItem(this, pt, \"_pt\");\n } else if (!pt.dep) {\n hasNonDependentRemaining = 1;\n }\n\n pt = next;\n }\n\n return !hasNonDependentRemaining;\n},\n _setterWithModifier = function _setterWithModifier(target, property, value, data) {\n data.mSet(target, property, data.m.call(data.tween, value, data.mt), data);\n},\n _sortPropTweensByPriority = function _sortPropTweensByPriority(parent) {\n var pt = parent._pt,\n next,\n pt2,\n first,\n last; //sorts the PropTween linked list in order of priority because some plugins need to do their work after ALL of the PropTweens were created (like RoundPropsPlugin and ModifiersPlugin)\n\n while (pt) {\n next = pt._next;\n pt2 = first;\n\n while (pt2 && pt2.pr > pt.pr) {\n pt2 = pt2._next;\n }\n\n if (pt._prev = pt2 ? pt2._prev : last) {\n pt._prev._next = pt;\n } else {\n first = pt;\n }\n\n if (pt._next = pt2) {\n pt2._prev = pt;\n } else {\n last = pt;\n }\n\n pt = next;\n }\n\n parent._pt = first;\n}; //PropTween key: t = target, p = prop, r = renderer, d = data, s = start, c = change, op = overwriteProperty (ONLY populated when it's different than p), pr = priority, _next/_prev for the linked list siblings, set = setter, m = modifier, mSet = modifierSetter (the original setter, before a modifier was added)\n\n\nexport var PropTween = /*#__PURE__*/function () {\n function PropTween(next, target, prop, start, change, renderer, data, setter, priority) {\n this.t = target;\n this.s = start;\n this.c = change;\n this.p = prop;\n this.r = renderer || _renderPlain;\n this.d = data || this;\n this.set = setter || _setterPlain;\n this.pr = priority || 0;\n this._next = next;\n\n if (next) {\n next._prev = this;\n }\n }\n\n var _proto4 = PropTween.prototype;\n\n _proto4.modifier = function modifier(func, tween, target) {\n this.mSet = this.mSet || this.set; //in case it was already set (a PropTween can only have one modifier)\n\n this.set = _setterWithModifier;\n this.m = func;\n this.mt = target; //modifier target\n\n this.tween = tween;\n };\n\n return PropTween;\n}(); //Initialization tasks\n\n_forEachName(_callbackNames + \"parent,duration,ease,delay,overwrite,runBackwards,startAt,yoyo,immediateRender,repeat,repeatDelay,data,paused,reversed,lazy,callbackScope,stringFilter,id,yoyoEase,stagger,inherit,repeatRefresh,keyframes,autoRevert,scrollTrigger\", function (name) {\n return _reservedProps[name] = 1;\n});\n\n_globals.TweenMax = _globals.TweenLite = Tween;\n_globals.TimelineLite = _globals.TimelineMax = Timeline;\n_globalTimeline = new Timeline({\n sortChildren: false,\n defaults: _defaults,\n autoRemoveChildren: true,\n id: \"root\",\n smoothChildTiming: true\n});\n_config.stringFilter = _colorStringFilter;\n/*\n * --------------------------------------------------------------------------------------\n * GSAP\n * --------------------------------------------------------------------------------------\n */\n\nvar _gsap = {\n registerPlugin: function registerPlugin() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n args.forEach(function (config) {\n return _createPlugin(config);\n });\n },\n timeline: function timeline(vars) {\n return new Timeline(vars);\n },\n getTweensOf: function getTweensOf(targets, onlyActive) {\n return _globalTimeline.getTweensOf(targets, onlyActive);\n },\n getProperty: function getProperty(target, property, unit, uncache) {\n _isString(target) && (target = toArray(target)[0]); //in case selector text or an array is passed in\n\n var getter = _getCache(target || {}).get,\n format = unit ? _passThrough : _numericIfPossible;\n\n unit === \"native\" && (unit = \"\");\n return !target ? target : !property ? function (property, unit, uncache) {\n return format((_plugins[property] && _plugins[property].get || getter)(target, property, unit, uncache));\n } : format((_plugins[property] && _plugins[property].get || getter)(target, property, unit, uncache));\n },\n quickSetter: function quickSetter(target, property, unit) {\n target = toArray(target);\n\n if (target.length > 1) {\n var setters = target.map(function (t) {\n return gsap.quickSetter(t, property, unit);\n }),\n l = setters.length;\n return function (value) {\n var i = l;\n\n while (i--) {\n setters[i](value);\n }\n };\n }\n\n target = target[0] || {};\n\n var Plugin = _plugins[property],\n cache = _getCache(target),\n p = cache.harness && (cache.harness.aliases || {})[property] || property,\n // in case it's an alias, like \"rotate\" for \"rotation\".\n setter = Plugin ? function (value) {\n var p = new Plugin();\n _quickTween._pt = 0;\n p.init(target, unit ? value + unit : value, _quickTween, 0, [target]);\n p.render(1, p);\n _quickTween._pt && _renderPropTweens(1, _quickTween);\n } : cache.set(target, p);\n\n return Plugin ? setter : function (value) {\n return setter(target, p, unit ? value + unit : value, cache, 1);\n };\n },\n isTweening: function isTweening(targets) {\n return _globalTimeline.getTweensOf(targets, true).length > 0;\n },\n defaults: function defaults(value) {\n value && value.ease && (value.ease = _parseEase(value.ease, _defaults.ease));\n return _mergeDeep(_defaults, value || {});\n },\n config: function config(value) {\n return _mergeDeep(_config, value || {});\n },\n registerEffect: function registerEffect(_ref2) {\n var name = _ref2.name,\n effect = _ref2.effect,\n plugins = _ref2.plugins,\n defaults = _ref2.defaults,\n extendTimeline = _ref2.extendTimeline;\n (plugins || \"\").split(\",\").forEach(function (pluginName) {\n return pluginName && !_plugins[pluginName] && !_globals[pluginName] && _warn(name + \" effect requires \" + pluginName + \" plugin.\");\n });\n\n _effects[name] = function (targets, vars, tl) {\n return effect(toArray(targets), _setDefaults(vars || {}, defaults), tl);\n };\n\n if (extendTimeline) {\n Timeline.prototype[name] = function (targets, vars, position) {\n return this.add(_effects[name](targets, _isObject(vars) ? vars : (position = vars) && {}, this), position);\n };\n }\n },\n registerEase: function registerEase(name, ease) {\n _easeMap[name] = _parseEase(ease);\n },\n parseEase: function parseEase(ease, defaultEase) {\n return arguments.length ? _parseEase(ease, defaultEase) : _easeMap;\n },\n getById: function getById(id) {\n return _globalTimeline.getById(id);\n },\n exportRoot: function exportRoot(vars, includeDelayedCalls) {\n if (vars === void 0) {\n vars = {};\n }\n\n var tl = new Timeline(vars),\n child,\n next;\n tl.smoothChildTiming = _isNotFalse(vars.smoothChildTiming);\n\n _globalTimeline.remove(tl);\n\n tl._dp = 0; //otherwise it'll get re-activated when adding children and be re-introduced into _globalTimeline's linked list (then added to itself).\n\n tl._time = tl._tTime = _globalTimeline._time;\n child = _globalTimeline._first;\n\n while (child) {\n next = child._next;\n\n if (includeDelayedCalls || !(!child._dur && child instanceof Tween && child.vars.onComplete === child._targets[0])) {\n _addToTimeline(tl, child, child._start - child._delay);\n }\n\n child = next;\n }\n\n _addToTimeline(_globalTimeline, tl, 0);\n\n return tl;\n },\n utils: {\n wrap: wrap,\n wrapYoyo: wrapYoyo,\n distribute: distribute,\n random: random,\n snap: snap,\n normalize: normalize,\n getUnit: getUnit,\n clamp: clamp,\n splitColor: splitColor,\n toArray: toArray,\n mapRange: mapRange,\n pipe: pipe,\n unitize: unitize,\n interpolate: interpolate,\n shuffle: shuffle\n },\n install: _install,\n effects: _effects,\n ticker: _ticker,\n updateRoot: Timeline.updateRoot,\n plugins: _plugins,\n globalTimeline: _globalTimeline,\n core: {\n PropTween: PropTween,\n globals: _addGlobal,\n Tween: Tween,\n Timeline: Timeline,\n Animation: Animation,\n getCache: _getCache,\n _removeLinkedListItem: _removeLinkedListItem,\n suppressOverwrites: function suppressOverwrites(value) {\n return _suppressOverwrites = value;\n }\n }\n};\n\n_forEachName(\"to,from,fromTo,delayedCall,set,killTweensOf\", function (name) {\n return _gsap[name] = Tween[name];\n});\n\n_ticker.add(Timeline.updateRoot);\n\n_quickTween = _gsap.to({}, {\n duration: 0\n}); // ---- EXTRA PLUGINS --------------------------------------------------------\n\nvar _getPluginPropTween = function _getPluginPropTween(plugin, prop) {\n var pt = plugin._pt;\n\n while (pt && pt.p !== prop && pt.op !== prop && pt.fp !== prop) {\n pt = pt._next;\n }\n\n return pt;\n},\n _addModifiers = function _addModifiers(tween, modifiers) {\n var targets = tween._targets,\n p,\n i,\n pt;\n\n for (p in modifiers) {\n i = targets.length;\n\n while (i--) {\n pt = tween._ptLookup[i][p];\n\n if (pt && (pt = pt.d)) {\n if (pt._pt) {\n // is a plugin\n pt = _getPluginPropTween(pt, p);\n }\n\n pt && pt.modifier && pt.modifier(modifiers[p], tween, targets[i], p);\n }\n }\n }\n},\n _buildModifierPlugin = function _buildModifierPlugin(name, modifier) {\n return {\n name: name,\n rawVars: 1,\n //don't pre-process function-based values or \"random()\" strings.\n init: function init(target, vars, tween) {\n tween._onInit = function (tween) {\n var temp, p;\n\n if (_isString(vars)) {\n temp = {};\n\n _forEachName(vars, function (name) {\n return temp[name] = 1;\n }); //if the user passes in a comma-delimited list of property names to roundProps, like \"x,y\", we round to whole numbers.\n\n\n vars = temp;\n }\n\n if (modifier) {\n temp = {};\n\n for (p in vars) {\n temp[p] = modifier(vars[p]);\n }\n\n vars = temp;\n }\n\n _addModifiers(tween, vars);\n };\n }\n };\n}; //register core plugins\n\n\nexport var gsap = _gsap.registerPlugin({\n name: \"attr\",\n init: function init(target, vars, tween, index, targets) {\n var p, pt;\n\n for (p in vars) {\n pt = this.add(target, \"setAttribute\", (target.getAttribute(p) || 0) + \"\", vars[p], index, targets, 0, 0, p);\n pt && (pt.op = p);\n\n this._props.push(p);\n }\n }\n}, {\n name: \"endArray\",\n init: function init(target, value) {\n var i = value.length;\n\n while (i--) {\n this.add(target, i, target[i] || 0, value[i]);\n }\n }\n}, _buildModifierPlugin(\"roundProps\", _roundModifier), _buildModifierPlugin(\"modifiers\"), _buildModifierPlugin(\"snap\", snap)) || _gsap; //to prevent the core plugins from being dropped via aggressive tree shaking, we must include them in the variable declaration in this way.\n\nTween.version = Timeline.version = gsap.version = \"3.6.1\";\n_coreReady = 1;\n\nif (_windowExists()) {\n _wake();\n}\n\nvar Power0 = _easeMap.Power0,\n Power1 = _easeMap.Power1,\n Power2 = _easeMap.Power2,\n Power3 = _easeMap.Power3,\n Power4 = _easeMap.Power4,\n Linear = _easeMap.Linear,\n Quad = _easeMap.Quad,\n Cubic = _easeMap.Cubic,\n Quart = _easeMap.Quart,\n Quint = _easeMap.Quint,\n Strong = _easeMap.Strong,\n Elastic = _easeMap.Elastic,\n Back = _easeMap.Back,\n SteppedEase = _easeMap.SteppedEase,\n Bounce = _easeMap.Bounce,\n Sine = _easeMap.Sine,\n Expo = _easeMap.Expo,\n Circ = _easeMap.Circ;\nexport { Power0, Power1, Power2, Power3, Power4, Linear, Quad, Cubic, Quart, Quint, Strong, Elastic, Back, SteppedEase, Bounce, Sine, Expo, Circ };\nexport { Tween as TweenMax, Tween as TweenLite, Timeline as TimelineMax, Timeline as TimelineLite, gsap as default, wrap, wrapYoyo, distribute, random, snap, normalize, getUnit, clamp, splitColor, toArray, mapRange, pipe, unitize, interpolate, shuffle }; //export some internal methods/orojects for use in CSSPlugin so that we can externalize that file and allow custom builds that exclude it.\n\nexport { _getProperty, _numExp, _numWithUnitExp, _isString, _isUndefined, _renderComplexString, _relExp, _setDefaults, _removeLinkedListItem, _forEachName, _sortPropTweensByPriority, _colorStringFilter, _replaceRandom, _checkPlugin, _plugins, _ticker, _config, _roundModifier, _round, _missingPlugin, _getSetter, _getCache, _colorExp };","/*!\n * CSSPlugin 3.6.1\n * https://greensock.com\n *\n * Copyright 2008-2021, GreenSock. All rights reserved.\n * Subject to the terms at https://greensock.com/standard-license or for\n * Club GreenSock members, the agreement issued with that membership.\n * @author: Jack Doyle, jack@greensock.com\n*/\n\n/* eslint-disable */\nimport { gsap, _getProperty, _numExp, _numWithUnitExp, getUnit, _isString, _isUndefined, _renderComplexString, _relExp, _forEachName, _sortPropTweensByPriority, _colorStringFilter, _checkPlugin, _replaceRandom, _plugins, GSCache, PropTween, _config, _ticker, _round, _missingPlugin, _getSetter, _getCache, _colorExp, _setDefaults, _removeLinkedListItem //for the commented-out className feature.\n} from \"./gsap-core.js\";\n\nvar _win,\n _doc,\n _docElement,\n _pluginInitted,\n _tempDiv,\n _tempDivStyler,\n _recentSetterPlugin,\n _windowExists = function _windowExists() {\n return typeof window !== \"undefined\";\n},\n _transformProps = {},\n _RAD2DEG = 180 / Math.PI,\n _DEG2RAD = Math.PI / 180,\n _atan2 = Math.atan2,\n _bigNum = 1e8,\n _capsExp = /([A-Z])/g,\n _horizontalExp = /(?:left|right|width|margin|padding|x)/i,\n _complexExp = /[\\s,\\(]\\S/,\n _propertyAliases = {\n autoAlpha: \"opacity,visibility\",\n scale: \"scaleX,scaleY\",\n alpha: \"opacity\"\n},\n _renderCSSProp = function _renderCSSProp(ratio, data) {\n return data.set(data.t, data.p, Math.round((data.s + data.c * ratio) * 10000) / 10000 + data.u, data);\n},\n _renderPropWithEnd = function _renderPropWithEnd(ratio, data) {\n return data.set(data.t, data.p, ratio === 1 ? data.e : Math.round((data.s + data.c * ratio) * 10000) / 10000 + data.u, data);\n},\n _renderCSSPropWithBeginning = function _renderCSSPropWithBeginning(ratio, data) {\n return data.set(data.t, data.p, ratio ? Math.round((data.s + data.c * ratio) * 10000) / 10000 + data.u : data.b, data);\n},\n //if units change, we need a way to render the original unit/value when the tween goes all the way back to the beginning (ratio:0)\n_renderRoundedCSSProp = function _renderRoundedCSSProp(ratio, data) {\n var value = data.s + data.c * ratio;\n data.set(data.t, data.p, ~~(value + (value < 0 ? -.5 : .5)) + data.u, data);\n},\n _renderNonTweeningValue = function _renderNonTweeningValue(ratio, data) {\n return data.set(data.t, data.p, ratio ? data.e : data.b, data);\n},\n _renderNonTweeningValueOnlyAtEnd = function _renderNonTweeningValueOnlyAtEnd(ratio, data) {\n return data.set(data.t, data.p, ratio !== 1 ? data.b : data.e, data);\n},\n _setterCSSStyle = function _setterCSSStyle(target, property, value) {\n return target.style[property] = value;\n},\n _setterCSSProp = function _setterCSSProp(target, property, value) {\n return target.style.setProperty(property, value);\n},\n _setterTransform = function _setterTransform(target, property, value) {\n return target._gsap[property] = value;\n},\n _setterScale = function _setterScale(target, property, value) {\n return target._gsap.scaleX = target._gsap.scaleY = value;\n},\n _setterScaleWithRender = function _setterScaleWithRender(target, property, value, data, ratio) {\n var cache = target._gsap;\n cache.scaleX = cache.scaleY = value;\n cache.renderTransform(ratio, cache);\n},\n _setterTransformWithRender = function _setterTransformWithRender(target, property, value, data, ratio) {\n var cache = target._gsap;\n cache[property] = value;\n cache.renderTransform(ratio, cache);\n},\n _transformProp = \"transform\",\n _transformOriginProp = _transformProp + \"Origin\",\n _supports3D,\n _createElement = function _createElement(type, ns) {\n var e = _doc.createElementNS ? _doc.createElementNS((ns || \"http://www.w3.org/1999/xhtml\").replace(/^https/, \"http\"), type) : _doc.createElement(type); //some servers swap in https for http in the namespace which can break things, making \"style\" inaccessible.\n\n return e.style ? e : _doc.createElement(type); //some environments won't allow access to the element's style when created with a namespace in which case we default to the standard createElement() to work around the issue. Also note that when GSAP is embedded directly inside an SVG file, createElement() won't allow access to the style object in Firefox (see https://greensock.com/forums/topic/20215-problem-using-tweenmax-in-standalone-self-containing-svg-file-err-cannot-set-property-csstext-of-undefined/).\n},\n _getComputedProperty = function _getComputedProperty(target, property, skipPrefixFallback) {\n var cs = getComputedStyle(target);\n return cs[property] || cs.getPropertyValue(property.replace(_capsExp, \"-$1\").toLowerCase()) || cs.getPropertyValue(property) || !skipPrefixFallback && _getComputedProperty(target, _checkPropPrefix(property) || property, 1) || \"\"; //css variables may not need caps swapped out for dashes and lowercase.\n},\n _prefixes = \"O,Moz,ms,Ms,Webkit\".split(\",\"),\n _checkPropPrefix = function _checkPropPrefix(property, element, preferPrefix) {\n var e = element || _tempDiv,\n s = e.style,\n i = 5;\n\n if (property in s && !preferPrefix) {\n return property;\n }\n\n property = property.charAt(0).toUpperCase() + property.substr(1);\n\n while (i-- && !(_prefixes[i] + property in s)) {}\n\n return i < 0 ? null : (i === 3 ? \"ms\" : i >= 0 ? _prefixes[i] : \"\") + property;\n},\n _initCore = function _initCore() {\n if (_windowExists() && window.document) {\n _win = window;\n _doc = _win.document;\n _docElement = _doc.documentElement;\n _tempDiv = _createElement(\"div\") || {\n style: {}\n };\n _tempDivStyler = _createElement(\"div\");\n _transformProp = _checkPropPrefix(_transformProp);\n _transformOriginProp = _transformProp + \"Origin\";\n _tempDiv.style.cssText = \"border-width:0;line-height:0;position:absolute;padding:0\"; //make sure to override certain properties that may contaminate measurements, in case the user has overreaching style sheets.\n\n _supports3D = !!_checkPropPrefix(\"perspective\");\n _pluginInitted = 1;\n }\n},\n _getBBoxHack = function _getBBoxHack(swapIfPossible) {\n //works around issues in some browsers (like Firefox) that don't correctly report getBBox() on SVG elements inside a element and/or . We try creating an SVG, adding it to the documentElement and toss the element in there so that it's definitely part of the rendering tree, then grab the bbox and if it works, we actually swap out the original getBBox() method for our own that does these extra steps whenever getBBox is needed. This helps ensure that performance is optimal (only do all these extra steps when absolutely necessary...most elements don't need it).\n var svg = _createElement(\"svg\", this.ownerSVGElement && this.ownerSVGElement.getAttribute(\"xmlns\") || \"http://www.w3.org/2000/svg\"),\n oldParent = this.parentNode,\n oldSibling = this.nextSibling,\n oldCSS = this.style.cssText,\n bbox;\n\n _docElement.appendChild(svg);\n\n svg.appendChild(this);\n this.style.display = \"block\";\n\n if (swapIfPossible) {\n try {\n bbox = this.getBBox();\n this._gsapBBox = this.getBBox; //store the original\n\n this.getBBox = _getBBoxHack;\n } catch (e) {}\n } else if (this._gsapBBox) {\n bbox = this._gsapBBox();\n }\n\n if (oldParent) {\n if (oldSibling) {\n oldParent.insertBefore(this, oldSibling);\n } else {\n oldParent.appendChild(this);\n }\n }\n\n _docElement.removeChild(svg);\n\n this.style.cssText = oldCSS;\n return bbox;\n},\n _getAttributeFallbacks = function _getAttributeFallbacks(target, attributesArray) {\n var i = attributesArray.length;\n\n while (i--) {\n if (target.hasAttribute(attributesArray[i])) {\n return target.getAttribute(attributesArray[i]);\n }\n }\n},\n _getBBox = function _getBBox(target) {\n var bounds;\n\n try {\n bounds = target.getBBox(); //Firefox throws errors if you try calling getBBox() on an SVG element that's not rendered (like in a or ). https://bugzilla.mozilla.org/show_bug.cgi?id=612118\n } catch (error) {\n bounds = _getBBoxHack.call(target, true);\n }\n\n bounds && (bounds.width || bounds.height) || target.getBBox === _getBBoxHack || (bounds = _getBBoxHack.call(target, true)); //some browsers (like Firefox) misreport the bounds if the element has zero width and height (it just assumes it's at x:0, y:0), thus we need to manually grab the position in that case.\n\n return bounds && !bounds.width && !bounds.x && !bounds.y ? {\n x: +_getAttributeFallbacks(target, [\"x\", \"cx\", \"x1\"]) || 0,\n y: +_getAttributeFallbacks(target, [\"y\", \"cy\", \"y1\"]) || 0,\n width: 0,\n height: 0\n } : bounds;\n},\n _isSVG = function _isSVG(e) {\n return !!(e.getCTM && (!e.parentNode || e.ownerSVGElement) && _getBBox(e));\n},\n //reports if the element is an SVG on which getBBox() actually works\n_removeProperty = function _removeProperty(target, property) {\n if (property) {\n var style = target.style;\n\n if (property in _transformProps && property !== _transformOriginProp) {\n property = _transformProp;\n }\n\n if (style.removeProperty) {\n if (property.substr(0, 2) === \"ms\" || property.substr(0, 6) === \"webkit\") {\n //Microsoft and some Webkit browsers don't conform to the standard of capitalizing the first prefix character, so we adjust so that when we prefix the caps with a dash, it's correct (otherwise it'd be \"ms-transform\" instead of \"-ms-transform\" for IE9, for example)\n property = \"-\" + property;\n }\n\n style.removeProperty(property.replace(_capsExp, \"-$1\").toLowerCase());\n } else {\n //note: old versions of IE use \"removeAttribute()\" instead of \"removeProperty()\"\n style.removeAttribute(property);\n }\n }\n},\n _addNonTweeningPT = function _addNonTweeningPT(plugin, target, property, beginning, end, onlySetAtEnd) {\n var pt = new PropTween(plugin._pt, target, property, 0, 1, onlySetAtEnd ? _renderNonTweeningValueOnlyAtEnd : _renderNonTweeningValue);\n plugin._pt = pt;\n pt.b = beginning;\n pt.e = end;\n\n plugin._props.push(property);\n\n return pt;\n},\n _nonConvertibleUnits = {\n deg: 1,\n rad: 1,\n turn: 1\n},\n //takes a single value like 20px and converts it to the unit specified, like \"%\", returning only the numeric amount.\n_convertToUnit = function _convertToUnit(target, property, value, unit) {\n var curValue = parseFloat(value) || 0,\n curUnit = (value + \"\").trim().substr((curValue + \"\").length) || \"px\",\n // some browsers leave extra whitespace at the beginning of CSS variables, hence the need to trim()\n style = _tempDiv.style,\n horizontal = _horizontalExp.test(property),\n isRootSVG = target.tagName.toLowerCase() === \"svg\",\n measureProperty = (isRootSVG ? \"client\" : \"offset\") + (horizontal ? \"Width\" : \"Height\"),\n amount = 100,\n toPixels = unit === \"px\",\n toPercent = unit === \"%\",\n px,\n parent,\n cache,\n isSVG;\n\n if (unit === curUnit || !curValue || _nonConvertibleUnits[unit] || _nonConvertibleUnits[curUnit]) {\n return curValue;\n }\n\n curUnit !== \"px\" && !toPixels && (curValue = _convertToUnit(target, property, value, \"px\"));\n isSVG = target.getCTM && _isSVG(target);\n\n if ((toPercent || curUnit === \"%\") && (_transformProps[property] || ~property.indexOf(\"adius\"))) {\n px = isSVG ? target.getBBox()[horizontal ? \"width\" : \"height\"] : target[measureProperty];\n return _round(toPercent ? curValue / px * amount : curValue / 100 * px);\n }\n\n style[horizontal ? \"width\" : \"height\"] = amount + (toPixels ? curUnit : unit);\n parent = ~property.indexOf(\"adius\") || unit === \"em\" && target.appendChild && !isRootSVG ? target : target.parentNode;\n\n if (isSVG) {\n parent = (target.ownerSVGElement || {}).parentNode;\n }\n\n if (!parent || parent === _doc || !parent.appendChild) {\n parent = _doc.body;\n }\n\n cache = parent._gsap;\n\n if (cache && toPercent && cache.width && horizontal && cache.time === _ticker.time) {\n return _round(curValue / cache.width * amount);\n } else {\n (toPercent || curUnit === \"%\") && (style.position = _getComputedProperty(target, \"position\"));\n parent === target && (style.position = \"static\"); // like for borderRadius, if it's a % we must have it relative to the target itself but that may not have position: relative or position: absolute in which case it'd go up the chain until it finds its offsetParent (bad). position: static protects against that.\n\n parent.appendChild(_tempDiv);\n px = _tempDiv[measureProperty];\n parent.removeChild(_tempDiv);\n style.position = \"absolute\";\n\n if (horizontal && toPercent) {\n cache = _getCache(parent);\n cache.time = _ticker.time;\n cache.width = parent[measureProperty];\n }\n }\n\n return _round(toPixels ? px * curValue / amount : px && curValue ? amount / px * curValue : 0);\n},\n _get = function _get(target, property, unit, uncache) {\n var value;\n _pluginInitted || _initCore();\n\n if (property in _propertyAliases && property !== \"transform\") {\n property = _propertyAliases[property];\n\n if (~property.indexOf(\",\")) {\n property = property.split(\",\")[0];\n }\n }\n\n if (_transformProps[property] && property !== \"transform\") {\n value = _parseTransform(target, uncache);\n value = property !== \"transformOrigin\" ? value[property] : _firstTwoOnly(_getComputedProperty(target, _transformOriginProp)) + \" \" + value.zOrigin + \"px\";\n } else {\n value = target.style[property];\n\n if (!value || value === \"auto\" || uncache || ~(value + \"\").indexOf(\"calc(\")) {\n value = _specialProps[property] && _specialProps[property](target, property, unit) || _getComputedProperty(target, property) || _getProperty(target, property) || (property === \"opacity\" ? 1 : 0); // note: some browsers, like Firefox, don't report borderRadius correctly! Instead, it only reports every corner like borderTopLeftRadius\n }\n }\n\n return unit && !~(value + \"\").trim().indexOf(\" \") ? _convertToUnit(target, property, value, unit) + unit : value;\n},\n _tweenComplexCSSString = function _tweenComplexCSSString(target, prop, start, end) {\n //note: we call _tweenComplexCSSString.call(pluginInstance...) to ensure that it's scoped properly. We may call it from within a plugin too, thus \"this\" would refer to the plugin.\n if (!start || start === \"none\") {\n // some browsers like Safari actually PREFER the prefixed property and mis-report the unprefixed value like clipPath (BUG). In other words, even though clipPath exists in the style (\"clipPath\" in target.style) and it's set in the CSS properly (along with -webkit-clip-path), Safari reports clipPath as \"none\" whereas WebkitClipPath reports accurately like \"ellipse(100% 0% at 50% 0%)\", so in this case we must SWITCH to using the prefixed property instead. See https://greensock.com/forums/topic/18310-clippath-doesnt-work-on-ios/\n var p = _checkPropPrefix(prop, target, 1),\n s = p && _getComputedProperty(target, p, 1);\n\n if (s && s !== start) {\n prop = p;\n start = s;\n } else if (prop === \"borderColor\") {\n start = _getComputedProperty(target, \"borderTopColor\"); // Firefox bug: always reports \"borderColor\" as \"\", so we must fall back to borderTopColor. See https://greensock.com/forums/topic/24583-how-to-return-colors-that-i-had-after-reverse/\n }\n }\n\n var pt = new PropTween(this._pt, target.style, prop, 0, 1, _renderComplexString),\n index = 0,\n matchIndex = 0,\n a,\n result,\n startValues,\n startNum,\n color,\n startValue,\n endValue,\n endNum,\n chunk,\n endUnit,\n startUnit,\n relative,\n endValues;\n pt.b = start;\n pt.e = end;\n start += \"\"; //ensure values are strings\n\n end += \"\";\n\n if (end === \"auto\") {\n target.style[prop] = end;\n end = _getComputedProperty(target, prop) || end;\n target.style[prop] = start;\n }\n\n a = [start, end];\n\n _colorStringFilter(a); //pass an array with the starting and ending values and let the filter do whatever it needs to the values. If colors are found, it returns true and then we must match where the color shows up order-wise because for things like boxShadow, sometimes the browser provides the computed values with the color FIRST, but the user provides it with the color LAST, so flip them if necessary. Same for drop-shadow().\n\n\n start = a[0];\n end = a[1];\n startValues = start.match(_numWithUnitExp) || [];\n endValues = end.match(_numWithUnitExp) || [];\n\n if (endValues.length) {\n while (result = _numWithUnitExp.exec(end)) {\n endValue = result[0];\n chunk = end.substring(index, result.index);\n\n if (color) {\n color = (color + 1) % 5;\n } else if (chunk.substr(-5) === \"rgba(\" || chunk.substr(-5) === \"hsla(\") {\n color = 1;\n }\n\n if (endValue !== (startValue = startValues[matchIndex++] || \"\")) {\n startNum = parseFloat(startValue) || 0;\n startUnit = startValue.substr((startNum + \"\").length);\n relative = endValue.charAt(1) === \"=\" ? +(endValue.charAt(0) + \"1\") : 0;\n\n if (relative) {\n endValue = endValue.substr(2);\n }\n\n endNum = parseFloat(endValue);\n endUnit = endValue.substr((endNum + \"\").length);\n index = _numWithUnitExp.lastIndex - endUnit.length;\n\n if (!endUnit) {\n //if something like \"perspective:300\" is passed in and we must add a unit to the end\n endUnit = endUnit || _config.units[prop] || startUnit;\n\n if (index === end.length) {\n end += endUnit;\n pt.e += endUnit;\n }\n }\n\n if (startUnit !== endUnit) {\n startNum = _convertToUnit(target, prop, startValue, endUnit) || 0;\n } //these nested PropTweens are handled in a special way - we'll never actually call a render or setter method on them. We'll just loop through them in the parent complex string PropTween's render method.\n\n\n pt._pt = {\n _next: pt._pt,\n p: chunk || matchIndex === 1 ? chunk : \",\",\n //note: SVG spec allows omission of comma/space when a negative sign is wedged between two numbers, like 2.5-5.3 instead of 2.5,-5.3 but when tweening, the negative value may switch to positive, so we insert the comma just in case.\n s: startNum,\n c: relative ? relative * endNum : endNum - startNum,\n m: color && color < 4 || prop === \"zIndex\" ? Math.round : 0\n };\n }\n }\n\n pt.c = index < end.length ? end.substring(index, end.length) : \"\"; //we use the \"c\" of the PropTween to store the final part of the string (after the last number)\n } else {\n pt.r = prop === \"display\" && end === \"none\" ? _renderNonTweeningValueOnlyAtEnd : _renderNonTweeningValue;\n }\n\n _relExp.test(end) && (pt.e = 0); //if the end string contains relative values or dynamic random(...) values, delete the end it so that on the final render we don't actually set it to the string with += or -= characters (forces it to use the calculated value).\n\n this._pt = pt; //start the linked list with this new PropTween. Remember, we call _tweenComplexCSSString.call(pluginInstance...) to ensure that it's scoped properly. We may call it from within another plugin too, thus \"this\" would refer to the plugin.\n\n return pt;\n},\n _keywordToPercent = {\n top: \"0%\",\n bottom: \"100%\",\n left: \"0%\",\n right: \"100%\",\n center: \"50%\"\n},\n _convertKeywordsToPercentages = function _convertKeywordsToPercentages(value) {\n var split = value.split(\" \"),\n x = split[0],\n y = split[1] || \"50%\";\n\n if (x === \"top\" || x === \"bottom\" || y === \"left\" || y === \"right\") {\n //the user provided them in the wrong order, so flip them\n value = x;\n x = y;\n y = value;\n }\n\n split[0] = _keywordToPercent[x] || x;\n split[1] = _keywordToPercent[y] || y;\n return split.join(\" \");\n},\n _renderClearProps = function _renderClearProps(ratio, data) {\n if (data.tween && data.tween._time === data.tween._dur) {\n var target = data.t,\n style = target.style,\n props = data.u,\n cache = target._gsap,\n prop,\n clearTransforms,\n i;\n\n if (props === \"all\" || props === true) {\n style.cssText = \"\";\n clearTransforms = 1;\n } else {\n props = props.split(\",\");\n i = props.length;\n\n while (--i > -1) {\n prop = props[i];\n\n if (_transformProps[prop]) {\n clearTransforms = 1;\n prop = prop === \"transformOrigin\" ? _transformOriginProp : _transformProp;\n }\n\n _removeProperty(target, prop);\n }\n }\n\n if (clearTransforms) {\n _removeProperty(target, _transformProp);\n\n if (cache) {\n cache.svg && target.removeAttribute(\"transform\");\n\n _parseTransform(target, 1); // force all the cached values back to \"normal\"/identity, otherwise if there's another tween that's already set to render transforms on this element, it could display the wrong values.\n\n\n cache.uncache = 1;\n }\n }\n }\n},\n // note: specialProps should return 1 if (and only if) they have a non-zero priority. It indicates we need to sort the linked list.\n_specialProps = {\n clearProps: function clearProps(plugin, target, property, endValue, tween) {\n if (tween.data !== \"isFromStart\") {\n var pt = plugin._pt = new PropTween(plugin._pt, target, property, 0, 0, _renderClearProps);\n pt.u = endValue;\n pt.pr = -10;\n pt.tween = tween;\n\n plugin._props.push(property);\n\n return 1;\n }\n }\n /* className feature (about 0.4kb gzipped).\n , className(plugin, target, property, endValue, tween) {\n \tlet _renderClassName = (ratio, data) => {\n \t\t\tdata.css.render(ratio, data.css);\n \t\t\tif (!ratio || ratio === 1) {\n \t\t\t\tlet inline = data.rmv,\n \t\t\t\t\ttarget = data.t,\n \t\t\t\t\tp;\n \t\t\t\ttarget.setAttribute(\"class\", ratio ? data.e : data.b);\n \t\t\t\tfor (p in inline) {\n \t\t\t\t\t_removeProperty(target, p);\n \t\t\t\t}\n \t\t\t}\n \t\t},\n \t\t_getAllStyles = (target) => {\n \t\t\tlet styles = {},\n \t\t\t\tcomputed = getComputedStyle(target),\n \t\t\t\tp;\n \t\t\tfor (p in computed) {\n \t\t\t\tif (isNaN(p) && p !== \"cssText\" && p !== \"length\") {\n \t\t\t\t\tstyles[p] = computed[p];\n \t\t\t\t}\n \t\t\t}\n \t\t\t_setDefaults(styles, _parseTransform(target, 1));\n \t\t\treturn styles;\n \t\t},\n \t\tstartClassList = target.getAttribute(\"class\"),\n \t\tstyle = target.style,\n \t\tcssText = style.cssText,\n \t\tcache = target._gsap,\n \t\tclassPT = cache.classPT,\n \t\tinlineToRemoveAtEnd = {},\n \t\tdata = {t:target, plugin:plugin, rmv:inlineToRemoveAtEnd, b:startClassList, e:(endValue.charAt(1) !== \"=\") ? endValue : startClassList.replace(new RegExp(\"(?:\\\\s|^)\" + endValue.substr(2) + \"(?![\\\\w-])\"), \"\") + ((endValue.charAt(0) === \"+\") ? \" \" + endValue.substr(2) : \"\")},\n \t\tchangingVars = {},\n \t\tstartVars = _getAllStyles(target),\n \t\ttransformRelated = /(transform|perspective)/i,\n \t\tendVars, p;\n \tif (classPT) {\n \t\tclassPT.r(1, classPT.d);\n \t\t_removeLinkedListItem(classPT.d.plugin, classPT, \"_pt\");\n \t}\n \ttarget.setAttribute(\"class\", data.e);\n \tendVars = _getAllStyles(target, true);\n \ttarget.setAttribute(\"class\", startClassList);\n \tfor (p in endVars) {\n \t\tif (endVars[p] !== startVars[p] && !transformRelated.test(p)) {\n \t\t\tchangingVars[p] = endVars[p];\n \t\t\tif (!style[p] && style[p] !== \"0\") {\n \t\t\t\tinlineToRemoveAtEnd[p] = 1;\n \t\t\t}\n \t\t}\n \t}\n \tcache.classPT = plugin._pt = new PropTween(plugin._pt, target, \"className\", 0, 0, _renderClassName, data, 0, -11);\n \tif (style.cssText !== cssText) { //only apply if things change. Otherwise, in cases like a background-image that's pulled dynamically, it could cause a refresh. See https://greensock.com/forums/topic/20368-possible-gsap-bug-switching-classnames-in-chrome/.\n \t\tstyle.cssText = cssText; //we recorded cssText before we swapped classes and ran _getAllStyles() because in cases when a className tween is overwritten, we remove all the related tweening properties from that class change (otherwise class-specific stuff can't override properties we've directly set on the target's style object due to specificity).\n \t}\n \t_parseTransform(target, true); //to clear the caching of transforms\n \tdata.css = new gsap.plugins.css();\n \tdata.css.init(target, changingVars, tween);\n \tplugin._props.push(...data.css._props);\n \treturn 1;\n }\n */\n\n},\n\n/*\n * --------------------------------------------------------------------------------------\n * TRANSFORMS\n * --------------------------------------------------------------------------------------\n */\n_identity2DMatrix = [1, 0, 0, 1, 0, 0],\n _rotationalProperties = {},\n _isNullTransform = function _isNullTransform(value) {\n return value === \"matrix(1, 0, 0, 1, 0, 0)\" || value === \"none\" || !value;\n},\n _getComputedTransformMatrixAsArray = function _getComputedTransformMatrixAsArray(target) {\n var matrixString = _getComputedProperty(target, _transformProp);\n\n return _isNullTransform(matrixString) ? _identity2DMatrix : matrixString.substr(7).match(_numExp).map(_round);\n},\n _getMatrix = function _getMatrix(target, force2D) {\n var cache = target._gsap || _getCache(target),\n style = target.style,\n matrix = _getComputedTransformMatrixAsArray(target),\n parent,\n nextSibling,\n temp,\n addedToDOM;\n\n if (cache.svg && target.getAttribute(\"transform\")) {\n temp = target.transform.baseVal.consolidate().matrix; //ensures that even complex values like \"translate(50,60) rotate(135,0,0)\" are parsed because it mashes it into a matrix.\n\n matrix = [temp.a, temp.b, temp.c, temp.d, temp.e, temp.f];\n return matrix.join(\",\") === \"1,0,0,1,0,0\" ? _identity2DMatrix : matrix;\n } else if (matrix === _identity2DMatrix && !target.offsetParent && target !== _docElement && !cache.svg) {\n //note: if offsetParent is null, that means the element isn't in the normal document flow, like if it has display:none or one of its ancestors has display:none). Firefox returns null for getComputedStyle() if the element is in an iframe that has display:none. https://bugzilla.mozilla.org/show_bug.cgi?id=548397\n //browsers don't report transforms accurately unless the element is in the DOM and has a display value that's not \"none\". Firefox and Microsoft browsers have a partial bug where they'll report transforms even if display:none BUT not any percentage-based values like translate(-50%, 8px) will be reported as if it's translate(0, 8px).\n temp = style.display;\n style.display = \"block\";\n parent = target.parentNode;\n\n if (!parent || !target.offsetParent) {\n // note: in 3.3.0 we switched target.offsetParent to _doc.body.contains(target) to avoid [sometimes unnecessary] MutationObserver calls but that wasn't adequate because there are edge cases where nested position: fixed elements need to get reparented to accurately sense transforms. See https://github.com/greensock/GSAP/issues/388 and https://github.com/greensock/GSAP/issues/375\n addedToDOM = 1; //flag\n\n nextSibling = target.nextSibling;\n\n _docElement.appendChild(target); //we must add it to the DOM in order to get values properly\n\n }\n\n matrix = _getComputedTransformMatrixAsArray(target);\n temp ? style.display = temp : _removeProperty(target, \"display\");\n\n if (addedToDOM) {\n nextSibling ? parent.insertBefore(target, nextSibling) : parent ? parent.appendChild(target) : _docElement.removeChild(target);\n }\n }\n\n return force2D && matrix.length > 6 ? [matrix[0], matrix[1], matrix[4], matrix[5], matrix[12], matrix[13]] : matrix;\n},\n _applySVGOrigin = function _applySVGOrigin(target, origin, originIsAbsolute, smooth, matrixArray, pluginToAddPropTweensTo) {\n var cache = target._gsap,\n matrix = matrixArray || _getMatrix(target, true),\n xOriginOld = cache.xOrigin || 0,\n yOriginOld = cache.yOrigin || 0,\n xOffsetOld = cache.xOffset || 0,\n yOffsetOld = cache.yOffset || 0,\n a = matrix[0],\n b = matrix[1],\n c = matrix[2],\n d = matrix[3],\n tx = matrix[4],\n ty = matrix[5],\n originSplit = origin.split(\" \"),\n xOrigin = parseFloat(originSplit[0]) || 0,\n yOrigin = parseFloat(originSplit[1]) || 0,\n bounds,\n determinant,\n x,\n y;\n\n if (!originIsAbsolute) {\n bounds = _getBBox(target);\n xOrigin = bounds.x + (~originSplit[0].indexOf(\"%\") ? xOrigin / 100 * bounds.width : xOrigin);\n yOrigin = bounds.y + (~(originSplit[1] || originSplit[0]).indexOf(\"%\") ? yOrigin / 100 * bounds.height : yOrigin);\n } else if (matrix !== _identity2DMatrix && (determinant = a * d - b * c)) {\n //if it's zero (like if scaleX and scaleY are zero), skip it to avoid errors with dividing by zero.\n x = xOrigin * (d / determinant) + yOrigin * (-c / determinant) + (c * ty - d * tx) / determinant;\n y = xOrigin * (-b / determinant) + yOrigin * (a / determinant) - (a * ty - b * tx) / determinant;\n xOrigin = x;\n yOrigin = y;\n }\n\n if (smooth || smooth !== false && cache.smooth) {\n tx = xOrigin - xOriginOld;\n ty = yOrigin - yOriginOld;\n cache.xOffset = xOffsetOld + (tx * a + ty * c) - tx;\n cache.yOffset = yOffsetOld + (tx * b + ty * d) - ty;\n } else {\n cache.xOffset = cache.yOffset = 0;\n }\n\n cache.xOrigin = xOrigin;\n cache.yOrigin = yOrigin;\n cache.smooth = !!smooth;\n cache.origin = origin;\n cache.originIsAbsolute = !!originIsAbsolute;\n target.style[_transformOriginProp] = \"0px 0px\"; //otherwise, if someone sets an origin via CSS, it will likely interfere with the SVG transform attribute ones (because remember, we're baking the origin into the matrix() value).\n\n if (pluginToAddPropTweensTo) {\n _addNonTweeningPT(pluginToAddPropTweensTo, cache, \"xOrigin\", xOriginOld, xOrigin);\n\n _addNonTweeningPT(pluginToAddPropTweensTo, cache, \"yOrigin\", yOriginOld, yOrigin);\n\n _addNonTweeningPT(pluginToAddPropTweensTo, cache, \"xOffset\", xOffsetOld, cache.xOffset);\n\n _addNonTweeningPT(pluginToAddPropTweensTo, cache, \"yOffset\", yOffsetOld, cache.yOffset);\n }\n\n target.setAttribute(\"data-svg-origin\", xOrigin + \" \" + yOrigin);\n},\n _parseTransform = function _parseTransform(target, uncache) {\n var cache = target._gsap || new GSCache(target);\n\n if (\"x\" in cache && !uncache && !cache.uncache) {\n return cache;\n }\n\n var style = target.style,\n invertedScaleX = cache.scaleX < 0,\n px = \"px\",\n deg = \"deg\",\n origin = _getComputedProperty(target, _transformOriginProp) || \"0\",\n x,\n y,\n z,\n scaleX,\n scaleY,\n rotation,\n rotationX,\n rotationY,\n skewX,\n skewY,\n perspective,\n xOrigin,\n yOrigin,\n matrix,\n angle,\n cos,\n sin,\n a,\n b,\n c,\n d,\n a12,\n a22,\n t1,\n t2,\n t3,\n a13,\n a23,\n a33,\n a42,\n a43,\n a32;\n x = y = z = rotation = rotationX = rotationY = skewX = skewY = perspective = 0;\n scaleX = scaleY = 1;\n cache.svg = !!(target.getCTM && _isSVG(target));\n matrix = _getMatrix(target, cache.svg);\n\n if (cache.svg) {\n t1 = !cache.uncache && !uncache && target.getAttribute(\"data-svg-origin\");\n\n _applySVGOrigin(target, t1 || origin, !!t1 || cache.originIsAbsolute, cache.smooth !== false, matrix);\n }\n\n xOrigin = cache.xOrigin || 0;\n yOrigin = cache.yOrigin || 0;\n\n if (matrix !== _identity2DMatrix) {\n a = matrix[0]; //a11\n\n b = matrix[1]; //a21\n\n c = matrix[2]; //a31\n\n d = matrix[3]; //a41\n\n x = a12 = matrix[4];\n y = a22 = matrix[5]; //2D matrix\n\n if (matrix.length === 6) {\n scaleX = Math.sqrt(a * a + b * b);\n scaleY = Math.sqrt(d * d + c * c);\n rotation = a || b ? _atan2(b, a) * _RAD2DEG : 0; //note: if scaleX is 0, we cannot accurately measure rotation. Same for skewX with a scaleY of 0. Therefore, we default to the previously recorded value (or zero if that doesn't exist).\n\n skewX = c || d ? _atan2(c, d) * _RAD2DEG + rotation : 0;\n skewX && (scaleY *= Math.abs(Math.cos(skewX * _DEG2RAD)));\n\n if (cache.svg) {\n x -= xOrigin - (xOrigin * a + yOrigin * c);\n y -= yOrigin - (xOrigin * b + yOrigin * d);\n } //3D matrix\n\n } else {\n a32 = matrix[6];\n a42 = matrix[7];\n a13 = matrix[8];\n a23 = matrix[9];\n a33 = matrix[10];\n a43 = matrix[11];\n x = matrix[12];\n y = matrix[13];\n z = matrix[14];\n angle = _atan2(a32, a33);\n rotationX = angle * _RAD2DEG; //rotationX\n\n if (angle) {\n cos = Math.cos(-angle);\n sin = Math.sin(-angle);\n t1 = a12 * cos + a13 * sin;\n t2 = a22 * cos + a23 * sin;\n t3 = a32 * cos + a33 * sin;\n a13 = a12 * -sin + a13 * cos;\n a23 = a22 * -sin + a23 * cos;\n a33 = a32 * -sin + a33 * cos;\n a43 = a42 * -sin + a43 * cos;\n a12 = t1;\n a22 = t2;\n a32 = t3;\n } //rotationY\n\n\n angle = _atan2(-c, a33);\n rotationY = angle * _RAD2DEG;\n\n if (angle) {\n cos = Math.cos(-angle);\n sin = Math.sin(-angle);\n t1 = a * cos - a13 * sin;\n t2 = b * cos - a23 * sin;\n t3 = c * cos - a33 * sin;\n a43 = d * sin + a43 * cos;\n a = t1;\n b = t2;\n c = t3;\n } //rotationZ\n\n\n angle = _atan2(b, a);\n rotation = angle * _RAD2DEG;\n\n if (angle) {\n cos = Math.cos(angle);\n sin = Math.sin(angle);\n t1 = a * cos + b * sin;\n t2 = a12 * cos + a22 * sin;\n b = b * cos - a * sin;\n a22 = a22 * cos - a12 * sin;\n a = t1;\n a12 = t2;\n }\n\n if (rotationX && Math.abs(rotationX) + Math.abs(rotation) > 359.9) {\n //when rotationY is set, it will often be parsed as 180 degrees different than it should be, and rotationX and rotation both being 180 (it looks the same), so we adjust for that here.\n rotationX = rotation = 0;\n rotationY = 180 - rotationY;\n }\n\n scaleX = _round(Math.sqrt(a * a + b * b + c * c));\n scaleY = _round(Math.sqrt(a22 * a22 + a32 * a32));\n angle = _atan2(a12, a22);\n skewX = Math.abs(angle) > 0.0002 ? angle * _RAD2DEG : 0;\n perspective = a43 ? 1 / (a43 < 0 ? -a43 : a43) : 0;\n }\n\n if (cache.svg) {\n //sense if there are CSS transforms applied on an SVG element in which case we must overwrite them when rendering. The transform attribute is more reliable cross-browser, but we can't just remove the CSS ones because they may be applied in a CSS rule somewhere (not just inline).\n t1 = target.getAttribute(\"transform\");\n cache.forceCSS = target.setAttribute(\"transform\", \"\") || !_isNullTransform(_getComputedProperty(target, _transformProp));\n t1 && target.setAttribute(\"transform\", t1);\n }\n }\n\n if (Math.abs(skewX) > 90 && Math.abs(skewX) < 270) {\n if (invertedScaleX) {\n scaleX *= -1;\n skewX += rotation <= 0 ? 180 : -180;\n rotation += rotation <= 0 ? 180 : -180;\n } else {\n scaleY *= -1;\n skewX += skewX <= 0 ? 180 : -180;\n }\n }\n\n cache.x = x - ((cache.xPercent = x && (cache.xPercent || (Math.round(target.offsetWidth / 2) === Math.round(-x) ? -50 : 0))) ? target.offsetWidth * cache.xPercent / 100 : 0) + px;\n cache.y = y - ((cache.yPercent = y && (cache.yPercent || (Math.round(target.offsetHeight / 2) === Math.round(-y) ? -50 : 0))) ? target.offsetHeight * cache.yPercent / 100 : 0) + px;\n cache.z = z + px;\n cache.scaleX = _round(scaleX);\n cache.scaleY = _round(scaleY);\n cache.rotation = _round(rotation) + deg;\n cache.rotationX = _round(rotationX) + deg;\n cache.rotationY = _round(rotationY) + deg;\n cache.skewX = skewX + deg;\n cache.skewY = skewY + deg;\n cache.transformPerspective = perspective + px;\n\n if (cache.zOrigin = parseFloat(origin.split(\" \")[2]) || 0) {\n style[_transformOriginProp] = _firstTwoOnly(origin);\n }\n\n cache.xOffset = cache.yOffset = 0;\n cache.force3D = _config.force3D;\n cache.renderTransform = cache.svg ? _renderSVGTransforms : _supports3D ? _renderCSSTransforms : _renderNon3DTransforms;\n cache.uncache = 0;\n return cache;\n},\n _firstTwoOnly = function _firstTwoOnly(value) {\n return (value = value.split(\" \"))[0] + \" \" + value[1];\n},\n //for handling transformOrigin values, stripping out the 3rd dimension\n_addPxTranslate = function _addPxTranslate(target, start, value) {\n var unit = getUnit(start);\n return _round(parseFloat(start) + parseFloat(_convertToUnit(target, \"x\", value + \"px\", unit))) + unit;\n},\n _renderNon3DTransforms = function _renderNon3DTransforms(ratio, cache) {\n cache.z = \"0px\";\n cache.rotationY = cache.rotationX = \"0deg\";\n cache.force3D = 0;\n\n _renderCSSTransforms(ratio, cache);\n},\n _zeroDeg = \"0deg\",\n _zeroPx = \"0px\",\n _endParenthesis = \") \",\n _renderCSSTransforms = function _renderCSSTransforms(ratio, cache) {\n var _ref = cache || this,\n xPercent = _ref.xPercent,\n yPercent = _ref.yPercent,\n x = _ref.x,\n y = _ref.y,\n z = _ref.z,\n rotation = _ref.rotation,\n rotationY = _ref.rotationY,\n rotationX = _ref.rotationX,\n skewX = _ref.skewX,\n skewY = _ref.skewY,\n scaleX = _ref.scaleX,\n scaleY = _ref.scaleY,\n transformPerspective = _ref.transformPerspective,\n force3D = _ref.force3D,\n target = _ref.target,\n zOrigin = _ref.zOrigin,\n transforms = \"\",\n use3D = force3D === \"auto\" && ratio && ratio !== 1 || force3D === true; // Safari has a bug that causes it not to render 3D transform-origin values properly, so we force the z origin to 0, record it in the cache, and then do the math here to offset the translate values accordingly (basically do the 3D transform-origin part manually)\n\n\n if (zOrigin && (rotationX !== _zeroDeg || rotationY !== _zeroDeg)) {\n var angle = parseFloat(rotationY) * _DEG2RAD,\n a13 = Math.sin(angle),\n a33 = Math.cos(angle),\n cos;\n\n angle = parseFloat(rotationX) * _DEG2RAD;\n cos = Math.cos(angle);\n x = _addPxTranslate(target, x, a13 * cos * -zOrigin);\n y = _addPxTranslate(target, y, -Math.sin(angle) * -zOrigin);\n z = _addPxTranslate(target, z, a33 * cos * -zOrigin + zOrigin);\n }\n\n if (transformPerspective !== _zeroPx) {\n transforms += \"perspective(\" + transformPerspective + _endParenthesis;\n }\n\n if (xPercent || yPercent) {\n transforms += \"translate(\" + xPercent + \"%, \" + yPercent + \"%) \";\n }\n\n if (use3D || x !== _zeroPx || y !== _zeroPx || z !== _zeroPx) {\n transforms += z !== _zeroPx || use3D ? \"translate3d(\" + x + \", \" + y + \", \" + z + \") \" : \"translate(\" + x + \", \" + y + _endParenthesis;\n }\n\n if (rotation !== _zeroDeg) {\n transforms += \"rotate(\" + rotation + _endParenthesis;\n }\n\n if (rotationY !== _zeroDeg) {\n transforms += \"rotateY(\" + rotationY + _endParenthesis;\n }\n\n if (rotationX !== _zeroDeg) {\n transforms += \"rotateX(\" + rotationX + _endParenthesis;\n }\n\n if (skewX !== _zeroDeg || skewY !== _zeroDeg) {\n transforms += \"skew(\" + skewX + \", \" + skewY + _endParenthesis;\n }\n\n if (scaleX !== 1 || scaleY !== 1) {\n transforms += \"scale(\" + scaleX + \", \" + scaleY + _endParenthesis;\n }\n\n target.style[_transformProp] = transforms || \"translate(0, 0)\";\n},\n _renderSVGTransforms = function _renderSVGTransforms(ratio, cache) {\n var _ref2 = cache || this,\n xPercent = _ref2.xPercent,\n yPercent = _ref2.yPercent,\n x = _ref2.x,\n y = _ref2.y,\n rotation = _ref2.rotation,\n skewX = _ref2.skewX,\n skewY = _ref2.skewY,\n scaleX = _ref2.scaleX,\n scaleY = _ref2.scaleY,\n target = _ref2.target,\n xOrigin = _ref2.xOrigin,\n yOrigin = _ref2.yOrigin,\n xOffset = _ref2.xOffset,\n yOffset = _ref2.yOffset,\n forceCSS = _ref2.forceCSS,\n tx = parseFloat(x),\n ty = parseFloat(y),\n a11,\n a21,\n a12,\n a22,\n temp;\n\n rotation = parseFloat(rotation);\n skewX = parseFloat(skewX);\n skewY = parseFloat(skewY);\n\n if (skewY) {\n //for performance reasons, we combine all skewing into the skewX and rotation values. Remember, a skewY of 10 degrees looks the same as a rotation of 10 degrees plus a skewX of 10 degrees.\n skewY = parseFloat(skewY);\n skewX += skewY;\n rotation += skewY;\n }\n\n if (rotation || skewX) {\n rotation *= _DEG2RAD;\n skewX *= _DEG2RAD;\n a11 = Math.cos(rotation) * scaleX;\n a21 = Math.sin(rotation) * scaleX;\n a12 = Math.sin(rotation - skewX) * -scaleY;\n a22 = Math.cos(rotation - skewX) * scaleY;\n\n if (skewX) {\n skewY *= _DEG2RAD;\n temp = Math.tan(skewX - skewY);\n temp = Math.sqrt(1 + temp * temp);\n a12 *= temp;\n a22 *= temp;\n\n if (skewY) {\n temp = Math.tan(skewY);\n temp = Math.sqrt(1 + temp * temp);\n a11 *= temp;\n a21 *= temp;\n }\n }\n\n a11 = _round(a11);\n a21 = _round(a21);\n a12 = _round(a12);\n a22 = _round(a22);\n } else {\n a11 = scaleX;\n a22 = scaleY;\n a21 = a12 = 0;\n }\n\n if (tx && !~(x + \"\").indexOf(\"px\") || ty && !~(y + \"\").indexOf(\"px\")) {\n tx = _convertToUnit(target, \"x\", x, \"px\");\n ty = _convertToUnit(target, \"y\", y, \"px\");\n }\n\n if (xOrigin || yOrigin || xOffset || yOffset) {\n tx = _round(tx + xOrigin - (xOrigin * a11 + yOrigin * a12) + xOffset);\n ty = _round(ty + yOrigin - (xOrigin * a21 + yOrigin * a22) + yOffset);\n }\n\n if (xPercent || yPercent) {\n //The SVG spec doesn't support percentage-based translation in the \"transform\" attribute, so we merge it into the translation to simulate it.\n temp = target.getBBox();\n tx = _round(tx + xPercent / 100 * temp.width);\n ty = _round(ty + yPercent / 100 * temp.height);\n }\n\n temp = \"matrix(\" + a11 + \",\" + a21 + \",\" + a12 + \",\" + a22 + \",\" + tx + \",\" + ty + \")\";\n target.setAttribute(\"transform\", temp);\n forceCSS && (target.style[_transformProp] = temp); //some browsers prioritize CSS transforms over the transform attribute. When we sense that the user has CSS transforms applied, we must overwrite them this way (otherwise some browser simply won't render the transform attribute changes!)\n},\n _addRotationalPropTween = function _addRotationalPropTween(plugin, target, property, startNum, endValue, relative) {\n var cap = 360,\n isString = _isString(endValue),\n endNum = parseFloat(endValue) * (isString && ~endValue.indexOf(\"rad\") ? _RAD2DEG : 1),\n change = relative ? endNum * relative : endNum - startNum,\n finalValue = startNum + change + \"deg\",\n direction,\n pt;\n\n if (isString) {\n direction = endValue.split(\"_\")[1];\n\n if (direction === \"short\") {\n change %= cap;\n\n if (change !== change % (cap / 2)) {\n change += change < 0 ? cap : -cap;\n }\n }\n\n if (direction === \"cw\" && change < 0) {\n change = (change + cap * _bigNum) % cap - ~~(change / cap) * cap;\n } else if (direction === \"ccw\" && change > 0) {\n change = (change - cap * _bigNum) % cap - ~~(change / cap) * cap;\n }\n }\n\n plugin._pt = pt = new PropTween(plugin._pt, target, property, startNum, change, _renderPropWithEnd);\n pt.e = finalValue;\n pt.u = \"deg\";\n\n plugin._props.push(property);\n\n return pt;\n},\n _assign = function _assign(target, source) {\n // Internet Explorer doesn't have Object.assign(), so we recreate it here.\n for (var p in source) {\n target[p] = source[p];\n }\n\n return target;\n},\n _addRawTransformPTs = function _addRawTransformPTs(plugin, transforms, target) {\n //for handling cases where someone passes in a whole transform string, like transform: \"scale(2, 3) rotate(20deg) translateY(30em)\"\n var startCache = _assign({}, target._gsap),\n exclude = \"perspective,force3D,transformOrigin,svgOrigin\",\n style = target.style,\n endCache,\n p,\n startValue,\n endValue,\n startNum,\n endNum,\n startUnit,\n endUnit;\n\n if (startCache.svg) {\n startValue = target.getAttribute(\"transform\");\n target.setAttribute(\"transform\", \"\");\n style[_transformProp] = transforms;\n endCache = _parseTransform(target, 1);\n\n _removeProperty(target, _transformProp);\n\n target.setAttribute(\"transform\", startValue);\n } else {\n startValue = getComputedStyle(target)[_transformProp];\n style[_transformProp] = transforms;\n endCache = _parseTransform(target, 1);\n style[_transformProp] = startValue;\n }\n\n for (p in _transformProps) {\n startValue = startCache[p];\n endValue = endCache[p];\n\n if (startValue !== endValue && exclude.indexOf(p) < 0) {\n //tweening to no perspective gives very unintuitive results - just keep the same perspective in that case.\n startUnit = getUnit(startValue);\n endUnit = getUnit(endValue);\n startNum = startUnit !== endUnit ? _convertToUnit(target, p, startValue, endUnit) : parseFloat(startValue);\n endNum = parseFloat(endValue);\n plugin._pt = new PropTween(plugin._pt, endCache, p, startNum, endNum - startNum, _renderCSSProp);\n plugin._pt.u = endUnit || 0;\n\n plugin._props.push(p);\n }\n }\n\n _assign(endCache, startCache);\n}; // handle splitting apart padding, margin, borderWidth, and borderRadius into their 4 components. Firefox, for example, won't report borderRadius correctly - it will only do borderTopLeftRadius and the other corners. We also want to handle paddingTop, marginLeft, borderRightWidth, etc.\n\n\n_forEachName(\"padding,margin,Width,Radius\", function (name, index) {\n var t = \"Top\",\n r = \"Right\",\n b = \"Bottom\",\n l = \"Left\",\n props = (index < 3 ? [t, r, b, l] : [t + l, t + r, b + r, b + l]).map(function (side) {\n return index < 2 ? name + side : \"border\" + side + name;\n });\n\n _specialProps[index > 1 ? \"border\" + name : name] = function (plugin, target, property, endValue, tween) {\n var a, vars;\n\n if (arguments.length < 4) {\n // getter, passed target, property, and unit (from _get())\n a = props.map(function (prop) {\n return _get(plugin, prop, property);\n });\n vars = a.join(\" \");\n return vars.split(a[0]).length === 5 ? a[0] : vars;\n }\n\n a = (endValue + \"\").split(\" \");\n vars = {};\n props.forEach(function (prop, i) {\n return vars[prop] = a[i] = a[i] || a[(i - 1) / 2 | 0];\n });\n plugin.init(target, vars, tween);\n };\n});\n\nexport var CSSPlugin = {\n name: \"css\",\n register: _initCore,\n targetTest: function targetTest(target) {\n return target.style && target.nodeType;\n },\n init: function init(target, vars, tween, index, targets) {\n var props = this._props,\n style = target.style,\n startAt = tween.vars.startAt,\n startValue,\n endValue,\n endNum,\n startNum,\n type,\n specialProp,\n p,\n startUnit,\n endUnit,\n relative,\n isTransformRelated,\n transformPropTween,\n cache,\n smooth,\n hasPriority;\n _pluginInitted || _initCore();\n\n for (p in vars) {\n if (p === \"autoRound\") {\n continue;\n }\n\n endValue = vars[p];\n\n if (_plugins[p] && _checkPlugin(p, vars, tween, index, target, targets)) {\n // plugins\n continue;\n }\n\n type = typeof endValue;\n specialProp = _specialProps[p];\n\n if (type === \"function\") {\n endValue = endValue.call(tween, index, target, targets);\n type = typeof endValue;\n }\n\n if (type === \"string\" && ~endValue.indexOf(\"random(\")) {\n endValue = _replaceRandom(endValue);\n }\n\n if (specialProp) {\n specialProp(this, target, p, endValue, tween) && (hasPriority = 1);\n } else if (p.substr(0, 2) === \"--\") {\n //CSS variable\n startValue = (getComputedStyle(target).getPropertyValue(p) + \"\").trim();\n endValue += \"\";\n _colorExp.lastIndex = 0;\n\n if (!_colorExp.test(startValue)) {\n // colors don't have units\n startUnit = getUnit(startValue);\n endUnit = getUnit(endValue);\n }\n\n endUnit ? startUnit !== endUnit && (startValue = _convertToUnit(target, p, startValue, endUnit) + endUnit) : startUnit && (endValue += startUnit);\n this.add(style, \"setProperty\", startValue, endValue, index, targets, 0, 0, p);\n } else if (type !== \"undefined\") {\n if (startAt && p in startAt) {\n // in case someone hard-codes a complex value as the start, like top: \"calc(2vh / 2)\". Without this, it'd use the computed value (always in px)\n startValue = typeof startAt[p] === \"function\" ? startAt[p].call(tween, index, target, targets) : startAt[p];\n p in _config.units && !getUnit(startValue) && (startValue += _config.units[p]); // for cases when someone passes in a unitless value like {x: 100}; if we try setting translate(100, 0px) it won't work.\n\n (startValue + \"\").charAt(1) === \"=\" && (startValue = _get(target, p)); // can't work with relative values\n } else {\n startValue = _get(target, p);\n }\n\n startNum = parseFloat(startValue);\n relative = type === \"string\" && endValue.charAt(1) === \"=\" ? +(endValue.charAt(0) + \"1\") : 0;\n relative && (endValue = endValue.substr(2));\n endNum = parseFloat(endValue);\n\n if (p in _propertyAliases) {\n if (p === \"autoAlpha\") {\n //special case where we control the visibility along with opacity. We still allow the opacity value to pass through and get tweened.\n if (startNum === 1 && _get(target, \"visibility\") === \"hidden\" && endNum) {\n //if visibility is initially set to \"hidden\", we should interpret that as intent to make opacity 0 (a convenience)\n startNum = 0;\n }\n\n _addNonTweeningPT(this, style, \"visibility\", startNum ? \"inherit\" : \"hidden\", endNum ? \"inherit\" : \"hidden\", !endNum);\n }\n\n if (p !== \"scale\" && p !== \"transform\") {\n p = _propertyAliases[p];\n ~p.indexOf(\",\") && (p = p.split(\",\")[0]);\n }\n }\n\n isTransformRelated = p in _transformProps; //--- TRANSFORM-RELATED ---\n\n if (isTransformRelated) {\n if (!transformPropTween) {\n cache = target._gsap;\n cache.renderTransform && !vars.parseTransform || _parseTransform(target, vars.parseTransform); // if, for example, gsap.set(... {transform:\"translateX(50vw)\"}), the _get() call doesn't parse the transform, thus cache.renderTransform won't be set yet so force the parsing of the transform here.\n\n smooth = vars.smoothOrigin !== false && cache.smooth;\n transformPropTween = this._pt = new PropTween(this._pt, style, _transformProp, 0, 1, cache.renderTransform, cache, 0, -1); //the first time through, create the rendering PropTween so that it runs LAST (in the linked list, we keep adding to the beginning)\n\n transformPropTween.dep = 1; //flag it as dependent so that if things get killed/overwritten and this is the only PropTween left, we can safely kill the whole tween.\n }\n\n if (p === \"scale\") {\n this._pt = new PropTween(this._pt, cache, \"scaleY\", cache.scaleY, relative ? relative * endNum : endNum - cache.scaleY);\n props.push(\"scaleY\", p);\n p += \"X\";\n } else if (p === \"transformOrigin\") {\n endValue = _convertKeywordsToPercentages(endValue); //in case something like \"left top\" or \"bottom right\" is passed in. Convert to percentages.\n\n if (cache.svg) {\n _applySVGOrigin(target, endValue, 0, smooth, 0, this);\n } else {\n endUnit = parseFloat(endValue.split(\" \")[2]) || 0; //handle the zOrigin separately!\n\n endUnit !== cache.zOrigin && _addNonTweeningPT(this, cache, \"zOrigin\", cache.zOrigin, endUnit);\n\n _addNonTweeningPT(this, style, p, _firstTwoOnly(startValue), _firstTwoOnly(endValue));\n }\n\n continue;\n } else if (p === \"svgOrigin\") {\n _applySVGOrigin(target, endValue, 1, smooth, 0, this);\n\n continue;\n } else if (p in _rotationalProperties) {\n _addRotationalPropTween(this, cache, p, startNum, endValue, relative);\n\n continue;\n } else if (p === \"smoothOrigin\") {\n _addNonTweeningPT(this, cache, \"smooth\", cache.smooth, endValue);\n\n continue;\n } else if (p === \"force3D\") {\n cache[p] = endValue;\n continue;\n } else if (p === \"transform\") {\n _addRawTransformPTs(this, endValue, target);\n\n continue;\n }\n } else if (!(p in style)) {\n p = _checkPropPrefix(p) || p;\n }\n\n if (isTransformRelated || (endNum || endNum === 0) && (startNum || startNum === 0) && !_complexExp.test(endValue) && p in style) {\n startUnit = (startValue + \"\").substr((startNum + \"\").length);\n endNum || (endNum = 0); // protect against NaN\n\n endUnit = getUnit(endValue) || (p in _config.units ? _config.units[p] : startUnit);\n startUnit !== endUnit && (startNum = _convertToUnit(target, p, startValue, endUnit));\n this._pt = new PropTween(this._pt, isTransformRelated ? cache : style, p, startNum, relative ? relative * endNum : endNum - startNum, !isTransformRelated && (endUnit === \"px\" || p === \"zIndex\") && vars.autoRound !== false ? _renderRoundedCSSProp : _renderCSSProp);\n this._pt.u = endUnit || 0;\n\n if (startUnit !== endUnit) {\n //when the tween goes all the way back to the beginning, we need to revert it to the OLD/ORIGINAL value (with those units). We record that as a \"b\" (beginning) property and point to a render method that handles that. (performance optimization)\n this._pt.b = startValue;\n this._pt.r = _renderCSSPropWithBeginning;\n }\n } else if (!(p in style)) {\n if (p in target) {\n //maybe it's not a style - it could be a property added directly to an element in which case we'll try to animate that.\n this.add(target, p, target[p], endValue, index, targets);\n } else {\n _missingPlugin(p, endValue);\n\n continue;\n }\n } else {\n _tweenComplexCSSString.call(this, target, p, startValue, endValue);\n }\n\n props.push(p);\n }\n }\n\n hasPriority && _sortPropTweensByPriority(this);\n },\n get: _get,\n aliases: _propertyAliases,\n getSetter: function getSetter(target, property, plugin) {\n //returns a setter function that accepts target, property, value and applies it accordingly. Remember, properties like \"x\" aren't as simple as target.style.property = value because they've got to be applied to a proxy object and then merged into a transform string in a renderer.\n var p = _propertyAliases[property];\n p && p.indexOf(\",\") < 0 && (property = p);\n return property in _transformProps && property !== _transformOriginProp && (target._gsap.x || _get(target, \"x\")) ? plugin && _recentSetterPlugin === plugin ? property === \"scale\" ? _setterScale : _setterTransform : (_recentSetterPlugin = plugin || {}) && (property === \"scale\" ? _setterScaleWithRender : _setterTransformWithRender) : target.style && !_isUndefined(target.style[property]) ? _setterCSSStyle : ~property.indexOf(\"-\") ? _setterCSSProp : _getSetter(target, property);\n },\n core: {\n _removeProperty: _removeProperty,\n _getMatrix: _getMatrix\n }\n};\ngsap.utils.checkPrefix = _checkPropPrefix;\n\n(function (positionAndScale, rotation, others, aliases) {\n var all = _forEachName(positionAndScale + \",\" + rotation + \",\" + others, function (name) {\n _transformProps[name] = 1;\n });\n\n _forEachName(rotation, function (name) {\n _config.units[name] = \"deg\";\n _rotationalProperties[name] = 1;\n });\n\n _propertyAliases[all[13]] = positionAndScale + \",\" + rotation;\n\n _forEachName(aliases, function (name) {\n var split = name.split(\":\");\n _propertyAliases[split[1]] = all[split[0]];\n });\n})(\"x,y,z,scale,scaleX,scaleY,xPercent,yPercent\", \"rotation,rotationX,rotationY,skewX,skewY\", \"transform,transformOrigin,svgOrigin,force3D,smoothOrigin,transformPerspective\", \"0:translateX,1:translateY,2:translateZ,8:rotate,8:rotationZ,8:rotateZ,9:rotateX,10:rotateY\");\n\n_forEachName(\"x,y,z,top,right,bottom,left,width,height,fontSize,padding,margin,perspective\", function (name) {\n _config.units[name] = \"px\";\n});\n\ngsap.registerPlugin(CSSPlugin);\nexport { CSSPlugin as default, _getBBox, _createElement, _checkPropPrefix as checkPrefix };","import { gsap, Power0, Power1, Power2, Power3, Power4, Linear, Quad, Cubic, Quart, Quint, Strong, Elastic, Back, SteppedEase, Bounce, Sine, Expo, Circ, TweenLite, TimelineLite, TimelineMax } from \"./gsap-core.js\";\nimport { CSSPlugin } from \"./CSSPlugin.js\";\nvar gsapWithCSS = gsap.registerPlugin(CSSPlugin) || gsap,\n // to protect from tree shaking\nTweenMaxWithCSS = gsapWithCSS.core.Tween;\nexport { gsapWithCSS as gsap, gsapWithCSS as default, CSSPlugin, TweenMaxWithCSS as TweenMax, TweenLite, TimelineMax, TimelineLite, Power0, Power1, Power2, Power3, Power4, Linear, Quad, Cubic, Quart, Quint, Strong, Elastic, Back, SteppedEase, Bounce, Sine, Expo, Circ };","/**\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\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","import Cookies from 'universal-cookie';\r\nexport default Cookies;\r\n","/**\n * @license React\n * react-server-dom-webpack.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 k=require(\"react\"),l={stream:!0},n=new Map,p=Symbol.for(\"react.element\"),q=Symbol.for(\"react.lazy\"),r=Symbol.for(\"react.default_value\"),t=k.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ContextRegistry;function u(a){t[a]||(t[a]=k.createServerContext(a,r));return t[a]}function v(a,b,c){this._status=a;this._value=b;this._response=c}v.prototype.then=function(a){0===this._status?(null===this._value&&(this._value=[]),this._value.push(a)):a()};\nfunction w(a){switch(a._status){case 3:return a._value;case 1:var b=JSON.parse(a._value,a._response._fromJSON);a._status=3;return a._value=b;case 2:b=a._value;for(var c=b.chunks,d=0;d {\n if (typeof window === 'undefined') {\n return {\n persistAtom: () => { },\n };\n }\n const { key = 'recoil-persist', storage = localStorage, converter = JSON } = config;\n const persistAtom = ({ onSet, node, trigger, setSelf }) => {\n if (trigger === 'get') {\n const state = getState();\n if (typeof state.then === 'function') {\n state.then((s) => {\n if (s.hasOwnProperty(node.key)) {\n setSelf(s[node.key]);\n }\n });\n }\n if (state.hasOwnProperty(node.key)) {\n setSelf(state[node.key]);\n }\n }\n onSet(async (newValue, _, isReset) => {\n const state = getState();\n if (typeof state.then === 'function') {\n state.then((s) => updateState(newValue, s, node.key, isReset));\n }\n else {\n updateState(newValue, state, node.key, isReset);\n }\n });\n };\n const updateState = (newValue, state, key, isReset) => {\n if (isReset) {\n delete state[key];\n }\n else {\n state[key] = newValue;\n }\n setState(state);\n };\n const getState = () => {\n const toParse = storage.getItem(key);\n if (toParse === null || toParse === undefined) {\n return {};\n }\n if (typeof toParse === 'string') {\n return parseState(toParse);\n }\n if (typeof toParse.then === 'function') {\n return toParse.then(parseState);\n }\n return {};\n };\n const parseState = (state) => {\n if (state === undefined) {\n return {};\n }\n try {\n return converter.parse(state);\n }\n catch (e) {\n console.error(e);\n return {};\n }\n };\n const setState = (state) => {\n try {\n if (typeof storage.mergeItem === 'function') {\n storage.mergeItem(key, converter.stringify(state));\n }\n else {\n storage.setItem(key, converter.stringify(state));\n }\n }\n catch (e) {\n console.error(e);\n }\n };\n return { persistAtom };\n};\nexports.recoilPersist = recoilPersist;\n","var React = require('react');\n\nfunction CommonIcnClose (props) {\n return React.createElement(\"svg\",props,[React.createElement(\"g\",{\"clipPath\":\"url(#clip0_181_9617)\",\"key\":0},[React.createElement(\"path\",{\"d\":\"M6.69646 18.3639C6.40357 18.6568 5.92869 18.6568 5.6358 18.3639C5.34291 18.0711 5.34291 17.5962 5.6358 17.3033L17.3031 5.63603C17.596 5.34313 18.0708 5.34313 18.3637 5.63603C18.6566 5.92892 18.6566 6.40379 18.3637 6.69669L6.69646 18.3639Z\",\"fill\":\"white\",\"key\":0}),React.createElement(\"path\",{\"d\":\"M5.63569 6.6967C5.34279 6.40381 5.34279 5.92894 5.63569 5.63604C5.92858 5.34315 6.40345 5.34315 6.69635 5.63604L18.3636 17.3033C18.6565 17.5962 18.6565 18.0711 18.3636 18.364C18.0707 18.6569 17.5958 18.6569 17.3029 18.364L5.63569 6.6967Z\",\"fill\":\"white\",\"key\":1})]),React.createElement(\"defs\",{\"key\":1},React.createElement(\"clipPath\",{\"id\":\"clip0_181_9617\"},React.createElement(\"rect\",{\"width\":\"24\",\"height\":\"24\",\"fill\":\"white\"})))]);\n}\n\nCommonIcnClose.defaultProps = {\"width\":\"24\",\"height\":\"24\",\"viewBox\":\"0 0 24 24\",\"fill\":\"none\"};\n\nmodule.exports = CommonIcnClose;\n\nCommonIcnClose.default = CommonIcnClose;\n","var React = require('react');\n\nfunction CommonIcnEnter (props) {\n return React.createElement(\"svg\",props,React.createElement(\"path\",{\"d\":\"M12.775 21C12.5625 21 12.3844 20.9277 12.2406 20.7831C12.0969 20.6385 12.025 20.4594 12.025 20.2456C12.025 20.0319 12.0969 19.8542 12.2406 19.7125C12.3844 19.5708 12.5625 19.5 12.775 19.5H19.5V4.5H12.775C12.5625 4.5 12.3844 4.42771 12.2406 4.28313C12.0969 4.13853 12.025 3.95936 12.025 3.74563C12.025 3.53188 12.0969 3.35417 12.2406 3.2125C12.3844 3.07083 12.5625 3 12.775 3H19.5C19.9 3 20.25 3.15 20.55 3.45C20.85 3.75 21 4.1 21 4.5V19.5C21 19.9 20.85 20.25 20.55 20.55C20.25 20.85 19.9 21 19.5 21H12.775ZM12.125 12.75H3.75C3.5375 12.75 3.35938 12.6777 3.21563 12.5331C3.07187 12.3885 3 12.2094 3 11.9956C3 11.7819 3.07187 11.6042 3.21563 11.4625C3.35938 11.3208 3.5375 11.25 3.75 11.25H12.075L10.05 9.225C9.9 9.075 9.82917 8.9 9.8375 8.7C9.84583 8.5 9.925 8.325 10.075 8.175C10.225 8.025 10.4042 7.95 10.6125 7.95C10.8208 7.95 11 8.025 11.15 8.175L14.475 11.5C14.625 11.65 14.7 11.825 14.7 12.025C14.7 12.225 14.625 12.4 14.475 12.55L11.175 15.85C11.0283 16 10.8542 16.0708 10.6525 16.0625C10.4508 16.0542 10.2717 15.975 10.1152 15.825C9.97174 15.675 9.9 15.4958 9.9 15.2875C9.9 15.0792 9.975 14.9 10.125 14.75L12.125 12.75Z\",\"fill\":\"white\"}));\n}\n\nCommonIcnEnter.defaultProps = {\"width\":\"24\",\"height\":\"24\",\"viewBox\":\"0 0 24 24\",\"fill\":\"none\"};\n\nmodule.exports = CommonIcnEnter;\n\nCommonIcnEnter.default = CommonIcnEnter;\n","var React = require('react');\n\nfunction CommonIcnInstagram (props) {\n return React.createElement(\"svg\",props,[React.createElement(\"g\",{\"clipPath\":\"url(#clip0_286_1667)\",\"key\":0},React.createElement(\"path\",{\"d\":\"M16.5452 6.12589C14.63 6.21625 13.3221 6.52189 12.1787 6.97117C10.9954 7.43233 9.99243 8.05117 8.99451 9.05269C7.99659 10.0542 7.38207 11.0579 6.92415 12.243C6.48099 13.3889 6.18075 14.6978 6.09615 16.6141C6.01155 18.5304 5.99283 19.1464 6.00219 24.0344C6.01155 28.9225 6.03315 29.5352 6.12603 31.4555C6.21747 33.3703 6.52203 34.6778 6.97131 35.8216C7.43319 37.0049 8.05131 38.0075 9.05319 39.0058C10.0551 40.004 11.058 40.6171 12.246 41.0758C13.3908 41.5182 14.7002 41.8199 16.6161 41.9038C18.532 41.9876 19.1487 42.0071 24.0353 41.9977C28.922 41.9884 29.5372 41.9668 31.4571 41.8757C33.377 41.7846 34.6776 41.4779 35.8217 41.0308C37.005 40.5678 38.0084 39.9508 39.0059 38.9485C40.0035 37.9463 40.6176 36.9419 41.0752 35.756C41.5187 34.6112 41.82 33.3019 41.9032 31.3874C41.9871 29.4661 42.0069 28.8527 41.9975 23.9653C41.9882 19.078 41.9662 18.4652 41.8751 16.5457C41.784 14.6262 41.4791 13.3226 41.0302 12.1782C40.5676 10.9949 39.9502 9.99301 38.9487 8.99401C37.9471 7.99501 36.942 7.38121 35.7565 6.92473C34.611 6.48157 33.3024 6.17953 31.3865 6.09673C29.4706 6.01393 28.8539 5.99269 23.9655 6.00205C19.077 6.01141 18.465 6.03229 16.5452 6.12589ZM16.7554 38.6656C15.0004 38.5892 14.0475 38.2976 13.4124 38.0536C12.5715 37.7296 11.9724 37.3379 11.3395 36.7111C10.7067 36.0844 10.3179 35.4832 9.98955 34.644C9.74295 34.009 9.44595 33.0571 9.36387 31.3021C9.27459 29.4053 9.25587 28.8358 9.24543 24.0301C9.23499 19.2245 9.25335 18.6557 9.33651 16.7581C9.41139 15.0046 9.70479 14.0506 9.94851 13.4159C10.2725 12.5738 10.6627 11.9759 11.2909 11.3434C11.9191 10.7108 12.5185 10.3213 13.3584 9.99301C13.9927 9.74533 14.9446 9.45085 16.6989 9.36733C18.5972 9.27733 19.166 9.25933 23.9709 9.24889C28.7758 9.23845 29.346 9.25645 31.245 9.33997C32.9986 9.41629 33.953 9.70681 34.5869 9.95197C35.4282 10.276 36.0269 10.6651 36.6594 11.2944C37.292 11.9237 37.6818 12.5209 38.0102 13.3626C38.2582 13.9951 38.5527 14.9466 38.6355 16.702C38.7258 18.6002 38.7463 19.1694 38.755 23.974C38.7636 28.7785 38.7467 29.3491 38.6636 31.246C38.5869 33.001 38.296 33.9542 38.0516 34.59C37.7276 35.4306 37.337 36.03 36.7084 36.6622C36.0798 37.2943 35.4812 37.6838 34.6409 38.0122C34.0073 38.2595 33.0544 38.5547 31.3015 38.6382C29.4033 38.7275 28.8345 38.7462 24.0278 38.7566C19.221 38.7671 18.654 38.7476 16.7557 38.6656M31.4293 14.3796C31.4301 14.8068 31.5575 15.2243 31.7954 15.5791C32.0334 15.9339 32.3712 16.2102 32.7662 16.373C33.1612 16.5358 33.5957 16.5778 34.0145 16.4937C34.4334 16.4096 34.8179 16.2032 35.1195 15.9006C35.421 15.5979 35.6261 15.2126 35.7086 14.7934C35.7912 14.3742 35.7476 13.94 35.5833 13.5456C35.4191 13.1512 35.1416 12.8143 34.7859 12.5777C34.4302 12.341 34.0123 12.2152 33.585 12.216C33.0123 12.2172 32.4634 12.4457 32.0592 12.8515C31.655 13.2572 31.4284 13.8069 31.4293 14.3796ZM14.7577 24.0179C14.7678 29.1227 18.9136 33.2515 24.0173 33.2418C29.121 33.2321 33.2528 29.0867 33.243 23.9819C33.2333 18.8771 29.0865 14.7472 23.982 14.7572C18.8776 14.7673 14.748 18.9138 14.7577 24.0179ZM17.9999 24.0114C17.9976 22.8247 18.3472 21.6639 19.0045 20.6759C19.6619 19.6879 20.5974 18.917 21.6929 18.4607C22.7884 18.0044 23.9946 17.8832 25.1589 18.1124C26.3233 18.3416 27.3935 18.911 28.2343 19.7484C29.0751 20.5859 29.6487 21.6539 29.8825 22.8173C30.1163 23.9808 29.9999 25.1874 29.5479 26.2847C29.096 27.382 28.3288 28.3206 27.3434 28.9818C26.358 29.6431 25.1986 29.9973 24.0119 29.9996C23.2239 30.0013 22.4434 29.8477 21.7147 29.5477C20.9861 29.2476 20.3238 28.8069 19.7655 28.2509C19.2072 27.6948 18.7639 27.0342 18.461 26.3068C18.1581 25.5793 18.0014 24.7994 17.9999 24.0114Z\",\"fill\":\"white\"})),React.createElement(\"defs\",{\"key\":1},React.createElement(\"clipPath\",{\"id\":\"clip0_286_1667\"},React.createElement(\"rect\",{\"width\":\"36\",\"height\":\"36\",\"fill\":\"white\",\"transform\":\"translate(6 6)\"})))]);\n}\n\nCommonIcnInstagram.defaultProps = {\"width\":\"48\",\"height\":\"48\",\"viewBox\":\"0 0 48 48\",\"fill\":\"none\"};\n\nmodule.exports = CommonIcnInstagram;\n\nCommonIcnInstagram.default = CommonIcnInstagram;\n","var React = require('react');\n\nfunction CommonIcnMenu (props) {\n return React.createElement(\"svg\",props,[React.createElement(\"g\",{\"clipPath\":\"url(#clip0_129_3493)\",\"key\":0},React.createElement(\"path\",{\"d\":\"M3.75 18C3.33579 18 3 17.6642 3 17.25C3 16.8358 3.33579 16.5 3.75 16.5H20.25C20.6642 16.5 21 16.8358 21 17.25C21 17.6642 20.6642 18 20.25 18H3.75ZM3.75 12.75C3.33579 12.75 3 12.4142 3 12C3 11.5858 3.33579 11.25 3.75 11.25H20.25C20.6642 11.25 21 11.5858 21 12C21 12.4142 20.6642 12.75 20.25 12.75H3.75ZM3.75 7.5C3.33579 7.5 3 7.16421 3 6.75C3 6.33579 3.33579 6 3.75 6H20.25C20.6642 6 21 6.33579 21 6.75C21 7.16421 20.6642 7.5 20.25 7.5H3.75Z\",\"fill\":\"white\"})),React.createElement(\"defs\",{\"key\":1},React.createElement(\"clipPath\",{\"id\":\"clip0_129_3493\"},React.createElement(\"rect\",{\"width\":\"24\",\"height\":\"24\",\"fill\":\"white\"})))]);\n}\n\nCommonIcnMenu.defaultProps = {\"width\":\"24\",\"height\":\"24\",\"viewBox\":\"0 0 24 24\",\"fill\":\"none\"};\n\nmodule.exports = CommonIcnMenu;\n\nCommonIcnMenu.default = CommonIcnMenu;\n","var React = require('react');\n\nfunction CommonIcnTranslate (props) {\n return React.createElement(\"svg\",props,React.createElement(\"path\",{\"d\":\"M10.067 11.6335L9.48366 13.2502C9.43921 13.3724 9.36144 13.4724 9.25033 13.5502C9.13921 13.6279 9.01699 13.6668 8.88366 13.6668C8.66144 13.6668 8.48088 13.5752 8.34199 13.3918C8.2031 13.2085 8.1781 13.0057 8.26699 12.7835L10.8003 6.0835C10.8559 5.96127 10.9392 5.86127 11.0503 5.7835C11.1614 5.70572 11.2837 5.66683 11.417 5.66683H11.917C12.0503 5.66683 12.1725 5.70572 12.2837 5.7835C12.3948 5.86127 12.4781 5.96127 12.5337 6.0835L15.067 12.8002C15.1559 13.0113 15.1337 13.2085 15.0003 13.3918C14.867 13.5752 14.6892 13.6668 14.467 13.6668C14.3225 13.6668 14.1975 13.6252 14.092 13.5418C13.9864 13.4585 13.9059 13.3502 13.8503 13.2168L13.3003 11.6335H10.067ZM10.467 10.4668H12.867L11.7003 7.16683H11.6337L10.467 10.4668ZM6.00033 8.3335L3.13366 11.2002C3.01144 11.3224 2.85588 11.3835 2.66699 11.3835C2.4781 11.3835 2.32255 11.3224 2.20033 11.2002C2.0781 11.0779 2.01699 10.9224 2.01699 10.7335C2.01699 10.5446 2.0781 10.3891 2.20033 10.2668L5.10033 7.36683C4.6781 6.90016 4.30866 6.41683 3.99199 5.91683C3.67533 5.41683 3.40033 4.88905 3.16699 4.3335H4.56699C4.76699 4.7335 4.98088 5.09461 5.20866 5.41683C5.43644 5.73905 5.71144 6.07794 6.03366 6.4335C6.52255 5.90016 6.9281 5.35294 7.25033 4.79183C7.57255 4.23072 7.84477 3.6335 8.06699 3.00016H1.33366C1.14477 3.00016 0.986437 2.93627 0.858659 2.8085C0.730881 2.68072 0.666992 2.52238 0.666992 2.3335C0.666992 2.14461 0.730881 1.98627 0.858659 1.8585C0.986437 1.73072 1.14477 1.66683 1.33366 1.66683H5.33366V1.00016C5.33366 0.811274 5.39755 0.652941 5.52533 0.525163C5.6531 0.397385 5.81144 0.333496 6.00033 0.333496C6.18921 0.333496 6.34755 0.397385 6.47533 0.525163C6.6031 0.652941 6.66699 0.811274 6.66699 1.00016V1.66683H10.667C10.8559 1.66683 11.0142 1.73072 11.142 1.8585C11.2698 1.98627 11.3337 2.14461 11.3337 2.3335C11.3337 2.52238 11.2698 2.68072 11.142 2.8085C11.0142 2.93627 10.8559 3.00016 10.667 3.00016H9.40033C9.16699 3.78905 8.85033 4.55572 8.45033 5.30016C8.05033 6.04461 7.55588 6.74461 6.96699 7.40016L8.56699 9.0335L8.06699 10.4002L6.00033 8.3335Z\",\"fill\":\"white\"}));\n}\n\nCommonIcnTranslate.defaultProps = {\"width\":\"16\",\"height\":\"14\",\"viewBox\":\"0 0 16 14\",\"fill\":\"none\"};\n\nmodule.exports = CommonIcnTranslate;\n\nCommonIcnTranslate.default = CommonIcnTranslate;\n","var React = require('react');\n\nfunction CommonIcnTwitter (props) {\n return React.createElement(\"svg\",props,React.createElement(\"path\",{\"d\":\"M27.4249 21.5785L40.8267 6H37.6509L26.0141 19.5266L16.7198 6H6L20.0548 26.4546L6 42.7911H9.17598L21.4647 28.5065L31.2802 42.7911H42L27.4241 21.5785H27.4249ZM23.0749 26.6348L21.6509 24.598L10.3203 8.39083H15.1984L24.3424 21.4705L25.7664 23.5074L37.6524 40.509H32.7743L23.0749 26.6356V26.6348Z\",\"fill\":\"white\"}));\n}\n\nCommonIcnTwitter.defaultProps = {\"width\":\"48\",\"height\":\"48\",\"viewBox\":\"0 0 48 48\",\"fill\":\"none\"};\n\nmodule.exports = CommonIcnTwitter;\n\nCommonIcnTwitter.default = CommonIcnTwitter;\n","var React = require('react');\n\nfunction CommonLogoMain (props) {\n return React.createElement(\"svg\",props,[React.createElement(\"g\",{\"clipPath\":\"url(#clip0_666_19520)\",\"key\":0},[React.createElement(\"path\",{\"d\":\"M106.049 0H0V40H106.049V0Z\",\"fill\":\"#FF0000\",\"key\":0}),React.createElement(\"path\",{\"fillRule\":\"evenodd\",\"clipRule\":\"evenodd\",\"d\":\"M17.5685 23.3641H23.2351C23.2949 25.8439 24.9182 26.2561 27.1908 26.2561C29.1987 26.2561 30.1427 25.5469 30.1427 24.368C30.1427 23.1891 29.4059 22.7447 26.8363 22.3325L25.183 22.0677C20.4305 21.301 17.8931 19.0859 17.8931 15.2798C17.8931 11.4737 20.6078 8.78659 26.5116 8.78659C32.0607 8.78659 35.2475 11.1191 35.4846 15.7219H29.9355C29.848 14.0687 28.9016 13.272 26.5991 13.272C24.7386 13.272 23.912 13.9213 23.912 15.0127C23.912 16.2814 24.886 16.7235 26.9813 17.0781L28.722 17.3728C33.8567 18.2294 36.2192 20.1773 36.2192 23.9259C36.2192 28.6185 32.4407 30.7438 26.9514 30.7438C20.6055 30.7438 17.5662 27.6745 17.5662 23.3641H17.5685ZM40.67 24.4278H40.8473C42.4614 24.4278 43.7692 25.7356 43.7692 27.3497C43.7692 28.9638 42.4614 30.2717 40.8473 30.2717H40.67C39.0559 30.2717 37.748 28.9638 37.748 27.3497C37.748 25.7356 39.0559 24.4278 40.67 24.4278ZM50.7943 23.3641H45.1277H45.1254C45.1254 27.6745 48.1648 30.7438 54.5107 30.7438C60 30.7438 63.7784 28.6185 63.7784 23.9259C63.7784 20.1773 61.416 18.2294 56.2813 17.3728L54.5406 17.0781C52.4453 16.7235 51.4713 16.2814 51.4713 15.0127C51.4713 13.9213 52.2979 13.272 54.1584 13.272C56.4609 13.272 57.4073 14.0687 57.4948 15.7219H63.0439C62.8068 11.1191 59.62 8.78659 54.0709 8.78659C48.1671 8.78659 45.4524 11.4737 45.4524 15.2798C45.4524 19.0859 47.9898 21.301 52.7423 22.0677L54.3955 22.3325C56.9629 22.7447 57.702 23.1891 57.702 24.368C57.702 25.5469 56.7579 26.2561 54.7501 26.2561C52.4775 26.2561 50.8542 25.8439 50.7943 23.3641ZM68.2293 24.4278H68.4066C70.0206 24.4278 71.3285 25.7356 71.3285 27.3497C71.3285 28.9638 70.0206 30.2717 68.4066 30.2717H68.2293C66.6152 30.2717 65.3073 28.9638 65.3073 27.3497C65.3073 25.7356 66.6152 24.4278 68.2293 24.4278ZM72.9265 22.5973V23.9259C72.9265 28.0866 75.8484 30.7438 80.6308 30.7438C85.8553 30.7438 88.4826 27.6146 88.4826 23.9259V9.25632H82.5788V23.9259C82.5788 25.0772 81.8397 25.8439 80.571 25.8439C79.3023 25.8439 78.5631 25.0772 78.5631 23.9259V22.5973H72.9265Z\",\"fill\":\"white\",\"key\":1})]),React.createElement(\"defs\",{\"key\":1},React.createElement(\"clipPath\",{\"id\":\"clip0_666_19520\"},React.createElement(\"rect\",{\"width\":\"106.049\",\"height\":\"40\",\"fill\":\"white\"})))]);\n}\n\nCommonLogoMain.defaultProps = {\"width\":\"107\",\"height\":\"40\",\"viewBox\":\"0 0 107 40\",\"fill\":\"none\"};\n\nmodule.exports = CommonLogoMain;\n\nCommonLogoMain.default = CommonLogoMain;\n","import * as cookie from 'cookie';\r\nexport function hasDocumentCookie() {\r\n // Can we get/set cookies on document.cookie?\r\n return typeof document === 'object' && typeof document.cookie === 'string';\r\n}\r\nexport function cleanCookies() {\r\n document.cookie.split(';').forEach(function (c) {\r\n document.cookie = c\r\n .replace(/^ +/, '')\r\n .replace(/=.*/, '=;expires=' + new Date().toUTCString() + ';path=/');\r\n });\r\n}\r\nexport function parseCookies(cookies, options) {\r\n if (typeof cookies === 'string') {\r\n return cookie.parse(cookies, options);\r\n }\r\n else if (typeof cookies === 'object' && cookies !== null) {\r\n return cookies;\r\n }\r\n else {\r\n return {};\r\n }\r\n}\r\nexport function isParsingCookie(value, doNotParse) {\r\n if (typeof doNotParse === 'undefined') {\r\n // We guess if the cookie start with { or [, it has been serialized\r\n doNotParse =\r\n !value || (value[0] !== '{' && value[0] !== '[' && value[0] !== '\"');\r\n }\r\n return !doNotParse;\r\n}\r\nexport function readCookie(value, options) {\r\n if (options === void 0) { options = {}; }\r\n var cleanValue = cleanupCookieValue(value);\r\n if (isParsingCookie(cleanValue, options.doNotParse)) {\r\n try {\r\n return JSON.parse(cleanValue);\r\n }\r\n catch (e) {\r\n // At least we tried\r\n }\r\n }\r\n // Ignore clean value if we failed the deserialization\r\n // It is not relevant anymore to trim those values\r\n return value;\r\n}\r\nfunction cleanupCookieValue(value) {\r\n // express prepend j: before serializing a cookie\r\n if (value && value[0] === 'j' && value[1] === ':') {\r\n return value.substr(2);\r\n }\r\n return value;\r\n}\r\n","var __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nimport * as cookie from 'cookie';\r\nimport { hasDocumentCookie, parseCookies, readCookie } from './utils';\r\nvar Cookies = /** @class */ (function () {\r\n function Cookies(cookies, options) {\r\n var _this = this;\r\n this.changeListeners = [];\r\n this.HAS_DOCUMENT_COOKIE = false;\r\n this.cookies = parseCookies(cookies, options);\r\n new Promise(function () {\r\n _this.HAS_DOCUMENT_COOKIE = hasDocumentCookie();\r\n }).catch(function () { });\r\n }\r\n Cookies.prototype._updateBrowserValues = function (parseOptions) {\r\n if (!this.HAS_DOCUMENT_COOKIE) {\r\n return;\r\n }\r\n this.cookies = cookie.parse(document.cookie, parseOptions);\r\n };\r\n Cookies.prototype._emitChange = function (params) {\r\n for (var i = 0; i < this.changeListeners.length; ++i) {\r\n this.changeListeners[i](params);\r\n }\r\n };\r\n Cookies.prototype.get = function (name, options, parseOptions) {\r\n if (options === void 0) { options = {}; }\r\n this._updateBrowserValues(parseOptions);\r\n return readCookie(this.cookies[name], options);\r\n };\r\n Cookies.prototype.getAll = function (options, parseOptions) {\r\n if (options === void 0) { options = {}; }\r\n this._updateBrowserValues(parseOptions);\r\n var result = {};\r\n for (var name_1 in this.cookies) {\r\n result[name_1] = readCookie(this.cookies[name_1], options);\r\n }\r\n return result;\r\n };\r\n Cookies.prototype.set = function (name, value, options) {\r\n var _a;\r\n if (typeof value === 'object') {\r\n value = JSON.stringify(value);\r\n }\r\n this.cookies = __assign(__assign({}, this.cookies), (_a = {}, _a[name] = value, _a));\r\n if (this.HAS_DOCUMENT_COOKIE) {\r\n document.cookie = cookie.serialize(name, value, options);\r\n }\r\n this._emitChange({ name: name, value: value, options: options });\r\n };\r\n Cookies.prototype.remove = function (name, options) {\r\n var finalOptions = (options = __assign(__assign({}, options), { expires: new Date(1970, 1, 1, 0, 0, 1), maxAge: 0 }));\r\n this.cookies = __assign({}, this.cookies);\r\n delete this.cookies[name];\r\n if (this.HAS_DOCUMENT_COOKIE) {\r\n document.cookie = cookie.serialize(name, '', finalOptions);\r\n }\r\n this._emitChange({ name: name, value: undefined, options: options });\r\n };\r\n Cookies.prototype.addChangeListener = function (callback) {\r\n this.changeListeners.push(callback);\r\n };\r\n Cookies.prototype.removeChangeListener = function (callback) {\r\n var idx = this.changeListeners.indexOf(callback);\r\n if (idx >= 0) {\r\n this.changeListeners.splice(idx, 1);\r\n }\r\n };\r\n return Cookies;\r\n}());\r\nexport default Cookies;\r\n","import Cookies from './Cookies';\r\nexport default Cookies;\r\n","/*!\n * cookie\n * Copyright(c) 2012-2014 Roman Shtylman\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module exports.\n * @public\n */\n\nexports.parse = parse;\nexports.serialize = serialize;\n\n/**\n * Module variables.\n * @private\n */\n\nvar decode = decodeURIComponent;\nvar encode = encodeURIComponent;\n\n/**\n * RegExp to match field-content in RFC 7230 sec 3.2\n *\n * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]\n * field-vchar = VCHAR / obs-text\n * obs-text = %x80-FF\n */\n\nvar fieldContentRegExp = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\n\n/**\n * Parse a cookie header.\n *\n * Parse the given cookie header string into an object\n * The object has the various cookies as keys(names) => values\n *\n * @param {string} str\n * @param {object} [options]\n * @return {object}\n * @public\n */\n\nfunction parse(str, options) {\n if (typeof str !== 'string') {\n throw new TypeError('argument str must be a string');\n }\n\n var obj = {}\n var opt = options || {};\n var pairs = str.split(';')\n var dec = opt.decode || decode;\n\n for (var i = 0; i < pairs.length; i++) {\n var pair = pairs[i];\n var index = pair.indexOf('=')\n\n // skip things that don't look like key=value\n if (index < 0) {\n continue;\n }\n\n var key = pair.substring(0, index).trim()\n\n // only assign once\n if (undefined == obj[key]) {\n var val = pair.substring(index + 1, pair.length).trim()\n\n // quoted values\n if (val[0] === '\"') {\n val = val.slice(1, -1)\n }\n\n obj[key] = tryDecode(val, dec);\n }\n }\n\n return obj;\n}\n\n/**\n * Serialize data into a cookie header.\n *\n * Serialize the a name value pair into a cookie string suitable for\n * http headers. An optional options object specified cookie parameters.\n *\n * serialize('foo', 'bar', { httpOnly: true })\n * => \"foo=bar; httpOnly\"\n *\n * @param {string} name\n * @param {string} val\n * @param {object} [options]\n * @return {string}\n * @public\n */\n\nfunction serialize(name, val, options) {\n var opt = options || {};\n var enc = opt.encode || encode;\n\n if (typeof enc !== 'function') {\n throw new TypeError('option encode is invalid');\n }\n\n if (!fieldContentRegExp.test(name)) {\n throw new TypeError('argument name is invalid');\n }\n\n var value = enc(val);\n\n if (value && !fieldContentRegExp.test(value)) {\n throw new TypeError('argument val is invalid');\n }\n\n var str = name + '=' + value;\n\n if (null != opt.maxAge) {\n var maxAge = opt.maxAge - 0;\n\n if (isNaN(maxAge) || !isFinite(maxAge)) {\n throw new TypeError('option maxAge is invalid')\n }\n\n str += '; Max-Age=' + Math.floor(maxAge);\n }\n\n if (opt.domain) {\n if (!fieldContentRegExp.test(opt.domain)) {\n throw new TypeError('option domain is invalid');\n }\n\n str += '; Domain=' + opt.domain;\n }\n\n if (opt.path) {\n if (!fieldContentRegExp.test(opt.path)) {\n throw new TypeError('option path is invalid');\n }\n\n str += '; Path=' + opt.path;\n }\n\n if (opt.expires) {\n if (typeof opt.expires.toUTCString !== 'function') {\n throw new TypeError('option expires is invalid');\n }\n\n str += '; Expires=' + opt.expires.toUTCString();\n }\n\n if (opt.httpOnly) {\n str += '; HttpOnly';\n }\n\n if (opt.secure) {\n str += '; Secure';\n }\n\n if (opt.sameSite) {\n var sameSite = typeof opt.sameSite === 'string'\n ? opt.sameSite.toLowerCase() : opt.sameSite;\n\n switch (sameSite) {\n case true:\n str += '; SameSite=Strict';\n break;\n case 'lax':\n str += '; SameSite=Lax';\n break;\n case 'strict':\n str += '; SameSite=Strict';\n break;\n case 'none':\n str += '; SameSite=None';\n break;\n default:\n throw new TypeError('option sameSite is invalid');\n }\n }\n\n return str;\n}\n\n/**\n * Try decoding a string using a decoding function.\n *\n * @param {string} str\n * @param {function} decode\n * @private\n */\n\nfunction tryDecode(str, decode) {\n try {\n return decode(str);\n } catch (e) {\n return str;\n }\n}\n","import { useCallback, useRef } from 'react';\nimport { useIsomorphicLayoutEffect } from '..';\nexport default function useEventCallback(fn) {\n const ref = useRef(() => {\n throw new Error('Cannot call an event handler while rendering.');\n });\n useIsomorphicLayoutEffect(() => {\n ref.current = fn;\n }, [fn]);\n return useCallback((...args) => ref.current(...args), [ref]);\n}\n","import { useEffect, useRef } from 'react';\nimport { useIsomorphicLayoutEffect } from '..';\nfunction useEventListener(eventName, handler, element, options) {\n const savedHandler = useRef(handler);\n useIsomorphicLayoutEffect(() => {\n savedHandler.current = handler;\n }, [handler]);\n useEffect(() => {\n var _a;\n const targetElement = (_a = element === null || element === void 0 ? void 0 : element.current) !== null && _a !== void 0 ? _a : window;\n if (!(targetElement && targetElement.addEventListener))\n return;\n const listener = event => savedHandler.current(event);\n targetElement.addEventListener(eventName, listener, options);\n return () => {\n targetElement.removeEventListener(eventName, listener, options);\n };\n }, [eventName, element, options]);\n}\nexport default useEventListener;\n","import { useEffect, useLayoutEffect } from 'react';\nconst useIsomorphicLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect;\nexport default useIsomorphicLayoutEffect;\n","import { useCallback, useEffect, useState, } from 'react';\nimport { useEventCallback, useEventListener } from '..';\nfunction useSessionStorage(key, initialValue) {\n const readValue = useCallback(() => {\n if (typeof window === 'undefined') {\n return initialValue;\n }\n try {\n const item = window.sessionStorage.getItem(key);\n return item ? parseJSON(item) : initialValue;\n }\n catch (error) {\n console.warn(`Error reading sessionStorage key “${key}”:`, error);\n return initialValue;\n }\n }, [initialValue, key]);\n const [storedValue, setStoredValue] = useState(readValue);\n const setValue = useEventCallback(value => {\n if (typeof window == 'undefined') {\n console.warn(`Tried setting sessionStorage key “${key}” even though environment is not a client`);\n }\n try {\n const newValue = value instanceof Function ? value(storedValue) : value;\n window.sessionStorage.setItem(key, JSON.stringify(newValue));\n setStoredValue(newValue);\n window.dispatchEvent(new Event('session-storage'));\n }\n catch (error) {\n console.warn(`Error setting sessionStorage key “${key}”:`, error);\n }\n });\n useEffect(() => {\n setStoredValue(readValue());\n }, []);\n const handleStorageChange = useCallback((event) => {\n if ((event === null || event === void 0 ? void 0 : event.key) && event.key !== key) {\n return;\n }\n setStoredValue(readValue());\n }, [key, readValue]);\n useEventListener('storage', handleStorageChange);\n useEventListener('session-storage', handleStorageChange);\n return [storedValue, setValue];\n}\nexport default useSessionStorage;\nfunction parseJSON(value) {\n try {\n return value === 'undefined' ? undefined : JSON.parse(value !== null && value !== void 0 ? value : '');\n }\n catch (_a) {\n console.log('parsing error on', { value });\n return undefined;\n }\n}\n","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nmodule.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}\nmodule.exports = _inheritsLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _setPrototypeOf(o, p);\n}\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nconst PartytownSnippet = \"/* Partytown 0.7.6 - MIT builder.io */\\n!function(t,e,n,i,r,o,a,d,s,c,p,l){function u(){l||(l=1,\\\"/\\\"==(a=(o.lib||\\\"/~partytown/\\\")+(o.debug?\\\"debug/\\\":\\\"\\\"))[0]&&(s=e.querySelectorAll('script[type=\\\"text/partytown\\\"]'),i!=t?i.dispatchEvent(new CustomEvent(\\\"pt1\\\",{detail:t})):(d=setTimeout(f,1e4),e.addEventListener(\\\"pt0\\\",w),r?h(1):n.serviceWorker?n.serviceWorker.register(a+(o.swPath||\\\"partytown-sw.js\\\"),{scope:a}).then((function(t){t.active?h():t.installing&&t.installing.addEventListener(\\\"statechange\\\",(function(t){\\\"activated\\\"==t.target.state&&h()}))}),console.error):f())))}function h(t){c=e.createElement(t?\\\"script\\\":\\\"iframe\\\"),t||(c.setAttribute(\\\"style\\\",\\\"display:block;width:0;height:0;border:0;visibility:hidden\\\"),c.setAttribute(\\\"aria-hidden\\\",!0)),c.src=a+\\\"partytown-\\\"+(t?\\\"atomics.js?v=0.7.6\\\":\\\"sandbox-sw.html?\\\"+Date.now()),e.body.appendChild(c)}function f(n,r){for(w(),i==t&&(o.forward||[]).map((function(e){delete t[e.split(\\\".\\\")[0]]})),n=0;n {\n const { forward = [], ...filteredConfig } = config || {};\n const configStr = JSON.stringify(filteredConfig, (k, v) => {\n if (typeof v === 'function') {\n v = String(v);\n if (v.startsWith(k + '(')) {\n v = 'function ' + v;\n }\n }\n return v;\n });\n return [\n `!(function(w,p,f,c){`,\n Object.keys(filteredConfig).length > 0\n ? `c=w[p]=Object.assign(w[p]||{},${configStr});`\n : `c=w[p]=w[p]||{};`,\n `c[f]=(c[f]||[])`,\n forward.length > 0 ? `.concat(${JSON.stringify(forward)})` : ``,\n `})(window,'partytown','forward');`,\n snippetCode,\n ].join('');\n};\n\n/**\n * The `type` attribute for Partytown scripts, which does two things:\n *\n * 1. Prevents the `