{"version":3,"file":"static/js/9565.9ce8fc5c.chunk.js","mappings":"gNAAO,IACMA,EAAoB,0BACpBC,EAAkB,aAElBC,EACT,8GACSC,EACT,6G,kKCJG,SAASC,EAAQC,GAGkB,IAFtCC,EAAMD,EAANC,OACGC,GAAIC,EAAAA,EAAAA,GAAAH,EAAAI,GAEP,OAAIH,GACOI,EAAAA,EAAAA,KAAAC,EAAAA,SAAA,CAAAC,SAAGL,EAAKK,YAEZF,EAAAA,EAAAA,KAACG,EAAAA,IAAaC,EAAAA,EAAAA,GAAA,CAACC,OAAQ,KAASR,GAC3C,CAEO,SAASS,EAAYC,GAGa,IAFrCC,EAAGD,EAAHC,IACGC,GAAaX,EAAAA,EAAAA,GAAAS,EAAAG,GAEhB,OACIV,EAAAA,EAAAA,KAACN,GAAQU,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAAKK,GAAa,IAAAP,UACvBF,EAAAA,EAAAA,KAACW,EAAQ,CAACH,IAAKA,MAG3B,CAEO,SAASG,EAAQC,GAAgC,IAA7BJ,EAAGI,EAAHJ,IAKvB,OAJAK,EAAAA,EAAAA,YAAU,WACNL,GACJ,GAAG,CAACA,IAEG,IACX,C,6FC5BO,SAAeM,EAAcC,EAAAC,GAAA,OAAAC,EAAAC,MAAC,KAADC,UAAA,CA8CnC,SAAAF,IAAA,OAAAA,GAAAG,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,KAAAC,MA9CM,SAAAC,EACHC,EACAC,GAAqB,IAAApB,EAAAqB,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAf,UAAA,OAAAE,EAAAA,EAAAA,KAAAc,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAMD,OALpBjC,EAAc6B,EAAAK,OAAA,QAAAC,IAAAN,EAAA,GAAAA,EAAA,GAAG,EACjBR,EAAkBQ,EAAAK,OAAA,EAAAL,EAAA,QAAAM,EAEZb,EAAkBc,EAAmBjB,GAEvCI,EAAa,IAAGQ,EAAAE,KAAA,EACVI,EAAelB,EAAcI,GAAW,WAAAQ,EAAAO,KAAC,CAADP,EAAAE,KAAA,eAAAF,EAAAQ,OAAA,iBAeW,GAVrDhB,EAAa,MACbA,GAAc,IAGZC,EAAYJ,EAASoB,wBAAwBC,IAC7ChB,EAAgBN,EAAaqB,wBAAwBC,IACrDf,EAAMD,EAAgBzB,EAASwB,EAE/BG,EAAgBe,KAAAC,IAAAjB,EAAO,GAAI,EAC3BE,GACDN,GAAmBc,EAAmBjB,IAEvCQ,IAAiBC,EAAa,CAAAG,EAAAE,KAAA,gBAAAF,EAAAQ,OAAA,yBAAAR,EAAAE,KAAA,GAILI,EAAelB,EAAcI,GAAY,KAAD,GAOpE,GAPmBQ,EAAAO,MAEhBnB,EAAayB,SAAS,CAClBH,IACIjB,EAAYL,EAAa0B,UAAYpB,EAAgBzB,EACzD8C,SAAUzB,OAAWc,EAAY,YAIrCb,EAAgB,CAADS,EAAAE,KAAA,gBAAAF,EAAAE,KAAA,GACHI,EAAelB,EAAcI,GAAW,WAAAQ,EAAAO,KAAC,CAADP,EAAAE,KAAA,gBAAAF,EAAAQ,OAAA,kBAIxDQ,QAAQC,IAAI,aAAajB,EAAAE,KAAA,iCAAAF,EAAAkB,OAAA,GAAA/B,EAAA,KAEhCN,EAAAC,MAAA,KAAAC,UAAA,CAED,SAASsB,EAAmBjB,GACxB,OACIuB,KAAKQ,MAAM/B,EAAagC,cACpBT,KAAKU,KAAKjC,EAAakC,cACvBX,KAAKU,KAAKjC,EAAa0B,YAC3B,CAER,CAAC,SAEcR,EAAciB,EAAAC,GAAA,OAAAC,EAAA3C,MAAC,KAADC,UAAA,UAAA0C,IAO5B,OAP4BA,GAAAzC,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,KAAAC,MAA7B,SAAAwC,EACItC,EACAI,GAAkB,IAAAmC,EAAA,OAAA1C,EAAAA,EAAAA,KAAAc,MAAA,SAAA6B,GAAA,cAAAA,EAAA3B,KAAA2B,EAAA1B,MAAA,OAE8B,OAA1CyB,EAAoBvC,EAAa0B,UAASc,EAAA1B,KAAA,GAC1C2B,EAAAA,EAAAA,IAAWrC,GAAY,KAAD,SAAAoC,EAAApB,OAAA,SACrBpB,EAAa0B,YAAca,GAAiB,wBAAAC,EAAAV,OAAA,GAAAQ,EAAA,MACtD5C,MAAA,KAAAC,UAAA,C,yMCrDK+C,EAAwB,GAQvB,SAASC,EAAYxE,GAKL,IAJnByE,EAAQzE,EAARyE,SACAC,EAAW1E,EAAX0E,YACAC,EAAM3E,EAAN2E,OACAC,EAAU5E,EAAV4E,WAEA,GAAIH,EAAS7B,QAAU,EACnB,OAAOvC,EAAAA,EAAAA,KAACwE,EAAAA,EAAgB,CAACC,KAAK,QAGlC,IAAMC,EAASL,EAAc,IAEvBM,EAAUD,EACV,CACIE,MAAO,OACPC,OAAQ,QAEZ,CAAED,MAAO,QAEf,OACI5E,EAAAA,EAAAA,KAAAC,EAAAA,SAAA,CAAAC,SACKkE,EAASU,KAAI,SAACC,EAAMC,GACjB,IAAMC,GACFjF,EAAAA,EAAAA,KAACkF,EAAa,CACVH,KAAMA,EACNL,OAAQA,EACRC,QAASA,EACTL,OAAQA,EACRC,WAAYA,EACZF,YAAaA,GACRU,EAAKI,KAIlB,OAAIH,EAAQd,EACDe,GAEJjF,EAAAA,EAAAA,KAACN,EAAAA,GAAQ,CAAAQ,SAAiB+E,GAAXF,EAAKI,IAC/B,KAGZ,CAEA,IAAMA,EAAM,8CAEZ,SAASD,EAAa3E,GAWoB,IAVtCwE,EAAIxE,EAAJwE,KACAL,EAAMnE,EAANmE,OACAC,EAAOpE,EAAPoE,QACAL,EAAM/D,EAAN+D,OACAC,EAAUhE,EAAVgE,WACAF,EAAW9D,EAAX8D,YAMMe,EAAIC,IAEV,OACIrF,EAAAA,EAAAA,KAAA,WAA0BsF,UAAWF,EAAEG,QAAQrF,UAC3CF,EAAAA,EAAAA,KAACwF,EAAAA,EAAS,CAACC,MAAOf,EAAS,CAAEgB,QAAS,IAAO,CAAEA,QAAS,IAAKxF,UACzDyF,EAAAA,EAAAA,MAAA,OACIL,WAAWM,EAAAA,EAAAA,GACP,eACAlB,EAASU,EAAES,gBAAkBT,EAAEU,aACjC5F,SAAA,CAED6E,EAAKgB,UACF/F,EAAAA,EAAAA,KAAA,OAAKsF,UAAWF,EAAEY,aAAa9F,UAC3BF,EAAAA,EAAAA,KAACiG,EAAAA,EAAO,CAACC,KAAI,GAAAC,OAAKhB,EAAG,KAAAgB,OAAIpB,EAAKI,KAAMjF,UAChCF,EAAAA,EAAAA,KAACoG,EAAU,CAACrB,KAAMA,EAAMJ,QAASA,SAI7CgB,EAAAA,EAAAA,MAAA,OACIL,UACIZ,EAASU,EAAEiB,qBAAuBjB,EAAEkB,iBACvCpG,SAAA,EAEDyF,EAAAA,EAAAA,MAAA,OAAAzF,SAAA,EACIF,EAAAA,EAAAA,KAACiG,EAAAA,EAAO,CAACC,KAAI,GAAAC,OAAKhB,EAAG,KAAAgB,OAAIpB,EAAKI,KAAMjF,SACpB,OAAXoE,GACGtE,EAAAA,EAAAA,KAAA,MACIsF,UACIZ,EACMU,EAAEmB,cACFnB,EAAEoB,UACXtG,SAEA6E,EAAK0B,SAGVzG,EAAAA,EAAAA,KAAA,MACIsF,UACIZ,EACMU,EAAEmB,cACFnB,EAAEoB,UACXtG,SAEA6E,EAAK0B,WAIlBzG,EAAAA,EAAAA,KAAA,KACIsF,UACIZ,EAASU,EAAEsB,gBAAkBtB,EAAEuB,YAClCzG,SAEA6E,EAAK4B,YAAYpE,OAAS,IACrBwC,EAAK4B,YAAYC,MAAM,EAAG,KAAO,MACjC7B,EAAK4B,kBAGnB3G,EAAAA,EAAAA,KAAA,OACIsF,UACIZ,EACMU,EAAEyB,wBACFzB,EAAE0B,oBACX5G,UAEDF,EAAAA,EAAAA,KAAC+G,EAAAA,WAAU,CACPC,OAAQzC,EAAW0C,MACf,SAAAC,GAAC,OAAIA,EAAEC,WAAapC,EAAKoC,QAAQ,IAErC1B,MAAO,CAAE2B,aAAc,GACvB/C,YAAaA,eAlEvBU,EAAK0B,MA0E3B,CACA,IAAMpB,GAAYgC,EAAAA,EAAAA,IAAW,iBAAO,CAChC9B,QAAS,CACL+B,aAAc,GACdC,UAAW,OACXC,SAAU,KAEd1B,YAAa,CACT2B,QAAS,OACTC,cAAe,UAEnB7B,gBAAiB,CACb4B,QAAS,OACTC,cAAe,OAEnB1B,aAAc,CACVyB,QAAS,QACTE,KAAM,EACNC,UAAW,IACXC,SAAU,UAEdvB,iBAAkB,CACdqB,KAAM,EACNF,QAAS,OACTC,cAAe,SACfI,eAAgB,gBAChBC,OAAQ,WACRC,WAAY,cAEhB3B,qBAAsB,CAClBsB,KAAM,EACNF,QAAS,OACTC,cAAe,SACfI,eAAgB,gBAChBC,OAAQ,gBACRC,WAAY,YAEhBxB,UAAW,CACPyB,SAAU,WAEd1B,cAAe,CACX0B,SAAU,IAEdtB,YAAa,CACTsB,SAAU,SACVF,OAAQ,GAEZrB,gBAAiB,CACbqB,OAAQ,GAEZjB,oBAAqB,CACjBoB,SAAU,WACVpF,IAAK,GACLqF,MAAO,EACPV,QAAS,OACTK,eAAgB,cAEpBjB,wBAAyB,CACrBqB,SAAU,WACVpF,IAAK,GACLqF,KAAM,EACNV,QAAS,OACTK,eAAgB,cAEvB,IAED,SAAS1B,EAAUxF,GAA6D,IAADwH,EAAAC,EAAzDtD,EAAInE,EAAJmE,KAAMJ,EAAO/D,EAAP+D,QACxB,OACgB,QAAZyD,EAAArD,EAAKgB,eAAO,IAAAqC,GAAZA,EAAcE,SAAS,mBACX,QAD4BD,EACxCtD,EAAKgB,eAAO,IAAAsC,GAAZA,EAAcC,SAAS,WAEhBtI,EAAAA,EAAAA,KAACuI,EAAU,CAACxD,KAAMA,EAAMJ,QAASA,KAIxC3E,EAAAA,EAAAA,KAAA,OACIwI,IAAKzD,EAAK0B,MACVgC,IAAK1D,EAAKgB,QACVN,OAAKrF,EAAAA,EAAAA,GAAA,CACDsI,UAAW,QACXX,OAAQ,GACLpD,IAInB,CAEA,SAAS4D,EAAUI,GAA6D,IAA1D5D,EAAI4D,EAAJ5D,KAAMJ,EAAOgE,EAAPhE,QAClBiE,GAAMC,EAAAA,EAAAA,QAAyB,MACrCC,GAA4BC,EAAAA,EAAAA,UAAS,KAAIC,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAAlCjE,EAAMmE,EAAA,GAAEE,EAASF,EAAA,GAEhB3E,GAAgB8E,EAAAA,EAAAA,KAAhB9E,YAUR,OATAxD,EAAAA,EAAAA,YAAU,YACNoD,EAAAA,EAAAA,IAAW,KAAKmF,MAAK,WAAO,IAADC,EACjBC,EAA0B,QAAdD,EAAGT,EAAIW,eAAO,IAAAF,OAAA,EAAXA,EAAazE,MAC9B0E,GACAJ,EAA0B,EAAfI,EAAoB,GAAK,EAE5C,GACJ,GAAG,CAACjF,KAGArE,EAAAA,EAAAA,KAAA,OACIwI,IAAKzD,EAAK0B,MACVgC,IAAK1D,EAAKgB,QACVN,OAAKrF,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,CACDsI,UAAW,QACXc,eAAgB,UAChBzB,OAAQ,GACLpD,GAAO,IACVE,OAAAA,IAEJ+D,IAAKA,GAGjB,C,wIChQMa,EAAc,CAAE,EAAG,YAAa,EAAG,UAAW,EAAG,WACjDC,EAAYC,OAAOC,OAAOH,GAEnBI,EAAoB,SAAHlK,GAKJ,IAJtBmK,EAAKnK,EAALmK,MACAC,EAAYpK,EAAZoK,aACAtF,EAAI9E,EAAJ8E,KACAgB,EAAK9F,EAAL8F,MAEAqD,GAAkCC,EAAAA,EAAAA,UAAoB,GAAEC,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAAjDkB,EAAShB,EAAA,GAAEiB,EAAYjB,EAAA,IAE9BnI,EAAAA,EAAAA,YAAU,WACN,GAAKkJ,GAAiBL,EAAUQ,QAAQH,GAAxC,CAGA,IAAMI,EAAkBJ,EAChBL,EAAUQ,QAAQH,GAAgB,EACpC,EACNE,EAAaE,EAJb,CAKJ,GAAG,CAACJ,KAEJlJ,EAAAA,EAAAA,YAAU,WACN,IAAMuJ,EAAUC,OAAOC,YAAW,WAE9BL,EADiBD,EAAY,GAAK,EAEtC,GAAG,KACH,OAAO,kBAAMO,aAAaH,EAAS,CACvC,GAAG,CAACJ,IAEJ,IAAM5E,EAAIC,EAAU,CAAEI,MAAAA,IAEtB,OACIzF,EAAAA,EAAAA,KAACwK,EAAAA,EAAM,CACH/F,KAAMA,EACNgG,MAAOhB,EAAYO,GACnB1E,WAAWM,EAAAA,EAAAA,GAAa,oBAAqBR,EAAEsF,QAAQxK,SAEtD4J,GAGb,EACMzE,GAAYgC,EAAAA,EAAAA,GAAiD,CAC/DqD,OAAQ,SAAAnK,GAAA,IAAGkF,EAAKlF,EAALkF,MAAK,OAAArF,EAAAA,EAAAA,GAAA,GAAaqF,EAAK,G,wICvCvB,SAASkF,EAAiBC,GACrC,IACIC,EAQAD,EARAC,UACAxG,EAOAuG,EAPAvG,YACAyG,EAMAF,EANAE,QACArF,EAKAmF,EALAnF,MACAsF,EAIAH,EAJAG,aACAC,EAGAJ,EAHAI,SACAC,EAEAL,EAFAK,aACA3F,EACAsF,EADAtF,UAEEF,EAAIC,EAAU,CAAEI,MAAAA,EAAOuF,SAAAA,EAAU3G,YAAAA,EAAa0G,aAAAA,IAEpD,OACIpF,EAAAA,EAAAA,MAAA,OACIiD,IAAKqC,EACL3F,WAAWM,EAAAA,EAAAA,GACP,4BACAR,EAAE8F,UACF5F,GACFpF,SAAA,EAEFF,EAAAA,EAAAA,KAAA,OAAKsF,UAAU,oBAAmBpF,UAC9BF,EAAAA,EAAAA,KAAA,OACIyI,IAAG,GAAAtC,OAAKgF,EAAAA,GAAe,8BAAAhF,OAA6B0E,EAAS,QAC7DrC,IAAI,iBACJlD,WAAWM,EAAAA,EAAAA,GAAa,WAAYR,EAAEgG,eAG9CpL,EAAAA,EAAAA,KAAA,OAAKsF,UAAU,WAAUpF,UACrBF,EAAAA,EAAAA,KAAA,OAAKsF,WAAWM,EAAAA,EAAAA,GAAa,sBAAuBR,EAAE0F,SAAS5K,SAC1D4K,QAKrB,CACA,IAAMzF,GAAYgC,EAAAA,EAAAA,GAQhB,CACE6D,UAAW,SAAAvL,GAAA,IAAG8F,EAAK9F,EAAL8F,MAAK,OAAArF,EAAAA,EAAAA,GAAA,GAAaqF,EAAK,EACrC2F,SAAU,SAAA7K,GAAA,IAAGyK,EAAQzK,EAARyK,SAAU3G,EAAW9D,EAAX8D,YAAW,OAAAjE,EAAAA,EAAAA,GAAA,CAC9BwE,MAAsB,EAAdP,EAAmB,IACxB2G,EAAQ,EAEfF,QAAS,SAAAlK,GAAA,IAAGyD,EAAWzD,EAAXyD,YAAa0G,EAAYnK,EAAZmK,aAAY,OAAA3K,EAAAA,EAAAA,GAAA,CACjCwE,MAAOP,EAAc,IAAqB,EAAdA,EAAmB,GAAK,GAAK,QACtD0G,EAAY,G,qIC/DVM,EAAgB,SAAH1L,GAUnB,IATH8G,EAAK9G,EAAL8G,MACA6E,EAAS3L,EAAT2L,UACA7F,EAAK9F,EAAL8F,MACA8F,EAAY5L,EAAZ4L,aAOMnG,EAAIC,EAAU,CAAEI,MAAAA,IAEhB+F,GAAiB3C,EAAAA,EAAAA,QAAuB,MAC9CC,GAAwCC,EAAAA,EAAAA,UAAStC,GAAMuC,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAAhD2C,EAAYzC,EAAA,GAAE0C,EAAe1C,EAAA,GAC5B3E,GAAgB8E,EAAAA,EAAAA,KAAhB9E,YAEFsH,EAAelF,IAAUgF,EAmB/B,OAjBA5K,EAAAA,EAAAA,YAAU,WACN6K,EAAgBjF,EACpB,GAAG,CAACA,EAAOpC,KAEXxD,EAAAA,EAAAA,YAAU,WACD2K,EAAejC,SAKhBiC,EAAejC,QAAQqC,YACvBJ,EAAejC,QAAQsC,aAEvBH,EAAgBD,EAAa7E,MAAM,GAAI,GAAGkF,OAElD,GAAG,CAACL,KAGAzL,EAAAA,EAAAA,KAAC+L,EAAAA,GAAO3L,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACAmL,GAAY,IAChB9E,MAAOA,EACPuF,sBAAuBL,EACvBM,sBAAuBN,EACvBO,sBAAuBP,EACvBL,UAAWA,EAAUpL,UAErByF,EAAAA,EAAAA,MAAA,OAAKiD,IAAK4C,EAAgBlG,UAAWF,EAAE+G,IAAIjM,SAAA,CACtCuL,EACAE,GAAgB,WAIjC,EACMtG,GAAYgC,EAAAA,EAAAA,GAAiD,CAC/D8E,IAAK,SAAA5L,GAAA,IAAGkF,EAAKlF,EAALkF,MAAK,OAAArF,EAAAA,EAAAA,GAAA,CACTgM,WAAY,SACZvE,SAAU,SACVwE,aAAc,YACX5G,EAAK,G,gFC1DD,SAAS6G,EAAG1B,GACvB,IAGIhG,EAHIa,EAAUmF,EAAVnF,MAKJb,EAHeyF,OAAOkC,WAET,IACL,IAEA,IAIZ,OACIvM,EAAAA,EAAAA,KAAA,OAAKsF,UAAU,SAASG,MAAOA,EAAMvF,UACjCF,EAAAA,EAAAA,KAAA,UACIyG,MAAM,KACNgC,IAAG,yGAAAtC,OAA2GvB,EAAK,YAAAuB,OANhH,IAMiI,2GACpIvB,MAAOA,EACPC,OARG,IASHY,MAAO,CAAE+G,OAAQ,OAAQ3E,SAAU,UACnC4E,UAAU,MACVC,YAAY,IACZC,MAAM,qBAItB,C,kJCnBaC,EAAe,SAAHjN,GAIC,IAuBlBkN,EACAC,EA3BJzI,EAAW1E,EAAX0E,YACAoB,EAAK9F,EAAL8F,MACAsH,EAAWpN,EAAXoN,YAIM3H,EAAIC,EAAU,CAAEX,OAFPL,EAAc,MAIvBoC,GAAQzG,EAAAA,EAAAA,KAAA,MAAAE,SAAI,kCACZ8M,GACFhN,EAAAA,EAAAA,KAAA,OACIsF,UAAWF,EAAE6H,YACbxE,IAAG,GAAAtC,OAAK+G,EAAAA,GAAQ,8BAChB1E,IAAI,+BAGN2E,GACFnN,EAAAA,EAAAA,KAAC6J,EAAAA,EAAiB,CACdpF,KAAK,KACLgB,MAAO,CACHb,MAAO,KAEXkF,MAAM,SAMVsD,EAAU,KACd,GAAIL,EAAa,CACb,IAAMM,EAAW,GAAAlH,OAAMmH,EAAAA,GAAc,cACrCT,GAAY7M,EAAAA,EAAAA,KAACuN,EAAAA,EAAY,CAACrH,KAAMmH,EAAYnN,SAAEuG,IAC9CqG,GACI9M,EAAAA,EAAAA,KAACuN,EAAAA,EAAY,CAACrH,KAAMmH,EAAa/H,UAAWF,EAAEY,aAAa9F,SACtD8M,IAGTI,GACIpN,EAAAA,EAAAA,KAACuN,EAAAA,EAAY,CAACrH,KAAMmH,EAAa/H,UAAU,OAAMpF,SAC5CiN,GAGb,MACIN,GAAY7M,EAAAA,EAAAA,KAACwN,EAAAA,EAAI,CAACC,GAAG,aAAYvN,SAAEuG,IACnCqG,GACI9M,EAAAA,EAAAA,KAACwN,EAAAA,EAAI,CAACC,GAAG,aAAanI,UAAWF,EAAEY,aAAa9F,SAC3C8M,IAGTI,GACIpN,EAAAA,EAAAA,KAACwN,EAAAA,EAAI,CAACC,GAAG,aAAanI,UAAU,OAAMpF,SACjCiN,IAKb,OACIxH,EAAAA,EAAAA,MAACH,EAAAA,EAAS,CAACC,OAAKrF,EAAAA,EAAAA,GAAA,CAAImH,UAAW,UAAa9B,GAASiI,YAAU,EAAAxN,SAAA,CAC1D2M,GACDlH,EAAAA,EAAAA,MAAA,OAAKL,UAAWF,EAAEuI,SAASzN,SAAA,EACvBF,EAAAA,EAAAA,KAAA,OAAKsF,UAAWF,EAAEY,aAAa9F,SAAE4M,KACjCnH,EAAAA,EAAAA,MAAA,OAAAzF,SAAA,EACIF,EAAAA,EAAAA,KAAA,OAAKsF,UAAWF,EAAEwI,YAAY1N,SAAC,sIAK/BF,EAAAA,EAAAA,KAAA,OAAKsF,UAAWF,EAAEgI,QAAQlN,SAAEkN,YAKhD,EACM/H,GAAYgC,EAAAA,EAAAA,GAAuC,CACrDrB,aAAc,SAAAzF,GAAS,OAAAA,EAANmE,OAEP,CAAE+C,QAAS,OAAQK,eAAgB,UACnC,CAAEC,OAAQ,SAAU,EAC9BkF,YAAa,CAAErI,MAAO,OAAQ8D,UAAW,WACzCiF,SAAU,SAAA/M,GAAS,MAAQ,CACvB6G,QAAS,OACTC,cAFe9G,EAAN8D,OAEe,MAAQ,SACnC,EACDkJ,YAAa,SAAAjF,GAAS,MAAQ,CAC1BV,SAAU,QACVV,UAAW,OACX7B,QAHkBiD,EAANjE,OAGM,GAAK,cAC1B,EACD0I,QAAS,CACL3F,QAAS,OACTK,eAAgB,SAChBE,WAAY,W,kJC5Fb,SAAS6F,EAAQlO,GAAYA,EAAT2F,UAAgB3F,EAAL8F,MAClC,OAAO,IA0BX,EACkB4B,EAAAA,EAAAA,GAAqC,CACnDyG,MAAO,SAAArI,GAAK,OAAArF,EAAAA,EAAAA,GAAA,GAAUqF,EAAK,G,uICrCxB,SAASQ,EACZ2E,GAIA,IAAQ1E,EAAkB0E,EAAlB1E,KAASrG,GAAIC,EAAAA,EAAAA,GAAK8K,EAAK7K,GAC/B,OAAKmG,EAIDA,EAAK6H,WAAW,aACT/N,EAAAA,EAAAA,KAACuN,EAAAA,GAAYnN,EAAAA,EAAAA,GAAA,GAAKwK,KAEtB5K,EAAAA,EAAAA,KAACwN,EAAAA,GAAIpN,EAAAA,EAAAA,GAAA,CAACqN,GAAIvH,GAAUrG,IANhB,IAOf,C,oNCHO,SAASmO,EAAUrO,GAQf,IAPPsO,EAAItO,EAAJsO,KACAC,EAAWvO,EAAXuO,YACAzJ,EAAI9E,EAAJ8E,KACAa,EAAS3F,EAAT2F,UACA6I,EAAOxO,EAAPwO,QACAC,EAASzO,EAATyO,UACGvO,GAAIC,EAAAA,EAAAA,GAAAH,EAAAI,GAEDqF,EAAIC,EAAU,CAAEZ,KAAAA,EAAMyJ,YAAAA,IAE5B,OAAQ,OAAJD,QAAI,IAAJA,GAAAA,EAAMI,YAEFrO,EAAAA,EAAAA,KAACsO,EAAAA,GAAMlO,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,CAEHkF,WAAWM,EAAAA,EAAAA,GAAaR,EAAEmJ,UAAWjJ,GACrCsD,IAAKwF,GACDvO,GAAI,IAAAK,UAERF,EAAAA,EAAAA,KAAA,OACIyI,IACI0F,EACMF,EAAKI,WAAWG,QAAQ,UAAW,YACnCP,EAAKI,WAEf/I,UAAWF,EAAEqJ,IACbjG,IAAKyF,EAAKS,KACVjI,MAAOwH,EAAKS,SAbZ,WAmBZ1O,EAAAA,EAAAA,KAACsO,EAAAA,GAAMlO,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,CAEHkF,WAAWM,EAAAA,EAAAA,GAAaR,EAAEuJ,WAAYrJ,GACtCsD,IAAKwF,GACDvO,GAAI,IAAAK,UAERF,EAAAA,EAAAA,KAAC4O,EAAAA,EAAU,CAACtJ,UAAWF,EAAEyJ,SALrB,SAQhB,CAEA,IAAMC,EAAS,CACX,UACAC,EAAAA,GAAAA,QAAAA,QAAAA,MACAA,EAAAA,GAAAA,QAAAA,QAAAA,KACAA,EAAAA,GAAAA,QAAAA,UAAAA,MACA,UACA,UACA,UACA,UACA,WAGE1J,GAAYgC,EAAAA,EAAAA,IAGhB,SAAA0H,GAAK,MAAK,CACRR,UAAW,SAAAhO,GAAA,IAAGkE,EAAIlE,EAAJkE,KAAI,MAAQ,CACtBG,MAAOH,EACPI,OAAQJ,EACRuK,UAAU,WAAD7I,OAAa4I,EAAME,QAAQC,KAAK,MAC5C,EACDT,IAAK,SAAA7N,GAAA,IAAG6D,EAAI7D,EAAJ6D,KAAI,MAAQ,CAChBiE,UAAW,QACXc,eAAgB,UAChB5E,MAAOH,EACPI,OAAQJ,EACX,EACDkK,WAAY,SAAAhG,GAAA,IAAGlE,EAAIkE,EAAJlE,KAAMyJ,EAAWvF,EAAXuF,YAAW,MAAQ,CACpCtJ,MAAOH,EACPI,OAAQJ,EACR0K,gBACoB,YAAhBjB,OACM1L,EACAsM,EAAOZ,EAAcY,EAAOvM,QACzC,EACDsM,KAAM,SAAAO,GAAA,IAAG3K,EAAI2K,EAAJ3K,KAAI,MAAQ,CACjBG,MAAc,GAAPH,EACPI,OAAe,GAAPJ,EACX,EACJ,G,iHC7FM,SAAS4K,EACZC,EACAC,GAEA,IAAAzG,GAAwCC,EAAAA,EAAAA,UAAS,GAAEC,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAA5C0G,EAAYxG,EAAA,GAAEyG,EAAezG,EAAA,GACpC0G,GAAgD3G,EAAAA,EAAAA,UAAS,GAAE4G,GAAA1G,EAAAA,EAAAA,GAAAyG,EAAA,GAApDE,EAAgBD,EAAA,GAAEE,EAAmBF,EAAA,GAC5CG,GAAgD/G,EAAAA,EAAAA,UAAS,GAAEgH,GAAA9G,EAAAA,EAAAA,GAAA6G,EAAA,GAApDE,EAAgBD,EAAA,GAAEE,EAAmBF,EAAA,GAC5CG,GAA0CnH,EAAAA,EAAAA,UAAS,GAAEoH,GAAAlH,EAAAA,EAAAA,GAAAiH,EAAA,GAA9CE,EAAaD,EAAA,GAAEE,EAAgBF,EAAA,GACtCG,GAA0CvH,EAAAA,EAAAA,UAAS,GAAEwH,GAAAtH,EAAAA,EAAAA,GAAAqH,EAAA,GAA9CE,EAAaD,EAAA,GAAEE,EAAgBF,EAAA,GACtCG,GAAwD3H,EAAAA,EAAAA,UAAS,GAAE4H,GAAA1H,EAAAA,EAAAA,GAAAyH,EAAA,GAA5DE,EAAoBD,EAAA,GAAEE,EAAuBF,EAAA,GACpDG,GAAkD/H,EAAAA,EAAAA,UAAS,GAAEgI,GAAA9H,EAAAA,EAAAA,GAAA6H,EAAA,GAAtDE,EAAiBD,EAAA,GAAEE,EAAoBF,EAAA,GAC9CG,GAAkDnI,EAAAA,EAAAA,UAAS,GAAEoI,GAAAlI,EAAAA,EAAAA,GAAAiI,EAAA,GAAtDE,EAAiBD,EAAA,GAAEE,EAAoBF,EAAA,GAC9CG,GAAoDvI,EAAAA,EAAAA,UAAS,GAAEwI,GAAAtI,EAAAA,EAAAA,GAAAqI,EAAA,GAAxDE,EAAkBD,EAAA,GAAEE,EAAqBF,EAAA,GAChDG,GAA8C3I,EAAAA,EAAAA,UAAS,GAAE4I,GAAA1I,EAAAA,EAAAA,GAAAyI,EAAA,GAAlDE,EAAeD,EAAA,GAAEE,EAAkBF,EAAA,IAE1C9Q,EAAAA,EAAAA,YAAU,WACNyO,IAEA,IAAMwC,GAAqBC,EAAAA,EAAAA,IAAkB,YACvCC,GAAqBD,EAAAA,EAAAA,IAAkB,YAE7ClC,EAAoBiC,GACpB7B,EAAoB+B,GACpBvC,EACI1M,KAAKQ,QACAwO,EAAAA,EAAAA,IAAkB,aACfA,EAAAA,EAAAA,IAAkB,aAClB,IAGZN,EACI,CAAC,EAAG,EAAG,GACF3M,KAAI,SAAAmN,GAAC,OAAIC,aAAaC,QAAQ,cAADhM,OAAe8L,EAAC,aAAY,IACzDG,QAAO,SAAAC,GAAC,OAAIA,CAAC,IAAE9P,OAE5B,GAAG,CAAC+M,KAEJzO,EAAAA,EAAAA,YAAU,WACN,IAAAyR,EAyDR,SAA4BC,GAMxB,IAAAC,EAAkDD,EAAeE,QAC7D,SAACC,EAAG/S,GAAA,IAAIgT,EAAOhT,EAAPgT,QAAO,MAAQ,CACnBC,MACIF,EAAIE,MACJC,OACIX,aAAaC,QAAQ,yBAADhM,OAA0BwM,KAEtDG,MACIJ,EAAII,MACJD,OACIX,aAAaC,QAAQ,yBAADhM,OAA0BwM,KAEtDI,aACIL,EAAIK,aACJF,OACIX,aAAaC,QAAQ,gCAADhM,OACgBwM,KAG5CK,UACIN,EAAIM,UACJH,OACIX,aAAaC,QAAQ,6BAADhM,OAA8BwM,KAE7D,GACD,CAAEC,MAAO,EAAGE,MAAO,EAAGC,aAAc,EAAGC,UAAW,IAzB9CJ,EAAKJ,EAALI,MAAOE,EAAKN,EAALM,MAAOC,EAAYP,EAAZO,aAAcC,EAASR,EAATQ,UA4BpC,MAAO,CACHJ,MAAOA,EAAQL,EAAehQ,OAC9BuQ,MAAOA,EAAQP,EAAehQ,OAC9BwQ,aAAcA,EAAeR,EAAehQ,OAC5CyQ,UAAWA,EAAYT,EAAehQ,OAE9C,CAhGY0Q,CAAmB1D,GADfqD,EAAKN,EAALM,MAAOE,EAAKR,EAALQ,MAAOC,EAAYT,EAAZS,aAAcC,EAASV,EAATU,UAGpC3C,EAAiBtN,KAAKQ,MAAMqP,IAC5BnC,EAAiB1N,KAAKQ,MAAMuP,IAC5BjC,EAAwB9N,KAAKQ,MAAMwP,IACnC9B,EAAqBlO,KAAKQ,MAAMyP,IAEhC3B,EACItO,KAAKQ,OAAOqP,EAAQE,EAAQC,EAAeC,GAAa,GAEhE,GAAG,CAACzD,EAAUhN,UAEd1B,EAAAA,EAAAA,YAAU,YACNqS,EAAAA,EAAAA,MAAmB9J,MAAK,SAAA+J,GACpB,IAAMC,EAAMD,EAAEV,QACV,SAACC,EAAKW,GAAG,OACLX,GACCG,OACGX,aAAaC,SAAQmB,EAAAA,EAAAA,IAAkBD,EAAIE,SAC1C,EAAE,GACX,GAEJ1B,EAAmB9O,KAAKQ,MAAM6P,EAAMD,EAAE5Q,QAC1C,GACJ,GAAG,IAEH,IAAMiR,EAAgBzQ,KAAKQ,OACtBqM,EACGI,EACAI,EACAQ,EACAI,EACAR,EACAoB,GACA,GAOR,OAJA/Q,EAAAA,EAAAA,YAAU,WACNqR,aAAauB,QAAQ,qBAAsBD,EAAcE,WAC7D,GAAG,CAACF,IAEG,CACHhE,aAAAA,EACAI,iBAAAA,EACAI,iBAAAA,EACAI,cAAAA,EACAQ,qBAAAA,EACAI,kBAAAA,EACAR,cAAAA,EACAY,kBAAAA,EACAI,mBAAAA,EACAI,gBAAAA,EACA4B,cAAAA,EAER,C,4dC5FO,SAASG,EAAkBhU,GAQ9B,IAPAsO,EAAItO,EAAJsO,KACA2F,EAAIjU,EAAJiU,KACAC,EAAUlU,EAAVkU,WAMMzO,EAAIC,EAAU,CAAEwO,WAAAA,IAEtB,OACIlO,EAAAA,EAAAA,MAACmO,EAAAA,EAAI,CAACxO,UAAWF,EAAE2O,cAAc7T,SAAA,EAC7ByF,EAAAA,EAAAA,MAAA,OAAKL,UAAWF,EAAE4O,gBAAgB9T,SAAA,EAC9BF,EAAAA,EAAAA,KAAC8T,EAAAA,EAAI,CAACxO,UAAWF,EAAE6O,gBAAgB/T,UAC/BF,EAAAA,EAAAA,KAAA,OACIyI,IAAG,GAAAtC,OAAK+N,EAAAA,GAAa,iBAAA/N,OAAgByN,EAAI,QACzCtO,UAAWF,EAAE+O,eAGrBnU,EAAAA,EAAAA,KAACgO,EAAAA,EAAU,CAACC,KAAMA,EAAMC,YAAa0F,EAAMnP,KAAM,SAErDkB,EAAAA,EAAAA,MAAA,OAAKL,UAAWF,EAAEgP,aAAalU,SAAA,EAC3BF,EAAAA,EAAAA,KAAA,OAAKsF,UAAWF,EAAEsJ,KAAKxO,UACnBF,EAAAA,EAAAA,KAACqL,EAAAA,EAAa,CAAC5E,MAAOwH,EAAKS,KAAMpD,UAAU,WAE/CtL,EAAAA,EAAAA,KAAA,OAAKsF,UAAWF,EAAEiP,MAAMnU,UACpBF,EAAAA,EAAAA,KAACqL,EAAAA,EAAa,CACV5E,MAAK,OAAAN,OAAS8H,EAAKoG,OACnB/I,UAAU,MACV7F,MAAO,CAAE8B,UAAW,iBAM5C,CAEA,IAAMlC,GAAYgC,EAAAA,EAAAA,IAA2C,SAAA0H,GAAK,MAAK,CACnEgF,cAAe,CACXhM,OAAQ,EACRN,QAAS,OACT/B,QAAS,EACTb,OAAQ,KAEZmP,gBAAiB,CACbvM,QAAS,OACTO,WAAY,SACZsM,YAAa,IAEjBL,gBAAiB,CACbpP,OAAQ,GACRD,MAAO,GACPuK,gBAAiBJ,EAAME,QAAQC,KAAK,KACpCqF,WAAY,EACZD,YAAa,GACb7M,QAAS,OACTO,WAAY,SACZF,eAAgB,UAEpBqM,UAAW,CAAEvP,MAAO,GAAIC,OAAQ,IAChCuP,aAAc,CACV3M,QAAS,OACTO,WAAY,SACZF,eAAgB,eAChBlD,MAAO,OACPqD,SAAU,UAEdyG,KAAM,SAAAnO,GAAa,MAAQ,CACvBqE,MADerE,EAAVsT,WACe,IAAM,IAC1BhM,SAAU,SACV2M,aAAc,GACjB,EACDH,MAAO,CAAEzP,MAAO,GAAIiD,SAAU,UACjC,IC3EM,SAAS4M,EAAkB9U,GAM9B,IALAsO,EAAItO,EAAJsO,KACA2F,EAAIjU,EAAJiU,KAKMxO,EAAIC,IAEV,OACIM,EAAAA,EAAAA,MAACmO,EAAAA,EAAI,CAACxO,UAAWF,EAAE2O,cAAc7T,SAAA,EAC7ByF,EAAAA,EAAAA,MAAA,OAAKL,UAAWF,EAAE4O,gBAAgB9T,SAAA,EAC9BF,EAAAA,EAAAA,KAAC8T,EAAAA,EAAI,CAACxO,UAAWF,EAAE6O,gBAAgB/T,UAC/BF,EAAAA,EAAAA,KAAA,OACIyI,IAAG,GAAAtC,OAAK+N,EAAAA,GAAa,iBAAA/N,OAAgByN,EAAI,QACzCtO,UAAWF,EAAE+O,eAGrBnU,EAAAA,EAAAA,KAACgO,EAAAA,EAAU,CAACC,KAAMA,EAAMC,YAAa0F,EAAMnP,KAAM,SAErDzE,EAAAA,EAAAA,KAAA,OAAKsF,UAAWF,EAAEsP,sBAAsBxU,UACpCyF,EAAAA,EAAAA,MAAA,OAAAzF,SAAA,EACIF,EAAAA,EAAAA,KAAA,OAAAE,SAAM+N,EAAKS,QACX/I,EAAAA,EAAAA,MAAA,OAAAzF,SAAA,CAAK,OAAK+N,EAAKoG,gBAKnC,CAEA,IAAMhP,GAAYgC,EAAAA,EAAAA,IAAW,SAAA0H,GAAK,MAAK,CACnCgF,cAAe,CACXhM,OAAQ,EACRN,QAAS,OACT/B,QAAS,EACTb,OAAQ,KAEZmP,gBAAiB,CACbvM,QAAS,OACTO,WAAY,SACZsM,YAAa,IAEjBL,gBAAiB,CACbpP,OAAQ,GACRD,MAAO,GACPuK,gBAAiBJ,EAAME,QAAQC,KAAK,KACpCqF,WAAY,EACZD,YAAa,GACb7M,QAAS,OACTO,WAAY,SACZF,eAAgB,UAEpBqM,UAAW,CAAEvP,MAAO,GAAIC,OAAQ,IAChC6P,sBAAuB,CACnBjN,QAAS,OACTO,WAAY,SACZF,eAAgB,SAChBlD,MAAO,OACPqD,SAAU,SACV0M,UAAW,YACXL,YAAa,GAEpB,IChEM,SAASM,EAAgBjV,GAU5B,IATAsO,EAAItO,EAAJsO,KACA2F,EAAIjU,EAAJiU,KACAlP,EAAM/E,EAAN+E,OACAmP,EAAUlU,EAAVkU,WAOA,OAAInP,GAEI1E,EAAAA,EAAAA,KAAC2T,EAAkB,CACf1F,KAAMA,EACN2F,KAAMA,EACNC,WAAYA,KAIjB7T,EAAAA,EAAAA,KAACyU,EAAkB,CAACxG,KAAMA,EAAM2F,KAAMA,GACjD,CCnBO,SAASiB,EAAUlV,GAQtB,IAPAmV,EAAKnV,EAALmV,MACApQ,EAAM/E,EAAN+E,OACAmP,EAAUlU,EAAVkU,WAMMzO,EAAIC,EAAU,CAAEX,OAAAA,IACtB,OACI1E,EAAAA,EAAAA,KAAC8T,EAAAA,EAAI,CAACxO,UAAWF,EAAE2P,eAAe7U,SAC7B4U,EAAMhQ,KAAI,SAACmJ,EAAMgE,GAAC,OACfjS,EAAAA,EAAAA,KAACgV,EAAAA,EAAsB,CAAmBC,OAAQhH,EAAKgH,OAAO/U,UAC1DF,EAAAA,EAAAA,KAAC4U,EAAgB,CACb3G,KAAMA,EACN2F,KAAM3B,EAAI,EACVvN,OAAQA,EACRmP,WAAYA,KALS5F,EAAKgH,OAOT,KAIzC,CACA,IAAM5P,GAAYgC,EAAAA,EAAAA,IAAuC,SAAA0H,GAAK,MAAK,CAC/DgG,eAAgB,CACZhN,OAAQ,EACRoH,gBAAiBJ,EAAME,QAAQC,KAAK,KACpCrK,OAAQ,IACR8C,KAAM,EACNM,SAAU,QACViN,WAAY,QAEnB,IC/BKC,EAAa,GAEZ,SAASC,EAAYzV,GAMxB,IALA0E,EAAW1E,EAAX0E,YACAK,EAAM/E,EAAN+E,OAKA2Q,EA8BJ,SAA4BhR,GACxB,IAAMwP,EAAaxP,EAAc,KAEnBiR,GAAWC,EAAAA,EAAAA,KAAjBtH,KAERnF,GAA2BC,EAAAA,EAAAA,UAA2B,IAAGC,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAAlD0M,EAAMxM,EAAA,GAAEyM,EAAQzM,EAAA,IACvBnI,EAAAA,EAAAA,YAAU,YACN6U,EAAAA,EAAAA,GACI,0CAA4CP,EAC5CM,GACFrM,KAAKqM,EACX,GAAG,IAGH,IAAMX,GAAQa,EAAAA,EAAAA,UAAQ,WAClB,OAAKL,EAGDE,EAAOI,MAAK,SAAAC,GAAC,OAAIA,EAAEZ,SAAWK,EAAOL,MAAM,IACpCO,EACF1Q,KAAI,SAAA+Q,GAAC,OAAKA,EAAEZ,SAAWK,EAAOL,OAASK,EAASO,CAAC,IACjDC,MAAK,SAAC5O,EAAG6O,GAAC,OAAKA,EAAEC,GAAK9O,EAAE8O,EAAE,IAE5B,GAAA7P,QAAA8P,EAAAA,EAAAA,GAAIT,GAAM,CAAEF,IACdQ,MAAK,SAAC5O,EAAG6O,GAAC,OAAKA,EAAEC,GAAK9O,EAAE8O,EAAE,IAC1BpP,MAAM,EAAGuO,GATHK,CAUf,GAAG,CAACF,EAAQE,IAEZU,GAAAC,EAAAA,EAAAA,GAA8CrB,GAAvCsB,EAAKF,EAAA,GAAEG,EAAKH,EAAA,GAAEI,EAAKJ,EAAA,GAAKK,EAAWL,EAAAtP,MAAA,GACpC4P,EAAWF,EAAQ,CAACF,EAAOC,EAAOC,GAAS,GAE3CG,EAAe3B,EAAMvS,OAAS,EAEpC,MAAO,CAAEkU,aAAAA,EAAcD,SAAAA,EAAUD,YAAAA,EAAajB,OAAAA,EAAQzB,WAAAA,EAC1D,CA/DQ6C,CAAmBrS,GADfoS,EAAYpB,EAAZoB,aAAcD,EAAQnB,EAARmB,SAAUD,EAAWlB,EAAXkB,YAAajB,EAAMD,EAANC,OAAQzB,EAAUwB,EAAVxB,WAG/CzO,EAAIC,EAAU,CAAEX,OAAAA,IAEtB,OACI1E,EAAAA,EAAAA,KAAC2W,EAAAA,EAAQ,CAACC,GAAIH,EAAcI,QAAS,IAAI3W,UACrCyF,EAAAA,EAAAA,MAAA,OAAKL,UAAWF,EAAE8F,UAAUhL,SAAA,EACxBF,EAAAA,EAAAA,KAAC6U,EAAU,CACPC,MAAO0B,EACP9R,OAAQA,EACRmP,WAAYA,KAEhB7T,EAAAA,EAAAA,KAAC8W,EAAAA,EAAY,CACThC,MAAOyB,EACPjB,OAAQA,EACRmB,aAAcA,QAKlC,CACA,IAAMpR,GAAYgC,EAAAA,EAAAA,GAAuC,CACrD6D,UAAW,SAAA3K,GAAS,MAAQ,CACxBkH,QAAS,OACTC,cAFgBnH,EAANmE,OAEc,MAAQ,SAChCqS,UAAW,GACd,ICfL,IAAMlM,EAojBN,WACI,IAAMmM,EAAQ,IAAIC,KAGlB,OAFoBD,EAAME,WAAaF,EAAMG,WACnB,GAChB,GAAW,EACd,CACX,CA1jBkBC,GAgLlB,IAAMC,GAAgBhQ,EAAAA,EAAAA,GAAW,CAC7BiQ,YAAa,CAAE/P,UAAW,UAC1BgQ,SAAU,CAAEC,WAAY,iBAAkBtC,WAAY,KACtDuC,oBAAqB,CACjBhQ,QAAS,OACTC,cAAe,UAEnBgQ,wBAAyB,CACrBjQ,QAAS,OACTC,cAAe,OAEnBiQ,gBAAiB,CACbpD,WAAY,OACZD,YAAa,OACb9M,SAAU,KAEdoQ,wBAAyB,CAAEtQ,aAAc,GAAIC,UAAW,UACxDsQ,sBAAuB,CAAEtQ,UAAW,SAAUD,aAAc,MAGpC,SAAAwQ,IAW3B,OAX2BA,GAAA1W,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,KAAAC,MAA5B,SAAAC,EACIwW,EACAC,GAAuC,IAAA5T,EAAAG,EAAA,OAAAlD,EAAAA,EAAAA,KAAAc,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAEa,MAAxC,yCAAwCF,EAAAE,KAAA,GAC7BoT,EAAAA,EAAAA,GADX,0CACmC,KAAD,EAExB,OAFhBtR,EAAQhC,EAAAO,KAEdoV,EAAY3T,GAAUhC,EAAAE,KAAA,GAEGoT,EAAAA,EAAAA,GAAqB,8BAA8B,KAAD,EAArEnR,EAAUnC,EAAAO,KAChBqV,EAAWzT,GAAY,wBAAAnC,EAAAkB,OAAA,GAAA/B,EAAA,MAC1BL,MAAA,KAAAC,UAAA,CAWD,SAAS8W,EAAU1X,GAOE,IANjBmE,EAAMnE,EAANmE,OACA8K,EAAYjP,EAAZiP,aACA4B,EAAiB7Q,EAAjB6Q,kBACAhB,EAAa7P,EAAb6P,cACAoB,EAAkBjR,EAAlBiR,mBACAI,EAAerR,EAAfqR,gBAEMxM,EAAI8S,KAEV,OACIvS,EAAAA,EAAAA,MAAA,OAAKL,UAAWZ,EAASU,EAAE+S,cAAgB/S,EAAE8F,UAAUhL,SAAA,EACnDyF,EAAAA,EAAAA,MAAA,OAAKL,UAAWZ,EAASU,EAAEgT,eAAiBhT,EAAEiT,WAAWnY,SAAA,EACrDF,EAAAA,EAAAA,KAACwN,EAAAA,EAAI,CAACC,GAAG,qBAAqBnI,UAAWF,EAAEkT,SAASpY,UAChDyF,EAAAA,EAAAA,MAACmO,EAAAA,EAAI,CACDyE,MAAI,EACJjT,WAAWM,EAAAA,EAAAA,GAAa,eAAgBR,EAAEoT,UAAUtY,SAAA,EAEpDF,EAAAA,EAAAA,KAACyY,EAAAA,EAAS,CAACnT,UAAWF,EAAEsT,UAAUxY,SAAC,yBAGnCF,EAAAA,EAAAA,KAAC2Y,EAAAA,EAAQ,CAACrT,UAAWF,EAAEwT,SAAS1Y,SAAC,mGAIjCyF,EAAAA,EAAAA,MAAA,OAAKL,UAAWF,EAAEyT,kBAAkB3Y,SAAA,CAC/B,kBACDF,EAAAA,EAAAA,KAAA,WACA2F,EAAAA,EAAAA,MAAA,QAAML,UAAWF,EAAE0T,eAAe5Y,SAAA,CAC7BsP,EAAa,WAGtBxP,EAAAA,EAAAA,KAACwK,EAAAA,EAAM,CAACC,MAAM,YAAYnF,UAAWF,EAAE2T,cAAc7Y,SAAC,eAM9DF,EAAAA,EAAAA,KAACwN,EAAAA,EAAI,CAACC,GAAG,mBAAmBnI,UAAWF,EAAEkT,SAASpY,UAC9CyF,EAAAA,EAAAA,MAACmO,EAAAA,EAAI,CACDyE,MAAI,EACJS,SAAO,EACPvO,MAAM,UACNnF,UAAU,0BAAyBpF,SAAA,EAEnCF,EAAAA,EAAAA,KAACyY,EAAAA,EAAS,CAACnT,UAAWF,EAAEsT,UAAUxY,SAAC,yBAGnCF,EAAAA,EAAAA,KAAC2Y,EAAAA,EAAQ,CAACrT,UAAWF,EAAEwT,SAAS1Y,SAAC,8FAIjCyF,EAAAA,EAAAA,MAAA,OAAKL,UAAWF,EAAEyT,kBAAkB3Y,SAAA,CAC/B,kBACDF,EAAAA,EAAAA,KAAA,WACA2F,EAAAA,EAAAA,MAAA,QAAML,UAAWF,EAAE0T,eAAe5Y,SAAA,CAC7BkR,EAAkB,WAG3BpR,EAAAA,EAAAA,KAACwK,EAAAA,EAAM,CAACC,MAAM,YAAYnF,UAAWF,EAAE2T,cAAc7Y,SAAC,kBAMlEyF,EAAAA,EAAAA,MAAA,OAAKL,UAAWZ,EAASU,EAAEgT,eAAiBhT,EAAEiT,WAAWnY,SAAA,EACrDF,EAAAA,EAAAA,KAACwN,EAAAA,EAAI,CAACC,GAAG,mBAAmBnI,UAAWF,EAAEkT,SAASpY,UAC9CyF,EAAAA,EAAAA,MAACmO,EAAAA,EAAI,CACDyE,MAAI,EACJS,SAAO,EACPvO,MAAM,UACNnF,UAAU,0BAAyBpF,SAAA,EAEnCF,EAAAA,EAAAA,KAACyY,EAAAA,EAAS,CAACnT,UAAWF,EAAEsT,UAAUxY,SAAC,yBAGnCyF,EAAAA,EAAAA,MAACgT,EAAAA,EAAQ,CAACrT,UAAWF,EAAEwT,SAAS1Y,SAAA,CAAC,iDAE3BwE,GACE,sDAERiB,EAAAA,EAAAA,MAAA,OAAKL,UAAWF,EAAEyT,kBAAkB3Y,SAAA,CAC/B,kBACDF,EAAAA,EAAAA,KAAA,WACA2F,EAAAA,EAAAA,MAAA,QAAML,UAAWF,EAAE0T,eAAe5Y,SAAA,CAC7BkQ,EAAc,WAGvBpQ,EAAAA,EAAAA,KAACwK,EAAAA,EAAM,CAAClF,UAAWF,EAAE2T,cAAetO,MAAM,YAAWvK,SAAC,eAM9DF,EAAAA,EAAAA,KAACwN,EAAAA,EAAI,CAACC,GAAG,WAAWnI,UAAWF,EAAEkT,SAASpY,UACtCyF,EAAAA,EAAAA,MAACmO,EAAAA,EAAI,CACDyE,MAAI,EACJS,SAAO,EACPvO,MAAM,SACNnF,UAAU,0BAAyBpF,SAAA,EAEnCF,EAAAA,EAAAA,KAACyY,EAAAA,EAAS,CAACnT,UAAWF,EAAEsT,UAAUxY,SAAC,sBAGnCF,EAAAA,EAAAA,KAAC2Y,EAAAA,EAAQ,CAACrT,UAAWF,EAAEwT,SAAS1Y,SAAC,4EAIjCyF,EAAAA,EAAAA,MAAA,OAAKL,UAAWF,EAAEyT,kBAAkB3Y,SAAA,CAC/B,kBACDF,EAAAA,EAAAA,KAAA,WACA2F,EAAAA,EAAAA,MAAA,QAAML,UAAWF,EAAE0T,eAAe5Y,SAAA,CAC7B0R,EAAgB,WAGzB5R,EAAAA,EAAAA,KAACwK,EAAAA,EAAM,CAACC,MAAM,YAAYnF,UAAWF,EAAE2T,cAAc7Y,SAAC,eAM9DF,EAAAA,EAAAA,KAACwN,EAAAA,EAAI,CAACC,GAAG,SAASnI,UAAWF,EAAEkT,SAASpY,UACpCyF,EAAAA,EAAAA,MAACmO,EAAAA,EAAI,CACDyE,MAAI,EACJjT,WAAWM,EAAAA,EAAAA,GACP,eACAR,EAAE6T,gBACJ/Y,SAAA,EAEFF,EAAAA,EAAAA,KAACyY,EAAAA,EAAS,CAACnT,UAAWF,EAAEsT,UAAUxY,SAAC,iBAGnCyF,EAAAA,EAAAA,MAACgT,EAAAA,EAAQ,CAACrT,UAAWF,EAAEwT,SAAS1Y,SAAA,CAAC,8DAG3BwE,GACE,kDAERiB,EAAAA,EAAAA,MAAA,OAAKL,UAAWF,EAAE2T,cAAc7Y,SAAA,EAC5ByF,EAAAA,EAAAA,MAAA,OAAKL,UAAWF,EAAEyT,kBAAkB3Y,SAAA,CAC/B,kBACDF,EAAAA,EAAAA,KAAA,WACAA,EAAAA,EAAAA,KAAA,QAAMsF,UAAWF,EAAE0T,eAAe5Y,SAAA,GAAAiG,OAC1BqL,EAAkB,YAG9BxR,EAAAA,EAAAA,KAACwK,EAAAA,EAAM,CAACC,MAAM,sBAAqBvK,SAAC,uBAOhE,CACA,IAAMgY,IAAsB7Q,EAAAA,EAAAA,IAAW,iBAAO,CAC1C6D,UAAW,CACP6L,UAAW,GACXzP,aAAc,IAElB6Q,cAAe,CACXpB,UAAW,GACXzP,aAAc,IAElB+Q,WAAY,CACR5Q,QAAS,OACTC,cAAe,UAEnB0Q,eAAgB,CACZ3Q,QAAS,OACTC,cAAe,OAEnB4Q,SAAU,CACNvQ,OAAQ,EACRJ,KAAM,EACNuR,eAAgB,OAChB,UAAW,CACPA,eAAgB,SAGxBV,SAAU,CACNrJ,gBAAiB,OACjBgK,YAAa,OACb1O,MAAO,QACP5F,OAAQ,QAEZ6T,UAAW,CACPzQ,SAAU,WAEdgR,eAAgB,CACZ9J,gBAAiB,OACjBgK,YAAa,OACb1O,MAAO,QACP5F,OAAQ,QAEZ+T,SAAU,CAAE1Q,SAAU,WAAYpF,IAAK,GACvCiW,cAAe,CAAEhC,UAAW,QAC5B+B,eAAgB,CACZ5D,WAAY,OACZkE,YAAa,EACbnR,SAAU,WAEd4Q,kBAAmB,CACf5Q,SAAU,QACVX,aAAc,IAErB,IASD,SAAS+R,GAAUzY,GAKE,IAJjB8D,EAAM9D,EAAN8D,OACAkM,EAAoBhQ,EAApBgQ,qBACAI,EAAiBpQ,EAAjBoQ,kBACAR,EAAa5P,EAAb4P,cAEMpL,EAAIkU,KAEV,OACItZ,EAAAA,EAAAA,KAAA,OAAKsF,UAAWZ,EAASU,EAAE+S,cAAgB/S,EAAE8F,UAAUhL,UACnDyF,EAAAA,EAAAA,MAAA,OAAKL,UAAWZ,EAASU,EAAEgT,eAAiBhT,EAAEiT,WAAWnY,SAAA,EACrDF,EAAAA,EAAAA,KAACwN,EAAAA,EAAI,CAACC,GAAG,qBAAqBnI,UAAWF,EAAEkT,SAASpY,UAChDyF,EAAAA,EAAAA,MAACmO,EAAAA,EAAI,CACDyE,MAAI,EACJjT,WAAWM,EAAAA,EAAAA,GACP,eACAR,EAAEmU,kBACJrZ,SAAA,EAEFF,EAAAA,EAAAA,KAACyY,EAAAA,EAAS,CAACnT,UAAWF,EAAEsT,UAAUxY,SAAC,8BAGnCyF,EAAAA,EAAAA,MAAA,OAAKL,UAAWF,EAAE2T,cAAc7Y,SAAA,EAC5ByF,EAAAA,EAAAA,MAAA,OAAKL,UAAWF,EAAEyT,kBAAkB3Y,SAAA,CAC/B,kBACDF,EAAAA,EAAAA,KAAA,WACA2F,EAAAA,EAAAA,MAAA,QAAML,UAAWF,EAAE0T,eAAe5Y,SAAA,CAC7B0Q,EAAqB,WAG9B5Q,EAAAA,EAAAA,KAACwK,EAAAA,EAAM,CAACC,MAAM,sBAAqBvK,SAAC,kBAKhDF,EAAAA,EAAAA,KAACwN,EAAAA,EAAI,CAACC,GAAG,kBAAkBnI,UAAWF,EAAEkT,SAASpY,UAC7CyF,EAAAA,EAAAA,MAACmO,EAAAA,EAAI,CACDyE,MAAI,EACJS,SAAO,EACPvO,MAAM,UACNnF,UAAU,0BAAyBpF,SAAA,EAEnCF,EAAAA,EAAAA,KAACyY,EAAAA,EAAS,CAACnT,UAAWF,EAAEsT,UAAUxY,SAAC,2BAGnCyF,EAAAA,EAAAA,MAAA,OAAKL,UAAWF,EAAEyT,kBAAkB3Y,SAAA,CAC/B,kBACDF,EAAAA,EAAAA,KAAA,WACA2F,EAAAA,EAAAA,MAAA,QAAML,UAAWF,EAAE0T,eAAe5Y,SAAA,CAC7B8Q,EAAkB,WAG3BhR,EAAAA,EAAAA,KAACwK,EAAAA,EAAM,CAAClF,UAAWF,EAAE2T,cAAetO,MAAM,YAAWvK,SAAC,eAM9DF,EAAAA,EAAAA,KAACwN,EAAAA,EAAI,CAACC,GAAG,cAAcnI,UAAWF,EAAEkT,SAASpY,UACzCyF,EAAAA,EAAAA,MAACmO,EAAAA,EAAI,CACDyE,MAAI,EACJS,SAAO,EACPvO,MAAM,SACNnF,UAAU,0BAAyBpF,SAAA,EAEnCF,EAAAA,EAAAA,KAACyY,EAAAA,EAAS,CAACnT,UAAWF,EAAEsT,UAAUxY,SAAC,4BAGnCyF,EAAAA,EAAAA,MAAA,OAAKL,UAAWF,EAAEyT,kBAAkB3Y,SAAA,CAC/B,kBACDF,EAAAA,EAAAA,KAAA,WACA2F,EAAAA,EAAAA,MAAA,QAAML,UAAWF,EAAE0T,eAAe5Y,SAAA,CAC7BsQ,EAAc,WAGvBxQ,EAAAA,EAAAA,KAACwK,EAAAA,EAAM,CAACC,MAAM,YAAYnF,UAAWF,EAAE2T,cAAc7Y,SAAC,kBAQ9E,CAEA,IAAMoZ,IAAsBjS,EAAAA,EAAAA,IAAW,iBAAO,CAC1C6D,UAAW,CACP6L,UAAW,GACXzP,aAAc,IAElB6Q,cAAe,CACXpB,UAAW,GACXzP,aAAc,IAElB+Q,WAAY,CACR5Q,QAAS,OACTC,cAAe,UAEnB0Q,eAAgB,CACZ3Q,QAAS,OACTC,cAAe,OAEnB4Q,SAAU,CACNvQ,OAAQ,EACRJ,KAAM,EACNuR,eAAgB,OAChB,UAAW,CACPA,eAAgB,SAGxBR,UAAW,CACPzQ,SAAU,WAEdsR,iBAAkB,CACdpK,gBAAiB,OACjBgK,YAAa,OACb1O,MAAO,QACP5F,OAAQ,QAEZkU,cAAe,CAAEhC,UAAW,QAC5B+B,eAAgB,CACZ5D,WAAY,OACZkE,YAAa,EACbnR,SAAU,WAEd4Q,kBAAmB,CACf5Q,SAAU,QACV8O,UAAW,EACXzP,aAAc,IAErB,IAUD,QAAekS,EAAAA,EAAAA,KACX,SAACC,GAAuB,OAAKA,EAAMC,SAAS,IAC5C,SAAAC,GAAQ,OAAIC,EAAAA,EAAAA,IAAmBC,EAAAA,EAA2BF,EAAS,GAFvE,EAxjBA,SAAaha,GAA4C,IAAzC2P,EAAa3P,EAAb2P,cAAeC,EAAS5P,EAAT4P,UAC3BuK,GASIzK,EAAAA,EAAAA,GAAYC,EAAeC,GAR3BC,EAAYsK,EAAZtK,aACA4B,EAAiB0I,EAAjB1I,kBACAR,EAAoBkJ,EAApBlJ,qBACAI,EAAiB8I,EAAjB9I,kBACAR,EAAasJ,EAAbtJ,cACAJ,EAAa0J,EAAb1J,cACAoB,EAAkBsI,EAAlBtI,mBACAI,EAAekI,EAAflI,gBAGIvN,GAAgB8E,EAAAA,EAAAA,KAAhB9E,YACRyE,GAAgCC,EAAAA,EAAAA,UAAiB,IAAGC,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAA7C1E,EAAQ4E,EAAA,GAAE+O,EAAW/O,EAAA,GAC5B0G,GAAoC3G,EAAAA,EAAAA,UAAmB,IAAG4G,GAAA1G,EAAAA,EAAAA,GAAAyG,EAAA,GAAnDnL,EAAUoL,EAAA,GAAEoK,EAAapK,EAAA,GAE1BjL,EAASL,EAAc,IAEvBe,EAAI8S,KACJ8B,EAAK3C,EAAc,CAAE3S,OAAAA,IAM3B,OAJA7D,EAAAA,EAAAA,YAAU,YAyKX,SAEyBE,EAAAC,GAAA8W,EAAA5W,MAAC,KAADC,UAAA,CA1KpB8Y,CAAclC,EAAagC,EAC/B,GAAG,KAGCpU,EAAAA,EAAAA,MAAA,OAAKL,UAAU,OAAMpF,SAAA,EACjBF,EAAAA,EAAAA,KAACka,EAAAA,EAAM,CACHzT,MAAM,wCACN0T,KAAK,gFACLC,QAAQ,KAEZzU,EAAAA,EAAAA,MAAA,OAAKL,UAAW0U,EAAG1C,YAAYpX,SAAA,EAC3ByF,EAAAA,EAAAA,MAAA,MAAIL,WAAWM,EAAAA,EAAAA,GAAa,cAAeoU,EAAGzC,UAAUrX,SAAA,CAAC,aAC1C,KACXF,EAAAA,EAAAA,KAAA,QAAMsF,UAAU,eAAcpF,SAAC,uBAGnCF,EAAAA,EAAAA,KAAC2K,EAAAA,EAAgB,CACbtG,YAAaA,EACbwG,UAAWA,EACXC,SACInF,EAAAA,EAAAA,MAAA,QAAAzF,SAAA,CAAM,mCAEFF,EAAAA,EAAAA,KAAA,SAAM,YACEA,EAAAA,EAAAA,KAACqa,EAAAA,WAAU,CAAC5T,MAAM,cAAc,KACxCzG,EAAAA,EAAAA,KAAA,SAAM,0BAKlBA,EAAAA,EAAAA,KAACoV,EAAY,CAAC/Q,YAAaA,EAAaK,OAAQA,KAEhDiB,EAAAA,EAAAA,MAAA,OAAAzF,SAAA,EACIF,EAAAA,EAAAA,KAACiY,EAAU,CACPvT,OAAQA,EACR8K,aAAcA,EACd4B,kBAAmBA,EACnBhB,cAAeA,EACfoB,mBAAoBA,EACpBI,gBAAiBA,KAGrB5R,EAAAA,EAAAA,KAAC4M,EAAAA,EAAY,CAACvI,YAAaA,KAE3BrE,EAAAA,EAAAA,KAACqZ,GAAU,CACP3U,OAAQA,EACRkM,qBAAsBA,EACtBI,kBAAmBA,EACnBR,cAAeA,KAGnBxQ,EAAAA,EAAAA,KAAC2K,EAAAA,EAAgB,CACblF,MAAO,CACHsR,UAAWrS,GAAU,QAAKlC,EAC1B8E,aAAc,IAElBjD,YAAaA,EACbwG,UAAWA,EAAY,GAAK,EAC5BC,QAAS,8BAGbnF,EAAAA,EAAAA,MAAA,OACIL,UACIZ,EACMsV,EAAGtC,wBACHsC,EAAGvC,oBACZvX,SAAA,EAEDF,EAAAA,EAAAA,KAACwN,EAAAA,EAAI,CAACC,GAAG,mBAAmBnI,UAAWF,EAAEkT,SAASpY,UAC9CyF,EAAAA,EAAAA,MAACmO,EAAAA,EAAI,CACDyE,MAAI,EACJS,SAAO,EACPvO,MAAM,UACNnF,UAAU,0BAAyBpF,SAAA,EAEnCF,EAAAA,EAAAA,KAACyY,EAAAA,EAAS,CAACnT,UAAWF,EAAEsT,UAAUxY,SAAC,qBAGnCF,EAAAA,EAAAA,KAAC2Y,EAAAA,EAAQ,CAACrT,UAAWF,EAAEwT,SAAS1Y,SAAC,wFAIjCF,EAAAA,EAAAA,KAACwK,EAAAA,EAAM,CACHC,MAAM,YACNnF,UAAWF,EAAE2T,cAAc7Y,SAC9B,eAMTF,EAAAA,EAAAA,KAACwN,EAAAA,EAAI,CAACC,GAAG,oBAAoBnI,UAAWF,EAAEkT,SAASpY,UAC/CyF,EAAAA,EAAAA,MAACmO,EAAAA,EAAI,CACDyE,MAAI,EACJS,SAAO,EACPvO,MAAM,UACNnF,UAAU,0BAAyBpF,SAAA,EAEnCF,EAAAA,EAAAA,KAACyY,EAAAA,EAAS,CAACnT,UAAWF,EAAEsT,UAAUxY,SAAC,sBAGnCF,EAAAA,EAAAA,KAAC2Y,EAAAA,EAAQ,CAACrT,UAAWF,EAAEwT,SAAS1Y,SAAC,8FAIjCF,EAAAA,EAAAA,KAACwK,EAAAA,EAAM,CAAClF,UAAWF,EAAE2T,cAAc7Y,SAAC,wBAQxDF,EAAAA,EAAAA,KAACsa,EAAAA,WAAU,CACP7T,MAAM,YACNpC,YAAaA,EACbqJ,YAAU,KAEd1N,EAAAA,EAAAA,KAAA,UACA2F,EAAAA,EAAAA,MAAA,WAASL,UAAW0U,EAAGrC,gBAAgBzX,SAAA,EACnCF,EAAAA,EAAAA,KAAA,MACIsF,WAAWM,EAAAA,EAAAA,GACP,aACAoU,EAAGpC,yBACL1X,SACL,0BAGDF,EAAAA,EAAAA,KAACmE,EAAAA,EAAY,CACTG,OAAQ,KACRF,SAAUA,EACVC,YAAaA,EACbE,WAAYA,KAEhBvE,EAAAA,EAAAA,KAAA,OAAKsF,UAAW0U,EAAGnC,sBAAsB3X,UACrCF,EAAAA,EAAAA,KAACuN,EAAAA,EAAY,CACTrH,KAAMqU,EAAAA,GACN9U,MAAO,CACHwC,SAAU,YACZ/H,SAED,uCAIbF,EAAAA,EAAAA,KAACsM,EAAAA,EAAE,KACHtM,EAAAA,EAAAA,KAAC6N,EAAAA,EAAQ,KACT7N,EAAAA,EAAAA,KAACwa,EAAAA,GAAe,CAACC,aAAc,EAAGpW,YAAaA,MAG3D,G,wMCpMO,SAASqW,EAAkB/a,GAgB9B,IAfAsO,EAAItO,EAAJsO,KACA2F,EAAIjU,EAAJiU,KACA+G,EAAkBhb,EAAlBgb,mBACArF,EAAM3V,EAAN2V,OACAsF,EAAmBjb,EAAnBib,oBACAnE,EAAY9W,EAAZ8W,aACAoE,EAAQlb,EAARkb,SAUMzV,EAAIC,EAAU,CAAEwV,SAAAA,EAAUF,mBAAAA,IAC1B/R,GAAMC,EAAAA,EAAAA,QAAuB,MAcnC,OAZAhI,EAAAA,EAAAA,YAAU,WACFga,GAAYpE,IAEZxS,EAAAA,EAAAA,IAAW,KAAKmF,MAAK,WACZR,EAAIW,SAAYqR,IAGrB9Z,EAAAA,EAAAA,GAAe8Z,EAAqBhS,EAAIW,QAAS,EACrD,GAER,GAAG,CAAC+L,EAAQrH,EAAM2M,EAAqBnE,EAAc7C,KAGjDjO,EAAAA,EAAAA,MAACmO,EAAAA,EAAI,CAACxO,UAAWF,EAAE0V,KAAMlS,IAAKA,EAAI1I,SAAA,EAC9ByF,EAAAA,EAAAA,MAAA,OAAKL,UAAWF,EAAE2V,cAAc7a,SAAA,EAC1Bya,IAAsBhV,EAAAA,EAAAA,MAAA,OAAKL,UAAWF,EAAEwO,KAAK1T,SAAA,CAAE0T,EAAK,QACtD5T,EAAAA,EAAAA,KAACgO,EAAAA,EAAU,CAACC,KAAMA,EAAMC,YAAa0F,EAAMnP,KAAM,SAErDkB,EAAAA,EAAAA,MAAA,OAAKL,UAAWF,EAAEgP,aAAalU,SAAA,EAC3BF,EAAAA,EAAAA,KAAA,OAAKsF,UAAWF,EAAEsJ,KAAKxO,UACnBF,EAAAA,EAAAA,KAACqL,EAAAA,EAAa,CAAC5E,MAAOwH,EAAKS,KAAMpD,UAAU,WAE/C3F,EAAAA,EAAAA,MAAA,OAAKL,UAAWF,EAAEiP,MAAMnU,SAAA,CAAC,OAAK+N,EAAKoG,cAInD,CAEA,IAAMhP,GAAYgC,EAAAA,EAAAA,IAGhB,SAAA9G,GAAA,IAAG0O,EAAO1O,EAAP0O,QAAO,MAAQ,CAChB6L,KAAM,SAAAla,GAAA,IAAGia,EAAQja,EAARia,SAAQ,MAAQ,CACrB9S,OAAQ,EACRN,QAAS,OACT/B,QAAS,EACTb,OAAQ,GACR2H,OAAQqO,EAAW,aAAUrY,EAC7B0S,WAAY2F,EAAW,YAASrY,EAChC2W,YAAa0B,EAAW5L,EAAQ+L,QAAQC,UAAOzY,EAClD,EACDuY,cAAe,SAAApS,GAAqB,MAAQ,CACxClB,QAAS,OACTO,WAAY,SACZF,eAAgB,gBAChByM,WAAY,GACZD,YAAa,GACb4G,SANgCvS,EAAlBgS,wBAMiBnY,EAAY,GAC9C,EACDoR,KAAM,CAAEU,YAAa,IACrBF,aAAc,CACV3M,QAAS,OACTO,WAAY,SACZF,eAAgB,eAChBlD,MAAO,OACPiD,SAAU,UAEd6G,KAAM,CAAE/G,KAAM,EAAGE,SAAU,SAAU2M,aAAc,IACnDH,MAAO,CACH1M,KAAM,EACNJ,UAAW,OACX+M,YAAa,GACblI,WAAY,UAEnB,ICnFK+O,EAAuB,GAEtB,SAASrE,EAAYnX,GAkBxB,IAjBAmV,EAAKnV,EAALmV,MACAQ,EAAM3V,EAAN2V,OAAM8F,EAAAzb,EACN0b,YAAAA,OAAW,IAAAD,EAAG,EAACA,EACf3E,EAAY9W,EAAZ8W,aACAhR,EAAK9F,EAAL8F,MACAH,EAAS3F,EAAT2F,UACAgW,EAAoB3b,EAApB2b,qBACAC,EAAO5b,EAAP4b,QAWMnW,EAAIC,EAAU,CAAEI,MAAAA,IAChB+V,GAAyB3S,EAAAA,EAAAA,QAA8B,MAC7DC,GAA0CC,EAAAA,EAAAA,UAASoS,GAAqBnS,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAAjE2S,EAAazS,EAAA,GAAE0S,EAAgB1S,EAAA,GAEtC,OACIrD,EAAAA,EAAAA,MAACmO,EAAAA,EAAI,CACDxO,WAAWM,EAAAA,EAAAA,GAAaR,EAAEuW,iBAAkBrW,GAC5CsD,IAAK,SAACgT,GACFJ,EAAuBjS,QAAUqS,EAC7BN,GACAA,EAAqBM,EAE7B,EACAC,SAAU,SAAAC,GACNJ,EACIP,EACIpY,KAAKQ,MACAuY,EAAMC,OAA0B7Y,UAAY,IAG7D,EAAEhD,SAAA,CAED4U,EAAMhQ,KAAI,SAACmJ,EAAMgE,GACd,IAAM4I,EAAW5M,EAAKgH,UAAiB,OAANK,QAAM,IAANA,OAAM,EAANA,EAAQL,QACzC,OACKhD,EAAIwJ,GACDxJ,EAAIwJ,EAAuC,IAAvBN,KACvBN,GAIG7a,EAAAA,EAAAA,KAAA,OAAuBsF,UAAWF,EAAE4W,iBAA1B/N,EAAKgH,SAInBjV,EAAAA,EAAAA,KAACgV,EAAAA,EAAsB,CAEnBC,OAAQhH,EAAKgH,OAAO/U,UAEpBF,EAAAA,EAAAA,KAAC0a,EAAkB,CACfzM,KAAMA,EACN2F,KACI3B,GAAqB,WAAhBoJ,EAA2B,EAAIA,GAExC/F,OAAQA,EACRsF,oBAAqBY,EAAuBjS,QAC5CkN,aAAcA,EACdoE,SAAUA,EACVF,mBAAoC,WAAhBU,KAZnBpN,EAAKgH,OAgBtB,KACmB,IAAjBH,EAAMvS,QAAgBgZ,KACpBvb,EAAAA,EAAAA,KAACwE,EAAAA,EAAgB,CACbC,KAAM,GACNgB,MACqB,IAAjBqP,EAAMvS,OACA,CAAEwU,UAAW,KACb,CAAEhP,OAAQ,cAMxC,CACA,IAAM1C,GAAYgC,EAAAA,EAAAA,IAAiD,SAAA0H,GAAK,MAAK,CACzE4M,iBAAkB,SAAApb,GAAA,IAAGkF,EAAKlF,EAALkF,MAAK,OAAArF,EAAAA,EAAAA,GAAA,CACtB2H,OAAQ,EACRoH,gBAAiBJ,EAAME,QAAQC,KAAK,KACpC+M,UAAW,IACXrU,UAAW,IACXD,KAAM,EACNM,SAAU,QACViU,UAAW,SACXhU,SAAU,YACPzC,EAAK,EAEZuW,gBAAiB,CAAEnX,OAAQ,GAAIkD,OAAQ,GAC1C,G,kFC5GM,SAASiN,EAAsBrV,GAMlC,IALAsV,EAAMtV,EAANsV,OACA/U,EAAQP,EAARO,SAKA,OACIF,EAAAA,EAAAA,KAAA,OACImc,QAAS,YACLC,EAAAA,EAAAA,GAAmBnH,EACvB,EACA3P,UAAU,uBAAsBpF,SAE/BA,GAGb,C","sources":["common/privateConsts.ts","common/util/LazyLoad.tsx","common/util/Scroll/relativeScroll.ts","components/Articles/Articles/Top.tsx","components/shared/Animations/ColorChangeButton/index.tsx","components/shared/CharacterComment/index.tsx","components/shared/EllipsisLabel/EllipsisLabel.tsx","components/shared/FaceBook.tsx","components/shared/FolktaleMenu/index.tsx","components/shared/GoogleAd.tsx","components/shared/Link/LinkOrA.tsx","components/shared/User/UserAvatar/UserAvatar.tsx","components/zApps/Layout/Login/MyPage/useProgress.ts","components/zApps/zApps/parts/Ranking/LevelRanking/TopRanking/TopRankingRecord/TopRankingRecordPc.tsx","components/zApps/zApps/parts/Ranking/LevelRanking/TopRanking/TopRankingRecord/TopRankingRecordSp.tsx","components/zApps/zApps/parts/Ranking/LevelRanking/TopRanking/TopRankingRecord/index.tsx","components/zApps/zApps/parts/Ranking/LevelRanking/TopRanking/TopRanking.tsx","components/zApps/zApps/parts/Ranking/LevelRanking/index.tsx","components/zApps/zApps/Home.tsx","components/zApps/zApps/parts/Ranking/LevelRanking/BasicRanking/BasicRankingRecord.tsx","components/zApps/zApps/parts/Ranking/LevelRanking/BasicRanking/BasicRanking.tsx","components/zApps/zApps/parts/Ranking/LevelRanking/RankingRecordContainer.tsx"],"sourcesContent":["export const GOOGLE_ANALYTICS = \"UA-122613642-6\";\r\nexport const GOOGLE_ADS_CLIENT = \"ca-pub-8006404698960678\";\r\nexport const GOOGLE_ADS_SLOT = \"2560074548\";\r\nexport const LOG_TOKEN = \"d5(TaY(G*Z*C6T88_bz)9n6rus.vN4H-/gufqntxmg128\";\r\nexport const STRIPE_TEST_PUBLIC_KEY =\r\n \"pk_test_51LhhV3HweUPlZUIvprAPWnuvtH8SbyRzeIrS7unJzGNPN2ya3zVdrMmiCS0ByNJmFM8zyWdNPmTex0xVU9qnfGNp00HuzjH6Mj\";\r\nexport const STRIPE_PRODUCTION_PUBLIC_KEY =\r\n \"pk_live_51LhhV3HweUPlZUIvope4FfZ0jeF2hoOzoIkDKBKN7JDFItTSh2MzVkgpcje7MucjuzWAb9W2ToobUp3FW9CoVURg00oQmqnWcW\";\r\n","import { useEffect } from \"react\";\r\nimport ReactLazyLoad, { LazyLoadProps } from \"react-lazyload\";\r\n\r\nexport function LazyLoad({\r\n noLazy,\r\n ...rest\r\n}: LazyLoadProps & { noLazy?: boolean }) {\r\n if (noLazy) {\r\n return <>{rest.children};\r\n }\r\n return ;\r\n}\r\n\r\nexport function LazyExecutor({\r\n fnc,\r\n ...lazyLoadProps\r\n}: { fnc: () => void } & LazyLoadProps) {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport function Executor({ fnc }: { fnc: () => void }) {\r\n useEffect(() => {\r\n fnc();\r\n }, [fnc]);\r\n\r\n return null;\r\n}\r\n","import { sleepAsync } from \"../../functions\";\r\n\r\nexport async function relativeScroll(\r\n scrollableEl: HTMLDivElement,\r\n targetEl: HTMLElement,\r\n offset: number = 0,\r\n noSmooth?: boolean\r\n) {\r\n const startFromBottom = checkReachedBottom(scrollableEl);\r\n\r\n let timeToWait = 100;\r\n if (await checkScrolling(scrollableEl, timeToWait)) {\r\n return; // Don't disturb user's scroll operation\r\n }\r\n\r\n while (true) {\r\n if (timeToWait < 500) {\r\n timeToWait += 10;\r\n }\r\n\r\n const targetTop = targetEl.getBoundingClientRect().top;\r\n const scrollableTop = scrollableEl.getBoundingClientRect().top;\r\n const dif = scrollableTop + offset - targetTop;\r\n\r\n const reachedTarget = dif ** 2 < 3;\r\n const reachedBottom =\r\n !startFromBottom && checkReachedBottom(scrollableEl);\r\n\r\n if (reachedTarget || reachedBottom) {\r\n return;\r\n }\r\n\r\n const stillScrolling = await checkScrolling(scrollableEl, timeToWait);\r\n if (!stillScrolling) {\r\n scrollableEl.scrollTo({\r\n top:\r\n targetTop + scrollableEl.scrollTop - scrollableTop - offset,\r\n behavior: noSmooth ? undefined : \"smooth\",\r\n });\r\n }\r\n\r\n if (startFromBottom) {\r\n if (!(await checkScrolling(scrollableEl, timeToWait))) {\r\n return;\r\n }\r\n }\r\n console.log(\"scrolling\");\r\n }\r\n}\r\n\r\nfunction checkReachedBottom(scrollableEl: HTMLDivElement) {\r\n return (\r\n Math.floor(scrollableEl.scrollHeight) -\r\n Math.ceil(scrollableEl.offsetHeight) -\r\n Math.ceil(scrollableEl.scrollTop) <=\r\n 1\r\n );\r\n}\r\n\r\nasync function checkScrolling(\r\n scrollableEl: HTMLDivElement,\r\n timeToWait: number\r\n) {\r\n const previousScrollTop = scrollableEl.scrollTop;\r\n await sleepAsync(timeToWait);\r\n return scrollableEl.scrollTop !== previousScrollTop;\r\n}\r\n","import { makeStyles } from \"@material-ui/core/styles\";\r\nimport { CSSProperties, useEffect, useRef, useState } from \"react\";\r\nimport { Page } from \".\";\r\nimport { sleepAsync } from \"../../../common/functions\";\r\nimport { useScreenSize } from \"../../../common/hooks/useScreenSize\";\r\nimport { spaceBetween } from \"../../../common/util/Array/spaceBetween\";\r\nimport { LazyLoad } from \"../../../common/util/LazyLoad\";\r\nimport ShurikenProgress from \"../../shared/Animations/ShurikenProgress\";\r\nimport { AuthorCard } from \"../../shared/Author/Author\";\r\nimport { Author } from \"../../shared/Author/types\";\r\nimport { LinkOrA } from \"../../shared/Link/LinkOrA\";\r\nimport { ScrollBox } from \"../../shared/ScrollBox\";\r\n\r\nconst initialArticlesNumber = 10;\r\n\r\ninterface ArticlesListProps {\r\n articles: Page[];\r\n screenWidth: number;\r\n titleH: \"h2\" | \"h3\";\r\n allAuthors: Author[];\r\n}\r\nexport function ArticlesList({\r\n articles,\r\n screenWidth,\r\n titleH,\r\n allAuthors,\r\n}: ArticlesListProps) {\r\n if (articles.length <= 0) {\r\n return ;\r\n }\r\n\r\n const isWide = screenWidth > 767;\r\n\r\n const imgSize = isWide\r\n ? {\r\n width: \"100%\",\r\n height: \"100%\",\r\n }\r\n : { width: \"100%\" };\r\n\r\n return (\r\n <>\r\n {articles.map((page, index) => {\r\n const articleScroll = (\r\n \r\n );\r\n\r\n if (index < initialArticlesNumber) {\r\n return articleScroll;\r\n }\r\n return {articleScroll};\r\n })}\r\n \r\n );\r\n}\r\n\r\nconst url = \"https://articles.lingual-ninja.com/articles\";\r\n\r\nfunction ArticleScroll({\r\n page,\r\n isWide,\r\n imgSize,\r\n titleH,\r\n allAuthors,\r\n screenWidth,\r\n}: {\r\n page: Page;\r\n isWide: boolean;\r\n imgSize: CSSProperties;\r\n} & Omit) {\r\n const c = useStyles();\r\n\r\n return (\r\n
\r\n \r\n \r\n {page.imgPath && (\r\n
\r\n \r\n \r\n \r\n
\r\n )}\r\n \r\n
\r\n \r\n {titleH === \"h3\" ? (\r\n \r\n {page.title}\r\n \r\n ) : (\r\n \r\n {page.title}\r\n \r\n )}\r\n \r\n \r\n {page.description.length > 200\r\n ? page.description.slice(0, 200) + \"...\"\r\n : page.description}\r\n

\r\n
\r\n \r\n a.authorId === page.authorId\r\n )}\r\n style={{ borderRadius: 0 }}\r\n screenWidth={screenWidth}\r\n />\r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n}\r\nconst useStyles = makeStyles(() => ({\r\n article: {\r\n marginBottom: 45,\r\n textAlign: \"left\",\r\n maxWidth: 900,\r\n },\r\n divInScroll: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n },\r\n wideDivInScroll: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n },\r\n imgContainer: {\r\n display: \"block\",\r\n flex: 1,\r\n maxHeight: 250,\r\n overflow: \"hidden\",\r\n },\r\n articleInfoBlock: {\r\n flex: 1,\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n justifyContent: \"space-between\",\r\n margin: \"10px 5px\",\r\n alignItems: \"flex-start\",\r\n },\r\n wideArticleInfoBlock: {\r\n flex: 1,\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n justifyContent: \"space-between\",\r\n margin: \"0 0 10px 20px\",\r\n alignItems: \"flex-end\",\r\n },\r\n pageTitle: {\r\n fontSize: \"x-large\",\r\n },\r\n widePageTitle: {\r\n fontSize: 27,\r\n },\r\n description: {\r\n fontSize: \"medium\",\r\n margin: 0,\r\n },\r\n wideDescription: {\r\n margin: 0,\r\n },\r\n authorCardContainer: {\r\n position: \"relative\",\r\n top: 10,\r\n left: -5,\r\n display: \"flex\",\r\n justifyContent: \"flex-start\",\r\n },\r\n wideAuthorCardContainer: {\r\n position: \"relative\",\r\n top: 10,\r\n left: 0,\r\n display: \"flex\",\r\n justifyContent: \"flex-start\",\r\n },\r\n}));\r\n\r\nfunction ArticleImg({ page, imgSize }: { page: Page; imgSize: CSSProperties }) {\r\n if (\r\n page.imgPath?.endsWith(\"/hqdefault.jpg\") ||\r\n page.imgPath?.endsWith(\"/0.jpg\")\r\n ) {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n );\r\n}\r\n\r\nfunction TrimmedImg({ page, imgSize }: { page: Page; imgSize: CSSProperties }) {\r\n const ref = useRef(null);\r\n const [height, setHeight] = useState(120);\r\n\r\n const { screenWidth } = useScreenSize();\r\n useEffect(() => {\r\n sleepAsync(500).then(() => {\r\n const currentWidth = ref.current?.width;\r\n if (currentWidth) {\r\n setHeight((currentWidth * 9) / 16 - 2);\r\n }\r\n });\r\n }, [screenWidth]);\r\n\r\n return (\r\n \r\n );\r\n}\r\n","import { makeStyles, Theme } from \"@material-ui/core/styles\";\r\nimport { BaseCSSProperties } from \"@material-ui/core/styles/withStyles\";\r\nimport * as React from \"react\";\r\nimport { useEffect, useState } from \"react\";\r\nimport Button from \"reactstrap/lib/Button\";\r\nimport { spaceBetween } from \"../../../../common/util/Array/spaceBetween\";\r\nimport \"./style.css\";\r\n\r\ninterface FolktaleMenuProps {\r\n label: React.ReactNode;\r\n initialColor?: typeof buttonColor[ButtonKey];\r\n size?: string;\r\n style?: BaseCSSProperties;\r\n}\r\nconst buttonColor = { 1: \"secondary\", 2: \"success\", 3: \"primary\" } as const;\r\nconst arrColors = Object.values(buttonColor);\r\ntype ButtonKey = keyof typeof buttonColor;\r\nexport const ColorChangeButton = ({\r\n label,\r\n initialColor,\r\n size,\r\n style,\r\n}: FolktaleMenuProps) => {\r\n const [buttonKey, setButtonKey] = useState(1);\r\n\r\n useEffect(() => {\r\n if (!initialColor || !arrColors.indexOf(initialColor)) {\r\n return;\r\n }\r\n const initialColorKey = initialColor\r\n ? ((arrColors.indexOf(initialColor) + 1) as ButtonKey)\r\n : 1;\r\n setButtonKey(initialColorKey);\r\n }, [initialColor]);\r\n\r\n useEffect(() => {\r\n const timerId = window.setTimeout(() => {\r\n const nextKey = (buttonKey - 1 || 3) as ButtonKey;\r\n setButtonKey(nextKey);\r\n }, 3000);\r\n return () => clearTimeout(timerId);\r\n }, [buttonKey]);\r\n\r\n const c = useStyles({ style });\r\n\r\n return (\r\n \r\n {label}\r\n \r\n );\r\n};\r\nconst useStyles = makeStyles({\r\n button: ({ style }) => ({ ...style }),\r\n});\r\n","import { makeStyles, Theme } from \"@material-ui/core/styles\";\r\nimport { BaseCSSProperties } from \"@material-ui/core/styles/withStyles\";\r\nimport * as React from \"react\";\r\nimport * as consts from \"../../../common/consts\";\r\nimport { spaceBetween } from \"../../../common/util/Array/spaceBetween\";\r\nimport \"./CharacterComment.css\";\r\n\r\ntype TProps = {\r\n imgNumber: number;\r\n screenWidth: number;\r\n comment: string | React.ReactNode;\r\n style?: BaseCSSProperties;\r\n commentStyle?: BaseCSSProperties;\r\n imgStyle?: BaseCSSProperties;\r\n containerRef?: React.RefObject;\r\n className?: string;\r\n};\r\nexport default function CharacterComment(props: TProps) {\r\n const {\r\n imgNumber,\r\n screenWidth,\r\n comment,\r\n style,\r\n commentStyle,\r\n imgStyle,\r\n containerRef,\r\n className,\r\n } = props;\r\n const c = useStyles({ style, imgStyle, screenWidth, commentStyle });\r\n\r\n return (\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n {comment}\r\n
\r\n
\r\n \r\n );\r\n}\r\nconst useStyles = makeStyles<\r\n Theme,\r\n {\r\n style?: BaseCSSProperties;\r\n imgStyle?: BaseCSSProperties;\r\n commentStyle?: BaseCSSProperties;\r\n screenWidth: number;\r\n }\r\n>({\r\n container: ({ style }) => ({ ...style }),\r\n ninjaPic: ({ imgStyle, screenWidth }) => ({\r\n width: (screenWidth * 2) / 10,\r\n ...imgStyle,\r\n }),\r\n comment: ({ screenWidth, commentStyle }) => ({\r\n width: screenWidth > 767 ? (screenWidth * 7) / 10 - 15 : \"100%\",\r\n ...commentStyle,\r\n }),\r\n});\r\n","import { makeStyles, Theme } from \"@material-ui/core/styles\";\r\nimport { BaseCSSProperties } from \"@material-ui/core/styles/withStyles\";\r\nimport { TooltipProps } from \"@material-ui/core/Tooltip\";\r\nimport { useEffect, useRef, useState } from \"react\";\r\nimport { useScreenSize } from \"../../../common/hooks/useScreenSize\";\r\nimport { Tooltip } from \"../Tooltip\";\r\n\r\nexport const EllipsisLabel = ({\r\n title,\r\n placement,\r\n style,\r\n tooltipProps,\r\n}: {\r\n title: string;\r\n placement?: TooltipProps[\"placement\"];\r\n style?: BaseCSSProperties;\r\n tooltipProps?: Partial;\r\n}) => {\r\n const c = useStyles({ style });\r\n\r\n const textElementRef = useRef(null);\r\n const [trimmedTitle, setTrimmedTitle] = useState(title);\r\n const { screenWidth } = useScreenSize();\r\n\r\n const isOverflowed = title !== trimmedTitle;\r\n\r\n useEffect(() => {\r\n setTrimmedTitle(title);\r\n }, [title, screenWidth]);\r\n\r\n useEffect(() => {\r\n if (!textElementRef.current) {\r\n return;\r\n }\r\n\r\n if (\r\n textElementRef.current.scrollWidth >\r\n textElementRef.current.clientWidth\r\n ) {\r\n setTrimmedTitle(trimmedTitle.slice(0, -1).trim());\r\n }\r\n }, [trimmedTitle]);\r\n\r\n return (\r\n \r\n
\r\n {trimmedTitle}\r\n {isOverflowed && \"...\"}\r\n
\r\n \r\n );\r\n};\r\nconst useStyles = makeStyles({\r\n div: ({ style }) => ({\r\n whiteSpace: \"nowrap\",\r\n overflow: \"hidden\",\r\n textOverflow: \"ellipsis\", // just in case where the calculation doesn't work well\r\n ...style,\r\n }),\r\n});\r\n","import * as React from \"react\";\r\nimport { CSSProperties } from \"react\";\r\n\r\ninterface Props {\r\n style?: CSSProperties;\r\n}\r\nexport default function FB(props: Props) {\r\n const { style } = props;\r\n\r\n const innerWidth = window.innerWidth;\r\n let width: number;\r\n if (innerWidth > 350) {\r\n width = 350;\r\n } else {\r\n width = 300;\r\n }\r\n const height = 200;\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n}\r\n","import { makeStyles, Theme } from \"@material-ui/core/styles\";\r\nimport { BaseCSSProperties } from \"@material-ui/core/styles/withStyles\";\r\nimport { BLOB_URL, Z_APPS_TOP_URL } from \"../../../common/consts\";\r\nimport { ColorChangeButton } from \"../Animations/ColorChangeButton\";\r\nimport { ATargetBlank } from \"../Link/ATargetBlank\";\r\nimport { Link } from \"../Link/LinkWithYouTube\";\r\nimport { ScrollBox } from \"../ScrollBox\";\r\n\r\ninterface FolktaleMenuProps {\r\n screenWidth: number;\r\n style?: BaseCSSProperties;\r\n targetBlank?: boolean;\r\n}\r\nexport const FolktaleMenu = ({\r\n screenWidth,\r\n style,\r\n targetBlank,\r\n}: FolktaleMenuProps) => {\r\n const isWide = screenWidth > 991;\r\n\r\n const c = useStyles({ isWide });\r\n\r\n const title =

Learn Japanese from Folktales

;\r\n const image = (\r\n \r\n );\r\n const btn = (\r\n \r\n );\r\n\r\n let titleLink,\r\n imageLink,\r\n btnLink = null;\r\n if (targetBlank) {\r\n const folktaleUrl = `${Z_APPS_TOP_URL}/folktales`;\r\n titleLink = {title};\r\n imageLink = (\r\n \r\n {image}\r\n \r\n );\r\n btnLink = (\r\n \r\n {btn}\r\n \r\n );\r\n } else {\r\n titleLink = {title};\r\n imageLink = (\r\n \r\n {image}\r\n \r\n );\r\n btnLink = (\r\n \r\n {btn}\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n {titleLink}\r\n
\r\n
{imageLink}
\r\n
\r\n
\r\n A web app to learn Japanese from folktales. You can read\r\n traditional Japanese folktales in English, Hiragana,\r\n Kanji, and Romaji!\r\n
\r\n
{btnLink}
\r\n
\r\n
\r\n
\r\n );\r\n};\r\nconst useStyles = makeStyles({\r\n imgContainer: ({ isWide }) =>\r\n isWide\r\n ? { display: \"flex\", justifyContent: \"center\" }\r\n : { margin: \"10px 0\" },\r\n momotaroImg: { width: \"100%\", objectFit: \"contain\" },\r\n innerBox: ({ isWide }) => ({\r\n display: \"flex\",\r\n flexDirection: isWide ? \"row\" : \"column\",\r\n }),\r\n explanation: ({ isWide }) => ({\r\n fontSize: \"large\",\r\n textAlign: \"left\",\r\n padding: isWide ? 25 : \"10px 0 20px\",\r\n }),\r\n btnLink: {\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n },\r\n});\r\n","import { makeStyles, Theme } from \"@material-ui/core/styles\";\r\nimport { BaseCSSProperties } from \"@material-ui/core/styles/withStyles\";\r\nimport GoogleAds from \"react-google-ads\";\r\nimport { useAppState } from \"../../common/appState\";\r\nimport { adminUserId } from \"../../common/consts\";\r\nimport { GOOGLE_ADS_CLIENT, GOOGLE_ADS_SLOT } from \"../../common/privateConsts\";\r\nimport { spaceBetween } from \"../../common/util/Array/spaceBetween\";\r\n\r\ninterface Props {\r\n className?: string;\r\n style?: BaseCSSProperties;\r\n}\r\n\r\nexport function GoogleAd({ className, style }: Props) {\r\n return null;\r\n\r\n const [user] = useAppState(\"user\");\r\n const c = useStyles(style ?? {});\r\n\r\n return (\r\n \r\n );\r\n}\r\nconst useStyles = makeStyles({\r\n aside: style => ({ ...style }),\r\n});\r\n","import React, { AnchorHTMLAttributes } from \"react\";\r\nimport { LinkProps } from \"react-router-dom\";\r\nimport { ATargetBlank } from \"./ATargetBlank\";\r\nimport { Link } from \"./LinkWithYouTube\";\r\n\r\nexport function LinkOrA(\r\n props:\r\n | AnchorHTMLAttributes\r\n | (LinkProps & { href: string })\r\n) {\r\n const { href, ...rest } = props;\r\n if (!href) {\r\n return null;\r\n }\r\n\r\n if (href.startsWith(\"https://\")) {\r\n return ;\r\n }\r\n return ;\r\n}\r\n","import Avatar, { AvatarProps } from \"@material-ui/core/Avatar\";\r\nimport { makeStyles, Theme } from \"@material-ui/core/styles\";\r\nimport PersonIcon from \"@material-ui/icons/Person\";\r\nimport { RefObject } from \"react\";\r\nimport { spaceBetween } from \"../../../../common/util/Array/spaceBetween\";\r\nimport { theme } from \"../../../zApps/Layout\";\r\nimport { User, UserForRanking } from \"../types\";\r\n\r\ninterface Props extends AvatarProps {\r\n user: User | UserForRanking | undefined;\r\n colorNumber: number | \"noColor\";\r\n size: number;\r\n icon300?: boolean;\r\n avatarRef?: RefObject;\r\n}\r\n\r\nexport function UserAvatar({\r\n user,\r\n colorNumber,\r\n size,\r\n className,\r\n icon300,\r\n avatarRef,\r\n ...rest\r\n}: Props) {\r\n const c = useStyles({ size, colorNumber });\r\n\r\n if (user?.avatarPath) {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nconst colors = [\r\n \"#DC7633\",\r\n theme.palette.primary.light,\r\n theme.palette.success.main,\r\n theme.palette.secondary.light,\r\n \"#8E44AD\",\r\n \"#EC7063\",\r\n \"#34495E\",\r\n \"#5499C7\",\r\n \"#D4AC0D\",\r\n];\r\n\r\nconst useStyles = makeStyles<\r\n Theme,\r\n { size: number; colorNumber: number | \"noColor\" }\r\n>(theme => ({\r\n imgAvatar: ({ size }) => ({\r\n width: size,\r\n height: size,\r\n boxShadow: `0 0 3px ${theme.palette.grey[400]}`,\r\n }),\r\n img: ({ size }) => ({\r\n objectFit: \"cover\",\r\n objectPosition: \"50% 50%\",\r\n width: size,\r\n height: size,\r\n }),\r\n iconAvatar: ({ size, colorNumber }) => ({\r\n width: size,\r\n height: size,\r\n backgroundColor:\r\n colorNumber === \"noColor\"\r\n ? undefined\r\n : colors[colorNumber % colors.length],\r\n }),\r\n icon: ({ size }) => ({\r\n width: size * 0.8,\r\n height: size * 0.8,\r\n }),\r\n}));\r\n","import { useEffect, useState } from \"react\";\r\nimport { vocabGenre } from \"../../../../../types/vocab\";\r\nimport { getKanaPercentage } from \"../../../zApps/parts/KanaQuiz/kanaProgress\";\r\nimport { getGrammarSaveKey, sFetchAllGrammar } from \"./progressManager/grammar\";\r\nimport \"./style.css\";\r\n\r\nexport function useProgress(\r\n loadAllGenres: () => void,\r\n allGenres: vocabGenre[]\r\n) {\r\n const [kanaProgress, setKanaProgress] = useState(0);\r\n const [hiraganaProgress, setHiraganaProgress] = useState(0);\r\n const [katakanaProgress, setKatakanaProgress] = useState(0);\r\n const [vocabProgress, setVocabProgress] = useState(0);\r\n const [kanjiProgress, setKanjiProgress] = useState(0);\r\n const [enToHiraganaProgress, setEnToHiraganaProgress] = useState(0);\r\n const [enToKanjiProgress, setEnToKanjiProgress] = useState(0);\r\n const [vocabListProgress, setVocabListProgress] = useState(0);\r\n const [actionGameProgress, setActionGameProgress] = useState(0);\r\n const [grammarProgress, setGrammarProgress] = useState(0);\r\n\r\n useEffect(() => {\r\n loadAllGenres();\r\n\r\n const hiraganaPercentage = getKanaPercentage(\"Hiragana\");\r\n const katakanaPercentage = getKanaPercentage(\"Katakana\");\r\n\r\n setHiraganaProgress(hiraganaPercentage);\r\n setKatakanaProgress(katakanaPercentage);\r\n setKanaProgress(\r\n Math.floor(\r\n (getKanaPercentage(\"Hiragana\") +\r\n getKanaPercentage(\"Katakana\")) /\r\n 2\r\n )\r\n );\r\n setActionGameProgress(\r\n [1, 2, 3]\r\n .map(i => localStorage.getItem(`action-game${i}-progress`))\r\n .filter(p => p).length\r\n );\r\n }, [loadAllGenres]);\r\n\r\n useEffect(() => {\r\n const { vocab, kanji, enToHiragana, enToKanji } =\r\n getVocabPercentage(allGenres);\r\n\r\n setVocabProgress(Math.floor(vocab));\r\n setKanjiProgress(Math.floor(kanji));\r\n setEnToHiraganaProgress(Math.floor(enToHiragana));\r\n setEnToKanjiProgress(Math.floor(enToKanji));\r\n\r\n setVocabListProgress(\r\n Math.floor((vocab + kanji + enToHiragana + enToKanji) / 4)\r\n );\r\n }, [allGenres.length]);\r\n\r\n useEffect(() => {\r\n sFetchAllGrammar().then(g => {\r\n const sum = g.reduce(\r\n (acc, val) =>\r\n acc +\r\n (Number(\r\n localStorage.getItem(getGrammarSaveKey(val.path))\r\n ) || 0),\r\n 0\r\n );\r\n setGrammarProgress(Math.floor(sum / g.length));\r\n });\r\n }, []);\r\n\r\n const totalProgress = Math.floor(\r\n (hiraganaProgress +\r\n katakanaProgress +\r\n vocabProgress +\r\n enToHiraganaProgress +\r\n enToKanjiProgress +\r\n kanjiProgress +\r\n grammarProgress) /\r\n 7\r\n );\r\n\r\n useEffect(() => {\r\n localStorage.setItem(\"user_totalProgress\", totalProgress.toString());\r\n }, [totalProgress]);\r\n\r\n return {\r\n kanaProgress,\r\n hiraganaProgress,\r\n katakanaProgress,\r\n vocabProgress,\r\n enToHiraganaProgress,\r\n enToKanjiProgress,\r\n kanjiProgress,\r\n vocabListProgress,\r\n actionGameProgress,\r\n grammarProgress,\r\n totalProgress,\r\n };\r\n}\r\n\r\nfunction getVocabPercentage(allVocabGenres: vocabGenre[]): {\r\n vocab: number;\r\n kanji: number;\r\n enToHiragana: number;\r\n enToKanji: number;\r\n} {\r\n const { vocab, kanji, enToHiragana, enToKanji } = allVocabGenres.reduce(\r\n (acc, { genreId }) => ({\r\n vocab:\r\n acc.vocab +\r\n Number(\r\n localStorage.getItem(`vocab-quiz-percentage-${genreId}`)\r\n ),\r\n kanji:\r\n acc.kanji +\r\n Number(\r\n localStorage.getItem(`kanji-quiz-percentage-${genreId}`)\r\n ),\r\n enToHiragana:\r\n acc.enToHiragana +\r\n Number(\r\n localStorage.getItem(\r\n `EnToHiragana-quiz-percentage-${genreId}`\r\n )\r\n ),\r\n enToKanji:\r\n acc.enToKanji +\r\n Number(\r\n localStorage.getItem(`EnToKanji-quiz-percentage-${genreId}`)\r\n ),\r\n }),\r\n { vocab: 0, kanji: 0, enToHiragana: 0, enToKanji: 0 }\r\n );\r\n\r\n return {\r\n vocab: vocab / allVocabGenres.length,\r\n kanji: kanji / allVocabGenres.length,\r\n enToHiragana: enToHiragana / allVocabGenres.length,\r\n enToKanji: enToKanji / allVocabGenres.length,\r\n };\r\n}\r\n","import Card from \"@material-ui/core/Card\";\r\nimport { makeStyles, Theme } from \"@material-ui/core/styles\";\r\nimport { appsPublicImg } from \"../../../../../../../../common/consts\";\r\nimport { EllipsisLabel } from \"../../../../../../../shared/EllipsisLabel/EllipsisLabel\";\r\nimport { UserForRanking } from \"../../../../../../../shared/User/types\";\r\nimport { UserAvatar } from \"../../../../../../../shared/User/UserAvatar/UserAvatar\";\r\n\r\nexport function TopRankingRecordPc({\r\n user,\r\n rank,\r\n isVeryWide,\r\n}: {\r\n user: UserForRanking;\r\n rank: number;\r\n isVeryWide: boolean;\r\n}) {\r\n const c = useStyles({ isVeryWide });\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n containerCard: {\r\n margin: 5,\r\n display: \"flex\",\r\n padding: 5,\r\n height: 105,\r\n },\r\n trophyAndAvatar: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n marginRight: 20,\r\n },\r\n trophyContainer: {\r\n height: 95,\r\n width: 95,\r\n backgroundColor: theme.palette.grey[200],\r\n marginLeft: 0,\r\n marginRight: 20,\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n },\r\n trophyImg: { width: 85, height: 85 },\r\n nameAndLevel: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"space-around\",\r\n width: \"100%\",\r\n fontSize: \"1.3rem\",\r\n },\r\n name: ({ isVeryWide }) => ({\r\n width: isVeryWide ? 200 : 160,\r\n overflow: \"hidden\",\r\n paddingRight: 10,\r\n }),\r\n level: { width: 80, overflow: \"hidden\" },\r\n}));\r\n","import Card from \"@material-ui/core/Card\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { appsPublicImg } from \"../../../../../../../../common/consts\";\r\nimport { UserForRanking } from \"../../../../../../../shared/User/types\";\r\nimport { UserAvatar } from \"../../../../../../../shared/User/UserAvatar/UserAvatar\";\r\n\r\nexport function TopRankingRecordSp({\r\n user,\r\n rank,\r\n}: {\r\n user: UserForRanking;\r\n rank: number;\r\n}) {\r\n const c = useStyles();\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
{user.name}
\r\n
Lv. {user.level}
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n containerCard: {\r\n margin: 5,\r\n display: \"flex\",\r\n padding: 5,\r\n height: 105,\r\n },\r\n trophyAndAvatar: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n marginRight: 10,\r\n },\r\n trophyContainer: {\r\n height: 95,\r\n width: 95,\r\n backgroundColor: theme.palette.grey[200],\r\n marginLeft: 0,\r\n marginRight: 15,\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n },\r\n trophyImg: { width: 85, height: 85 },\r\n nameAndLevelContainer: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n width: \"100%\",\r\n fontSize: \"1.3rem\",\r\n wordBreak: \"break-all\",\r\n marginRight: 5,\r\n },\r\n}));\r\n","import { UserForRanking } from \"../../../../../../../shared/User/types\";\r\nimport { TopRankingRecordPc } from \"./TopRankingRecordPc\";\r\nimport { TopRankingRecordSp } from \"./TopRankingRecordSp\";\r\n\r\nexport function TopRankingRecord({\r\n user,\r\n rank,\r\n isWide,\r\n isVeryWide,\r\n}: {\r\n user: UserForRanking;\r\n rank: number;\r\n isWide: boolean;\r\n isVeryWide: boolean;\r\n}) {\r\n if (isWide) {\r\n return (\r\n \r\n );\r\n }\r\n return ;\r\n}\r\n","import Card from \"@material-ui/core/Card\";\r\nimport { Theme, makeStyles } from \"@material-ui/core/styles\";\r\nimport { UserForRanking } from \"../../../../../../shared/User/types\";\r\nimport { RankingRecordContainer } from \"../RankingRecordContainer\";\r\nimport { TopRankingRecord } from \"./TopRankingRecord\";\r\n\r\nexport function TopRanking({\r\n users,\r\n isWide,\r\n isVeryWide,\r\n}: {\r\n users: UserForRanking[];\r\n isWide: boolean;\r\n isVeryWide: boolean;\r\n}) {\r\n const c = useStyles({ isWide });\r\n return (\r\n \r\n {users.map((user, i) => (\r\n \r\n \r\n \r\n ))}\r\n \r\n );\r\n}\r\nconst useStyles = makeStyles(theme => ({\r\n topRankingCard: {\r\n margin: 5,\r\n backgroundColor: theme.palette.grey[100],\r\n height: 335,\r\n flex: 1,\r\n fontSize: \"large\",\r\n fontWeight: \"bold\",\r\n },\r\n}));\r\n","import Collapse from \"@material-ui/core/Collapse\";\r\nimport { Theme, makeStyles } from \"@material-ui/core/styles\";\r\nimport { useEffect, useMemo, useState } from \"react\";\r\nimport { useUser } from \"../../../../../../common/hooks/useUser\";\r\nimport { sFetchJson } from \"../../../../../../common/util/sFetchJson\";\r\nimport { UserForRanking } from \"../../../../../shared/User/types\";\r\nimport { BasicRanking } from \"./BasicRanking/BasicRanking\";\r\nimport { TopRanking } from \"./TopRanking/TopRanking\";\r\n\r\nconst maxRanking = 99;\r\n\r\nexport function LevelRanking({\r\n screenWidth,\r\n isWide,\r\n}: {\r\n screenWidth: number;\r\n isWide: boolean;\r\n}) {\r\n const { collapseOpen, topUsers, normalUsers, player, isVeryWide } =\r\n useUsersForRanking(screenWidth);\r\n\r\n const c = useStyles({ isWide });\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n );\r\n}\r\nconst useStyles = makeStyles({\r\n container: ({ isWide }) => ({\r\n display: \"flex\",\r\n flexDirection: isWide ? \"row\" : \"column\",\r\n marginTop: 15,\r\n }),\r\n});\r\n\r\nfunction useUsersForRanking(screenWidth: number) {\r\n const isVeryWide = screenWidth > 1199;\r\n\r\n const { user: player } = useUser();\r\n\r\n const [_users, setUsers] = useState([]);\r\n useEffect(() => {\r\n sFetchJson(\r\n \"api/User/GetUsersForRanking?maxRanking=\" + maxRanking,\r\n setUsers\r\n ).then(setUsers);\r\n }, []);\r\n\r\n // When the user update their profile, the ranking will also change\r\n const users = useMemo(() => {\r\n if (!player) {\r\n return _users;\r\n }\r\n if (_users.some(u => u.userId === player.userId)) {\r\n return _users\r\n .map(u => (u.userId === player.userId ? player : u))\r\n .sort((a, b) => b.xp - a.xp);\r\n }\r\n return [..._users, player]\r\n .sort((a, b) => b.xp - a.xp)\r\n .slice(0, maxRanking);\r\n }, [player, _users]);\r\n\r\n const [user1, user2, user3, ...normalUsers] = users;\r\n const topUsers = user3 ? [user1, user2, user3] : [];\r\n\r\n const collapseOpen = users.length > 0;\r\n\r\n return { collapseOpen, topUsers, normalUsers, player, isVeryWide };\r\n}\r\n","import { makeStyles } from \"@material-ui/core/styles\";\r\nimport { useEffect, useState } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport Button from \"reactstrap/lib/Button\";\r\nimport Card from \"reactstrap/lib/Card\";\r\nimport CardText from \"reactstrap/lib/CardText\";\r\nimport CardTitle from \"reactstrap/lib/CardTitle\";\r\nimport { bindActionCreators } from \"redux\";\r\nimport { ARTICLES_URL } from \"../../../common/consts\";\r\nimport { useScreenSize } from \"../../../common/hooks/useScreenSize\";\r\nimport { spaceBetween } from \"../../../common/util/Array/spaceBetween\";\r\nimport { sFetchJson } from \"../../../common/util/sFetchJson\";\r\nimport \"../../../css/Home.css\";\r\nimport * as vocabStore from \"../../../store/VocabQuizStore\";\r\nimport { ApplicationState } from \"../../../store/configureStore\";\r\nimport { Page } from \"../../Articles/Articles\";\r\nimport { ArticlesList } from \"../../Articles/Articles/Top\";\r\nimport { SeasonAnimation } from \"../../shared/Animations/SeasonAnimation\";\r\nimport { AuthorArea, AuthorName } from \"../../shared/Author/Author\";\r\nimport { Author } from \"../../shared/Author/types\";\r\nimport CharacterComment from \"../../shared/CharacterComment\";\r\nimport FB from \"../../shared/FaceBook\";\r\nimport { FolktaleMenu } from \"../../shared/FolktaleMenu\";\r\nimport { GoogleAd } from \"../../shared/GoogleAd\";\r\nimport Helmet from \"../../shared/Helmet\";\r\nimport { ATargetBlank } from \"../../shared/Link/ATargetBlank\";\r\nimport { Link } from \"../../shared/Link/LinkWithYouTube\";\r\nimport { useProgress } from \"../Layout/Login/MyPage/useProgress\";\r\nimport { LevelRanking } from \"./parts/Ranking/LevelRanking\";\r\n\r\nconst imgNumber = getImgNumber();\r\n\r\ntype InnerProps = vocabStore.IVocabQuizState & vocabStore.ActionCreators;\r\n\r\nfunction Home({ loadAllGenres, allGenres }: InnerProps) {\r\n const {\r\n kanaProgress,\r\n vocabListProgress,\r\n enToHiraganaProgress,\r\n enToKanjiProgress,\r\n kanjiProgress,\r\n vocabProgress,\r\n actionGameProgress,\r\n grammarProgress,\r\n } = useProgress(loadAllGenres, allGenres);\r\n\r\n const { screenWidth } = useScreenSize();\r\n const [articles, setArticles] = useState([]);\r\n const [allAuthors, setAllAuthors] = useState([]);\r\n\r\n const isWide = screenWidth > 991;\r\n\r\n const c = useUpperCardsStyles();\r\n const hc = useHomeStyles({ isWide });\r\n\r\n useEffect(() => {\r\n fetchArticles(setArticles, setAllAuthors);\r\n }, []);\r\n\r\n return (\r\n
\r\n \r\n
\r\n

\r\n Welcome to{\" \"}\r\n Lingual Ninja!\r\n

\r\n\r\n \r\n Free web app to learn Japanese,\r\n
\r\n made by .\r\n
I hope you enjoy!\r\n \r\n }\r\n />\r\n\r\n \r\n\r\n
\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n Kanji Converter\r\n \r\n \r\n A converter to change Kanji to Hiragana and\r\n Romaji. Use to know how to read Kanji!\r\n \r\n \r\n Try!\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n Romaji Converter\r\n \r\n \r\n A converter to change Hiragana and Katakana\r\n to Romaji. Use when you need to know Romaji!\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Articles about Japan\r\n \r\n \r\n
\r\n \r\n {\"More articles about Japan >>\"}\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n );\r\n}\r\nconst useHomeStyles = makeStyles({\r\n alignCenter: { textAlign: \"center\" },\r\n topTitle: { lineHeight: \"1.3 !important\", fontWeight: 600 },\r\n convertersContainer: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n },\r\n wideConvertersContainer: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n },\r\n articlesSection: {\r\n marginLeft: \"auto\",\r\n marginRight: \"auto\",\r\n maxWidth: 900,\r\n },\r\n articlesAboutJapanTitle: { marginBottom: 55, textAlign: \"center\" },\r\n moreArticlesContainer: { textAlign: \"center\", marginBottom: 50 },\r\n});\r\n\r\nasync function fetchArticles(\r\n setArticles: (articles: Page[]) => void,\r\n setAuthors: (authors: Author[]) => void\r\n) {\r\n const url = \"api/Articles/GetRandomArticles?num=100\";\r\n const articles = await sFetchJson(url);\r\n\r\n setArticles(articles);\r\n\r\n const allAuthors = await sFetchJson(\"api/Articles/GetAllAuthors\");\r\n setAuthors(allAuthors);\r\n}\r\n\r\ntype UpperCardsProps = {\r\n isWide: boolean;\r\n kanaProgress: number;\r\n vocabListProgress: number;\r\n vocabProgress: number;\r\n actionGameProgress: number;\r\n grammarProgress: number;\r\n};\r\n\r\nfunction UpperCards({\r\n isWide,\r\n kanaProgress,\r\n vocabListProgress,\r\n vocabProgress,\r\n actionGameProgress,\r\n grammarProgress,\r\n}: UpperCardsProps) {\r\n const c = useUpperCardsStyles();\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n \r\n Hiragana / Katakana\r\n \r\n \r\n A web app to remember Hiragana and Katakana! Let's\r\n test your memory of Hiragana and Katakana!\r\n \r\n
\r\n {\"Your progress:\"}\r\n \r\n \r\n {kanaProgress}%\r\n \r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n Japanese Vocab List\r\n \r\n \r\n Basic Japanese Vocabulary List! Try to memorize all\r\n the vocabulary by using the quizzes!\r\n \r\n
\r\n {\"Your progress:\"}\r\n \r\n \r\n {vocabListProgress}%\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n Japanese Vocab Quiz\r\n \r\n \r\n A web app to learn basic Japanese vocabulary!\r\n {!isWide &&\r\n \" Try to get a perfect score on all the quizzes!\"}\r\n \r\n
\r\n {\"Your progress:\"}\r\n \r\n \r\n {vocabProgress}%\r\n \r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n Japanese Grammar\r\n \r\n \r\n Get a perfect score on all the tests after watching\r\n the video lessons!\r\n \r\n
\r\n {\"Your progress:\"}\r\n \r\n \r\n {grammarProgress}%\r\n \r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n Action Game\r\n \r\n \r\n Action game! Be a Ninja, and collect the scrolls in\r\n Japan!\r\n {!isWide &&\r\n \" Save the village by defeating the enemies!\"}\r\n \r\n
\r\n
\r\n {\"Your progress:\"}\r\n \r\n \r\n {`${actionGameProgress}/3`}\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n );\r\n}\r\nconst useUpperCardsStyles = makeStyles(() => ({\r\n container: {\r\n marginTop: 30,\r\n marginBottom: 35,\r\n },\r\n wideContainer: {\r\n marginTop: 30,\r\n marginBottom: 50,\r\n },\r\n cardsGroup: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n },\r\n wideCardsGroup: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n },\r\n cardLink: {\r\n margin: 5,\r\n flex: 1,\r\n textDecoration: \"none\",\r\n \"&:hover\": {\r\n textDecoration: \"none\",\r\n },\r\n },\r\n kanaCard: {\r\n backgroundColor: \"#333\",\r\n borderColor: \"#333\",\r\n color: \"white\",\r\n height: \"100%\",\r\n },\r\n cardTitle: {\r\n fontSize: \"x-large\",\r\n },\r\n actionGameCard: {\r\n backgroundColor: \"#333\",\r\n borderColor: \"#333\",\r\n color: \"white\",\r\n height: \"100%\",\r\n },\r\n cardText: { position: \"relative\", top: 5 },\r\n marginTopAuto: { marginTop: \"auto\" },\r\n progressNumber: {\r\n fontWeight: \"bold\",\r\n paddingLeft: 7,\r\n fontSize: \"x-large\",\r\n },\r\n progressContainer: {\r\n fontSize: \"large\",\r\n marginBottom: 25,\r\n },\r\n}));\r\n\r\ntype LowerCardsProps = {\r\n isWide: boolean;\r\n enToHiraganaProgress: number;\r\n enToKanjiProgress: number;\r\n kanjiProgress: number;\r\n};\r\n\r\nfunction LowerCards({\r\n isWide,\r\n enToHiraganaProgress,\r\n enToKanjiProgress,\r\n kanjiProgress,\r\n}: LowerCardsProps) {\r\n const c = useLowerCardsStyles();\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n \r\n English to Hiragana Quiz\r\n \r\n
\r\n
\r\n {\"Your progress:\"}\r\n \r\n \r\n {enToHiraganaProgress}%\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n\r\n \r\n \r\n \r\n English to Kanji Quiz\r\n \r\n
\r\n {\"Your progress:\"}\r\n \r\n \r\n {enToKanjiProgress}%\r\n \r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n Kanji to Hiragana Quiz\r\n \r\n
\r\n {\"Your progress:\"}\r\n \r\n \r\n {kanjiProgress}%\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n}\r\n\r\nconst useLowerCardsStyles = makeStyles(() => ({\r\n container: {\r\n marginTop: 30,\r\n marginBottom: 35,\r\n },\r\n wideContainer: {\r\n marginTop: 30,\r\n marginBottom: 50,\r\n },\r\n cardsGroup: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n },\r\n wideCardsGroup: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n },\r\n cardLink: {\r\n margin: 5,\r\n flex: 1,\r\n textDecoration: \"none\",\r\n \"&:hover\": {\r\n textDecoration: \"none\",\r\n },\r\n },\r\n cardTitle: {\r\n fontSize: \"x-large\",\r\n },\r\n enToHiraganaCard: {\r\n backgroundColor: \"#333\",\r\n borderColor: \"#333\",\r\n color: \"white\",\r\n height: \"100%\",\r\n },\r\n marginTopAuto: { marginTop: \"auto\" },\r\n progressNumber: {\r\n fontWeight: \"bold\",\r\n paddingLeft: 7,\r\n fontSize: \"x-large\",\r\n },\r\n progressContainer: {\r\n fontSize: \"large\",\r\n marginTop: 5,\r\n marginBottom: 23,\r\n },\r\n}));\r\n\r\nfunction getImgNumber() {\r\n const today = new Date();\r\n const todayNumber = today.getMonth() + today.getDate();\r\n const mod = todayNumber % 27;\r\n if (mod > 25) return 2;\r\n return 1;\r\n}\r\n\r\nexport default connect(\r\n (state: ApplicationState) => state.vocabQuiz,\r\n dispatch => bindActionCreators(vocabStore.actionCreators, dispatch)\r\n)(Home);\r\n","import Card from \"@material-ui/core/Card\";\r\nimport { makeStyles, Theme } from \"@material-ui/core/styles\";\r\nimport { useEffect, useRef } from \"react\";\r\nimport { sleepAsync } from \"../../../../../../../common/functions\";\r\nimport { relativeScroll } from \"../../../../../../../common/util/Scroll/relativeScroll\";\r\nimport { EllipsisLabel } from \"../../../../../../shared/EllipsisLabel/EllipsisLabel\";\r\nimport { User, UserForRanking } from \"../../../../../../shared/User/types\";\r\nimport { UserAvatar } from \"../../../../../../shared/User/UserAvatar/UserAvatar\";\r\n\r\nexport function BasicRankingRecord({\r\n user,\r\n rank,\r\n isRankNumberHidden,\r\n player,\r\n scrollableContainer,\r\n collapseOpen,\r\n isMyself,\r\n}: {\r\n user: UserForRanking;\r\n rank: number;\r\n isRankNumberHidden: boolean;\r\n player?: User;\r\n scrollableContainer: HTMLDivElement | null;\r\n isMyself: boolean;\r\n collapseOpen: boolean;\r\n}) {\r\n const c = useStyles({ isMyself, isRankNumberHidden });\r\n const ref = useRef(null);\r\n\r\n useEffect(() => {\r\n if (isMyself && collapseOpen) {\r\n // Wait until Collapse opens\r\n sleepAsync(700).then(() => {\r\n if (!ref.current || !scrollableContainer) {\r\n return;\r\n }\r\n relativeScroll(scrollableContainer, ref.current, 4);\r\n });\r\n }\r\n }, [player, user, scrollableContainer, collapseOpen, rank]);\r\n\r\n return (\r\n \r\n
\r\n {!isRankNumberHidden &&
{rank}.
}\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
Lv. {user.level}
\r\n
\r\n
\r\n );\r\n}\r\n\r\nconst useStyles = makeStyles<\r\n Theme,\r\n { isMyself: boolean; isRankNumberHidden: boolean }\r\n>(({ palette }) => ({\r\n card: ({ isMyself }) => ({\r\n margin: 5,\r\n display: \"flex\",\r\n padding: 5,\r\n height: 50,\r\n border: isMyself ? \"solid\" : undefined,\r\n fontWeight: isMyself ? \"bold\" : undefined,\r\n borderColor: isMyself ? palette.primary.main : undefined,\r\n }),\r\n rankAndAvatar: ({ isRankNumberHidden }) => ({\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"space-between\",\r\n marginLeft: 10,\r\n marginRight: 20,\r\n minWidth: isRankNumberHidden ? undefined : 73,\r\n }),\r\n rank: { marginRight: 10 },\r\n nameAndLevel: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"space-around\",\r\n width: \"100%\",\r\n overflow: \"hidden\",\r\n },\r\n name: { flex: 3, overflow: \"hidden\", paddingRight: 20 },\r\n level: {\r\n flex: 1,\r\n textAlign: \"left\",\r\n marginRight: 10,\r\n whiteSpace: \"nowrap\",\r\n },\r\n}));\r\n","import Card from \"@material-ui/core/Card\";\r\nimport { makeStyles, Theme } from \"@material-ui/core/styles\";\r\nimport { BaseCSSProperties } from \"@material-ui/core/styles/withStyles\";\r\nimport { useRef, useState } from \"react\";\r\nimport { spaceBetween } from \"../../../../../../../common/util/Array/spaceBetween\";\r\nimport ShurikenProgress from \"../../../../../../shared/Animations/ShurikenProgress\";\r\nimport { User, UserForRanking } from \"../../../../../../shared/User/types\";\r\nimport { RankingRecordContainer } from \"../RankingRecordContainer\";\r\nimport { BasicRankingRecord } from \"./BasicRankingRecord\";\r\n\r\nconst initialRecordsToShow = 10;\r\n\r\nexport function BasicRanking({\r\n users,\r\n player,\r\n initialRank = 4,\r\n collapseOpen,\r\n style,\r\n className,\r\n setScrollableElement,\r\n loading,\r\n}: {\r\n users: UserForRanking[];\r\n player?: User;\r\n initialRank?: number | \"noRank\";\r\n collapseOpen: boolean;\r\n style?: BaseCSSProperties;\r\n className?: string;\r\n setScrollableElement?: (el: HTMLDivElement) => void;\r\n loading?: boolean;\r\n}) {\r\n const c = useStyles({ style });\r\n const scrollableContainerRef = useRef(null);\r\n const [recordsToShow, setRecordsToShow] = useState(initialRecordsToShow);\r\n\r\n return (\r\n {\r\n scrollableContainerRef.current = el;\r\n if (setScrollableElement) {\r\n setScrollableElement(el);\r\n }\r\n }}\r\n onScroll={event => {\r\n setRecordsToShow(\r\n initialRecordsToShow +\r\n Math.floor(\r\n (event.target as HTMLDivElement).scrollTop / 55\r\n )\r\n );\r\n }}\r\n >\r\n {users.map((user, i) => {\r\n const isMyself = user.userId === player?.userId;\r\n if (\r\n (i > recordsToShow ||\r\n i < recordsToShow - initialRecordsToShow * 1.5) &&\r\n !isMyself\r\n ) {\r\n // Placeholder for lazy loading\r\n return (\r\n
\r\n );\r\n }\r\n return (\r\n \r\n \r\n \r\n );\r\n })}\r\n {(users.length === 0 || loading) && (\r\n \r\n )}\r\n \r\n );\r\n}\r\nconst useStyles = makeStyles(theme => ({\r\n basicRankingCard: ({ style }) => ({\r\n margin: 5,\r\n backgroundColor: theme.palette.grey[100],\r\n minHeight: 335,\r\n maxHeight: 335,\r\n flex: 1,\r\n fontSize: \"large\",\r\n overflowY: \"scroll\",\r\n position: \"relative\",\r\n ...style,\r\n }),\r\n lazyPlaceHolder: { height: 50, margin: 5 },\r\n}));\r\n","import { openOtherUserPanel } from \"../../../../../shared/User/OtherUserPanel/functions\";\r\n\r\nexport function RankingRecordContainer({\r\n userId,\r\n children,\r\n}: {\r\n userId: number;\r\n children: JSX.Element;\r\n}) {\r\n return (\r\n {\r\n openOtherUserPanel(userId);\r\n }}\r\n className=\"hoverScale05 pointer\"\r\n >\r\n {children}\r\n
\r\n );\r\n}\r\n"],"names":["GOOGLE_ADS_CLIENT","GOOGLE_ADS_SLOT","STRIPE_TEST_PUBLIC_KEY","STRIPE_PRODUCTION_PUBLIC_KEY","LazyLoad","_ref","noLazy","rest","_objectWithoutProperties","_excluded","_jsx","_Fragment","children","ReactLazyLoad","_objectSpread","offset","LazyExecutor","_ref2","fnc","lazyLoadProps","_excluded2","Executor","_ref3","useEffect","relativeScroll","_x","_x2","_relativeScroll","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","scrollableEl","targetEl","noSmooth","startFromBottom","timeToWait","targetTop","scrollableTop","dif","reachedTarget","reachedBottom","_args","wrap","_context","prev","next","length","undefined","checkReachedBottom","checkScrolling","sent","abrupt","getBoundingClientRect","top","Math","pow","scrollTo","scrollTop","behavior","console","log","stop","floor","scrollHeight","ceil","offsetHeight","_x3","_x4","_checkScrolling","_callee2","previousScrollTop","_context2","sleepAsync","initialArticlesNumber","ArticlesList","articles","screenWidth","titleH","allAuthors","ShurikenProgress","size","isWide","imgSize","width","height","map","page","index","articleScroll","ArticleScroll","url","c","useStyles","className","article","ScrollBox","style","padding","_jsxs","spaceBetween","wideDivInScroll","divInScroll","imgPath","imgContainer","LinkOrA","href","concat","ArticleImg","wideArticleInfoBlock","articleInfoBlock","widePageTitle","pageTitle","title","wideDescription","description","slice","wideAuthorCardContainer","authorCardContainer","AuthorCard","author","find","a","authorId","borderRadius","makeStyles","marginBottom","textAlign","maxWidth","display","flexDirection","flex","maxHeight","overflow","justifyContent","margin","alignItems","fontSize","position","left","_page$imgPath","_page$imgPath2","endsWith","TrimmedImg","alt","src","objectFit","_ref4","ref","useRef","_useState","useState","_useState2","_slicedToArray","setHeight","useScreenSize","then","_ref$current","currentWidth","current","objectPosition","buttonColor","arrColors","Object","values","ColorChangeButton","label","initialColor","buttonKey","setButtonKey","indexOf","initialColorKey","timerId","window","setTimeout","clearTimeout","Button","color","button","CharacterComment","props","imgNumber","comment","commentStyle","imgStyle","containerRef","container","consts","ninjaPic","EllipsisLabel","placement","tooltipProps","textElementRef","trimmedTitle","setTrimmedTitle","isOverflowed","scrollWidth","clientWidth","trim","Tooltip","disableHoverListener","disableTouchListener","disableFocusListener","div","whiteSpace","textOverflow","FB","innerWidth","border","scrolling","frameBorder","allow","FolktaleMenu","titleLink","imageLink","targetBlank","image","momotaroImg","BLOB_URL","btn","btnLink","folktaleUrl","Z_APPS_TOP_URL","ATargetBlank","Link","to","hoverScale","innerBox","explanation","GoogleAd","aside","startsWith","UserAvatar","user","colorNumber","icon300","avatarRef","avatarPath","Avatar","imgAvatar","replace","img","name","iconAvatar","PersonIcon","icon","colors","theme","boxShadow","palette","grey","backgroundColor","_ref5","useProgress","loadAllGenres","allGenres","kanaProgress","setKanaProgress","_useState3","_useState4","hiraganaProgress","setHiraganaProgress","_useState5","_useState6","katakanaProgress","setKatakanaProgress","_useState7","_useState8","vocabProgress","setVocabProgress","_useState9","_useState10","kanjiProgress","setKanjiProgress","_useState11","_useState12","enToHiraganaProgress","setEnToHiraganaProgress","_useState13","_useState14","enToKanjiProgress","setEnToKanjiProgress","_useState15","_useState16","vocabListProgress","setVocabListProgress","_useState17","_useState18","actionGameProgress","setActionGameProgress","_useState19","_useState20","grammarProgress","setGrammarProgress","hiraganaPercentage","getKanaPercentage","katakanaPercentage","i","localStorage","getItem","filter","p","_getVocabPercentage","allVocabGenres","_allVocabGenres$reduc","reduce","acc","genreId","vocab","Number","kanji","enToHiragana","enToKanji","getVocabPercentage","sFetchAllGrammar","g","sum","val","getGrammarSaveKey","path","totalProgress","setItem","toString","TopRankingRecordPc","rank","isVeryWide","Card","containerCard","trophyAndAvatar","trophyContainer","appsPublicImg","trophyImg","nameAndLevel","level","marginRight","marginLeft","paddingRight","TopRankingRecordSp","nameAndLevelContainer","wordBreak","TopRankingRecord","TopRanking","users","topRankingCard","RankingRecordContainer","userId","fontWeight","maxRanking","LevelRanking","_useUsersForRanking","player","useUser","_users","setUsers","sFetchJson","useMemo","some","u","sort","b","xp","_toConsumableArray","_users2","_toArray","user1","user2","user3","normalUsers","topUsers","collapseOpen","useUsersForRanking","Collapse","in","timeout","BasicRanking","marginTop","today","Date","getMonth","getDate","getImgNumber","useHomeStyles","alignCenter","topTitle","lineHeight","convertersContainer","wideConvertersContainer","articlesSection","articlesAboutJapanTitle","moreArticlesContainer","_fetchArticles","setArticles","setAuthors","UpperCards","useUpperCardsStyles","wideContainer","wideCardsGroup","cardsGroup","cardLink","body","kanaCard","CardTitle","cardTitle","CardText","cardText","progressContainer","progressNumber","marginTopAuto","inverse","actionGameCard","textDecoration","borderColor","paddingLeft","LowerCards","useLowerCardsStyles","enToHiraganaCard","connect","state","vocabQuiz","dispatch","bindActionCreators","vocabStore","_useProgress","setAllAuthors","hc","fetchArticles","Helmet","desc","isHome","AuthorName","AuthorArea","ARTICLES_URL","SeasonAnimation","frequencySec","BasicRankingRecord","isRankNumberHidden","scrollableContainer","isMyself","card","rankAndAvatar","primary","main","minWidth","initialRecordsToShow","_ref$initialRank","initialRank","setScrollableElement","loading","scrollableContainerRef","recordsToShow","setRecordsToShow","basicRankingCard","el","onScroll","event","target","lazyPlaceHolder","minHeight","overflowY","onClick","openOtherUserPanel"],"sourceRoot":""}