{"version":3,"file":"ApplicationForm.js","mappings":"UAAIA,E,otBCyGJ,QAzEqC,SAACC,GAClC,IACIC,EAMAD,EANAC,oBACAC,EAKAF,EALAE,oBACAC,EAIAH,EAJAG,SACAC,EAGAJ,EAHAI,SACAC,EAEAL,EAFAK,KACAC,EACAN,EADAM,UAGJC,GAAwBC,EAAAA,EAAAA,WAAS,GAAMC,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAAhCI,EAAIF,EAAA,GAAEG,EAAOH,EAAA,GAEdI,EAAe,WACjBD,GAASD,GACTG,OAAOC,SAASC,OAAOX,EAC3B,EAMA,OACIY,IAAAA,cAAAA,IAAAA,SAAA,KACIA,IAAAA,cAACC,EAAAA,EAAM,CAACC,QAAM,GACVF,IAAAA,cAACG,EAAAA,EAAM,CACHC,UAAW,CACPC,QAAS,UAEbC,UAAW,CACPC,KAAM,SAEVC,MAAM,OACNC,UAAWzB,EACXE,SAAUA,EACVwB,GAAG,WACHC,mBAAmB,UACnBC,QAAQ,OACRC,QAASjB,GAERT,GAAsBE,EAAUF,WAGzCa,IAAAA,cAACC,EAAAA,EAAM,CAACa,MAAI,GACRd,IAAAA,cAACe,EAAAA,EAAU,CACP,aAAY5B,GAAsBE,EAAUF,SAC5CsB,UAAWxB,EACX+B,MAAM,YACN9B,SAAUA,EACVwB,GAAG,WACHG,QAASjB,GAETI,IAAAA,cAACiB,EAAAA,EAAI,CAACC,OAAK,EAACX,KAAK,YAGzBP,IAAAA,cAACmB,EAAAA,EAAQ,CACLC,aAAc,CACV,mBAAoB,wBAExBC,QACIrB,IAAAA,cAAA,QAAMU,GAAG,wBACJrB,EAAUiC,iBAGnB5B,KAAMA,EACN6B,KAAMC,EAAAA,EAAWC,QACjBC,QAhDI,WACZ/B,GAASD,EACb,IAkDJ,E,0DClGYiC,EAAa,SAAbA,GAAa,OAAbA,EAAAA,EAAa,+BAAbA,EAAAA,EAAa,yCAAbA,EAAAA,EAAa,6BAAbA,EAAAA,EAAa,yCAAbA,EAAAA,EAAa,mCAAbA,EAAAA,EAAa,6BAAbA,EAAAA,EAAa,2CAAbA,EAAAA,EAAa,qCAAbA,EAAAA,EAAa,qDAAbA,CAAa,M,2CC2EzB,IA8CMC,EAAkB,SAAAC,IAAAC,EAAAA,EAAAA,GAAAF,EAAAC,GAAA,I,IAAAE,G,EAAAH,E,gaAMpB,SAAAA,EAAmB7C,GAAO,IAAAiD,EAOtB,OAPsBC,EAAAA,EAAAA,GAAA,KAAAL,GACtBI,EAAAD,EAAAG,KAAA,KAAMnD,IAENoD,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,oBAAAG,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,kBAAAG,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,iBA6BJG,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,uBAC8B,SAACK,GAC3B,IACI,IAAMC,GACAC,EAAAA,EAAAA,GAASF,EAAML,EAAKQ,oBAAoBjC,MAC1C+B,SAAAA,EAAQG,QACRT,EAAKU,SAAS,CACVrD,UAAWiD,EAAOK,MAG9B,CACA,MAAOC,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKQ,oBAAoBjC,KAAMqC,GACvE,CACJ,IA1CIZ,EAAKgB,SAAW,UAChBhB,EAAKiB,OAAS,qBACdjB,EAAKkB,MAAQlB,EAAKmB,kBAClBnB,CACJ,CAsgBC,OAtgBAoB,EAAAA,EAAAA,GAAAxB,EAAA,EAAAyB,IAAA,kBAAAC,MAED,WACI,IAAIjE,EAIJ,OAHIkE,KAAKL,QACL7D,EAAYkE,KAAKL,MAAM7D,WAEpB,CACHmE,gBAAgB,EAChBnE,UAAWA,EAEnB,GAEA,CAAAgE,IAAA,WAAAC,MACA,SAAiBG,GACbC,EAAAA,EAAcC,WAAWF,EAC7B,GAAC,CAAAJ,IAAA,gBAAAC,MAED,SAAsBM,GAClBF,EAAAA,EAAcG,gBAAgBD,EAClC,GAAC,CAAAP,IAAA,oBAAAC,MAsBD,WACI,IACIQ,EAAAA,EAAeC,aAAaR,KAAKP,SAAUO,KAAKN,OAC5CM,KAAKf,oBACLe,KAAKV,SACb,CACA,MAAOD,GACHW,KAAKV,SAASC,EAAAA,EAAQC,cAAcQ,KAAKS,kBAAkBzD,KAAMqC,GACrE,CACJ,GAAC,CAAAS,IAAA,oBAAAC,MAED,SAAyBW,EAAOC,GAAY,IAAAC,EAAA,KACxCZ,KAAKb,SAAS,CACVc,gBAAgB,IACjB,WACCW,EAAKtB,SAASC,EAAAA,EAAQsB,uBAAuBD,EAAKE,kBAAkB9D,KAAM0D,EAAOC,IACjFC,EAAKG,cAAc,IACvB,GACJ,GACA,CAAAjB,IAAA,SAAAC,MAEA,WACI,IAyBIiB,EAzBJC,EAkBIjB,KAAKxE,MAjBL0F,EAAOD,EAAPC,QACAC,EAAOF,EAAPE,QACAC,EAAmBH,EAAnBG,oBACAjF,EAAI8E,EAAJ9E,KACAkF,EAAWJ,EAAXI,YACAC,EAAoBL,EAApBK,qBACAC,EAAaN,EAAbM,cACAC,EAAaP,EAAbO,cACAC,EAASR,EAATQ,UACAC,EAAQT,EAARS,SACAC,EAAaV,EAAbU,cACAC,EAAkBX,EAAlBW,mBACAC,EAA4BZ,EAA5BY,6BACAC,EAAqBb,EAArBa,sBACA3D,EAAO8C,EAAP9C,QACA4D,EAAKd,EAALc,MACAC,EAAcf,EAAde,eAGJC,EAGIjC,KAAKL,MAFLM,EAAcgC,EAAdhC,eACAnE,EAASmG,EAATnG,UAIJ,IAAKmE,GAAkBnE,EAAW,CAC9B,IAAIoG,EAwDAC,EA6FAC,EA8BAC,EACAC,EAnLAC,GAAsB,EAE1B,GAAIf,IAAkBpD,EAAcoE,cAIhC,GAHAN,EAAiB,GACjBK,EAAalB,EAAYoB,oBAAsB,GAAKpB,EAAYqB,iBAAmB,EAEnE,CACZR,EAAeS,KAAK,CAChBC,YAAaC,EAAAA,EAAOC,SAAShH,EAAUiH,cAAe,CAAC1B,EAAY2B,iBACnErH,SAAU0F,EAAYoB,oBAAsB,EAC5C1C,MAAO,MASX,IACIkD,EADAC,GAA8B,EAEZ,MAAlB3B,GAAyBF,EAAY8B,WACrCD,GAAsBE,QAAQ/B,EAAYgC,gBACnChC,EAAYiC,qBACnBL,EAA0BG,QAAQ/B,EAAYgC,eAEvChC,EAAYiC,qBACXxH,EAAUyH,6BACRC,EAHN1H,EAAU2H,0BAMlBvB,EAAeS,KAAK,CAChBC,YAAa9G,EAAU4H,iBACvBC,eACIlH,IAAAA,cAACmH,EAAAA,EAAS,CACNjI,SAA4B,MAAlB4F,EACVb,MAAOwC,EACPW,WAAYZ,EACZ9F,GAAG,YACH2G,KAAK,QACL/D,MAAyB,MAAlBwB,EAAwBF,EAAYgC,cAAgB,GAC3DU,SAAUlC,IAGlB9B,MAAO,KAEf,OAMAwC,EAJKf,IAAkBpD,EAAc4F,mBAAsB3C,EAAY4C,0BAI1D5C,EAAYqB,iBAAmB,EAH/BrB,EAAY6C,gBAAkB,EAO/C/B,EACI1F,IAAAA,cAAAA,IAAAA,SAAA,KACIA,IAAAA,cAAC0H,EAAAA,EAAI,CAACL,KAAK,MACNjB,EAAAA,EAAOC,SAAShH,EAAUsI,YAAa,CAAC1C,GAAYD,GAAa,MAEtEhF,IAAAA,cAAC4H,EAAAA,EAAI,CAACC,WAAS,EAACC,WAAW,SAASC,eAAe,iBAC/C/H,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,IAAE,GACTjI,IAAAA,cAAC0H,EAAAA,EAAI,CAACjH,UAAWgE,EAAQyD,uBACpB7I,EAAU8I,mBAGhBpD,IAAkBpD,EAAcoE,cAC5BhB,IAAkBpD,EAAc4F,oBAChC3C,EAAYwD,iBACXpI,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,GACNhI,IAAAA,cAACqI,EAAK,CACFlJ,SAAUE,EAAUiJ,SAASC,kBAC7BlJ,UAAWA,EAAUiJ,SACrBlJ,KAAI,GAAAoJ,OAAKC,EAAAA,EAAUC,OAAM,+CAAAF,OAA8C5D,EAAYwD,gBAAe,iBAAAI,OAAgBC,EAAAA,EAAUE,oBAAoB,uBAKpK3I,IAAAA,cAAC4H,EAAAA,EAAI,CAACC,WAAS,EAACe,QAAS,GACrB5I,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,GAAI,IACVlD,IAAkBpD,EAAcoE,cAC1BN,GAAkBK,GACjB9F,IAAAA,cAAC6I,EAAAA,EAAU,CACPnI,GAAG,oBACHH,KAAK,iBACLuI,QAASrD,EACTnC,MAAOwB,EACPwC,SAAUjC,IAGrBN,IAAkBpD,EAAcoE,cAC7B/F,IAAAA,cAAA,OAAKS,UAAWgE,EAAQsE,iBACpB/I,IAAAA,cAAC4H,EAAAA,EAAI,CACDC,WAAS,EACTC,WAAW,SACXkB,UAAU,SACVjB,eAAe,SACfa,QAAS,GAER7D,IAAkBpD,EAAc4F,mBACzB3C,EAAY4C,0BAcZxH,IAAAA,cAAAA,IAAAA,SAAA,KACIA,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,IAAE,GACRpD,EAAqBoB,mBAAqBrB,EAAYqB,iBACnDjG,IAAAA,cAAC0H,EAAAA,EAAI,CAACjH,UAAWgE,EAAQwE,gBAAiBjI,MAAM,UAAUqG,KAAK,MAC1DzC,EAAYsE,aAGblJ,IAAAA,cAAC0H,EAAAA,EAAI,CAACL,KAAK,MACNzC,EAAYsE,cAI7BlJ,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,IAAE,GACRpD,EAAqBoB,mBAAqBrB,EAAYqB,iBACnDjG,IAAAA,cAAC0H,EAAAA,EAAI,CAACjH,UAAWgE,EAAQwE,iBACpB5J,EAAU8J,oBAGXnJ,IAAAA,cAAC0H,EAAAA,EAAI,KACArI,EAAU+J,YAhC/BpJ,IAAAA,cAAAA,IAAAA,SAAA,KACIA,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,IAAE,GACTjI,IAAAA,cAAC0H,EAAAA,EAAI,CAACL,KAAK,MACNzC,EAAYyE,aAGrBrJ,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,IAAE,GACTjI,IAAAA,cAAC0H,EAAAA,EAAI,KACArI,EAAUiK,sBAuC3D3D,EAAchB,GAAuBmB,EACjC9F,IAAAA,cAACuJ,EAAAA,EAAW,CAAC7I,GAAG,qBACVkE,EAAY4E,uBACTzE,IAAkBpD,EAAcoE,cAC1BhB,IAAkBpD,EAAc4F,oBACnCvH,IAAAA,cAACG,EAAAA,EAAM,CACHO,GAAI,iBACJM,MAAM,YACNH,QAASa,GAERrC,EAAUoK,gBAGvBzJ,IAAAA,cAACG,EAAAA,EAAM,CACHO,GAAI,SACJG,QAASyE,GAERjG,EAAUqK,SAIf1J,IAAAA,cAACG,EAAAA,EAAM,CACHO,GAAI,QACJG,QAASa,GAERrC,EAAUsK,OAMvBpF,EACIvE,IAAAA,cAAC4J,EAAAA,EAAK,CACFC,sBAAoB,EACpBC,sBAAoB,EACpBC,yBAAuB,EACvBrJ,GAAG,qBACHsJ,OAAQtE,EACRuE,SAAS,KACTC,OAAQvE,EACRjG,KAAMA,EACNyK,mBAAmB,EACnBzI,QAASA,GAERqD,IAAkBpD,EAAc4F,mBAC7BvH,IAAAA,cAAC4H,EAAAA,EAAI,CAACC,WAAS,GACX7H,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,GAAI,IACXjI,IAAAA,cAAC0H,EAAAA,EAAI,CAACL,KAAK,MACNhI,EAAU+K,kBAEfpK,IAAAA,cAAC0H,EAAAA,EAAI,KACArI,EAAUgL,0BAGnBrK,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,GAAI,IACVvD,EAAQ4F,KAAI,SAACC,EAAQC,GAAE,OACpBxK,IAAAA,cAAC4H,EAAAA,EAAI,CAACC,WAAS,EAACC,WAAW,SAASzE,IAAG,UAAAmF,OAAYgC,IAC/CxK,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,GAAI,GAAIwC,GAAI,EAAGC,GAAI,EAAGC,GAAI,GACjC3K,IAAAA,cAAC4H,EAAAA,EAAI,CAACC,WAAS,EAACC,WAAW,UACvB9H,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,GACJuC,EAAOK,MASJ5K,IAAAA,cAAA,OAAKS,UAAWgE,EAAQoG,iBARzB7K,IAAAA,cAACe,EAAAA,EAAU,CACP,aAAY1B,EAAUyL,gBACtB9J,MAAM,YACNN,GAAE,qBAAA8H,OAAuBgC,GACzB3J,QAAS0E,GAETvF,IAAAA,cAACiB,EAAAA,EAAI,CAACC,OAAK,EAACX,KAAK,YAI7BP,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,IAAE,GACTjI,IAAAA,cAACmH,EAAAA,EAAS,CACNjI,SAAUqL,EAAOQ,UACjB9G,MAAOsG,EAAOS,cAAgBrE,QAAQ4D,EAAO3G,QAAU2G,EAAOU,SAC9D7D,WAAYmD,EAAOS,WAAerE,QAAQ4D,EAAO3G,MAEzC2G,EAAOU,aAELlE,EADF1H,EAAU6L,yBAFd7L,EAAU8L,+BAIRpE,EACNrG,GAAE,qBAAA8H,OAAuBgC,GACzBY,MAAO/L,EAAUgM,kBACjBC,cAAe,GACfhI,MAAOiH,EAAO3G,MAAQ,GACtB0D,SAAUnC,EACVoG,aAAcrG,OAK9BlF,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,GAAI,GAAIwC,GAAI,EAAGC,GAAI,EAAGC,GAAI,GACjC3K,IAAAA,cAAC4H,EAAAA,EAAI,CAACC,WAAS,GACX7H,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,IAAE,IACPsC,EAAOQ,WACL/K,IAAAA,cAACG,EAAAA,EAAM,CACHO,GAAG,mBACHG,QAASqE,GAER7F,EAAUmM,mBAO5B,MAKvBxL,IAAAA,cAAC4H,EAAAA,EAAI,CAACC,WAAS,GACX7H,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,GAAI,IACXjI,IAAAA,cAAC0H,EAAAA,EAAI,CAACL,KAAK,MACNhI,EAAUoM,aAItB7G,EAAY8G,eACT1L,IAAAA,cAAC4H,EAAAA,EAAI,CAACC,WAAS,EAACe,QAAS,GACrB5I,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,IAAE,GACTjI,IAAAA,cAAC2L,EAAAA,GAAK,CACFC,WAAW,KACXnH,QAAS,CAAEoH,KAAMpH,EAAQqH,OACzBpL,GAAG,qBAEHV,IAAAA,cAAC+L,EAAAA,GAAS,KACN/L,IAAAA,cAACgM,EAAAA,GAAQ,KACJjH,IAAkBpD,EAAc4F,mBAC7BvH,IAAAA,cAACiM,EAAAA,GAAS,CAACC,UAAU,MAChB7M,EAAU8M,WAGnBnM,IAAAA,cAACiM,EAAAA,GAAS,CAACC,UAAU,MAChB7M,EAAU+M,WAEfpM,IAAAA,cAACiM,EAAAA,GAAS,CAACC,UAAU,KAAK1L,MAAM,SAC3BnB,EAAUgN,WAEdtH,IAAkBpD,EAAc4F,mBAC1B3C,EAAY8G,cAAcY,MAAK,SAAAC,GAAC,OAAIA,EAAEC,QAAQ,KAE7CxM,IAAAA,cAACiM,EAAAA,GAAS,CAACC,UAAU,KAAK1L,MAAM,SAC3BnB,EAAUoN,eAK/BzM,IAAAA,cAAC0M,EAAAA,GAAS,KACL9H,EAAY8G,cAAcpB,KAAI,SAACqC,EAAKC,GAajC,OAZI7H,IAAkBpD,EAAc4F,oBAChC3B,OAAemB,EACflB,GAAa,EACT+G,EAAMhI,EAAY8G,cAAcmB,OAAS,GACtCF,EAAIG,YAAclI,EAAY8G,cAAckB,EAAM,GAAGE,YACxDlH,EAAenB,EAAQsI,gBAEvBH,EAAM,GACHD,EAAIG,YAAclI,EAAY8G,cAAckB,EAAM,GAAGE,YACxDjH,GAAa,IAIjB7F,IAAAA,cAACgM,EAAAA,GAAQ,CACL3I,IAAG,iBAAAmF,OAAmBoE,IAErB7H,IAAkBpD,EAAc4F,mBAC7BvH,IAAAA,cAACiM,EAAAA,GAAS,CACNxH,QAAS,CAAEoH,KAAMjG,GACjBoH,WAAY3N,EAAU+M,UACtBF,UAAU,KACVe,MAAM,OAELpH,IAAe8G,EAAIH,WAAaG,EAAIO,SACjClN,IAAAA,cAAA,YACM2M,EAAIQ,SAAWR,EAAIS,UAAahH,EAAAA,EAAOC,SAAShH,EAAUgO,mBAAoB,CAACV,EAAIQ,QAASR,EAAIS,YAAc,IAGvHvH,GAAc8G,EAAIO,SACflN,IAAAA,cAAA,YACKX,EAAUiO,YAK3BtN,IAAAA,cAACiM,EAAAA,GAAS,CACNxH,QAAS,CAAEoH,KAAMjG,GACjBoH,WAAY3N,EAAU+M,UACtBF,UAAU,KACVe,MAAM,OAENjN,IAAAA,cAAA,YACK2M,EAAIxG,aAERpB,IAAkBpD,EAAc4L,aAC1B3I,EAAY8G,eACZ9G,EAAY8G,cAAcmB,OAAS,GACnCjI,EAAYsE,cAAgBtE,EAAY8G,cAAc,GAAG8B,QACxDxN,IAAAA,cAAAA,IAAAA,SAAA,KACIA,IAAAA,cAAA,WACAA,IAAAA,cAAA,YACKX,EAAUoO,kBAK/BzN,IAAAA,cAACiM,EAAAA,GAAS,CACNzL,MAAM,QACNiE,QAAS,CAAEoH,KAAMjG,GACjBoH,WAAY3N,EAAUgN,WAEtBrM,IAAAA,cAAA,YACK2M,EAAIa,SAGZzI,IAAkBpD,EAAc4F,mBAC1B3C,EAAY8G,cAAcY,MAAK,SAAAC,GAAC,OAAIA,EAAEC,QAAQ,KAE7CxM,IAAAA,cAACiM,EAAAA,GAAS,CACNzL,MAAM,QACNiE,QAAS,CAAEoH,KAAMjG,GACjBoH,WAAY3N,EAAUoN,aAEtBzM,IAAAA,cAAA,YACK2M,EAAIe,gBAAkB,MAMnD,KAEJ1N,IAAAA,cAAC2N,EAAAA,GAAW,KACR3N,IAAAA,cAACgM,EAAAA,GAAQ,KACLhM,IAAAA,cAAA,MAAI4N,QAAS,EAAGnN,UAAWgE,EAAQoJ,eAC9BhJ,EAAqBoB,mBAAqBrB,EAAYqB,iBACnDjG,IAAAA,cAAC0H,EAAAA,EAAI,CACDlH,MAAM,QACNC,UAAWqN,IAAWrJ,EAAQsJ,kBAAmBtJ,EAAQwE,kBAExD7C,EAAAA,EAAOC,SAAShH,EAAU2O,sBAAuB,CAACpJ,EAAYsE,eAG/DlJ,IAAAA,cAAC0H,EAAAA,EAAI,CACDlH,MAAM,QACNC,UAAWgE,EAAQsJ,mBAElB3H,EAAAA,EAAOC,SAAShH,EAAU4O,YAAa,CAACrJ,EAAYsE,eAGhEnE,IAAkBpD,EAAcoE,cAC7B/F,IAAAA,cAAC0H,EAAAA,EAAI,CAAClH,MAAM,QAAQC,UAAWgE,EAAQsJ,mBAClC3H,EAAAA,EAAOC,SAAShH,EAAU6O,iBAAkB,CAACtJ,EAAYyE,cAGjEtE,IAAkBpD,EAAc4F,oBACzB3C,EAAY4C,2BACZxH,IAAAA,cAAC0H,EAAAA,EAAI,CAAClH,MAAM,QAAQC,UAAWgE,EAAQsJ,mBAClC3H,EAAAA,EAAOC,SAAShH,EAAU6O,iBAAkB,CAACtJ,EAAYyE,oBAY9G,CAEA,OACIrJ,IAAAA,cAAAA,IAAAA,SAAA,KACKuE,EAGb,KAAC3C,CAAA,CAphBmB,CAAS5B,IAAAA,WAyhBjC,SAAemO,EAAAA,EAAAA,IAvkBA,SAACC,GAAY,OAAKC,EAAAA,EAAAA,GAAa,CAC1CtF,gBAAiB,CACbuF,gBAAiBC,EAAAA,EAAOC,qBACxBC,OAAQ,QACRC,aAAcH,EAAAA,EAAOI,UACrBC,cAAeL,EAAAA,EAAOI,UACtBE,YAAaN,EAAAA,EAAOO,UACpBC,aAAcR,EAAAA,EAAOO,UACrBE,WAAYT,EAAAA,EAAOI,UACnBM,MAAO,QAEXhG,gBAAiB,CACbjI,MAAOuN,EAAAA,EAAOW,uBAElBrB,cAAe,CACXS,gBAAiBC,EAAAA,EAAOC,qBACxBI,cAAeL,EAAAA,EAAOO,UACtBE,WAAYT,EAAAA,EAAOY,WAEvBpB,kBAAmB,CACfqB,UAAWb,EAAAA,EAAOY,WAEtBjH,sBAAuB,CACnBwG,aAAcH,EAAAA,EAAOc,YACrBD,UAAWb,EAAAA,EAAOc,aAEtBtC,eAAgB,CACZuC,kBAAmB,GAAF9G,OAAK+F,EAAAA,EAAOgB,qBAAoB,eAErD1E,eAAgB,CACZoE,MAAOV,EAAAA,EAAOiB,WAElB1D,OAAK3J,EAAAA,EAAAA,GAAA,GACAiM,EAAMqB,YAAYC,GAAG,MAAQ,CAE1B,mCAAoC,CAChCT,MAAO,UAIrB,GA+hBF,CAAkCrN,G,0BCnnBlC,QArBoC,CAChC+N,mBAAkB,SAACC,EACfC,EACAC,GACAC,EAAAA,EAAQC,KAAKzM,KAAKoM,mBAAmBpP,KAAM,mBAAoB,CAAEqP,eAAAA,GAAkBC,EAAUC,EACjG,EACAG,6BAA4B,SAACL,EACzBC,EACAC,EACAI,GACAH,EAAAA,EAAQC,KAAKzM,KAAK0M,6BAA6B1P,KAAM,mBAAoB,CAAEqP,eAAAA,EAAgBM,mBAAAA,GAAsBL,EAAUC,EAC/H,EACAK,2BAA0B,SAACP,EACvBC,EACAC,EACAM,GACAL,EAAAA,EAAQC,KAAKzM,KAAK0M,6BAA6B1P,KAAM,mBAAoB,CAAEqP,eAAAA,EAAgBQ,cAAAA,GAAiBP,EAAUC,EAC1H,GC0PJ,QA3NyB,SAAAjO,IAAAC,EAAAA,EAAAA,GAAAuO,EAAAxO,GAAA,I,IAAAE,G,EAAAsO,E,gaAMrB,SAAAA,EAAmBtR,GAAO,IAAAiD,EAOtB,OAPsBC,EAAAA,EAAAA,GAAA,KAAAoO,GACtBrO,EAAAD,EAAAG,KAAA,KAAMnD,IAENoD,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,oBAAAG,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,kBAAAG,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,iBAkBJG,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,QACe,WACX,IACI,IAAAwC,EAWIxC,EAAKjD,MAVLyO,EAAMhJ,EAANgJ,OACA8C,EAAa9L,EAAb8L,cACAC,EAAkB/L,EAAlB+L,mBACAH,EAAa5L,EAAb4L,cACArL,EAAaP,EAAbO,cACAyL,EAAQhM,EAARgM,SACAN,EAAkB1L,EAAlB0L,mBACAO,EAASjM,EAATiM,UACAC,EAAalM,EAAbkM,cACAzL,EAAQT,EAARS,SAGE2K,EAAkC,CACpCpC,OAAQA,EACR8C,cAAeA,EACfC,mBAAoBA,EACpBxL,cAAeA,EACfyL,SAAUA,EACVC,UAAWA,GAEf,GAAIC,EAAe,CACf,IAAMC,EAAWD,EAAcE,MAAM,KACrChB,EAAeiB,cAAgB,CAC3BC,gBAAiBH,EAAS,GAAKI,OAAOJ,EAAS,IAAM,KACrDK,aAAcL,EAAS,GAAKI,OAAOJ,EAAS,IAAM,KAE1D,MACK,GAAI1L,EAAU,CACf,IAAM2L,EAAQ3L,EAAS2L,MAAM,KAC7BhB,EAAe3K,SAAW,CACtBgM,KAAML,EAAM,GACZM,KAAMH,OAAOH,EAAM,IAE3B,CACIV,EACAiB,EAASlB,6BAA6BL,EAAgB5N,EAAKoP,0BAA2BpP,EAAKa,SAAUqN,GAEhGE,EACLe,EAAShB,2BAA2BP,EAAgB5N,EAAKoP,0BAA2BpP,EAAKa,SAAUuN,GAGnGe,EAASxB,mBAAmBC,EAAgB5N,EAAKoP,0BAA2BpP,EAAKa,UAErFa,EAAAA,EAAc2N,YAAW,EAC7B,CACA,MAAOzO,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKsP,KAAK/Q,KAAMqC,GACxD,CACJ,KAiBAT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,uBAC8B,SAACK,GAC3B,IACI,IAAMC,GACAC,EAAAA,EAAAA,GAASF,EAAML,EAAKQ,oBAAoBjC,MAC1C+B,SAAAA,EAAQG,QACRT,EAAKU,SAAS,CACVrD,UAAWiD,EAAOK,MAG9B,CACA,MAAOC,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKQ,oBAAoBjC,KAAMqC,GACvE,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,6BAEmC,SAACK,GACjC,IACI,IAAMC,GACAC,EAAAA,EAAAA,GAASF,EAAML,EAAKoP,0BAA0B7Q,MAChD+B,SAAAA,EAAQG,SACJH,EAAOK,MACP9C,OAAOC,SAASyR,QAAQC,UAAUlP,EAAOK,OACzCe,EAAAA,EAAc2N,YAAW,IAGzBrP,EAAKyP,YAGjB,CACA,MAAO7O,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKoP,0BAA0B7Q,KAAMqC,GAC7E,CACJ,IAvHIZ,EAAKgB,SAAW,UAChBhB,EAAKiB,OAAS,sBACdjB,EAAKkB,MAAQlB,EAAKmB,kBAClBnB,CACJ,CAwMC,OAxMAoB,EAAAA,EAAAA,GAAAiN,EAAA,EAAAhN,IAAA,kBAAAC,MAED,WACI,IAAIjE,EAIJ,OAHIkE,KAAKL,QACL7D,EAAYkE,KAAKL,MAAM7D,WAEpB,CACHmE,gBAAgB,EAChBnE,UAAWA,EAEnB,GAAC,CAAAgE,IAAA,WAAAC,MA0DD,SAAiBG,GACbC,EAAAA,EAAcC,WAAWF,EAC7B,GAAC,CAAAJ,IAAA,gBAAAC,MAED,SAAsBM,GAClBF,EAAAA,EAAcG,gBAAgBD,EAClC,GAAC,CAAAP,IAAA,YAAAC,MAED,SAAkBjC,GACdqC,EAAAA,EAAcgO,SAAS,CAAErQ,QAASA,EAASsQ,YAAanQ,EAAAA,EAAWyC,OACvE,GAAC,CAAAZ,IAAA,oBAAAC,MAwCD,WACI,IACIQ,EAAAA,EAAeC,aAAaR,KAAKP,SAAUO,KAAKN,OAC5CM,KAAKf,oBACLe,KAAKV,SACb,CACA,MAAOD,GACHW,KAAKV,SAASC,EAAAA,EAAQC,cAAcQ,KAAKS,kBAAkBzD,KAAMqC,GACrE,CACJ,GAAC,CAAAS,IAAA,oBAAAC,MAED,SAAyBW,EAAOC,GAAY,IAAAC,EAAA,KACxCZ,KAAKb,SAAS,CACVc,gBAAgB,IACjB,WACCW,EAAKtB,SAASC,EAAAA,EAAQsB,uBAAuBD,EAAKE,kBAAkB9D,KAAM0D,EAAOC,IACjFC,EAAKG,cAAc,IACvB,GACJ,GACA,CAAAjB,IAAA,SAAAC,MAEA,WACI,IAUIiB,EAVJqN,EAGIrO,KAAKxE,MAFLW,EAAIkS,EAAJlS,KACAgC,EAAOkQ,EAAPlQ,QAGJ8D,EAGIjC,KAAKL,MAFLM,EAAcgC,EAAdhC,eACAnE,EAASmG,EAATnG,UA+CJ,OA3CKmE,GAAkBnE,IACnBkF,EACIvE,IAAAA,cAAC4J,EAAAA,EAAK,CACFC,sBAAoB,EACpBC,sBAAoB,EACpBE,OAAQ3K,EAAUwS,SAClBnR,GAAG,sBACHwJ,OACIlK,IAAAA,cAACuJ,EAAAA,EAAW,CAAC7I,GAAG,qBACZV,IAAAA,cAACG,EAAAA,EAAM,CACHO,GAAI,YACJM,MAAM,YACNH,QAASa,GAERrC,EAAUyS,WAEf9R,IAAAA,cAACG,EAAAA,EAAM,CACHO,GAAI,QACJG,QAAS0C,KAAK+N,MAEbjS,EAAUsK,QAIvBM,SAAS,KACTvK,KAAMA,EACNyK,mBAAmB,EACnBzI,QAASA,GAET1B,IAAAA,cAAC4H,EAAAA,EAAI,CAACC,WAAS,GACX7H,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,IAAE,GACTjI,IAAAA,cAAC+R,EAAAA,EAAK,CACFrR,GAAG,oBACHhB,MAAI,EACJsS,KAAM3S,EAAU4S,eAChB1Q,KAAMC,EAAAA,EAAW0C,WASrClE,IAAAA,cAAAA,IAAAA,SAAA,KACKuE,EAGb,KAAC8L,CAAA,CAtNoB,CAASrQ,IAAAA,W,6GC1DtBkS,GAAU,SAAVA,GAAU,OAAVA,EAAAA,EAAU,eAAVA,EAAAA,EAAU,qBAAVA,EAAAA,EAAU,2CAAVA,EAAAA,EAAU,qCAAVA,EAAAA,EAAU,2BAAVA,EAAAA,EAAU,+CAAVA,EAAAA,EAAU,qCAAVA,EAAAA,EAAU,qBAAVA,EAAAA,EAAU,uBAAVA,CAAU,M,oCC0BtB,SAnBuB,CACnBC,iBAAgB,SAACC,EAAkBC,EAAkBxC,GACjDE,EAAAA,EAAQC,KAAKzM,KAAK4O,iBAAiB5R,KAAM,uBAAwB,CAAE6R,SAAAA,EAAUC,SAAAA,GAAYxC,EAC7F,EACAyC,eAAc,SAACC,EAAiC1C,GAC5CE,EAAAA,EAAQC,KAAKzM,KAAK+O,eAAe/R,KAAM,2BAA4BgS,EAAgB1C,EACvF,EACA2C,sBAAqB,SAACJ,EAAkBvC,GACpCE,EAAAA,EAAQC,KAAKzM,KAAKiP,sBAAsBjS,KAAM,gCAAiC6R,EAAUvC,EAC7F,EACA4C,wBAAuB,SAAC5C,GACpBE,EAAAA,EAAQC,KAAKzM,KAAKkP,wBAAwBlS,KAAM,kCAAmC,KAAMsP,EAC7F,EACA6C,wBAAuB,SAACN,EAAkBO,EAA2B9C,GACjEE,EAAAA,EAAQC,KAAKzM,KAAKmP,wBAAwBnS,KAAM,kCAAmC,CAAE6R,SAAAA,EAAUO,kBAAAA,GAAqB9C,EACxH,G,sCC4EJ,IAAM+C,IAASvE,EAAAA,EAAAA,GAAa,CACxBwE,mBAAoB,CAChB7D,WAAYT,EAAAA,EAAOY,WAEvB2D,WAAY,CACRpE,aAAc,GAAFlG,OAAK+F,EAAAA,EAAOO,UAAS,eAErCiE,UAAW,CACPC,UAAW,aACX5D,UAAWb,EAAAA,EAAO0E,UAClBhJ,SAAU,SAEdiJ,UAAW,CACP9D,UAAW,GAAF5G,OAAK+F,EAAAA,EAAOO,UAAS,eAElCqE,iBAAkB,CACdvE,cAAeL,EAAAA,EAAOY,WAE1BiE,mBAAoB,CAChBxE,cAAeL,EAAAA,EAAOY,WAE1BkE,aAAc,CACVrE,WAAYT,EAAAA,EAAO+E,WAEvBC,aAAc,CACV3E,cAAeL,EAAAA,EAAO+E,WAE1BE,aAAc,CACV5E,cAAeL,EAAAA,EAAOY,aAQxBsE,GAAM,SAAA5R,IAAAC,EAAAA,EAAAA,GAAA2R,EAAA5R,GAAA,I,IAAAE,G,EAAA0R,E,gaAUR,SAAAA,EAAmB1U,GAAO,IAAAiD,EAetB,OAfsBC,EAAAA,EAAAA,GAAA,KAAAwR,GACtBzR,EAAAD,EAAAG,KAAA,KAAMnD,IAENoD,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,oBAAAG,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,kBAAAG,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,uBAAAG,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,wBAAAG,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,+BAAAG,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,uBAAAG,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,iBAoEJG,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,kBAEyB,WACrB,IACI0R,GAAAA,EAAYC,oBAAmB,GAC/BD,GAAAA,EAAYE,oBAAe7M,GAC3BrD,EAAAA,EAAcmQ,iBACd,IACIC,EACA9R,EAAKjD,MADL+U,cAEJ,GAAIA,EACAA,QAEC,CACD,IACMrD,EAD6B,IAAIsD,GAAAA,EAAgBlU,OAAOC,SAASkU,QAC5BC,IAAI,aACzCC,EAAyBlS,EAAKmB,kBACpC+Q,EAASC,WAAY,EACrBnS,EAAKU,SAASwR,GACVzD,IAAcA,EAAU2D,SAAS,UACjCvU,OAAOC,SAASC,OAAO0Q,GAGvB4D,GAAAA,EAASC,QAEjB,CACJ,CACA,MAAO1R,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKuS,eAAehU,KAAMqC,GAClE,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,oBAE0B,SAACwS,GACxB,IACIxS,EAAKU,SAAS,CACV+R,WAAO1N,EACPsL,SAAUmC,EAAME,OAAOpR,MACvBqR,kBAAkB,GAE1B,CACA,MAAO/R,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAK4S,iBAAiBrU,KAAMqC,GACpE,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,oBAE0B,SAACwS,GACxB,IACIxS,EAAKU,SAAS,CACV+R,WAAO1N,EACPqL,SAAUoC,EAAME,OAAOpR,MACvBuR,kBAAkB,GAE1B,CACA,MAAOjS,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAK8S,iBAAiBvU,KAAMqC,GACpE,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,gBAEsB,WACnB,IACI,IACIN,EACAM,EAAKjD,MADL2C,QAEJ8D,EAGIxD,EAAKkB,MAFL6R,EAAavP,EAAbuP,cACAC,EAAexP,EAAfwP,iBAGAtT,GAAYqT,GAAkBC,IAC9BhT,EAAKU,SAASV,EAAKmB,mBACnBzB,IAER,CACA,MAAOkB,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKiT,aAAa1U,KAAMqC,GAChE,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,mBAEyB,WACtB,IACI,IACIkT,EACAlT,EAAKjD,MADLmW,WAIAH,EACA/S,EAAKkB,MADL6R,cAGAG,IAAeH,IACf/S,EAAKU,SAASV,EAAKmB,mBACnB+R,IAER,CACA,MAAOtS,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKmT,gBAAgB5U,KAAMqC,GACnE,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,UAEgB,WACb,IAAI,IAAAoT,EAEIhD,EACApQ,EAAKkB,MADLkP,SAGJpQ,EAAKU,SAAS,CACVmS,kBAAkB,IAGlBzC,GACApQ,EAAKqT,iBACLlE,GAASqB,sBAAsBJ,EAAUpQ,EAAKsT,+BAEzB,QAApBF,EAAIpT,EAAKuT,mBAAW,IAAAH,GAAhBA,EAAkBI,SACvBxT,EAAKuT,YAAYC,QAAQC,OAEjC,CACA,MAAO7S,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAK0T,OAAOnV,KAAMqC,GAC1D,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,YAEkB,WACf,IAAI,IAAA2T,EACAC,EAKI5T,EAAKkB,MAJL2S,EAAQD,EAARC,SACAxD,EAAQuD,EAARvD,SACAD,EAAQwD,EAARxD,SACA0D,EAASF,EAATE,UAOJ,GAJA9T,EAAKU,SAAS,CACViS,kBAAkB,IAGlBvC,GAAYC,EAEZ,GADArQ,EAAK+T,mBACa,IAAdD,GAAmBD,EACnB1E,GAASgB,iBAAiBC,EAAUC,EAAUrQ,EAAKgU,6BAElD,CACD,IAAMC,EAAsD,IAApCC,KAAKC,MAAsB,EAAhBD,KAAKE,SAAe,IACvDC,EAAAA,GAAAA,aAAW,WACP,IACIhX,EACA2C,EAAKkB,MADL7D,UAGJ,GAAIA,EAAW,CACX,IAAMoV,EAAgB,CAClBpT,QAAShC,EAAUiX,sBACnB3E,YAAanQ,EAAAA,EAAWyC,OAE5BjC,EAAKU,SAAS,CACV+R,MAAOA,GAEf,MAEIzS,EAAKyP,YAETzP,EAAKuU,kBACT,GAAGN,EACP,MAEqB,QAApBN,EAAI3T,EAAKwU,mBAAW,IAAAb,GAAhBA,EAAkBH,SACvBxT,EAAKwU,YAAYhB,QAAQC,OAGjC,CACA,MAAO7S,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKyU,SAASlW,KAAMqC,GAC5D,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,uBAE6B,WAC1B,IACIA,EAAKU,SAASV,EAAKmB,mBAAmB,WAAM,IAAAuT,EACpB,QAApBA,EAAI1U,EAAKuT,mBAAW,IAAAmB,GAAhBA,EAAkBlB,SAClBxT,EAAKuT,YAAYC,QAAQC,OAEjC,GACJ,CACA,MAAO7S,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAK2U,oBAAoBpW,KAAMqC,GACvE,CACJ,KAEAT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,0BACiC,WAC7B,IACI,IAAA4U,EAMI5U,EAAKkB,MALL2T,EAAkBD,EAAlBC,mBACAC,EAAoBF,EAApBE,qBACAC,EAAWH,EAAXG,YACA1E,EAAQuE,EAARvE,SACAD,EAAQwE,EAARxE,SAGAnH,GAAmB,EACvB,GAAI4L,EAAoB,CACpB,IAAIG,EAAmCC,GAAAA,EAAmBC,iBAAiBL,EAAoBE,EAC3FI,GAAAA,EAA0BC,qBAC9BJ,EAAcC,GAAAA,EAAmBI,wBAAwBR,EAAoBA,EAAmBS,gBAAiBP,GACjHQ,GAAAA,EAA4BC,sBAAsBT,EAAaC,IAE3DA,EAAYS,WAAaX,KACzBE,EAAYU,mBAAqBZ,EACjCS,GAAAA,EAA4BC,sBAAsBT,EAAaC,GAC/D/L,GAAU,EAElB,CAEA,GAAIA,GAAW8L,EAAa,CACxB/U,EAAK2V,2BACL,IAAMpF,EAAkC,CACpCH,SAAUA,EACVwF,gBAAiBvF,EACjB0E,YAAaA,GAEjB5F,GAASmB,eAAeC,EAAgBvQ,EAAK6V,sBACjD,CACJ,CACA,MAAOjV,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAK8V,uBAAuBvX,KAAMqC,GAC1E,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,yBAE+B,WAC5B,IACIA,EAAKU,SAASV,EAAKmB,mBAAmB,WAAM,IAAA4U,EACpB,QAApBA,EAAI/V,EAAKuT,mBAAW,IAAAwC,GAAhBA,EAAkBvC,SAClBxT,EAAKuT,YAAYC,QAAQC,OAEjC,IACA8B,GAAAA,EAA4BC,uBAChC,CACA,MAAO5U,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKgW,sBAAsBzX,KAAMqC,GACzE,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,8BAEoC,WACjC,IACI,IACIqQ,EACArQ,EAAKkB,MADLmP,SAGJrQ,EAAKU,SAAS,CACVmU,mBAAoBM,GAAAA,EAA0Bc,wBAC9CnB,qBAAsBK,GAAAA,EAA0Be,gBAAkB7F,EAClE0E,YAAaI,GAAAA,EAA0Be,eAE/C,CACA,MAAOtV,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKmW,2BAA2B5X,KAAMqC,GAC9E,CACJ,KAGAT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,4BACmC,SAACwS,GAChC,IACIxS,EAAKU,SAAS,CACV0V,iBAAkB5D,EAAME,OAAOpR,MAC/B+U,0BAA0B,GAElC,CACA,MAAOzV,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKsW,yBAAyB/X,KAAMqC,GAC5E,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,yBAE+B,WAC5B,IACIA,EAAKU,SAAS,CACV6V,WAAW,EACXC,oBAAoB,EACpBJ,iBAAkB,GAClBC,0BAA0B,IAC3B,WAAM,IAAAI,EACuB,QAA5BA,EAAIzW,EAAK0W,2BAAmB,IAAAD,GAAxBA,EAA0BjD,SAC1BxT,EAAK0W,oBAAoBlD,QAAQC,OAEzC,GACJ,CACA,MAAO7S,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAK2W,sBAAsBpY,KAAMqC,GACzE,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,yBAE+B,WAC5B,IACI,IAAA4W,EAGI5W,EAAKkB,MAFL2S,EAAQ+C,EAAR/C,SACAgD,EAAUD,EAAVC,WAGJ7W,EAAKU,SAAS,CACV8V,oBAAoB,EACpBM,gBAAgB,IACjB,WAMM,IAAAC,EALgGC,EAAlF,IAAfH,GAAqBhD,IAAaoD,GAAAA,EAAUC,UAAYrD,IAAaoD,GAAAA,EAAUE,gBAM3D,QAApBJ,EAAI/W,EAAKuT,mBAAW,IAAAwD,GAAhBA,EAAkBvD,SAClBxT,EAAKuT,YAAYC,QAAQC,QANT,QAApBuD,EAAIhX,EAAKwU,mBAAW,IAAAwC,GAAhBA,EAAkBxD,SAClBxT,EAAKwU,YAAYhB,QAAQC,OAQrC,GACJ,CACA,MAAO7S,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKoX,sBAAsB7Y,KAAMqC,GACzE,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,qBAE2B,SAACqX,GACzB,IACIrX,EAAKU,SAAS,CACVoW,gBAAiBnS,QAAQ0S,IAEjC,CACA,MAAOzW,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKsX,kBAAkB/Y,KAAMqC,GACrE,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,oBAE0B,WACvB,IACIA,EAAKU,SAAS,CACVoW,gBAAgB,GAExB,CACA,MAAOlW,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKuX,iBAAiBhZ,KAAMqC,GACpE,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,eAEqB,WAClB,IAAI,IAAAwX,EACAC,EAGIzX,EAAKkB,MAFLwW,EAAkBD,EAAlBC,mBACAtB,EAAgBqB,EAAhBrB,iBAGAzF,EAA4B,GAC5B+G,GAAuC,QAArBF,EAAIxX,EAAK2X,oBAAY,IAAAH,GAAjBA,EAAmBhE,UACzC7C,EAAoB3Q,EAAK2X,aAAanE,QAAQoE,WAC9C5X,EAAKU,SAAS,CACVoW,gBAAiBnS,QAAQgM,GACzB0F,0BAA0B,KAI7BqB,IAAsB/G,IACvB3Q,EAAKU,SAAS,CACVoW,gBAAgB,EAChBT,0BAA0B,IAG1BD,IACApW,EAAK6X,sBACL1I,GAASuB,wBAAwB0F,EAAkBzF,EAAmB3Q,EAAK8X,iCAGvF,CACA,MAAOlX,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAK+X,YAAYxZ,KAAMqC,GAC/D,CACJ,KAKAT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,kBACyB,WACrBA,EAAKU,SAAS,CACVyR,WAAW,EACX6F,yBAAyB,EACzBjF,eAAe,EACfkF,oBAAoB,EACpBjF,iBAAiB,GAEzB,KAAC7S,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,cAEoB,WACjBA,EAAKU,SAAS,CACVyR,WAAW,GAEnB,KAAChS,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,4BAEkC,WAC/BA,EAAKU,SAAS,CACVsX,yBAAyB,GAEjC,KAAC7X,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,kBAEwB,WACrBA,EAAKU,SAAS,CACVqS,eAAe,GAEvB,KAAC5S,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,uBAE6B,WAC1BA,EAAKU,SAAS,CACVuX,oBAAoB,GAE5B,KAAC9X,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,oBAE0B,WACvBA,EAAKU,SAAS,CACVsS,iBAAiB,GAEzB,KAAC7S,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,4BAEkC,WAC/BA,EAAKU,SAAS,CACVsX,yBAAyB,GAEjC,KAAC7X,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,kBAEwB,WACrBA,EAAKU,SAAS,CACVqS,eAAe,GAEvB,KAAC5S,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,uBAE6B,WAC1BA,EAAKU,SAAS,CACVuX,oBAAoB,GAE5B,KAAC9X,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,oBAE0B,WACvBA,EAAKU,SAAS,CACVsS,iBAAiB,GAEzB,KAAC7S,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,mBAcyB,WACtB,IACI3C,EACA2C,EAAKkB,MADL7D,UAGJ,GAAIA,EAAW,CACX,IAAMoV,EAAgB,CAClBpT,QAAShC,EAAU6a,gBACnBvI,YAAanQ,EAAAA,EAAWyC,OAE5BjC,EAAKU,SAAS,CACV+R,MAAOA,GAEf,MAEIzS,EAAKyP,WAEb,KAGAtP,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,uBAC8B,SAACK,GAC3B,IACI,IAAMC,GACAC,EAAAA,EAAAA,GAASF,EAAML,EAAKQ,oBAAoBjC,KAAMyB,EAAKmY,gBACrD7X,SAAAA,EAAQG,SACRT,EAAKU,SAAS,CACVyR,WAAW,EACX9U,UAAWiD,EAAOK,OAEtB+Q,GAAAA,EAAY0G,kBAAkB,GAAD5R,OAAIxG,EAAKgB,SAAQ,KAAAwF,OAAIxG,EAAKiB,QAAUX,EAAOK,MAEhF,CACA,MAAOC,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKQ,oBAAoBjC,KAAMqC,GACvE,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,gCAEsC,SAACK,GACpC,IACI,IAAMC,GACAC,EAAAA,EAAAA,GAASF,EAAML,EAAKsT,6BAA6B/U,KAAMyB,EAAKmY,gBAClE,GAAI7X,SAAAA,EAAQG,OAAQ,CAChB,IAAM4X,EAAkB/X,EAAOK,KAAK0X,KAC9BjI,EAAmB9P,EAAOK,KAAKyP,SAC/B0D,EAAoBxT,EAAOK,KAAKmT,UAEtC9T,EAAKU,SAAS,CACVmT,SAAUwE,EACVvE,UAAWA,IAGG,IAAdA,GACA9T,EAAKU,SAAS,CACVmW,WAAY,IACb,WAAM,IAAAyB,EACe,QAApBA,EAAItY,EAAKwU,mBAAW,IAAA8D,GAAhBA,EAAkB9E,SAClBxT,EAAKwU,YAAYhB,QAAQC,QAE7BzT,EAAKuY,gBACT,IACIF,IAASpB,GAAAA,EAAUuB,KACnBnG,GAAAA,EAASoG,YAAYrI,GAEhBiI,IAASpB,GAAAA,EAAUyB,MACxBrG,GAAAA,EAASsG,YAAYvI,IAGN,IAAd0D,GACL9T,EAAK4Y,kBACL5Y,EAAKuY,kBAGLvY,EAAKU,SAAS,CACVmW,WAAY,IACb,WAAM,IAAAgC,EACe,QAApBA,EAAI7Y,EAAKwU,mBAAW,IAAAqE,GAAhBA,EAAkBrF,SAClBxT,EAAKwU,YAAYhB,QAAQC,QAE7BzT,EAAKuY,gBACT,GAER,CACJ,CACA,MAAO3X,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKsT,6BAA6B/U,KAAMqC,GAChF,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,2BAEiC,SAACK,GAC/B,IACI,IAAMC,GACAC,EAAAA,EAAAA,GAASF,EAAML,EAAKgU,wBAAwBzV,KAAMyB,EAAKmY,gBAC7D,GAAI7X,SAAAA,EAAQG,OAAQ,CAChB,IAAMqY,EAA8BxY,EAAOK,KAE3C,GAAImY,GAAgBA,EAAarZ,QACzBqZ,EAAarY,SAAWyP,GAAW6I,SAAWD,EAAaE,0BAC3DhZ,EAAKU,SAAS,CACVuY,oBAAoB,IAIxBjZ,EAAKuS,qBAGR,CACD,IACIlV,EACA2C,EAAKkB,MADL7D,UAGJ,GAAIA,EAAW,CACX,IAAIgC,EAAkB,GACtB,GAAIyZ,EACA,GAAIA,EAAarY,SAAWyP,GAAWgJ,mBACnC7Z,EAAUhC,EAAUiX,2BAEnB,GAAIwE,EAAarY,SAAWyP,GAAWiJ,SAAU,KAAAC,EAC1B,QAAxBA,EAAIN,EAAaO,eAAO,IAAAD,GAApBA,EAAsBE,yBACtBja,EAAU+E,EAAAA,EAAOC,SAAShH,EAAUkc,oBAAqB,CAACT,EAAaO,QAAQC,0BAE9Eja,IACDA,EAAUhC,EAAUmc,UAE5B,MACK,GAAIV,EAAarY,SAAWyP,GAAWuJ,gBAAiB,KAAAC,EACjC,QAAxBA,EAAIZ,EAAaO,eAAO,IAAAK,GAApBA,EAAsBC,oBACtBta,EAAU+E,EAAAA,EAAOC,SAAShH,EAAUuc,sBAAuB,CAACd,EAAaO,QAAQM,qBAEhFta,IACDA,EAAUhC,EAAUiX,sBAE5B,CAGCjV,IACDA,EAAUhC,EAAU6a,iBAGxB,IAAMzF,EAAgB,CAClBpT,QAASA,EACTsQ,YAAanQ,EAAAA,EAAWyC,OAE5BjC,EAAKU,SAAS,CACV+R,MAAOA,GAEf,MAEIzS,EAAKyP,YAETzP,EAAKuU,kBACT,CAEJ,CACJ,CACA,MAAO3T,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKgU,wBAAwBzV,KAAMqC,GAC3E,CACJ,KAEAT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,yBACgC,SAACK,GAC7B,IACI,IAAMC,GACAC,EAAAA,EAAAA,GAASF,EAAML,EAAK6V,sBAAsBtX,KAAMyB,EAAKmY,gBAC3D,GAAI7X,SAAAA,EAAQG,OAAQ,CAChB,IAAAoZ,EAGI7Z,EAAKkB,MAFL2T,EAAkBgF,EAAlBhF,mBACAE,EAAW8E,EAAX9E,YAGE+E,EAAoCxZ,EAAOK,KAC7CmZ,EAASC,qBACTxE,GAAAA,EAA4BC,wBAC5BxV,EAAKuS,kBAEAuH,EAASE,OAAOnP,OAAS,IACtBiP,EAASE,OAAO,KACfC,GAAAA,EAAoBC,YACjBrF,IACAA,EAAmBsF,uBAAwB,EAC3C5E,GAAAA,EAA4BC,sBAAsBT,EAAaF,IAInE7U,EAAK4Y,kBAGb5Y,EAAKoa,2BAEb,CACJ,CACA,MAAOxZ,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAK6V,sBAAsBtX,KAAMqC,GACzE,CACJ,KAGAT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,kCACyC,SAACK,GACtC,IACI,IAAMC,GACAC,EAAAA,EAAAA,GAASF,EAAML,EAAKqa,+BAA+B9b,KAAMyB,EAAKmY,gBAChE7X,SAAAA,EAAQG,QACJH,EAAOK,MACPX,EAAKU,SAAS,CACV+P,wBAAyBnQ,EAAOK,KAAK8P,wBACrCiH,mBAAoBpX,EAAOK,KAAK+W,mBAChC4C,iBAAkBha,EAAOK,KAAK2Z,kBAAoB,IAIlE,CACA,MAAO1Z,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKqa,+BAA+B9b,KAAMqC,GAClF,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,kCAEwC,SAACK,GACtC,IACI,IAAMC,GACAC,EAAAA,EAAAA,GAASF,EAAML,EAAK8X,+BAA+BvZ,KAAMyB,EAAKmY,gBACpE,GAAI7X,SAAAA,EAAQG,OACR,GAAKH,EAAOK,KASRX,EAAKU,SAAS,CACV6V,WAAW,GACZvW,EAAKua,yBAXM,CACd,IAAMtG,EAAuD,IAArCC,KAAKC,MAAsB,GAAhBD,KAAKE,SAAgB,IACxDC,EAAAA,GAAAA,aAAW,WACPrU,EAAKU,SAAS,CACV6V,WAAW,GACZvW,EAAKua,oBACZ,GAAGtG,EACP,CAOR,CACA,MAAOrT,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAK8X,+BAA+BvZ,KAAMqC,GAClF,CACJ,IAvvBIZ,EAAKgB,SAAW,UAChBhB,EAAKiB,OAAS,SACdjB,EAAKwU,YAAcxW,IAAAA,YACnBgC,EAAK2X,aAAe3Z,IAAAA,YACpBgC,EAAK0W,oBAAsB1Y,IAAAA,YAC3BgC,EAAKuT,YAAcvV,IAAAA,YACnBgC,EAAKkB,MAAQlB,EAAKmB,gBAAgBnB,EAAKjD,MAAMqT,UAI7C+E,GAAAA,EAA0BqF,8BAA8Bxa,EAAKmW,4BAC7DnW,CACJ,CAkqCC,OAlqCAoB,EAAAA,EAAAA,GAAAqQ,EAAA,EAAApQ,IAAA,kBAAAC,MAED,SAAwB8O,GACpB,IACI/S,EAGAid,EAJAnI,GAAqB,EAErB1B,GAAmC,EACnCiH,GAA8B,EAalC,OAXInW,KAAKL,OACLuP,EAA0BlP,KAAKL,MAAMuP,wBACrC0B,EAAY5Q,KAAKL,MAAMiR,UACvBuF,EAAqBnW,KAAKL,MAAMwW,mBAChC4C,EAAmB/Y,KAAKL,MAAMoZ,iBAC9Bjd,EAAYkE,KAAKL,MAAM7D,YAGvBid,EAAmB,GACnBjd,EAAYqU,GAAAA,EAAY+I,kBAAkB,GAADjU,OAAIjF,KAAKP,SAAQ,KAAAwF,OAAIjF,KAAKN,UAEhE,CACH4T,wBAAoB9P,EACpB0N,WAAO1N,EACP8O,cAAU9O,EACVoN,UAAWA,EACXY,eAAe,EACfC,iBAAiB,EACjB3C,SAAU,GACVsC,kBAAkB,EAClBtV,UAAWA,EACXwZ,WAAY,EACZ6D,UAAWhJ,GAAAA,EAAYiJ,cAAcD,UACrCtK,SAAUA,GAAY,GACtByC,kBAAkB,EAClBiB,UAAW,EAGXgB,sBAAsB,EACtBkD,yBAAyB,EACzBiB,oBAAoB,EAIpB1C,WAAW,EACX9F,wBAAyBA,EACzBwH,oBAAoB,EACpBP,mBAAoBA,EACpBlB,oBAAoB,EACpBM,gBAAgB,EAChBwD,iBAAkBA,EAClBlE,iBAAkB,GAClBC,0BAA0B,EAGlC,GAAC,CAAAhV,IAAA,WAAAC,MA2bD,SAAiBG,GACbF,KAAK4W,iBACLzW,EAAAA,EAAcC,WAAWF,EAC7B,GAAC,CAAAJ,IAAA,YAAAC,MAED,SAAkBjC,GACdkC,KAAK4W,iBACLzW,EAAAA,EAAcgO,SAAS,CAAErQ,QAASA,EAASsQ,YAAanQ,EAAAA,EAAWyC,OACvE,GAAC,CAAAZ,IAAA,oBAAAC,MAyPD,WACI,IACI,IAAAsZ,EAGIrZ,KAAKL,MAFL7D,EAASud,EAATvd,UACA+S,EAAQwK,EAARxK,SAGC/S,EAIDkE,KAAKsZ,aAHL/Y,EAAAA,EAAeC,aAAaR,KAAKP,SAAUO,KAAKN,OAAQM,KAAKf,qBAKjE2O,GAASsB,wBAAwBlP,KAAK8Y,gCAElCjK,GACA7O,KAAKmS,QAEb,CACA,MAAO9S,GACHW,KAAKV,SAASC,EAAAA,EAAQC,cAAcQ,KAAKS,kBAAkBzD,KAAMqC,GACrE,CACJ,GAAC,CAAAS,IAAA,uBAAAC,MAED,WACI6T,GAAAA,EAA0B2F,iCAAiCvZ,KAAK4U,2BACpE,GACA,CAAA9U,IAAA,SAAAC,MAEA,WACI,IAwCIiB,EAmDQwY,EACAC,EACAC,EA7FZzY,EAMIjB,KAAKxE,MALL0F,EAAOD,EAAPC,QACA/E,EAAI8E,EAAJ9E,KACAuP,EAAKzK,EAALyK,MACAvN,EAAO8C,EAAP9C,QACAwT,EAAU1Q,EAAV0Q,WAGJgI,EA8BI3Z,KAAKL,MA7BLuR,EAAKyI,EAALzI,MACAoB,EAAQqH,EAARrH,SACA1B,EAAS+I,EAAT/I,UACA6F,EAAuBkD,EAAvBlD,wBACAjF,EAAamI,EAAbnI,cACAC,EAAekI,EAAflI,gBACA3C,EAAQ6K,EAAR7K,SACAsC,EAAgBuI,EAAhBvI,iBACAtV,EAAS6d,EAAT7d,UACAwZ,EAAUqE,EAAVrE,WACA6D,EAASQ,EAATR,UACAtK,EAAQ8K,EAAR9K,SACAyC,EAAgBqI,EAAhBrI,iBAGAoG,EAAkBiC,EAAlBjC,mBAIA1C,EAAS2E,EAAT3E,UACA9F,EAAuByK,EAAvBzK,wBACAwH,EAAkBiD,EAAlBjD,mBACAP,EAAkBwD,EAAlBxD,mBACAlB,EAAkB0E,EAAlB1E,mBACA8D,EAAgBY,EAAhBZ,iBACAxD,EAAcoE,EAAdpE,eACAV,EAAgB8E,EAAhB9E,iBACAC,EAAwB6E,EAAxB7E,yBA0WJ,OArWIhZ,IAAc8U,IAEV8G,EACA1W,EACIvE,IAAAA,cAAC4J,EAAAA,EAAK,CACFC,sBAAoB,EACpBC,sBAAoB,EACpBI,OACIlK,IAAAA,cAACuJ,EAAAA,EAAW,CAAC7I,GAAG,qBACZV,IAAAA,cAACG,EAAAA,EAAM,CACHjB,SAAU8a,EACVtZ,GAAG,0BACHM,MAAM,YACNH,QAAS0C,KAAKyU,uBAEb3Y,EAAUyS,WAEf9R,IAAAA,cAACG,EAAAA,EAAM,CACHO,GAAG,oBACHyc,QAASnD,EACTnZ,QAAS0C,KAAKuU,wBAEbzY,EAAU+d,oBAIvB1c,GAAG,sBACHsJ,OAAQ3K,EAAUge,kBAClBpT,SAAS,KACTvK,KAAMub,EACNvZ,QAAS6B,KAAKyU,uBAEdhY,IAAAA,cAAC4H,EAAAA,EAAI,CAACC,WAAS,GACX7H,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,GAAI,IACXjI,IAAAA,cAAC0H,EAAAA,EAAI,KACArI,EAAUie,gCAGnBtd,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,GAAI,IACXjI,IAAAA,cAACud,GAAAA,EAAoB,CACjB5a,KAAM,CAAEyP,SAAUA,GAClBlT,SAAU8a,EACVwD,MAAM,mCAYtBhF,GACAuE,EACI/c,IAAAA,cAAC4H,EAAAA,EAAI,CAACC,WAAS,EAACE,eAAe,SAAStH,UAAWgE,EAAQ+O,cACvDxT,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,GACNhI,IAAAA,cAAC0H,EAAAA,EAAI,CACDlH,MAAM,SACN6G,KAAK,KACLoW,OAAO,UAENpe,EAAUqe,0BAM3BT,EAAS1E,EACLvY,IAAAA,cAACG,EAAAA,EAAM,CACHO,GAAG,yBACHyc,QAASlD,EACTpZ,QAAS0C,KAAK6V,uBAEb/Z,EAAUse,UAIX3d,IAAAA,cAACuJ,EAAAA,EAAW,CAAC7I,GAAG,qBACZV,IAAAA,cAACG,EAAAA,EAAM,CACHjB,SAAU+a,EACVvZ,GAAG,0BACHM,MAAM,YACNH,QAAS0C,KAAK6V,uBAEb/Z,EAAUyS,WAEf9R,IAAAA,cAACG,EAAAA,EAAM,CACHO,GAAG,eACHyc,QAASlD,EACTpZ,QAAS0C,KAAKwW,aAEb1a,EAAUue,eAK3BZ,EACIhd,IAAAA,cAAA,OAAK6d,KAAK,QACN7d,IAAAA,cAAC4H,EAAAA,EAAI,CAACC,WAAS,EAACe,QAAS,GACrB5I,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,GAAI,KACTvG,GACE1B,IAAAA,cAAAA,IAAAA,SAAA,KACK+c,GAGT/c,IAAAA,cAAC0H,EAAAA,EAAI,CAAC,YAAU,SAASmW,KAAK,SACzBtF,EACGnS,EAAAA,EAAOC,SAAShH,EAAUye,gBAAiB,CAAC1F,IAC1C/Y,EAAU0e,gCAGxB/d,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,GAAI,KACTsQ,GACEvY,IAAAA,cAACmH,EAAAA,EAAS,CACN6W,aAAa,WACbvd,UAAWgE,EAAQqO,WACnB5T,SAAU+a,EACVhW,MAAOoU,IAA6B1R,QAAQyR,GAC5ChR,WAAYiR,IAA6B1R,QAAQyR,GAC7C/Y,EAAU4e,yBAAsBlX,EACpCrG,GAAG,sBACH0K,MAAO/L,EAAU6e,YACjBC,IAAK5a,KAAKmV,oBACVpV,MAAO8U,EACP9Q,SAAU/D,KAAK+U,6BAK9BoB,GAAsB/S,QAAQ2V,KAAsB/D,IAAc0B,GAC/Dja,IAAAA,cAAC4H,EAAAA,EAAI,CACDnH,UAAWgE,EAAQ0O,iBACnBtL,WAAS,EACTC,WAAW,WACXkB,UAAU,SACVJ,QAAS,GAET5I,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,GACNhI,IAAAA,cAACoe,GAAAA,EAAS,CACNC,GAAI3B,EACJyB,IAAK5a,KAAKoW,aACV2E,QAAShC,EACThV,SAAU/D,KAAK+V,kBACfiF,UAAWhb,KAAKgW,iBAChBiF,UAAWjb,KAAKgW,oBAGvBT,GACG9Y,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,GACNhI,IAAAA,cAAC0H,EAAAA,EAAI,CAACjH,UAAWgE,EAAQ2O,mBAAoBpS,MAAM,QAAQqG,KAAK,SAC3DhI,EAAUof,yBAM7B/c,GACE1B,IAAAA,cAAC4H,EAAAA,EAAI,CACDC,WAAS,EACTE,eAAe,YAEf/H,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,GAAc,OAAVgH,GAAiB,IAC3BgO,OAQrBF,EACI/c,IAAAA,cAAAA,IAAAA,SAAA,KACIA,IAAAA,cAAC4H,EAAAA,EAAI,CAACC,WAAS,EAACE,eAAe,SAAStH,UAAWgE,EAAQ+O,cACvDxT,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,GACNhI,IAAAA,cAAC0H,EAAAA,EAAI,CACDlH,MAAM,SACN6G,KAAK,KACLoW,OAAO,UAENpe,EAAUqf,iBAItBjK,GACGzU,IAAAA,cAAC4H,EAAAA,EAAI,CAACC,WAAS,EAACE,eAAe,SAAStH,UAAWgE,EAAQ8O,cACvDvT,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,GAAI,IACXjI,IAAAA,cAAC+R,EAAAA,EAAK,CACFrR,GAAG,iBACHhB,KAAMiH,QAAQ8N,GACdkK,UAAWhY,QAAQjF,GACnBsQ,KAAMyC,EAAMpT,QACZE,KAAMkT,EAAM9C,YACZ/Q,QAAQ,aAKvB+F,QAAQuO,GAA6B,IAAf2D,IACnB7Y,IAAAA,cAAC4H,EAAAA,EAAI,CAACC,WAAS,EAACE,eAAe,UAC3B/H,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,GAAI,IACXjI,IAAAA,cAAC4e,GAAAA,EAAS,CACNpe,MAAM,SACNE,GAAG,YACHsR,KAAM3S,EAAU8I,gBAChB0W,OAAQ,CAACtb,KAAK4R,qBAKd,IAAf0D,GACG7Y,IAAAA,cAAC4H,EAAAA,EAAI,CAACC,WAAS,EAACE,eAAe,UAC3B/H,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,GACNhI,IAAAA,cAACG,EAAAA,EAAM,CACHjB,SAAU8V,EACVtU,GAAG,oBACHC,mBAAmB,UACnBC,QAAQ,OACRC,QAAS0C,KAAKoT,qBAEbtX,EAAUyf,yBAQnC7B,EAAwB,IAAfpE,EACL7Y,IAAAA,cAACG,EAAAA,EAAM,CACHO,GAAG,UACHyc,QAASpI,EACTlU,QAAS0C,KAAKmS,QAEbrW,EAAU0f,SAEC,IAAflG,GACIhD,GAAYA,IAAaoD,GAAAA,EAAUC,UAAYrD,IAAaoD,GAAAA,EAAUE,qBAQ3EpS,EAPA/G,IAAAA,cAACG,EAAAA,EAAM,CACHO,GAAG,YACHyc,QAASnI,EACTnU,QAAS0C,KAAKkT,UAEbpX,EAAU2f,WAInBhC,EACIhd,IAAAA,cAAA,OAAK6d,KAAK,QACN7d,IAAAA,cAAC4H,EAAAA,EAAI,CAACC,WAAS,GACX7H,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,GAAI,KACTvG,GACE1B,IAAAA,cAAAA,IAAAA,SAAA,KACK+c,GAGT/c,IAAAA,cAACmH,EAAAA,EAAS,CACN6W,aAAa,WACbvd,UAAWgE,EAAQyO,UACnBhU,SAAUyH,QAAQkP,GAAYd,GAAgC,IAAf8D,GAC/C5U,MAAO4Q,IAAqBlO,QAAQyL,GACpChL,WAAYyN,IAAqBlO,QAAQyL,GACrC/S,EAAU4e,yBAAsBlX,EACpCrG,GAAG,cACH0K,MAAO/L,EAAU6e,YACjBC,IAAK5a,KAAKgS,YACVjS,MAAO8O,GAAY,GACnB9K,SAAU/D,KAAKuR,iBACfvJ,aAAchI,KAAKmS,SAEP,IAAfmD,KACQhD,GAAYA,IAAaoD,GAAAA,EAAUC,UAAYrD,IAAaoD,GAAAA,EAAUE,kBACvEnZ,IAAAA,cAACmH,EAAAA,EAAS,CACN6W,aAAa,eACbvd,UAAWgE,EAAQyO,UACnBhU,SAAU8V,EACV/Q,MAAO0Q,IAAqBhO,QAAQ0L,GACpCjL,WAAYuN,IAAqBhO,QAAQ0L,GACrChT,EAAU4f,yBAAsBlY,EACpCrG,GAAG,cACH0K,MAAO/L,EAAU6f,YACjBC,gBAAc,EACdhB,IAAK5a,KAAKiT,YACVjV,KAAK,WACL+B,MAAO+O,GAAY,GACnB/K,SAAU/D,KAAKqR,iBACfrJ,aAAchI,KAAKkT,aAKtChE,GACGzS,IAAAA,cAAC4H,EAAAA,EAAI,CACDnH,UAAWgE,EAAQoO,mBACnBhL,WAAS,EACTE,eAAe,YAEf/H,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,GACNhI,IAAAA,cAACG,EAAAA,EAAM,CACHjB,SAAU6V,GAAiBC,EAC3BtU,GAAG,oBACHF,MAAM,QACNG,mBAAmB,UACnBC,QAAQ,OACRC,QAAS0C,KAAKoV,uBAEbtZ,EAAU+f,cAKzB1d,GACE1B,IAAAA,cAAC4H,EAAAA,EAAI,CACDnH,UAAWgE,EAAQ4O,aACnBxL,WAAS,EACTE,eAAe,YAEf/H,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,GAAc,OAAVgH,GAAiB,IAC3BgO,MASrB1Y,EADA7C,EAEI1B,IAAAA,cAAC4J,EAAAA,EAAK,CACFC,qBAAsBkL,GAAiBC,GAAmBiF,EAC1DnQ,qBAAsBiL,GAAiBC,GAAmBiF,EAC1DlQ,yBAAuB,EACvBrJ,GAAG,cACHwJ,OAAQ+S,EACRjT,OAAQ+S,EACR9S,SAAS,KACTvK,KAAMA,EACNyK,oBAAqB4K,GAAiBC,GAAmBiF,GACzDvY,QAAS6B,KAAK0R,cAEb+H,GAMLhd,IAAAA,cAACqf,GAAAA,GAAI,CAAC5e,UAAWgE,EAAQsO,WACrB/S,IAAAA,cAACsf,GAAAA,GAAW,KACPtC,MASrBhd,IAAAA,cAAAA,IAAAA,SAAA,KACKuE,EAGb,KAACkP,CAAA,CA5rCO,CAASzT,IAAAA,WAisCrB,UAAemO,EAAAA,EAAAA,GAAWyE,GAA1B,EAAkC2M,EAAAA,GAAAA,KAAAA,CAAY9L,KCjzCvC,IAAK+L,GAAqB,SAArBA,GAAqB,OAArBA,EAAAA,EAAqB,mBAArBA,EAAAA,EAAqB,qBAArBA,EAAAA,EAAqB,yBAArBA,EAAAA,EAAqB,yBAArBA,EAAAA,EAAqB,yCAArBA,EAAAA,EAAqB,yBAArBA,EAAAA,EAAqB,uCAArBA,EAAAA,EAAqB,mDAArBA,EAAAA,EAAqB,qBAArBA,EAAAA,EAAqB,oDAArBA,EAAAA,EAAqB,0CAArBA,CAAqB,M,YCiBjC,SA9BuB,CACnBC,eAAc,SAAC5P,EAAkCC,GAC7CC,EAAAA,EAAQC,KAAKzM,KAAKkc,eAAelf,KAAM,wBAAyB,KAAMsP,EAAUC,EACpF,EACAsH,kBAAiB,SAACsI,EACd7P,EACAC,GACAC,EAAAA,EAAQC,KAAKzM,KAAK6T,kBAAkB7W,KAAM,mBAAoBmf,EAAS7P,EAAUC,EACrF,EACA6P,qBAAoB,SAAC9P,GACjBE,EAAAA,EAAQC,KAAKzM,KAAKoc,qBAAqBpf,KAAM,4BAA6B,KAAMsP,EACpF,EACA+P,sBAAqB,SAACC,EAClBhQ,EACAC,GACAC,EAAAA,EAAQC,KAAKzM,KAAKqc,sBAAsBrf,KAAM,sBAAuBsf,EAAShQ,EAAUC,EAC5F,EACAgQ,gBAAe,SAACD,EACZhQ,EACAC,GACAC,EAAAA,EAAQC,KAAKzM,KAAKuc,gBAAgBvf,KAAM,gBAAiBsf,EAAShQ,EAAUC,EAChF,EACAiQ,qBAAoB,SAACC,EACjBnQ,EACAC,GACAC,EAAAA,EAAQC,KAAKzM,KAAKwc,qBAAqBxf,KAAM,qBAAsByf,EAAenQ,EAAUC,EAChG,GCuCJ,IAAM8C,IAASvE,EAAAA,EAAAA,GAAa,CACxB4R,OAAQ,CACJC,WAAY,IAAF1X,OAAM+F,EAAAA,EAAOO,WACvBM,UAAWb,EAAAA,EAAOY,WAEtBgR,WAAY,CACRlW,SAAU,SAEdmW,eAAgB,CACZpR,WAAYT,EAAAA,EAAOO,WAEvBuR,oBAAqB,CACjBrR,WAAYT,EAAAA,EAAOO,WAEvBwR,UAAW,CACPA,UAAW,UAEflN,mBAAoB,CAChBxE,cAAeL,EAAAA,EAAOY,aAQxBoR,GAAM,SAAA1e,IAAAC,EAAAA,EAAAA,GAAAye,EAAA1e,GAAA,I,IAAAE,G,EAAAwe,E,gaAOR,SAAAA,EAAmBxhB,GAAO,IAAAiD,EAWtB,OAXsBC,EAAAA,EAAAA,GAAA,KAAAse,GACtBve,EAAAD,EAAAG,KAAA,KAAMnD,IAENoD,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,oBAAAG,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,kBAAAG,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,wBAAAG,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,iBAsDJG,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,oBAE2B,WACvB,IACI,IACI6d,EACA7d,EAAKkB,MADL2c,QAEExN,EAAW8E,GAAAA,EAA0Be,cAC3C2H,EAAQxN,SAAWA,EACnBrQ,EAAKU,SAAS,CACV2P,SAAUA,EACVwN,QAASA,EACThJ,mBAAoBM,GAAAA,EAA0Bc,yBAEtD,CACA,MAAOrV,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAK4S,iBAAiBrU,KAAMqC,GACpE,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,qBAE2B,SAACwS,GACzB,IACI,IAAAhP,EAIIxD,EAAKkB,MAHL2c,EAAOra,EAAPqa,QACA7I,EAAWxR,EAAXwR,YACAwJ,EAAWhb,EAAXgb,YAGE9f,EAAa8T,EAAME,OAAOhU,GAC1B4C,EAAgBkR,EAAME,OAAOpR,MACnC,OAAQ5C,GACJ,IAAK,eACDmf,EAAQY,UAAYnd,EACpB0T,EAAY0J,mBAAoB,EAChC,MACJ,IAAK,cACDb,EAAQc,SAAWrd,EACnB0T,EAAY4J,kBAAmB,EAC/B,MACJ,IAAK,WACDf,EAAQgB,MAAQvd,EACZkd,GAAeX,EAAQgB,MACvB7J,EAAY8J,eAAgBC,EAAAA,GAAAA,IAAalB,EAAQgB,MAAOL,GAGxDxJ,EAAY8J,cAAe,EAE/B9J,EAAYgK,eAAgB,EAGpChf,EAAKU,SAAS,CACVmd,QAASA,EACT7I,YAAaA,GAErB,CACA,MAAOpU,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKif,kBAAkB1gB,KAAMqC,GACrE,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,gBAEsB,WACnB,IACI,IACIN,EACAM,EAAKjD,MADL2C,QAIAwf,EACAlf,EAAKkB,MADLge,cAGAxf,IAAYwf,IACZlf,EAAKU,SAASV,EAAKmB,mBACnBzB,IACA6V,GAAAA,EAA4BC,wBAEpC,CACA,MAAO5U,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKiT,aAAa1U,KAAMqC,GAChE,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,mBAEyB,WACtB,IACI,IACIT,EACAS,EAAKjD,MADLwC,KAGJqU,EAOI5T,EAAKkB,MANL2c,EAAOjK,EAAPiK,QACAhJ,EAAkBjB,EAAlBiB,mBACA6C,EAAkB9D,EAAlB8D,mBACAwH,EAAatL,EAAbsL,cACA7O,EAAQuD,EAARvD,SACA2E,EAAWpB,EAAXoB,YAGA/L,GAAmB,EACvB,IAAKiW,EAAe,KAAA1H,EAKhB,GAJAxC,EAAYgK,eAAgB,EAC5BhK,EAAY0J,mBAAoB,EAChC1J,EAAY4J,kBAAmB,EAE3B/J,EAAoB,CACpB,IAAIsK,EAA4ClK,GAAAA,EAAmBC,iBAAiBL,EAAoBxE,EACpG8E,GAAAA,EAA0BC,qBAC9B+J,EAAuBlK,GAAAA,EAAmBI,wBAAwBR,EAAoBA,EAAmBS,gBAAiBjF,GAC1HkF,GAAAA,EAA4BC,sBAAsBnF,EAAU8O,GACxDA,EAAqB1J,YACrBxM,GAAU,EAElB,CAEA,IAAImW,GAA4B,EAC5BzO,EAA4B,GAgBhC,GAdI+G,GAAuC,QAArBF,EAAIxX,EAAK2X,oBAAY,IAAAH,GAAjBA,EAAmBhE,UACzC7C,EAAoB3Q,EAAK2X,aAAanE,QAAQoE,WAC9CwH,EAAmBza,QAAQgM,GAC3B3Q,EAAKU,SAAS,CACVoW,gBAAiBsI,KAIpB1H,IAAsB/G,GACvB3Q,EAAKU,SAAS,CACVoW,gBAAgB,IAIpB7N,GAAWmW,GAAoBza,QAAQkZ,EAAQgB,SAC3C7J,EAAY8J,cACbna,QAAQkZ,EAAQY,YAChB9Z,QAAQkZ,EAAQc,WAChBha,QAAQkZ,EAAQxN,UAEnB,OADArQ,EAAKqf,iBACG9f,GACJ,IAAK,cACD4P,GAASyO,sBAAsBC,EAAS7d,EAAKsf,kBAAmBtf,EAAKa,UACrE,MACJ,IAAK,QACDsO,GAAS2O,gBAAgBD,EAAS7d,EAAKsf,kBAAmBtf,EAAKa,UAI/E,CACJ,CACA,MAAOD,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKuf,gBAAgBhhB,KAAMqC,GACnE,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,mBAEyB,WACtB,IACI,IACIwf,EACAxf,EAAKjD,MADLyiB,WAIAN,EACAlf,EAAKkB,MADLge,cAGAM,IAAeN,IACflf,EAAKU,SAASV,EAAKmB,mBACnBqe,IAER,CACA,MAAO5e,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKyf,gBAAgBlhB,KAAMqC,GACnE,CACJ,KAEAT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,qBAC4B,SAACqX,GACzB,IACIrX,EAAKU,SAAS,CACVoW,gBAAiBnS,QAAQ0S,IAEjC,CACA,MAAOzW,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKsX,kBAAkB/Y,KAAMqC,GACrE,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,oBAE0B,WACvB,IACIA,EAAKU,SAAS,CACVoW,gBAAgB,GAExB,CACA,MAAOlW,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKuX,iBAAiBhZ,KAAMqC,GACpE,CACJ,KAKAT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,kBACyB,WACrBA,EAAKU,SAAS,CACVyR,WAAW,EACX+M,eAAe,GAEvB,KAAC/e,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,kBAEwB,WACrBA,EAAKU,SAAS,CACVwe,eAAe,GAEvB,KAAC/e,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,kBAEwB,WACrBA,EAAKU,SAAS,CACVwe,eAAe,GAEvB,KAeA/e,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,yBACgC,SAACK,GAC7B,IACI,IAAMC,GACAC,EAAAA,EAAAA,GAASF,EAAML,EAAK0f,sBAAsBnhB,KAAMyB,EAAKmY,gBACvD7X,SAAAA,EAAQG,QACRT,EAAKU,SAAS,CACV8d,YAAale,EAAOK,MAGhC,CACA,MAAOC,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAK0f,sBAAsBnhB,KAAMqC,GACzE,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,uBAE6B,SAACK,GAC3B,IACI,IAAMC,GACAC,EAAAA,EAAAA,GAASF,EAAML,EAAKQ,oBAAoBjC,KAAMyB,EAAKmY,gBACrD7X,SAAAA,EAAQG,QACRT,EAAKU,SAAS,CACVrD,UAAWiD,EAAOK,KAClBwR,WAAW,GAGvB,CACA,MAAOvR,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKQ,oBAAoBjC,KAAMqC,GACvE,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,qBAE2B,SAACK,GACzB,IACI,IAAMC,GACAC,EAAAA,EAAAA,GAASF,EAAML,EAAKsf,kBAAkB/gB,KAAMyB,EAAKmY,gBACvD,GAAI7X,SAAAA,EAAQG,OAAQ,CAChB,IAAMkf,EAAsCrf,EAAOK,KACnD,GAA4B,IAAxBgf,EAAalf,OAAc,CAC3B,IACImf,EACA5f,EAAKjD,MADL6iB,cAIAviB,EACA2C,EAAKkB,MADL7D,UAGAA,IACAqE,EAAAA,EAAcgO,SAAS,CACnBrQ,QAAShC,EAAUwiB,uBACnBlQ,YAAanQ,EAAAA,EAAWC,UAExBmgB,GACAA,EAActf,EAAOK,KAAKyP,UAE9BmF,GAAAA,EAA4BC,wBAC5BxV,EAAKU,SAASV,EAAKmB,mBAE3B,MACK,IAA6B,IAAzBwe,EAAalf,QAClB,GAAIkf,EAAaG,mBAAqBtC,GAAsBuC,uBACxD/f,EAAKU,SAAS,CACVsf,qBAAqB,IAEzBzK,GAAAA,EAA4BC,6BAE3B,GAAImK,EAAaG,mBAAqBtC,GAAsByC,kBAAmB,CAChF,IACIjL,EACAhV,EAAKkB,MADL8T,YAGAA,IACAA,EAAYkL,cAAe,EAC3BlgB,EAAKU,SAAS,CACVsU,YAAaA,EACb3E,SAAU,GACV2P,qBAAqB,IAEzBzK,GAAAA,EAA4BC,wBAEpC,OAGAxV,EAAKyP,YAETzP,EAAKmgB,gBACT,CACJ,CACA,MAAOvf,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKsf,kBAAkB/gB,KAAMqC,GACrE,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,+BAEqC,SAACK,GACnC,IACI,IAAMC,GACAC,EAAAA,EAAAA,GAASF,EAAML,EAAKogB,4BAA4B7hB,MAClD+B,SAAAA,EAAQG,QACRT,EAAKU,SAAS,CACVgX,mBAAoBpX,EAAOK,KAAK+W,mBAChC4C,iBAAkBha,EAAOK,KAAK2Z,kBAAoB,IAG9D,CACA,MAAO1Z,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKogB,4BAA4B7hB,KAAMqC,GAC/E,CACJ,IAtYIZ,EAAKgB,SAAW,UAChBhB,EAAKiB,OAAS,SACdjB,EAAKkB,MAAQlB,EAAKmB,kBAClBnB,EAAK2X,aAAe3Z,IAAAA,YAGpBmX,GAAAA,EAA0BqF,8BAA8Bxa,EAAK4S,kBAC7D5S,CACJ,CA+pBC,OA/pBAoB,EAAAA,EAAAA,GAAAmd,EAAA,EAAAld,IAAA,kBAAAC,MAED,WACI,IACIjE,EADA8U,GAAqB,EAErBuF,GAA8B,EAC9B4C,EAA2B,GAQ/B,OANI/Y,KAAKL,QACLiR,EAAY5Q,KAAKL,MAAMiR,UACvB9U,EAAYkE,KAAKL,MAAM7D,UACvBqa,EAAqBnW,KAAKL,MAAMwW,mBAChC4C,EAAmB/Y,KAAKL,MAAMoZ,kBAE3B,CACHuD,QAAS,CACLgB,MAAO,GACPJ,UAAW,GACXE,SAAU,GACVtO,SAAU,GACVgQ,SAAU,IAEdxL,wBAAoB9P,EACpBiQ,YAAa,CACT8J,cAAc,EACdE,eAAe,EACfkB,cAAc,EACdxB,mBAAmB,EACnBE,kBAAkB,GAEtB0B,SAAU,KACVN,qBAAqB,EACrB7N,UAAWA,EACX+M,eAAe,EACf7hB,UAAWA,EAGXqa,mBAAoBA,EACpBZ,gBAAgB,EAChBwD,iBAAkBA,EAClBI,UAAWhJ,GAAAA,EAAYiJ,cAAcD,UAG7C,GAAC,CAAArZ,IAAA,WAAAC,MA6ND,SAAiBG,GACbF,KAAK4W,iBACLzW,EAAAA,EAAcC,WAAWF,EAC7B,GAAC,CAAAJ,IAAA,YAAAC,MAED,SAAkBjC,GACdkC,KAAK4W,iBACLzW,EAAAA,EAAcgO,SAAS,CAAErQ,QAASA,EAASsQ,YAAanQ,EAAAA,EAAWyC,OACvE,GAAC,CAAAZ,IAAA,oBAAAC,MAkHD,WACI,IACIQ,EAAAA,EAAeC,aAAaR,KAAKP,SAAUO,KAAKN,OAC5CM,KAAKf,oBACLe,KAAKV,UACTsO,GAASsO,eAAelc,KAAKme,sBAAuBne,KAAKV,UACzDsO,GAASwO,qBAAqBpc,KAAK6e,4BACvC,CACA,MAAOxf,GACHW,KAAKV,SAASC,EAAAA,EAAQC,cAAcQ,KAAKS,kBAAkBzD,KAAMqC,GACrE,CACJ,GAAC,CAAAS,IAAA,uBAAAC,MAED,WACI6T,GAAAA,EAA0B2F,iCAAiCvZ,KAAKqR,iBACpE,GAEA,CAAAvR,IAAA,SAAAC,MAEA,WACI,IAwBIiB,EAxBJC,EAMIjB,KAAKxE,MALL0F,EAAOD,EAAPC,QACA/E,EAAI8E,EAAJ9E,KACAgC,EAAO8C,EAAP9C,QACA8f,EAAUhd,EAAVgd,WACAjgB,EAAIiD,EAAJjD,KAGJqV,EAcIrT,KAAKL,MAbL2c,EAAOjJ,EAAPiJ,QACAmC,EAAmBpL,EAAnBoL,oBACA7N,EAASyC,EAATzC,UACA+M,EAAatK,EAAbsK,cACA7hB,EAASuX,EAATvX,UACA2X,EAAWJ,EAAXI,YAGA0C,EAAkB9C,EAAlB8C,mBACAZ,EAAclC,EAAdkC,eACAwD,EAAgB1F,EAAhB0F,iBACAI,EAAS9F,EAAT8F,UAKJ,GAAIrd,IAAc8U,EAAW,CACzB,IAAI4I,EACAwF,EACAtF,EACAuF,EAIAC,EADAC,GAA0B,EAE1B1L,EAAY0J,oBAEZ+B,GADAC,GAAkB/b,QAAQkZ,EAAQY,YAE9BphB,EAAUsjB,0BACR5b,GAKV,IACI6b,EADAC,GAAyB,EAEzB7L,EAAY4J,mBAEZgC,GADAC,GAAiBlc,QAAQkZ,EAAQc,WAE7BthB,EAAUyjB,yBACR/b,GAKV,IACIgc,EADAC,GAAsB,EAEtBhM,EAAYgK,gBACZgC,GAAcrc,QAAQkZ,EAAQgB,QACvB7J,EAAY8J,cACZ9J,EAAYkL,aACnBa,EAAkBpc,QAAQkZ,EAAQgB,OAE3B7J,EAAY8J,aACXzhB,EAAU4jB,gBACRjM,EAAYkL,aACV7iB,EAAU6jB,qBACRnc,EALV1H,EAAU8jB,kBASbnB,IACDjF,EACI/c,IAAAA,cAAAA,IAAAA,SAAA,KACIA,IAAAA,cAAC0H,EAAAA,EAAI,CAAClH,MAAM,SAAS6G,KAAK,MACrBhI,EAAU+jB,kBAEd5B,GACGxhB,IAAAA,cAAC4e,GAAAA,EAAS,CACNpe,MAAM,SACNC,UAAWgE,EAAQ4b,oBACnB3f,GAAG,YACHsR,KAAM3S,EAAU8I,gBAChB0W,OAAQ,CAACtb,KAAKke,oBAM9BxE,EACIjd,IAAAA,cAACG,EAAAA,EAAM,CACHO,GAAG,mBACHyc,QAAS+D,EACTrgB,QAAS0C,KAAKge,iBAEbliB,EAAUgkB,mBAKnB3J,IACA8I,EACIxiB,IAAAA,cAAC4H,EAAAA,EAAI,CAACC,WAAS,EAACE,eAAe,YAC3B/H,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,GACNhI,IAAAA,cAACoe,GAAAA,EAAS,CACNC,GAAI3B,EACJyB,IAAK5a,KAAKoW,aACV2E,QAAShC,EACThV,SAAU/D,KAAK+V,kBACfiF,UAAWhb,KAAKgW,iBAChBiF,UAAWjb,KAAKgW,mBAEnBT,GACG9Y,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,GACNhI,IAAAA,cAAC0H,EAAAA,EAAI,CAACjH,UAAWgE,EAAQ2O,mBAAoBpS,MAAM,QAAQqG,KAAK,SAC3DhI,EAAUof,0BASnCuD,GACAjF,EACI/c,IAAAA,cAAAA,IAAAA,SAAA,KACIA,IAAAA,cAAC0H,EAAAA,EAAI,CAAClH,MAAM,SAAS6G,KAAK,MACrBhI,EAAU+jB,mBAIvBb,EACIviB,IAAAA,cAAC4H,EAAAA,EAAI,CAACC,WAAS,EAACE,eAAe,UAC3B/H,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACvH,UAAWgE,EAAQ6b,WAC1BtgB,IAAAA,cAAA,OACIsjB,IAAG,GAAA9a,OAAKC,EAAAA,EAAU8a,UAAS,wCAE/BvjB,IAAAA,cAAC0H,EAAAA,EAAI,KACArI,EAAUmkB,2BAO3BjB,EACIviB,IAAAA,cAAAA,IAAAA,SAAA,MACM0B,GACE1B,IAAAA,cAAC4H,EAAAA,EAAI,CAACC,WAAS,GACX7H,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,GACL+U,IAKb/c,IAAAA,cAAC4H,EAAAA,EAAI,CAACC,WAAS,GACX7H,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,GAAI,IACXjI,IAAAA,cAACud,GAAAA,EAAoB,CACjB5a,KAAM,CAAE+c,QAASne,GACjBkiB,6BAA2B,EAC3BjG,MAAM,mBACNkG,YAAa,CACT1jB,IAAAA,cAAC4H,EAAAA,EAAI,CAACC,WAAS,GACX7H,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,GAAI,IACXjI,IAAAA,cAAC0H,EAAAA,EAAI,CAACL,KAAK,MACNhI,EAAUskB,wBAGnB3jB,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,GAAI,GAAIwC,GAAI,GACnBzK,IAAAA,cAACmH,EAAAA,EAAS,CACNjI,SAAUgiB,EACVjd,MAAOye,EACPhiB,GAAG,eACH0G,WAAYqb,EACZrX,MAAO/L,EAAUukB,aACjBtY,cAAe,GACfuY,UAAQ,EACRvgB,MAAOuc,EAAQY,UACfnZ,SAAU/D,KAAK0d,kBACf1V,aAAchI,KAAKge,mBAG3BvhB,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,GAAI,GAAIwC,GAAI,GACnBzK,IAAAA,cAACmH,EAAAA,EAAS,CACNjI,SAAUgiB,EACVjd,MAAO4e,EACPniB,GAAG,cACH0G,WAAYwb,EACZxX,MAAO/L,EAAUykB,YACjBxY,cAAe,GACfuY,UAAQ,EACRvgB,MAAOuc,EAAQc,SACfrZ,SAAU/D,KAAK0d,kBACf1V,aAAchI,KAAKge,mBAG3BvhB,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,GAAI,IACXjI,IAAAA,cAACmH,EAAAA,EAAS,CACNjI,SAAUgiB,EACVjd,MAAO+e,EACPtiB,GAAG,WACH0G,WAAY2b,EACZ3X,MAAO/L,EAAU0kB,SACjBzY,cAAe,IACfuY,UAAQ,EACRvgB,MAAOuc,EAAQgB,MACfvZ,SAAU/D,KAAK0d,kBACf1V,aAAchI,KAAKge,0BAS7C7f,GACE1B,IAAAA,cAAC4H,EAAAA,EAAI,CACDC,WAAS,EACTC,WAAW,WACXrH,UAAWgE,EAAQ2b,eACnBpX,UAAU,UAEVhJ,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,GACLiV,KAUrB1Y,EADA7C,EAEI1B,IAAAA,cAAC4J,EAAAA,EAAK,CACFC,sBAAoB,EACpBC,sBAAoB,EACpBC,yBAAuB,EACvBrJ,GAAG,qBACHwJ,OAAQ+S,EACRjT,OAAQ+S,EACR9S,SAAS,KACTvK,KAAMA,EACNgC,QAAS6B,KAAK0R,cAEbsN,EACAC,GAMLxiB,IAAAA,cAAAA,IAAAA,SAAA,KACKuiB,EAIjB,CAEA,OACIviB,IAAAA,cAAAA,IAAAA,SAAA,KACKuE,EAGb,KAACgc,CAAA,CAlrBO,CAASvgB,IAAAA,WAurBrB,UAAemO,EAAAA,EAAAA,GAAWyE,GAA1B,CAAkC2N,I,eC/iBlC,SA9L+D,SAACxhB,GAC5D,IAyCI+M,EAwFAkY,EAkBAC,EAlJAC,EAoBAnlB,EApBAmlB,UACAC,EAmBAplB,EAnBAolB,iBACAzkB,EAkBAX,EAlBAW,KACA0kB,EAiBArlB,EAjBAqlB,WACAC,EAgBAtlB,EAhBAslB,SACAC,EAeAvlB,EAfAulB,mBACAC,EAcAxlB,EAdAwlB,aACAC,EAaAzlB,EAbAylB,QAGAC,EAUA1lB,EAVA0lB,aACAC,EASA3lB,EATA2lB,oBACAzD,EAQAliB,EARAkiB,kBACA0D,EAOA5lB,EAPA4lB,QACAC,EAMA7lB,EANA6lB,YACAljB,EAKA3C,EALA2C,QACAmjB,EAIA9lB,EAJA8lB,SAGAxlB,EACAN,EADAM,UAGEsG,EACF3F,IAAAA,cAACuJ,EAAAA,EAAW,CAAC7I,GAAG,yBACZV,IAAAA,cAACG,EAAAA,EAAM,CACHO,GAAI,mBACJG,QAASgkB,GAERxlB,EAAUylB,WAEf9kB,IAAAA,cAACG,EAAAA,EAAM,CACHO,GAAI,kBACJM,MAAM,YACNH,QAAS8jB,GAERtlB,EAAU0lB,WAOvB,GAAIb,GAAaA,EAAUrX,OAAS,EAAG,CACnC,IAAMmY,EAA2B,GACjCd,EAAUe,SAAQ,SAACC,EAASC,GACxBH,EAAU9e,KACNlG,IAAAA,cAACgM,EAAAA,GAAQ,CAAC3I,IAAG,WAAAmF,OAAa2c,IACtBnlB,IAAAA,cAACiM,EAAAA,GAAS,CACNe,WAAY3N,EAAU+lB,WACtBlZ,UAAU,KACVe,MAAM,OAENjN,IAAAA,cAACG,EAAAA,EAAM,CACHK,MAAM,OACNE,GAAE,iBAAA8H,OAAmB2c,GACrBxkB,mBAAmB,UACnBC,QAAQ,OACRC,QAAS+jB,EAAYM,EAAQV,QAASU,EAAQG,KAAMH,EAAQI,gBAAiBJ,EAAQK,UAAWL,EAAQM,WAEvGN,EAAQV,UAGjBxkB,IAAAA,cAACiM,EAAAA,GAAS,CAACe,WAAY3N,EAAUomB,SAC7BzlB,IAAAA,cAAA,YACKklB,EAAQG,OAGjBrlB,IAAAA,cAACiM,EAAAA,GAAS,CAACe,WAAY3N,EAAUqmB,UAC7B1lB,IAAAA,cAAA,YACKklB,EAAQhiB,QAGjBlD,IAAAA,cAACiM,EAAAA,GAAS,CAACe,WAAY3N,EAAUsmB,WAC7B3lB,IAAAA,cAAA,YACKklB,EAAQU,SAGjB5lB,IAAAA,cAACiM,EAAAA,GAAS,CAACe,WAAY3N,EAAUwmB,YAC7B7lB,IAAAA,cAAA,YACKklB,EAAQY,WAK7B,IAEAha,EACI9L,IAAAA,cAAC4H,EAAAA,EAAI,CAACC,WAAS,EAACe,QAAS,GACrB5I,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,IAAE,GACTjI,IAAAA,cAAC2L,EAAAA,GAAK,CACFC,WAAW,KACXlL,GAAG,cAEHV,IAAAA,cAAC+L,EAAAA,GAAS,KACN/L,IAAAA,cAACgM,EAAAA,GAAQ,KACLhM,IAAAA,cAACiM,EAAAA,GAAS,CAACC,UAAU,MAChB7M,EAAU+lB,YAEfplB,IAAAA,cAACiM,EAAAA,GAAS,CAACC,UAAU,MAChB7M,EAAUomB,SAEfzlB,IAAAA,cAACiM,EAAAA,GAAS,CAACC,UAAU,MAChB7M,EAAUqmB,UAEf1lB,IAAAA,cAACiM,EAAAA,GAAS,CAACC,UAAU,MAChB7M,EAAUsmB,WAEf3lB,IAAAA,cAACiM,EAAAA,GAAS,CAACC,UAAU,MAChB7M,EAAUwmB,cAIvB7lB,IAAAA,cAAC0M,EAAAA,GAAS,KACLsY,KAMzB,MACSb,IACLrY,EACI9L,IAAAA,cAAC0H,EAAAA,EAAI,KACArI,EAAU0mB,eAkDvB,OA5CI7B,GAAaA,EAAUrX,OAAS,IAChCmX,EACIhkB,IAAAA,cAAC4H,EAAAA,EAAI,CAACC,WAAS,EAACe,QAAS,GACrB5I,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,IAAE,GACTjI,IAAAA,cAACgmB,GAAAA,EAAU,CACPC,MAAO1B,EACP2B,KAAM9B,EACN+B,YAAa9B,EACbC,mBAAoBA,EACpB8B,aAAc3B,EACd4B,oBAAqB3B,OAQzCT,EACIjkB,IAAAA,cAAAA,IAAAA,SAAA,KACIA,IAAAA,cAAC4H,EAAAA,EAAI,CAACC,WAAS,EAACe,QAAS,GACrB5I,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,GAAI,GAAIwC,GAAI,GACnBzK,IAAAA,cAACmH,EAAAA,EAAS,CACNzG,GAAG,aACH0K,MAAO/L,EAAU+lB,WACjB7jB,KAAK,OACL+B,MAAOkhB,GAAW,GAClBld,SAAU2Z,EACV1V,aAAcsZ,KAGtB7kB,IAAAA,cAAA,WACAA,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,GAAI,IACVtC,IAGT3F,IAAAA,cAAA,WACAA,IAAAA,cAAA,OAAK,YAAU,UACV8L,GAEJkY,GAKLhkB,IAAAA,cAAC4J,EAAAA,EAAK,CACFlJ,GAAG,cACHsJ,OAAQ3K,EAAUwS,SAClB5H,SAAS,KACTvK,KAAMA,EACNgC,QAASA,GAERuiB,EAGb,E,kJC1KMrR,IAASvE,EAAAA,EAAAA,GAAa,CACxBiY,SAAU,CACN5X,aAAcH,EAAAA,EAAOY,UACrB+Q,WAAY3R,EAAAA,EAAOI,WAEvB4X,gBAAiB,CACb,wBAAyB,CACrBC,WAAYjY,EAAAA,EAAOkY,gBAEvB/X,aAAcH,EAAAA,EAAOY,aAmxB7B,UAAehB,EAAAA,EAAAA,GAAWyE,GAA1B,EAAkC2M,EAAAA,GAAAA,KAAAA,EA3wBe,SAACxgB,GAC9C,IAiCI2nB,EAhCAjiB,EAuBA1F,EAvBA0F,QACAkiB,EAsBA5nB,EAtBA4nB,gBACA3K,EAqBAjd,EArBAid,OACA4K,EAoBA7nB,EApBA6nB,gBACAC,EAmBA9nB,EAnBA8nB,OACAC,EAkBA/nB,EAlBA+nB,mBACAC,EAiBAhoB,EAjBAgoB,WACAC,EAgBAjoB,EAhBAioB,iBACAC,EAeAloB,EAfAkoB,oBACA5nB,EAcAN,EAdAM,UACA6nB,EAaAnoB,EAbAmoB,iBACAC,EAYApoB,EAZAooB,UACAlY,EAWAlQ,EAXAkQ,MAEAmY,EASAroB,EATAqoB,iBACAC,EAQAtoB,EARAsoB,iBACAC,EAOAvoB,EAPAuoB,sBACAC,EAMAxoB,EANAwoB,uBACAC,EAKAzoB,EALAyoB,qBACAC,EAIA1oB,EAJA0oB,mBACAxG,EAGAliB,EAHAkiB,kBACAyG,EAEA3oB,EAFA2oB,cACAC,EACA5oB,EADA4oB,aAGEC,EAA0B,GAG5BC,EAAgB,GACdC,EAA2B,GAC7BC,EAAiC,GAC/BC,EAAmC,GAIrCC,EAAqC,GACrCC,EAAgC,GAC9BC,EAAoC,GAEpCC,EAAQ,SAACC,EAAyBC,GAAa,OAAavX,OAAOsX,EAAcC,GAAO,EAExFC,EAAyB,SAACC,GAC5B,GAAIA,EAAMC,uBAAwB,CAC9B,GAAID,EAAMllB,MAIN,GAHI4kB,EAAoB,KAAO7oB,EAAUqpB,QACrCR,EAAoBS,OAAO,EAAG,GAE9BH,EAAMI,eAAyC,aAAxBJ,EAAMI,cAA8B,CAC3D,IAAIC,EAAyB,EACzBL,EAAM7lB,MAAQ6lB,EAAM7lB,KAAKmG,SAAW0f,EAAM7lB,KAAKmG,QAAQ+D,OAAS,IAChEgc,EACIL,EAAM7lB,KAAKmG,QAAQggB,WAAU,SAAAC,GAAC,OAAIA,EAAEzlB,QAAUklB,EAAMllB,KAAK,MACvC,GAClB4kB,EAAoBhiB,KAAK,GAADsC,OAAIggB,EAAM7lB,KAAKmG,QAAQ+f,GAAgB1iB,YAAW,KAGtF,MAEI+hB,EAAoBhiB,KAAK,GAADsC,OAAIggB,EAAMllB,MAAK,MAGZ,IAA/B4kB,EAAoBrb,QACpBqb,EAAoBhiB,KAAK7G,EAAUqpB,OAE3C,CACJ,EAEMM,EAAe,SAACC,EAA2BT,GACzCxB,GAA4C,qBAAxBwB,EAAMI,cAC1BX,EAAoB/hB,KAAK+iB,GAGzBlB,EAAgB7hB,KAAK+iB,EAE7B,EAopBA,OAxkBIjN,GAC0D,4BAAtDA,EAAOmL,GAAW+B,YAAYnC,GAAYoC,SAC1ChB,EAAwBjiB,KAAK,GAADsC,OAAInJ,EAAU+pB,WAAU,MAI5DvC,EAAO5B,SAAQ,SAACuD,EAAOrD,GACnB,IAAI8D,EAEAvoB,EAQA2oB,EACJ,OAPI3oB,EADA8nB,EAAM7lB,KAAK+D,SACN,GAAH8B,OAAMggB,EAAM7lB,KAAKjC,IAGd,GAAH8H,OAAMggB,EAAM7lB,KAAKjC,GAAE,KAAA8H,OAAI2e,EAAS,KAAA3e,OAAIue,EAAU,KAAAve,OAAI2c,GAIhDqD,EAAMc,UACV,IAAK,KACDD,EAAY,EACZ,MACJ,IAAK,IACDA,EAAY,EACZ,MACJ,IAAK,IACDA,EAAY,EACZ,MACJ,IAAK,IACDA,EAAY,EACZ,MAIJ,QACIA,EAAY,GAGpB,OAAQb,EAAMI,eACV,IAAK,SACDS,EAAYpC,EAAsB,EAAIoC,EACtCJ,EACIjpB,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,IAAE,EAACyC,GAAI2e,EAAWhmB,IAAG,QAAAmF,OAAUggB,EAAM7lB,KAAKjC,GAAE,KAAA8H,OAAI9H,IACvDV,IAAAA,cAACG,EAAAA,EAAM,CACHO,GAAIA,EACJG,QAAS6mB,GAERc,EAAM7lB,KAAKyI,QAIxB,MACJ,IAAK,YACD,GAA4C,iBAAxC1K,EAAG6oB,OAAO,EAAG,KACiC,uBAA9C7oB,EAAG6oB,OAAO,EAAG,IAAuD,CACpE,IAAIC,EAAmB,GACnBC,GAAwB,EACxBjB,EAAM7lB,KAAK+D,UACiC,iBAAxChG,EAAG6oB,OAAO,EAAG,MACbC,EAAW9oB,EAAG6Q,QAAQ,eAAgB,uBAEQ,uBAA9C7Q,EAAG6oB,OAAO,EAAG,MACbC,EAAW9oB,EAAG6Q,QAAQ,qBAAsB,+BAIJ,iBAAxC7Q,EAAG6oB,OAAO,EAAG,MACbC,EAAW,sBAAHhhB,OAAyB2e,EAAS,KAAA3e,OAAIue,EAAU,KAAAve,OAAI2c,EAAI,GAChEsE,GAAe,GAE+B,uBAA9C/oB,EAAG6oB,OAAO,EAAG,MACbC,EAAW,4BAAHhhB,OAA+B2e,EAAS,KAAA3e,OAAIue,EAAU,KAAAve,OAAI2c,EAAI,KAI9E8D,EACIjpB,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,IAAE,GACTjI,IAAAA,cAAC4H,EAAAA,EAAI,CACDE,WAAY,SACZD,WAAS,EACTmB,UAAW,OAEXhJ,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,IAAE,EAACyC,GAAI2e,EAAWhmB,IAAG,QAAAmF,OAAUggB,EAAM7lB,KAAKjC,GAAE,KAAA8H,OAAI9H,IACvDV,IAAAA,cAACmH,EAAAA,EAAS,CACNlD,MAAOukB,EAAM7lB,KAAKsB,MAClBmD,WAAYohB,EAAM7lB,KAAKyE,WACvB1G,GAAIA,EACJ0K,MAAOod,EAAM7lB,KAAKyI,MAClByY,SAAU2E,EAAMkB,WAChBpmB,MAAOklB,EAAMllB,MAAQqmB,OAAOnB,EAAMllB,OAAS,GAC3CgE,SAAU2Z,EACV3V,cAAeme,EAAe,QAAK1iB,KAG3C/G,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,IAAE,EAACyC,GAAI2e,EAAWhmB,IAAG,QAAAmF,OAAUggB,EAAM7lB,KAAKjC,GAAE,KAAA8H,OAAI9H,IACvDV,IAAAA,cAACG,EAAAA,EAAM,CACHO,GAAI8oB,EACJ3oB,QAAS6mB,GAERroB,EAAUuqB,aAMnC,KACK,CACD,IAAIC,EACwC,iBAAxCnpB,EAAG6oB,OAAO,EAAG,KAA6CzC,IAC1D+C,EAAS/C,GAGbmC,EACIjpB,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,IAAE,EAACyC,GAAI2e,EAAWhmB,IAAG,QAAAmF,OAAUggB,EAAM7lB,KAAKjC,GAAE,KAAA8H,OAAI9H,IACvDV,IAAAA,cAACmH,EAAAA,EAAS,CACNlD,MAAOukB,EAAM7lB,KAAKsB,MAClB4lB,OAAQA,EACRziB,WAAYohB,EAAM7lB,KAAKyE,WACvB1G,GAAIA,EACJ0K,MAAOod,EAAM7lB,KAAKyI,MAClB0e,YAAaD,EACbhG,SAAU2E,EAAMkB,WAChBpmB,MAAOklB,EAAMllB,MAAQqmB,OAAOnB,EAAMllB,OAAS,GAC3CgE,SAAU2Z,IAI1B,CACA,MAEJ,IAAK,WACD,IAAM8I,EAA+B,CACjC5jB,YAAawjB,OAAOtqB,EAAU2qB,WAC9B1mB,MAAO,IAEP2mB,GAAiB,EACjBzB,EAAK,SAAYA,EAAM7lB,KAAKmG,SAC5B0f,EAAM7lB,KAAKmG,QAAQmc,SAAQ,SAAAiF,GACnBA,EAAO5mB,MAAM+C,aAAemiB,EAAK,QAASniB,aAC1C4jB,GAAQ,EAEhB,IAEJhB,EACIjpB,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,IAAE,EAACyC,GAAI2e,EAAWhmB,IAAG,QAAAmF,OAAUggB,EAAM7lB,KAAKjC,GAAE,KAAA8H,OAAI9H,IACvDV,IAAAA,cAACmqB,GAAAA,EAAQ,CACLlmB,MAAOukB,EAAM7lB,KAAKsB,MAClB8lB,YAAaA,EACb3iB,WAAYohB,EAAM7lB,KAAKyE,WACvB1G,GAAIA,EACJ0K,MAAOod,EAAM7lB,KAAKyI,MAAQod,EAAM7lB,KAAKyI,MAAQ,GAE7Cgf,SAAU5B,EAAM7lB,KAAK0nB,uBACrBvhB,QAAS0f,EAAM7lB,KAAKmG,QACpB+a,SAAU2E,EAAMkB,WAChBpmB,MAAOklB,EAAMllB,MAAQklB,EAAMllB,MACvB2mB,EAAQzB,EAAK,QAAW,GAC5BlhB,SAAU+f,KAItB,MAEJ,IAAK,WACD,IAAIiD,GAAmB,OACHvjB,IAAhByhB,EAAMllB,QACNgnB,EAAU9B,EAAMllB,OAEpB2lB,EACIjpB,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,IAAE,EAACyC,GAAI2e,EAAWhmB,IAAG,QAAAmF,OAAUggB,EAAM7lB,KAAKjC,GAAE,KAAA8H,OAAI9H,IACvDV,IAAAA,cAACuqB,GAAAA,EAAQ,CACLD,QAASA,EACTrmB,MAAOukB,EAAM7lB,KAAKsB,MAClBmD,WAAYohB,EAAM7lB,KAAKyE,WACvB1G,GAAIA,EACJ0K,MAAOod,EAAM7lB,KAAKyI,MAClB9D,SAAU8f,KAItB,MAEJ,IAAK,aACD6B,EACIjpB,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,IAAE,EAACyC,GAAI2e,EAAWhmB,IAAG,QAAAmF,OAAUggB,EAAM7lB,KAAKjC,GAAE,KAAA8H,OAAI9H,IACvDV,IAAAA,cAACwqB,GAAAA,EAAU,CACP9pB,GAAIA,EACJ+pB,QAAS9D,EACTkD,OAAQ3C,EACRjjB,MAAOukB,EAAM7lB,KAAKsB,MAClBmD,WAAYohB,EAAM7lB,KAAKyE,WACvBgE,MAAOod,EAAM7lB,KAAKyI,MAClByY,SAAU2E,EAAMkB,WAChBpmB,MAAOklB,EAAMllB,MACbgE,SAAUggB,KAItB,MAEJ,IAAK,mBACD+B,EAAYpC,EAAsB,EAAIoC,EACtC,IAAMqB,EAAmBlC,EAAM7lB,KAAKjC,GACpCuoB,EACIjpB,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,IAAE,EAACyC,GAAI2e,EAAWhmB,IAAG,QAAAmF,OAAUggB,EAAM7lB,KAAKjC,GAAE,KAAA8H,OAAI9H,IACvDV,IAAAA,cAACe,EAAAA,EAAU,CACPL,GAAIgqB,EACJ3N,MAAO1d,EAAUsrB,UACjB9pB,QAAS2nB,EAAM3nB,QAAU2nB,EAAM3nB,QAAU8mB,GAEzC3nB,IAAAA,cAACiB,EAAAA,EAAI,CAACV,KAAK,YAIvB,MAEJ,IAAK,eACD,IAAIqqB,EAEAA,EADApC,EAAM7lB,KAAKsB,OAASukB,EAAMkB,WAEtB1pB,IAAAA,cAAC0H,EAAAA,EAAI,CAACL,KAAK,QAAQrG,MAAM,SACpBwnB,EAAM7lB,KAAKyE,iBAKFL,EAEtB,IACI8jB,GADEC,GAA6B,GAE/BtC,EAAM7lB,KAAKmG,SACX0f,EAAM7lB,KAAKmG,QAAQmc,SAAQ,SAACiF,EAAQa,GAEhC,GADAF,IAAU,EACNrC,EAAMllB,MAAO,CACb,IAAM0nB,EAAkBC,OAAOC,OAAO1C,EAAMllB,MAAMsN,MAAM,MACpD4X,EAAMllB,OAAS0nB,EAAMne,OAAS,GACRme,EAAMlC,WAAU,SAAAC,GAAC,OAAIA,IAAMmB,EAAO5mB,MAAM+C,UAAU,KAC3D,IACTwkB,IAAU,EAGtB,CACAC,GAAY5kB,KACRlG,IAAAA,cAACmrB,GAAAA,GAAgB,CACb1mB,QAAS,CAAEoH,KAAMpH,EAAQ6hB,UACzB8E,QAEQprB,IAAAA,cAACuqB,GAAAA,EAAQ,CACLD,QAASO,GACTnqB,GAAE,GAAA8H,OAAK9H,EAAE,KAAA8H,OAAI0hB,EAAO5mB,OACpBgE,SAAUkgB,IAItBpc,MAAO8e,EAAO/jB,YACd9C,IAAG,GAAAmF,OAAKggB,EAAM7lB,KAAKjC,GAAE,UAAA8H,OAASuiB,KAG1C,IAEJ9B,EACIjpB,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,IAAE,EAACyC,GAAI2e,EAAWhmB,IAAG,QAAAmF,OAAUggB,EAAM7lB,KAAKjC,GAAE,KAAA8H,OAAI9H,IACtDkqB,EACApC,EAAM7lB,KAAKyI,MACRpL,IAAAA,cAAC0H,EAAAA,EAAI,CAACL,KAAK,SACNmhB,EAAMkB,WAAa,GAAHlhB,OAAMggB,EAAM7lB,KAAKyI,MAAK,SAAA5C,OAAUggB,EAAM7lB,KAAKyI,aAEhErE,EACJ/G,IAAAA,cAACqrB,GAAAA,GAAW,CAACnf,UAAU,YACnBlM,IAAAA,cAACsrB,GAAAA,GAAS,KACLR,MAKjB,MAEJ,IAAK,OACD,IACIS,GAKAA,IANsC/C,EAAM7lB,KAAKsB,MAAQ,aAAU8C,KAGvDyhB,EAAMxnB,MAAQwnB,EAAMxnB,WAAQ+F,GAK5C,IAAMM,GAA6BmhB,EAAMnhB,KAEzC,GAAKmhB,EAAMgD,YAcP,GAAIhD,EAAMiD,WAAajD,EAAM7lB,KAAKyI,MAAO,CACrC,IAAMsgB,GAAoBlD,EAAMiD,UAAU7a,MAAM,KAChDqY,EACIjpB,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,IAAE,EAACyC,GAAI2e,EAAWhmB,IAAG,QAAAmF,OAAUggB,EAAM7lB,KAAKjC,GAAE,KAAA8H,OAAI9H,IACvDV,IAAAA,cAAC4e,GAAAA,EAAS,CACN5d,MAAOuqB,GACP7qB,GAAIA,EACJ2G,KAAe,OAATA,GAAgB,QAAUA,GAChC2K,KAAMwW,EAAM7lB,KAAKyI,MACjByT,OACI6M,GAAQphB,KAAI,SAAAqhB,GACR,MAA2C,YAAvCA,EAAOpC,OAAO,EAAG,IACmB,SAApCoC,EAAOpC,OAAO,EAAG,GACT,SAACqC,GACL/rB,OAAOC,SAAS+rB,KAAO,GAAHrjB,OAAMmjB,EAC9B,EAGQ,SAACC,GACL/rB,OAAOH,KAAK,GAAD8I,OAAImjB,GAAU,SAC7B,CAER,MAKpB,OAxCA1C,EACIjpB,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,GAAI,GAAI5E,IAAG,QAAAmF,OAAUggB,EAAM7lB,KAAKjC,GAAE,KAAA8H,OAAI9H,IAC7CV,IAAAA,cAAC0H,EAAAA,EAAI,CACD1G,MAAOuqB,GACP7qB,GAAIA,EACJ2G,KAAe,OAATA,GAAgB,QAAUA,IAE/BmhB,EAAM7lB,KAAKyI,QAmC5B,MAEJ,IAAK,aAED6d,EACIjpB,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,IAAE,EAACyC,GAAI2e,EAAWhmB,IAAG,QAAAmF,OAAUggB,EAAM7lB,KAAKjC,GAAE,KAAA8H,OAAI9H,IACvDV,IAAAA,cAAC0H,EAAAA,EAAI,CAACL,KAAK,QAAQ3G,GAAE,QAAA8H,OAAU2c,IAC1BqD,EAAM7lB,KAAKyI,OAEhBpL,IAAAA,cAAC6I,EAAAA,EAAU,CACPnI,GAAIA,EACJH,KAAMG,EACNoI,QAAS0f,EAAM7lB,KAAKmG,QAAU0f,EAAM7lB,KAAKmG,QATlB,GAUvBxF,MAAOklB,EAAMllB,MACbgE,SAAUkhB,EAAM3nB,QAAU2nB,EAAM3nB,QAAU4mB,KAItD,MAEJ,IAAK,qBACD,IAoBIqE,GApBEd,GAA6B,GAC/BxC,EAAMllB,OACaklB,EAAMllB,MAAMsN,MAAM,KAC1BqU,SAAQ,SAAA8G,GACf,IAAMC,EAAWD,EAAKnb,MAAM,KACR,KAAhBob,EAAS,KACLA,EAASnf,OAAS,EAClBme,GAAM9kB,KAAK,CACP+lB,iBAAkBD,EAAS,GAC3BE,uBAAwBF,EAAS,KAIrChB,GAAM9kB,KAAK,CACPgmB,uBAAwBF,EAAS,KAIjD,IAIAF,GADAtD,EAAM7lB,KAAKsB,MAEPjE,IAAAA,cAAC0H,EAAAA,EAAI,CAACL,KAAK,QAAQrG,MAAM,SACpBwnB,EAAM7lB,KAAKyE,iBAKLL,EAEnB,IAAMolB,GAA8B,GAChC3D,EAAM7lB,KAAKypB,gBAAkB5D,EAAM7lB,KAAKypB,eAAevf,OAAS,GAChE2b,EAAM7lB,KAAKypB,eAAenH,SAAQ,SAAAoH,GAC9B,IAAMzE,EAA0B,GAC5ByE,EAAYvjB,SAAWujB,EAAYvjB,QAAQ+D,OAAS,GACpDwf,EAAYvjB,QAAQmc,SAAQ,SAAAjd,GACxB,IAAIskB,GAA0B,EAC1BtB,GAAMne,OAAS,GAGXme,GAAMlC,WAAU,SAAAC,GAAC,OACZA,EAAEkD,iBACClD,EAAEkD,iBAAiB5lB,WAAa,MAAQ2B,EAAK1E,MAAM+C,YACvD0iB,EAAEmD,uBAAuB7lB,aAAegmB,EAAY/oB,MAAM+C,UAAU,KAC/D,IACTimB,GAAiB,GAGzB1E,EAAS1hB,KACLlG,IAAAA,cAACmrB,GAAAA,GAAgB,CACb1mB,QAAS,CAAEoH,KAAMpH,EAAQ6hB,UACzB8E,QAEQprB,IAAAA,cAACuqB,GAAAA,EAAQ,CACLD,QAASgC,EACT5rB,GAAE,SAAA8H,OAAW9H,EAAE,KAAA8H,OAAI2c,EAAC,KAAA3c,OAAI6jB,EAAY/oB,MAAK,KAAAkF,OAAIR,EAAK1E,OAClDgE,SAAUkgB,IAItBpc,MAAOpD,EAAK7B,cAGxB,IAEJ,IAAIomB,GAA2B,EAC3BvB,GAAMne,OAAS,GAGXme,GAAMlC,WAAU,SAAAC,GAAC,OACZA,EAAEmD,uBACCnD,EAAEmD,uBAAuB7lB,WAAa,MAAQgmB,EAAY/oB,MAAM+C,UAAU,KACzE,IACTkmB,GAAkB,GAG1BJ,GAAajmB,KACTlG,IAAAA,cAAAA,IAAAA,SAAA,KACIA,IAAAA,cAACmrB,GAAAA,GAAgB,CACb1mB,QAAS,CAAEoH,KAAMpH,EAAQ8hB,iBACzB6E,QAEQprB,IAAAA,cAACuqB,GAAAA,EAAQ,CACLD,QAASiC,EACT7rB,GAAE,UAAA8H,OAAY9H,EAAE,KAAA8H,OAAI2c,EAAC,KAAA3c,OAAI6jB,EAAY/oB,OACrCgE,SAAUkgB,IAItBpc,MAAOihB,EAAYlmB,cAEtByhB,GAGb,IAEJqB,EACIjpB,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,IAAE,EAACyC,GAAI2e,EAAWhmB,IAAG,QAAAmF,OAAUggB,EAAM7lB,KAAKjC,GAAE,KAAA8H,OAAI9H,IACtD8nB,EAAM7lB,KAAKyI,MACRpL,IAAAA,cAAC0H,EAAAA,EAAI,CAACL,KAAK,SACNmhB,EAAMkB,WAAa,GAAHlhB,OAAMggB,EAAM7lB,KAAKyI,MAAK,SAAA5C,OAAUggB,EAAM7lB,KAAKyI,aAEhErE,EACJ/G,IAAAA,cAACwsB,GAAAA,GAAI,CAAC9rB,GAAE,GAAA8H,OAAK9H,IACRorB,GACD9rB,IAAAA,cAACqrB,GAAAA,GAAW,CAACnf,UAAU,YACnBlM,IAAAA,cAACsrB,GAAAA,GAAS,KACLa,OAMrB,MACJ,IAAK,OACG3D,EAAM7lB,KAAKyI,QACX6d,EACIjpB,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,IAAE,EAACyC,GAAI2e,EAAWhmB,IAAG,QAAAmF,OAAUggB,EAAM7lB,KAAKjC,GAAE,KAAA8H,OAAI9H,IACvDV,IAAAA,cAACysB,GAAAA,EAAQ,CACLZ,KAAMrD,EAAMiD,UACZ/qB,GAAG,gBAEF8nB,EAAM7lB,KAAKyI,SAK5B,MACJ,IAAK,gBACGod,EAAM7lB,KAAKyI,QACX6d,EACIjpB,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,IAAE,EAACyC,GAAI2e,EAAWhmB,IAAG,QAAAmF,OAAUggB,EAAM7lB,KAAKjC,GAAE,KAAA8H,OAAI9H,IACvDV,IAAAA,cAACG,EAAAA,EAAM,CACHG,UAAW,CACPC,KAAM,SAEVG,GAAE,SAAA8H,OAAWggB,EAAM7lB,KAAKjC,GAAE,KAAA8H,OAAI9H,GAC9BF,MAAM,OACNG,mBAAmB,UACnBC,QAAQ,OACRC,QAAS,WAAY2nB,EAAMiD,YAAa5rB,OAAOC,SAAS+rB,KAAOrD,EAAMiD,UAAY,GAEhFjD,EAAM7lB,KAAKyI,SAK5B,MACJ,IAAK,gBACGod,EAAM7lB,KAAKyI,QACX6d,EACIjpB,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,IAAE,EAACyC,GAAI2e,EAAWhmB,IAAG,QAAAmF,OAAUggB,EAAM7lB,KAAKjC,GAAE,KAAA8H,OAAI9H,IACvDV,IAAAA,cAACG,EAAAA,EAAM,CACHG,UAAW,CACPC,KAAM,SAEVG,GAAE,SAAA8H,OAAWggB,EAAM7lB,KAAKjC,GAAE,KAAA8H,OAAI9H,GAC9BF,MAAM,OACNG,mBAAmB,UACnBC,QAAQ,OACRC,QAAS,WAAY2nB,EAAMiD,YAAa5rB,OAAOC,SAAS+rB,KAAOrD,EAAMiD,UAAY,GAEhFjD,EAAM7lB,KAAKyI,SAK5B,MACJ,IAAK,UACD6d,EACIjpB,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,GAAI,GAAIyC,GAAI,IACnB1K,IAAAA,cAAA,YAGR,MACJ,IAAK,QACDipB,EACIjpB,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,IAAE,EAACyC,GAAI2e,GACdrpB,IAAAA,cAAA,OACIsjB,IAAKkF,EAAMlF,IACXoJ,IAAKlE,EAAMkE,OAIvB,MACJ,IAAK,cACDzD,EACIjpB,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,IAAE,EAACyC,GAAI2e,GACdrpB,IAAAA,cAAC0H,EAAAA,EAAI,CACD1G,MAAOuqB,GACP7qB,GAAIA,EACJ2G,KAAe,OAATA,GAAgB,QAAUA,IAEhCrH,IAAAA,cAAA,OAAK2sB,wBAAyB,CAAEC,OAAQpE,EAAMllB,WASlE,GAAIklB,EAAMC,wBAA0BD,EAAMllB,QACjCklB,EAAM7lB,KAAK+D,SACZ,GAAI8hB,EAAMI,eAAyC,aAAxBJ,EAAMI,cAA8B,CAC3D,IAAIC,GAAyB,EACzBL,EAAM7lB,MAAQ6lB,EAAM7lB,KAAKmG,SAAW0f,EAAM7lB,KAAKmG,QAAQ+D,OAAS,IAChEgc,GACIL,EAAM7lB,KAAKmG,QAAQggB,WAAU,SAAAC,GAAC,OAAIA,EAAEzlB,QAAUklB,EAAMllB,KAAK,MACvC,GAClB6kB,EAAwBjiB,KAAK,GAADsC,OAAIggB,EAAM7lB,KAAKmG,QAAQ+f,IAAgB1iB,YAAW,KAG1F,MAEIgiB,EAAwBjiB,KAAK,GAADsC,OAAIggB,EAAMllB,MAAK,MAMnD2lB,IACIT,EAAM7lB,KAAK+D,SAzoBG,SAAC8hB,EAAmBS,EAA2BvoB,GACrEmnB,EAAMW,EAAM7lB,KAAKjC,GAAGkQ,MAAM,KAC1B8V,EAAe1K,EAAOoM,EAAMP,EAAK,IAAIqB,YAAYd,EAAMP,EAAK,IAAIgF,cAAc/D,WAC1E,SAAAgE,GAAO,OAAIA,EAAQpG,eAAiB3V,OAAOqX,EAAMP,EAAK,GAAG,IAGzDC,EAAe1T,SAASgU,EAAMP,EAAK,KACnCU,EAAuBC,GACvBQ,EAAaC,EAAcT,KAI3BT,EAAkB,GAClBE,EAAsB,GACtBC,EAAsB,GAEtBK,EAAuBC,GACvBQ,EAAaC,EAAcT,GAC3BV,EAAe5hB,KAAKkiB,EAAMP,EAAK,IAE/BG,EAAkB9hB,KACd8gB,EACIhnB,IAAAA,cAAC+sB,GAAAA,EAAc,CACXC,qBAAsBtG,GAAgB,GAClC1K,EAAOoM,EAAMP,EAAK,IAAIqB,YAAYd,EAAMP,EAAK,IAAIgF,cAAchgB,OAAS,GACpEmP,EAAOoM,EAAMP,EAAK,IAAIqB,YAAYd,EAAMP,EAAK,IAAIgF,cAAcnG,GAAcuG,eAGrFC,WAAW,OACXC,WAAYntB,IAAAA,cAACiB,EAAAA,EAAI,CAACV,KAAK,SACvB6sB,SAAUxG,IAAoB,SAALpe,OAAc2e,EAAS,KAAA3e,OAAIue,EAAU,KAAAve,OAAI4f,EAAMP,EAAK,IAC7E7d,OACIhK,IAAAA,cAAC4H,EAAAA,EAAI,CAACC,WAAS,EAACE,eAAe,gBAAgBD,WAAW,UACtD9H,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,GACNhI,IAAAA,cAAC0H,EAAAA,EAAI,CACD1G,MAAOgb,EAAOoM,EAAMP,EAAK,IAAIqB,YAAYd,EAAMP,EAAK,IAAIgF,cAAchgB,OAAS,GAAK6Z,GAAgB,GAChG1K,EAAOoM,EAAMP,EAAK,IAAIqB,YAAYd,EAAMP,EAAK,IAAIgF,cAAcnG,GAAcuG,eACzE,aACFlmB,GAELmhB,IAGTloB,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,GACLigB,IAIb5kB,IAAG,kBAAAmF,OAAoBggB,EAAM7lB,KAAKjC,GAAE,KAAA8H,OAAI9H,GACxC4G,SAAUigB,EAAuB,SAAD/e,OAAU2e,EAAS,KAAA3e,OAAIue,EAAU,KAAAve,OAAI4f,EAAMP,EAAK,MAEhF7nB,IAAAA,cAAC4H,EAAAA,EAAI,CACDC,WAAS,EACTmB,UAAU,SACV3F,IAAG,aAAAmF,OAAeggB,EAAM7lB,KAAKjC,GAAE,KAAA8H,OAAI9H,IAElCqnB,IAIT/nB,IAAAA,cAACA,IAAAA,SAAc,CAACqD,IAAG,YAAAmF,OAAcggB,EAAM7lB,KAAKjC,GAAE,KAAA8H,OAAI9H,IAC9CV,IAAAA,cAAC4H,EAAAA,EAAI,CACDE,WAAYmf,IAAuBoG,EAAAA,GAAAA,IAAU,KAAMpe,GAAS,SAAW,UACvEpH,WAAS,EACTmB,UAAWie,IAAuBoG,EAAAA,GAAAA,IAAU,KAAMpe,GAAS,MAAQ,SACnE5L,IAAG,aAAAmF,OAAeggB,EAAM7lB,KAAKjC,GAAE,KAAA8H,OAAI9H,IAElCqnB,KAMzB,CAikBYuF,CAAkB9E,EAAOS,EAAcvoB,GAGvCknB,EAAS1hB,KAAK+iB,GAG1B,IAGIjC,GAAoBgB,EAAkBnb,OAAS,EAC3C7M,IAAAA,cAAAA,IAAAA,SAAA,KACIA,IAAAA,cAAC+sB,GAAAA,EAAc,CACXC,qBAAsBhR,EAAOmL,GAAW+B,YAAYnC,GAAYwG,mBAAmBC,qBACnFN,WAAW,OACXE,SAAUxG,IAAoB,SAALpe,OAAc2e,EAAS,KAAA3e,OAAIue,GACpDoG,WAAYntB,IAAAA,cAACiB,EAAAA,EAAI,CAACV,KAAK,SACvByJ,OACIhK,IAAAA,cAAC0H,EAAAA,EAAI,CACD1G,MAAOgb,EAAOmL,GAAW+B,YAAYnC,GAAYwG,mBAAmBC,qBAAuB,aAAUzmB,GAEpGohB,EAAwBtb,OAAS,EAAIsb,EAA0B9oB,EAAUqpB,QAGlFphB,SAAUigB,EAAuB,SAAD/e,OAAU2e,EAAS,KAAA3e,OAAIue,KAEvD/mB,IAAAA,cAAC4H,EAAAA,EAAI,CACDC,WAAS,EACTmB,UAAU,UAET4e,IAGRI,GAGLhoB,IAAAA,cAAAA,IAAAA,SAAA,KACIA,IAAAA,cAAC4H,EAAAA,EAAI,CACDE,WAAYmf,IAAuBoG,EAAAA,GAAAA,IAAU,KAAMpe,GAAS,SAAW,UACvEpH,WAAS,EACTmB,UAAWie,IAAuBoG,EAAAA,GAAAA,IAAU,KAAMpe,GAAS,MAAQ,UAElE2Y,GAEJI,EAIjB,KC/oBA,IAAe7Z,EAAAA,EAAAA,IApJC,WAAJ,OAAUE,EAAAA,EAAAA,GAAa,CAC/Bof,UAAW,CACPre,UAAWb,EAAAA,EAAOY,WAEtBue,iBAAkB,CACdhf,aAAc,IAEpB,GA6IF,EAtIsD,SAAC3P,GACnD,IA8CI4uB,EAQAC,EArDAnpB,EAwBA1F,EAxBA0F,QACAkiB,EAuBA5nB,EAvBA4nB,gBACA3K,EAsBAjd,EAtBAid,OACAoR,EAqBAruB,EArBAquB,SACAS,EAoBA9uB,EApBA8uB,WACAC,EAmBA/uB,EAnBA+uB,gBACAC,EAkBAhvB,EAlBAgvB,eACAjH,EAiBA/nB,EAjBA+nB,mBACAE,EAgBAjoB,EAhBAioB,iBACAC,EAeAloB,EAfAkoB,oBACAC,EAcAnoB,EAdAmoB,iBACAC,EAaApoB,EAbAooB,UACA9nB,EAYAN,EAZAM,UAEA2uB,EAUAjvB,EAVAivB,UACA5G,EASAroB,EATAqoB,iBACAC,EAQAtoB,EARAsoB,iBACAC,EAOAvoB,EAPAuoB,sBACAC,EAMAxoB,EANAwoB,uBACAC,EAKAzoB,EALAyoB,qBACAC,EAIA1oB,EAJA0oB,mBACAxG,EAGAliB,EAHAkiB,kBACAyG,EAEA3oB,EAFA2oB,cACAC,EACA5oB,EADA4oB,aAGEsG,IAAsBJ,EAAWK,iBAAkBL,EAAWK,gBAE9DlR,EAAyB,GA+F/B,OA1FI6Q,EAAWM,YACXnR,EAAQ9W,KACJlG,IAAAA,cAAC0H,EAAAA,EAAI,CACD1G,MAAM,QACNN,GAAE,aAAA8H,OAAeqlB,EAAWntB,GAAE,SAC9B2C,IAAG,aAAAmF,OAAeqlB,EAAWntB,GAAE,SAC/B2G,KAAK,SAELrH,IAAAA,cAAA,QAAMU,GAAE,aAAA8H,OAAeqlB,EAAWntB,QAK1CmtB,EAAWziB,QACXuiB,EACI3tB,IAAAA,cAAC0H,EAAAA,EAAI,CAACL,KAAK,SACNwmB,EAAWziB,QAKpByiB,EAAWO,eACXR,EACI5tB,IAAAA,cAAC0H,EAAAA,EAAI,KACAmmB,EAAWO,eAKxBpR,EAAQ9W,KACJlG,IAAAA,cAACA,IAAAA,SAAc,CAACqD,IAAG,GAAAmF,OAAKqlB,EAAWntB,KACR,KAArBmtB,EAAWziB,QAAgByiB,EAAWO,cAClB,sBAAlBP,EAAWntB,QAQPqG,EANA/G,IAAAA,cAAC4H,EAAAA,EAAI,CAACC,WAAS,EAACpH,UAAWgE,EAAQipB,kBAC/B1tB,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,GAAI,IACV0lB,EACAC,IAIjB5tB,IAAAA,cAACquB,GAAa,CACV1H,gBAAiBA,EACjB3K,OAAQA,EACR4K,gBAAiBwG,EACjBvG,OAAQgH,EAAWhH,OACnBkH,eAAgBA,EAChBjH,mBAAoBA,EACpBC,WAAY+G,EACZ9G,iBAAkBA,EAClBC,oBAAqBA,EACrB5jB,IAAG,SAAAmF,OAAWslB,EAAe,KAAAtlB,OAAI2e,GACjCD,iBAAkBA,EAClBC,UAAWA,EACX9nB,UAAWA,EACX+nB,iBAAkBA,EAClBC,iBAAkBA,EAClBC,sBAAuBA,EACvBC,uBAAwBA,EACxBC,qBAAsBA,EACtBC,mBAAoBA,EACpBxG,kBAAmBA,EACnByG,cAAeA,EACfC,aAAcA,MAKtBkG,EAAWM,YAAoD,IAAtCpd,OAAO8c,EAAWS,iBAC3CtR,EAAQ9W,KACJlG,IAAAA,cAAC4H,EAAAA,EAAI,CAACC,WAAS,EAACxE,IAAG,GAAAmF,OAAKqlB,EAAWntB,GAAE,eACjCV,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,IAAE,GACTjI,IAAAA,cAACG,EAAAA,EAAM,CACHG,UAAW,CACPC,KAAM,OAEVS,MAAM,YACNP,UAAWgE,EAAQgpB,UACnBvuB,SAAU+uB,EACVvtB,GAAE,cAAA8H,OAAgBqlB,EAAWntB,IAC7BG,QAjFJ,WAAH,OAASmtB,EAAUH,EAAY1G,EAAW2G,EAAgB,GAmFlDzuB,EAAUkvB,WAEfvuB,IAAAA,cAAA,cAOZA,IAAAA,cAAAA,IAAAA,SAAA,KACKgd,EAGb,ICpJA,IAAMpK,IAASvE,EAAAA,EAAAA,GAAa,CACxBmgB,iBAAkB,CACdlgB,gBAAiBC,EAAAA,EAAOC,qBACxBigB,QAASlgB,EAAAA,EAAOI,aAqJxB,UAAeR,EAAAA,EAAAA,GAAWyE,GAA1B,EA7I6D,SAAC7T,GAC1D,IAsBI4G,EArBAlB,EAmBA1F,EAnBA0F,QACAkiB,EAkBA5nB,EAlBA4nB,gBACA+H,EAiBA3vB,EAjBA2vB,cACAb,EAgBA9uB,EAhBA8uB,WACAc,EAeA5vB,EAfA4vB,mBACAzH,EAcAnoB,EAdAmoB,iBACA0H,EAaA7vB,EAbA6vB,eAEAZ,EAWAjvB,EAXAivB,UACA5G,EAUAroB,EAVAqoB,iBACAE,EASAvoB,EATAuoB,sBACAD,EAQAtoB,EARAsoB,iBACAG,EAOAzoB,EAPAyoB,qBACAC,EAMA1oB,EANA0oB,mBACAxG,EAKAliB,EALAkiB,kBACAyG,EAIA3oB,EAJA2oB,cACAmH,EAGA9vB,EAHA8vB,qBAEAC,EACA/vB,EADA+vB,4BAIJnpB,EACI3F,IAAAA,cAACuJ,EAAAA,EAAW,CAAC7I,GAAG,oBACZV,IAAAA,cAACG,EAAAA,EAAM,CACHO,GAAI,QACJG,QAASguB,GAERC,EAA4BnlB,QAKzC,IAAMsa,EAA2B,GA0FjC,OAzFI4J,GACA5J,EAAU/d,KACNlG,IAAAA,cAAC4H,EAAAA,EAAI,CAACC,WAAS,EAACe,QAAS,EAAGvF,IAAG,mBAAAmF,OAAqBqlB,EAAWziB,QAC1DsjB,EAEO1uB,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,GAAI,IACXjI,IAAAA,cAAC0H,EAAAA,EAAI,KACAonB,EAA4BC,4BAIzCH,GAAkBD,EAEV3uB,IAAAA,cAAC4H,EAAAA,EAAI,CAACC,WAAS,GACX7H,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,IAAE,GACTjI,IAAAA,cAAA,OAAKS,UAAWgE,EAAQ+pB,kBACpBxuB,IAAAA,cAAC0H,EAAAA,EAAI,CAACL,KAAK,SACNynB,EAA4BE,iBAEjChvB,IAAAA,cAACivB,GAAAA,EAAO,MACRjvB,IAAAA,cAAC4H,EAAAA,EAAI,CAACC,WAAS,GACX7H,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,IAAE,GACTjI,IAAAA,cAAC0H,EAAAA,EAAI,CAAClH,MAAM,SACPsuB,EAA4BziB,YAGrCrM,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,IAAE,GACTjI,IAAAA,cAAC0H,EAAAA,EAAI,KACAinB,EAAmBnhB,UAIhCxN,IAAAA,cAAC4H,EAAAA,EAAI,CAACC,WAAS,GACX7H,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,IAAE,GACTjI,IAAAA,cAAC0H,EAAAA,EAAI,CAAClH,MAAM,SACPsuB,EAA4BI,iBAGrClvB,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,IAAE,GACTjI,IAAAA,cAAC0H,EAAAA,EAAI,KACAinB,EAAmBxoB,eAIhCnG,IAAAA,cAAC4H,EAAAA,EAAI,CAACC,WAAS,GACX7H,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,IAAE,GACTjI,IAAAA,cAAC0H,EAAAA,EAAI,CAAClH,MAAM,SACPsuB,EAA4BK,uBAGrCnvB,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,IAAE,GACTjI,IAAAA,cAAC0H,EAAAA,EAAI,KACAinB,EAAmBS,+BAQhDroB,EAEN2nB,OAsBM3nB,EApBA/G,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,GAAI,IACXjI,IAAAA,cAACqvB,GAAkB,CACf1I,gBAAiBA,EACjBkH,WAAYA,EACZC,gBAAiB,EACjB9G,iBAAkB6G,EAAW7G,iBAC7BC,oBAAqB4G,EAAW5G,oBAChCE,UAAW,EACX9nB,UAAWyvB,EACXd,UAAWA,EACX9G,iBAAkBA,EAClBE,iBAAkBA,EAClBE,sBAAuBA,EACvBD,iBAAkBA,EAClBG,qBAAsBA,EACtBC,mBAAoBA,EACpBxG,kBAAmBA,EACnByG,cAAeA,OASvC1nB,IAAAA,cAAC4J,EAAAA,EAAK,CACFlJ,GAAG,2BACHsJ,OAAQ6jB,EAAaA,EAAWziB,WAAQrE,EACxCmD,OAAQwkB,EAAgB/oB,OAAcoB,EACtCkD,SAAS,KACTvK,MAAM,EACNyK,mBAAmB,GAElB8Z,EAGb,IC4ZA,IAAe9V,EAAAA,EAAAA,IArgBA,SAACC,GAAY,OAAKC,EAAAA,EAAAA,GAAa,CAC1CihB,gBAAiB,CACbpP,WAAY3R,EAAAA,EAAOY,WAEvBogB,QAAS,CACL,yBAA0B,CACtBjP,UAAW,QAEf,UAAW,CACPkP,UAAW,SAGnBC,gBAAiB,CACbrgB,UAAWb,EAAAA,EAAOI,WAEtB+gB,sBAAuB,CACnBC,YAAaphB,EAAAA,EAAOI,WAExBihB,WAAY,CACRD,YAAaphB,EAAAA,EAAOO,WAExB+gB,UAAQ1tB,EAAAA,EAAAA,GAAA,GACHiM,EAAMqB,YAAYC,GAAG,MAAQ,CAC1BN,UAAWb,EAAAA,EAAO0E,YAG1B6c,eAAgB,CACZ1gB,UAAWb,EAAAA,EAAOY,WAEtB4gB,cAAe,CACXtB,QAAS,GAAFjmB,OAAK+F,EAAAA,EAAOI,UAAS,KAAAnG,OAAI+F,EAAAA,EAAOI,UAAS,OAAAnG,OAAM+F,EAAAA,EAAOI,WAC7D2R,UAAW,UAEf0P,OAAQ,CACJ3vB,QAAS,UAEbwO,YAAa,CACTA,YAAaN,EAAAA,EAAO0E,WAExBiN,WAAY,CACR7f,QAAS,SACT6f,WAAY3R,EAAAA,EAAOc,aAEvB4gB,qBAAsB,CAClBC,UAAW,OACXzB,QAAS,GAAFjmB,OAAK+F,EAAAA,EAAOO,UAAS,KAAAtG,OAAI+F,EAAAA,EAAOO,UAAS,OAAAtG,OAAM+F,EAAAA,EAAOO,YAEjEsE,mBAAoB,CAChBxE,cAAeL,EAAAA,EAAOY,WAE1BghB,iBAAkB,CACdjQ,WAAY3R,EAAAA,EAAOc,YACnBsgB,YAAaphB,EAAAA,EAAOc,aAExB+gB,WAAY,CACR9P,UAAW,UAEf+P,eAAgB,CACZ5B,QAAS,GAAFjmB,OAAK+F,EAAAA,EAAOI,UAAS,KAAAnG,OAAI+F,EAAAA,EAAOI,UAAS,OAAAnG,OAAM+F,EAAAA,EAAOI,aAEnE,GAycF,EAlcsD,SAAC5P,GACnD,IACIuxB,EA2CAvxB,EA3CAuxB,WACA7rB,EA0CA1F,EA1CA0F,QACA8rB,EAyCAxxB,EAzCAwxB,WACA5J,EAwCA5nB,EAxCA4nB,gBACA3K,EAuCAjd,EAvCAid,OACAoR,EAsCAruB,EAtCAquB,SACAsB,EAqCA3vB,EArCA2vB,cACAX,EAoCAhvB,EApCAgvB,eACAjH,EAmCA/nB,EAnCA+nB,mBACA6H,EAkCA5vB,EAlCA4vB,mBACA6B,EAiCAzxB,EAjCAyxB,YACAtJ,EAgCAnoB,EAhCAmoB,iBACAuJ,EA+BA1xB,EA/BA0xB,eACA7B,EA8BA7vB,EA9BA6vB,eAEAZ,EA4BAjvB,EA5BAivB,UACA0C,EA2BA3xB,EA3BA2xB,WACAC,EA0BA5xB,EA1BA4xB,YACAC,EAyBA7xB,EAzBA6xB,YACAxJ,EAwBAroB,EAxBAqoB,iBACAE,EAuBAvoB,EAvBAuoB,sBACAD,EAsBAtoB,EAtBAsoB,iBACAE,EAqBAxoB,EArBAwoB,uBACAC,EAoBAzoB,EApBAyoB,qBACAC,EAmBA1oB,EAnBA0oB,mBACAxG,EAkBAliB,EAlBAkiB,kBACAyG,EAiBA3oB,EAjBA2oB,cACAmH,EAgBA9vB,EAhBA8vB,qBACAlH,EAeA5oB,EAfA4oB,aACAkJ,EAcA9xB,EAdA8xB,WACAC,EAaA/xB,EAbA+xB,SAEAzxB,EAWAN,EAXAM,UAGA0xB,EAQAhyB,EARAgyB,yBACAjY,EAOA/Z,EAPA+Z,eACAa,EAMA5a,EANA4a,aACA2C,EAKAvd,EALAud,iBACAI,EAIA3d,EAJA2d,UACApD,EAGAva,EAHAua,kBACAC,EAEAxa,EAFAwa,iBAIEyX,EACFhxB,IAAAA,cAACixB,GAAAA,EAAa,CACVC,aAAa,YACb7vB,QAAShC,EAAU8xB,kBAIrB3O,EACFxiB,IAAAA,cAAAA,IAAAA,SAAA,KACIA,IAAAA,cAACoe,GAAAA,EAAS,CACNC,GAAI3B,EACJyB,IAAKxE,EACL2E,QAAShC,EACThV,SAAUgS,EACViF,UAAWhF,EACXiF,UAAWjF,IAEdT,GACG9Y,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,GACNhI,IAAAA,cAAC0H,EAAAA,EAAI,CAACjH,UAAWgE,EAAQ2O,mBAAoBpS,MAAM,QAAQqG,KAAK,SAC3DhI,EAAUof,wBAO3BzB,EAAiC,GACjCuT,GAAcA,EAAWa,OAASb,EAAWa,MAAMvkB,OAAS,IAC5DmQ,EAAUqU,MAAMd,EAAWa,MAAMvkB,QACjC0jB,EAAWa,MAAMnM,SAAQ,SAACqM,EAAMvG,GAC5B,IAAMwG,EAAsC,GACxCD,EAAKE,cAAgBF,EAAKE,aAAa3kB,OAAS,GAChDykB,EAAKE,aAAavM,SAAQ,SAAC4I,EAAY1I,GACnCoM,EAAqBrrB,KACjBlG,IAAAA,cAACqvB,GAAkB,CACf1I,gBAAiBA,EACjB3K,OAAQA,EACRoR,SAAUA,EACVS,WAAYA,EACZC,gBAAiB3I,EACjB4I,eAAgBA,EAChBjH,mBAAoBA,EACpBE,iBAAkB6G,EAAW7G,iBAC7BC,oBAAqB4G,EAAW5G,oBAChC5jB,IAAG,cAAAmF,OAAgB2c,EAAC,KAAA3c,OAAIuiB,GACxB7D,iBAAkBA,EAClBC,UAAW4D,EACXzD,sBAAuBA,EACvBK,aAAcA,EACdtoB,UAAWA,EACX2uB,UAAWA,EACX5G,iBAAkBA,EAClBC,iBAAkBA,EAClBE,uBAAwBA,EACxBC,qBAAsBA,EACtBC,mBAAoBA,EACpBxG,kBAAmBA,EACnByG,cAAeA,IAG3B,IAGJ1K,EAAQ+N,GAAK,CACT/N,QACIhd,IAAAA,cAAC4H,EAAAA,EAAI,CAACC,WAAS,EAACxE,IAAG,eAAAmF,OAAiBuiB,GAAKtqB,UAAWgE,EAAQqrB,gBACxD9vB,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,IAAE,GACRspB,IAGbnD,aAAckD,EAAKlD,aACnBrR,MAAOuU,EAAKvU,MAEpB,KAGJ,IAAM0U,EAAmC,GACnCvnB,EAAwB,GAC9B,GAAIqmB,GAAcA,EAAWiB,cACrBjB,EAAWiB,aAAa3kB,OAAS,EAAG,CAEpC,GAAI0jB,EAAWmB,uBAAwB,CACnC,IAAIC,EACEC,EACFrB,EAAWiB,aAAa1I,WAAU,SAAAC,GAAC,MAAa,sBAATA,EAAEroB,EAA0B,IACnEkxB,GAAqB,IACrBD,EAAoBpB,EAAWiB,aAAaI,IAGhDH,EAAkBvrB,KACdlG,IAAAA,cAAC6xB,GAAyB,CACtBxuB,IAAI,iBACJsjB,gBAAiBA,EACjB+H,cAAeA,EACfb,WAAY8D,EACZhD,mBAAoBA,EACpBzH,iBAAkBA,EAClB0H,eAAgBA,EAChBZ,UAAWA,EACX5G,iBAAkBA,EAClBE,sBAAuBA,EACvBD,iBAAkBA,EAClBG,qBAAsBA,EACtBC,mBAAoBA,EACpBxG,kBAAmBA,EACnByG,cAAeA,EACfmH,qBAAsBA,EACtBC,4BAA6BzvB,IAGzC,CAEA,IAAIyyB,EACEC,GACFxB,EAAWiB,aAAa1I,WAAU,SAAAC,GAAC,MAAa,gBAATA,EAAEroB,EAAoB,IAC7DqxB,IAAoB,IACpBD,EAAcvB,EAAWiB,aAAaO,KAEtCD,GACA5nB,EAAOhE,KACHlG,IAAAA,cAACqvB,GAAkB,CACf1I,gBAAiBA,EACjBkH,WAAYiE,EACZhE,gBAAiB,EACjB9G,iBAAkB8K,EAAY9K,iBAC9BC,oBAAqB6K,EAAY7K,oBACjCE,UAAW,EACX9nB,UAAWA,EACX2uB,UAAWA,EACX9G,iBAAkBA,EAClBE,iBAAkBA,EAClBE,sBAAuBA,EACvBD,iBAAkBA,EAClBG,qBAAsBA,EACtBC,mBAAoBA,EACpBxG,kBAAmBA,EACnByG,cAAeA,IAI/B,CAGJ,OACI1nB,IAAAA,cAAC4H,EAAAA,EAAI,CAACC,WAAS,EAACe,QAAS,GACrB5I,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,IAAE,GACTjI,IAAAA,cAAA,OAAKU,GAAG,mBACRV,IAAAA,cAACqf,GAAAA,GAAI,CAAC5a,QAAS,CAAEoH,KAAMpH,EAAQorB,UAAYmC,OAAO,aAC7ChV,EAAQnQ,OAAS,EACd7M,IAAAA,cAACiyB,GAAAA,EAAK,CAACC,MAAO3jB,EAAAA,EAAO4jB,WAChB,SAACC,GAAgB,OAAkBA,EAChCpyB,IAAAA,cAACqyB,GAAAA,GAAa,CACVjB,MAAOpU,EAAQnQ,OACfylB,SAAS,SACThC,WAAYA,EACZiC,WAEQvyB,IAAAA,cAACG,EAAAA,EAAM,CACHa,MAAM,YACN9B,SAAUoxB,IAAetT,EAAQnQ,OACjCnM,GAAI,iBACJ8xB,OAAO,EACPnrB,KAAK,QACLxG,QAASgwB,GAERxxB,EAAUozB,SAIvBC,WAEQ1yB,IAAAA,cAACG,EAAAA,EAAM,CACHa,MAAM,YACN9B,SAAyB,IAAfoxB,EACV5vB,GAAI,iBACJ8xB,OAAO,EACPnrB,KAAK,QACLxG,QAAS6vB,GAERrxB,EAAUszB,UAKvB3yB,IAAAA,cAAA,OAAKS,UAAWgE,EAAQwrB,sBACpBjwB,IAAAA,cAAC4yB,GAAAA,GAAkB,KACf5yB,IAAAA,cAAAA,IAAAA,SAAA,KACKuwB,EACGvwB,IAAAA,cAAAA,IAAAA,SAAA,KACKuwB,EAAWhwB,MAAQ,GACnBgwB,EAAW5rB,qBACL4rB,EAAWsC,UAEV7yB,IAAAA,cAAC0H,EAAAA,EAAI,KACAtB,EAAAA,EAAOC,SAASkqB,EAAWuC,UACtBzzB,EAAU0zB,aACV1zB,EAAU2zB,cACZ,CAACzC,EAAWsC,kBAGtB9rB,QAEVA,IAIXupB,IAAetT,EAAQnQ,OACpB7M,IAAAA,cAAAA,IAAAA,SAAA,KACIA,IAAAA,cAACizB,GAAAA,GAAiB,CAAC3C,WAAYA,GAC3BtwB,IAAAA,cAACkzB,GAAAA,GAAkB,KACdlW,EAAQsT,GAAYvT,QAG5BC,EAAQsT,GAAYtT,SAGzBhd,IAAAA,cAAAA,IAAAA,SAAA,KACIA,IAAAA,cAACmzB,GAAAA,GAAY,CAACC,WAAS,EAAC9C,WAAYA,EAAY+C,YAAY,YACvDrW,EAAQ1S,KAAI,SAACgnB,EAAMvG,GAAC,OACjB/qB,IAAAA,cAACszB,GAAAA,GAAI,CAACjwB,IAAG,QAAAmF,OAAUuiB,IACf/qB,IAAAA,cAACuzB,GAAAA,GAAU,CACP9uB,QAAS,CAAEoH,KAAMpH,EAAQ8qB,SACzB7uB,GAAE,QAAA8H,OAAUuiB,GACZlqB,QAAS+vB,GAET5wB,IAAAA,cAACwzB,GAAAA,GAAS,CACNvvB,MAAO+X,EAAO+O,GAAG0I,YACjBC,SAAUpC,EAAKlD,cAEdpS,EAAO+O,GAAG0I,YACPzzB,IAAAA,cAAC0H,EAAAA,EAAI,CAACmW,KAAK,QAAQ,aAAYzX,EAAAA,EAAOC,SAAShH,EAAUs0B,mBAAoB,CAAC5I,EAAI,EAAGuG,EAAKvU,SACrFuU,EAAKvU,OAEVuU,EAAKvU,QAGd,KAGf/c,IAAAA,cAAC4H,EAAAA,EAAI,CAACC,WAAS,GACVkpB,GAA4BpqB,QAAQ2V,IACjCtc,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,GAAI,IACVua,GAGTxiB,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,GAAI,IACXjI,IAAAA,cAACG,EAAAA,EAAM,CACHO,GAAG,YACHG,QAASiwB,GAERzxB,EAAUu0B,gBAUvC5zB,IAAAA,cAAAA,IAAAA,SAAA,KACKuwB,EACGvwB,IAAAA,cAAC4H,EAAAA,EAAI,CAACC,WAAS,EAACpH,UAAWgE,EAAQ4rB,gBAC/BrwB,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,IAAE,GACTjI,IAAAA,cAAC0H,EAAAA,EAAI,CAACL,KAAK,MACNkpB,EAAWhwB,MAAQ,IAEvBgwB,EAAW5rB,qBACL4rB,EAAWsC,UAEV7yB,IAAAA,cAAC0H,EAAAA,EAAI,KACAtB,EAAAA,EAAOC,SAASkqB,EAAWuC,UACtBzzB,EAAU0zB,aACV1zB,EAAU2zB,cAAe,CAACzC,EAAWsC,kBAGjD9rB,EACN/G,IAAAA,cAACivB,GAAAA,EAAO,CAAC,cAAY,gBAG7BloB,EACJ/G,IAAAA,cAACmzB,GAAAA,GAAY,CAACC,WAAS,EAAC9C,WAAYA,EAAY+C,YAAY,YACvDrW,EAAQ1S,KAAI,SAACgnB,EAAMvG,GAAC,OACjB/qB,IAAAA,cAACszB,GAAAA,GAAI,CAACjwB,IAAG,QAAAmF,OAAUuiB,IACf/qB,IAAAA,cAACuzB,GAAAA,GAAU,CACP9uB,QAAS,CAAEoH,KAAMpH,EAAQ8qB,SACzB7uB,GAAE,QAAA8H,OAAUuiB,GACZlqB,QAAS+vB,GAET5wB,IAAAA,cAACwzB,GAAAA,GAAS,CACNvvB,MAAO+X,EAAO+O,GAAG0I,YACjBC,SAAUpC,EAAKlD,cAEdpS,EAAO+O,GAAG0I,YACPzzB,IAAAA,cAAC0H,EAAAA,EAAI,CAACmW,KAAK,QAAQ,aAAYzX,EAAAA,EAAOC,SAAShH,EAAUs0B,mBAAoB,CAAC5I,EAAI,EAAGuG,EAAKvU,SACrFuU,EAAKvU,OAEVuU,EAAKvU,QAGjB/c,IAAAA,cAAC6zB,GAAAA,GAAW,KACPvC,EAAKtU,QACLsT,IAAetT,EAAQnQ,OAAS,GAC7B7M,IAAAA,cAAC4H,EAAAA,EAAI,CAACC,WAAS,GACX7H,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,GACNhI,IAAAA,cAACuJ,EAAAA,EAAW,CAAC7I,GAAE,WACXV,IAAAA,cAACG,EAAAA,EAAM,CACHjB,SAAyB,IAAfoxB,EACV5vB,GAAE,WAAA8H,OAAauiB,GACfnqB,QAAQ,OACRC,QAAS6vB,GAERrxB,EAAUszB,SAEf3yB,IAAAA,cAACG,EAAAA,EAAM,CACHM,UAAWgE,EAAQmrB,WACnB5uB,MAAM,UACNN,GAAE,WAAA8H,OAAauiB,GACflqB,QAASgwB,GAERxxB,EAAUozB,aAOhC,KAGdnC,IAAetT,EAAQnQ,OAAS,GAC7B7M,IAAAA,cAAC4H,EAAAA,EAAI,CAACC,WAAS,EAACpH,UAAWgE,EAAQoK,aAC9BkiB,GAA4BpqB,QAAQ2V,IACjCtc,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,GAAI,IACVua,GAGTxiB,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,GACNhI,IAAAA,cAACuJ,EAAAA,EAAW,CAAC7I,GAAE,WACXV,IAAAA,cAACG,EAAAA,EAAM,CACHO,GAAE,WAAA8H,OAAawU,EAAQnQ,QACvBjM,QAAQ,OACRC,QAAS6vB,GAERrxB,EAAUszB,SAEf3yB,IAAAA,cAACG,EAAAA,EAAM,CACHM,UAAWgE,EAAQmrB,WACnB5uB,MAAM,UACNN,GAAG,YACHG,QAASiwB,GAERzxB,EAAUu0B,cAOtC,IAGL5C,EACHP,GAAkBE,EAEX3wB,IAAAA,cAAA,OAAKS,UAAWgE,EAAQ2rB,YACpBpwB,IAAAA,cAAA,WACAA,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,GAAI,IACXjI,IAAAA,cAAC0H,EAAAA,EAAI,KACA8oB,IAGTxwB,IAAAA,cAAA,WACAA,IAAAA,cAAA,OAAKS,UAAWgE,EAAQ0rB,kBACpBnwB,IAAAA,cAACG,EAAAA,EAAM,CACHM,UAAWgE,EAAQurB,OACnBhvB,MAAM,YACNN,GAAG,UACHG,QAAS8vB,GAET3wB,IAAAA,cAACiB,EAAAA,EAAI,CAACV,KAAK,SACXP,IAAAA,cAAA,OAAKS,UAAWgE,EAAQyb,YACnB7gB,EAAUy0B,iBAM7B/sB,EAEN/G,IAAAA,cAAA,OAAKS,UAAWgE,EAAQsrB,eACnB7lB,GAEJunB,IAKrB,I,gBC1SA,UAAetjB,EAAAA,EAAAA,IA1QA,SAACC,GAAY,OAAKC,EAAAA,EAAAA,GAAa,CAC1CohB,gBAAiB,CACbrgB,UAAWb,EAAAA,EAAOI,WAEtBihB,WAAY,CACRD,YAAaphB,EAAAA,EAAOO,WAExBilB,KAAM,CACF/yB,MAAOoN,EAAM4lB,QAAQrI,OAAOsI,OAC5BC,OAAQ,WAEZlE,OAAQ,CACJ3vB,QAAS,UAEb6f,WAAY,CACR7f,QAAS,SACT6f,WAAY3R,EAAAA,EAAOc,aAEvB8kB,YAAa,CACT9zB,QAAS,SACT8zB,YAAa5lB,EAAAA,EAAOc,aAExBvD,MAAO,CACH,mCAAoC,CAChCmD,MAAO,OAEX,mCAAoC,CAChCA,MAAO,OAEX,mCAAoC,CAChCA,MAAO,OAEX,mCAAoC,CAChCA,MAAO,SAGjB,GAsOF,EAhO8C,SAAClQ,GAC3C,IAYI+M,EA8EAkR,EAzFAoX,EASAr1B,EATAq1B,YACAC,EAQAt1B,EARAs1B,oBACA5vB,EAOA1F,EAPA0F,QACA6vB,EAMAv1B,EANAu1B,UACAC,EAKAx1B,EALAw1B,gBACAC,EAIAz1B,EAJAy1B,YACAC,EAGA11B,EAHA01B,kBACAC,EAEA31B,EAFA21B,wBACAr1B,EACAN,EADAM,UA6MJ,OAzMI+0B,GAAeA,EAAYvnB,OAAS,IACpCf,EACI9L,IAAAA,cAAC2L,EAAAA,GAAK,CACFC,WAAW,KACXnH,QAAS,CAAEoH,KAAMpH,EAAQqH,OACzBpL,GAAG,WAEHV,IAAAA,cAAC+L,EAAAA,GAAS,KACN/L,IAAAA,cAACgM,EAAAA,GAAQ,KACLhM,IAAAA,cAACiM,EAAAA,GAAS,CAACC,UAAU,MAChB7M,EAAUs1B,SAEf30B,IAAAA,cAACiM,EAAAA,GAAS,CAACC,UAAU,MAChB7M,EAAUu1B,SAEf50B,IAAAA,cAACiM,EAAAA,GAAS,CAACC,UAAU,MAChB7M,EAAUw1B,SAEf70B,IAAAA,cAACiM,EAAAA,GAAS,CAACC,UAAU,MAChB7M,EAAUy1B,aAIvB90B,IAAAA,cAAC0M,EAAAA,GAAS,KACL0nB,EAAY9pB,KAAI,SAACyqB,EAAYhK,GAAC,OAC3B/qB,IAAAA,cAACgM,EAAAA,GAAQ,CACL3I,IAAG,OAAAmF,OAASuiB,IAEZ/qB,IAAAA,cAACiM,EAAAA,GAAS,CACNe,WAAY3N,EAAUs1B,QACtB1nB,MAAM,OAENjN,IAAAA,cAAC0H,EAAAA,EAAI,KACAqtB,EAAWC,kBAGpBh1B,IAAAA,cAACiM,EAAAA,GAAS,CACNe,WAAY3N,EAAUu1B,QACtB3nB,MAAM,OAENjN,IAAAA,cAAC0H,EAAAA,EAAI,KACAqtB,EAAWE,YAGpBj1B,IAAAA,cAACiM,EAAAA,GAAS,CACNe,WAAY3N,EAAUw1B,QACtB5nB,MAAM,OAENjN,IAAAA,cAAC0H,EAAAA,EAAI,KACAqtB,EAAWG,WAGpBl1B,IAAAA,cAACiM,EAAAA,GAAS,CACNe,WAAY3N,EAAUy1B,UACtB7nB,MAAM,OAENjN,IAAAA,cAACm1B,GAAAA,EAAO,CACJz0B,GAAG,aACH00B,UAAU,MACVrY,MAAM,UAEN/c,IAAAA,cAACe,EAAAA,EAAU,CACPC,MAAM,YACNN,GAAE,gBAAA8H,OAAkBusB,EAAWM,wBAAuB,KAAA7sB,OAAIusB,EAAWC,iBAAexsB,OAAGusB,EAAWE,WAClGp0B,QAAS6zB,GAET10B,IAAAA,cAACiB,EAAAA,EAAI,CAACV,KAAK,aAIhB,OAQ3BlB,IACA2d,EACIhd,IAAAA,cAACqf,GAAAA,GAAI,KACDrf,IAAAA,cAACsf,GAAAA,GAAW,KACRtf,IAAAA,cAAC4H,EAAAA,EAAI,CAACC,WAAS,EAACe,QAAS,GACrB5I,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,GAAI,GAAIyC,GAAI,IACnB1K,IAAAA,cAAC0H,EAAAA,EAAI,CAACL,KAAK,MACNhI,EAAUwS,WAGnB7R,IAAAA,cAACivB,GAAAA,EAAO,MACRjvB,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,GAAI,IACXjI,IAAAA,cAAC0H,EAAAA,EAAI,KACAtB,EAAAA,EAAOC,SAAShH,EAAU8I,gBAAiB,CAACksB,MAGrDr0B,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,GAAI,GAAIyC,GAAI,GACnB1K,IAAAA,cAACG,EAAAA,EAAM,CACHM,UAAWgE,EAAQurB,OACnBhvB,MAAM,YACNN,GAAG,gBACHG,QAAS4zB,GAETz0B,IAAAA,cAACiB,EAAAA,EAAI,CAACV,KAAK,gBACXP,IAAAA,cAAA,OAAKS,UAAWgE,EAAQyb,YACnB7gB,EAAUi2B,iBAIvBt1B,IAAAA,cAACC,EAAAA,EAAM,CAACa,MAAI,GACRd,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,GAAI,IACXjI,IAAAA,cAAA,WACIA,IAAAA,cAACm1B,GAAAA,EAAO,CACJz0B,GAAG,WACH00B,UAAU,MACVrY,MAAM,QAEN/c,IAAAA,cAACe,EAAAA,EAAU,CACPC,MAAM,YACNN,GAAG,UACHG,QAAS2zB,GAETx0B,IAAAA,cAACiB,EAAAA,EAAI,CAACV,KAAK,cAM/BP,IAAAA,cAACC,EAAAA,EAAM,CAACC,QAAM,GACVF,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAAC0C,GAAI,GACX1K,IAAAA,cAACG,EAAAA,EAAM,CACHG,UAAW,CACPC,KAAM,QAEVG,GAAG,WACHF,MAAM,OACNG,mBAAmB,UACnBC,QAAQ,OACRC,QAAS2zB,GAERn1B,EAAUk2B,qBAIvBv1B,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,IAAE,GAELmsB,GAAeA,EAAYvnB,OAAS,EAE5B7M,IAAAA,cAAAA,IAAAA,SAAA,KACIA,IAAAA,cAAC0H,EAAAA,EAAI,CACD1G,MAAM,gBACNqG,KAAK,MAEJhI,EAAUm2B,gBAEd1pB,EACD9L,IAAAA,cAACixB,GAAAA,EAAa,CACVC,aAAa,YACb7vB,QAAO,GAAAmH,OAAKnJ,EAAUo2B,aAAY,KAAAjtB,OAAI8rB,MAK9Ct0B,IAAAA,cAACixB,GAAAA,EAAa,CACVC,aAAa,YACb7vB,QAAShC,EAAUq2B,gBAKvC11B,IAAAA,cAAC4H,EAAAA,EAAI,CACDE,WAAW,WACXD,WAAS,EACTmB,UAAU,SACVjB,eAAe,WACfa,QAAS,GAET5I,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,GAAI,IACXjI,IAAAA,cAAA,OAAKS,UAAWgE,EAAQgrB,iBACpBzvB,IAAAA,cAAA,OAAKS,UAAWgE,EAAQmrB,YACpB5vB,IAAAA,cAACG,EAAAA,EAAM,CACHM,UAAWgE,EAAQurB,OACnBtvB,GAAG,cACHG,QAAS0zB,GAETv0B,IAAAA,cAAA,OAAKS,UAAWgE,EAAQ0vB,aACnB90B,EAAUs2B,aAEf31B,IAAAA,cAAA,OAAKS,UAAWgE,EAAQyb,YACpBlgB,IAAAA,cAACiB,EAAAA,EAAI,CAACV,KAAK,yBAQvCP,IAAAA,cAAA,cAOZA,IAAAA,cAAAA,IAAAA,SAAA,KACKgd,EAGb,IC/OA,GAtCuE,SAACje,GACpE,IACI62B,EAIA72B,EAJA62B,oBACAl2B,EAGAX,EAHAW,KACAL,EAEAN,EAFAM,UACA4V,EACAlW,EADAkW,aAGJ,OACIjV,IAAAA,cAAC4J,EAAAA,EAAK,CACFC,sBAAoB,EACpBK,OACIlK,IAAAA,cAACG,EAAAA,EAAM,CACHO,GAAG,QACHG,QAASoU,GAER5V,EAAUsK,OAGnBjJ,GAAG,wBACHsJ,OAAQ3K,EAAUwS,SAClB5H,SAAS,KACTvK,KAAMA,EACNgC,QAASuT,GAETjV,IAAAA,cAAC4H,EAAAA,EAAI,CAACC,WAAS,EAACe,QAAS,GACrB5I,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,GAAI,GAAIyC,GAAI,IACnB1K,IAAAA,cAAC0H,EAAAA,EAAI,KACAkuB,KAMzB,E,gBC0PA,SA9PuD,SAAC72B,GACpD,IAyDI82B,EAiGA7R,EAkBAC,EA3KAoB,EA0BAtmB,EA1BAsmB,KACAyQ,EAyBA/2B,EAzBA+2B,UACAhQ,EAwBA/mB,EAxBA+mB,QACAiQ,EAuBAh3B,EAvBAg3B,QACAC,EAsBAj3B,EAtBAi3B,gBACAC,EAqBAl3B,EArBAk3B,aACAv2B,EAoBAX,EApBAW,KACA0kB,EAmBArlB,EAnBAqlB,WACAC,EAkBAtlB,EAlBAslB,SACAC,EAiBAvlB,EAjBAulB,mBACAphB,EAgBAnE,EAhBAmE,MACAgzB,EAeAn3B,EAfAm3B,OACAC,EAcAp3B,EAdAo3B,kBAGAC,EAWAr3B,EAXAq3B,0BACA3R,EAUA1lB,EAVA0lB,aACAC,EASA3lB,EATA2lB,oBACA2R,EAQAt3B,EARAs3B,2BACA1R,EAOA5lB,EAPA4lB,QACAC,EAMA7lB,EANA6lB,YACAljB,EAKA3C,EALA2C,QACAmjB,EAIA9lB,EAJA8lB,SAGAxlB,EACAN,EADAM,UAGEi3B,EAAoC,CACtCnwB,YAAa9G,EAAUk3B,oBACvBjzB,MAAO,IAGLkzB,EAAsC,CACxCrwB,YAAa9G,EAAUo3B,sBACvBnzB,MAAO,IAGLqC,EACF3F,IAAAA,cAACuJ,EAAAA,EAAW,CAAC7I,GAAG,qBACZV,IAAAA,cAACG,EAAAA,EAAM,CACHO,GAAI,YACJG,QAASgkB,GAERxlB,EAAUylB,WAEf9kB,IAAAA,cAACG,EAAAA,EAAM,CACHO,GAAI,WACJM,MAAM,YACNH,QAAS8jB,GAERtlB,EAAU0lB,WA0LvB,OApLIkR,GAAgBA,EAAappB,OAAS,IACtCgpB,EACI71B,IAAAA,cAAC4H,EAAAA,EAAI,CAACC,WAAS,EAACe,QAAS,GACrB5I,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,IAAE,GACTjI,IAAAA,cAAC2L,EAAAA,GAAK,CACFC,WAAW,KACXlL,GAAG,mBAEHV,IAAAA,cAAC+L,EAAAA,GAAS,KACN/L,IAAAA,cAACgM,EAAAA,GAAQ,KACLhM,IAAAA,cAACiM,EAAAA,GAAS,CAACC,UAAU,MAChB7M,EAAUq3B,oBAEf12B,IAAAA,cAACiM,EAAAA,GAAS,CAACC,UAAU,MAChB7M,EAAUs3B,YAEf32B,IAAAA,cAACiM,EAAAA,GAAS,CAACC,UAAU,MAChB7M,EAAUu3B,aAEf52B,IAAAA,cAACiM,EAAAA,GAAS,CAACC,UAAU,MAChB7M,EAAUomB,SAEfzlB,IAAAA,cAACiM,EAAAA,GAAS,CAACC,UAAU,MAChB7M,EAAUqmB,UAEf1lB,IAAAA,cAACiM,EAAAA,GAAS,CAACC,UAAU,MAChB7M,EAAUwmB,cAIvB7lB,IAAAA,cAAC0M,EAAAA,GAAS,KAEFupB,EAAa3rB,KACT,SAACqC,EAAKoe,GAAC,OACH/qB,IAAAA,cAACgM,EAAAA,GAAQ,CAAC3I,IAAG,eAAAmF,OAAiBuiB,IAC1B/qB,IAAAA,cAACiM,EAAAA,GAAS,CACNe,WAAY3N,EAAUq3B,mBACtBxqB,UAAU,KACVe,MAAM,OAENjN,IAAAA,cAAC62B,GAAAA,EAAI,CACDn2B,GAAE,OAAA8H,OAASuiB,GACXlqB,QAAS+jB,EAAYjY,EAAIpM,KAAMoM,EAAIopB,QAASppB,EAAImqB,SAAUnqB,EAAI0Y,KAC1D1Y,EAAI2Y,gBAAiB3Y,EAAI4Y,YAE7BvlB,IAAAA,cAAA,YACK2M,EAAIpM,QAIjBP,IAAAA,cAACiM,EAAAA,GAAS,CACNe,WAAY3N,EAAUs3B,YAEtB32B,IAAAA,cAAA,YACK2M,EAAIopB,UAGb/1B,IAAAA,cAACiM,EAAAA,GAAS,CACNe,WAAY3N,EAAUu3B,aAEtB52B,IAAAA,cAAA,YACK2M,EAAImqB,WAGb92B,IAAAA,cAACiM,EAAAA,GAAS,CACNe,WAAY3N,EAAUomB,SAEtBzlB,IAAAA,cAAA,YACK2M,EAAI0Y,OAGbrlB,IAAAA,cAACiM,EAAAA,GAAS,CACNe,WAAY3N,EAAUqmB,UAEtB1lB,IAAAA,cAAA,YACK2M,EAAIoqB,YAGb/2B,IAAAA,cAACiM,EAAAA,GAAS,CACNe,WAAY3N,EAAUwmB,YAEtB7lB,IAAAA,cAAA,YACK2M,EAAIqqB,cAGN,SAY3Cf,GAAgBA,EAAappB,OAAS,IACtCmX,EACIhkB,IAAAA,cAAC4H,EAAAA,EAAI,CAACC,WAAS,EAACe,QAAS,GACrB5I,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,IAAE,GACTjI,IAAAA,cAACgmB,GAAAA,EAAU,CACPC,MAAOkQ,EACPjQ,KAAM9B,EACN+B,YAAa9B,EACbC,mBAAoBA,EACpB8B,aAAc3B,EACd4B,oBAAqB3B,OAQzCT,EACIjkB,IAAAA,cAAAA,IAAAA,SAAA,KACIA,IAAAA,cAAC4H,EAAAA,EAAI,CAACC,WAAS,EAACe,QAAS,GACrB5I,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,GAAI,GAAIwC,GAAI,GACnBzK,IAAAA,cAACmH,EAAAA,EAAS,CACNzG,GAAG,qBACH0K,MAAO/L,EAAUq3B,mBACjBn1B,KAAK,OACL+B,MAAO0yB,GAAmB,GAC1B1uB,SAAU+uB,EACV9qB,aAAcsZ,KAGtB7kB,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,GAAI,GAAIwC,GAAI,GACnBzK,IAAAA,cAACmH,EAAAA,EAAS,CACNzG,GAAG,aACH0K,MAAO/L,EAAUs3B,WACjBp1B,KAAK,OACL+B,MAAOyyB,GAAW,GAClBzuB,SAAU+uB,EACV9qB,aAAcsZ,KAGtB7kB,IAAAA,cAAA,WACAA,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,GAAI,GAAIwC,GAAI,GACnBzK,IAAAA,cAACmH,EAAAA,EAAS,CACNzG,GAAG,UACH0K,MAAO/L,EAAUomB,QACjBlkB,KAAK,OACL+B,MAAO+hB,GAAQ,GACf/d,SAAU+uB,EACV9qB,aAAcsZ,KAGtB7kB,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,GAAI,GAAIwC,GAAI,GACnBzK,IAAAA,cAACmqB,GAAAA,EAAQ,CACLJ,YAAauM,EACb51B,GAAG,WACH0K,MAAO/L,EAAUqmB,SACjB5c,QAASotB,EACT5yB,MAAOJ,GAAS,GAChBoE,SAAU8uB,KAGlBp2B,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,GAAI,GAAIwC,GAAI,GACnBzK,IAAAA,cAACmqB,GAAAA,EAAQ,CACLJ,YAAayM,EACb91B,GAAG,aACH0K,MAAO/L,EAAUwmB,WACjB/c,QAASgtB,EACTxyB,MAAOwiB,GAAW,GAClBxe,SAAU8uB,KAGlBp2B,IAAAA,cAAA,WACAA,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,GAAI,IACVtC,IAGT3F,IAAAA,cAAA,WACC61B,EACA7R,GAKLhkB,IAAAA,cAAC4J,EAAAA,EAAK,CACFlJ,GAAG,iBACHsJ,OAAQ3K,EAAUwS,SAClB5H,SAAS,KACTvK,KAAMA,EACNgC,QAASA,GAERuiB,EAGb,EC9GA,GAvLgC,CAE5BgT,aAAY,SAACC,EAAoBrqB,EAAgB2X,EAAkB3U,EAC/DC,GACAC,EAAAA,EAAQC,KAAKzM,KAAK0zB,aAAa12B,KAAM,WACjC,CACIsM,OAAAA,EACAqqB,WAAAA,EACA1S,QAAAA,GAEJ3U,EAAUC,EAClB,EAIAqnB,cAAa,SAACz2B,EAAYmP,EAAkCC,GACxDC,EAAAA,EAAQC,KAAKzM,KAAK4zB,cAAc52B,KAAM,iBAClC,CACIG,GAAIA,EACJa,KAAM,GAEVsO,EAAUC,EAClB,EAEAsnB,8BAA6B,SAACC,EAC1BxnB,EAAkCC,GAClCC,EAAAA,EAAQC,KAAKzM,KAAK4zB,cAAc52B,KAAM,eAClC82B,EACAxnB,EAAUC,EAClB,EAEAwnB,WAAU,SAACC,EACP1nB,EAAkCC,GAClCC,EAAAA,EAAQC,KAAKzM,KAAK+zB,WAAW/2B,KAAM,uBAAwBg3B,EAAa1nB,EAAUC,EACtF,EAEA0nB,2BAA0B,SAACC,EACvBlH,EAA8B1gB,EAAkCC,GAChEC,EAAAA,EAAQC,KAAKzM,KAAKi0B,2BAA2Bj3B,KACzC,uCACA,CACIgwB,WAAAA,EACAkH,iBAAAA,GAEJ5nB,EACAC,EACR,EAEA4nB,sCAAqC,SAACC,EAAmB9W,EACrD+W,EAA6B/nB,EAAkCC,GAC/DC,EAAAA,EAAQC,KAAKzM,KAAKm0B,sCAAsCn3B,KACpD,kDACA,CACIsgB,MAAOA,EACP+W,oBAAqBA,EACrBD,UAAWA,GAEf9nB,EACAC,EACR,EAEA+nB,gCAA+B,SAACC,EAC5BjoB,EAAkCC,GAClCC,EAAAA,EAAQC,KAAKzM,KAAKs0B,gCAAgCt3B,KAC9C,4CACAu3B,EACAjoB,EACAC,EACR,EAEAioB,+BAA8B,SAACznB,EAC3BT,EAAkCC,GAClCC,EAAAA,EAAQC,KAAKzM,KAAKw0B,+BAA+Bx3B,KAC7C,2CACA+P,EACAT,EACAC,EACR,EAEAkoB,gCAA+B,SAACC,EAC5BpoB,EAAkCC,GAClCC,EAAAA,EAAQC,KAAKzM,KAAKw0B,+BAA+Bx3B,KAC7C,4CACA03B,EACApoB,EACAC,EACR,EAEAooB,0BAAyB,SAAC5nB,EACtBT,EAAkCC,GAClCC,EAAAA,EAAQC,KAAKzM,KAAK20B,0BAA0B33B,KACxC,4CACA+P,EACAT,EACAC,EACR,EAEAqoB,+BAA8B,SAAC7nB,EAC3BT,EAAkCC,GAClCC,EAAAA,EAAQC,KAAKzM,KAAK20B,0BAA0B33B,KACxC,+CACA+P,EACAT,EACAC,EACR,EAIAsoB,gBAAe,SAACC,EAAa33B,EAAY4wB,EAAcgH,EAAeC,EAAkBC,EACpF3oB,EAAkCC,EAClC2oB,GACKA,EASD1oB,EAAAA,EAAQC,KAAKzM,KAAK60B,gBAAgB73B,KAAM,IAAFiI,OAAM6vB,GAAO,CAC/CI,OAAAA,EACAH,MAAAA,EACA53B,GAAAA,EACA4wB,KAAAA,EACAiH,SAAAA,EACAC,kBAAAA,GACD3oB,EAAUC,GAfbC,EAAAA,EAAQC,KAAKzM,KAAK60B,gBAAgB73B,KAAM,IAAFiI,OAAM6vB,GAAO,CAC/CC,MAAAA,EACA53B,GAAAA,EACA4wB,KAAAA,EACAiH,SAAAA,GACD1oB,EAAUC,EAYrB,EACA4oB,qBAAoB,SAChBpoB,EACAqoB,EACAL,EACAM,EACA/oB,EACAC,GACAC,EAAAA,EAAQC,KAAKzM,KAAKm1B,qBAAqBn4B,KACnC,wBACA,CAAEk4B,OAAQnoB,EAAeuoB,OAAQF,EAAML,MAAAA,EAAOM,YAAAA,GAC9C/oB,EACAC,EACR,EAIAgpB,aAAY,SAACjpB,EAAkCC,GAC3CC,EAAAA,EAAQkE,IAAI1Q,KAAKu1B,aAAav4B,KAAM,0BAA2BsP,EAAUC,EAC7E,EACAipB,UAAS,SAAClpB,EAAkCC,GACxCC,EAAAA,EAAQkE,IAAI1Q,KAAKu1B,aAAav4B,KAAM,uBAAwBsP,EAAUC,EAC1E,EACAkpB,gBAAe,SAAC9B,EAAoBrqB,EAAgBmpB,EAA0BD,EAC1E1Q,EAAe4T,EAAkB1T,EAAoB1V,EACrDC,GACAC,EAAAA,EAAQC,KAAKzM,KAAKy1B,gBAAgBz4B,KAAM,gBACpC,CACIsM,OAAAA,EACAqqB,WAAAA,EACAgC,YAAa,CACT7T,KAAAA,EACAE,UAAAA,EACAwQ,QAAAA,EACAx1B,KAAMy1B,EACN1Q,gBAAiB2T,IAGzBppB,EAAUC,EAClB,EAIAqpB,mBAAkB,SAACtpB,GACfE,EAAAA,EAAQkE,IAAI1Q,KAAK41B,mBAAmB54B,KAAM,oBAAqBsP,EACnE,EACA8P,qBAAoB,SAAC9P,GACjBE,EAAAA,EAAQC,KAAKzM,KAAKoc,qBAAqBpf,KAAM,kCAAmC,KAAMsP,EAC1F,GClJJ,GAjC6B,CAGzBupB,gBAAe,SAACvpB,EAAkCC,GAC9CC,EAAAA,EAAQC,KAAKzM,KAAK61B,gBAAgB74B,KAAM,cAAe,EAAIsP,EAAUC,EACzE,EAGAupB,2BAA0B,SAACC,EACvBzpB,EAAkCC,GAClCC,EAAAA,EAAQC,KAAKzM,KAAK81B,2BAA2B94B,KAAM,gCAC/C+4B,EAAoBzpB,EAAUC,EACtC,EAEAypB,2BAA0B,SAAC9B,EACvBlH,EAA8B1gB,EAC9BC,GACAC,EAAAA,EAAQC,KAAKzM,KAAKg2B,2BAA2Bh5B,KAAM,gCAC/C,CACIgwB,WAAYA,EACZkH,iBAAkBA,GAEtB5nB,EAAUC,EAClB,EACA0pB,kBAAiB,SAAC3pB,GACdE,EAAAA,EAAQC,KAAKzM,KAAKi2B,kBAAkBj5B,KAAM,8BAA+B,KAAMsP,EACnF,EACA4pB,yBAAwB,SAAC5pB,GACrBE,EAAAA,EAAQC,KAAKzM,KAAKk2B,yBAAyBl5B,KAAM,yCAA0C,KAAMsP,EACrG,GCoIJ,IACM6pB,GAAmB,SAAA73B,IAAAC,EAAAA,EAAAA,GAAA43B,EAAA73B,GAAA,I,IAAAE,G,EAAA23B,E,gaASrB,SAAAA,EAAmB36B,GAAO,IAAAiD,EActB,OAdsBC,EAAAA,EAAAA,GAAA,KAAAy3B,GACtB13B,EAAAD,EAAAG,KAAA,KAAMnD,IAENoD,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,sBAAAG,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,oBAAAG,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,kBAAAG,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,8BAAAG,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,wBAAAG,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,iBA2FJG,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,6BACoC,WAChC,IACIA,EAAKU,SAAS,CACVi3B,wBAAwB,EACxB/0B,iBAAamC,GAErB,CACA,MAAOnE,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAK43B,0BAA0Br5B,KAAMqC,GAC7E,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,8BAEoC,WACjC,IACIA,EAAKU,SAAS,CACVm3B,yBAAyB,GAEjC,CACA,MAAOj3B,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAK83B,2BAA2Bv5B,KAAMqC,GAC9E,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,SAEe,WACZ,IAGQA,EAAKkB,MADL0B,aAIA5C,EAAKU,SAAS,CACVm3B,yBAAyB,GAGrC,CACA,MAAOj3B,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKsD,MAAM/E,KAAMqC,GACzD,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,wBAE8B,WAC3B,IACInC,OAAOC,SAAS+rB,KAAO,GAAHrjB,OAAMC,EAAAA,EAAUC,OAAM,2BAC9C,CACA,MAAO9F,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAK6sB,qBAAqBtuB,KAAMqC,GACxE,CACJ,KAGAT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,qBAC4B,WACxB,IACI,IAAM+3B,EAAeC,SAASC,cAAc,SAExC1J,EACAvuB,EAAKkB,MADLqtB,WAEJ,GAAIA,EAAY,CACZ,IAAI2J,EAAyB,GACzB3J,EAAW4J,YACX5J,EAAW4J,UAAUlV,SAAQ,SAAAmV,GACNA,EAASC,cAAc9oB,QAAQ,IAAK,IACrBX,MAAM,KACzBqU,SAAQ,SAAAqV,GACnBJ,EAAiBA,EAAiBI,EAAQ/oB,QAAQ,KAAM,IAAM,GAClE,GACJ,IACAwoB,EAAaQ,aAAa,OAAQ,QAClCR,EAAaQ,aAAa,QAASL,GACnCH,EAAaS,SAAWx4B,EAAKy4B,aAAaC,MAAIt4B,EAAAA,EAAAA,GAAAJ,IAEtD,CACA,OAAO+3B,CACX,CACA,MAAOn3B,GAEH,OADAZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAK24B,kBAAkBp6B,KAAMqC,IAC1D,IACX,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,kBAEwB,SAACq4B,GACtB,IAAIO,EAAkB,EACtB,IACI,IACIrK,EACAvuB,EAAKkB,MADLqtB,WAcJ,OAXIA,GAAcA,EAAW4J,WACzB5J,EAAW4J,UAAUlV,SAAQ,SAAAmV,GACNA,EAASC,cAAc9oB,QAAQ,IAAK,IACrBX,MAAM,KACzBqU,SAAQ,SAAAqV,GACfA,EAAQ/oB,QAAQ,KAAM,MAAQ8oB,IAC9BO,EAAUR,EAASS,YAE3B,GACJ,IAEGD,CACX,CACA,MAAOh4B,GAEH,OADAZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAK84B,eAAev6B,KAAMqC,IACvDg4B,CACX,CACJ,KAACz4B,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,oBAE0B,SAAA+4B,GACvB,IACI,IAAMC,EAAsB,IAAIC,WAEhC,OAAO,IAAIC,SAAQ,SAAAC,GACfH,EAAoBI,OAAS,WACzB,GAAIJ,EAAoB14B,OAAQ,CAC5B,IAAI+4B,EAAUL,EAAoB14B,OAAO+D,WAAWkL,QAAQ,eAAgB,IACvE8pB,EAAQxuB,OAAS,EAAK,IACvBwuB,GAAW,IAAIC,OAAO,EAAKD,EAAQxuB,OAAS,IAEhDsuB,EAAQE,EACZ,CACJ,EACAL,EAAoBO,cAAcR,EACtC,GACJ,CACA,MAAOn4B,GAEH,OADAZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKw5B,iBAAiBj7B,KAAMqC,IACzD,IACX,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,8BAAAy5B,GAAAC,EAAAA,EAAAA,GAAAC,IAAAA,MAEsB,SAAAC,EAAMpnB,GAAK,IAAAlE,EAAAurB,EAAAC,EAAAlB,EAAAp1B,EAAAu2B,EAAAxL,EAAAlxB,EAAA28B,EAAAC,EAAAC,EAAAC,EAAA,OAAAR,IAAAA,MAAA,SAAAS,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAWsB,GAXtBF,EAAAC,KAAA,EAGtB/rB,EACAtO,EAAKkB,MADLoN,cAGJkE,EAAM+nB,kBACN/nB,EAAMgoB,iBAEAX,EAAOrnB,EAAME,OAAO+nB,MAAM,GAC1BX,EAAWD,EAAKt7B,KAAKqQ,MAAM,KAEjB,KADVgqB,EAAU54B,EAAK84B,eAAegB,EAAS,OACxBxrB,EAAa,CAAA8rB,EAAAE,KAAA,SAKF,GALE92B,EAM1BxD,EAAKkB,MAJL64B,EAA0Bv2B,EAA1Bu2B,2BACAxL,EAAU/qB,EAAV+qB,WACAlxB,EAASmG,EAATnG,UACA28B,EAAwBx2B,EAAxBw2B,0BAGAzL,IAAclxB,EAAS,CAAA+8B,EAAAE,KAAA,cACnB/L,EAAW8D,qBAAuB2H,GAAwB,CAAAI,EAAAE,KAAA,SAC1D54B,EAAAA,EAAcgO,SAAS,CACnBrQ,QAAS+E,EAAAA,EAAOC,SAAShH,EAAU+0B,YAAYsI,yBAA0B,CAACnM,EAAW8D,sBACrF1iB,YAAanQ,EAAAA,EAAWm7B,UACfP,EAAAE,KAAA,iBAGiC,GAAxCL,GAASJ,EAAKx0B,KAAO,SAASu1B,QAAQ,KACxC7rB,OAAOkrB,GAASlrB,OAAOwf,EAAWsM,oBAAkB,CAAAT,EAAAE,KAAA,SACpD54B,EAAAA,EAAcgO,SAAS,CACnBrQ,QAAS+E,EAAAA,EAAOC,SAAShH,EAAU+0B,YAAY0I,wBAAyB,CAACvM,EAAWsM,oBACpFlrB,YAAanQ,EAAAA,EAAWm7B,UACfP,EAAAE,KAAA,sBAGTvrB,OAAOkrB,GAASlrB,OAAOgrB,GAA8BhrB,OAAOwf,EAAWsM,oBAAkB,CAAAT,EAAAE,KAAA,SACzF54B,EAAAA,EAAcgO,SAAS,CACnBrQ,QAAS+E,EAAAA,EAAOC,SAAShH,EAAU+0B,YAAY2I,2BAC3C,CAACxM,EAAWyM,+BAChBrrB,YAAanQ,EAAAA,EAAWm7B,UACfP,EAAAE,KAAA,wBAAAF,EAAAE,KAAA,GAGct6B,EAAKw5B,iBAAiBK,GAAK,QAAhDK,EAAYE,EAAAa,KACZd,EAAkC,CACpC7rB,cAAeA,EACf0kB,gBAAiB8G,EAAS,GAC1B7G,UAAW,IAAFzsB,OAAMszB,EAAS,IACxBoB,YAAahB,EACbhH,SAAU2G,EAAKx0B,KACfwzB,YAAaD,GAEjBl3B,EAAAA,EAAc2N,YAAW,GACzBF,GAAS0mB,gCAAgCsE,EAASn6B,EAAKm7B,wBAAyBn7B,EAAKa,UAAU,QAAAu5B,EAAAE,KAAA,iBAAAF,EAAAC,KAAA,GAAAD,EAAAgB,GAAAhB,EAAA,SAQnHp6B,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKy4B,aAAal6B,KAAI67B,EAAAgB,KAAM,yBAAAhB,EAAAiB,OAAA,GAAAzB,EAAA,mBAEvE,gBAAA0B,GAAA,OAAA7B,EAAA8B,MAAA,KAAAC,UAAA,EAlEA,KAkEAr7B,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,qBAE2B,SAACwS,GACzB,IACIA,EAAMgoB,iBAGFx6B,EAAKkB,MADL62B,aAES0D,OACjB,CACA,MAAO76B,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKyyB,kBAAkBl0B,KAAMqC,GACrE,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,mBAEyB,WACtB,IACI,IAAA4T,EAGI5T,EAAKkB,MAFLqtB,EAAU3a,EAAV2a,WACA3rB,EAAWgR,EAAXhR,YAGJ,GAAI2rB,EACA,GAAI3rB,EAAa,CACb,IAAM6L,EAAS,GAAAjI,OACRC,EAAAA,EAAUC,OAAM,gCAAAF,OAA+B+nB,EAAWmN,mBACjE17B,EAAKU,SAAS,CACVi3B,wBAAwB,EACxBlpB,UAAWA,EACXktB,iBAAiB,GAEzB,MAEIpN,EAAWmB,wBAAyB,EACpC1vB,EAAKU,SAAS,CACV6tB,WAAYA,EACZoN,iBAAiB,GAIjC,CACA,MAAO/6B,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKuyB,gBAAgBh0B,KAAMqC,GACnE,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,eAEqB,WAClB,IACIA,EAAKU,SAAS,CACVk7B,yBAAyB,GAEjC,CACA,MAAOh7B,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKwyB,YAAYj0B,KAAMqC,GAC/D,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,8BAEoC,WACjC,IACIA,EAAKU,SAAS,CACVk7B,yBAAyB,GAEjC,CACA,MAAOh7B,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAK67B,2BAA2Bt9B,KAAMqC,GAC9E,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,iCAEuC,SAACwS,GACrC,IACI,IAAMspB,EAA0BtpB,EAAME,OAAOhU,GAAGkQ,MAAM,KACtD5O,EAAKU,SAAS,CACVq7B,OAAQhtB,OAAO+sB,EAAc,IAC7BhC,SAAUgC,EAAc,GACxBE,4BAA4B,GAEpC,CACA,MAAOp7B,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKi8B,8BAA8B19B,KAAMqC,GACjF,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,2BAEiC,WAC9B,IACI,IACI+7B,EACA/7B,EAAKkB,MADL66B,OAEJr6B,EAAAA,EAAc2N,YAAW,GACzBF,GAAS6mB,gCAAgCjnB,OAAOgtB,GAAS/7B,EAAKk8B,wBAAyBl8B,EAAKa,SAChG,CACA,MAAOD,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAK0yB,wBAAwBn0B,KAAMqC,GAC3E,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,gCAEsC,WACnC,IACIA,EAAKU,SAAS,CACVs7B,4BAA4B,GAEpC,CACA,MAAOp7B,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKm8B,6BAA6B59B,KAAMqC,GAChF,CACJ,KAIAT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,iBACwB,WACpB,IACIA,EAAKU,SAAS,CACV07B,YAAY,GAEpB,CACA,MAAOx7B,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKq8B,cAAc99B,KAAMqC,GACjE,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,iBAEuB,WACpB,IACIA,EAAKU,SAAS,CACV47B,YAAY,GAEpB,CACA,MAAO17B,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKu8B,cAAch+B,KAAMqC,GACjE,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,gBAEsB,WACnB,IACIA,EAAKU,SAAS,CACV07B,YAAY,EACZE,YAAY,GAEpB,CACA,MAAO17B,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKw8B,aAAaj+B,KAAMqC,GAChE,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,gBAEsB,WACnB,IACIA,EAAKU,SAAS,CACV07B,YAAY,EACZE,YAAY,GAEpB,CACA,MAAO17B,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKy8B,aAAal+B,KAAMqC,GAChE,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,iBAEuB,SAACoQ,GACrB,IAEIsB,GAAAA,EAAYC,oBAAmB,GAC/BD,GAAAA,EAAYE,oBAAe7M,GACvBqL,IACApQ,EAAKU,SAAS,CACVg8B,WAAYtsB,EACZksB,YAAY,IAEhBt8B,EAAK28B,mBAEb,CACA,MAAO/7B,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAK4f,cAAcrhB,KAAMqC,GACjE,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,iBAEuB,WACpB,IACIA,EAAKU,SAAS,CACV07B,YAAY,IAEhBp8B,EAAK48B,mBACT,CACA,MAAOh8B,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAK8R,cAAcvT,KAAMqC,GACjE,CACJ,KAGAT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,cACqB,WACjB,IACI,IACIsuB,EACAtuB,EAAKkB,MADLotB,WAGJtuB,EAAKU,SAAS,CACV4tB,WAAYA,EAAa,GAEjC,CACA,MAAO1tB,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAK0uB,WAAWnwB,KAAMqC,GAC9D,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,eAEqB,SAACwS,GACnB,IACI,IAAM4c,EAAkB5c,EAAMqqB,cAAcn+B,GAAGkQ,MAAM,KACrD5O,EAAKU,SAAS,CACV4tB,WAAYvf,OAAOqgB,EAAM,KAEjC,CACA,MAAOxuB,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAK4uB,YAAYrwB,KAAMqC,GAC/D,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,cAEoB,WACjB,IACI,IACIsuB,EACAtuB,EAAKkB,MADLotB,WAGJtuB,EAAKU,SAAS,CACV4tB,WAAYA,EAAa,GAEjC,CACA,MAAO1tB,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAK6uB,WAAWtwB,KAAMqC,GAC9D,CACJ,KAGAT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,6BACoC,WAChC,IACIA,EAAKU,SAAS,CACVwhB,UAAW,GACX4a,wBAAwB,EACxB3a,kBAAkB,EAClB4a,qBAAiBh4B,GAEzB,CACA,MAAOnE,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKg9B,0BAA0Bz+B,KAAMqC,GAC7E,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,sBAGG,SAACwiB,EAAkBa,EAAeC,EAA0BC,EAAoBC,GAAiB,OAAK,WAClG,IACI,IAAA5O,EAGI5U,EAAKkB,MAFLqtB,EAAU3Z,EAAV2Z,WACA0O,EAAeroB,EAAfqoB,gBAGJ,GAAIA,GAAmB1O,EAAY,CAC/B,IAAM2O,EAAoBD,EAAgBruB,MAAM,KAE1Cid,EACF0C,EAAWa,MAAMrgB,OAAOmuB,EAAQ,KAAK1N,aAAazgB,OAAOmuB,EAAQ,KAAKrY,OAEtEqY,EAAQryB,OAAS,GACjB7K,EAAKm9B,iBAAiBtR,EAAYqR,EAAS,iBAAiB,EAAM7Z,GAClErjB,EAAKm9B,iBAAiBtR,EAAYqR,EAAS,mBAAmB,EAAM5Z,GACpEtjB,EAAKm9B,iBAAiBtR,EAAYqR,EAAS,gBAAgB,EAAM1a,GACjExiB,EAAKm9B,iBAAiBtR,EAAYqR,EAAS,mBAAmB,EAAM1Z,GACpExjB,EAAKm9B,iBAAiBtR,EAAYqR,EAAS,oBAAoB,EAAM3Z,KAGrEvjB,EAAKm9B,iBAAiBtR,EAAYqR,EAAS,iBAAiB,EAAO7Z,GACnErjB,EAAKm9B,iBAAiBtR,EAAYqR,EAAS,mBAAmB,EAAO5Z,GACrEtjB,EAAKm9B,iBAAiBtR,EAAYqR,EAAS,gBAAgB,EAAO1a,GAClExiB,EAAKm9B,iBAAiBtR,EAAYqR,EAAS,mBAAmB,EAAO1Z,GACrExjB,EAAKm9B,iBAAiBtR,EAAYqR,EAAS,oBAAoB,EAAO3Z,GAE9E,CAEAvjB,EAAKU,SAAS,CACVo8B,wBAAwB,GAEhC,CAAE,MAAOl8B,GACLZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKo9B,mBAAmB7+B,KAAMqC,GACtE,CACJ,CAAC,KAAAT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,kCAEoC,SAACwS,GACtC,IACQA,EAAME,OAAOhU,IAA0B,KAApB8T,EAAME,OAAOhU,IAEvB,eADD8T,EAAME,OAAOhU,IAEbsB,EAAKU,SAAS,CACVq8B,gBAAiBvqB,EAAME,OAAOpR,OAKlD,CACA,MAAOV,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKq9B,+BAA+B9+B,KAAMqC,GAClF,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,kBAEwB,WACrB,IACIA,EAAKU,SAAS,CACVwhB,UAAW,GACXC,kBAAkB,EAClB4a,qBAAiBh4B,GAEzB,CACA,MAAOnE,GACH,MAAMA,CACV,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,mBAEyB,WACtB,IACI0B,EAAAA,EAAc2N,YAAW,GAEzB,IAAAuH,EAGI5W,EAAKkB,MAFLmhB,EAAQzL,EAARyL,SACA0a,EAAenmB,EAAfmmB,gBAaJ,GAVA5tB,GAAS8lB,aACL,EACA5S,EACA0a,EACA/8B,EAAKs9B,kBAAmBt9B,EAAKa,UAI7Bb,EAAKkB,MADLq8B,MAGO,CACP,IAAMC,EAAenb,EAErBriB,EAAKU,SAAS,CACV2hB,SAAU,IACX,WACCriB,EAAKU,SAAS,CACV0hB,WAAY,EACZC,SAAUmb,GAElB,GACJ,CAEAx9B,EAAKU,SAAS,CACVyhB,kBAAkB,GAE1B,CACA,MAAOvhB,GAEH,MADAc,EAAAA,EAAc2N,YAAW,GACnBzO,CACV,CACJ,KAGAT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,8BACqC,SAACwS,GAClC,IACI,GAAIA,EAAME,OAAOhU,IAA0B,KAApB8T,EAAME,OAAOhU,GAChC,OAAQ8T,EAAME,OAAOhU,IACjB,IAAK,aACDsB,EAAKU,SAAS,CACV+8B,gBAAiBjrB,EAAME,OAAOpR,QAElC,MACJ,IAAK,UACDtB,EAAKU,SAAS,CACVg9B,aAAclrB,EAAME,OAAOpR,QAE/B,MACJ,IAAK,qBACDtB,EAAKU,SAAS,CACVi9B,wBAAyBnrB,EAAME,OAAOpR,QAK1D,CACA,MAAOV,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKq0B,2BAA2B91B,KAAMqC,GAC9E,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,yBAE+B,WAC5B,IACIA,EAAKU,SAAS,CACVuzB,aAAc,GACd2J,oBAAoB,EACpBF,kBAAc34B,EACd84B,qBAAiB94B,EACjB04B,qBAAiB14B,EACjB44B,6BAAyB54B,EACzB+4B,mBAAe/4B,GAEvB,CACA,MAAOnE,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAK+9B,sBAAsBx/B,KAAMqC,GACzE,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,6BAEmC,SAACg+B,EAAiCt/B,GAClE,IACI,GAAIA,GAAa,KAAPA,EACN,OAAQA,GACJ,IAAK,aACDsB,EAAKU,SAAS,CACVm9B,gBAA0C,KAAzBG,EAAe18B,WAAeyD,EAC3CgK,OAAOivB,EAAe18B,SAE9B,MACJ,IAAK,WACDtB,EAAKU,SAAS,CACVo9B,cAAwC,KAAzBE,EAAe18B,WAAeyD,EACzCgK,OAAOivB,EAAe18B,SAK9C,CACA,MAAOV,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKo0B,0BAA0B71B,KAAMqC,GAC7E,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,sBAE4B,WACzB,IACIA,EAAKU,SAAS,CACVuzB,aAAc,GACdyJ,kBAAc34B,EACd84B,qBAAiB94B,EACjB04B,qBAAiB14B,EACjB44B,6BAAyB54B,EACzB+4B,mBAAe/4B,GAEvB,CACA,MAAOnE,GACH,MAAMA,CACV,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,uBAE6B,WAC1B,IACI0B,EAAAA,EAAc2N,YAAW,GAEzB,IAAAoI,EAOIzX,EAAKkB,MANLw8B,EAAYjmB,EAAZimB,aACAD,EAAehmB,EAAfgmB,gBACAE,EAAuBlmB,EAAvBkmB,wBACAG,EAAarmB,EAAbqmB,cACAD,EAAepmB,EAAfomB,gBACAxb,EAAQ5K,EAAR4K,SAiBJ,GAdAlT,GAAS6nB,gBACL,EACA3U,EACAsb,EACAF,EACAC,EACAI,EACAD,EACA79B,EAAKi+B,uBAAwBj+B,EAAKa,UAIlCb,EAAKkB,MADLq8B,MAGO,CACP,IAAMC,EAAenb,EAErBriB,EAAKU,SAAS,CACV2hB,SAAU,IACX,WACCriB,EAAKU,SAAS,CACV0hB,WAAY,EACZC,SAAUmb,GAElB,GACJ,CACJ,CACA,MAAO58B,GAEH,MADAc,EAAAA,EAAc2N,YAAW,GACnBzO,CACV,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,eAGG,SAACg0B,EAA0BD,EAAkBe,EAAmBzR,EAAeC,EAA0BC,GAAkB,OAAK,WAC5H,IACI,IAAA1J,EAGI7Z,EAAKkB,MAFLqtB,EAAU1U,EAAV0U,WACA0O,EAAepjB,EAAfojB,gBAGJ,GAAIA,GAAmB1O,EAAY,CAC/B,IAAM2O,EAAoBD,EAAgBruB,MAAM,KAE1Cid,EACF0C,EAAWa,MAAMrgB,OAAOmuB,EAAQ,KAAK1N,aAAazgB,OAAOmuB,EAAQ,KAAKrY,OAEtEqY,EAAQryB,OAAS,GACjB7K,EAAKm9B,iBAAiBtR,EAAYqR,EAAS,4BAA4B,EAAMlJ,GAC7Eh0B,EAAKm9B,iBAAiBtR,EAAYqR,EAAS,sBAAsB,EAAMnJ,GACvE/zB,EAAKm9B,iBAAiBtR,EAAYqR,EAAS,qBAAqB,EAAMpI,GACtE90B,EAAKm9B,iBAAiBtR,EAAYqR,EAAS,mBAAmB,EAAM7Z,GACpErjB,EAAKm9B,iBAAiBtR,EAAYqR,EAAS,oBAAoB,EAAM5Z,GACrEtjB,EAAKm9B,iBAAiBtR,EAAYqR,EAAS,sBAAsB,EAAM3Z,KAGvEvjB,EAAKm9B,iBAAiBtR,EAAYqR,EAAS,4BAA4B,EAAOlJ,GAC9Eh0B,EAAKm9B,iBAAiBtR,EAAYqR,EAAS,sBAAsB,EAAOnJ,GACxE/zB,EAAKm9B,iBAAiBtR,EAAYqR,EAAS,qBAAqB,EAAOpI,GACvE90B,EAAKm9B,iBAAiBtR,EAAYqR,EAAS,mBAAmB,EAAO7Z,GACrErjB,EAAKm9B,iBAAiBtR,EAAYqR,EAAS,oBAAoB,EAAO5Z,GACtEtjB,EAAKm9B,iBAAiBtR,EAAYqR,EAAS,sBAAsB,EAAO3Z,GAEhF,CAEAvjB,EAAKU,SAAS,CACVk9B,oBAAoB,GAE5B,CAAE,MAAOh9B,GACLZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAK4iB,YAAYrkB,KAAMqC,GAC/D,CACJ,CAAC,KAGLT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,wBAC+B,SAACk9B,EAAmBgB,EAAiC58B,GAChF,IACI,IAAM68B,EAAmBD,EAAc9O,MAAMrgB,OAAOmuB,EAAQ,KAAK1N,aAAazgB,OAAOmuB,EAAQ,KACzF1W,EAAa,GACb4X,EAAiB,EAErB5X,EAAQ0X,EACRC,EAAYtZ,OAAO5B,SAAQ,SAAUjd,EAAM2E,GACvC,IAAM0zB,EAAqBr4B,EAAKrF,KAAKjC,GAAGkQ,MAAM,KAC1CsuB,EAAQ,KAAOmB,EAAS,KACpBnB,EAAQ,KAAOmB,EAAS,IAAMnB,EAAQ,KAAOmB,EAAS,GACtDr4B,EAAK1E,MAAQ,GAGb88B,EAASzzB,EAGrB,IAEA6b,EAAM4I,MAAMrgB,OAAOmuB,EAAQ,KAAK1N,aAAa0N,EAAQ,IAAIrY,OAAO9V,OAAOqvB,IAAS98B,MAAQA,CAC5F,CACA,MAAOV,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKs+B,mBAAmB//B,KAAMqC,GACtE,CACA,OAAOs9B,CACX,KAGA/9B,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,qBAC4B,WACxB,IACI,IAAA4a,EAII5a,EAAKkB,MAHLqtB,EAAU3T,EAAV2T,WACAlxB,EAASud,EAATvd,UACAga,EAAKuD,EAALvD,MAGJ,GAAIha,EAAW,CACX,IAAMkhC,EAAqCvG,SAASwG,eAAe,kBAKnE,GAJID,GACAA,EAAeE,iBAEnB/8B,EAAAA,EAAc2N,YAAW,GACrBkf,GACIA,GAAcA,EAAWmQ,SAEzB,GAAIrnB,GACA,GAAIkX,EAAWoQ,SACVpQ,EAAWoQ,OAAO9f,OAAS0P,EAAWoQ,OAAOC,gBAAiB,CAC/D,IAAMnJ,EAAsC,CACxCoJ,yBAA0BtQ,EAAWmN,kBACrC7c,MAAO0P,EAAWoQ,OAAO9f,MAAQ0P,EAAWoQ,OAAO9f,MAC/C0P,EAAWoQ,OAAOC,eAAiBrQ,EAAWoQ,OAAOC,eAAiB,GAC1EE,aAAcvQ,EAAWmQ,SACzBrnB,MAAOA,GAEX0nB,GAAoBxH,2BAA2B9B,EAC3ClH,EAAYvuB,EAAKg/B,iCAAkCh/B,EAAKa,SAChE,OAGA,GAAI6Q,GAAAA,IAAgBA,GAAAA,EAAYutB,qBAEvB1Q,EAAWoQ,QAAWpQ,EAAWoQ,OAAOnwB,WACzCxO,EAAKw8B,eACL96B,EAAAA,EAAc2N,YAAW,SAK7B,GAAIkf,EAAWoQ,QAAUpQ,EAAWoQ,OAAO9f,MACvC7e,EAAKU,SAAS,CACVg8B,WAAYnO,EAAWoQ,OAAO9f,MAC9BqgB,gBAAgB,IAEpBx9B,EAAAA,EAAc2N,YAAW,QAExB,GAAIkf,EAAWoQ,QAAUpQ,EAAWoQ,OAAOC,eAC5C5+B,EAAK28B,wBAIL,GAAIpO,EAAY,CACZ,IAAI4Q,GAA8B,EAClC5Q,EAAWa,MAAMnM,SAAQ,SAAAqM,GACrBA,EAAKE,aAAavM,SAAQ,SAAAmc,GACtBA,EAAYva,OAAO5B,SAAQ,SAAAuD,GACD,YAAlBA,EAAM7lB,KAAKjC,IACP8nB,EAAMllB,QAAUklB,EAAM7lB,KAAKsB,QAC3BjC,EAAKU,SAAS,CACVg8B,WAAYlW,EAAMllB,MAClB49B,gBAAgB,IAEpBC,GAAqB,EACrBz9B,EAAAA,EAAc2N,YAAW,GAGrC,GACJ,GACJ,IAEK8vB,IACDn/B,EAAKU,SAAS,CACVw+B,gBAAgB,IAEpBx9B,EAAAA,EAAc2N,YAAW,GAEjC,CAMxB,CACJ,CACA,MAAOzO,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAK48B,kBAAkBr+B,KAAMqC,GACrE,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,oBAE0B,WACvB,IACI0B,EAAAA,EAAc2N,YAAW,GAEzB,IAAA6L,EAIIlb,EAAKkB,MAHLqtB,EAAUrT,EAAVqT,WACAmO,EAAUxhB,EAAVwhB,WACA2C,EAAYnkB,EAAZmkB,aAGJ,IAAK3C,GACDnO,GAAcA,EAAWoQ,SAAWpQ,EAAWoQ,OAAOC,eACtD5+B,EAAKU,SAAS,CACV4+B,iBAAiB,SAIrB,IAAKD,GAAgB9Q,GAAcA,EAAWoQ,OAAQ,CAClD,IAAMlJ,EAAsC,CACxCoJ,yBAA0BtQ,EAAWmN,kBACrC7c,MAAO6d,IACHnO,EAAWoQ,OAAOC,eAAiBrQ,EAAWoQ,OAAOC,eAAiB,IAC1EE,aAAcvQ,EAAWmQ,UAE7BvvB,GAASqmB,2BAA2BC,EAAkBlH,EAAYvuB,EAAKg/B,iCAAkCh/B,EAAKa,SAClH,CAER,CACA,MAAOD,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKu/B,uBAAuBhhC,KAAMqC,GAC1E,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,YAEkB,WACf,IAAI,IAAAwX,EACAgoB,EAIIx/B,EAAKkB,MAHLq0B,EAAWiK,EAAXjK,YACAhH,EAAUiR,EAAVjR,WACAzJ,EAAkB0a,EAAlB1a,mBAGEyZ,EAAqCvG,SAASwG,eAAe,kBAC/DD,GACAA,EAAeE,iBAGflQ,GACAA,EAAWa,MAAMnM,SAAQ,SAAAqM,GACrBA,EAAKE,aAAavM,SAAQ,SAAAmc,GACtBA,EAAYva,OAAO5B,SAAQ,SAAAuD,GACvB,IAAIyB,GAAiB,EACO,aAAxBzB,EAAMI,eACFJ,EAAK,SAAYA,EAAM7lB,KAAKmG,SAC5B0f,EAAM7lB,KAAKmG,QAAQmc,SAAQ,SAAAiF,GACnBA,EAAO5mB,MAAM+C,aAAemiB,EAAK,QAASniB,aAC1C4jB,GAAQ,EAEhB,IAEAA,GACAzB,EAAMllB,MAAQklB,EAAMllB,MAAQklB,EAAMllB,MAAQklB,EAAK,QAC/CxmB,EAAKy/B,qBAAqBjZ,EAAM7lB,KAAKjC,GAAI8nB,EAAMllB,QAEzCklB,EAAK,SAA4B,KAAhBA,EAAMllB,OAC7BtB,EAAKy/B,qBAAqBjZ,EAAM7lB,KAAKjC,GAAI8nB,EAAMllB,SAInDklB,EAAMllB,MAAQklB,EAAMllB,MAAQklB,EAAMllB,MAAQklB,EAAK,QAC/CxmB,EAAKy/B,qBAAqBjZ,EAAM7lB,KAAKjC,GAAI8nB,EAAMllB,OAEvD,GACJ,GACJ,IAGJtB,EAAKU,SAAS,CACV6tB,WAAAA,IAGJ,IACImR,EACA1/B,EAAKkB,MADLw+B,oCAGA/uB,EAA4B,GAC5B+uB,GAAwD,QAArBloB,EAAIxX,EAAK2X,oBAAY,IAAAH,GAAjBA,EAAmBhE,UAC1D7C,EAAoB3Q,EAAK2X,aAAanE,QAAQoE,WAC9C5X,EAAKU,SAAS,CACVoW,gBAAiBnS,QAAQgM,MAIjC,IAAMgvB,EAA6B3/B,EAAK4/B,uBACxC,KAAKF,GAAuC/uB,KACxC3Q,EAAKU,SAAS,CACVoW,gBAAgB,IAGhB6oB,GAAmB,CAGnB,GAAIpK,EAAYsK,cAAgB/a,EAAoB,CAEhD,IADA,IAAIgb,EAA4B,GACvB/W,EAAI,EAAGA,EAAIjE,EAAmBja,OAAQke,IACb,MAA1BjE,EAAmBiE,IAAwC,MAA1BjE,EAAmBiE,KACpD+W,GAAqBvK,EAAYsK,aAAa9W,IAGtDwM,EAAYsK,aAAeC,CAC/B,CAEIvK,IACA7zB,EAAAA,EAAcmQ,iBACd1C,GAASmmB,WAAWC,EAAav1B,EAAK+/B,yBAA0B//B,EAAKa,UAE7E,CAER,CACA,MAAOD,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAK8uB,SAASvwB,KAAMqC,GAC5D,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,qBAE2B,WACxB,IACIA,EAAKU,SAAS,CACVw+B,gBAAgB,GAExB,CACA,MAAOt+B,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKggC,kBAAkBzhC,KAAMqC,GACrE,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,4BAEkC,WAC/B,IACInC,OAAOC,SAASC,OAAO,GAADyI,OAAIC,EAAAA,EAAUC,OAAM,4BAC9C,CACA,MAAO9F,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKigC,yBAAyB1hC,KAAMqC,GAC5E,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,iCAEuC,WACpC,IACI,IACIuuB,EACAvuB,EAAKkB,MADLqtB,WAGJ,GAAIA,EAAY,CACZ,IAAMqB,EACFrB,EAAWiB,aAAa1I,WAAU,SAAAC,GAAC,MAAa,sBAATA,EAAEroB,EAA0B,IACjEwhC,EACF3R,EAAWiB,aAAaI,GAAmB/K,OAAOiC,WAAU,SAAAC,GAAC,MAAkB,aAAdA,EAAEpmB,KAAKjC,EAAiB,IAC7F,GAAIkxB,GAAqB,GAAKsQ,GAAkB,EAAG,CAC/C,IAAMzW,EAAgC8E,EAAWiB,aAAaI,GAAmB/K,OAAOqb,GAAgBzW,UACpGA,EACA5rB,OAAOC,SAASC,OAAO0rB,GAGvB5rB,OAAOC,SAASC,OAAO,GAADyI,OAAIC,EAAAA,EAAUC,OAAM,4BAElD,CACJ,CACJ,CACA,MAAO9F,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKmgC,8BAA8B5hC,KAAMqC,GACjF,CACJ,KAGAT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,oBAC2B,SAACwS,GACxB,IACI,IAAA4tB,EAGIpgC,EAAKkB,MAFLq0B,EAAW6K,EAAX7K,YACAhH,EAAU6R,EAAV7R,WAGJ,GAAIgH,GAAehH,EAAY,CAC3B,IAAM8R,EAAoB9K,EACpB2H,EAAoB1qB,EAAME,OAAOhU,GAAGkQ,MAAM,KAC1CsvB,EAAkC3P,EAClCjtB,EAAiBqD,QAAQ6N,EAAME,OAAO4V,SACtCgY,EAAgBC,KAEtB,GAAIrD,EAAQryB,OAAS,GACjB,GAAIqyB,GAAWA,EAAQ,IAAMA,EAAQ,IAAMA,EAAQ,GAAI,CACnD,IAAM1W,EAAoB0X,EAAc9O,MAAMrgB,OAAOmuB,EAAQ,KAAK1N,aAAazgB,OAAOmuB,EAAQ,KAAKrY,OAAO9V,OAAOmuB,EAAQ,KAErH1W,EAAMga,eAAiBha,EAAMia,aACzBn/B,GACAklB,EAAMllB,MAAQg/B,EAAc9Z,EAAMia,cAClCja,EAAM7lB,KAAKsB,OAAQ,EACnBukB,EAAM7lB,KAAKyE,WAAa,IAGxBohB,EAAMllB,MAAQo/B,IAIlBla,EAAMllB,MAAQA,QAAgByD,CAEtC,MAEC,CACD,IAAMyhB,EACF+H,EAAWa,MAAMrgB,OAAOmuB,EAAQ,KAC5B1N,aAAazgB,OAAOmuB,EAAQ,KAC5BrY,OAAOva,MAAK,SAAAyc,GAAC,OACTA,EAAEpmB,KAAKmqB,UAAY/b,OAAOmuB,EAAQ,KAClCnW,EAAEpmB,KAAKjC,GAAG6oB,OAAO,EAAG2V,EAAQ,GAAGryB,UAAYqyB,EAAQ,EAAE,IAC7D1W,IACAA,EAAMllB,MAAQA,EAEtB,CAEAtB,EAAKU,SAAS,CACV60B,YAAa8K,EACb9R,WAAY2P,GAEpB,CACJ,CACA,MAAOt9B,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKolB,iBAAiB7mB,KAAMqC,GACpE,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,yBAE+B,SAAC2gC,EAAcjiC,EAAYuK,GACvD,IACI,IAAA23B,EAMI5gC,EAAKkB,MALLq0B,EAAWqL,EAAXrL,YACAhH,EAAUqS,EAAVrS,WACAsS,EAAQD,EAARC,SACAxjC,EAASujC,EAATvjC,UACA6nB,EAAgB0b,EAAhB1b,iBAGJ,GAAIxmB,GAAa,KAAPA,GAAa62B,GAAehH,EAAY,CAC9C,IAAM8R,EAAoB9K,EACpB2H,EAAoBx+B,EAAGkQ,MAAM,KAC/BkyB,EAAqB,EACrB5D,EAAQ,KACR4D,EAAa/xB,OAAOmuB,EAAQ,IAAM,GAEtC,IAAIgB,EAAkC3P,EAChC/H,EAAQ0X,EAAc9O,MAAMrgB,OAAOmuB,EAAQ,KAC7C1N,aAAazgB,OAAOmuB,EAAQ,KAC5BrY,OAAO9V,OAAOmuB,EAAQ,KAEpB6D,EACFC,MAASC,KAAK,IAAK,SAASpZ,OAAOgZ,EAAS3b,iBAAiBgc,eAC3DC,EACFH,MAASC,IAAI,IAAK,SAASpZ,OAAOgZ,EAAS3b,iBAAiBgc,eAEhE,OAAQhE,EAAQ,IACZ,IAAK,gBACDmD,EAAIe,YAAcT,EAClBzC,EAAgBl+B,EAAKqhC,UAAUnE,EAASgB,EAAeyC,GACnD13B,GACAud,EAAM7lB,KAAKsB,OAAQ,EACnBukB,EAAM7lB,KAAKyE,WAAa,GACxB84B,EAAgBl+B,EAAKshC,mBAAmBpE,EAASgB,IAG7CyC,GACAna,EAAM7lB,KAAKsB,OAAQ,EACf5E,IACAmpB,EAAM7lB,KAAKyE,WACPhB,EAAAA,EAAOC,SAAShH,EAAUkkC,qBAAsB,CAACR,EAAeI,OAIxE3a,EAAM7lB,KAAKsB,OAAQ,EACnBukB,EAAM7lB,KAAKyE,WAAaohB,EAAM7lB,KAAK6gC,sBAG3C,MACJ,IAAK,uBACDnB,EAAIoB,eAAiBd,EACrBzC,EAAgBl+B,EAAKqhC,UAAUnE,EAASgB,EAAeyC,GACnD13B,GACAud,EAAM7lB,KAAKsB,OAAQ,EACnBukB,EAAM7lB,KAAKyE,WAAa,GACxB84B,EAAgBl+B,EAAKshC,mBAAmBpE,EAASgB,IAG7CyC,GACAna,EAAM7lB,KAAKsB,OAAQ,EACf5E,IACAmpB,EAAM7lB,KAAKyE,WACPhB,EAAAA,EAAOC,SAAShH,EAAUkkC,qBAAsB,CAACR,EAAeI,OAIxE3a,EAAM7lB,KAAKsB,OAAQ,EACnBukB,EAAM7lB,KAAKyE,WAAaohB,EAAM7lB,KAAK6gC,sBAG3C,MACJ,IAAK,2BACDnB,EAAIqB,mBAAqBf,EACzBzC,EAAgBl+B,EAAKqhC,UAAUnE,EAASgB,EAAeyC,GACnD13B,GACAud,EAAM7lB,KAAKsB,OAAQ,EACnBukB,EAAM7lB,KAAKyE,WAAa,GACxB84B,EAAgBl+B,EAAKshC,mBAAmBpE,EAASgB,IAG7CyC,GACAna,EAAM7lB,KAAKsB,OAAQ,EACf5E,IACAmpB,EAAM7lB,KAAKyE,WACPhB,EAAAA,EAAOC,SAAShH,EAAUkkC,qBAAsB,CAACR,EAAeI,OAIxE3a,EAAM7lB,KAAKsB,OAAQ,EACnBukB,EAAM7lB,KAAKyE,WAAaohB,EAAM7lB,KAAK6gC,sBAG3C,MACJ,IAAK,kBACD,IAAMG,EAAsBzD,EAAc9O,MAAMrgB,OAAOmuB,EAAQ,KAAK1N,aAAazgB,OAAOmuB,EAAQ,KAC3FmD,EAAIuB,WAAWd,KAChBT,EAAIuB,WAAWd,GAAc,CAAC,GAElCT,EAAIuB,WAAWd,GAAYe,UAAYlB,EAClC13B,IACDud,EAAM7lB,KAAKsB,OAAQ,EACf5E,IACAmpB,EAAM7lB,KAAKyE,WACPhB,EAAAA,EAAOC,SAAShH,EAAUkkC,qBAAsB,CAACR,EAAeI,MAGxEjE,EAAQryB,OAAS,EACjB82B,EAAe9c,OAAO5B,SAAQ,SAAUuD,GACpC,IAAMsb,EAAsBtb,EAAM7lB,KAAKjC,GAAGkQ,MAAM,KAC5CsuB,EAAQ,KAAO4E,EAAU,IAAM5E,EAAQ,KAAO4E,EAAU,KACnD74B,EAMM+3B,IAAOL,EAAMzb,GAAkB6c,SAAW,IAAIC,MACrDxb,EAAM7lB,KAAKsB,OAAQ,EACnBukB,EAAM7lB,KAAKyE,WACPhB,EAAAA,EAAOC,SACHmiB,EAAM7lB,KAAKshC,kBAAmB,CAC9B/D,EAAcgE,YACdlB,IAAO,IAAIgB,MAAQna,OAAO3C,EAAiBgc,mBAEnD1a,EAAM7lB,KAAKsB,OAAQ,EACnBukB,EAAM7lB,KAAKyE,WAAa,GACxBohB,EAAMllB,MAAQq/B,IAfdna,EAAM7lB,KAAKsB,OAAQ,EACf5E,IACAmpB,EAAM7lB,KAAKyE,WACPhB,EAAAA,EAAOC,SAAShH,EAAUkkC,qBAAsB,CAACR,EAAeI,MAepF,IAGAQ,EAAe9c,OAAO5B,SAAQ,SAAUuD,GACpC,IAAMsb,EAAsBtb,EAAM7lB,KAAKjC,GAAGkQ,MAAM,KAC5CsuB,EAAQ,KAAO4E,EAAU,IAA2B,IAArBA,EAAUj3B,SACpC5B,EAMM+3B,IAAOL,GAAMoB,SAAW,IAAIC,MACnCxb,EAAM7lB,KAAKsB,OAAQ,EACnBukB,EAAM7lB,KAAKyE,WACPhB,EAAAA,EAAOC,SACHmiB,EAAM7lB,KAAKshC,kBAAmB,CAC9B/D,EAAcgE,YACdlB,IAAO,IAAIgB,MAAQna,OAAO3C,EAAiBgc,mBAEnD1a,EAAM7lB,KAAKsB,OAAQ,EACnBukB,EAAM7lB,KAAKyE,WAAa,GACxBohB,EAAMllB,MAAQq/B,IAfdna,EAAM7lB,KAAKsB,OAAQ,EACf5E,IACAmpB,EAAM7lB,KAAKyE,WACPhB,EAAAA,EAAOC,SAAShH,EAAUkkC,qBAAsB,CAACR,EAAeI,MAepF,IAEJ,MACJ,QACIjD,EAAgBl+B,EAAKqhC,UAAUnE,EAASgB,EAAeyC,GACnD13B,GACAud,EAAM7lB,KAAKsB,OAAQ,EACnBukB,EAAM7lB,KAAKyE,WAAa,GACxB84B,EAAgBl+B,EAAKshC,mBAAmBpE,EAASgB,IAG7CyC,GACAna,EAAM7lB,KAAKsB,OAAQ,EACf5E,IACAmpB,EAAM7lB,KAAKyE,WACPhB,EAAAA,EAAOC,SAAShH,EAAUkkC,qBAAsB,CAACR,EAAeI,MAIpE3a,EAAMkB,aACNlB,EAAM7lB,KAAKsB,OAAQ,EACnBukB,EAAM7lB,KAAKyE,WAAaohB,EAAM7lB,KAAK6gC,sBAMvDxhC,EAAKU,SAAS,CACV60B,YAAa8K,EACb9R,WAAY2P,GAEpB,CACJ,CAAE,MAAOt9B,GACLZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKslB,sBAAsB/mB,KAAMqC,GACzE,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,oBAE0B,SAACg+B,EAAiCt/B,GACzD,IACI,IAAAyjC,EAGIniC,EAAKkB,MAFLq0B,EAAW4M,EAAX5M,YACAhH,EAAU4T,EAAV5T,WAGJ,GAAI7vB,GAAa,KAAPA,GAAa62B,GAAehH,EAAY,CAC9C,IAOI6T,EAPE/B,EAAoB9K,EACpB2H,EAAoBx+B,EAAGkQ,MAAM,KAC/BkyB,EAAqB,EAMzB,GALI5D,EAAQ,KACR4D,EAAa/xB,OAAOmuB,EAAQ,IAAM,GAIlCc,EAAe18B,MACf,QAAA+gC,EAAAA,EAAAA,GAAerE,EAAe18B,QAC1B,IAAK,SACD8gC,EAAgBza,OAAOqW,EAAe18B,OACtC,MACJ,IAAK,SACD8gC,EAAgBrzB,OAAOivB,EAAe18B,OACtC,MACJ,QACI8gC,EAAgBpE,EAAe18B,MAK3C,OAAQ47B,EAAQ,IACZ,IAAK,SACImD,EAAIuB,WAAWd,KAChBT,EAAIuB,WAAWd,GAAc,CAAC,GAElCT,EAAIuB,WAAWd,GAAYpiC,GAAK0jC,EAChC/B,EAAIuB,WAAWd,GAAYwB,OAAS,EAEpC,IAEMC,EADFhU,EAAWa,MAAMrgB,OAAOmuB,EAAQ,KAAK1N,aAAazgB,OAAOmuB,EAAQ,KAAKrY,OAElDva,MAAK,SAAAk4B,GAAC,MACM,gBAA5BA,EAAE7hC,KAAKjC,GAAGkQ,MAAM,KAAK,KACpB4zB,EAAE7hC,KAAKjC,GAAGkQ,MAAM,KAAK,IAAM,OAASsuB,EAAQ,IAAM,GAAG,IAE1DqF,GAASH,GAAmC,KAAlBA,GAC1BjzB,GAASunB,qBACLnB,EAAYjnB,eAAiB,EAC7B+xB,EAAIuB,WAAWd,GAAYpiC,GAC3B,iBACA6jC,EAAM5hC,KAAKjC,GACXsB,EAAKyiC,qBAAsBziC,EAAKa,UAExC,MACJ,IAAK,aACIw/B,EAAIuB,WAAWd,KAChBT,EAAIuB,WAAWd,GAAc,CAAC,GAElCT,EAAIuB,WAAWd,GAAYwB,OAASF,EACpC,MACJ,IAAK,kBACD,GAAI7T,EAAY,CAEZ,IAAM6Q,EACF7Q,EAAWa,MAAMrgB,OAAOmuB,EAAQ,KAAK1N,aAAazgB,OAAOmuB,EAAQ,KAAKrY,OAEtE6d,GAA6B,EACjCtD,EAAYnc,SAAQ,SAACuD,EAAOuC,GACyC,2BAA7DvC,EAAM7lB,KAAKjC,GAAG6oB,OAAO,EAAG,MACxBmb,EAAoB3Z,EAE5B,IAEA,IAAM4Z,EACFpU,EAAWa,MAAMrgB,OAAOmuB,EAAQ,KAAK1N,aAAazgB,OAAOmuB,EAAQ,KAAKrY,OAAO6d,GAC7EE,EAA6CrN,EAAYsN,MAC7D,GAAsB,MAAlBT,GACIO,EAAmB,CAEnB,IAAME,EAA2B,CAAE5Y,sBAAkBllB,EAAWmlB,uBAAwB,GACpF0Y,GAImB,IAFfA,EAAU9b,WAAU,SAAAC,GAAC,OAAiC,IAA7BA,EAAEmD,sBAA4B,KAGvD0Y,EAAU1+B,KAAK2+B,GAKnBD,EAAY,CAACC,GAEjBF,EAAkBrhC,WAAQyD,CAC9B,CAEJ,GAAsB,MAAlBq9B,GACIO,EAAmB,CACnB,GAAIC,GAAaA,EAAU/3B,OAAS,EAAG,CACnC,IAAIyb,GAAiB,EACrB,IACIA,EAAQsc,EAAU9b,WAAU,SAAAC,GAAC,OAAiC,IAA7BA,EAAEmD,sBAA4B,MAClD,GACT0Y,EAAUjc,OAAOL,EAAO,SAEvBA,GAAS,EACtB,CACAqc,EAAkBrhC,WAAQyD,CAC9B,CAEJ,QAAsBA,IAAlBq9B,GACIO,EAAmB,CACnB,GAAIC,GAAaA,EAAU/3B,OAAS,EAAG,CACnC,IAAIyb,EAAgBsc,EAAU/3B,OAC9B,GACI+3B,EAAUjc,OAAOL,EAAO,GACxBA,UACKsc,EAAU/3B,OAAS,EAChC,CACA83B,EAAkBrhC,WAAQyD,CAC9B,CAEJwwB,EAAYsN,MAAQD,EACpB5iC,EAAKU,SAAS,CACV60B,YAAaA,EACbhH,WAAYA,GAEpB,EAMR,IAAI2P,EAAkC3P,EAClC2O,GAAWA,EAAQ,IAAMA,EAAQ,IAAMA,EAAQ,KAC/CgB,EAAgBl+B,EAAKshC,mBAAmBpE,EAASgB,IACjDA,EAAgBl+B,EAAKqhC,UAAUnE,EAASgB,EAAekE,IAEjBhT,MAAMrgB,OAAOmuB,EAAQ,KAAK1N,aAAazgB,OAAOmuB,EAAQ,KACtDrY,OAAOie,QAAO,SAAA/b,GAAC,OAAKA,EAAEpmB,KAAKjC,GAAGkQ,MAAM,KAAK,IAAM,OAASsuB,EAAQ,IAAM,GAAG,IAEjGja,SAAQ,SAAAuD,GACC,WAAf0W,EAAQ,IAAmB1W,EAAMuc,YAAcX,GAAmC,KAAlBA,GAChErzB,OAAOqzB,GAAiB,GACxBjzB,GAASinB,gBACL5P,EAAMwc,cACNZ,GAAiB,EACjBlF,EAAQ,GACRA,EAAQ,GACR1W,EAAMuc,YACN,EACA/iC,EAAKijC,uBACLjjC,EAAKa,cACLkE,GAEW,mBAAfm4B,EAAQ,IAA2B1W,EAAMuc,YAAcX,GAAmC,KAAlBA,GACxErzB,OAAOqzB,GAAiB,GACxBjzB,GAASinB,gBACL5P,EAAMwc,cACNZ,GAAiB,EACjBlF,EAAQ,GACRA,EAAQ,GACR1W,EAAMuc,YACN,EACA/iC,EAAKijC,uBACLjjC,EAAKa,SACLkO,OAAOmvB,EAAcxC,oBAEV,oBAAfwB,EAAQ,IAA4B1W,EAAMuc,YAAcX,GAAmC,KAAlBA,GACzErzB,OAAOqzB,GAAiB,GACxBjzB,GAASinB,gBACL5P,EAAMwc,cACNZ,GAAiB,EACjBlF,EAAQ,GACRA,EAAQ,GACR1W,EAAMuc,YACN,EACA/iC,EAAKijC,uBACLjjC,EAAKa,cACLkE,EAEZ,KAEJ/E,EAAKU,SAAS,CACV60B,YAAa8K,EACb9R,WAAY2P,GAEpB,CACJ,CACA,MAAOt9B,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKqlB,iBAAiB9mB,KAAMqC,GACpE,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,wBAE8B,SAACwS,GAC5B,IACI,IAAA0wB,EAGIljC,EAAKkB,MAFLq0B,EAAW2N,EAAX3N,YACAhH,EAAU2U,EAAV3U,WAGE2O,EAAoB1qB,EAAMqqB,cAAcn+B,GAAGkQ,MAAM,KACjDyxB,EAAoB9K,EAE1B,GAAIA,GAAehH,EAAY,CAC3B,IAAMwU,EAAuBvwB,EAAME,OAAOhU,GAAGkQ,MAAM,KACnD,GAAsB,mCAAlBm0B,EAAW,GAAyC,CACpD,IAAMvc,EACF+H,EAAWa,MAAMrgB,OAAOg0B,EAAW,KAC/BvT,aAAazgB,OAAOg0B,EAAW,KAC/Ble,OAAO9V,OAAOg0B,EAAW,KACjC,IAAK1C,EAAIwC,OAASrc,EAAMllB,MAAO,CAC3B,IAAMuqB,EACF0C,EAAWa,MAAMrgB,OAAOg0B,EAAW,KAC/BvT,aAAazgB,OAAOg0B,EAAW,KACvC/iC,EAAKmjC,8BAA8BtX,EACvC,CACA,IAA6B,IAAzBrZ,EAAME,OAAO4V,QAAkB,CAC/B,IAAI8a,EAA6B,CAAElZ,uBAAwB,GACvDmZ,GAAqB,EACH,UAAlBN,EAAW,IACXK,EAAU,CACNnZ,iBAAkBlb,OAAOg0B,EAAW,IACpC7Y,uBAAwBnb,OAAOg0B,EAAW,KAE1C1C,EAAIwC,QACJQ,EAAYhD,EAAIwC,MAAM/b,WAAU,SAAAC,GAAC,YAA2BhiB,IAAvBgiB,EAAEkD,kBACnClD,EAAEmD,yBAA2Bnb,OAAOg0B,EAAW,GAAG,MAGnC,WAAlBA,EAAW,KAChBK,EAAU,CACNnZ,sBAAkBllB,EAClBmlB,uBAAwBnb,OAAOg0B,EAAW,KAE1C1C,EAAIwC,QACJQ,EACIhD,EAAIwC,MAAM/b,WAAU,SAAAC,GAAC,OAAIA,EAAEmD,yBACvBnb,OAAOg0B,EAAW,GAAG,MAGjC1C,EAAIwC,MACAQ,GAAa,EACbhD,EAAIwC,MAAMQ,GAAaD,EAGvB/C,EAAIwC,MAAM3+B,KAAKk/B,GAInB/C,EAAIwC,MAAQ,CAACO,EAErB,MAEI,GAAI/C,EAAIwC,MACJ,GAAsB,UAAlBE,EAAW,GAAgB,CAC3B,IAAMO,EACFjD,EAAIwC,MAAM/b,WAAU,SAAAC,GAAC,OAAIA,EAAEkD,mBAAqBlb,OAAOg0B,EAAW,KAC9Dhc,EAAEmD,yBAA2Bnb,OAAOg0B,EAAW,GAAG,IAC1D1C,EAAIwC,MAAMlc,OAAO2c,EAAc,EACnC,MACK,GAAsB,WAAlBP,EAAW,GAAiB,CACjC,IAAIzc,GAAiB,EACrB,IACIA,EAAQ+Z,EAAIwC,MAAM/b,WAAU,SAAAC,GAAC,OACzBA,EAAEmD,yBAA2Bnb,OAAOg0B,EAAW,GAAG,MACzC,GACT1C,EAAIwC,MAAMlc,OAAOL,EAAO,SAEvBA,GAAS,EACtB,CAGR,GAAIyc,GAAcA,EAAW,IAAMA,EAAW,IAAMA,EAAW,GAAI,CAC/D,IAAMvc,EACF+H,EAAWa,MAAMrgB,OAAOg0B,EAAW,KAC/BvT,aAAazgB,OAAOg0B,EAAW,KAC/Ble,OAAO9V,OAAOg0B,EAAW,KAC7B1C,EAAIwC,OAA8B,IAArBxC,EAAIwC,MAAMh4B,QAAgB2b,EAAMkB,WAC7ClB,EAAMllB,WAAQyD,EAIVs7B,EAAIwC,QACJrc,EAAMllB,WAAQyD,EACds7B,EAAIwC,MAAM5f,SAAQ,SAAA8G,GACsB,IAAhCA,EAAKG,yBACD1D,EAAMllB,MACNklB,EAAMllB,MAAQklB,EAAMllB,MAAK,GAAAkF,OAClBujB,EAAKG,uBAAuB7lB,WAAU,KAAAmC,OAAIujB,EAAKE,iBAC9CF,EAAKE,iBAAiB5lB,WAAa,GAAE,KAG7CmiB,EAAMllB,MAAK,GAAAkF,OACJujB,EAAKG,uBAAuB7lB,WAAU,KAAAmC,OAAIujB,EAAKE,iBAC9CF,EAAKE,iBAAiB5lB,WAAa,GAAE,KAGzD,IAGZ,CACJ,CAEA,OAAQ64B,EAAQ,IACZ,IAAK,WACD,GAAIA,GAAWA,EAAQ,IAAMA,EAAQ,IAAMA,EAAQ,IAAMA,EAAQ,GAAI,CACjE,IAAM1W,EACF+H,EAAWa,MAAMrgB,OAAOmuB,EAAQ,KAAK1N,aAAazgB,OAAOmuB,EAAQ,KAAKrY,OAAO9V,OAAOmuB,EAAQ,KAChG,IAAKmD,EAAIkD,UAAY/c,EAAMllB,MAAO,CAC9B,IAAMuqB,EACF0C,EAAWa,MAAMrgB,OAAOmuB,EAAQ,KAAK1N,aAAazgB,OAAOmuB,EAAQ,KACrEl9B,EAAKwjC,aAAa3X,EACtB,CACJ,CACA,GAAIwU,EAAIkD,SAAU,CACd,IAAME,EAAsBpD,EAAIkD,SAASzc,WAAU,SAAAC,GAAC,OAAIA,IAAMhY,OAAOmuB,EAAQ,GAAG,KACnD,IAAzB1qB,EAAME,OAAO4V,QACb+X,EAAIkD,SAASr/B,KAAK6K,OAAOmuB,EAAQ,KAGjCmD,EAAIkD,SAAS5c,OAAO8c,EAAa,EAEzC,MAEI,IAA6B,IAAzBjxB,EAAME,OAAO4V,QAAkB,CAC/B,IAAMob,EAAiB30B,OAAOmuB,EAAQ,IACtCmD,EAAIkD,SAAW,CAACG,EACpB,CAEJ,GAAIxG,GAAWA,EAAQ,IAAMA,EAAQ,IAAMA,EAAQ,IAAMA,EAAQ,GAAI,CACjE,IAAM1W,EACF+H,EAAWa,MAAMrgB,OAAOmuB,EAAQ,KAAK1N,aAAazgB,OAAOmuB,EAAQ,KAAKrY,OAAO9V,OAAOmuB,EAAQ,KAC5FmD,EAAIkD,UAAoC,IAAxBlD,EAAIkD,SAAS14B,QAAgB2b,EAAMkB,YACnDlB,EAAMllB,WAAQyD,EACdyhB,EAAM7lB,KAAKsB,OAAQ,EACnBukB,EAAM7lB,KAAKyE,WAAaohB,EAAM7lB,KAAK6gC,uBAG/BnB,EAAIkD,WACJ/c,EAAMllB,MAAQ++B,EAAIkD,SAASl/B,YAE/BmiB,EAAM7lB,KAAKsB,OAAQ,EACnBukB,EAAM7lB,KAAKyE,WAAa,GAEhC,CACA,MACJ,IAAK,aACD,GAAI83B,GAAWA,EAAQ,IAAMA,EAAQ,IAAMA,EAAQ,IAAMA,EAAQ,GAAI,CACjE,IAAM1W,EACF+H,EAAWa,MAAMrgB,OAAOmuB,EAAQ,KAAK1N,aAAazgB,OAAOmuB,EAAQ,KAAKrY,OAAO9V,OAAOmuB,EAAQ,KAChG,IAAKmD,EAAIsD,mBAAqBnd,EAAMllB,MAAO,CACvC,IAAMuqB,EACF0C,EAAWa,MAAMrgB,OAAOmuB,EAAQ,KAAK1N,aAAazgB,OAAOmuB,EAAQ,KACrEl9B,EAAK4jC,uBAAuB/X,EAChC,CACJ,CACA,GAAIwU,EAAIsD,kBAAmB,CACvB,IAAMrd,EAAgB+Z,EAAIsD,kBAAkB7c,WAAU,SAAAC,GAAC,OAAIA,IAAMhY,OAAOmuB,EAAQ,GAAG,KACtD,IAAzB1qB,EAAME,OAAO4V,QACb+X,EAAIsD,kBAAkBz/B,KAAK6K,OAAOmuB,EAAQ,KAG1CmD,EAAIsD,kBAAkBhd,OAAOL,EAAO,EAE5C,MAEiC,IAAzB9T,EAAME,OAAO4V,UACb+X,EAAIsD,kBAAoB,CAAC50B,OAAOmuB,EAAQ,MAGhD,GAAIA,GAAWA,EAAQ,IAAMA,EAAQ,IAAMA,EAAQ,IAAMA,EAAQ,GAAI,CACjE,IAAM1W,EAAa+H,EAAWa,MAAMrgB,OAAOmuB,EAAQ,KAAK1N,aAAazgB,OAAOmuB,EAAQ,KAAKrY,OAAO9V,OAAOmuB,EAAQ,KAC3GmD,EAAIsD,mBAAsD,IAAjCtD,EAAIsD,kBAAkB94B,QAAgB2b,EAAMkB,YACrElB,EAAMllB,WAAQyD,EACdyhB,EAAM7lB,KAAKsB,OAAQ,EACnBukB,EAAM7lB,KAAKyE,WAAaohB,EAAM7lB,KAAK6gC,uBAG/BnB,EAAIsD,oBACJnd,EAAMllB,MAAQ++B,EAAIsD,kBAAkBt/B,YAExCmiB,EAAM7lB,KAAKsB,OAAQ,EACnBukB,EAAM7lB,KAAKyE,WAAa,GAEhC,CACA,MACJ,IAAK,yBACD,IAAMohB,EACF+H,EAAWa,MAAMrgB,OAAOg0B,EAAW,KAC/BvT,aAAazgB,OAAOg0B,EAAW,KAC/Ble,OAAO9V,OAAOg0B,EAAW,KACjC,IAAK1C,EAAIwC,OAASrc,EAAMllB,MAAO,CAC3B,IAAMuqB,EACF0C,EAAWa,MAAMrgB,OAAOg0B,EAAW,KAC/BvT,aAAazgB,OAAOg0B,EAAW,KACvC/iC,EAAK6jC,wBAAwBhY,EACjC,CACA,IAAMuX,EAA6B,CAC/BnZ,iBAAkBlb,OAAOmuB,EAAQ,IACjChT,uBAAwB,GAE5B,GAAImW,EAAIwC,MAAO,CACX,IAAMQ,EAAoBhD,EAAIwC,MAAM/b,WAAU,SAAAC,GAAC,YAA2BhiB,IAAvBgiB,EAAEkD,kBACpB,IAA7BlD,EAAEmD,sBAA4B,IAClC,IAA6B,IAAzB1X,EAAME,OAAO4V,QAET+a,GAAa,EACbhD,EAAIwC,MAAMQ,GAAaD,EAGvB/C,EAAIwC,MAAM3+B,KAAKk/B,OAGlB,CAED,IAAME,EACFjD,EAAIwC,MAAM/b,WAAU,SAAAC,GAAC,OAAIA,EAAEkD,mBAAqBlb,OAAOmuB,EAAQ,KAC9B,IAA7BnW,EAAEmD,sBAA4B,IACtCmW,EAAIwC,MAAMlc,OAAO2c,EAAc,EACnC,CACJ,MAEIjD,EAAIwC,MAAQ,CAACO,GAUjB,GAPA7U,EAAWa,MAAMrgB,OAAOmuB,EAAQ,KAC5B1N,aAAazgB,OAAOmuB,EAAQ,KAAKrY,OAAO5B,SAAQ,SAAAuD,GACtB,oBAAlBA,EAAM7lB,KAAKjC,KACX8nB,EAAMllB,MAAQ,IAEtB,IAEA47B,GAAWA,EAAQ,IAAMA,EAAQ,IAAMA,EAAQ,IAAMA,EAAQ,GAAI,CACjE,IAAM1W,EACF+H,EAAWa,MAAMrgB,OAAOmuB,EAAQ,KAAK1N,aAAazgB,OAAOmuB,EAAQ,KAAKrY,OAAO9V,OAAOmuB,EAAQ,KAChG,GAAImD,EAAIwC,OAA8B,IAArBxC,EAAIwC,MAAMh4B,QAAgB2b,EAAMkB,WAC7ClB,EAAMllB,WAAQyD,OAId,GAAIs7B,EAAIwC,MAAO,CACX,IAAMiB,EAAuB,GAC7BzD,EAAIwC,MAAM5f,SAAQ,SAAA8gB,GAC2B,IAArCA,EAAU7Z,wBACN6Z,EAAU9Z,kBACV6Z,EAAW5/B,KAAK6/B,EAAU9Z,iBAAiB5lB,WAGvD,IACAmiB,EAAMllB,MAAQwiC,EAAWz/B,UAC7B,CAER,EAGRrE,EAAKU,SAAS,CACV60B,YAAa8K,EACb9R,WAAYA,GAEpB,CACJ,CACA,MAAO3tB,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKwlB,qBAAqBjnB,KAAMqC,GACxE,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,sBAE4B,SAACwS,EAAYlR,GACtC,IACI,IAAA0iC,EAGIhkC,EAAKkB,MAFLq0B,EAAWyO,EAAXzO,YACAhH,EAAUyV,EAAVzV,WAGJ,GAAI/b,EAAME,OAAOnU,MAA8B,KAAtBiU,EAAME,OAAOnU,MAAeg3B,GAAehH,EAAY,CAC5E,IAAM8R,EAAoB9K,EACpB2H,EAAoB1qB,EAAME,OAAOnU,KAAKqQ,MAAM,KAC9CsvB,EAAkC3P,EAG7B,mBADD2O,EAAQ,KAERgB,EAAgBl+B,EAAKikC,qBAAqB/G,EAASgB,EAAe58B,IAI1E48B,EAAgBl+B,EAAKshC,mBAAmBpE,EAASgB,GACjDA,EAAgBl+B,EAAKqhC,UAAUnE,EAASgB,EAAe58B,GAEvDtB,EAAKU,SAAS,CACV60B,YAAa8K,EACb9R,WAAY2P,GAEpB,CACJ,CAAE,MAAOt9B,GACLZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKylB,mBAAmBlnB,KAAMqC,GACtE,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,qBAE2B,SAACwS,GACzB,IACI,IAAA0xB,EAGIlkC,EAAKkB,MAFLq0B,EAAW2O,EAAX3O,YACAhH,EAAU2V,EAAV3V,WAGJ,GAAI/b,EAAME,OAAOhU,IAA0B,KAApB8T,EAAME,OAAOhU,IAAa62B,GAAehH,EAAY,CACxE,IAAM8R,EAAoB9K,EACpB2H,EAAoB1qB,EAAME,OAAOhU,GAAGkQ,MAAM,KAC5CkyB,EAAqB,EACrB5D,EAAQ,KACR4D,EAAa/xB,OAAOmuB,EAAQ,IAAM,GAEtC,IAAIgB,EAAkC3P,EACtC,OAAQ2O,EAAQ,IACZ,IAAK,UACD,GAAIA,GAAWA,EAAQ,IAAMA,EAAQ,GAAI,CACrC,IAAM1W,EAAa0X,EAAc9O,MAAMrgB,OAAOmuB,EAAQ,KAAK1N,aAAazgB,OAAOmuB,EAAQ,KAAKrY,OAAO9V,OAAOmuB,EAAQ,MAC7G3O,EAAW4V,oBAAsB3xB,EAAME,OAAOpR,MAAM8iC,MAAM7V,EAAW4V,qBACtE3d,EAAM7lB,KAAKsB,OAAQ,EACnBukB,EAAM7lB,KAAKyE,WAAa,GACxBohB,EAAMllB,MAAQkR,EAAME,OAAOpR,MAC3B++B,EAAIxhB,MAAQrM,EAAME,OAAOpR,QAGzBklB,EAAM7lB,KAAKsB,OAAQ,EACnBukB,EAAM7lB,KAAKyE,WAAaohB,EAAM7lB,KAAK0jC,qBAE3C,CACA,MACJ,IAAK,mBACD,IAAK7xB,EAAME,OAAOpR,MAAM8iC,MAAM,aAAc,CACxC,IAAME,EAAU,IAAIC,OAAO,+EAC3B/xB,EAAME,OAAOpR,MAAQkR,EAAME,OAAOpR,MAAMiO,QAAQ+0B,EAAS,GAC7D,CACA,MACJ,IAAK,cACDjE,EAAI5hB,UAAYjM,EAAME,OAAOpR,MAC7B,MACJ,IAAK,mBACD++B,EAAImE,eAAiBhyB,EAAME,OAAOpR,MAClC,MACJ,IAAK,eACD,GAAI47B,GAAWA,EAAQ,IAAMA,EAAQ,IAAMA,EAAQ,GAAI,CACnD,IAAM1W,EAAa0X,EAAc9O,MAAMrgB,OAAOmuB,EAAQ,KACjD1N,aAAazgB,OAAOmuB,EAAQ,KAAKrY,OAAO9V,OAAOmuB,EAAQ,KACtD2C,EAAuBrtB,EAAME,OAAOpR,MACtCu+B,EAAaztB,SAAS,MACtBoU,EAAM7lB,KAAKsB,OAAQ,EACnBukB,EAAM7lB,KAAKyE,WAAaohB,EAAM7lB,KAAK8jC,qBAGnCje,EAAM7lB,KAAKsB,OAAQ,EACnBukB,EAAM7lB,KAAKyE,WAAa,IAE5Bi7B,EAAIR,aAAeA,CACvB,CACA,MACJ,IAAK,aACDQ,EAAI1hB,SAAWnM,EAAME,OAAOpR,MAC5B,MACJ,IAAK,mBACD++B,EAAIqE,eAAiBlyB,EAAME,OAAOpR,MAClC,MACJ,IAAK,cACD++B,EAAIsE,UAAYnyB,EAAME,OAAOpR,MAC7B,MACJ,IAAK,eACD++B,EAAIuE,WAAapyB,EAAME,OAAOpR,MAC9B,MACJ,IAAK,oBACD,GAAI47B,GAAWA,EAAQ,IAAMA,EAAQ,IAAMA,EAAQ,GAAI,CACnD,IAAK1qB,EAAME,OAAOpR,MAAM8iC,MAAM,aAAc,CACxC,IAAME,EAAU,IAAIC,OAAO,+EAC3B/xB,EAAME,OAAOpR,MAAQkR,EAAME,OAAOpR,MAAMiO,QAAQ+0B,EAAS,GAC7D,CACA,IAAM9d,EAAa0X,EAAc9O,MAAMrgB,OAAOmuB,EAAQ,KAAK1N,aAAazgB,OAAOmuB,EAAQ,KAAKrY,OAAO9V,OAAOmuB,EAAQ,KAC9GnuB,OAAOyD,EAAME,OAAOpR,QAAU,GAAKyN,OAAOyD,EAAME,OAAOpR,QAAU,MACjEklB,EAAM7lB,KAAKsB,OAAQ,EACnBukB,EAAM7lB,KAAKyE,WAAa,GACxBi7B,EAAIwE,gBAAkB91B,OAAOyD,EAAME,OAAOpR,QAGtCyN,OAAOyD,EAAME,OAAOpR,OAAS,MAC7BklB,EAAM7lB,KAAKsB,OAAQ,EACnBukB,EAAM7lB,KAAKyE,WAAaohB,EAAM7lB,KAAKshC,oBAGnCzb,EAAM7lB,KAAKsB,OAAQ,EACnBukB,EAAM7lB,KAAKyE,WAAaohB,EAAM7lB,KAAKmkC,oBAG/C,CACA,MACJ,IAAK,aACDzE,EAAI0E,SAAWvyB,EAAME,OAAOpR,MAC5B,MACJ,IAAK,gBACD++B,EAAI2E,YAAcxyB,EAAME,OAAOpR,MAC/B,MACJ,IAAK,cACD,IAAM2jC,EAA2B/G,EAAc9O,MAAMrgB,OAAOmuB,EAAQ,KAAK1N,aAAazgB,OAAOmuB,EAAQ,KAEhGmD,EAAIuB,WAAWd,KAChBT,EAAIuB,WAAWd,GAAc,CAAC,GAElCT,EAAIuB,WAAWd,GAAYyB,MAAQ/vB,EAAME,OAAOpR,MAE5C47B,EAAQryB,OAAS,EACjBo6B,EAAoBpgB,OAAO5B,SAAQ,SAAUuD,GACzC,IAAMsb,EAAsBtb,EAAM7lB,KAAKjC,GAAGkQ,MAAM,KAC5CsuB,EAAQ,KAAO4E,EAAU,IAAM5E,EAAQ,KAAO4E,EAAU,KACpD/yB,OAAOyD,EAAME,OAAOpR,OAAS,MAC7BklB,EAAM7lB,KAAKsB,OAAQ,EACnBukB,EAAM7lB,KAAKyE,WAAaohB,EAAM7lB,KAAKshC,kBACnCzb,EAAMllB,MAAQkR,EAAME,OAAOpR,QAE3BklB,EAAM7lB,KAAKsB,OAAQ,EACnBukB,EAAM7lB,KAAKyE,WAAa,GACxBohB,EAAMllB,MAAQkR,EAAME,OAAOpR,OAGvC,IAGA2jC,EAAoBpgB,OAAO5B,SAAQ,SAAUuD,GACzC,IAAMsb,EAAsBtb,EAAM7lB,KAAKjC,GAAGkQ,MAAM,KAC5CsuB,EAAQ,KAAO4E,EAAU,IAA2B,IAArBA,EAAUj3B,SACrCkE,OAAOyD,EAAME,OAAOpR,OAAS,MAC7BklB,EAAM7lB,KAAKsB,OAAQ,EACnBukB,EAAM7lB,KAAKyE,WAAaohB,EAAM7lB,KAAKshC,kBACnCzb,EAAMllB,MAAQkR,EAAME,OAAOpR,QAE3BklB,EAAM7lB,KAAKsB,OAAQ,EACnBukB,EAAM7lB,KAAKyE,WAAa,GACxBohB,EAAMllB,MAAQkR,EAAME,OAAOpR,OAGvC,IAEJ,MACJ,IAAK,mBACD++B,EAAI6E,eAAiB1yB,EAAME,OAAOpR,MAClC,MACJ,IAAK,gBACD,IAAKkR,EAAME,OAAOpR,MAAM8iC,MAAM,aAAc,CACxC,IAAME,EAAU,IAAIC,OAAO,+EAC3B/xB,EAAME,OAAOpR,MAAQkR,EAAME,OAAOpR,MAAMiO,QAAQ+0B,EAAS,GAC7D,CACA,MACJ,IAAK,eACDjE,EAAI8E,WAAa3yB,EAAME,OAAOpR,MAC9B,MACJ,IAAK,yBACD,IAAKkR,EAAME,OAAOpR,MAAM8iC,MAAM,aAAc,CACxC,IAAME,EAAU,IAAIC,OAAO,+EAC3B/xB,EAAME,OAAOpR,MAAQkR,EAAME,OAAOpR,MAAMiO,QAAQ+0B,EAAS,GAC7D,CACA,IAAIc,EAEAA,EADAlI,EAAQryB,OAAS,EACGqzB,EAAc9O,MAAMrgB,OAAOmuB,EAAQ,KAAK1N,aAAazgB,OAAOmuB,EAAQ,KAAKrY,OAAO9V,OAAOmuB,EAAQ,KAG/FgB,EAAc9O,MAAMrgB,OAAOmuB,EAAQ,KACnD1N,aAAazgB,OAAOmuB,EAAQ,KAAKrY,OAAOva,MAAK,SAAAyc,GAAC,OAC1CA,EAAEpmB,KAAKmqB,UAAY/b,OAAOmuB,EAAQ,KAElC,2BADAnW,EAAEpmB,KAAKjC,GAAG6oB,OAAO,EAAG,GACI,IAEhCxY,OAAOyD,EAAME,OAAOpR,OAAS,KAC7B8jC,EAAkBzkC,KAAKsB,OAAQ,EAC/BmjC,EAAkBzkC,KAAKyE,WAAaggC,EAAkBzkC,KAAKshC,oBAG3DmD,EAAkBzkC,KAAKsB,OAAQ,EAC/BmjC,EAAkBzkC,KAAKyE,WAAa,IAExC,MACJ,IAAK,yBACD,IAAKoN,EAAME,OAAOpR,MAAM8iC,MAAM,aAAc,CACxC,IAAME,EAAU,IAAIC,OAAO,+EAC3B/xB,EAAME,OAAOpR,MAAQkR,EAAME,OAAOpR,MAAMiO,QAAQ+0B,EAAS,GAC7D,CACA,IAAIe,EAEAA,EADAnI,EAAQryB,OAAS,EACGqzB,EAAc9O,MAAMrgB,OAAOmuB,EAAQ,KAAK1N,aAAazgB,OAAOmuB,EAAQ,KAAKrY,OAAO9V,OAAOmuB,EAAQ,KAG/FgB,EAAc9O,MAAMrgB,OAAOmuB,EAAQ,KACnD1N,aAAazgB,OAAOmuB,EAAQ,KAAKrY,OAAOva,MAAK,SAAAyc,GAAC,OAC1CA,EAAEpmB,KAAKmqB,UAAY/b,OAAOmuB,EAAQ,KAElC,2BADAnW,EAAEpmB,KAAKjC,GAAG6oB,OAAO,EAAG,GACI,IAEhCxY,OAAOyD,EAAME,OAAOpR,OAAS,IAC7B+jC,EAAkB1kC,KAAKsB,OAAQ,EAC/BojC,EAAkB1kC,KAAKyE,WAAaigC,EAAkB1kC,KAAKshC,oBAG3DoD,EAAkB1kC,KAAKsB,OAAQ,EAC/BojC,EAAkB1kC,KAAKyE,WAAa,IAExC,MACJ,IAAK,kBACD,IAAKoN,EAAME,OAAOpR,MAAM8iC,MAAM,aAAc,CACxC,IAAME,EAAU,IAAIC,OAAO,+EAC3B/xB,EAAME,OAAOpR,MAAQkR,EAAME,OAAOpR,MAAMiO,QAAQ+0B,EAAS,GAC7D,CACA,IAAIgB,EAEAA,EADApI,EAAQryB,OAAS,EACJqzB,EAAc9O,MAAMrgB,OAAOmuB,EAAQ,KAAK1N,aAAazgB,OAAOmuB,EAAQ,KAAKrY,OAAO9V,OAAOmuB,EAAQ,KAG/FgB,EAAc9O,MAAMrgB,OAAOmuB,EAAQ,KAC5C1N,aAAazgB,OAAOmuB,EAAQ,KAAKrY,OAAOva,MAAK,SAAAyc,GAAC,OAC1CA,EAAEpmB,KAAKmqB,UAAY/b,OAAOmuB,EAAQ,KAElC,oBADAnW,EAAEpmB,KAAKjC,GAAG6oB,OAAO,EAAG,GACH,IAEzBxY,OAAOyD,EAAME,OAAOpR,OAAS,IAC7BgkC,EAAW3kC,KAAKsB,OAAQ,EACxBqjC,EAAW3kC,KAAKyE,WAAakgC,EAAW3kC,KAAKshC,oBAG7CqD,EAAW3kC,KAAKsB,OAAQ,EACxBqjC,EAAW3kC,KAAKyE,WAAa,IAKzC84B,EAAgBl+B,EAAKshC,mBAAmBpE,EAASgB,GACjDA,EAAgBl+B,EAAKqhC,UAAUnE,EAASgB,EAAe1rB,EAAME,OAAOpR,OAEpEtB,EAAKU,SAAS,CACV60B,YAAa8K,EACb9R,WAAY2P,GAEpB,CACJ,CACA,MAAOt9B,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKif,kBAAkB1gB,KAAMqC,GACrE,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,0BAEgC,SAACwS,GAC9B,IAEI,GAAIA,EAAME,OAAOhU,IAA0B,KAApB8T,EAAME,OAAOhU,IAEvB,kBADD8T,EAAME,OAAOhU,GACjB,CACI,IACI6vB,EACAvuB,EAAKkB,MADLqtB,WAEAA,KACKA,EAAW4V,oBAAsB3xB,EAAME,OAAOpR,MAAM8iC,MAAM7V,EAAW4V,oBACtEnkC,EAAKU,SAAS,CACV6kC,iBAAiB,EACjB7I,WAAYlqB,EAAME,OAAOpR,MACzB+9B,cAAc,IAIlBr/B,EAAKU,SAAS,CACV6kC,iBAAiB,EACjB7I,WAAYlqB,EAAME,OAAOpR,MACzB+9B,cAAc,IAIrB,CAGrB,CACA,MAAOz+B,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKu/B,uBAAuBhhC,KAAMqC,GAC1E,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,iBAEuB,SAACwS,GACrB,IACI,IAAAgzB,EAGIxlC,EAAKkB,MAFLq0B,EAAWiQ,EAAXjQ,YACAhH,EAAUiX,EAAVjX,WAGJ,GAAI/b,EAAMqqB,cAAcn+B,IAAiC,KAA3B8T,EAAMqqB,cAAcn+B,IAAa62B,GAAehH,EAAY,CACtF,IAAM2O,EAAoB1qB,EAAMqqB,cAAcn+B,GAAGkQ,MAAM,KAEvD,OAAQsuB,EAAQ,IACZ,IAAK,2BACDl9B,EAAKU,SAAS,CACVuzB,kBAAclvB,EACd64B,oBAAoB,EACpBF,kBAAc34B,EACd84B,qBAAiB94B,EACjB04B,qBAAiB14B,EACjBk4B,gBAAiBzqB,EAAMqqB,cAAcn+B,GACrCi/B,6BAAyB54B,EACzB+4B,mBAAe/4B,IAEnB,MACJ,IAAK,qBAED,IAGI+7B,EAHAte,EAAkB,GAChBqJ,EACF0C,EAAWa,MAAMrgB,OAAOmuB,EAAQ,KAAK1N,aAAazgB,OAAOmuB,EAAQ,KAAKrY,QAGtEic,EADA5D,EAAQryB,OAAS,EACJghB,EAAW/E,WAAU,SAAAC,GAAC,OAAIA,EAAEpmB,KAAKmqB,UAAY/b,OAAOmuB,EAAQ,KACtB,iBAA/CnW,EAAEpmB,KAAKjC,GAAG6oB,OAAO,EAAG,GAAyC,IAGpDsE,EAAW/E,WAAU,SAAAC,GAAC,MAAkB,iBAAdA,EAAEpmB,KAAKjC,EAAqB,MAErD,IACd8jB,EAAU+L,EAAWa,MAAMrgB,OAAOmuB,EAAQ,KAAK1N,aAAazgB,OAAOmuB,EAAQ,KACvErY,OAAOic,GAAYx/B,OAG3BtB,EAAKU,SAAS,CACVo8B,wBAAwB,EACxB3a,kBAAkB,EAClB8a,gBAAiBzqB,EAAMqqB,cAAcn+B,GACrCq+B,gBAAiBva,IAGrB9gB,EAAAA,EAAc2N,YAAW,GAEzB,IACIgT,EACAriB,EAAKkB,MADLmhB,SAaJ,GAVAlT,GAAS8lB,aACL,EACA5S,EACAG,EACAxiB,EAAKs9B,kBAAmBt9B,EAAKa,UAI7Bb,EAAKkB,MADLq8B,MAGO,CACP,IAAMC,EAAenb,EAErBriB,EAAKU,SAAS,CACV2hB,SAAU,IACX,WACCriB,EAAKU,SAAS,CACV0hB,WAAY,EACZC,SAAUmb,GAElB,GACJ,CACA,MACJ,IAAK,WAED,IAAM5N,EACFrB,EAAWiB,aAAa1I,WAAU,SAAAC,GAAC,MAAa,sBAATA,EAAEroB,EAA0B,IACjEwhC,EACF3R,EAAWiB,aAAaI,GAAmB/K,OAAOiC,WAAU,SAAAC,GAAC,MAAkB,aAAdA,EAAEpmB,KAAKjC,EAAiB,IAC7F,GAAIkxB,GAAqB,GAAKsQ,GAAkB,EAAG,CAC/C,IAAMzW,EAAgC8E,EAAWiB,aAAaI,GAAmB/K,OAAOqb,GAAgBzW,UACpGA,EACA5rB,OAAOC,SAASC,OAAO0rB,GAGvB5rB,OAAOC,SAASC,OAAO,GAADyI,OAAIC,EAAAA,EAAUC,OAAM,4BAElD,CACA,MACJ,QACI,IAAM+iB,EACF8E,EAAWa,MAAMrgB,OAAOmuB,EAAQ,KAC5B1N,aAAazgB,OAAOmuB,EAAQ,KAC5BrY,OAAO9V,OAAOmuB,EAAQ,KAAKzT,UAC/BA,EACA5rB,OAAOC,SAASC,OAAO0rB,GAGvB5rB,OAAOC,SAASC,OAAO,GAADyI,OAAIC,EAAAA,EAAUC,OAAM,6BAI1D,CACJ,CAAE,MAAO9F,GACLc,EAAAA,EAAc2N,YAAW,GACzBrP,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAK0lB,cAAcnnB,KAAMqC,GACjE,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,gBAmBsB,SAAC4pB,EAAa1F,GACjC,IACI,IAAAuhB,EAOIzlC,EAAKkB,MANLy8B,EAAuB8H,EAAvB9H,wBACAF,EAAegI,EAAfhI,gBACAC,EAAY+H,EAAZ/H,aACAI,EAAa2H,EAAb3H,cACAD,EAAe4H,EAAf5H,gBACAxb,EAAQojB,EAARpjB,SAGJriB,EAAKU,SAAS,CACV0hB,WAAY8B,IAGhBxiB,EAAAA,EAAc2N,YAAW,GACzBF,GAAS6nB,gBACL9S,EACA7B,EACAsb,EACAF,EACAC,EACAI,EACAD,EACA79B,EAAKi+B,uBAAwBj+B,EAAKa,SAC1C,CACA,MAAOD,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKyiB,aAAalkB,KAAMqC,GAChE,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,uBAE6B,SAAC4pB,EAAa1F,GACxC,IACI,IAAAwhB,EAGI1lC,EAAKkB,MAFL67B,EAAe2I,EAAf3I,gBACA1a,EAAQqjB,EAARrjB,SAGJriB,EAAKU,SAAS,CACV0hB,WAAY8B,IAGhBxiB,EAAAA,EAAc2N,YAAW,GACzBF,GAAS8lB,aACL/Q,EACA7B,EACA0a,EACA/8B,EAAKs9B,kBAAmBt9B,EAAKa,SACrC,CACA,MAAOD,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKyiB,aAAalkB,KAAMqC,GAChE,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,uBAE6B,SAACwS,GAC3B,IACIxS,EAAKU,SAAS,CACV0hB,WAAY,EACZC,SAAUtT,OAAOyD,EAAME,OAAOpR,QAEtC,CACA,MAAOV,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAK0iB,oBAAoBnkB,KAAMqC,GACvE,CACJ,KAGAT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,aACoB,SAAC6rB,EAA0B1G,EAAmB2G,GAC9D,IACI,GAAID,EAAWntB,IAAwB,KAAlBmtB,EAAWntB,GAAW,CACvC,IAAAinC,EAII3lC,EAAKkB,MAHLqtB,EAAUoX,EAAVpX,WACAvU,EAAM2rB,EAAN3rB,OACAoR,EAAQua,EAARva,SAGJ,GAAImD,EAIA,OAHkC,OAA9BA,EAAWqX,iBACXrX,EAAWqX,eAAiB,CAAC,GAEzB/Z,EAAWntB,IACf,IAAK,uBAC+CqG,IAA5CwpB,EAAWqX,eAAeC,eAC1B7lC,EAAK8lC,iBAAiBvX,EAAY1C,EAAY7R,EAAQmL,EAClD2G,EAAiByC,EAAWqX,eAAeC,cAAe,oBAAqBza,GAEnFmD,EAAWqX,eAAeC,kBAG1B7lC,EAAK8lC,iBAAiBvX,EAAY1C,EAAY7R,EAAQmL,EAClD2G,EAAiB,EAAG,oBAAqBV,GAE7CmD,EAAWqX,eAAeC,cAAgB,GAE9C,MACJ,IAAK,2BAC+C9gC,IAA5CwpB,EAAWqX,eAAeG,eAC1B/lC,EAAK8lC,iBAAiBvX,EAAY1C,EAAY7R,EAAQmL,EAClD2G,EAAiByC,EAAWqX,eAAeG,cAAe,0BAA2B3a,GAEzFmD,EAAWqX,eAAeG,kBAG1B/lC,EAAK8lC,iBAAiBvX,EAAY1C,EAAY7R,EAAQmL,EAClD2G,EAAiB,EAAG,0BAA2BV,GAEnDmD,EAAWqX,eAAeG,cAAgB,GAE9C,MACJ,IAAK,kBAC4ChhC,IAAzCwpB,EAAWqX,eAAeI,YAC1BhmC,EAAK8lC,iBAAiBvX,EAAY1C,EAAY7R,EAAQmL,EAClD2G,EAAiByC,EAAWqX,eAAeI,WAAY,gBAAiB5a,GAE5EmD,EAAWqX,eAAeI,eAG1BhmC,EAAK8lC,iBAAiBvX,EAAY1C,EAAY7R,EAAQmL,EAClD2G,EAAiB,EAAG,gBAAiBV,GAEzCmD,EAAWqX,eAAeI,WAAa,GAE3C,MACJ,IAAK,iBACD,IAAMC,EAA+Bpa,EAAWhH,OAAOha,OAEvD7K,EAAK8lC,iBAAiBvX,EAAY1C,EAAY7R,EAAQmL,EAClD2G,EAAiBma,EAAsB,oBAAqB7a,GAEhE,IAAM8a,EAA6Bra,EAAWhH,OAAOha,OAC/Cs7B,EAAyBta,EAAWhH,OAAOuhB,MAAMH,EAAsBC,GACvEG,EAA+BF,EAASA,EAASrf,WAAU,SAAAlmB,GAAC,OAAqB,OAAjBA,EAAEmiC,UAAmB,KACrFuD,EAEFH,EAASA,EAASrf,WAAU,SAAAlmB,GAAC,OAAIA,EAAED,KAAKjC,GAAGkQ,MAAM,KAAK,KAAOy3B,EAAiBtD,UAAU,KAC5FuD,EAAgB3lC,KAAKmG,QAAU,GAC/Bu/B,EAAiBtD,WAAauD,EAAgB3lC,KAAKjC,QAEDqG,IAA9CwpB,EAAWqX,eAAeW,gBAC1BhY,EAAWqX,eAAeW,kBAG1BhY,EAAWqX,eAAeW,gBAAkB,EAEhD,MACJ,IAAK,wBACGvsB,EAAOmL,GAAW+B,YAAY4E,GAAiBjB,cAAchgB,OAAS,SACb9F,IAArDwpB,EAAWqX,eAAeY,wBAE1BxmC,EAAK8lC,iBAAiBvX,EAAY1C,EAAY7R,EAAQmL,EAClD2G,EAAiByC,EAAWqX,eAAeY,uBAAwB,GAAIpb,GAE3EmD,EAAWqX,eAAeY,2BAG1BxmC,EAAK8lC,iBAAiBvX,EAAY1C,EAAY7R,EAAQmL,EAClD2G,EAAiB,EAAG,GAAIV,GAE5BmD,EAAWqX,eAAeY,uBAAyB,IAG3D,MACJ,IAAK,+BACiDzhC,IAA9CwpB,EAAWqX,eAAea,iBAE1BzmC,EAAK8lC,iBAAiBvX,EAAY1C,EAAY7R,EAAQmL,EAClD2G,EAAiByC,EAAWqX,eAAea,gBAAiB,GAAIrb,GAEpEmD,EAAWqX,eAAea,oBAG1BzmC,EAAK8lC,iBAAiBvX,EAAY1C,EAAY7R,EAAQmL,EAClD2G,EAAiB,EAAG,GAAIV,GAE5BmD,EAAWqX,eAAea,gBAAkB,GAEhD,MACJ,IAAK,sBACgD1hC,IAA7CwpB,EAAWqX,eAAec,gBAE1B1mC,EAAK8lC,iBAAiBvX,EAAY1C,EAAY7R,EAAQmL,EAClD2G,EAAiByC,EAAWqX,eAAec,eAAgB,GAAItb,GAEnEmD,EAAWqX,eAAec,mBAG1B1mC,EAAK8lC,iBAAiBvX,EAAY1C,EAAY7R,EAAQmL,EAClD2G,EAAiB,EAAG,GAAIV,GAE5BmD,EAAWqX,eAAec,eAAiB,GAE/C,MACJ,IAAK,gBACD,IAAMC,EAA6B9a,EAAWhH,OAAOha,YAEL9F,IAA5CwpB,EAAWqX,eAAegB,cAE1B5mC,EAAK8lC,iBAAiBvX,EAAY1C,EAAY7R,EAAQmL,EAClD2G,EAAiByC,EAAWqX,eAAegB,cAAe,GAAIxb,GAGlEprB,EAAK8lC,iBAAiBvX,EAAY1C,EAAY7R,EAAQmL,EAClD2G,EAAiB,EAAG,GAAIV,GAGhC,IAAMyb,EAA2Bhb,EAAWhH,OAAOha,OAC7Ci8B,EAAuBjb,EAAWhH,OAAOuhB,MAAMO,EAAoBE,GACnEE,EAA6BD,EAAOA,EAAOhgB,WAAU,SAAAlmB,GAAC,OAAqB,OAAjBA,EAAEmiC,UAAmB,KAC/EiE,EAA4BF,EAAOA,EAAOhgB,WAAU,SAAAlmB,GAAC,OAAIA,EAAED,KAAKjC,GAAGkQ,MAAM,KAAK,KAAOm4B,EAAehE,UAAU,KACpHiE,EAAcrmC,KAAKmG,QAAU,GAC7BigC,EAAehE,WAAaiE,EAAcrmC,KAAKjC,QAECqG,IAA5CwpB,EAAWqX,eAAegB,cAC1BrY,EAAWqX,eAAegB,gBAG1BrY,EAAWqX,eAAegB,cAAgB,EAE9C,MACJ,IAAK,sBACgD7hC,IAA7CwpB,EAAWqX,eAAeqB,gBAE1BjnC,EAAK8lC,iBAAiBvX,EAAY1C,EAAY7R,EAAQmL,EAClD2G,EAAiByC,EAAWqX,eAAeqB,eAAgB,GAAI7b,GAEnEmD,EAAWqX,eAAeqB,mBAG1BjnC,EAAK8lC,iBAAiBvX,EAAY1C,EAAY7R,EAAQmL,EAClD2G,EAAiB,EAAG,GAAIV,GAE5BmD,EAAWqX,eAAeqB,eAAiB,GAK/D,CACJ,CACA,MAAOrmC,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKgsB,UAAUztB,KAAMqC,GAC7D,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,qBAGG,SAAC6rB,EAA0B1G,EAAmB2G,EAAyBob,EAAqBC,GACxF,IACI,IAMMC,EAA2B,CAC7BxgB,cAAe,mBACfjmB,KARoB,CACpBjC,GAAI,cAAF8H,OAAgB2e,EAAS,KAAA3e,OAAIslB,EAAe,KAAAtlB,OAAI0gC,EAAW,KAAA1gC,OAAI2gC,GACjEziC,UAAU,EACVomB,QAASqc,GAMTE,WAAW,EACX3f,YAAY,EACZ7oB,QAASmB,EAAK2lB,aACdrkB,MAAO,IAGXuqB,EAAWhH,OAAO3gB,KAAKkjC,EAC3B,CACA,MAAOxmC,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKsnC,kBAAkB/oC,KAAMqC,GACrE,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,0BAE4B,SAACunC,GAAe,OAAK,WAClD,IACIvnC,EAAKU,SAAS,CACV0qB,SAAUmc,GAElB,CACA,MAAO3mC,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKulB,uBAAuBhnB,KAAMqC,GAC1E,CACJ,CAAC,KAAAT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,gBAEsB,SAACwS,GACpB,IACI,IAAAg1B,EAGIxnC,EAAKkB,MAFL8Y,EAAMwtB,EAANxtB,OACAuU,EAAUiZ,EAAVjZ,WAGJ,GAAIA,EAAY,CACZ,GAAI/b,EAAMqqB,cAAcn+B,GAAI,CACxB,IAIQoiC,EAJFtZ,EAAqBhV,EAAMqqB,cAAcn+B,GAAGkQ,MAAM,KAClD64B,EAAwBlZ,EAAWa,MAAM5H,EAAS,IAAIgI,aAAahI,EAAS,IAAI9oB,GAChFmmB,EAAuB0J,EAAWa,MAAM5H,EAAS,IAAIgI,aAAahI,EAAS,IAAI3C,OACrF,GAAIA,EAEA,IACIic,EAAajc,EAAOiC,WAAU,SAAAC,GAAC,OAAIA,EAAEpmB,KAAKmqB,UAAY/b,OAAOyY,EAAS,GAAG,MACvD,GACd3C,EAAO8B,OAAOma,EAAY,SAEzBA,GAAc,GAE3BvS,EAAWa,MAAMrgB,OAAOyY,EAAS,KAAKgI,aAAazgB,OAAOyY,EAAS,KAAK3C,OAASA,EAGjF,IAAMH,EAAe1K,EAAOjL,OAAOyY,EAAS,KAAKN,YAAYnY,OAAOyY,EAAS,KAAKqD,cAAc/D,WAC5F,SAAAgE,GAAO,OAAIA,EAAQpG,eAAiB3V,OAAOyY,EAAS,GAAG,IAK3D,OAJI9C,GAAgB,GAChB1K,EAAOjL,OAAOyY,EAAS,KAAKN,YAAYnY,OAAOyY,EAAS,KAAKqD,cAAclE,OAAOjC,EAAc,GAG5F+iB,GACJ,IAAK,aAKD,GAAiC,IAHOlZ,EAAWa,MAAM5H,EAAS,IAAIgI,aAAahI,EAAS,IACvF3C,OAAOie,QAAO,SAAA/b,GAAC,MAAqD,mBAAjDA,EAAEpmB,KAAKjC,GAAG6oB,OAAO,EAAG,KAA6D,MAAZR,EAAEzlB,KAAa,IAEtFuJ,OAAc,CAChC,IAAM68B,EAAiCnZ,EAAWa,MAAM5H,EAAS,IAAIgI,aAAahI,EAAS,IACtF3C,OAAOiC,WAAU,SAAAC,GAAC,MAAkB,mBAAdA,EAAEpmB,KAAKjC,EAAuB,IACrDgpC,GAA0B,IAC1BnZ,EAAWa,MAAM5H,EAAS,IAAIgI,aAAahI,EAAS,IAC/C3C,OAAO6iB,GAAwBpmC,MAAQ,IAEpD,CACA,MACJ,IAAK,iBACD,IACIi0B,EACAv1B,EAAKkB,MADLq0B,YAEJA,EAAYqM,WAAW7yB,OAAOyY,EAAS,IAAM,GAAK,CAAC,EACnDxnB,EAAKU,SAAS,CACV60B,YAAaA,IAIzB,IAEIoS,EAFE9b,EACF0C,EAAWa,MAAM5H,EAAS,IAAIgI,aAAahI,EAAS,IAGpDmgB,EADA9b,EAAWS,eACFvd,OAAO8c,EAAWS,gBAAkB,EAGpC,GAETtS,EAAOwN,EAAS,IAAIN,YAAYM,EAAS,IAAIqD,cAAchgB,OAAS88B,IAEpEpZ,EAAWa,MAAM5H,EAAS,IAAIgI,aAAahI,EAAS,IAAI2E,YAAa,EAE7E,CAEAnsB,EAAKU,SAAS,CACV6tB,WAAYA,EACZvU,OAAQA,IAGZxH,EAAM+nB,kBACN/nB,EAAMgoB,gBACV,CACJ,CACA,MAAO55B,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAK2lB,aAAapnB,KAAMqC,GAChE,CACJ,KAGAT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,qBAC4B,SAACqX,GACzB,IACIrX,EAAKU,SAAS,CACVoW,gBAAiBnS,QAAQ0S,IAEjC,CACA,MAAOzW,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKsX,kBAAkB/Y,KAAMqC,GACrE,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,oBAE0B,WACvB,IACIA,EAAKU,SAAS,CACVoW,gBAAgB,GAExB,CACA,MAAOlW,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKuX,iBAAiBhZ,KAAMqC,GACpE,CACJ,KAIAT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,oBAEI,SAAC6rB,EAA0BqR,EAAmB0K,EAAqBC,EAAyBvmC,GACxF,IACIitB,EACAvuB,EAAKkB,MADLqtB,WAGJ,GAAIA,EAAY,CACZ,IAAIuS,GAEAA,EADA+G,EACahc,EAAW/E,WAAU,SAAAC,GAAC,OAAIA,EAAEpmB,KAAKmqB,UAAY/b,OAAOmuB,EAAQ,KACrEnW,EAAEpmB,KAAKjC,GAAG6oB,OAAO,EAAGqgB,EAAY/8B,UAAY+8B,CAAW,IAG9C/b,EAAW/E,WAAU,SAAAC,GAAC,OAAIA,EAAEpmB,KAAKjC,KAAOkpC,CAAW,MAElD,IACdrZ,EAAWa,MAAMrgB,OAAOmuB,EAAQ,KAAK1N,aAAazgB,OAAOmuB,EAAQ,KAC7DrY,OAAOic,GAAYx/B,MAAQA,EAEvC,CACJ,KAACnB,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,sBAEwB,SAACk9B,EAAmBgB,GAEzC,IAAI1X,EADJ0W,GAAWA,EAAQ,IAAMA,EAAQ,IAAMA,EAAQ,UAcjCn4B,KARVyhB,EAHA0W,EAAQryB,OAAS,EAEbqzB,EAAc9O,MAAMrgB,OAAOmuB,EAAQ,KAAK1N,aAAazgB,OAAOmuB,EAAQ,KAAKrY,OAE9Dva,MAAK,SAAAyc,GAAC,OAAIA,EAAEpmB,KAAKjC,GAAGkQ,MAAM,KAAK,KAAOsuB,EAAQ,IAAMnW,EAAEpmB,KAAKjC,GAAGkQ,MAAM,KAAK,KAAOsuB,EAAQ,EAAE,IAIrGgB,EAAc9O,MAAMrgB,OAAOmuB,EAAQ,KAAK1N,aAAazgB,OAAOmuB,EAAQ,KAAKrY,OAAO9V,OAAOmuB,EAAQ,aAIzDn4B,IAArCyhB,EAAM7lB,KAAKmnC,uBACyB,OAArCthB,EAAM7lB,KAAKmnC,4BACwB/iC,IAAlCyhB,EAAM7lB,KAAK8jC,oBAC0B,OAAlCje,EAAM7lB,KAAK8jC,yBACsB1/B,IAApCyhB,EAAM7lB,KAAK0jC,sBAC4B,OAApC7d,EAAM7lB,KAAK0jC,2BACqBt/B,IAAnCyhB,EAAM7lB,KAAKmkC,qBAC2B,OAAnCte,EAAM7lB,KAAKmkC,0BACqB//B,IAAnCyhB,EAAM7lB,KAAKonC,qBAC2B,OAAnCvhB,EAAM7lB,KAAKonC,0BACmBhjC,IAAjCyhB,EAAM7lB,KAAKshC,mBACyB,OAAjCzb,EAAM7lB,KAAKshC,oBACfzb,EAAM7lB,KAAKsB,OAAQ,EACnBukB,EAAM7lB,KAAKyE,WAAa,MAIpC,OAAO84B,CACX,KAAC/9B,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,aAGG,SAACtB,EAAYymB,EAAmB2G,EAAyBob,EAAqBC,EAAuB5Y,GACjG,IACI,IAAM1J,EACF0J,EAAWa,MAAMjK,GAAWqK,aAAa1D,GAAiBjH,OACxDic,EACFjc,EAAOiC,WAAU,SAAAC,GAAC,OAAIA,EAAEpmB,KAAKjC,KAAOA,CAAE,IAEpCspC,EAA0BnjB,EAAOic,GACjCmH,EAAuBC,KAAKC,MAAMD,KAAKE,UAAUJ,IAEvDC,EAAStnC,KAAKjC,GAAE,GAAA8H,OACT9H,EAAE,KAAA8H,OAAI2e,EAAS,KAAA3e,OAAIslB,EAAe,KAAAtlB,OAAI0gC,EAAW,KAAA1gC,OAAI2gC,GAC5D,IAAIlf,GAAiB,EACa,aAA9B+f,EAAYphB,eACRohB,EAAW,SAAYA,EAAYrnC,KAAKmG,SACxCkhC,EAAYrnC,KAAKmG,QAAQmc,SAAQ,SAAAiF,GACzBA,EAAO5mB,MAAM+C,aAAe2jC,EAAW,QAAS3jC,aAChD4jB,GAAQ,EAEhB,IAGAggB,EAAS3mC,MADT2mB,EACiB+f,EAAW,QAGX,IAIrBC,EAAS3mC,MAAQ0mC,EAAW,QAAWA,EAAW,QAAW,GAEjEC,EAAStnC,KAAKsB,OAAQ,EACtBgmC,EAAStnC,KAAKyE,WAAa,GAC3B6iC,EAAStnC,KAAK+D,UAAW,EACzBujC,EAAStnC,KAAKmqB,QAAUqc,EACxBtiB,EAAO3gB,KAAK+jC,GACZ1Z,EAAWa,MAAMjK,GAAWqK,aAAa1D,GAAiBjH,OAASA,CACvE,CACA,MAAOjkB,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKqoC,UAAU9pC,KAAMqC,GAC7D,CACA,OAAO2tB,CACX,KAACpuB,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,oBAGD,SAACuuB,EAA8B1C,EAA0B7R,EAA8BmL,EAAmB2G,EAAyB7H,EAAeqkB,EAAoBld,GAElK,IAsBIuc,EAtBET,EAAsBrb,EAAWhH,OAAOha,OAIxC6Z,EAAe1K,EAAOmL,GAAW+B,YAAY4E,GAAiBjB,cAAc3mB,KAC9E,CAAEwgB,aAAcT,EAAOgH,gBAAgB,EAAOsd,aAAc,KAAQ,EAExE1c,EAAWhH,OAAO5B,SAAQ,SAACuD,EAAOuC,GACzBvC,EAAM7lB,KAAK+D,WACR8hB,EAAM7lB,KAAKjC,KAAO4pC,IAClB/Z,EAAavuB,EAAKqoC,UAAU7hB,EAAM7lB,KAAKjC,GAAIymB,EACvC2G,EAAkBob,EAAc,EAAKne,EAAG9E,EAAOsK,IAGvDvU,EAAOmL,GAAW+B,YAAY4E,GAAiBjB,cAAcnG,GAAc6jB,aAAarkC,KACpF,CAAEg5B,QAAS1W,EAAM7lB,KAAKjC,GAAI8pC,cAAc,IAGpD,IAEAxoC,EAAKsnC,kBAAkBzb,EAAY1G,EAAW2G,EAAkBob,EAAc,EAAIjjB,GAI9E0jB,EADA9b,EAAWS,eACFvd,OAAO8c,EAAWS,gBAAkB,EAGpC,GAETtS,GAAUA,EAAOmL,GAAW+B,YAAY4E,GAAiBjB,cAAchgB,OAAS88B,EAChF9b,EAAWM,YAAa,EAGxBN,EAAWM,YAAa,EAG5BnsB,EAAKU,SAAS,CACV6tB,WAAYA,EACZvU,OAAQA,EACRoR,SAAUS,EAAW7G,iBAAgB,SAAAxe,OACxB2e,EAAS,KAAA3e,OAAIslB,EAAe,KAAAtlB,OAAIyd,GAAUmH,GAE/D,KAACjrB,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,wBAE0B,WAC3B,IAAAyoC,EAIIzoC,EAAKkB,MAHLq0B,EAAWkT,EAAXlT,YACAhH,EAAUka,EAAVla,WACAvU,EAAMyuB,EAANzuB,OAGA/Q,GAAmB,EACvB,GAAIslB,EAAY,CACZ,IAcIma,EACAxL,EACAyL,EACAC,EAjBAC,GAAyB,EACzBC,GAA2B,EAC3BC,GAAuB,EACvBC,GAAoC,EACpCC,GAAkC,EAClCC,GAAsB,EACtBC,GAAwB,EACxBC,GAA4B,EAC5BC,GAA0B,EAC1BC,GAAyB,EACzBC,GAAyB,EACzBC,GAA0B,EAE1B3jB,EAAgB,GAMpB0I,EAAWa,MAAMnM,SAAQ,SAACqM,EAAMnK,GAC5ByjB,GAAmB,EACnBtZ,EAAKE,aAAavM,SAAQ,SAACmc,EAAara,GAwFpC,GAvFAqa,EAAYva,OAAO5B,SAAQ,SAAAuD,GACvB,GAAIA,EAAMkB,aAAelB,EAAMllB,MAC3BklB,EAAM7lB,KAAKsB,OAAQ,EACnBukB,EAAM7lB,KAAKyE,WAAaohB,EAAM7lB,KAAK6gC,qBACnCv4B,GAAU,OACP,GAAIud,EAAM6gB,WAAa1f,OAAOnB,EAAMllB,OAAOuJ,OAAS,GAAK4+B,MAAM16B,OAAOyX,EAAMllB,QAC/EklB,EAAM7lB,KAAKsB,OAAQ,EACnBukB,EAAM7lB,KAAKyE,WAAaohB,EAAM7lB,KAAKmkC,oBACnC77B,GAAU,OACP,GAAIud,EAAMkB,YAAclB,EAAMllB,OAAiC,eAAxBklB,EAAMI,cAAgC,CAChF,IACM8iB,EADO1I,IAAOxa,EAAMllB,MAAO,cACC2H,UAC5B0gC,EAAU,IAAI3H,KAAKhB,MAASC,KAAK,IAAK,SAASc,UAC/C6H,EAAU,IAAI5H,KAAKhB,MAASC,IAAI,IAAM,SAASc,UAE/C8H,EACF,IAAI7H,KAAKhB,IAAOxa,EAAMllB,OAAOygC,WAAa4H,GAC1C,IAAI3H,KAAKhB,IAAOxa,EAAMllB,OAAOygC,WAAa6H,EACzCF,GAAgBG,IACjBrjB,EAAMllB,WAAQyD,EACdyhB,EAAM7lB,KAAKsB,OAAQ,EACnBukB,EAAM7lB,KAAKyE,WAAaohB,EAAM7lB,KAAK6gC,qBACnCv4B,GAAU,GAEVygC,GAAeG,IACfrjB,EAAM7lB,KAAKsB,OAAQ,EACnBukB,EAAM7lB,KAAKyE,WAAa,GAEhC,MAAO,GAAIohB,EAAMllB,OAAiC,eAAxBklB,EAAMI,cAAgC,CAC5D,IACM8iB,EADO1I,IAAOxa,EAAMllB,MAAO,cACC2H,UAC5B0gC,EAAU,IAAI3H,KAAKhB,MAASC,KAAK,IAAK,SAASc,UAC/C6H,EAAU,IAAI5H,KAAKhB,MAASC,IAAI,IAAM,SAASc,UAE/C8H,EACF,IAAI7H,KAAKhB,IAAOxa,EAAMllB,OAAOygC,WAAa4H,GAC1C,IAAI3H,KAAKhB,IAAOxa,EAAMllB,OAAOygC,WAAa6H,EAC1CF,IAAgBG,IAChBrjB,EAAMllB,WAAQyD,EACdyhB,EAAM7lB,KAAKsB,OAAQ,EACnBukB,EAAM7lB,KAAKyE,WAAaohB,EAAM7lB,KAAK6gC,qBACnCv4B,GAAU,EAElB,KAC2B,qBAAlBud,EAAMsjB,UAAmCtjB,EAAM7lB,KAAKsB,MACzDgH,GAAU,GAGVud,EAAM7lB,KAAKsB,OAAQ,EACnBukB,EAAM7lB,KAAKyE,WAAa,GAEhC,IAGKmpB,EAAWqX,iBACZrX,EAAWqX,eAAiB,CAAC,EAC7BrX,EAAWqX,eAAegB,cAAgBrY,EAAWqX,eAAegB,cAChErY,EAAWqX,eAAegB,cAAgB,EAE9CrY,EAAWqX,eAAea,gBAAkBlY,EAAWqX,eAAea,gBAClElY,EAAWqX,eAAea,gBAAkB,EAEhDlY,EAAWqX,eAAec,eAAiBnY,EAAWqX,eAAec,eACjEnY,EAAWqX,eAAec,eAAiB,EAE/CnY,EAAWqX,eAAeY,uBAAyBjY,EAAWqX,eAAeY,uBACzEjY,EAAWqX,eAAeY,uBAAyB,EAEvDjY,EAAWqX,eAAeC,cAAgBtX,EAAWqX,eAAeC,cAChEtX,EAAWqX,eAAeC,cAAgB,EAE9CtX,EAAWqX,eAAeI,WAAazX,EAAWqX,eAAeI,WAC7DzX,EAAWqX,eAAeI,WAAa,EAE3CzX,EAAWqX,eAAeG,cAAgBxX,EAAWqX,eAAeG,cAChExX,EAAWqX,eAAeG,cAAgB,EAE9CxX,EAAWqX,eAAeqB,eAAiB1Y,EAAWqX,eAAeqB,eACjE1Y,EAAWqX,eAAeqB,eAAiB,EAE/C1Y,EAAWqX,eAAeW,gBAAkBhY,EAAWqX,eAAeW,gBAClEhY,EAAWqX,eAAeW,gBAAkB,GAM7B,wBAAnBnH,EAAY1gC,GAA8B,CAC1CmqC,EAAgB7oC,EAAK+pC,eAAe3K,GACpC,IAAM4K,EAAyB5K,EAAYva,OAAOiC,WAAU,SAAAC,GAAC,MAAkB,4BAAdA,EAAEpmB,KAAKjC,EAAgC,IACnGmqC,EAMGmB,GAAkB,IAClB5K,EAAYva,OAAOmlB,GAAgBrpC,KAAKsB,OAAQ,EAChDm9B,EAAYva,OAAOmlB,GAAgBrpC,KAAKyI,MAAQ,IAPhD4gC,GAAkB,IAClB5K,EAAYva,OAAOmlB,GAAgBrpC,KAAKsB,OAAQ,EAS5D,CAIA,GAAuB,mBAAnBm9B,EAAY1gC,GAAyB,CACrC,IAAMurC,EACF7K,EAAYva,OAAOie,QAAO,SAAAN,GAAC,QAAMA,EAAE7hC,KAAKjC,GAAG0T,SAAS,eAAiBowB,EAAE7hC,KAAKjC,GAAG0T,SAAS,qBAAqB,IAC3G83B,EAAuBD,EAAiBE,QAAO,SAAUC,EAAGC,GAC9D,IACI/jB,EADEjlB,EAA0BgpC,EAAE1pC,KAAKjC,GAAGkQ,MAAM,KAAK,GASrD,OAFAw7B,EAFI9jB,EAHCjlB,EAGO0N,OAAO1N,GAAO,EAFd,GAID+oC,EAAE9jB,IAAU,GACvB8jB,EAAE9jB,GAAOpiB,KAAKmmC,GACPD,CACX,GAAGnhB,OAAOqhB,OAAO,OAEXC,EAA4BnL,EAAYva,OAAOiC,WAAU,SAAAC,GAAC,MAAkB,sBAAdA,EAAEpmB,KAAKjC,EAA0B,KACrGoqC,EAAkB9oC,EAAKwqC,iBAAiBN,IAQhCK,GAAqB,IACrBnL,EAAYva,OAAO0lB,GAAmB5pC,KAAKsB,OAAQ,EACnDm9B,EAAYva,OAAO0lB,GAAmB5pC,KAAKyI,MAAQ,IARnDmhC,GAAqB,IACrBnL,EAAYva,OAAO0lB,GAAmB5pC,KAAKsB,OAAQ,EACnDm9B,EAAYva,OAAO0lB,GAAmB5pC,KAAKyI,MAAQg2B,EAAY0I,uBAWnEgB,IAAoBmB,EAAiBQ,MAAK,SAAAjI,GAAC,OAAqB,IAAjBA,EAAE7hC,KAAKsB,KAAc,OACpE6mC,EAAkB9oC,EAAK0qC,4BAA4BR,IAS3CK,GAAqB,IACrBnL,EAAYva,OAAO0lB,GAAmB5pC,KAAKsB,OAAQ,EACnDm9B,EAAYva,OAAO0lB,GAAmB5pC,KAAKyI,MAAQ,IARnDmhC,GAAqB,IACrBnL,EAAYva,OAAO0lB,GAAmB5pC,KAAKsB,OAAQ,EACnDm9B,EAAYva,OAAO0lB,GAAmB5pC,KAAKyI,MAAQg2B,EAAYoC,uBAY3E,IAAK,IAAIzY,EAAYwM,EAAYqM,WAAW/2B,OAAQke,GAAK,EAAGA,IACpDwM,EAAYqM,WAAW7Y,IAClBwM,EAAYqM,WAAW7Y,GAAGrqB,IAI/B62B,EAAYqM,WAAWjb,OAAOoC,EAAG,EAG7C,CAIA,GAAuB,eAAnBqW,EAAY1gC,GAAqB,CACjCqqC,EAAc/oC,EAAK2qC,iBAAiBvL,GACpC,IAAM4K,EAAyB5K,EAAYva,OAAOiC,WAAU,SAAAC,GAAC,MAAkB,kBAAdA,EAAEpmB,KAAKjC,EAAsB,IACzFqqC,EAMGiB,GAAkB,IAClB5K,EAAYva,OAAOmlB,GAAgBrpC,KAAKsB,OAAQ,EAChDm9B,EAAYva,OAAOmlB,GAAgBrpC,KAAKyI,MAAQ,IAPhD4gC,GAAkB,IAClB5K,EAAYva,OAAOmlB,GAAgBrpC,KAAKsB,OAAQ,EAS5D,CAIA,GAAuB,eAAnBm9B,EAAY1gC,GAAqB,CACjCwqC,EAAalpC,EAAK4qC,YAAYxL,GAC9B,IAAM4K,EAAyB5K,EAAYva,OAAOiC,WAAU,SAAAC,GAAC,MAAkB,kBAAdA,EAAEpmB,KAAKjC,EAAsB,IACzFwqC,EAMGc,GAAkB,IAClB5K,EAAYva,OAAOmlB,GAAgBrpC,KAAKsB,OAAQ,EAChDm9B,EAAYva,OAAOmlB,GAAgBrpC,KAAKyI,MAAQ,IAPhD4gC,GAAkB,IAClB5K,EAAYva,OAAOmlB,GAAgBrpC,KAAKsB,OAAQ,EAS5D,CAIuB,oBAAnBm9B,EAAY1gC,KACZsqC,EAA2BhpC,EAAK6qC,iBAAiBzL,GAE7CA,EAAYva,OAAOie,QAAO,SAAA/b,GAAC,MAC6B,sBAApDA,EAAEpmB,KAAKjC,GAAG6oB,OAAO,EAAG,GAAmD,IACpEtE,SAAQ,SAAAuD,GACVwiB,GAIDxiB,EAAM7lB,KAAKsB,OAAQ,EACnBukB,EAAM7lB,KAAKyI,MAAQ,IAJnBod,EAAM7lB,KAAKsB,OAAQ,CAM3B,IACAgH,IAAW+/B,GAAmC//B,GAK3B,0BAAnBm2B,EAAY1gC,KACZuqC,EAAyBjpC,EAAK8qC,wBAAwB1L,GACtDn2B,IAAWggC,GAAiChgC,GAKzB,4BAAnBm2B,EAAY1gC,KACZyqC,EAAenpC,EAAK+qC,cAAc3L,GAClCn2B,IAAWkgC,GAAuBlgC,GAKlCm2B,EAAY4L,WACZ5B,EAAmBppC,EAAKirC,kBAAkB7L,GAC1Cn2B,IAAWmgC,GAA2BngC,GAKnB,mBAAnBm2B,EAAY1gC,KACZ2qC,EAAiBrpC,EAAKkrC,gBAAgB9L,GACtCn2B,IAAWogC,GAAyBpgC,GAKjB,kBAAnBm2B,EAAY1gC,KACZ4qC,EAAgBtpC,EAAKmrC,iBAAiB/L,IAKnB,mBAAnBA,EAAY1gC,KACZ6qC,EAAgBvpC,EAAKorC,gBAAgBhM,GACrCn2B,IAAWsgC,GAAwBtgC,GAKhB,mBAAnBm2B,EAAY1gC,KACZ8qC,EAAiBxpC,EAAKqrC,gBAAgBjM,GACtCn2B,IAAWugC,GAAyBvgC,GAKjB,gBAAnBm2B,EAAY1gC,IACZsB,EAAKwjC,aAAapE,GAKC,kBAAnBA,EAAY1gC,IACZsB,EAAK4jC,uBAAuBxE,GAKhCA,EAAYva,OAAO5B,SAAQ,SAAAuD,GAEnBA,EAAM7lB,KAAK+D,SAEI,gBADfmhB,EAAMW,EAAM7lB,KAAKjC,GAAGkQ,MAAM,MAClB,KAEJ85B,EAAoB35B,OAAO8W,EAAI,IAE/BqX,EAAUrX,EAAI,IAEd8iB,EAAoB3uB,EAAOmL,GAAW+B,YAAYnC,GAAY8F,cAAc/D,WAAU,SAAAgE,GAAO,OACzFA,EAAQpG,eAAiBgkB,CAAiB,MACrB,IAErBE,EAAkB5uB,EAAOmL,GAAW+B,YAAYnC,GAAY8F,cAAc8d,GAAmBJ,aACxFzhB,WAAU,SAAAN,GAAK,OAAIA,EAAM0W,UAAYA,CAAO,IAC7C0L,GAAmB,IAEnB5uB,EAAOmL,GAAW+B,YAAYnC,GAAY8F,cAAc8d,GAAmBJ,aAAaK,GACnFJ,eAAehiB,EAAM7lB,KAAKsB,OAAQukB,EAAM7lB,KAAKsB,UAO9D2mC,EAAkB5uB,EAAOmL,GAAW+B,YAAYnC,GAAYwG,mBAAmB+f,kBAAkBxkB,WAAU,SAAAykB,GAAU,OACjHA,EAAWrO,UAAY1W,EAAM7lB,KAAKjC,EAAE,MAEjB,EACnBsb,EAAOmL,GAAW+B,YAAYnC,GAAYwG,mBAAmB+f,kBAAkB1C,GAAiBJ,eAC5FhiB,EAAM7lB,KAAKsB,OAAQukB,EAAM7lB,KAAKsB,MAElC+X,EAAOmL,GAAW+B,YAAYnC,GAAYwG,mBAAmB+f,kBAAkBpnC,KAC3E,CAAEg5B,QAAS1W,EAAM7lB,KAAKjC,GAAI8pC,eAAchiB,EAAM7lB,KAAKsB,OAAQukB,EAAM7lB,KAAKsB,OAItF,IAEA+X,EAAOmL,GAAW+B,YAAYnC,GAAYwG,mBAAmBC,qBACzDxR,EAAOmL,GAAW+B,YAAYnC,GAAYwG,mBAAmB+f,kBAAkBb,MAAK,SAAAc,GAAU,OAAIA,EAAW/C,YAAY,IAE7HxuB,EAAOmL,GAAW+B,YAAYnC,GAAY8F,cAAc5H,SAAQ,SAAAuoB,GAC5DA,EAAavgB,eAAiBugB,EAAajD,aAAakC,MAAK,SAAAc,GAAU,OAAIA,EAAW/C,YAAY,GACtG,IAEAxuB,EAAOmL,GAAW+B,YAAYnC,GAAY0mB,aACtCrM,EAAYva,OAAO4lB,MAAK,SAAAjkB,GAAK,QAAIA,EAAM7lB,KAAKsB,OAAQukB,EAAM7lB,KAAKsB,KAAa,GACpF,IACA+X,EAAOmL,GAAWsM,YAAczX,EAAOmL,GAAW+B,YAAYujB,MAAK,SAAAiB,GAAU,OAAIA,EAAWD,YAAY,GAC5G,IAQA,IAAME,EAA4B,GAC5BC,EAAkC,IANxC3iC,EAAU4/B,GAAiBC,GACvBC,GAAeG,GAAcC,GAC7BG,GAAiBC,GACjBtgC,KAKA+Q,EAAOiJ,SAAQ,SAAAqM,GACXA,EAAKpI,YAAYjE,SAAQ,SAAAyoB,GACjBA,EAAWD,eAGiB,mBAAvBC,EAAWvkB,SAAiE,IAAjCoO,EAAYsW,UAAUhhC,QAC3C,kBAAvB6gC,EAAWvkB,SACY,mBAAvBukB,EAAWvkB,QACXykB,EAAgB1nC,KAAKwnC,GAGrBC,EAAUznC,KAAKwnC,GAG3B,GACJ,IACyB,IAArBC,EAAU9gC,SACV5B,EAAU4/B,GAAiBC,GAAmBC,GAC1CG,GAAcC,GACdH,GAA4BC,GAC5BI,GAAkBC,GAAiBC,GAAiBC,IAIhExpC,EAAKU,SAAS,CACV6tB,WAAYA,EACZvU,OAAQA,GAEhB,CACA,OAAO/Q,CACX,KAAC9I,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,wBAE8B,SAACk9B,EAAiB4O,GAC7C,IACIvW,EACAv1B,EAAKkB,MADLq0B,YAGJ,OAAQ2H,GACJ,IAAK,iBACD3H,EAAYwW,oBAAsBD,EAClC,MACJ,IAAK,WACDvW,EAAYgO,SAAWuI,EACvB,MACJ,IAAK,cACDvW,EAAYyW,YAAcF,EAC1B,MACJ,IAAK,mBACDvW,EAAY0W,eAAiBH,EAC7B,MACJ,IAAK,cACDvW,EAAYwO,UAAY+H,EACxB,MACJ,IAAK,WACDvW,EAAY2W,OAASJ,EACrB,MACJ,IAAK,aACDvW,EAAY4W,cAAgBL,EAC5B,MACJ,IAAK,oBACDvW,EAAY6W,kBAAoBN,EAChC,MACJ,IAAK,uBACDvW,EAAY8W,mBAAqBP,EACjC,MACJ,IAAK,oBACDvW,EAAY+W,gBAAkBR,EAC9B,MACJ,IAAK,WACDvW,EAAYgX,OAAST,EACrB,MACJ,IAAK,aACDvW,EAAYiX,SAAWV,EACvB,MACJ,IAAK,wBACDvW,EAAYkX,qBAAuBX,EACnC,MACJ,IAAK,sBACDvW,EAAYmX,kBAAoBZ,EAChC,MACJ,IAAK,kBACDvW,EAAYoX,OAASb,EACrB,MACJ,IAAK,WACDvW,EAAYqX,SAAWd,EACvB,MACJ,IAAK,WACDvW,EAAYsX,OAASf,EACrB,MACJ,IAAK,YACDvW,EAAYuX,cAAgBhB,EAC5B,MACJ,IAAK,SACDvW,EAAYwX,KAAOjB,EACnB,MACJ,IAAK,gBACDvW,EAAYyX,cAAgBlB,EAC5B,MACJ,IAAK,4BACDvW,EAAY0X,8BAAgCnB,EAC5C,MACJ,IAAK,iBACDvW,EAAY2X,2BAA6BpB,EACzC,MACJ,IAAK,YACDvW,EAAY4X,UAAYrB,EACxB,MACJ,IAAK,kBACDvW,EAAY6X,gBAAkBtB,EAC9B,MACJ,IAAK,mBACDvW,EAAY8X,OAASvB,EACrB,MACJ,IAAK,gBACDvW,EAAY6L,YAAc0K,EAC1B,MACJ,IAAK,uBACDvW,EAAYkM,eAAiBqK,EAC7B,MACJ,IAAK,2BACDvW,EAAYmM,mBAAqBoK,EACjC,MACJ,IAAK,UACDvW,EAAY1W,MAAQitB,EACpB,MACJ,IAAK,cACDvW,EAAY9W,UAAYqtB,EACxB,MACJ,IAAK,mBACDvW,EAAYiP,eAAiBsH,EAC7B,MACJ,IAAK,eACDvW,EAAYsK,aAAeiM,EAC3B,MACJ,IAAK,aACDvW,EAAY5W,SAAWmtB,EACvB,MACJ,IAAK,mBACDvW,EAAYmP,eAAiBoH,EAC7B,MACJ,IAAK,cACDvW,EAAYoP,UAAYmH,EACxB,MACJ,IAAK,eACDvW,EAAYqP,WAAakH,EACzB,MACJ,IAAK,oBACDvW,EAAYsP,gBAAkBiH,EAC9B,MACJ,IAAK,aACDvW,EAAYwP,SAAW+G,EACvB,MACJ,IAAK,gBACDvW,EAAYyP,YAAc8G,EAC1B,MACJ,IAAK,mBACDvW,EAAY2P,eAAiB4G,EAC7B,MACJ,IAAK,eACDvW,EAAY4P,WAAa2G,EAMjC9rC,EAAKU,SAAS,CACV60B,YAAauW,GAErB,KAAC3rC,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,aAEmB,SAACk9B,EAAmBgB,EAAiC58B,GACrE,GAAI47B,EAAQryB,OAAS,EAAG,CACpB,IAEM2b,EADF0X,EAAc9O,MAAMrgB,OAAOmuB,EAAQ,KAAK1N,aAAazgB,OAAOmuB,EAAQ,KAAKrY,OAE9Dva,MAAK,SAAAyc,GAAC,OAAIA,EAAEpmB,KAAKjC,GAAGkQ,MAAM,KAAK,KAAOsuB,EAAQ,IAAMnW,EAAEpmB,KAAKjC,GAAGkQ,MAAM,KAAK,KAAOsuB,EAAQ,EAAE,IACrG1W,IACAA,EAAMllB,MAAQA,EAEtB,KACK,CACD,IAAMklB,EACF0X,EAAc9O,MAAMrgB,OAAOmuB,EAAQ,KAAK1N,aAAazgB,OAAOmuB,EAAQ,KAAKrY,OAAO9V,OAAOmuB,EAAQ,KAC/FA,IACA1W,EAAMllB,MAAQA,EAEtB,CACA,OAAO48B,CACX,KAEA/9B,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,oBAC2B,SAACo/B,GACxB,IAAAkO,EAGIttC,EAAKkB,MAFLq0B,EAAW+X,EAAX/X,YACAhH,EAAU+e,EAAV/e,WAGAtlB,GAAU,EAMd,GAJIslB,QAA0DxpB,IAA5CwpB,EAAWqX,eAAegB,gBACxCrY,EAAWqX,eAAegB,cAAgB,GAG1CrY,QAA0DxpB,IAA5CwpB,EAAWqX,eAAegB,eAA+BrY,EAAWqX,eAAegB,eAAiB,EAAG,CACrH,IAGI2G,EAIAC,EAIAC,EAIAC,EAIAC,EAIAC,EAIAC,EAIAC,EAIAC,EAIAC,EAIAC,EA3CAC,EAAuC,GACrCC,EAAiC,CAAC,EAmDxC,IAhDIZ,EAAoBnO,EAAYva,OAAOva,MAAK,SAAAyc,GAAC,MAAkB,mBAAdA,EAAEpmB,KAAKjC,EAAuB,OAC/EyvC,EAASC,aAAeb,EAAkBjsC,QAG1CksC,EAAgBpO,EAAYva,OAAOva,MAAK,SAAAyc,GAAC,MAAkB,eAAdA,EAAEpmB,KAAKjC,EAAmB,OACvEyvC,EAASA,SAAWX,EAAclsC,QAGlCmsC,EAAoBrO,EAAYva,OAAOva,MAAK,SAAAyc,GAAC,MAAkB,mBAAdA,EAAEpmB,KAAKjC,EAAuB,OAC/EyvC,EAAS7d,SAAWmd,EAAkBnsC,QAGtCosC,EAA4BtO,EAAYva,OAAOva,MAAK,SAAAyc,GAAC,MAAkB,2BAAdA,EAAEpmB,KAAKjC,EAA+B,OAC/FyvC,EAASE,aAAeX,EAA0BpsC,QAGlDqsC,EAA4BvO,EAAYva,OAAOva,MAAK,SAAAyc,GAAC,MAAkB,2BAAdA,EAAEpmB,KAAKjC,EAA+B,OAC/FyvC,EAASG,aAAeX,EAA0BrsC,QAGlDssC,EAAqBxO,EAAYva,OAAOva,MAAK,SAAAyc,GAAC,MAAkB,oBAAdA,EAAEpmB,KAAKjC,EAAwB,OACjFyvC,EAASI,cAAgBX,EAAmBtsC,QAG5CusC,EAAqBzO,EAAYva,OAAOva,MAAK,SAAAyc,GAAC,MAAkB,oBAAdA,EAAEpmB,KAAKjC,EAAwB,OACjFyvC,EAASK,oBAAsB7pC,QAAQkpC,EAAmBvsC,SAG1DwsC,EAAsB1O,EAAYva,OAAOva,MAAK,SAAAyc,GAAC,MAAkB,qBAAdA,EAAEpmB,KAAKjC,EAAyB,OACnFyvC,EAASM,oBAAsB9pC,QAAQmpC,EAAoBxsC,SAG3DysC,EAAsB3O,EAAYva,OAAOva,MAAK,SAAAyc,GAAC,MAAkB,qBAAdA,EAAEpmB,KAAKjC,EAAyB,OACnFyvC,EAASO,oBAAsB/pC,QAAQopC,EAAoBzsC,SAG3D0sC,EAAsB5O,EAAYva,OAAOva,MAAK,SAAAyc,GAAC,MAAkB,qBAAdA,EAAEpmB,KAAKjC,EAAyB,OACnFyvC,EAASQ,oBAAsBhqC,QAAQqpC,EAAoB1sC,SAG3D2sC,EAAiC7O,EAAYva,OAAOva,MAAK,SAAAyc,GAAC,MAAkB,gCAAdA,EAAEpmB,KAAKjC,EAAoC,OACzGyvC,EAASS,0BAA4BjqC,QAAQspC,EAA+B3sC,QAKhF6sC,EAASC,aAAeD,EAASC,cAAgB,EACjDD,EAASA,SAAWA,EAASA,UAAY,IACT,IAA1BA,EAASC,cAA4C,IAAtBD,EAASA,UACf,IAA1BA,EAASC,cAA4C,IAAtBD,EAASA,UACzC,OAAO,EAGXD,EAAeluC,EAAK6uC,+BAA+BV,EAAUD,GAE7D,IAsBCY,EAtBG/lB,EAAY,EAAEgmB,EAAA,WAEd,IAAIC,EAAqC,CAAC,EAI1C,GAHAA,EAAehvC,EAAKivC,mCAAmC7P,EAAarW,EAAGimB,GAGnEd,EAAa5jC,MAAK,SAAAyc,GAAC,OAAIA,EAAEqnB,eAAiBY,EAAaZ,cACvDrnB,EAAEonB,WAAaa,EAAab,QAAQ,IAQjC,OANC/O,EAAYva,OAAOie,QAAO,SAAA/b,GAAC,MAC2B,oBAAlDA,EAAEpmB,KAAKjC,GAAG6oB,OAAO,EAAG,KACpBR,EAAEpmB,KAAKmqB,UAAY/B,CAAC,IACjB9F,SAAQ,SAAAuD,GACfA,EAAM7lB,KAAKyI,MAAQg2B,EAAY0I,sBAC/BthB,EAAM7lB,KAAKsB,OAAQ,CACvB,IAAG,CAAAitC,GACI,GAGXhB,EAAeluC,EAAK6uC,+BAA+BG,EAAcd,GAEjEnlB,GACJ,EArBA,MAAA+lB,EAAAC,IAAA,OAAAD,EAAAI,QAqBSnmB,EAAIwF,EAAWqX,eAAegB,eAEnCsH,EAAarjC,OAAS,EAEtBqjC,EAAajrB,SAAQ,SAAAkrB,IACbA,EAAS7d,UAAY6d,EAASE,cAC9BF,EAASG,cAAgBH,EAASI,eAClCJ,EAASK,qBAAuBL,EAASM,qBACzCN,EAASO,qBAAuBP,EAASQ,qBACzCR,EAASS,6BACsB,OAA1BT,EAASC,cAAmD,IAA1BD,EAASC,cACrB,OAAtBD,EAASA,UAA2C,IAAtBA,EAASA,WACxCllC,GAAU,GAGtB,KAIAm2B,EAAYva,OAAO5B,SAAQ,SAAAuD,GACvBA,EAAM7lB,KAAKsB,OAAQ,EACnBukB,EAAM7lB,KAAKyE,WAAa,EAC5B,IACA6D,GAAU,GAEVA,IACAssB,EAAY4Z,WAAajB,GAG7BluC,EAAKU,SAAS,CACV60B,YAAAA,GAER,CACA,OAAOtsB,CAEX,KAAC9I,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,iBAEuB,SAACo/B,GACrB,IAAAgQ,EAGIpvC,EAAKkB,MAFLq0B,EAAW6Z,EAAX7Z,YACAhH,EAAU6gB,EAAV7gB,WAOJ,GAJIA,QAA4DxpB,IAA9CwpB,EAAWqX,eAAea,kBACxClY,EAAWqX,eAAea,gBAAkB,GAG5ClY,QAA4DxpB,IAA9CwpB,EAAWqX,eAAea,iBAAiClY,EAAWqX,eAAea,iBAAmB,EAAG,CACzH,IAAM4I,EAAqC,GACvCnsB,EAA+B,CAAEosB,WAAW,GAEhDpsB,EAAUljB,EAAKuvC,sBAAsBnQ,EAAalc,GAG7B,KAFrBA,EAAUljB,EAAKwvC,4BAA4BtsB,IAE/B3jB,MAAgC,KAAlB2jB,EAAQusB,OACb,KAAjBvsB,EAAQG,MAAmC,IAApBH,EAAQY,SAC/BZ,EAAQosB,WAAY,EACpBD,EAAYnrC,KAAKgf,KAEZA,EAAQwsB,OAASxsB,EAAQysB,OAASzsB,EAAQ0sB,OAC/C1sB,EAAQG,MAAQH,EAAQ2sB,eAAiB3sB,EAAQ4sB,YACjD5sB,EAAQU,SACRyrB,EAAYnrC,KAAKgf,GAGrB,IA8BC6sB,EA9BGhnB,EAAY,EAAEinB,EAAA,WAEd,IAAI9sB,EAA+B,CAAEosB,WAAW,GAIhD,GAHApsB,EAAUljB,EAAKiwC,gCAAgC7Q,EAAarW,EAAG7F,GAG3DmsB,EAAY/kC,MAAK,SAAAyc,GAAC,OAAIA,EAAExnB,OAAS2jB,EAAQ3jB,IAAI,IAQ1C,OANC6/B,EAAYva,OAAOie,QAAO,SAAA/b,GAAC,MAC2B,oBAAlDA,EAAEpmB,KAAKjC,GAAG6oB,OAAO,EAAG,KACpBR,EAAEpmB,KAAKmqB,UAAY/B,CAAC,IACjB9F,SAAQ,SAAAuD,GACfA,EAAM7lB,KAAKyI,MAAQg2B,EAAY0I,sBAC/BthB,EAAM7lB,KAAKsB,OAAQ,CACvB,IAAG,CAAAitC,GACI,GAKU,KAFrBhsB,EAAUljB,EAAKwvC,4BAA4BtsB,IAE/B3jB,MAAgC,KAAlB2jB,EAAQusB,OACb,KAAjBvsB,EAAQG,MAAmC,IAApBH,EAAQY,QAC/BurB,EAAYnrC,KAAKgf,GAEM,KAAlBA,EAAQwsB,OAAkC,KAAlBxsB,EAAQysB,OAAkC,KAAlBzsB,EAAQ0sB,OAC5C,KAAjB1sB,EAAQG,MAAyC,IAA1BH,EAAQ2sB,eAA8C,KAAvB3sB,EAAQ4sB,YAC3C,IAAnB5sB,EAAQU,QACRyrB,EAAYnrC,KAAKgf,GAErB6F,GACJ,EA7BA,MAAAgnB,EAAAC,IAAA,OAAAD,EAAAb,QA6BSnmB,EAAIwF,EAAWqX,eAAea,iBAQvC,OANAlR,EAAYrT,UAAYmtB,EAExBrvC,EAAKU,SAAS,CACV60B,YAAAA,KAGG,CACX,CAEI,OAAO,CAEf,KAACp1B,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,mBAEyB,SAACo/B,GACvB,IAAA8Q,EAGIlwC,EAAKkB,MAFLq0B,EAAW2a,EAAX3a,YACAhH,EAAU2hB,EAAV3hB,WAGAtlB,GAAmB,EAMvB,GAJIslB,QAA2DxpB,IAA7CwpB,EAAWqX,eAAec,iBACxCnY,EAAWqX,eAAec,eAAiB,GAG3CnY,QAA2DxpB,IAA7CwpB,EAAWqX,eAAec,gBAAgCnY,EAAWqX,eAAec,gBAAkB,EAAG,CACvH,IAAMyJ,EAAyC,GAC3CtE,EAAmC,CACnCuE,WAAY,CAAC,EACblZ,YAAa,CACT7T,KAAM,GACN2R,YAAa,GACbjB,QAAS,GACTe,SAAU,GACVp2B,GAAI,EACJH,KAAM,GACNw2B,UAAW,KAsBnB,GAlBA8W,EAAY7rC,EAAKqwC,wBAAwBjR,EAAayM,KACtDA,EAAY7rC,EAAKswC,8BAA8BzE,IAEjC3U,YAAY7T,MAAQwoB,EAAUuE,WAAWG,WAAa1E,EAAUuE,WAAWI,SACrF3E,EAAU3U,YAAYnD,SAAW8X,EAAU3U,YAAY34B,MAAQstC,EAAU3U,YAAYpC,UAGhF+W,EAAUuE,YACfvE,EAAUuE,WAAWK,cAAgB5E,EAAUuE,WAAWK,aAAe,GACzE5E,EAAUuE,WAAWM,UAAY7E,EAAUuE,WAAWM,SAAW,GACjE7E,EAAUuE,WAAWO,UAAY9E,EAAUuE,WAAWO,SAAW,GACjE9E,EAAU3U,YAAYx4B,IAAMmtC,EAAU3U,YAAYx4B,GAAK,GACvDmtC,EAAU3U,YAAY5T,iBAAmBuoB,EAAU3U,YAAY5T,gBAAkB,GACjFuoB,EAAU3U,YAAY3T,WAAasoB,EAAU3U,YAAY3T,UAAY,IARrE4sB,EAAcjsC,KAAK2nC,GAanBA,EAAUuE,WAAWG,WAAa1E,EAAUuE,WAAWI,SACnDjiB,IAAesd,EAAUuE,WAAWG,WAAa1E,EAAUuE,WAAWI,SAAU,CAChF,GAAIxP,IAAO6K,EAAUuE,WAAWG,WAAW1oB,OAAO,cAAgBmZ,IAAO6K,EAAUuE,WAAWI,SAAS3oB,OAAO,cAQ1G,OANIuX,EAAYva,OAAOie,QAAO,SAAA/b,GAAC,MACT,qBAAdA,EAAEpmB,KAAKjC,EAAyB,IAC7BukB,SAAQ,SAAAuD,GACfA,EAAM7lB,KAAKyI,MAAQg2B,EAAYiF,qBAC/B7d,EAAM7lB,KAAKsB,OAAQ,CACvB,KACO,EAEN,GAAI++B,IAAO6K,EAAUuE,WAAWG,WAAW1oB,OAAO,cACnDmZ,IAAO6K,EAAUuE,WAAWI,SAAS3oB,OAAO,cAExCuX,EAAYva,OAAOie,QAAO,SAAA/b,GAAC,MACT,qBAAdA,EAAEpmB,KAAKjC,EAAyB,IAC7BukB,SAAQ,SAAAuD,GACfA,EAAM7lB,KAAKyI,MAAQ,GACnBod,EAAM7lB,KAAKsB,OAAQ,CACvB,QAEC,IAAI4pC,EAAUuE,YAAcvE,EAAUuE,WAAWG,WAAa1E,EAAUuE,WAAWI,UACnF3E,EAAUuE,WAAWG,UAAYvP,IAAOzS,EAAW2T,aAAara,OAAO,eACpEgkB,EAAUuE,WAAWI,QAAUxP,IAAOzS,EAAWqiB,aAAa/oB,OAAO,eAUzE,OARIuX,EAAYva,OAAOie,QAAO,SAAA/b,GAAC,MACT,qBAAdA,EAAEpmB,KAAKjC,EAAyB,IAC7BukB,SAAQ,SAAAuD,GACfA,EAAM7lB,KAAKyI,MAAQg2B,EAAY6C,kBACzBjB,IAAOzS,EAAW2T,aAAara,OAAO,QAAU,MAChDmZ,IAAOzS,EAAWqiB,aAAa/oB,OAAO,QAC5CrB,EAAM7lB,KAAKsB,OAAQ,CACvB,KACO,EAEF4pC,EAAUuE,YAAcvE,EAAUuE,WAAWG,WAAa1E,EAAUuE,WAAWI,UACnF3E,EAAUuE,WAAWG,UAAYvP,IAAOzS,EAAW2T,aAAara,OAAO,eACpEgkB,EAAUuE,WAAWI,QAAUxP,IAAOzS,EAAWqiB,aAAa/oB,OAAO,gBAErEuX,EAAYva,OAAOie,QAAO,SAAA/b,GAAC,MACT,qBAAdA,EAAEpmB,KAAKjC,EAAyB,IAC7BukB,SAAQ,SAAAuD,GACfA,EAAM7lB,KAAKyI,MAAQ,GACnBod,EAAM7lB,KAAKsB,OAAQ,CACvB,GACJ,CACJ,CAGJ,IAyHC4uC,EAzHG9nB,EAAY,EAAE+nB,EAAA,WAEd,IAAIjF,EAAmC,CACnCuE,WAAY,CAAC,EACblZ,YAAa,CACT7T,KAAM,GACN2R,YAAa,GACbjB,QAAS,GACTe,SAAU,GACVp2B,GAAI,EACJH,KAAM,GACNw2B,UAAW,KAQnB,GAJA8W,EAAY7rC,EAAK+wC,kCAAkC3R,EAAarW,EAAG8iB,IACnEA,EAAY7rC,EAAKswC,8BAA8BzE,IAGjCuE,WAAWG,WAAa1E,EAAUuE,WAAWI,SACnDjiB,IAAesd,EAAUuE,WAAWG,WAAa1E,EAAUuE,WAAWI,SAAU,CAChF,GAAIxP,IAAO6K,EAAUuE,WAAWG,WAAW1oB,OAAO,cAC9CmZ,IAAO6K,EAAUuE,WAAWI,SAAS3oB,OAAO,cAQzC,OANCuX,EAAYva,OAAOie,QAAO,SAAA/b,GAAC,MAC4B,qBAAnDA,EAAEpmB,KAAKjC,GAAG6oB,OAAO,EAAG,KACpBR,EAAEpmB,KAAKmqB,UAAY/B,CAAC,IACjB9F,SAAQ,SAAAuD,GACfA,EAAM7lB,KAAKyI,MAAQg2B,EAAYiF,qBAC/B7d,EAAM7lB,KAAKsB,OAAQ,CACvB,IAAG,CAAAitC,GACI,GAEN,GAAIlO,IAAO6K,EAAUuE,WAAWG,WAAW1oB,OAAO,cACnDmZ,IAAO6K,EAAUuE,WAAWI,SAAS3oB,OAAO,cAExCuX,EAAYva,OAAOie,QAAO,SAAA/b,GAAC,MAC4B,qBAAnDA,EAAEpmB,KAAKjC,GAAG6oB,OAAO,EAAG,KACpBR,EAAEpmB,KAAKmqB,UAAY/B,CAAC,IACjB9F,SAAQ,SAAAuD,GACfA,EAAM7lB,KAAKyI,MAAQ,GACnBod,EAAM7lB,KAAKsB,OAAQ,CACvB,QAEC,IAAI4pC,EAAUuE,YAAcvE,EAAUuE,WAAWG,WAAa1E,EAAUuE,WAAWI,UACnF3E,EAAUuE,WAAWG,UAAYvP,IAAOzS,EAAW2T,aAAara,OAAO,eACpEgkB,EAAUuE,WAAWI,QAAUxP,IAAOzS,EAAWqiB,aAAa/oB,OAAO,eAUtE,OARCuX,EAAYva,OAAOie,QAAO,SAAA/b,GAAC,MAC4B,qBAAnDA,EAAEpmB,KAAKjC,GAAG6oB,OAAO,EAAG,KACpBR,EAAEpmB,KAAKmqB,UAAY/B,CAAC,IACjB9F,SAAQ,SAAAuD,GACfA,EAAM7lB,KAAKyI,MAAQg2B,EAAY6C,kBACzBjB,IAAOzS,EAAW2T,aAAara,OAAO,QAAU,MAChDmZ,IAAOzS,EAAWqiB,aAAa/oB,OAAO,QAC5CrB,EAAM7lB,KAAKsB,OAAQ,CACvB,IAAG,CAAAitC,GACI,GAEFrD,EAAUuE,YAAcvE,EAAUuE,WAAWG,WAAa1E,EAAUuE,WAAWI,UACnF3E,EAAUuE,WAAWG,UAAYvP,IAAOzS,EAAW2T,aAAara,OAAO,eACpEgkB,EAAUuE,WAAWI,QAAUxP,IAAOzS,EAAWqiB,aAAa/oB,OAAO,gBAErEuX,EAAYva,OAAOie,QAAO,SAAA/b,GAAC,MAC4B,qBAAnDA,EAAEpmB,KAAKjC,GAAG6oB,OAAO,EAAG,KACpBR,EAAEpmB,KAAKmqB,UAAY/B,CAAC,IACjB9F,SAAQ,SAAAuD,GACfA,EAAM7lB,KAAKyI,MAAQ,GACnBod,EAAM7lB,KAAKsB,OAAQ,CACvB,GACJ,CACJ,CAGJ,GAAI4pC,EAAUuE,YAAcvE,EAAUuE,WAAWO,UAAY9E,EAAUuE,WAAWK,cAC9E5E,EAAUuE,WAAWM,UACpB7E,EAAUuE,WAAWO,SAAW,GAAK9E,EAAUuE,WAAWK,aAAe,GACtE5E,EAAUuE,WAAWM,SAAW,GACpC,GAAIP,EAAc7lC,MAAK,SAAAyc,GAAC,OAAIA,EAAEqpB,WAAWO,WAAa9E,EAAUuE,WAAWO,UACvE5pB,EAAEqpB,WAAWK,eAAiB5E,EAAUuE,WAAWK,cACnD1pB,EAAEqpB,WAAWM,WAAa7E,EAAUuE,WAAWM,QAAQ,IAQpD,OANCtR,EAAYva,OAAOie,QAAO,SAAA/b,GAAC,MAC4B,qBAAnDA,EAAEpmB,KAAKjC,GAAG6oB,OAAO,EAAG,KACpBR,EAAEpmB,KAAKmqB,UAAY/B,CAAC,IACjB9F,SAAQ,SAAAuD,GACfA,EAAM7lB,KAAKyI,MAAQg2B,EAAY0I,sBAC/BthB,EAAM7lB,KAAKsB,OAAQ,CACvB,IAAG,CAAAitC,GACI,QAIX,GAAIrD,EAAU3U,YAAYnD,SAClBoc,EAAc7lC,MAAK,SAAAyc,GAAC,OAAIA,EAAEmQ,YAAYnD,UAAY8X,EAAU3U,YAAYnD,OAAO,IAO5E,OALCqL,EAAYva,OAAOie,QAAO,SAAA/b,GAAC,MAC4B,qBAAnDA,EAAEpmB,KAAKjC,GAAG6oB,OAAO,EAAG,GAAiD,IAClEtE,SAAQ,SAAAuD,GACfA,EAAM7lB,KAAKyI,MAAQg2B,EAAY0I,sBAC/BthB,EAAM7lB,KAAKsB,OAAQ,CACvB,IAAG,CAAAitC,GACI,IAKfrD,EAAU3U,YAAY7T,MAAQwoB,EAAUuE,WAAWG,WAAa1E,EAAUuE,WAAWI,SACrF3E,EAAU3U,YAAYnD,SAAW8X,EAAU3U,YAAY34B,MAAQstC,EAAU3U,YAAYpC,UAGhF+W,EAAUuE,YACfvE,EAAUuE,WAAWK,cAAgB5E,EAAUuE,WAAWK,aAAe,GACzE5E,EAAUuE,WAAWM,UAAY7E,EAAUuE,WAAWM,SAAW,GACjE7E,EAAUuE,WAAWO,UAAY9E,EAAUuE,WAAWO,SAAW,GACjE9E,EAAU3U,YAAYx4B,IAAMmtC,EAAU3U,YAAYx4B,GAAK,GACvDmtC,EAAU3U,YAAY5T,iBAAmBuoB,EAAU3U,YAAY5T,gBAAkB,GACjFuoB,EAAU3U,YAAY3T,WAAasoB,EAAU3U,YAAY3T,UAAY,IARrE4sB,EAAcjsC,KAAK2nC,GAWvB9iB,GACJ,EAxHA,MAAA8nB,EAAAC,IAAA,OAAAD,EAAA3B,QAwHSnmB,EAAIwF,EAAWqX,eAAec,gBAGnCtH,EAAY1X,WAERyoB,EAActlC,OAAS,GACvB5B,GAAU,EAENm2B,EAAYva,OAAOie,QAAO,SAAA/b,GAAC,MACT,qBAAdA,EAAEpmB,KAAKjC,EAAyB,IAC7BukB,SAAQ,SAAAuD,GACfA,EAAM7lB,KAAKyI,MAAQ,GACnBod,EAAM7lB,KAAKsB,OAAQ,CACvB,MAIAgH,GAAU,EAENm2B,EAAYva,OAAOie,QAAO,SAAA/b,GAAC,MACT,qBAAdA,EAAEpmB,KAAKjC,EAAyB,IAC7BukB,SAAQ,SAAAuD,GACfA,EAAM7lB,KAAKyI,MAAQg2B,EAAYoC,qBAC/Bhb,EAAM7lB,KAAKsB,OAAQ,CACvB,KAMyB,IAAzBkuC,EAActlC,SACdu0B,EAAYva,OAAO5B,SAAQ,SAAAuD,GACvBA,EAAM7lB,KAAKsB,OAAQ,EACnBukB,EAAM7lB,KAAKyE,WAAa,EAC5B,IACA6D,GAAU,GAGdA,IACAssB,EAAYsW,UAAYsE,GAE5BnwC,EAAKU,SAAS,CACV60B,YAAaA,GAErB,CACA,OAAOtsB,CACX,KAAC9I,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,2BAEiC,SAACo/B,GAC/B,IAAA4R,EAGIhxC,EAAKkB,MAFLq0B,EAAWyb,EAAXzb,YACAhH,EAAUyiB,EAAVziB,WAGAtlB,GAAU,EAMd,GAJIslB,QAAmExpB,IAArDwpB,EAAWqX,eAAeY,yBACxCjY,EAAWqX,eAAeY,uBAAyB,GAGnDjY,QAAmExpB,IAArDwpB,EAAWqX,eAAeY,wBAAwCjY,EAAWqX,eAAeY,wBAA0B,EAAG,CACvI,IAAMyK,EAAgD,GAEhDC,EAA0C,CAAEzyB,UAAW,GAAIE,SAAU,GAAIwyB,YAAa,IACtFC,EAAiBhS,EAAYva,OAAOiC,WAAU,SAAAC,GAAC,MAAkB,yBAAdA,EAAEpmB,KAAKjC,EAA6B,IACzF0yC,GAAkB,IAClBF,EAAUzyB,UAAY2gB,EAAYva,OAAOusB,GAAgB9vC,OAE7D,IAAM+vC,EAAgBjS,EAAYva,OAAOiC,WAAU,SAAAC,GAAC,MAAkB,wBAAdA,EAAEpmB,KAAKjC,EAA4B,IACvF2yC,GAAiB,IACjBH,EAAUvyB,SAAWygB,EAAYva,OAAOwsB,GAAe/vC,OAE3D,IAAMgwC,EAAalS,EAAYva,OAAOiC,WAAU,SAAAC,GAAC,MAAkB,qBAAdA,EAAEpmB,KAAKjC,EAAyB,IACjF4yC,GAAc,IACdJ,EAAUC,YAAc/R,EAAYva,OAAOysB,GAAYhwC,OAE3D,IAAMiwC,EAAcnS,EAAYva,OAAOiC,WAAU,SAAAC,GAAC,MAAkB,sBAAdA,EAAEpmB,KAAKjC,EAA0B,IACnF6yC,GAAe,IACfL,EAAUM,SAAWpS,EAAYva,OAAO0sB,GAAajwC,OAEzD,IAAMmwC,EAAkBrS,EAAYva,OAAOiC,WAAU,SAAAC,GAAC,MAAkB,0BAAdA,EAAEpmB,KAAKjC,EAA8B,IAC3F+yC,GAAmB,IACnBP,EAAUtM,WAAaxF,EAAYva,OAAO4sB,GAAiBnwC,OAE/D,IAAMowC,EAAsBtS,EAAYva,OAAOiC,WAAU,SAAAC,GAAC,MAAkB,8BAAdA,EAAEpmB,KAAKjC,EAAkC,IACnGgzC,GAAuB,IACvBR,EAAUxM,eAAiBtF,EAAYva,OAAO6sB,GAAqBpwC,OAEvE,IAAMqwC,EAAoBvS,EAAYva,OAAOiC,WAAU,SAAAC,GAAC,MAAkB,4BAAdA,EAAEpmB,KAAKjC,EAAgC,IAC/FizC,GAAqB,IACrBT,EAAUU,eAAiBxS,EAAYva,OAAO8sB,GAAmBrwC,OAErE,IAAMirC,EAASnN,EAAYva,OAAOiC,WAAU,SAAAC,GAAC,MAAkB,sBAAdA,EAAEpmB,KAAKjC,EAA0B,IAUlF,GATI6tC,GAAU,IACV2E,EAAUW,SAAWzS,EAAYva,OAAO0nB,GAAQjrC,OAKpD4vC,EAAUzyB,UAAoC,OAAxByyB,EAAUzyB,UAAqB,GAAKyyB,EAAUzyB,UACpEyyB,EAAUvyB,SAAkC,OAAvBuyB,EAAUvyB,SAAoB,GAAKuyB,EAAUvyB,SAClEuyB,EAAUC,YAAwC,OAA1BD,EAAUC,YAAuB,GAAKD,EAAUC,cAC1C,KAAxBD,EAAUzyB,WAA2C,KAAvByyB,EAAUvyB,UAA6C,KAA1BuyB,EAAUC,aAC9C,KAAxBD,EAAUzyB,WAA2C,KAAvByyB,EAAUvyB,UAA6C,KAA1BuyB,EAAUC,aACtE,OAAO,GAGiB,OAAxBD,EAAUzyB,WAA8C,KAAxByyB,EAAUzyB,WACnB,OAAvByyB,EAAUvyB,UAA4C,KAAvBuyB,EAAUvyB,UACf,OAA1BuyB,EAAUC,aAAkD,KAA1BD,EAAUC,aAGvCD,EAAUM,UAAYN,EAAUtM,YACrCsM,EAAUxM,gBAAkBwM,EAAUU,gBAAkBV,EAAUW,WAHlEZ,EAAc/sC,KAAKgtC,GAMvB,IAsDCY,EAtDG/oB,EAAY,EAAEgpB,EAAA,WAEd,IAAMb,EAA0C,CAAEzyB,UAAW,GAAIE,SAAU,GAAIwyB,YAAa,IA8B5F,GA5BwB/R,EAAYva,OAAOie,QAAO,SAAA/b,GAAC,OAAIA,EAAEpmB,KAAKmqB,UAAY/B,CAAC,IAC3D9F,SAAQ,SAAAuD,GAC2C,yBAA3DA,EAAM7lB,KAAKjC,GAAG6oB,OAAO,EAAG,MACxB2pB,EAAUzyB,UAAY+H,EAAMllB,OAE8B,wBAA1DklB,EAAM7lB,KAAKjC,GAAG6oB,OAAO,EAAG,MACxB2pB,EAAUvyB,SAAW6H,EAAMllB,OAE4B,qBAAvDklB,EAAM7lB,KAAKjC,GAAG6oB,OAAO,EAAG,MACxB2pB,EAAUC,YAAc3qB,EAAMllB,OAE0B,sBAAxDklB,EAAM7lB,KAAKjC,GAAG6oB,OAAO,EAAG,MACxB2pB,EAAUM,SAAWhrB,EAAMllB,OAEiC,0BAA5DklB,EAAM7lB,KAAKjC,GAAG6oB,OAAO,EAAG,MACxB2pB,EAAUtM,WAAape,EAAMllB,OAEmC,8BAAhEklB,EAAM7lB,KAAKjC,GAAG6oB,OAAO,EAAG,MACxB2pB,EAAUxM,eAAiBle,EAAMllB,OAE6B,4BAA9DklB,EAAM7lB,KAAKjC,GAAG6oB,OAAO,EAAG,MACxB2pB,EAAUU,eAAiBprB,EAAMllB,OAEuB,sBAAxDklB,EAAM7lB,KAAKjC,GAAG6oB,OAAO,EAAG,MACxB2pB,EAAUW,SAAWrrB,EAAMllB,MAEnC,IAEI2vC,EAAc3mC,MAAK,SAAAyc,GAAC,OAAIA,EAAEtI,YAAcyyB,EAAUzyB,WAClDsI,EAAEpI,WAAauyB,EAAUvyB,UAAYoI,EAAE6qB,iBAAmBV,EAAUU,cAAc,IAQ/E,OANCxS,EAAYva,OAAOie,QAAO,SAAA/b,GAAC,MAC6B,sBAApDA,EAAEpmB,KAAKjC,GAAG6oB,OAAO,EAAG,KACpBR,EAAEpmB,KAAKmqB,UAAY/B,CAAC,IACjB9F,SAAQ,SAAAuD,GACfA,EAAM7lB,KAAKyI,MAAQg2B,EAAY0I,sBAC/BthB,EAAM7lB,KAAKsB,OAAQ,CACvB,IAAG,CAAAitC,GACI,IAEiB,OAAxBgC,EAAUzyB,WAA8C,KAAxByyB,EAAUzyB,WACnB,OAAvByyB,EAAUvyB,UAA4C,KAAvBuyB,EAAUvyB,UACf,OAA1BuyB,EAAUC,aAAkD,KAA1BD,EAAUC,aAGvCD,EAAUM,UAAYN,EAAUtM,YACrCsM,EAAUxM,gBAAkBwM,EAAUU,gBAAkBV,EAAUW,WAHlEZ,EAAc/sC,KAAKgtC,GAMvBnoB,GACJ,EArDA,MAAA+oB,EAAAC,IAAA,OAAAD,EAAA5C,QAqDSnmB,EAAIwF,EAAWqX,eAAeY,wBAEnCpH,EAAY1X,WAERupB,EAAcpmC,OAAS,GACvB5B,GAAU,EAENm2B,EAAYva,OAAOie,QAAO,SAAA/b,GAAC,MACT,sBAAdA,EAAEpmB,KAAKjC,EAA0B,IAC9BukB,SAAQ,SAAAuD,GACfA,EAAM7lB,KAAKyI,MAAQ,GACnBod,EAAM7lB,KAAKsB,OAAQ,CACvB,MAIAgH,GAAU,EAENm2B,EAAYva,OAAOie,QAAO,SAAA/b,GAAC,MACT,sBAAdA,EAAEpmB,KAAKjC,EAA0B,IAC9BukB,SAAQ,SAAAuD,GACfA,EAAM7lB,KAAKyI,MAAQg2B,EAAYoC,qBAC/Bhb,EAAM7lB,KAAKsB,OAAQ,CACvB,KAMAgvC,EAAcpmC,OAAS,EAEvBomC,EAAchuB,SAAQ,SAAAiuB,IACdA,EAAUM,UAAYN,EAAUtM,YAChCsM,EAAUxM,gBAAkBwM,EAAUU,gBAAkBV,EAAUW,YACrC,OAAxBX,EAAUzyB,WAA8C,KAAxByyB,EAAUzyB,WACnB,OAAvByyB,EAAUvyB,UAA4C,KAAvBuyB,EAAUvyB,UACf,OAA1BuyB,EAAUC,aAAkD,KAA1BD,EAAUC,cAC7CloC,GAAU,GAGtB,KAIAm2B,EAAYva,OAAO5B,SAAQ,SAAAuD,GACvBA,EAAM7lB,KAAKsB,OAAQ,EACnBukB,EAAM7lB,KAAKyE,WAAa,EAC5B,IACA6D,GAAU,GAGdA,IACAssB,EAAYyc,kBAAoBf,GAEpCjxC,EAAKU,SAAS,CACV60B,YAAaA,GAErB,CACA,OAAOtsB,CACX,KAAC9I,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,oBAE0B,SAACo/B,GACxB,IAAA6S,EAGIjyC,EAAKkB,MAFLq0B,EAAW0c,EAAX1c,YACAhH,EAAU0jB,EAAV1jB,WAGAtlB,GAAU,EAMd,GAJIslB,QAA0DxpB,IAA5CwpB,EAAWqX,eAAeC,gBACxCtX,EAAWqX,eAAeC,cAAgB,GAG1CtX,QAA0DxpB,IAA5CwpB,EAAWqX,eAAeC,eAA+BtX,EAAWqX,eAAeC,eAAiB,EAAG,CACrH,IAAMqM,EAA2C,GACjD,GAAI3jB,EAAY,CACZ,IAAM4jB,EAAqC,CAAE5zC,KAAM,GAAI6zC,WAAY,EAAG7B,eAAWxrC,EAAWyrC,aAASzrC,GAC/FstC,EAAoBjT,EAAYva,OAAOiC,WAAU,SAAAC,GAAC,MAAkB,mBAAdA,EAAEpmB,KAAKjC,EAAuB,IACpF4zC,EAAwBlT,EAAYva,OAAOiC,WAAU,SAAAC,GAAC,MAAkB,uBAAdA,EAAEpmB,KAAKjC,EAA2B,IAC9F2zC,GAAqB,GAAKC,GAAyB,IACnDH,EAAW5zC,KAAO6gC,EAAYva,OAAOwtB,GAAmB/wC,MACxD6wC,EAAWC,WAAahT,EAAYva,OAAOytB,GAAuBhxC,MAElE6wC,EAAW5zC,KAA2B,OAApB4zC,EAAW5zC,KAAgB,GAAK4zC,EAAW5zC,KAC7D4zC,EAAWC,WAAuC,OAA1BD,EAAWC,WAAsB,EAAID,EAAWC,WAEhD,KAApBD,EAAW5zC,OACX6gC,EAAYva,OAAOytB,GAAuB3xC,KAAKsB,OAAQ,EACvDm9B,EAAYva,OAAOytB,GAAuB3xC,KAAKyE,WAAa,IAG5D+sC,EAAWC,WAAa,IACxBhT,EAAYva,OAAOwtB,GAAmB1xC,KAAKsB,OAAQ,EACnDm9B,EAAYva,OAAOwtB,GAAmB1xC,KAAKyE,WAAa,KAGhE,IAAMmtC,EAAyBnT,EAAYva,OAAOiC,WAAU,SAAAC,GAAC,MAAkB,wBAAdA,EAAEpmB,KAAKjC,EAA4B,IAChG6zC,GAA0B,IAC1BJ,EAAW5B,UAAYnR,EAAYva,OAAO0tB,GAAwBjxC,OAEtE,IAAMkxC,EAAuBpT,EAAYva,OAAOiC,WAAU,SAAAC,GAAC,MAAkB,sBAAdA,EAAEpmB,KAAKjC,EAA0B,IAKhG,GAJI8zC,GAAwB,IACxBL,EAAW3B,QAAUpR,EAAYva,OAAO2tB,GAAsBlxC,OAG9D89B,EAAY1X,YAAkC,KAApByqB,EAAW5zC,OACV,IAA1B4zC,EAAWC,iBAA8CrtC,IAA1BotC,EAAWC,YAQ3C,OAPAnpC,GAAU,EAENm2B,EAAYva,OAAOie,QAAO,SAAA/b,GAAC,MAC6B,sBAApDA,EAAEpmB,KAAKjC,GAAG6oB,OAAO,EAAG,GAAmD,IACpEtE,SAAQ,SAAAuD,GACfA,EAAM7lB,KAAKyI,MAAQg2B,EAAYoC,oBACnC,KACO,EAKX,IAHwB,KAApB2Q,EAAW5zC,MAAe4zC,EAAWC,WAAa,IAClDF,EAAehuC,KAAKiuC,IAEpBA,EAAW5B,WAAa4B,EAAW3B,WAC/B2B,EAAW5B,WAAa4B,EAAW3B,UAE/BxP,IAAOmR,EAAW5B,WAAW1oB,OAAO,cAAgBmZ,IAAOmR,EAAW3B,SAAS3oB,OAAO,eACtF5e,GAAU,EAENm2B,EAAYva,OAAOie,QAAO,SAAA/b,GAAC,MAC6B,sBAApDA,EAAEpmB,KAAKjC,GAAG6oB,OAAO,EAAG,GAAmD,IACpEtE,SAAQ,SAAAuD,GACfA,EAAM7lB,KAAKyI,MAAQg2B,EAAYiF,oBACnC,MAEK8N,EAAW5B,UAAYvP,IAAOzS,EAAW2T,aAAara,OAAO,eAClEsqB,EAAW3B,QAAUxP,IAAOzS,EAAWqiB,aAAa/oB,OAAO,iBAC3D5e,GAAU,EAENm2B,EAAYva,OAAOie,QAAO,SAAA/b,GAAC,MAC6B,sBAApDA,EAAEpmB,KAAKjC,GAAG6oB,OAAO,EAAG,GAAmD,IACpEtE,SAAQ,SAAAuD,GACfA,EAAM7lB,KAAKyI,MAAQg2B,EAAY6C,kBACzBjB,IAAOzS,EAAW2T,aAAara,OAAO,QAAU,MAChDmZ,IAAOzS,EAAWqiB,aAAa/oB,OAAO,OAChD,MAGgB,KAApBsqB,EAAW5zC,OACgB,IAA1B4zC,EAAWC,iBAA8CrtC,IAA1BotC,EAAWC,aAQ3C,OAPAnpC,GAAU,EAENm2B,EAAYva,OAAOie,QAAO,SAAA/b,GAAC,MAC6B,sBAApDA,EAAEpmB,KAAKjC,GAAG6oB,OAAO,EAAG,GAAmD,IACpEtE,SAAQ,SAAAuD,GACfA,EAAM7lB,KAAKyI,MAAQg2B,EAAYoC,oBACnC,KACO,EAGf,IAuFCiR,EAvFG1pB,EAAY,EAAE2pB,EAAA,WAEd,IAAMP,EAAqC,CAAE5zC,KAAM,GAAI6zC,WAAY,EAAG7B,eAAWxrC,EAAWyrC,aAASzrC,GAE/F4tC,EAAkBvT,EAAYva,OAAOie,QAAO,SAAA/b,GAAC,OAAIA,EAAEpmB,KAAKmqB,UAAY/B,CAAC,IA4B3E,GA3BA4pB,EAAgB1vB,SAAQ,SAAAuD,GACqC,mBAArDA,EAAM7lB,KAAKjC,GAAG6oB,OAAO,EAAG,MACxB4qB,EAAW5zC,KAAuB,OAAhBioB,EAAMllB,MAAiB,KAAOklB,EAAMllB,OAEG,uBAAzDklB,EAAM7lB,KAAKjC,GAAG6oB,OAAO,EAAG,MACxB4qB,EAAWC,WAA6B,KAAhB5rB,EAAMllB,MAAe,EAAIklB,EAAMllB,OAEG,wBAA1DklB,EAAM7lB,KAAKjC,GAAG6oB,OAAO,EAAG,MACxB4qB,EAAW5B,UAA4B,KAAhB/pB,EAAMllB,MAAe,KAAOklB,EAAMllB,OAED,sBAAxDklB,EAAM7lB,KAAKjC,GAAG6oB,OAAO,EAAG,MACxB4qB,EAAW3B,QAA0B,KAAhBhqB,EAAMllB,MAAe,KAAOklB,EAAMllB,MAE/D,IACAqxC,EAAgB1vB,SAAQ,SAAAuD,GACqC,mBAArDA,EAAM7lB,KAAKjC,GAAG6oB,OAAO,EAAG,KACxB4qB,EAAWC,WAAa,IACxB5rB,EAAM7lB,KAAKsB,OAAQ,EACnBukB,EAAM7lB,KAAKyE,WAAa,IAEiC,uBAAzDohB,EAAM7lB,KAAKjC,GAAG6oB,OAAO,EAAG,KACJ,KAApB4qB,EAAW5zC,OACXioB,EAAM7lB,KAAKsB,OAAQ,EACnBukB,EAAM7lB,KAAKyE,WAAa,GAEhC,IAEI8sC,EAAe5nC,MAAK,SAAAyc,GAAC,OAAIA,EAAExoB,OAAS4zC,EAAW5zC,MAC/CwoB,EAAEqrB,aAAeD,EAAWC,YAC5BrrB,EAAEwpB,YAAc4B,EAAW5B,WAC3BxpB,EAAEypB,UAAY2B,EAAW3B,OAAO,IAO7B,OANHvnC,GAAU,EAENm2B,EAAYva,OAAOie,QAAO,SAAA/b,GAAC,MAC6B,sBAApDA,EAAEpmB,KAAKjC,GAAG6oB,OAAO,EAAG,GAAmD,IACpEtE,SAAQ,SAAAuD,GACfA,EAAM7lB,KAAKyI,MAAQg2B,EAAY0I,qBACnC,IAAG,CAAAoH,GACI,GAGX,GAAIiD,EAAW5B,WAAa4B,EAAW3B,QAAS,CAC5C,GAAwB,KAApB2B,EAAW5zC,OACgB,IAA1B4zC,EAAWC,iBAA8CrtC,IAA1BotC,EAAWC,YAOxC,OANHnpC,GAAU,EAENm2B,EAAYva,OAAOie,QAAO,SAAA/b,GAAC,MAC6B,sBAApDA,EAAEpmB,KAAKjC,GAAG6oB,OAAO,EAAG,GAAmD,IACpEtE,SAAQ,SAAAuD,GACfA,EAAM7lB,KAAKyI,MAAQg2B,EAAYoC,oBACnC,IAAG,CAAA0N,GACI,GAEPiD,EAAW5B,WAAa4B,EAAW3B,UAE/BxP,IAAOmR,EAAW5B,WAAW1oB,OAAO,cAAgBmZ,IAAOmR,EAAW3B,SAAS3oB,OAAO,eACtF5e,GAAU,EAENm2B,EAAYva,OAAOie,QAAO,SAAA/b,GAAC,MAC6B,sBAApDA,EAAEpmB,KAAKjC,GAAG6oB,OAAO,EAAG,GAAmD,IACpEtE,SAAQ,SAAAuD,GACfA,EAAM7lB,KAAKyI,MAAQg2B,EAAYiF,oBACnC,MAEK8N,EAAW5B,UAAYvP,IAAOzS,EAAW2T,aAAara,OAAO,eAClEsqB,EAAW3B,QAAUxP,IAAOzS,EAAWqiB,aAAa/oB,OAAO,iBAC3D5e,GAAU,EAENm2B,EAAYva,OAAOie,QAAO,SAAA/b,GAAC,MAC6B,sBAApDA,EAAEpmB,KAAKjC,GAAG6oB,OAAO,EAAG,GAAmD,IACpEtE,SAAQ,SAAAuD,GACfA,EAAM7lB,KAAKyI,MAAQg2B,EAAY6C,kBACzBjB,IAAOzS,EAAW2T,aAAara,OAAO,QAAU,MAChDmZ,IAAOzS,EAAWqiB,aAAa/oB,OAAO,OAChD,KAGZ,EACwB,KAApBsqB,EAAW5zC,MAAe4zC,EAAWC,WAAa,IAClDF,EAAehuC,KAAKiuC,GAExBppB,GACJ,EAtFA,MAAA0pB,EAAAC,IAAA,OAAAD,EAAAvD,QAsFSnmB,EAAIwF,EAAWqX,eAAeC,eAEnCzG,EAAY1X,WAEkB,IAA1BwqB,EAAernC,SACf5B,GAAU,EAENm2B,EAAYva,OAAOie,QAAO,SAAA/b,GAAC,MAC6B,sBAApDA,EAAEpmB,KAAKjC,GAAG6oB,OAAO,EAAG,GAAmD,IACpEtE,SAAQ,SAAAuD,GACfA,EAAM7lB,KAAKyI,MAAQg2B,EAAYoC,oBACnC,KAMA0Q,EAAernC,OAAS,EAExBqnC,EAAejvB,SAAQ,SAAAkvB,IACfA,EAAW5B,WAAa4B,EAAW3B,WACV,OAApB2B,EAAW5zC,MAAqC,KAApB4zC,EAAW5zC,MACd,IAA1B4zC,EAAWC,aACXnpC,GAAU,GAGtB,KAGAm2B,EAAYva,OAAO5B,SAAQ,SAAAuD,GACvBA,EAAM7lB,KAAKsB,OAAQ,EACnBukB,EAAM7lB,KAAKyE,WAAa,EAC5B,IACA6D,GAAU,GAGdA,IACAssB,EAAYqd,YAAcV,GAE9BlyC,EAAKU,SAAS,CACV60B,YAAaA,GAErB,CACJ,CACA,OAAOtsB,CACX,KAAC9I,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,eAEqB,SAACo/B,GACnB,IACI7J,EACAv1B,EAAKkB,MADLq0B,YAGAtsB,GAAU,EACR4pC,EAAyBzT,EAAYva,OAAO,GAAGvjB,MAErD,GAAIuxC,GAEA,GAAuB,MAAnBA,EACA,GAAItd,EAAYsN,OAGZ,GAAwB,IADpBtN,EAAYsN,MAAMC,QAAO,SAAA/b,GAAC,OAAiC,IAA7BA,EAAEmD,sBAA4B,IACnDrf,OAAc,CACvB5B,GAAU,EACV,IAAM+gC,EAAyB5K,EAAYva,OAAOiC,WAAU,SAAAC,GAAC,MAAkB,kBAAdA,EAAEpmB,KAAKjC,EAAsB,IAC9F0gC,EAAYva,OAAOmlB,GAAgBrpC,KAAKyI,MACpCg2B,EAAYoC,oBACpB,MAEC,CACDv4B,GAAU,EACV,IAAM+gC,EAAyB5K,EAAYva,OAAOiC,WAAU,SAAAC,GAAC,MAAkB,kBAAdA,EAAEpmB,KAAKjC,EAAsB,IAC9F0gC,EAAYva,OAAOmlB,GAAgBrpC,KAAKyI,MACpCg2B,EAAYoC,oBACpB,OAKJ,GAAIjM,EAAYsN,OAAStN,EAAYsN,MAAMh4B,OAAS,EAAG,CACnD5B,GAAU,EACV,IAAM+gC,EAAyB5K,EAAYva,OAAOiC,WAAU,SAAAC,GAAC,MAAkB,kBAAdA,EAAEpmB,KAAKjC,EAAsB,IAC9F0gC,EAAYva,OAAOmlB,GAAgBrpC,KAAKyI,MACpCg2B,EAAYiF,oBACpB,CAOJ,OAJA9O,EAAYsN,WAAQ99B,EACpB/E,EAAK6jC,wBAAwBzE,GAC7Bp/B,EAAKmjC,8BAA8B/D,GAE5Bn2B,CACX,KAAC9I,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,oBAE0B,SAACo/B,GACxB,IAAA0T,EAGI9yC,EAAKkB,MAFLq0B,EAAWud,EAAXvd,YACAhH,EAAUukB,EAAVvkB,WAOJ,GAJIA,QAAuDxpB,IAAzCwpB,EAAWqX,eAAeI,aACxCzX,EAAWqX,eAAeI,WAAa,GAGvCzX,QAAuDxpB,IAAzCwpB,EAAWqX,eAAeI,YAA4BzX,EAAWqX,eAAeI,YAAc,EAAG,CAC/G,IAAM+M,EAAqC,GAErCC,EAA+B,CAAEzzC,KAAM,GAAIgkB,UAAW,EAAG0vB,OAAQ,GAAI3D,WAAW,GAChF4D,EAAiB9T,EAAYva,OAAOiC,WAAU,SAAAC,GAAC,MAAkB,gBAAdA,EAAEpmB,KAAKjC,EAAoB,IAChFw0C,GAAkB,IAClBF,EAAMzzC,KAAO6/B,EAAYva,OAAOquB,GAAgB5xC,OAEpD,IAAM6xC,EAAoB/T,EAAYva,OAAOiC,WAAU,SAAAC,GAAC,MAAkB,mBAAdA,EAAEpmB,KAAKjC,EAAuB,IACtFy0C,GAAqB,IACrBH,EAAMzvB,UAAY6b,EAAYva,OAAOsuB,GAAmB7xC,OAE5D,IAAM8xC,EAAmBhU,EAAYva,OAAOiC,WAAU,SAAAC,GAAC,MAAkB,kBAAdA,EAAEpmB,KAAKjC,EAAsB,IACpF00C,GAAoB,IACpBJ,EAAMC,OAAS7T,EAAYva,OAAOuuB,GAAkB9xC,OAExD,IAAM+xC,EAAoBjU,EAAYva,OAAOiC,WAAU,SAAAC,GAAC,MAAkB,mBAAdA,EAAEpmB,KAAKjC,EAAuB,IACtF20C,GAAqB,IACrBL,EAAM1D,UAA4D,MAAhDlQ,EAAYva,OAAOwuB,GAAmB/xC,OAI5D0xC,EAAMzzC,KAAsB,OAAfyzC,EAAMzzC,KAAgB,GAAKyzC,EAAMzzC,KAC9CyzC,EAAMzvB,UAAgC,IAApByvB,EAAMzvB,UAAkB,EAAIyvB,EAAMzvB,UACpDyvB,EAAMC,OAA0B,OAAjBD,EAAMC,OAAkB,GAAKD,EAAMC,OAClDD,EAAM1D,UAAgC,OAApB0D,EAAM1D,WAA6B0D,EAAM1D,UAGxC,KAAf0D,EAAMzzC,MAAmC,IAApByzC,EAAMzvB,WAAoC,KAAjByvB,EAAMC,QACpDF,EAAU7uC,KAAK8uC,GAGnB,IAyCCM,EAzCGvqB,EAAY,EAAEwqB,EAAA,WAEd,IAAMC,EAAmC,CAAEj0C,KAAM,GAAIgkB,UAAW,EAAG0vB,OAAQ,GAAI3D,WAAW,GAkB1F,GAhBwBlQ,EAAYva,OAAOie,QAAO,SAAA/b,GAAC,OAAIA,EAAEpmB,KAAKmqB,UAAY/B,CAAC,IAC3D9F,SAAQ,SAAAuD,GACkC,gBAAlDA,EAAM7lB,KAAKjC,GAAG6oB,OAAO,EAAG,MACxBisB,EAAUj0C,KAAOinB,EAAMllB,OAE8B,mBAArDklB,EAAM7lB,KAAKjC,GAAG6oB,OAAO,EAAG,MACxBisB,EAAUjwB,UAAYiD,EAAMllB,OAEwB,kBAApDklB,EAAM7lB,KAAKjC,GAAG6oB,OAAO,EAAG,MACxBisB,EAAUP,OAASzsB,EAAMllB,OAE4B,mBAArDklB,EAAM7lB,KAAKjC,GAAG6oB,OAAO,EAAG,MACxBisB,EAAUlE,UAA4B,MAAhB9oB,EAAMllB,MAEpC,IAEIyxC,EAAUzoC,MAAK,SAAAyc,GAAC,OAAIA,EAAExnB,OAASi0C,EAAUj0C,MACzCwnB,EAAExD,YAAciwB,EAAUjwB,WAAawD,EAAEksB,SAAWO,EAAUP,MAAM,IAMjE,OAJC7T,EAAYva,OAAOie,QAAO,SAAA/b,GAAC,MACyB,kBAAhDA,EAAEpmB,KAAKjC,GAAG6oB,OAAO,EAAG,GAA2C,IAC5DtE,SAAQ,SAAAuD,GACfA,EAAM7lB,KAAKyI,MAAQg2B,EAAY0I,qBACnC,IAAG,CAAAoH,GACI,GAGXsE,EAAUj0C,KAA0B,OAAnBi0C,EAAUj0C,KAAgB,GAAKi0C,EAAUj0C,KAC1Di0C,EAAUjwB,UAAoC,IAAxBiwB,EAAUjwB,UAAkB,EAAIiwB,EAAUjwB,UAChEiwB,EAAUP,OAA8B,OAArBO,EAAUP,OAAkB,GAAKO,EAAUP,OAC9DO,EAAUlE,UAAoC,OAAxBkE,EAAUlE,WAA6BkE,EAAUlE,UAGhD,KAAnBkE,EAAUj0C,MAAuC,IAAxBi0C,EAAUjwB,WAAwC,KAArBiwB,EAAUP,QAChEF,EAAU7uC,KAAKsvC,GAEnBzqB,GACJ,EAxCA,MAAAuqB,EAAAC,IAAA,OAAAD,EAAApE,QAwCSnmB,EAAIwF,EAAWqX,eAAeI,YAQvC,OANAzQ,EAAYke,OAASV,EAErB/yC,EAAKU,SAAS,CACV60B,YAAAA,KAGG,CACX,CAEI,OAAO,CAEf,KAACp1B,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,kBAEwB,SAACo/B,GACtB,IAAAsU,EAGI1zC,EAAKkB,MAFLq0B,EAAWme,EAAXne,YACAhH,EAAUmlB,EAAVnlB,WAGAtlB,GAAU,EAMd,GAJIslB,QAA0DxpB,IAA5CwpB,EAAWqX,eAAeG,gBACxCxX,EAAWqX,eAAeG,cAAgB,GAG1CxX,QAA0DxpB,IAA5CwpB,EAAWqX,eAAeG,eAA+BxX,EAAWqX,eAAeG,eAAiB,EAAG,CACrH,IAAM4N,EAAqC,GACrCC,EAA+B,CAAEC,UAAW,GAClD,GAAIzU,GAAeA,EAAYva,QAAUua,EAAYva,OAAOha,OAAS,EAAG,CACpE,IAAIod,GAAiB,EACfzB,EAAQ4Y,EAAYva,OAAOva,MAAK,SAAAyc,GAAC,MAAkB,sBAAdA,EAAEpmB,KAAKjC,EAA0B,IACxE8nB,GAASA,EAAM7lB,MAAQ6lB,EAAM7lB,KAAKmG,SAAW0f,EAAM7lB,KAAKmG,QAAQ+D,OAAS,IACzE2b,EAAM7lB,KAAKmG,QAAQmc,SAAQ,SAAAiF,GACnBnZ,OAAOmZ,EAAO5mB,SAAWyN,OAAOyX,EAAMllB,SACtC2mB,GAAQ,EAEhB,IACIA,EACA2rB,EAAQC,UAAYrtB,EAAMllB,MAG1B2H,GAAU,EAGtB,CACA,GAAIA,EAAS,CACT,IAAM6qC,EAAmB1U,EAAYva,OAAOiC,WAAU,SAAAC,GAAC,MAAkB,iBAAdA,EAAEpmB,KAAKjC,EAAqB,IACnFo1C,GAAoB,IACpBF,EAAQG,aAAe3U,EAAYva,OAAOivB,GAAkBxyC,OAE5DsyC,EAAQC,UAAY,GACpBF,EAAYzvC,KAAK0vC,GAErB,IAAI7qB,EAAY,EAAEirB,EAAA,WAEd,IAAMJ,EAA+B,CAAEC,UAAW,GAWlD,GATwBzU,EAAYva,OAAOie,QAAO,SAAA/b,GAAC,OAAIA,EAAEpmB,KAAKmqB,UAAY/B,CAAC,IAC3D9F,SAAQ,SAAAuD,GACwC,sBAAxDA,EAAM7lB,KAAKjC,GAAG6oB,OAAO,EAAG,MACxBqsB,EAAQC,UAAYrtB,EAAMllB,OAEyB,iBAAnDklB,EAAM7lB,KAAKjC,GAAG6oB,OAAO,EAAG,MACxBqsB,EAAQG,aAAevtB,EAAMllB,MAErC,IACIqyC,EAAYrpC,MAAK,SAAAyc,GAAC,OAAIA,EAAE8sB,YAAcD,EAAQC,SAAS,IAAG,CAC1D5qC,GAAU,EACV,IAAM+gC,EAAyB5K,EAAYva,OAAOiC,WAAU,SAAAC,GAAC,MAAkB,4BAAdA,EAAEpmB,KAAKjC,EAAgC,IACxG0gC,EAAYva,OAAOmlB,GAAgBrpC,KAAKyI,MACpCg2B,EAAY0I,qBACpB,CACA,GAAI6L,EAAYrpC,MAAK,SAAAyc,GAAC,OAAIA,EAAE8sB,YACxBD,EAAQC,WAAa9sB,EAAEgtB,eAAiBH,EAAQG,YAAY,IAAG,CAC/D9qC,GAAU,EACV,IAAM+gC,EAAyB5K,EAAYva,OAAOiC,WAAU,SAAAC,GAAC,MAAkB,4BAAdA,EAAEpmB,KAAKjC,EAAgC,IACxG0gC,EAAYva,OAAOmlB,GAAgBrpC,KAAKyI,MACpCg2B,EAAYoC,oBACpB,MACSoS,EAAQC,UAAY,GACzBF,EAAYzvC,KAAK0vC,GAErB7qB,GACJ,EA7BA,GAAAirB,UA6BSjrB,EAAIwF,EAAWqX,eAAeG,eAEnC98B,IACAssB,EAAY0e,SAAWN,GAG3B3zC,EAAKU,SAAS,CACV60B,YAAAA,GAER,CACJ,CACA,OAAOtsB,CACX,KAAC9I,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,mBAEyB,SAACo/B,GACvB,IAAA8U,EAGIl0C,EAAKkB,MAFLq0B,EAAW2e,EAAX3e,YACAhH,EAAU2lB,EAAV3lB,WAGAtlB,GAAmB,EAMvB,GAJIslB,QAA2DxpB,IAA7CwpB,EAAWqX,eAAeqB,iBACxC1Y,EAAWqX,eAAeqB,eAAiB,GAG3C1Y,QAA2DxpB,IAA7CwpB,EAAWqX,eAAeqB,gBAAgC1Y,EAAWqX,eAAeqB,gBAAkB,EAAG,CACvH,IAAMkN,EAAuC,GACzCC,EAAiC,CACjCC,qBAAqB,EACrBC,kBAAmB,GACnBC,iBAAkB,GAClBC,aAAc,GAElBJ,EAAWp0C,EAAKy0C,uBAAuBrV,EAAagV,KACpDA,EAAWp0C,EAAK00C,6BAA6BN,IAEhCE,mBAAqBF,EAASG,kBAAoBH,EAASI,aAAe,GACnFJ,EAASC,qBAGJD,EAASO,gBAAkBP,EAASQ,gBAAkBR,EAASS,oBACpET,EAASU,yBAHTX,EAAajwC,KAAKkwC,GAOtB,IAqCCW,EArCGhsB,EAAY,EAAEisB,EAAA,WAEd,IAAIZ,EAAiC,CACjCC,qBAAqB,EACrBC,kBAAmB,GACnBC,iBAAkB,GAClBC,aAAc,GAOlB,GAJAJ,EAAWp0C,EAAKi1C,iCAAiC7V,EAAarW,EAAGqrB,IACjEA,EAAWp0C,EAAK00C,6BAA6BN,IAGhCE,mBAAqBF,EAASG,kBAAoBH,EAASI,cAChEL,EAAa7pC,MAAK,SAAAyc,GAAC,OAAIA,EAAEutB,oBAAsBF,EAASE,mBACxDvtB,EAAEwtB,mBAAqBH,EAASG,kBAChCxtB,EAAEytB,eAAiBJ,EAASI,YAAY,IAQrC,OANCpV,EAAYva,OAAOie,QAAO,SAAA/b,GAAC,MAC4B,qBAAnDA,EAAEpmB,KAAKjC,GAAG6oB,OAAO,EAAG,KACpBR,EAAEpmB,KAAKmqB,UAAY/B,CAAC,IACjB9F,SAAQ,SAAAuD,GACfA,EAAM7lB,KAAKyI,MAAQg2B,EAAY0I,sBAC/BthB,EAAM7lB,KAAKsB,OAAQ,CACvB,IAAG,CAAAitC,GACI,IAGXkF,EAASE,mBAAqBF,EAASG,kBAAoBH,EAASI,aAAe,GACnFJ,EAASC,qBAGJD,EAASO,gBAAkBP,EAASQ,gBAAkBR,EAASS,oBACpET,EAASU,yBAHTX,EAAajwC,KAAKkwC,GAMtBrrB,GACJ,EApCA,MAAAgsB,EAAAC,IAAA,OAAAD,EAAA7F,QAoCSnmB,EAAIwF,EAAWqX,eAAeqB,gBAGnC7H,EAAY1X,YAERysB,EAAatpC,OAAS,IAElBu0B,EAAYva,OAAOie,QAAO,SAAA/b,GAAC,MACT,qBAAdA,EAAEpmB,KAAKjC,EAAyB,IAC7BukB,SAAQ,SAAAuD,GACfA,EAAM7lB,KAAKsB,OAAQ,EACnBukB,EAAM7lB,KAAKyI,MAAQ,EACvB,IACAH,GAAU,GAGc,IAAxBkrC,EAAatpC,SACb5B,GAAU,EAENm2B,EAAYva,OAAOie,QAAO,SAAA/b,GAAC,MACT,qBAAdA,EAAEpmB,KAAKjC,EAAyB,IAC7BukB,SAAQ,SAAAuD,GACfA,EAAM7lB,KAAKsB,OAAQ,EACnBukB,EAAM7lB,KAAKyI,MAAQg2B,EAAYoC,oBACnC,MAIwB,IAAxB2S,EAAatpC,SACbu0B,EAAYva,OAAO5B,SAAQ,SAAAuD,GACvBA,EAAM7lB,KAAKsB,OAAQ,EACnBukB,EAAM7lB,KAAKyE,WAAa,EAC5B,IACA6D,GAAU,GAGdA,IACAssB,EAAY2f,UAAYf,EAExBn0C,EAAKU,SAAS,CACV60B,YAAaA,IAGzB,CACA,OAAOtsB,CACX,KAAC9I,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,mBAEyB,SAACo/B,GACvB,IACI7J,EACAv1B,EAAKkB,MADLq0B,YAGAtsB,GAAmB,EACjBksC,EAAyC,GAC3CC,EAAmC,CAAC,EAqExC,OAlEsC,QAFtCA,EAAYp1C,EAAKq1C,wBAAwBjW,EAAagW,IAExCE,qBACqB,OAA/BF,EAAUG,kBACqB,OAA/BH,EAAUI,kBACe,OAAzBJ,EAAUK,YACiB,OAA3BL,EAAUM,cACVP,EAAcjxC,KAAKkxC,GAInBhW,EAAY1X,YAERytB,EAActqC,OAAS,IAEnBu0B,EAAYva,OAAOie,QAAO,SAAA/b,GAAC,MACT,qBAAdA,EAAEpmB,KAAKjC,EAAyB,IAC7BukB,SAAQ,SAAAuD,GACfA,EAAM7lB,KAAKsB,OAAQ,EACnBukB,EAAM7lB,KAAKyI,MAAQ,EACvB,IACAH,GAAU,GAGe,IAAzBksC,EAActqC,SACd5B,GAAU,EAENm2B,EAAYva,OAAOie,QAAO,SAAA/b,GAAC,MACT,qBAAdA,EAAEpmB,KAAKjC,EAAyB,IAC7BukB,SAAQ,SAAAuD,GACfA,EAAM7lB,KAAKsB,OAAQ,EACnBukB,EAAM7lB,KAAKyI,MAAQg2B,EAAYoC,oBACnC,MAMyB,IAAzB2T,EAActqC,SACdu0B,EAAYva,OAAO5B,SAAQ,SAAAuD,GACvBA,EAAM7lB,KAAKsB,OAAQ,EACnBukB,EAAM7lB,KAAKyE,WAAa,EAC5B,IACA6D,GAAU,GAGdA,IACIksC,EAActqC,OAAS,IACnBsqC,EAAc,GAAGG,qBAAuBH,EAAc,GAAGG,oBAAsB,IAC/E/f,EAAY+f,oBAAsBH,EAAc,GAAGG,qBAEnDH,EAAc,GAAGI,mBACjBhgB,EAAYggB,iBAAmBJ,EAAc,GAAGI,kBAEhDJ,EAAc,GAAGK,mBACjBjgB,EAAYigB,iBAAmBL,EAAc,GAAGK,kBAEhDL,EAAc,GAAGM,YAAcN,EAAc,GAAGM,WAAa,IAC7DlgB,EAAYkgB,WAAaN,EAAc,GAAGM,YAE1CN,EAAc,GAAGO,cAAgBP,EAAc,GAAGO,aAAe,IACjEngB,EAAYmgB,aAAeP,EAAc,GAAGO,eAGpD11C,EAAKU,SAAS,CACV60B,YAAaA,KAGdtsB,CACX,KAAC9I,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,+BAEqC,SAACkqC,GAGnC,IAFA,IAAIyL,GAA6B,EAEjCC,EAAA,EAAAC,EAAuB5sB,OAAO6sB,KAAK5L,GAAgB0L,EAAAC,EAAAhrC,OAAA+qC,IAAE,CAAhD,IAAMG,EAAQF,EAAAD,GACTI,EAAuB9L,EAAgBn7B,OAAOgnC,IAE9CE,EAA2BD,EAAOE,OAAM,SAAA1T,GAAC,OAAIA,EAAElhC,OAAqB,KAAZkhC,EAAElhC,KAAY,IACtE60C,EAAuBH,EAAOE,OAAM,SAAA1T,GAAC,OAAKA,EAAElhC,OAAqB,KAAZkhC,EAAElhC,KAAY,IAEpE20C,GAAoBE,GACrBH,EAAO/yB,SAAQ,SAAAuD,GACPA,EAAMllB,OAAyB,KAAhBklB,EAAMllB,MACrBklB,EAAM7lB,KAAKsB,OAAQ,GAEnBukB,EAAM7lB,KAAKsB,OAAQ,EACnB0zC,GAAoB,EAE5B,GAER,CACA,OAAOA,CACX,KAACx1C,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,oBAE0B,SAACkqC,GAExB,IAAK,IAAInhB,EAAY,EAAGA,EAAIE,OAAO6sB,KAAK5L,GAAiBr/B,OAAQke,IAE7D,IADA,IAAMitB,EAAc9L,EAAgBn7B,OAAOka,OAAO6sB,KAAK5L,GAAiBnhB,KAC/D5F,EAAY,EAAGA,EAAI8F,OAAO6sB,KAAK5L,GAAiBr/B,OAAQsY,IAC7D,GAAI4F,IAAM5F,EAAG,CAGT,IAFA,IAAIizB,GAAqB,EACnBC,EAAcnM,EAAgBn7B,OAAOka,OAAO6sB,KAAK5L,GAAiB/mB,KAC/DmzB,EAAY,EAAGA,EAAIN,EAAOnrC,OAAQyrC,IAAK,CAC5C,IAAMC,EAAqBP,EAAOM,GAC5BE,EAAqBH,EAAOC,GAC9BC,EAAO51C,KAAKjC,KAAO83C,EAAO71C,KAAKjC,KAC1B63C,EAAOj1C,OAAS,OAASk1C,EAAOl1C,OAAS,MAC1C80C,GAAY,EAGxB,CACA,GAAIA,EACA,OAAO,CAEf,CAGR,OAAO,CACX,KAACj2C,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,qBAE2B,SAACo/B,GACzB,IACI7J,EACAv1B,EAAKkB,MADLq0B,YAGAtsB,GAAmB,EAqDvB,OApDAm2B,EAAYva,OAAO5B,SAAQ,SAAAuD,GACvB,GAAIA,EAAMga,cAAe,CAErB,IAAMiW,EAAuC,CACzCC,YAAa,GACb1rC,WAAY,GACZ2rC,WAAY,EACZC,YAAa,GACbC,aAAa,GAEjB,GAAIrwB,EAAMllB,MACN,GAAIklB,EAAMswB,WAAatwB,EAAMllB,MAAM+C,WAAWwG,QAAU2b,EAAMswB,UAAW,CAkBrE,IAAIC,EAjBJvwB,EAAM7lB,KAAKsB,OAAQ,EACnBukB,EAAM7lB,KAAKyE,WAAa,GACxB6D,GAAU,EAEVwtC,EAAYC,YAAclwB,EAAM7lB,KAAKyI,MAAQod,EAAM7lB,KAAKyI,MAAQ,GAChEqtC,EAAYzrC,WAAawb,EAAM7lB,KAAKjC,GACb,aAAnB8nB,EAAMwwB,WACNP,EAAYE,WAAa,GAEN,SAAnBnwB,EAAMwwB,WACNP,EAAYE,WAAa,GAEN,SAAnBnwB,EAAMwwB,WACNP,EAAYE,WAAa,GAE7BF,EAAYG,YAAcpwB,EAAMllB,MAChCm1C,EAAYI,cAAcrwB,EAAMqwB,aAAcrwB,EAAMqwB,aAEpDE,EACIxhB,EAAYkhB,YAAY3vB,WAAU,SAAAC,GAAC,OAAIA,EAAE/b,aAAeyrC,EAAYzrC,UAAU,MAC1D,GACpBuqB,EAAYkhB,YAAY9vB,OAAOowB,EAAkB,GAErDxhB,EAAYkhB,YAAYvyC,KAAKuyC,EACjC,MAEIjwB,EAAM7lB,KAAKsB,OAAQ,EACnBukB,EAAM7lB,KAAKyE,WAAaohB,EAAM7lB,KAAKshC,kBACnCh5B,GAAU,OAIVud,EAAMkB,aACNlB,EAAM7lB,KAAKsB,OAAQ,EACnBukB,EAAM7lB,KAAKyE,WAAaohB,EAAM7lB,KAAK6gC,qBACnCv4B,GAAU,EAGtB,CACJ,IACOA,CACX,KAAC9I,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,gBAEsB,SAACo/B,GACpB,IACI7J,EACAv1B,EAAKkB,MADLq0B,YAGEkO,EAAcrE,EAAYva,OAAOiC,WAAU,SAAAC,GAAC,MAAkB,aAAdA,EAAEpmB,KAAKjC,EAAiB,IAC9E,GAAsD,iBAAlD0gC,EAAYva,OAAO4e,GAAa7c,eAEhC,GADA2O,EAAYgO,cAAWx+B,EACnB0+B,GAAe,EAAG,CAClB,IAAMwT,EAAa7X,EAAYva,OAAO4e,GAAaniC,MAC/C21C,GACchuB,OAAOC,OAAO+tB,EAAWroC,MAAM,MACvCqU,SAAQ,SAAAygB,GACNnO,EAAYgO,UAGQ,IADPhO,EAAYgO,SAASzc,WAAU,SAAAC,GAAC,OAAIA,IAAMhY,OAAO20B,EAAO,KAEjEnO,EAAYgO,SAASr/B,KACjB6K,OAAO20B,IAKfnO,EAAYgO,SAAW,CACnBx0B,OAAO20B,GAGnB,GAER,OAEKnO,EAAYgO,SACjBhO,EAAYgO,SAAW,CAACx0B,OAAOwmB,EAAYgO,WAG3ChO,EAAYgO,cAAWx+B,CAE/B,KAAC5E,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,0BAEgC,SAACo/B,GAC9B,IACI7J,EACAv1B,EAAKkB,MADLq0B,YAGE2hB,EAAgB9X,EAAYva,OAAOiC,WAAU,SAAAC,GAAC,MAAkB,eAAdA,EAAEpmB,KAAKjC,EAAmB,IAElF,GADA62B,EAAYoO,uBAAoB5+B,EAC5BmyC,GAAiB,EAAG,CACpB,IAAMC,EAAe/X,EAAYva,OAAOqyB,GAAe51C,MACnD61C,GACcluB,OAAOC,OAAOiuB,EAAavoC,MAAM,MACzCqU,SAAQ,SAAAm0B,GACN7hB,EAAYoO,mBAGU,IADPpO,EAAYoO,kBAAkB7c,WAAU,SAAAC,GAAC,OAAIA,IAAMhY,OAAOqoC,EAAS,KAE9E7hB,EAAYoO,kBAAkBz/B,KAC1B6K,OAAOqoC,IAKf7hB,EAAYoO,kBAAoB,CAC5B50B,OAAOqoC,GAGnB,GAER,CACJ,KAGAj3C,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,sCAC6C,SAACo/B,EAAkB+H,EAAuB6H,GAsCnF,OApCwB5P,EAAYva,OAAOie,QAAO,SAAA/b,GAAC,OAAIA,EAAEpmB,KAAKmqB,UAAYqc,CAAa,IACvElkB,SAAQ,SAAAuD,GACqC,mBAArDA,EAAM7lB,KAAKjC,GAAG6oB,OAAO,EAAG,MACxBynB,EAAaZ,aAAe5nB,EAAMllB,OAEe,eAAjDklB,EAAM7lB,KAAKjC,GAAG6oB,OAAO,EAAG,MACxBynB,EAAab,SAAW3nB,EAAMllB,OAEuB,mBAArDklB,EAAM7lB,KAAKjC,GAAG6oB,OAAO,EAAG,MACxBynB,EAAa1e,SAAW9J,EAAMllB,OAE+B,2BAA7DklB,EAAM7lB,KAAKjC,GAAG6oB,OAAO,EAAG,MACxBynB,EAAaX,aAAe7nB,EAAMllB,OAE2B,2BAA7DklB,EAAM7lB,KAAKjC,GAAG6oB,OAAO,EAAG,MACxBynB,EAAaV,aAAe9nB,EAAMllB,OAEoB,oBAAtDklB,EAAM7lB,KAAKjC,GAAG6oB,OAAO,EAAG,MACxBynB,EAAaT,cAAgB/nB,EAAMllB,OAEmB,oBAAtDklB,EAAM7lB,KAAKjC,GAAG6oB,OAAO,EAAG,MACxBynB,EAAaR,oBAAsB7pC,QAAQ6hB,EAAMllB,QAEM,qBAAvDklB,EAAM7lB,KAAKjC,GAAG6oB,OAAO,EAAG,MACxBynB,EAAaP,oBAAsB9pC,QAAQ6hB,EAAMllB,QAEM,qBAAvDklB,EAAM7lB,KAAKjC,GAAG6oB,OAAO,EAAG,MACxBynB,EAAaN,oBAAsB/pC,QAAQ6hB,EAAMllB,QAEM,qBAAvDklB,EAAM7lB,KAAKjC,GAAG6oB,OAAO,EAAG,MACxBynB,EAAaL,oBAAsBhqC,QAAQ6hB,EAAMllB,QAEiB,gCAAlEklB,EAAM7lB,KAAKjC,GAAG6oB,OAAO,EAAG,MACxBynB,EAAaJ,0BAA4BjqC,QAAQ6hB,EAAMllB,OAE/D,IACO0tC,CACX,KAAC7uC,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,yBAE+B,SAACo/B,EAAkBlc,GAE/C,IAAMm0B,EAAmBjY,EAAYva,OAAOiC,WAAU,SAAAC,GAAC,MAAkB,kBAAdA,EAAEpmB,KAAKjC,EAAsB,IACpF24C,GAAoB,IACpBn0B,EAAQ3jB,KAAO6/B,EAAYva,OAAOwyB,GAAkB/1C,OAExD,IAAMg2C,EAAmBlY,EAAYva,OAAOiC,WAAU,SAAAC,GAAC,MAAkB,kBAAdA,EAAEpmB,KAAKjC,EAAsB,IACpF44C,GAAoB,IACpBp0B,EAAQq0B,YAAcnY,EAAYva,OAAOyyB,GAAkBh2C,OAE/D,IAAMk2C,EAAoBpY,EAAYva,OAAOiC,WAAU,SAAAC,GAAC,MAAkB,mBAAdA,EAAEpmB,KAAKjC,EAAuB,IACtF84C,GAAqB,IACrBt0B,EAAQusB,MAAQrQ,EAAYva,OAAO2yB,GAAmBl2C,OAE1D,IAAMm2C,EAAoBrY,EAAYva,OAAOiC,WAAU,SAAAC,GAAC,MAAkB,mBAAdA,EAAEpmB,KAAKjC,EAAuB,IACtF+4C,GAAqB,IACrBv0B,EAAQwsB,MAAQtQ,EAAYva,OAAO4yB,GAAmBn2C,OAE1D,IAAMo2C,EAAoBtY,EAAYva,OAAOiC,WAAU,SAAAC,GAAC,MAAkB,mBAAdA,EAAEpmB,KAAKjC,EAAuB,IACtFg5C,GAAqB,IACrBx0B,EAAQysB,MAAQvQ,EAAYva,OAAO6yB,GAAmBp2C,OAE1D,IAAMq2C,EAAoBvY,EAAYva,OAAOiC,WAAU,SAAAC,GAAC,MAAkB,mBAAdA,EAAEpmB,KAAKjC,EAAuB,IACtFi5C,GAAqB,IACrBz0B,EAAQ0sB,MAAQxQ,EAAYva,OAAO8yB,GAAmBr2C,OAE1D,IAAMs2C,EAAmBxY,EAAYva,OAAOiC,WAAU,SAAAC,GAAC,MAAkB,kBAAdA,EAAEpmB,KAAKjC,EAAsB,IACpFk5C,GAAoB,IACpB10B,EAAQG,KAAO+b,EAAYva,OAAO+yB,GAAkBt2C,OAExD,IAAMu2C,EAAqBzY,EAAYva,OAAOiC,WAAU,SAAAC,GAAC,MAAkB,oBAAdA,EAAEpmB,KAAKjC,EAAwB,IACxFm5C,GAAsB,IACtB30B,EAAQ2sB,cAAgBzQ,EAAYva,OAAOgzB,GAAoBv2C,OAEnE,IAAMw2C,EAAkB1Y,EAAYva,OAAOiC,WAAU,SAAAC,GAAC,MAAkB,iBAAdA,EAAEpmB,KAAKjC,EAAqB,IAClFo5C,GAAmB,IACnB50B,EAAQ4sB,WAAa1Q,EAAYva,OAAOizB,GAAiBx2C,OAE7D,IAAMy2C,EAAgB3Y,EAAYva,OAAOiC,WAAU,SAAAC,GAAC,MAAkB,oBAAdA,EAAEpmB,KAAKjC,EAAwB,IACnFq5C,GAAiB,IACjB70B,EAAQU,OAASwb,EAAYva,OAAOkzB,GAAez2C,OAEvD,IAAM02C,EAAsB5Y,EAAYva,OAAOiC,WAAU,SAAAC,GAAC,MAAkB,qBAAdA,EAAEpmB,KAAKjC,EAAyB,IAI9F,OAHIs5C,GAAuB,IACvB90B,EAAQY,QAAUsb,EAAYva,OAAOmzB,GAAqB12C,OAEvD4hB,CACX,KAAC/iB,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,+BAEqC,SAACkjB,GAcnC,OAbAA,EAAQ3jB,KAAO2jB,EAAQ3jB,MAAQ,EAC/B2jB,EAAQusB,MAAQvsB,EAAQusB,OAAS,GACjCvsB,EAAQG,KAAOH,EAAQG,MAAQ,GAC/BH,EAAQY,QAAUZ,EAAQY,SAAW,EAErCZ,EAAQwsB,MAAQxsB,EAAQwsB,OAAS,GACjCxsB,EAAQysB,MAAQzsB,EAAQysB,OAAS,GACjCzsB,EAAQ0sB,MAAQ1sB,EAAQ0sB,OAAS,GACjC1sB,EAAQG,KAAOH,EAAQG,MAAQ,GAC/BH,EAAQ2sB,cAAgB3sB,EAAQ2sB,eAAiB,EACjD3sB,EAAQ4sB,WAAa5sB,EAAQ4sB,YAAc,GAC3C5sB,EAAQU,OAASV,EAAQU,QAAU,EAE5BV,CACX,KAAC/iB,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,mCAGG,SAACo/B,EAAkB+H,EAAuBjkB,GAqCtC,OApCwBkc,EAAYva,OAAOie,QAAO,SAAA/b,GAAC,OAAIA,EAAEpmB,KAAKmqB,UAAYqc,CAAa,IACvElkB,SAAQ,SAAAuD,GACoC,kBAApDA,EAAM7lB,KAAKjC,GAAG6oB,OAAO,EAAG,MACxBrE,EAAQ3jB,KAAOinB,EAAMllB,OAE+B,kBAApDklB,EAAM7lB,KAAKjC,GAAG6oB,OAAO,EAAG,MACxBrE,EAAQq0B,YAAc/wB,EAAMllB,OAEyB,mBAArDklB,EAAM7lB,KAAKjC,GAAG6oB,OAAO,EAAG,MACxBrE,EAAQusB,MAAQjpB,EAAMllB,OAE+B,mBAArDklB,EAAM7lB,KAAKjC,GAAG6oB,OAAO,EAAG,MACxBrE,EAAQwsB,MAAQlpB,EAAMllB,OAE+B,mBAArDklB,EAAM7lB,KAAKjC,GAAG6oB,OAAO,EAAG,MACxBrE,EAAQysB,MAAQnpB,EAAMllB,OAE+B,mBAArDklB,EAAM7lB,KAAKjC,GAAG6oB,OAAO,EAAG,MACxBrE,EAAQ0sB,MAAQppB,EAAMllB,OAE8B,kBAApDklB,EAAM7lB,KAAKjC,GAAG6oB,OAAO,EAAG,MACxBrE,EAAQG,KAAOmD,EAAMllB,OAEiC,oBAAtDklB,EAAM7lB,KAAKjC,GAAG6oB,OAAO,EAAG,MACxBrE,EAAQ2sB,cAAgBrpB,EAAMllB,OAEqB,iBAAnDklB,EAAM7lB,KAAKjC,GAAG6oB,OAAO,EAAG,MACxBrE,EAAQ4sB,WAAatpB,EAAMllB,OAE2B,oBAAtDklB,EAAM7lB,KAAKjC,GAAG6oB,OAAO,EAAG,MACxBrE,EAAQU,OAAS4C,EAAMllB,OAEgC,qBAAvDklB,EAAM7lB,KAAKjC,GAAG6oB,OAAO,EAAG,MACxBrE,EAAQY,QAAU0C,EAAMllB,MAEhC,IACO4hB,CACX,KAAC/iB,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,2BAE6B,SAACo/B,EAAkByM,GACjD,IAAMoM,EAAc7Y,EAAYva,OAAOiC,WAAU,SAAAC,GAAC,MAAkB,sBAAdA,EAAEpmB,KAAKjC,EAA0B,IACnFu5C,GAAe,IACfpM,EAAUuE,WAAWO,SAAWvR,EAAYva,OAAOozB,GAAa32C,OAEpE,IAAM42C,EAAkB9Y,EAAYva,OAAOiC,WAAU,SAAAC,GAAC,MAAkB,0BAAdA,EAAEpmB,KAAKjC,EAA8B,IAC3Fw5C,GAAmB,IACnBrM,EAAUuE,WAAWK,aAAerR,EAAYva,OAAOqzB,GAAiB52C,OAE5E,IAAM62C,EAAc/Y,EAAYva,OAAOiC,WAAU,SAAAC,GAAC,MAAkB,sBAAdA,EAAEpmB,KAAKjC,EAA0B,IACnFy5C,GAAe,IACftM,EAAUuE,WAAWM,SAAWtR,EAAYva,OAAOszB,GAAa72C,OAEpE,IAAM82C,EAAiBhZ,EAAYva,OAAOiC,WAAU,SAAAC,GAAC,MAAkB,yBAAdA,EAAEpmB,KAAKjC,EAA6B,IACzF05C,GAAkB,IAClBvM,EAAUuE,WAAWG,UAAYnR,EAAYva,OAAOuzB,GAAgB92C,OAExE,IAAM+2C,EAAejZ,EAAYva,OAAOiC,WAAU,SAAAC,GAAC,MAAkB,uBAAdA,EAAEpmB,KAAKjC,EAA2B,IACrF25C,GAAgB,IAChBxM,EAAUuE,WAAWI,QAAUpR,EAAYva,OAAOwzB,GAAc/2C,OAEpE,IAAMg3C,EAAmBlZ,EAAYva,OAAOiC,WAAU,SAAAC,GAAC,MAAkB,6BAAdA,EAAEpmB,KAAKjC,EAAiC,IAC/F45C,GAAoB,IACpBzM,EAAU3U,YAAY34B,KAAO6gC,EAAYva,OAAOyzB,GAAkBh3C,OAEtE,IAAMi3C,EAAenZ,EAAYva,OAAOiC,WAAU,SAAAC,GAAC,MAAkB,uBAAdA,EAAEpmB,KAAKjC,EAA2B,IACrF65C,GAAgB,IAChB1M,EAAU3U,YAAYnD,QAAUqL,EAAYva,OAAO0zB,GAAcj3C,OAErE,IAAMk3C,EAAYpZ,EAAYva,OAAOiC,WAAU,SAAAC,GAAC,MAAkB,oBAAdA,EAAEpmB,KAAKjC,EAAwB,IAC/E85C,GAAa,IACb3M,EAAU3U,YAAY7T,KAAO+b,EAAYva,OAAO2zB,GAAWl3C,OAE/D,IAAMm3C,EAAarZ,EAAYva,OAAOiC,WAAU,SAAAC,GAAC,MAAkB,qBAAdA,EAAEpmB,KAAKjC,EAAyB,IACjF+5C,GAAc,IACd5M,EAAU3U,YAAY5T,gBAAkB8b,EAAYva,OAAO4zB,GAAYn3C,OAE3E,IAAMo3C,EAAetZ,EAAYva,OAAOiC,WAAU,SAAAC,GAAC,MAAkB,uBAAdA,EAAEpmB,KAAKjC,EAA2B,IACrFg6C,GAAgB,IAChB7M,EAAU3U,YAAY3T,UAAY6b,EAAYva,OAAO6zB,GAAcp3C,OAEvE,IAAMq3C,EAAgBvZ,EAAYva,OAAOiC,WAAU,SAAAC,GAAC,MAAkB,sBAAdA,EAAEpmB,KAAKjC,EAA0B,IAIzF,OAHIi6C,GAAiB,IACjB9M,EAAU3U,YAAYpC,SAAWsK,EAAYva,OAAO8zB,GAAer3C,OAEhEuqC,CACX,KAAC1rC,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,oCAGG,SAACo/B,EAAkB+H,EAAuByR,GA4BtC,OA3BwBxZ,EAAYva,OAAOie,QAAO,SAAA/b,GAAC,OAAIA,EAAEpmB,KAAKmqB,UAAYqc,CAAa,IACvElkB,SAAQ,SAAAuD,GACwC,sBAAxDA,EAAM7lB,KAAKjC,GAAG6oB,OAAO,EAAG,MACxBqxB,EAAajE,eAAiC,KAAhBnuB,EAAMllB,MAAe,KAAOklB,EAAMllB,OAEL,yBAA3DklB,EAAM7lB,KAAKjC,GAAG6oB,OAAO,EAAG,MACxBqxB,EAAatE,kBAAoB9tB,EAAMllB,OAEqB,0BAA5DklB,EAAM7lB,KAAKjC,GAAG6oB,OAAO,EAAG,MACxBqxB,EAAa/D,mBAAqBruB,EAAMllB,OAEwB,8BAAhEklB,EAAM7lB,KAAKjC,GAAG6oB,OAAO,EAAG,MACxBqxB,EAAa9D,uBAAyBtuB,EAAMllB,OAEc,wBAA1DklB,EAAM7lB,KAAKjC,GAAG6oB,OAAO,EAAG,MACxBqxB,EAAarE,iBAAmB/tB,EAAMllB,OAEkB,sBAAxDklB,EAAM7lB,KAAKjC,GAAG6oB,OAAO,EAAG,MACxBqxB,EAAahE,eAAiC,KAAhBpuB,EAAMllB,MAAe,KAAOklB,EAAMllB,OAEF,4BAA9DklB,EAAM7lB,KAAKjC,GAAG6oB,OAAO,EAAG,MACxBqxB,EAAapE,aAAehuB,EAAMllB,OAEmC,mCAArEklB,EAAM7lB,KAAKjC,GAAG6oB,OAAO,EAAG,MACxBqxB,EAAavE,oBAAsB1vC,QAAQ6hB,EAAMllB,OAEzD,IACOs3C,CACX,KAACz4C,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,iCAEmC,SAAC6rC,GAcrC,OAbAA,EAAU3U,YAAY7T,KAAOwoB,EAAU3U,YAAY7T,MAAQ,GAC3DwoB,EAAUuE,WAAWK,aAAe5E,EAAUuE,WAAWK,cAAgB,EACzE5E,EAAUuE,WAAWO,SAAW9E,EAAUuE,WAAWO,UAAY,EACjE9E,EAAUuE,WAAWM,SAAW7E,EAAUuE,WAAWM,UAAY,EACjE7E,EAAUuE,WAAWG,UAAY1E,EAAUuE,WAAWG,gBAAaxrC,EACnE8mC,EAAUuE,WAAWI,QAAU3E,EAAUuE,WAAWI,cAAWzrC,EAC/D8mC,EAAU3U,YAAYx4B,GAAKmtC,EAAU3U,YAAYx4B,IAAM,EACvDmtC,EAAU3U,YAAY34B,KAAOstC,EAAU3U,YAAY34B,MAAQ,GAC3DstC,EAAU3U,YAAYnD,QAAU8X,EAAU3U,YAAYnD,SAAW,GACjE8X,EAAU3U,YAAY7T,KAAOwoB,EAAU3U,YAAY7T,MAAQ,GAC3DwoB,EAAU3U,YAAY5T,gBAAkBuoB,EAAU3U,YAAY5T,iBAAmB,EACjFuoB,EAAU3U,YAAY3T,UAAYsoB,EAAU3U,YAAY3T,WAAa,EACrEsoB,EAAU3U,YAAYpC,SAAW+W,EAAU3U,YAAYpC,UAAY,GAC5D+W,CACX,KAAC1rC,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,qCAE2C,SAACo/B,EAAkB+H,EAAuB0E,GAsClF,OApCwBzM,EAAYva,OAAOie,QAAO,SAAA/b,GAAC,OAAIA,EAAEpmB,KAAKmqB,UAAYqc,CAAa,IACvElkB,SAAQ,SAAAuD,GACwC,sBAAxDA,EAAM7lB,KAAKjC,GAAG6oB,OAAO,EAAG,MACxBskB,EAAUuE,WAAWO,SAAWnqB,EAAMllB,OAEsB,0BAA5DklB,EAAM7lB,KAAKjC,GAAG6oB,OAAO,EAAG,MACxBskB,EAAUuE,WAAWK,aAAejqB,EAAMllB,OAEc,sBAAxDklB,EAAM7lB,KAAKjC,GAAG6oB,OAAO,EAAG,MACxBskB,EAAUuE,WAAWM,SAAWlqB,EAAMllB,OAEqB,yBAA3DklB,EAAM7lB,KAAKjC,GAAG6oB,OAAO,EAAG,MACxBskB,EAAUuE,WAAWG,UAAY/pB,EAAMllB,OAEkB,uBAAzDklB,EAAM7lB,KAAKjC,GAAG6oB,OAAO,EAAG,MACxBskB,EAAUuE,WAAWI,QAAUhqB,EAAMllB,OAE0B,6BAA/DklB,EAAM7lB,KAAKjC,GAAG6oB,OAAO,EAAG,MACxBskB,EAAU3U,YAAY34B,KAAOioB,EAAMllB,OAEsB,uBAAzDklB,EAAM7lB,KAAKjC,GAAG6oB,OAAO,EAAG,MACxBskB,EAAU3U,YAAYnD,QAAUvN,EAAMllB,OAEgB,oBAAtDklB,EAAM7lB,KAAKjC,GAAG6oB,OAAO,EAAG,MACxBskB,EAAU3U,YAAY7T,KAAOmD,EAAMllB,OAEoB,qBAAvDklB,EAAM7lB,KAAKjC,GAAG6oB,OAAO,EAAG,MACxBskB,EAAU3U,YAAY5T,gBAAkBkD,EAAMllB,OAEW,uBAAzDklB,EAAM7lB,KAAKjC,GAAG6oB,OAAO,EAAG,MACxBskB,EAAU3U,YAAY3T,UAAYiD,EAAMllB,OAEgB,sBAAxDklB,EAAM7lB,KAAKjC,GAAG6oB,OAAO,EAAG,MACxBskB,EAAU3U,YAAYpC,SAAWtO,EAAMllB,MAE/C,IACOuqC,CACX,KAAC1rC,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,2BAEiC,SAACo/B,EAAkBgW,GACjD,IAAMyD,EAA2BzZ,EAAYva,OAAOiC,WAAU,SAAAC,GAAC,MAAkB,wBAAdA,EAAEpmB,KAAKjC,EAA4B,IAClGm6C,GAA4B,IAC5BzD,EAAUE,oBAAsBlW,EAAYva,OAAOg0B,GAA0Bv3C,OAEjF,IAAMw3C,EAAwB1Z,EAAYva,OAAOiC,WAAU,SAAAC,GAAC,MAAkB,yBAAdA,EAAEpmB,KAAKjC,EAA6B,IAChGo6C,GAAyB,IACzB1D,EAAUG,iBAAmBnW,EAAYva,OAAOi0B,GAAuBx3C,OAE3E,IAAMy3C,EAAwB3Z,EAAYva,OAAOiC,WAAU,SAAAC,GAAC,MAAkB,yBAAdA,EAAEpmB,KAAKjC,EAA6B,IAChGq6C,GAAyB,IACzB3D,EAAUI,iBAAmBpW,EAAYva,OAAOk0B,GAAuBz3C,OAE3E,IAAM03C,EAAkB5Z,EAAYva,OAAOiC,WAAU,SAAAC,GAAC,MAAkB,oBAAdA,EAAEpmB,KAAKjC,EAAwB,IACrFs6C,GAAmB,IACnB5D,EAAUK,WAAarW,EAAYva,OAAOm0B,GAAiB13C,OAE/D,IAAM23C,EAAoB7Z,EAAYva,OAAOiC,WAAU,SAAAC,GAAC,MAAkB,sBAAdA,EAAEpmB,KAAKjC,EAA0B,IAI7F,OAHIu6C,GAAqB,IACrB7D,EAAUM,aAAetW,EAAYva,OAAOo0B,GAAmB33C,OAE5D8zC,CACX,KAACj1C,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,0BAEgC,SAACo/B,EAAkBgV,GAChD,IAAM8E,EAAc9Z,EAAYva,OAAOiC,WAAU,SAAAC,GAAC,MAAkB,sBAAdA,EAAEpmB,KAAKjC,EAA0B,IACnFw6C,GAAe,IACf9E,EAASO,eAA2D,KAA1CvV,EAAYva,OAAOq0B,GAAa53C,MAAe,KAAO89B,EAAYva,OAAOq0B,GAAa53C,OAEpH,IAAM63C,EAAiB/Z,EAAYva,OAAOiC,WAAU,SAAAC,GAAC,MAAkB,yBAAdA,EAAEpmB,KAAKjC,EAA6B,IACzFy6C,GAAkB,IAClB/E,EAASE,kBAAoBlV,EAAYva,OAAOs0B,GAAgB73C,OAEpE,IAAMmwC,EAAkBrS,EAAYva,OAAOiC,WAAU,SAAAC,GAAC,MAAkB,0BAAdA,EAAEpmB,KAAKjC,EAA8B,IAC3F+yC,GAAmB,IACnB2C,EAASS,mBAAqBzV,EAAYva,OAAO4sB,GAAiBnwC,OAEtE,IAAMowC,EAAsBtS,EAAYva,OAAOiC,WAAU,SAAAC,GAAC,MAAkB,8BAAdA,EAAEpmB,KAAKjC,EAAkC,IACnGgzC,GAAuB,IACvB0C,EAASU,uBAAyB1V,EAAYva,OAAO6sB,GAAqBpwC,OAE9E,IAAM+vC,EAAgBjS,EAAYva,OAAOiC,WAAU,SAAAC,GAAC,MAAkB,wBAAdA,EAAEpmB,KAAKjC,EAA4B,IACvF2yC,GAAiB,IACjB+C,EAASG,iBAAmBnV,EAAYva,OAAOwsB,GAAe/vC,OAE9C89B,EAAYva,OAAOiC,WAAU,SAAAC,GAAC,MAAkB,sBAAdA,EAAEpmB,KAAKjC,EAA0B,KACpE,IACf01C,EAASQ,eAA2D,KAA1CxV,EAAYva,OAAOq0B,GAAa53C,MAAe,KAAO89B,EAAYva,OAAOq0B,GAAa53C,OAEpH,IAAMqwC,EAAoBvS,EAAYva,OAAOiC,WAAU,SAAAC,GAAC,MAAkB,4BAAdA,EAAEpmB,KAAKjC,EAAgC,IAC/FizC,GAAqB,IACrByC,EAASI,aAAepV,EAAYva,OAAO8sB,GAAmBrwC,OAElE,IAAM83C,EAA2Bha,EAAYva,OAAOiC,WAAU,SAAAC,GAAC,MAAkB,mCAAdA,EAAEpmB,KAAKjC,EAAuC,IAIjH,OAHI06C,GAA4B,IAC5BhF,EAASC,oBAAsB1vC,QAAQy6B,EAAYva,OAAOu0B,GAA0B93C,QAEjF8yC,CACX,KAACj0C,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,gCAEsC,SAACo0C,GAKpC,OAJAA,EAAS9lC,cAAgB8lC,EAAS9lC,eAAiB,EACnD8lC,EAASS,mBAAqBT,EAASS,oBAAsB,GAC7DT,EAASU,uBAAyBV,EAASU,wBAA0B,GAE9DV,CACX,KAACj0C,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,kCAGG,SAACmuC,EAAgCD,GAoB7B,OAnBAC,EAASC,aAAeD,EAASC,cAAgB,EACjDD,EAASA,SAAWA,EAASA,UAAY,EACzCA,EAASE,aAAeF,EAASE,cAAgB,EACjDF,EAASG,aAAeH,EAASG,cAAgB,EACjDH,EAASI,cAAgBJ,EAASI,eAAiB,EACnDJ,EAASK,oBAAsBL,EAASK,sBAAuB,EAC/DL,EAASM,oBAAsBN,EAASM,sBAAuB,EAC/DN,EAASO,oBAAsBP,EAASO,sBAAuB,EAC/DP,EAASQ,oBAAsBR,EAASQ,sBAAuB,EAC/DR,EAASS,0BAA4BT,EAASS,4BAA6B,GAE7C,IAA1BT,EAASC,cAA4C,IAAtBD,EAASA,UAGnCA,EAAS7d,UAAY6d,EAASE,cAAgBF,EAASG,cAC5DH,EAASI,eAAiBJ,EAASK,qBAAuBL,EAASM,qBACnEN,EAASO,qBAAuBP,EAASQ,qBAAuBR,EAASS,4BAJzEV,EAAahqC,KAAKiqC,GAOfD,CACX,KAAC/tC,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,2BAE6B,SAACo/B,GAC/B,IACI7J,EACAv1B,EAAKkB,MADLq0B,YAGE8jB,EAAiBja,EAAYva,OAAO,GAAGvjB,MACzC+3C,GACcpwB,OAAOC,OAAOmwB,EAAezqC,MAAM,MAC3CqU,SAAQ,SAAA8G,GACNwL,EAAYsN,OAIG,IAFPtN,EAAYsN,MAAM/b,WAAU,SAAAC,GAAC,OAAiC,IAA7BA,EAAEmD,wBACpCnD,EAAEkD,mBAAqBlb,OAAOgb,EAAK,KAEtCwL,EAAYsN,MAAM3+B,KAAK,CACnB+lB,iBAAkBlb,OAAOgb,GACzBG,uBAAwB,IAKhCqL,EAAYsN,MAAQ,CAAC,CACjB5Y,iBAAkBlb,OAAOgb,GACzBG,uBAAwB,GAGpC,IAGJlqB,EAAKU,SAAS,CACV60B,YAAaA,GAErB,KAACp1B,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,iCAEuC,SAACo/B,GACrC,IACI7J,EACAv1B,EAAKkB,MADLq0B,YAGE+jB,EAA0Bla,EAAYva,OAAO,GAAGvjB,MAClDg4C,GACmBA,EAAwB1qC,MAAM,KACtCqU,SAAQ,SAAA8G,GACf,IAAMC,EAAWD,EAAKnb,MAAM,KACR,KAAhBob,EAAS,KACLA,EAASnf,OAAS,EACd0qB,EAAYsN,MACZtN,EAAYsN,MAAM3+B,KAAK,CACnB+lB,iBAAkC,KAAhBD,EAAS,GAAYjb,OAAOib,EAAS,SAAMjlB,EAC7DmlB,uBAAwBnb,OAAOib,EAAS,MAI5CuL,EAAYsN,MAAQ,CAAC,CACjB5Y,iBAAkC,KAAhBD,EAAS,GAAYjb,OAAOib,EAAS,SAAMjlB,EAC7DmlB,uBAAwBnb,OAAOib,EAAS,MAK5CuL,EAAYsN,MACZtN,EAAYsN,MAAM3+B,KAAK,CACnBgmB,uBAAwBnb,OAAOib,EAAS,MAI5CuL,EAAYsN,MAAQ,CAAC,CACjB3Y,uBAAwBnb,OAAOib,EAAS,MAK5D,IAGJhqB,EAAKU,SAAS,CACV60B,YAAaA,GAErB,KAKAp1B,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,YACmB,SAACyB,GAChBC,EAAAA,EAAcC,WAAWF,EAC7B,KAACtB,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,iBAEuB,SAAC4B,GACrBF,EAAAA,EAAcG,gBAAgBD,EAClC,KAACzB,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,aAEmB,SAACX,GACjBqC,EAAAA,EAAcgO,SAAS,CAAErQ,QAASA,EAASsQ,YAAanQ,EAAAA,EAAWyC,OACvE,KAGA9B,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,sBAC6B,WACzB,IACI,IAAAu5C,EAGIv5C,EAAKkB,MAFLq0B,EAAWgkB,EAAXhkB,YACAl4B,EAASk8C,EAATl8C,UAGJ,GAAIA,GAGA,GAFA26B,SAASjd,MAAQ1d,EAAUm8C,aAEvBjkB,EAAa,CACb,IAAMkkB,EACFzhB,SAASwG,eAAe,oBAC5B,GAAIib,GAAYA,EAASn4C,MAAO,CAC5Bi0B,EAAYjnB,cAAgBS,OAAO0qC,EAASn4C,OAC5Cm4C,EAASC,SACTvqC,GAASgmB,cAAcI,EAAYjnB,cAAetO,EAAK25C,qBAAsB35C,EAAKa,UAElF,IAAM+4C,EACF5hB,SAASwG,eAAe,oBACtBqb,EACF7hB,SAASwG,eAAe,wBACtBsb,EACF9hB,SAASwG,eAAe,wBACtBub,EACF/hB,SAASwG,eAAe,6BACtBwb,EACFhiB,SAASwG,eAAe,qCACtByb,EACFjiB,SAASwG,eAAe,2BAC5B,GAAIob,GAAoBA,EAAiBt4C,OAClCu4C,GACAC,GACAC,GACAC,GACAC,EAAyB,CAC5B,IAAMttB,EAA0C,CAC5CnhB,OAAQsuC,EAAqBx4C,MAC7B8rB,oBAAqB4sB,EAAkC14C,MACvD6C,YAAa41C,EAA0Bz4C,MACvCmN,UAAWwrC,EAAwB34C,MACnCb,OAAQsO,OAAO8qC,EAAqBv4C,OACpC44C,cAAenrC,OAAO+qC,EAAqBx4C,QAE/CtB,EAAKU,SAAS,CACVy5C,qBAA6D,IAAvCprC,OAAO8qC,EAAqBv4C,OAClD84C,wBAAgE,IAAvCrrC,OAAO8qC,EAAqBv4C,OACrDqrB,mBAAoBA,IAExBitB,EAAiBF,SACjBG,EAAqBH,SACrBI,EAAqBJ,SACrBK,EAA0BL,SAC1BM,EAAkCN,SAClCO,EAAwBP,QAC5B,CACJ,KACK,CACD,IAAMW,EACFriB,SAASwG,eAAe,4BACxB6b,GAA4BA,EAAyB/4C,QACrDtB,EAAKU,SAAS,CACV2W,MAAOgjC,EAAyB/4C,QAEpC+4C,EAAyBX,SACzBvqC,GAASimB,8BAA8BilB,EAAyB/4C,MAAOtB,EAAK25C,qBAAsB35C,EAAKa,UAE/G,CACJ,OAGAb,EAAKa,SAASC,EAAAA,EAAQw5C,YAAYt6C,EAAKs+B,mBAAmB//B,MAElE,CACA,MAAOqC,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKs+B,mBAAmB//B,KAAMqC,GACtE,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,oBAE0B,SAACK,GACxB,IACI,IAAMC,GACAC,EAAAA,EAAAA,GAASF,EAAML,EAAKu6C,iBAAiBh8C,MAE3C,GAAI+B,SAAAA,EAAQG,OAAQ,CAChB,IAAMqzB,EAAiBxzB,EAAOK,KAE9BX,EAAKU,SAAS,CACVozB,UAAWA,GAEnB,CACJ,CACA,MAAOlzB,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKu6C,iBAAiBh8C,KAAMqC,GACpE,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,qBAE2B,SAACK,GACzB,IACI,IAAMC,GACAC,EAAAA,EAAAA,GAASF,EAAML,EAAKs9B,kBAAkB/+B,MAE5C,GAAI+B,SAAAA,EAAQG,OAAQ,CAChB,IAAM6hB,EAA+BtiB,EAAKw6C,sBAAsBl6C,EAAOK,KAAK85C,aACtEn6C,EAAOK,KAAK85C,aAAe,GACjCz6C,EAAKU,SAAS,CACVwhB,UAAW5hB,EAAOK,KAAKuhB,UACvBI,mBAAAA,EACAib,MAAOj9B,EAAOK,KAAK85C,eAEvB/4C,EAAAA,EAAc2N,YAAW,EAC7B,CACJ,CACA,MAAOzO,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKs9B,kBAAkB/+B,KAAMqC,GACrE,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,wBAE8B,SAACK,GAC5B,IACI,IAAMC,GACAC,EAAAA,EAAAA,GAASF,EAAML,EAAK25C,qBAAqBp7C,MAE/C,GAAI+B,SAAAA,EAAQG,OAAQ,CAChB,IAAM8tB,EAA+BjuB,EAAOK,KAC5C,GAAI4tB,EAAWa,MAAO,CAClB,IAAMpV,EAA+BqV,MAAMd,EAAWa,MAAMvkB,QACxD0jB,EAAWmN,kBAAoB,IAG3B17B,EAAKkB,MADLq0B,YAGQjnB,cAAgBigB,EAAWmN,mBAEvCnN,EAAW+I,qBAGPt3B,EAAKkB,MADLq0B,YAGQ+B,mBAAqB/I,EAAW+I,oBAE5C/I,EAAWmsB,oBACX16C,EAAKU,SAAS,CACVkzB,oBAAqBrF,EAAWosB,wBAChCnsB,YAAaD,EAAWqsB,kBACxBnsB,eAAgBF,EAAWmsB,qBAInCnsB,EAAWa,MAAMnM,SAAQ,SAACqM,EAAMvG,GAC5B/O,EAAO+O,GAAK,CAAE0I,aAAa,EAAOvK,YAAamI,MAAMC,EAAKE,aAAa3kB,QAASgwC,UAAWvrB,EAAKvU,OAChG,IAAK,IAAIoI,EAAI,EAAGA,EAAImM,EAAKE,aAAa3kB,OAAQsY,IAC1CnJ,EAAO+O,GAAG7B,YAAY/D,GAAK,CACvBoI,mBAAoB,CAChB+f,kBAAmB,GACnB9f,sBAAsB,GAE1BrE,QAASmI,EAAKE,aAAarM,GAAGzkB,GAC9B+sC,cAAc,EACd5gB,cAAe,GAG3B,IAEA,IAAAiwB,EAGI96C,EAAKkB,MAFLi5C,EAAoBW,EAApBX,qBACAC,EAAuBU,EAAvBV,yBAGAD,GAAwBC,KACxB7rB,EAAWmB,wBAAyB,EACpC1vB,EAAKU,SAAS,CACVi7B,iBAAiB,KAIzB37B,EAAKU,SAAS,CACV6tB,WAAYA,EACZvU,OAAQA,IACT,kBAAMtY,EAAAA,EAAc2N,YAAW,EAAM,IAExC,IAAM0oB,EAAe/3B,EAAK24B,oBAE1B34B,EAAKU,SAAS,CACVq3B,aAAcA,GAEtB,CACJ,CACJ,CACA,MAAOn3B,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAK25C,qBAAqBp7C,KAAMqC,GACxE,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,0BAEgC,SAACK,GAC9B,IACI,IACIkuB,EACAvuB,EAAKkB,MADLqtB,WAGJ,GAAIA,EAAY,CACZ,IAAMjuB,GACAC,EAAAA,EAAAA,GAASF,EAAML,EAAKijC,uBAAuB1kC,MAEjD,GAAI+B,SAAAA,EAAQG,QACJH,EAAOK,MACHL,EAAOK,KAAK2uB,MAAQhvB,EAAOK,KAAK21B,OAASh2B,EAAOK,KAAK41B,SAAU,CAC/D,IAAM1R,EAAc0J,EAAWa,MAAMrgB,OAAOzO,EAAOK,KAAK2uB,OAAOE,aAAazgB,OAAOzO,EAAOK,KAAK21B,QAAQzR,OACjGic,EACFjc,EAAOiC,WAAU,SAAAC,GAAC,OAAIA,EAAEpmB,KAAKjC,KAAO4B,EAAOK,KAAK41B,QAAQ,IAC5D,GAAIuK,GAAc,EAAG,CACjB,IAAMiC,EAAyBle,EAAOic,GAClCxgC,EAAOK,KAAKo6C,QACZhY,EAAWpiC,KAAKmG,QAAUxG,EAAOK,KAAKo6C,QAGtChY,EAAWpiC,KAAKmG,QAAU,GAE1Bi8B,IACAA,EAAWzhC,WAAQyD,GAEvB/E,EAAKU,SAAS,CACV6tB,WAAYA,GAEpB,CACJ,CAGZ,CACJ,CAAE,MAAO3tB,GACLZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKijC,uBAAuB1kC,KAAMqC,GAC1E,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,0BAEgC,SAACK,GAC9B,IACI,IAAMC,GACAC,EAAAA,EAAAA,GAASF,EAAML,EAAKi+B,uBAAuB1/B,MAEjD,GAAI+B,SAAAA,EAAQG,OAAQ,CAChB,IAAM6hB,EAA+BtiB,EAAKw6C,sBAAsBl6C,EAAOK,KAAK85C,aACtEn6C,EAAOK,KAAK85C,aAAe,GACjCz6C,EAAKU,SAAS,CACVuzB,aAAc3zB,EAAOK,KAAKszB,aAC1B3R,mBAAAA,EACAib,MAAOj9B,EAAOK,KAAK85C,eAEvB/4C,EAAAA,EAAc2N,YAAW,EAC7B,CACJ,CACA,MAAOzO,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKi+B,uBAAuB1/B,KAAMqC,GAC1E,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,iBAEuB,SAACK,GACrB,IACI,IAAMC,GACAC,EAAAA,EAAAA,GAASF,EAAML,EAAKg7C,cAAcz8C,MAExC,GAAI+B,SAAAA,EAAQG,OAAQ,CAChB,IAAMyzB,EAAc5zB,EAAOK,KAE3BX,EAAKU,SAAS,CACVwzB,OAAQA,GAEhB,CACJ,CACA,MAAOtzB,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKg7C,cAAcz8C,KAAMqC,GACjE,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,oCAE0C,SAACK,GACxC,IACI,IAAMC,GACAC,EAAAA,EAAAA,GAASF,EAAML,EAAKg/B,iCAAiCzgC,MAE3D,GAAI+B,SAAAA,EAAQG,QACJH,EAAOK,KAAKL,OAAQ,CACpB,IACIiuB,EACAvuB,EAAKkB,MADLqtB,WAGJ,GAAIA,GAAcjuB,EAAOK,KAAK0W,OAAS/W,EAAOK,KAAKke,OAAS0P,EAAWhwB,KAAM,CACzEmD,EAAAA,EAAc2N,YAAW,GACzB,IAAMsmB,EAAY,GAAHnvB,OAAM3I,OAAOC,SAASm9C,QAAMz0C,OAAGC,EAAAA,EAAUC,OAAM,sCAAAF,OAAqClG,EAAOK,KAAK0W,OAC/GlI,GAASumB,sCAAsCC,EAC3Cr1B,EAAOK,KAAKke,MAAO0P,EAAWhwB,KAAMyB,EAAKk7C,yCAA0Cl7C,EAAKa,UAC5Fb,EAAKU,SAAS,CACVy6C,4BAA4B,GAEpC,CACJ,CAER,CACA,MAAOv6C,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKg/B,iCAAiCzgC,KAAMqC,GACpF,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,4CAEkD,SAACK,GAChD,IACI,IAAMC,GACAC,EAAAA,EAAAA,GAASF,EAAML,EAAKk7C,yCAAyC38C,MAE9D+B,SAAAA,EAAQG,QACTT,EAAKa,SAASC,EAAAA,EAAQs6C,cAAcp7C,EAAKk7C,yCAAyC38C,MAE1F,CACA,MAAOqC,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKk7C,yCAAyC38C,KAAMqC,GAC5F,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,4BAEkC,SAACK,GAChC,IACI,IACIkuB,EACAvuB,EAAKkB,MADLqtB,WAGEjuB,GACAC,EAAAA,EAAAA,GAASF,EAAML,EAAK+/B,yBAAyBxhC,MAEnD,GAAI+B,SAAAA,EAAQG,OACR,GAAIH,EAAOK,KAAKL,QACZ,GAAIiuB,EAAY,CAYZ,GAXIjuB,EAAOK,KAAK2N,eACZtO,EAAKU,SAAS,CACV4N,cAAehO,EAAOK,KAAK2N,gBAG/BhO,EAAOK,KAAKiC,aACZ5C,EAAKU,SAAS,CACVkC,YAAatC,EAAOK,KAAKiC,cAI7B2rB,EAAW8sB,gBAAiB,CAC5B,IACI/sC,EACAtO,EAAKkB,MADLoN,mBAEkBvJ,IAAlBuJ,GAA+BA,EAAgB,IAC/Ca,GAAS4mB,+BAA+BznB,EAAetO,EAAKs7C,qCAAsCt7C,EAAKa,UACvGb,EAAKU,SAAS,CACVi7B,iBAAiB,IAG7B,MAEI,GAAIr7B,EAAOK,KAAKiC,YAAa,CACzB,IAAM6L,EAAS,GAAAjI,OACRC,EAAAA,EAAUC,OAAM,gCAAAF,OAA+B+nB,EAAWmN,mBAEjE17B,EAAKU,SAAS,CACVi3B,wBAAwB,EACxB/0B,YAAatC,EAAOK,KAAKiC,YACzB6L,UAAWA,GAEnB,MAEI8f,EAAWmB,wBAAyB,EACpC1vB,EAAKU,SAAS,CACV6tB,WAAYA,IAIxB7sB,EAAAA,EAAc2N,YAAW,EAC7B,OAGArP,EAAKyP,WAGjB,CACA,MAAO7O,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAK+/B,yBAAyBxhC,KAAMqC,GAC5E,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,wBAE8B,SAACK,GAC5B,IACI,IACIkuB,EACAvuB,EAAKkB,MADLqtB,WAGEjuB,GACAC,EAAAA,EAAAA,GAASF,EAAML,EAAKyiC,qBAAqBlkC,MAE3C+B,SAAAA,EAAQG,QAAU8tB,IAClBA,EAAWa,MAAMnM,SAAQ,SAAAqM,GACrB,IAAMgH,EAAkChH,EAAKE,aAAallB,MAAK,SAAAixC,GAAC,OAAIA,EAAE78C,KAAO4B,EAAOK,KAAK21B,KAAK,IAC9F,GAAIA,EAAO,CACP,IAAM9P,EAAgC8P,EAAMzR,OAAOva,MAAK,SAAAk4B,GAAC,OAAIA,EAAE7hC,KAAKjC,KAAO4B,EAAOK,KAAKi2B,WAAW,IAC9FpQ,IACIlmB,EAAOK,KAAK0mC,UACZ7gB,EAAM6gB,WAAY,EAElB7gB,EAAM6gB,WAAY,EAG9B,CACJ,IAEArnC,EAAKU,SAAS,CACV6tB,WAAYvuB,EAAKkB,MAAMqtB,aAGnC,CACA,MAAO3tB,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKyiC,qBAAqBlkC,KAAMqC,GACxE,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,2BAEiC,SAACK,GAC/B,IACI,IAAMC,GACAC,EAAAA,EAAAA,GAASF,EAAML,EAAKm7B,wBAAwB58B,MAElD,GAAI+B,SAAAA,EAAQG,QACJH,EAAOK,KAAKL,OAAQ,CACpB,IACIgO,EACAtO,EAAKkB,MADLoN,mBAEkBvJ,IAAlBuJ,GAA+BA,EAAgB,IAC/C5M,EAAAA,EAAc2N,YAAW,GACzBF,GAAS4mB,+BAA+BznB,EAAetO,EAAKs7C,qCAAsCt7C,EAAKa,UAE/G,CAER,CACA,MAAOD,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKm7B,wBAAwB58B,KAAMqC,GAC3E,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,wCAE8C,SAACK,GAC5C,IACI,IAAMC,GACAC,EAAAA,EAAAA,GAASF,EAAML,EAAKs7C,qCAAqC/8C,MAE/D,GAAI+B,SAAAA,EAAQG,QACJH,EAAOK,KAAM,CACbX,EAAKU,SAAS,CACV0xB,YAAa9xB,EAAOK,KAAK66C,wBACzBxf,4BAA4B,IAEhC,IACI1tB,EACAtO,EAAKkB,MADLoN,cAEAA,IACA5M,EAAAA,EAAc2N,YAAW,GACzBF,GAASgnB,+BAA+B7nB,EAAetO,EAAKy7C,2BAA4Bz7C,EAAKa,WAEjG,IAAMk3B,EAAe/3B,EAAK24B,oBAC1B34B,EAAKU,SAAS,CACVq3B,aAAcA,GAEtB,CAER,CACA,MAAOn3B,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKs7C,qCAAqC/8C,KAAMqC,GACxF,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,2BAEiC,SAACK,GAC/B,IACI,IAAMC,GACAC,EAAAA,EAAAA,GAASF,EAAML,EAAKk8B,wBAAwB39B,MAElD,GAAI+B,SAAAA,EAAQG,QACJH,EAAOK,KAAM,CACb,IACI2N,EACAtO,EAAKkB,MADLoN,cAEAA,IACA5M,EAAAA,EAAc2N,YAAW,GACzBF,GAAS4mB,+BAA+BznB,EAAetO,EAAKs7C,qCAAsCt7C,EAAKa,UAE/G,CAER,CACA,MAAOD,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKk8B,wBAAwB39B,KAAMqC,GAC3E,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,8BAEoC,SAACK,GAClC,IACI,IAAMC,GACAC,EAAAA,EAAAA,GAASF,EAAML,EAAKy7C,2BAA2Bl9C,MAEjD+B,SAAAA,EAAQG,SACRT,EAAKU,SAAS,CACVg7C,qBAAsBp7C,EAAOK,KAAKg7C,6BAA6BC,oBAC/D7hB,2BAA4BhrB,OAAOzO,EAAOK,KAAKg7C,6BAA6BE,2BAC5E7hB,yBAA0BjrB,OAAOzO,EAAOK,KAAKg7C,6BAA6B3hB,4BAE9Et4B,EAAAA,EAAc2N,YAAW,GAEjC,CACA,MAAOzO,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKy7C,2BAA2Bl9C,KAAMqC,GAC9E,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,6BAEmC,SAACK,GACjC,IACI,IAAMC,GACAC,EAAAA,EAAAA,GAASF,EAAML,EAAK87C,0BAA0Bv9C,MAChD+B,SAAAA,EAAQG,QACRT,EAAKU,SAAS,CACVokB,mBAAoBxkB,EAAOK,KAAKo7C,QAAQj3B,oBAGpD,CACA,MAAOlkB,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAK87C,0BAA0Bv9C,KAAMqC,GAC7E,CACJ,KAACT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,+BAEqC,SAACK,GACnC,IACI,IAAMC,GACAC,EAAAA,EAAAA,GAASF,EAAML,EAAKogB,4BAA4B7hB,MAClD+B,SAAAA,EAAQG,QACRT,EAAKU,SAAS,CACVg/B,oCAAqCp/B,EAAOK,KAAK++B,oCACjDplB,iBAAkBha,EAAOK,KAAK2Z,kBAAoB,IAG9D,CACA,MAAO1Z,GACHZ,EAAKa,SAASC,EAAAA,EAAQC,cAAcf,EAAKogB,4BAA4B7hB,KAAMqC,GAC/E,CACJ,KAGAT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,iBACwB,WACpB,IAAMg8C,EAAiBtqC,GAAAA,EAAYuqC,iBAC7B5+C,EAAmDqU,GAAAA,EAAY3P,eAC/D8+B,EAAsBnvB,GAAAA,EAAYiJ,cAEpCqhC,GACA7sC,GAAS4nB,UAAU/2B,EAAKg7C,cAAeh7C,EAAKa,UAC5CsO,GAAS2nB,aAAa92B,EAAKu6C,iBAAkBv6C,EAAKa,UAClDsO,GAASgoB,mBAAmBn3B,EAAK87C,2BACjC3sC,GAASwO,qBAAqB3d,EAAKogB,6BAEnCpgB,EAAKU,SAAS,CACVikB,gBAAiBkc,EAASlc,gBAC1BoH,eAAgB8U,EAAS9U,eACzB7G,iBAAkB2b,EAAS3b,iBAG3B7nB,UAAWA,GACZ2C,EAAKs+B,qBAGRt+B,EAAKU,SAAS,CACVc,gBAAgB,IACjB,kBAAMxB,EAAKa,SAASC,EAAAA,EAAQo7C,cAAcl8C,EAAKm8C,cAAc59C,MAAM,GAE9E,KAGA4B,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,wBAC8B,WAC1B0R,GAAAA,EAAY0qC,0BAA0Bp8C,EAAKm8C,cAC/C,KAACh8C,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAJ,GAAA,qBAE0B,SAACiC,EAAOC,GAC/BlC,EAAKU,SAAS,CACVc,gBAAgB,IACjB,WACCxB,EAAKa,SAASC,EAAAA,EAAQsB,uBAAuBpC,EAAKqC,kBAAkB9D,KAAM0D,EAAOC,IACjFlC,EAAKsC,cAAc,IACvB,GACJ,IApxLItC,EAAKq8C,WAAa,eAClBr8C,EAAKgB,SAAW,aAChBhB,EAAKiB,OAAS,kBACdjB,EAAKsiB,mBAAqB,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IAC9CtiB,EAAKkB,MAAQlB,EAAKmB,kBAClBnB,EAAK2X,aAAe3Z,IAAAA,YAIpB0T,GAAAA,EAAY4qC,uBAAuBt8C,EAAKm8C,eACxCn8C,CACJ,CAosMC,OApsMAoB,EAAAA,EAAAA,GAAAs2B,EAAA,EAAAr2B,IAAA,kBAAAC,MAED,WACI,IAAIjE,EACAqiC,GAA+C,EAE/CplB,EAA2B,GAC3B/Y,KAAKL,QACL7D,EAAYkE,KAAKL,MAAM7D,UACvBqiC,EAAsCn+B,KAAKL,MAAMw+B,oCACjDplB,EAAmB/Y,KAAKL,MAAMoZ,kBAGlC,IAAMumB,EAAsBnvB,GAAAA,EAAYiJ,cAExC,MAAO,CACH2T,WAAY,EACZpM,UAAW,GACXqT,YAAa,CACTrT,UAAW,GACX2pB,UAAW,GACX+G,YAAa,GACba,OAAQ,CAAC,CAAEnE,WAAW,IACtB1N,WAAY,GACZ6U,YAAa,IAEjBrkB,YAAa,GACb2H,2BAA4B,EAC5BwL,iBAAiB,EACjB/jC,gBAAgB,EAChB+sB,gBAAYxpB,EACZ87B,SAAUnvB,GAAAA,EAAYiJ,cACtBgK,gBAAiBkc,EAASlc,gBAC1B2a,iBAAiB,EACjBtlB,OAAQ,GACRoR,UAAU,EACVmxB,sBAAuB,GACvBxwB,eAAgB8U,EAAS9U,eACzBywB,aAAa,EACbr6B,kBAAkB,EAClB8R,aAAc,GACdoL,cAAc,EACdvC,wBAAwB,EACxBqe,4BAA4B,EAC5Bjc,gBAAgB,EAChBtB,oBAAoB,EACpB6e,uBAAuB,EACvBzgB,4BAA4B,EAC5BJ,yBAAyB,EACzBxZ,WAAY,EACZC,SAAU,EACVhlB,UAAWA,EACXilB,mBAAoB,GACpB4C,iBAAkB2b,EAAS3b,iBAC3ByW,iBAAiB,EACjBlN,gBAAgB,EAChB2N,YAAY,EACZE,YAAY,EACZiB,MAAO,EACPvD,yBAA0B,EAG1BrC,wBAAwB,EACxBwiB,sBAAsB,EACtBtiB,yBAAyB,EACzBuiB,yBAAyB,EAGzBt1B,mBAAoB,GAGpB4a,oCAAqCA,EACrC5oB,gBAAgB,EAChBwD,iBAAkBA,EAClBI,UAAWhJ,GAAAA,EAAYiJ,cAAcD,UAE7C,GAAC,CAAArZ,IAAA,wBAAAC,MA6mED,SAA8Bo7C,GAC1B,IAAMp6B,EAA+B,GACrC,IACI/gB,KAAK+gB,mBAAmBW,SAAQ,SAAAiF,GACxBA,EAASw0B,GACTp6B,EAAmBpe,KAAKgkB,EAEhC,GACJ,CACA,MAAOtnB,GACHW,KAAKV,SAASC,EAAAA,EAAQC,cAAcQ,KAAKi5C,sBAAsBj8C,KAAMqC,GACzE,CACA,OAAO0hB,CACX,GAAC,CAAAjhB,IAAA,SAAAC,MAskHD,WACI,IAmEIq7C,EAeAC,EAyBAC,EA8BAC,EAYAC,EA+CAC,EA8BAC,EA8BAC,EA4BAC,EAgBAC,EAeAC,EAYAC,EAaA/6C,EAGIg7C,EAvVRC,EAgEIj8C,KAAKL,MA/DLotB,EAAUkvB,EAAVlvB,WACApM,EAASs7B,EAATt7B,UACAkQ,EAAWorB,EAAXprB,YACAspB,EAAoB8B,EAApB9B,qBACAnW,EAAeiY,EAAfjY,gBACA/jC,EAAcg8C,EAAdh8C,eACA+sB,EAAUivB,EAAVjvB,WACAqF,EAAmB4pB,EAAnB5pB,oBACAE,EAAS0pB,EAAT1pB,UACAnP,EAAe64B,EAAf74B,gBACA+X,EAAU8gB,EAAV9gB,WACA4C,EAAeke,EAAfle,gBACAtlB,EAAMwjC,EAANxjC,OACAoR,EAAQoyB,EAARpyB,SACA0O,EAAQ0jB,EAAR1jB,SACA/N,EAAcyxB,EAAdzxB,eACAywB,EAAWgB,EAAXhB,YACAr6B,EAAgBq7B,EAAhBr7B,iBACA8R,EAAYupB,EAAZvpB,aACAoL,EAAYme,EAAZne,aACAvC,EAAsB0gB,EAAtB1gB,uBACAc,EAAkB4f,EAAlB5f,mBACAxb,EAAUo7B,EAAVp7B,WACAC,EAAQm7B,EAARn7B,SACA83B,EAAoBqD,EAApBrD,qBACAC,EAAuBoD,EAAvBpD,wBACAztB,GAAkB6wB,EAAlB7wB,mBACAtvB,GAASmgD,EAATngD,UACAilB,GAAkBk7B,EAAlBl7B,mBACA64B,GAA0BqC,EAA1BrC,2BACAjc,GAAcse,EAAdte,eACAud,GAAqBe,EAArBf,sBACAzgB,GAA0BwhB,EAA1BxhB,2BACAJ,GAAuB4hB,EAAvB5hB,wBACApN,GAAWgvB,EAAXhvB,YACAkP,GAAY8f,EAAZ9f,aACAG,GAAe2f,EAAf3f,gBACAJ,GAAe+f,EAAf/f,gBACAE,GAAuB6f,EAAvB7f,wBACAG,GAAa0f,EAAb1f,cACAf,GAAeygB,EAAfzgB,gBACA7X,GAAgBs4B,EAAhBt4B,iBACAyW,GAAe6hB,EAAf7hB,gBACAlN,GAAc+uB,EAAd/uB,eACA2N,GAAUohB,EAAVphB,WACAE,GAAUkhB,EAAVlhB,WACApI,GAAMspB,EAANtpB,OACAqJ,GAAKigB,EAALjgB,MAGA5F,GAAsB6lB,EAAtB7lB,uBACA/0B,GAAW46C,EAAX56C,YACAi1B,GAAuB2lB,EAAvB3lB,wBACAppB,GAAS+uC,EAAT/uC,UAGAqW,GAAkB04B,EAAlB14B,mBAGA4a,GAAmC8d,EAAnC9d,oCACA5oB,GAAc0mC,EAAd1mC,eACAwD,GAAgBkjC,EAAhBljC,iBACAI,GAAS8iC,EAAT9iC,UAoKJ,GA/JImd,IAA2Bj1B,KAC3B+5C,EACI3+C,IAAAA,cAACqQ,EAAmB,CAChB7C,OAAQ5I,GAAYqB,iBACpBqK,cAAe1L,GAAY0L,cAC3B5Q,KAAMi6B,GACN50B,cAAepD,EAAc4L,YAC7BkD,UAAWA,GACX/O,QAAS6B,KAAKu2B,8BAQtBz6B,IAAaA,GAAUu/C,qBACvBA,EACI5+C,IAAAA,cAACy/C,GAAkB,CACfv7B,UAAWA,EACXC,iBAAkBA,EAClBzkB,KAAMo/B,EACN1a,WAAYA,EACZC,SAAUA,EACVC,mBAAoBA,GACpBC,aAAcgb,GACd/a,QAASua,GACTta,aAAclhB,KAAKm8C,oBACnBh7B,oBAAqBnhB,KAAKmhB,oBAC1BzD,kBAAmB1d,KAAK87B,+BACxB1a,QAASphB,KAAKo8C,eACd/6B,YAAarhB,KAAK67B,mBAClB19B,QAAS6B,KAAKy7B,0BACdna,SAAUthB,KAAKq8C,gBACfvgD,UAAWA,GAAUu/C,sBAM7Bv/C,IAAaA,GAAUw/C,gBAAkB3oB,IAAUJ,IACnD+oB,EACI7+C,IAAAA,cAAC6/C,GAAc,CACXx6B,KAAMqa,GACN5J,UAAWA,EACXhQ,QAAS+Z,GACT9J,QAAS0J,GACTzJ,gBAAiB2J,GACjB1J,aAAcA,EACdv2B,KAAMkgC,EACNxb,WAAYA,EACZC,SAAUA,EACVC,mBAAoBA,GACpBphB,MAAO48B,GACP5J,OAAQA,GACRC,kBAAmBoJ,GACnBnJ,0BAA2B7yB,KAAK6yB,0BAChC3R,aAAclhB,KAAKkhB,aACnBC,oBAAqBnhB,KAAKmhB,oBAC1B2R,2BAA4B9yB,KAAK8yB,2BACjC1R,QAASphB,KAAKu8C,mBACdl7B,YAAarhB,KAAKqhB,YAClBljB,QAAS6B,KAAKw8B,sBACdlb,SAAUthB,KAAKw8C,oBACf1gD,UAAWA,GAAUw/C,kBAM7Bx/C,IAAau2B,IACbkpB,EACI9+C,IAAAA,cAACggD,GAAsB,CACnBpqB,oBAAqBA,EACrBl2B,KAAMy9C,GACNloC,aAAc1R,KAAK4+B,8BACnB9iC,UAAWA,GAAUy/C,0BAM7Bz/C,IAAa6hC,KACb6d,EACI/+C,IAAAA,cAAC4J,EAAAA,EAAK,CACFC,sBAAoB,EACpBK,OACIlK,IAAAA,cAACG,EAAAA,EAAM,CACHO,GAAG,eACHG,QAAS0C,KAAKo7B,kBAEbt/B,GAAU0/C,WAAWjrB,SAG9BpzB,GAAG,aACHsJ,OAAQ3K,GAAU0/C,WAAWkB,mBAC7Bh2C,SAAS,KACTvK,KAAMwhC,GACNx/B,QAAS6B,KAAKy+B,mBAEdhiC,IAAAA,cAAC4H,EAAAA,EAAI,CAACC,WAAS,EAACe,QAAS,GACrB5I,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,GAAI,GAAIyC,GAAI,IACnB1K,IAAAA,cAAC0H,EAAAA,EAAI,KACAg3B,GAAc6I,EAAkBloC,GAAU0/C,WAAWmB,+BAChD7gD,GAAU0/C,WAAWoB,kCAGnCngD,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,GAAI,GAAIyC,GAAI,IACnB1K,IAAAA,cAACmH,EAAAA,EAAS,CACNlD,MAAOq9B,GAAmBD,EAC1Bj6B,WAAYk6B,EACRjiC,GAAU0/C,WAAWqB,cACpB/e,EACGhiC,GAAU0/C,WAAWsB,eAAiB,GAC9C3/C,GAAG,gBACH0K,MAAOszB,GAAc6I,EAAkBloC,GAAU0/C,WAAWuB,gBACtDjhD,GAAU0/C,WAAWwB,qBAC3B18B,UAAU,EACVtiB,KAAK,OACL+B,MAAOo7B,EACPp3B,SAAU/D,KAAKg+B,6BASnCliC,IAAao/C,KACbO,EACIh/C,IAAAA,cAAC4J,EAAAA,EAAK,CACFC,sBAAoB,EACpBK,OACIlK,IAAAA,cAACG,EAAAA,EAAM,CACHO,GAAG,QACHG,QAAS0C,KAAK0+B,0BAEb5iC,GAAU2/C,kBAAkBwB,OAGrC9/C,GAAG,oBACHsJ,OAAQ3K,GAAU2/C,kBAAkB7tB,gBACpClnB,SAAS,KACTvK,KAAM++C,GACN/8C,QAAS6B,KAAK0+B,0BAEdjiC,IAAAA,cAAC4H,EAAAA,EAAI,CAACC,WAAS,EAACe,QAAS,GACrB5I,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,GAAI,GAAIyC,GAAI,IACnB1K,IAAAA,cAAC0H,EAAAA,EAAI,KACArI,GAAU2/C,kBAAkByB,4BASjDphD,IAAakxB,GAAcA,EAAW4J,UAAW,CACjD,IAAMumB,GAAoC,GAC1CnwB,EAAW4J,UAAUlV,SAAQ,SAAC07B,EAAmB51B,GAC7C,IAAIuP,EAAU,GACSqmB,EAAkBtmB,cAAczpB,MAAM,KAC9CqU,SAAQ,SAAA27B,GACnBtmB,GAAoBsmB,EAAKrvC,QAAQ,KAAM,GAC3C,IACA+oB,EAAUA,EAAQ/oB,QAAQ,KAAM,MAChCmvC,GAAmBx6C,KACflG,IAAAA,cAACgM,EAAAA,GAAQ,CAAC3I,IAAG,qBAAAmF,OAAuBuiB,IAChC/qB,IAAAA,cAACiM,EAAAA,GAAS,KACNjM,IAAAA,cAAA,YACKs6B,KAKrB,IAEA2kB,EACIj/C,IAAAA,cAAC2L,EAAAA,GAAK,CAACjL,GAAG,qBACNV,IAAAA,cAAC0M,EAAAA,GAAS,KACLg0C,IAIjB,CAmKA,OAhKIrhD,IAAau+B,KACbshB,EACIl/C,IAAAA,cAAC4J,EAAAA,EAAK,CACFC,sBAAoB,EACpBK,OACIlK,IAAAA,cAACG,EAAAA,EAAM,CACHO,GAAG,YACHG,QAAS0C,KAAKs6B,4BAEbx+B,GAAU+0B,YAAYysB,UAG/BngD,GAAG,sBACHsJ,OAAQ3K,GAAU+0B,YAAY0sB,uBAC9B72C,SAAS,KACTvK,KAAMk+B,GACNl8B,QAAS6B,KAAKs6B,4BAEd79B,IAAAA,cAAC4H,EAAAA,EAAI,CAACC,WAAS,EAACe,QAAS,GACrB5I,IAAAA,cAAC4H,EAAAA,EAAI,CAACI,MAAI,EAACC,GAAI,GAAIyC,GAAI,IAClBu0C,MAQjB5/C,IAAakxB,GAAcA,EAAW4J,YACtCglB,EACIn/C,IAAAA,cAAC+gD,GAAW,CACR3sB,YAAaA,EACbC,oBAAqB9D,EAAW8D,oBAChCC,UAAWopB,EACXr+C,UAAWA,GAAU+0B,YACrBG,gBAAiBhxB,KAAKgxB,gBACtBC,YAAajxB,KAAKixB,YAClBC,kBAAmBlxB,KAAKkxB,kBACxBC,wBAAyBnxB,KAAK06B,iCAMtC5+B,IAAa2+B,KACbohB,EACIp/C,IAAAA,cAACghD,EAAAA,EAAkB,CACfC,YAAa76C,EAAAA,EAAOC,SAAShH,GAAU+0B,YAAY8sB,sBAAuB,CAACplB,IAC3Ep8B,KAAMs+B,GACNmjB,qBAAsB59C,KAAKmxB,wBAC3B0sB,kBAAmB/hD,GAAU+0B,YAAYitB,sBACzCC,uBAAwB/9C,KAAK46B,6BAC7BojB,oBAAqBliD,GAAU+0B,YAAYotB,sBAC3CzkC,MAAO1d,GAAU+0B,YAAYqtB,kBAMpCjD,IACDa,EACIr/C,IAAAA,cAACyT,GAAM,CACH/T,KAAM0+B,GACNtqB,cAAevQ,KAAKuQ,cACpBpS,QAAS6B,KAAK86B,cACdnpB,WAAY3R,KAAKk7B,gBAMzBH,KACAghB,EACIt/C,IAAAA,cAACugB,GAAM,CACH7gB,KAAM4+B,GACN/8B,KAAK,cACLqgB,cAAere,KAAKqe,cACpBlgB,QAAS6B,KAAKg7B,cACd/c,WAAYje,KAAKi7B,iBAMxBh7B,GAAkBnE,KAGfuF,IAAe2rB,GAAcoJ,KAC7B4lB,EACIv/C,IAAAA,cAAC4B,EAAkB,CACf+C,qBAAmB,EACnBjF,KAAMi6B,GACN/0B,YAAaA,GACbC,qBAAsBD,GACtBG,cAAepD,EAAc4L,YAC7BvI,UAAWurB,EAAWhwB,KACtBmB,QAAS6B,KAAKq2B,0BACdt0B,MAAO/B,KAAK+B,SAMpBirB,IAgDIhsB,EA/CCo5B,GAgDG39B,IAAAA,cAAAA,IAAAA,SAAA,KACKm/C,GA/CLn/C,IAAAA,cAAAA,IAAAA,SAAA,KACIA,IAAAA,cAAC0hD,GAAkB,CACfpxB,WAAYA,EACZC,WAAYA,EACZ5J,gBAAiBA,EACjB3K,OAAQA,EACRoR,SAAUA,EACVsB,cAAeytB,EACfpuB,eAAgBA,EAChBjH,mBAAoBA,GACpBiK,yBAA0B2Q,GAC1B/S,mBAAoBA,GACpB7V,eAAgBA,GAChBwD,iBAAkBA,GAClB3C,aAAcpW,KAAKoW,aACnBta,UAAWA,GAAUsiD,mBACrBnxB,YAAaA,GACbtJ,iBAAkBA,GAClBuJ,eAAgBA,GAChB7B,eAAgBwtB,EAChB1/B,UAAWA,GACXsR,UAAWzqB,KAAKyqB,UAChB0C,WAAYntB,KAAKmtB,WACjBtJ,iBAAkB7jB,KAAK6jB,iBACvBE,sBAAuB/jB,KAAK+jB,sBAC5BD,iBAAkB9jB,KAAK8jB,iBACvBE,uBAAwBhkB,KAAKgkB,uBAC7BC,qBAAsBjkB,KAAKikB,qBAC3BC,mBAAoBlkB,KAAKkkB,mBACzBxG,kBAAmB1d,KAAK0d,kBACxByG,cAAenkB,KAAKmkB,cACpBiJ,YAAaptB,KAAKq7B,kBAClBhO,YAAartB,KAAKqtB,YAClB/B,qBAAsBtrB,KAAKsrB,qBAC3BlH,aAAcpkB,KAAKokB,aACnBkJ,WAAYttB,KAAKstB,WACjBvX,kBAAmB/V,KAAK+V,kBACxBC,iBAAkBhW,KAAKgW,iBACvBuX,SAAUvtB,KAAKutB,WAElByuB,KAejBv/C,IAAAA,cAAC4hD,EAAAA,EAAM,CACHC,YAAU,EACVxD,WAAY96C,KAAK86C,WACjBr7C,SAAUO,KAAKP,SACfC,OAAQM,KAAKN,OACb6+C,UAAQ,EACRC,mBAAiB,GAEhBx9C,EACAq6C,EACAC,EACAF,EACAG,EACAC,EACAC,EACAE,EACAE,EACAC,EACAC,EAGb,KAAC5lB,CAAA,CA5tMoB,CAAS15B,IAAAA,WA+tM5BgiD,IAAgCC,EAAAA,EAAAA,GAAWvoB,IAIjDwoB,IAAAA,OAAgBliD,IAAAA,cAACgiD,GAA6B,MAAKhoB,SAASwG,eAAe,Q,kBCj5M3E,IAAIl2B,EAAM,CACT,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,KACR,UAAW,KACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,KACR,UAAW,MACX,aAAc,MACd,UAAW,KACX,OAAQ,MACR,UAAW,MACX,OAAQ,KACR,UAAW,KACX,OAAQ,MACR,UAAW,MACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,OAAQ,KACR,UAAW,KACX,OAAQ,MACR,UAAW,MACX,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,OAAQ,KACR,UAAW,KACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,QAAS,MACT,WAAY,MACZ,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,OAAQ,KACR,UAAW,KACX,OAAQ,MACR,UAAW,MACX,OAAQ,KACR,UAAW,KACX,OAAQ,MACR,UAAW,MACX,aAAc,MACd,gBAAiB,MACjB,aAAc,MACd,gBAAiB,MACjB,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,UAAW,MACX,aAAc,MACd,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,aAAc,MACd,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,KACR,UAAW,KACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,KACR,UAAW,KACX,OAAQ,MACR,UAAW,MACX,OAAQ,KACR,UAAW,MACX,aAAc,MACd,UAAW,KACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,aAAc,MACd,UAAW,MACX,OAAQ,MACR,UAAW,MACX,WAAY,MACZ,cAAe,MACf,UAAW,MACX,aAAc,MACd,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,aAAc,MACd,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,YAAa,MACb,eAAgB,MAChB,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,QAAS,MACT,WAAY,MACZ,OAAQ,MACR,UAAW,MACX,OAAQ,KACR,UAAW,KACX,OAAQ,MACR,UAAW,MACX,UAAW,MACX,aAAc,MACd,QAAS,MACT,WAAY,MACZ,OAAQ,MACR,UAAW,MACX,QAAS,MACT,WAAY,MACZ,QAAS,MACT,aAAc,MACd,gBAAiB,MACjB,WAAY,MACZ,UAAW,KACX,aAAc,KACd,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,KACR,YAAa,MACb,eAAgB,MAChB,UAAW,KACX,OAAQ,MACR,UAAW,MACX,aAAc,MACd,gBAAiB,MACjB,OAAQ,MACR,UAAW,MACX,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,OAIf,SAAS63C,EAAeC,GACvB,IAAI1hD,EAAK2hD,EAAsBD,GAC/B,OAAOE,EAAoB5hD,EAC5B,CACA,SAAS2hD,EAAsBD,GAC9B,IAAIE,EAAoBC,EAAEj4C,EAAK83C,GAAM,CACpC,IAAIx/C,EAAI,IAAI4/C,MAAM,uBAAyBJ,EAAM,KAEjD,MADAx/C,EAAEgB,KAAO,mBACHhB,CACP,CACA,OAAO0H,EAAI83C,EACZ,CACAD,EAAerK,KAAO,WACrB,OAAO7sB,OAAO6sB,KAAKxtC,EACpB,EACA63C,EAAehnB,QAAUknB,EACzBI,EAAOC,QAAUP,EACjBA,EAAezhD,GAAK,K,gBClShBiiD,EAA2B,CAAC,EAGhC,SAASL,EAAoBM,GAE5B,IAAIC,EAAeF,EAAyBC,GAC5C,QAAqB77C,IAAjB87C,EACH,OAAOA,EAAaH,QAGrB,IAAID,EAASE,EAAyBC,GAAY,CACjDliD,GAAIkiD,EACJE,QAAQ,EACRJ,QAAS,CAAC,GAUX,OANAK,EAAoBH,GAAU1gD,KAAKugD,EAAOC,QAASD,EAAQA,EAAOC,QAASJ,GAG3EG,EAAOK,QAAS,EAGTL,EAAOC,OACf,CAGAJ,EAAoBU,EAAID,ExB5BpBjkD,EAAW,GACfwjD,EAAoBW,EAAI,CAAC3gD,EAAQ4gD,EAAUC,EAAIC,KAC9C,IAAGF,EAAH,CAMA,IAAIG,EAAeC,IACnB,IAASv4B,EAAI,EAAGA,EAAIjsB,EAAS+N,OAAQke,IAAK,CAGzC,IAFA,IAAKm4B,EAAUC,EAAIC,GAAYtkD,EAASisB,GACpCw4B,GAAY,EACPp+B,EAAI,EAAGA,EAAI+9B,EAASr2C,OAAQsY,MACpB,EAAXi+B,GAAsBC,GAAgBD,IAAan4B,OAAO6sB,KAAKwK,EAAoBW,GAAG/K,OAAO70C,GAASi/C,EAAoBW,EAAE5/C,GAAK6/C,EAAS/9B,MAC9I+9B,EAASv6B,OAAOxD,IAAK,IAErBo+B,GAAY,EACTH,EAAWC,IAAcA,EAAeD,IAG7C,GAAGG,EAAW,CACbzkD,EAAS6pB,OAAOoC,IAAK,GACrB,IAAIqhB,EAAI+W,SACEp8C,IAANqlC,IAAiB9pC,EAAS8pC,EAC/B,CACD,CACA,OAAO9pC,CAnBP,CAJC8gD,EAAWA,GAAY,EACvB,IAAI,IAAIr4B,EAAIjsB,EAAS+N,OAAQke,EAAI,GAAKjsB,EAASisB,EAAI,GAAG,GAAKq4B,EAAUr4B,IAAKjsB,EAASisB,GAAKjsB,EAASisB,EAAI,GACrGjsB,EAASisB,GAAK,CAACm4B,EAAUC,EAAIC,EAqBjB,EyBzBdd,EAAoBkB,EAAKf,IACxB,IAAIgB,EAAShB,GAAUA,EAAOiB,WAC7B,IAAOjB,EAAiB,QACxB,IAAM,EAEP,OADAH,EAAoBqB,EAAEF,EAAQ,CAAEpX,EAAGoX,IAC5BA,CAAM,ECLdnB,EAAoBqB,EAAI,CAACjB,EAASkB,KACjC,IAAI,IAAIvgD,KAAOugD,EACXtB,EAAoBC,EAAEqB,EAAYvgD,KAASi/C,EAAoBC,EAAEG,EAASr/C,IAC5E4nB,OAAO44B,eAAenB,EAASr/C,EAAK,CAAEygD,YAAY,EAAM7vC,IAAK2vC,EAAWvgD,IAE1E,ECNDi/C,EAAoB/E,EAAI,WACvB,GAA0B,iBAAfwG,WAAyB,OAAOA,WAC3C,IACC,OAAOxgD,MAAQ,IAAIygD,SAAS,cAAb,EAChB,CAAE,MAAOphD,GACR,GAAsB,iBAAX/C,OAAqB,OAAOA,MACxC,CACA,CAPuB,GCAxByiD,EAAoBC,EAAI,CAAC0B,EAAKC,IAAUj5B,OAAOk5B,UAAUC,eAAeliD,KAAK+hD,EAAKC,GCClF5B,EAAoBlW,EAAKsW,IACH,oBAAX2B,QAA0BA,OAAOC,aAC1Cr5B,OAAO44B,eAAenB,EAAS2B,OAAOC,YAAa,CAAEhhD,MAAO,WAE7D2nB,OAAO44B,eAAenB,EAAS,aAAc,CAAEp/C,OAAO,GAAO,ECL9Dg/C,EAAoBiC,IAAO9B,IAC1BA,EAAO+B,MAAQ,GACV/B,EAAOgC,WAAUhC,EAAOgC,SAAW,IACjChC,GCHRH,EAAoBn9B,EAAI,G,MCKxB,IAAIu/B,EAAkB,CACrB,GAAI,GAaLpC,EAAoBW,EAAE99B,EAAKw/B,GAA0C,IAA7BD,EAAgBC,GAGxD,IAAIC,EAAuB,CAACC,EAA4BliD,KACvD,IAGIigD,EAAU+B,GAHTzB,EAAU4B,EAAaC,GAAWpiD,EAGhBooB,EAAI,EAC3B,GAAGm4B,EAASzW,MAAM/rC,GAAgC,IAAxBgkD,EAAgBhkD,KAAa,CACtD,IAAIkiD,KAAYkC,EACZxC,EAAoBC,EAAEuC,EAAalC,KACrCN,EAAoBU,EAAEJ,GAAYkC,EAAYlC,IAGhD,GAAGmC,EAAS,IAAIziD,EAASyiD,EAAQzC,EAClC,CAEA,IADGuC,GAA4BA,EAA2BliD,GACrDooB,EAAIm4B,EAASr2C,OAAQke,IACzB45B,EAAUzB,EAASn4B,GAChBu3B,EAAoBC,EAAEmC,EAAiBC,IAAYD,EAAgBC,IACrED,EAAgBC,GAAS,KAE1BD,EAAgBC,GAAW,EAE5B,OAAOrC,EAAoBW,EAAE3gD,EAAO,EAGjC0iD,EAAqBC,KAAoD,8CAAIA,KAAoD,+CAAK,GAC1ID,EAAmB//B,QAAQ2/B,EAAqBlqB,KAAK,KAAM,IAC3DsqB,EAAmB9+C,KAAO0+C,EAAqBlqB,KAAK,KAAMsqB,EAAmB9+C,KAAKw0B,KAAKsqB,G,KChDvF1C,EAAoB4C,QAAKn+C,ECGzB,IAAIo+C,EAAsB7C,EAAoBW,OAAEl8C,EAAW,CAAC,MAAM,IAAOu7C,EAAoB,SAC7F6C,EAAsB7C,EAAoBW,EAAEkC,E","sources":["webpack://@hedtech/powercampus-self-service/webpack/runtime/chunk loaded","webpack://@hedtech/powercampus-self-service/./ClientApp/Components/Generic/Print.tsx","webpack://@hedtech/powercampus-self-service/./ClientApp/Types/Enum/PaymentOrigin.ts","webpack://@hedtech/powercampus-self-service/./ClientApp/Components/Generic/PaymentDetailModal.tsx","webpack://@hedtech/powercampus-self-service/./ClientApp/Requests/Generic/ProcessPaymentModal.ts","webpack://@hedtech/powercampus-self-service/./ClientApp/Components/Generic/ProcessPaymentModal.tsx","webpack://@hedtech/powercampus-self-service/./ClientApp/Types/Enum/AuthStatus.ts","webpack://@hedtech/powercampus-self-service/./ClientApp/Requests/Generic/SignIn.ts","webpack://@hedtech/powercampus-self-service/./ClientApp/Components/Generic/SignIn.tsx","webpack://@hedtech/powercampus-self-service/./ClientApp/Types/Generic/IPasswordPolicy.ts","webpack://@hedtech/powercampus-self-service/./ClientApp/Requests/Generic/SignUp.ts","webpack://@hedtech/powercampus-self-service/./ClientApp/Components/Generic/SignUp.tsx","webpack://@hedtech/powercampus-self-service/./ClientApp/Components/Admissions/ApplicationForm/AddressSearchModal.tsx","webpack://@hedtech/powercampus-self-service/./ClientApp/Components/Admissions/ApplicationForm/FieldsHandler.tsx","webpack://@hedtech/powercampus-self-service/./ClientApp/Components/Admissions/ApplicationForm/FieldsGroupHandler.tsx","webpack://@hedtech/powercampus-self-service/./ClientApp/Components/Admissions/ApplicationForm/ApplicationCompletedModal.tsx","webpack://@hedtech/powercampus-self-service/./ClientApp/Components/Admissions/ApplicationForm/ApplicationHandler.tsx","webpack://@hedtech/powercampus-self-service/./ClientApp/Components/Admissions/ApplicationForm/Attachments.tsx","webpack://@hedtech/powercampus-self-service/./ClientApp/Components/Admissions/ApplicationForm/ConfirmationSavedModal.tsx","webpack://@hedtech/powercampus-self-service/./ClientApp/Components/Admissions/ApplicationForm/ETSSearchModal.tsx","webpack://@hedtech/powercampus-self-service/./ClientApp/Requests/Admissions/ApplicationForm.ts","webpack://@hedtech/powercampus-self-service/./ClientApp/Requests/Admissions/Applications.ts","webpack://@hedtech/powercampus-self-service/./ClientApp/Components/Admissions/ApplicationForm/ApplicationFormView.tsx","webpack://@hedtech/powercampus-self-service/./node_modules/moment/locale/ sync ^\\.\\/.*$","webpack://@hedtech/powercampus-self-service/webpack/bootstrap","webpack://@hedtech/powercampus-self-service/webpack/runtime/compat get default export","webpack://@hedtech/powercampus-self-service/webpack/runtime/define property getters","webpack://@hedtech/powercampus-self-service/webpack/runtime/global","webpack://@hedtech/powercampus-self-service/webpack/runtime/hasOwnProperty shorthand","webpack://@hedtech/powercampus-self-service/webpack/runtime/make namespace object","webpack://@hedtech/powercampus-self-service/webpack/runtime/node module decorator","webpack://@hedtech/powercampus-self-service/webpack/runtime/runtimeId","webpack://@hedtech/powercampus-self-service/webpack/runtime/jsonp chunk loading","webpack://@hedtech/powercampus-self-service/webpack/runtime/nonce","webpack://@hedtech/powercampus-self-service/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","/* Copyright 2019 Ellucian Company L.P. and its affiliates.\r\n * File: Print.tsx\r\n * Type: Presentation component */\r\n\r\n// #region Imports\r\nimport React, { useState } from 'react';\r\n\r\n// Core components\r\nimport Button from '@hedtech/powercampus-design-system/react/core/Button';\r\nimport Hidden from '@hedtech/powercampus-design-system/react/core/Hidden';\r\nimport Icon from '@hedtech/powercampus-design-system/react/core/Icon';\r\nimport IconButton from '@hedtech/powercampus-design-system/react/core/IconButton';\r\nimport Snackbar from '@hedtech/powercampus-design-system/react/core/Snackbar';\r\n\r\n// Types\r\nimport { ResultType } from '@hedtech/powercampus-design-system/types/ResultType';\r\nimport { IPrintResources } from '../../Types/Resources/Generic/IPrintResources';\r\n\r\n// #endregion Imports\r\n\r\n// #region Types\r\nexport interface IPrintProps {\r\n classNameButtonText?: string;\r\n classNameIconButton?: string;\r\n disabled?: boolean;\r\n lblPrint?: string;\r\n link: string;\r\n resources: IPrintResources;\r\n}\r\n// #endregion Types\r\n\r\n// #region Component\r\nconst Print: React.FC = (props: IPrintProps): JSX.Element => {\r\n const {\r\n classNameButtonText,\r\n classNameIconButton,\r\n disabled,\r\n lblPrint,\r\n link,\r\n resources\r\n } = props;\r\n\r\n const [open, setOpen] = useState(false);\r\n\r\n const onClickPrint = () => {\r\n setOpen(!open);\r\n window.location.assign(link);\r\n };\r\n\r\n const onClose = () => {\r\n setOpen(!open);\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n {lblPrint ? lblPrint : resources.lblPrint}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {resources.lblPrintProcess}\r\n \r\n )}\r\n open={open}\r\n type={ResultType.success}\r\n onClose={onClose}\r\n />\r\n \r\n );\r\n};\r\n// #endregion Component\r\n\r\n// Export: Component\r\nexport default Print;","/* Copyright 2019 Ellucian Company L.P. and its affiliates.\r\n * File: PaymentOrigin.ts */\r\n\r\nexport enum PaymentOrigin {\r\n Registration = 0,\r\n ConEdRegistration = 1,\r\n MakePayment = 2,\r\n TranscriptRequest = 3,\r\n OnlineDonation = 4,\r\n Application = 5,\r\n PowerCampusReceipt = 6,\r\n PowerCampusGift = 7,\r\n SharedAccessMakePayment = 8\r\n}","/* Copyright 2019 - 2024 Ellucian Company L.P. and its affiliates.\r\n * File: PaymentDetailModal.tsx\r\n * Type: Container component */\r\n\r\n// #region Imports\r\nimport classnames from 'classnames';\r\nimport React from 'react';\r\n\r\n// Core components\r\nimport Button, { ButtonGroup } from '@hedtech/powercampus-design-system/react/core/Button';\r\nimport Grid from '@hedtech/powercampus-design-system/react/core/Grid';\r\nimport Icon from '@hedtech/powercampus-design-system/react/core/Icon';\r\nimport IconButton from '@hedtech/powercampus-design-system/react/core/IconButton';\r\nimport Modal from '@hedtech/powercampus-design-system/react/core/Modal';\r\nimport RadioGroup from '@hedtech/powercampus-design-system/react/core/RadioGroup';\r\nimport Table, { TableBody, TableCell, TableFooter, TableHead, TableRow } from '@hedtech/powercampus-design-system/react/core/Table';\r\nimport Text from '@hedtech/powercampus-design-system/react/core/Text';\r\nimport TextField from '@hedtech/powercampus-design-system/react/core/TextField';\r\n\r\n// Internal components\r\nimport Print from './Print';\r\n\r\n// Helpers\r\nimport Constants from '@hedtech/powercampus-design-system/helpers/Constants';\r\nimport Format from '@hedtech/powercampus-design-system/helpers/Format';\r\nimport Tokens from '@hedtech/powercampus-design-system/react/core/styles/Tokens';\r\nimport { createStyles, Theme, withStyles, WithStyles } from '@hedtech/powercampus-design-system/react/core/styles/withStyles';\r\n\r\n// Types\r\nimport { IJsonResult } from '@hedtech/powercampus-design-system/types/IJsonResult';\r\nimport { ILogData } from '@hedtech/powercampus-design-system/types/ILogData';\r\nimport { IRadioOption } from '@hedtech/powercampus-design-system/types/IRadioOption';\r\nimport { PaymentOrigin } from '../../Types/Enum/PaymentOrigin';\r\nimport { IPaymentDiscountCoupon } from '../../Types/Payment/IPaymentDiscountCoupon';\r\nimport { IPaymentInfo } from '../../Types/Payment/IPaymentInfo';\r\nimport { IPaymentDetailModalResources } from '../../Types/Resources/Generic/IPaymentDetailModalResources';\r\nimport { IPrintResources } from '../../Types/Resources/Generic/IPrintResources';\r\n\r\n// Helpers\r\nimport LogData from '@hedtech/powercampus-design-system/helpers/LogData';\r\n\r\n// Requests\r\nimport RequestsLayout from '@hedtech/powercampus-design-system/requests/LayoutRequests';\r\nimport Resolver from '@hedtech/powercampus-design-system/helpers/Resolver';\r\n\r\n// State Management\r\nimport LayoutActions from '@hedtech/powercampus-design-system/flux/actions/LayoutActions';\r\n// #endregion Imports\r\n\r\n// #region Types\r\nexport interface IPaymentDetailModalProps {\r\n coupons: IPaymentDiscountCoupon[];\r\n enableOnlinePayment: boolean;\r\n open: boolean;\r\n paymentInfo: IPaymentInfo;\r\n paymentInfoNoChanges: IPaymentInfo;\r\n paymentMethod?: string;\r\n paymentOrigin: PaymentOrigin;\r\n titleName?: string;\r\n yearTerm?: string;\r\n onApplyCoupon?: () => void;\r\n onChangeCouponCode?: (event: any) => void;\r\n onChangePaymentAnotherAmount?: (event: any) => void;\r\n onChangePaymentMethod?: (event: any) => void;\r\n onClose: () => void;\r\n onPay: () => void;\r\n onRemoveCoupon?: (event: any) => void;\r\n}\r\n\r\ninterface IPaymentDetailModalRes extends IPaymentDetailModalResources {\r\n printing: IPrintResources;\r\n}\r\n\r\ninterface IPaymentDetailModalState {\r\n componentError: boolean;\r\n resources?: IPaymentDetailModalRes;\r\n}\r\n\r\nconst styles = (theme: Theme) => createStyles({\r\n amountContainer: {\r\n backgroundColor: Tokens.colorBrandNeutral200,\r\n height: '100px',\r\n marginBottom: Tokens.spacing50,\r\n paddingBottom: Tokens.spacing50,\r\n paddingLeft: Tokens.spacing40,\r\n paddingRight: Tokens.spacing40,\r\n paddingTop: Tokens.spacing50,\r\n width: 'auto'\r\n },\r\n discountApplied: {\r\n color: Tokens.colorTextAlertNeutral\r\n },\r\n footerPayment: {\r\n backgroundColor: Tokens.colorBrandNeutral200,\r\n paddingBottom: Tokens.spacing40,\r\n paddingTop: Tokens.spacing30\r\n },\r\n footerTextSpacing: {\r\n marginTop: Tokens.spacing30\r\n },\r\n instructionsContainer: {\r\n marginBottom: Tokens.sizingSmall,\r\n marginTop: Tokens.sizingSmall\r\n },\r\n noBottomBorder: {\r\n borderBottomColor: `${Tokens.colorBrandNeutral100}!important`\r\n },\r\n noDeleteButton: {\r\n width: Tokens.spacing70\r\n },\r\n table: {\r\n [theme.breakpoints.up('md')]: {\r\n // Width\r\n '& > thead > tr > th:nth-child(1)': {\r\n width: '50%'\r\n }\r\n }\r\n }\r\n});\r\n\r\ntype PropsWithStyles = IPaymentDetailModalProps & WithStyles;\r\n// #endregion Types\r\n\r\n// #region Component\r\nclass PaymentDetailModal extends React.Component {\r\n private idModule: string;\r\n private idPage: string;\r\n\r\n public readonly state: Readonly;\r\n\r\n public constructor(props) {\r\n super(props);\r\n\r\n // #region Initialize Variables and State\r\n this.idModule = 'Generic';\r\n this.idPage = 'PaymentDetailModal';\r\n this.state = this.getInitialState();\r\n // #endregion Initialize Variables and State\r\n }\r\n\r\n private getInitialState(): IPaymentDetailModalState {\r\n let resources: IPaymentDetailModalRes | undefined;\r\n if (this.state) {\r\n resources = this.state.resources;\r\n }\r\n return {\r\n componentError: false,\r\n resources: resources\r\n };\r\n }\r\n\r\n // #region Error Functions\r\n private logError(logData: ILogData): void {\r\n LayoutActions.setLogData(logData);\r\n }\r\n\r\n private redirectError(code: number): void {\r\n LayoutActions.setRedirectCode(code);\r\n }\r\n\r\n // #endregion Error Functions\r\n\r\n // #region Resolvers\r\n private resolveGetResources = (json: string): void => {\r\n try {\r\n const result: IJsonResult | undefined\r\n = Resolver(json, this.resolveGetResources.name);\r\n if (result?.status) {\r\n this.setState({\r\n resources: result.data\r\n });\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.resolveGetResources.name, e));\r\n }\r\n };\r\n // #endregion Resolvers\r\n\r\n // #region Lifecycle\r\n public componentDidMount(): void {\r\n try {\r\n RequestsLayout.getResources(this.idModule, this.idPage,\r\n this.resolveGetResources,\r\n this.logError);\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.componentDidMount.name, e));\r\n }\r\n }\r\n\r\n public componentDidCatch(error, info): void {\r\n this.setState({\r\n componentError: true\r\n }, () => {\r\n this.logError(LogData.fromComponentException(this.componentDidCatch.name, error, info));\r\n this.redirectError(500);\r\n });\r\n }\r\n // #endregion Lifecycle\r\n\r\n public render(): JSX.Element {\r\n const {\r\n classes,\r\n coupons,\r\n enableOnlinePayment,\r\n open,\r\n paymentInfo,\r\n paymentInfoNoChanges,\r\n paymentMethod,\r\n paymentOrigin,\r\n titleName,\r\n yearTerm,\r\n onApplyCoupon,\r\n onChangeCouponCode,\r\n onChangePaymentAnotherAmount,\r\n onChangePaymentMethod,\r\n onClose,\r\n onPay,\r\n onRemoveCoupon\r\n } = this.props;\r\n\r\n const {\r\n componentError,\r\n resources\r\n } = this.state;\r\n\r\n let contentPage: JSX.Element | undefined;\r\n if (!componentError && resources) {\r\n let paymentMethods: IRadioOption[] | undefined;\r\n let hasCharges: boolean = false;\r\n\r\n if (paymentOrigin === PaymentOrigin.Registration) {\r\n paymentMethods = [];\r\n hasCharges = paymentInfo.currentBalanceValue > 0 || paymentInfo.totalAmountValue > 0;\r\n\r\n if (hasCharges) {\r\n paymentMethods.push({\r\n description: Format.toString(resources.formatBalance, [paymentInfo.currentBalance]),\r\n disabled: paymentInfo.currentBalanceValue < 0,\r\n value: '1'\r\n } as IRadioOption);\r\n // TODO: Review if this code is useful for the next story about the total charges and taxes\r\n // paymentMethods.push({\r\n // description: Format.toString(resources.formatTotal, [paymentInfo.totalAmount]),\r\n // disabled: paymentInfo.totalAmountValue < 0,\r\n // value: '2'\r\n // } as IRadioOption);\r\n\r\n let errorAnotherAmount: boolean = false;\r\n let errorTextAnotherAmount: string | undefined;\r\n if (paymentMethod === '0' && paymentInfo.modified) {\r\n errorAnotherAmount = !Boolean(paymentInfo.anotherAmount)\r\n || paymentInfo.invalidAnotherAmount;\r\n errorTextAnotherAmount = !Boolean(paymentInfo.anotherAmount) ?\r\n resources.lblAnotherAmountRequired\r\n : (paymentInfo.invalidAnotherAmount ?\r\n resources.lblAnotherAmountInvalid\r\n : undefined);\r\n }\r\n\r\n paymentMethods.push({\r\n description: resources.lblAnotherAmount,\r\n nodeComplement: (\r\n \r\n ),\r\n value: '0'\r\n } as IRadioOption);\r\n }\r\n }\r\n else if (paymentOrigin === PaymentOrigin.ConEdRegistration && !paymentInfo.useTransactionChargesOnly) {\r\n hasCharges = paymentInfo.paymentDueValue > 0;\r\n }\r\n else {\r\n hasCharges = paymentInfo.totalAmountValue > 0;\r\n }\r\n\r\n let headerModal: JSX.Element;\r\n headerModal = (\r\n <>\r\n \r\n {Format.toString(resources.formatTitle, [yearTerm || titleName || ''])}\r\n \r\n \r\n \r\n \r\n {resources.lblInstructions}\r\n \r\n \r\n {((paymentOrigin === PaymentOrigin.Registration\r\n || paymentOrigin === PaymentOrigin.ConEdRegistration)\r\n && paymentInfo.statementNumber) && (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n {paymentOrigin === PaymentOrigin.Registration\r\n && paymentMethods && hasCharges && (\r\n \r\n )}\r\n {paymentOrigin !== PaymentOrigin.Registration && (\r\n
\r\n \r\n {paymentOrigin === PaymentOrigin.ConEdRegistration\r\n && !paymentInfo.useTransactionChargesOnly ? (\r\n <>\r\n \r\n \r\n {paymentInfo.paymentDue}\r\n \r\n \r\n \r\n \r\n {resources.lblPaymentDue}\r\n \r\n \r\n \r\n ) : (\r\n <>\r\n \r\n {paymentInfoNoChanges.totalAmountValue !== paymentInfo.totalAmountValue ? (\r\n \r\n {paymentInfo.totalAmount}\r\n \r\n ) : (\r\n \r\n {paymentInfo.totalAmount}\r\n \r\n )}\r\n \r\n \r\n {paymentInfoNoChanges.totalAmountValue !== paymentInfo.totalAmountValue ? (\r\n \r\n {resources.lblDiscountedTotal}\r\n \r\n ) : (\r\n \r\n {resources.lblTotal}\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 let footerModal: JSX.Element;\r\n footerModal = enableOnlinePayment && hasCharges ? (\r\n \r\n {!paymentInfo.requireOnlinePayment &&\r\n (paymentOrigin === PaymentOrigin.Registration\r\n || paymentOrigin === PaymentOrigin.ConEdRegistration) && (\r\n \r\n {resources.btnBillMeLater}\r\n \r\n )}\r\n \r\n {resources.btnPay}\r\n \r\n \r\n ) : (\r\n \r\n {resources.btnOk}\r\n \r\n );\r\n\r\n let rowClassName: string | undefined;\r\n let isFirstRow: boolean;\r\n contentPage = (\r\n \r\n {paymentOrigin === PaymentOrigin.ConEdRegistration && (\r\n \r\n \r\n \r\n {resources.lblDiscountTitle}\r\n \r\n \r\n {resources.lblDiscountInstructions}\r\n \r\n \r\n \r\n {coupons.map((coupon, ci) => (\r\n \r\n \r\n \r\n \r\n {!coupon.isNew ? (\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 {!coupon.isApplied && (\r\n \r\n {resources.btnApplyCoupon}\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 {resources.lblDetail}\r\n \r\n \r\n \r\n {paymentInfo.chargeCredits && (\r\n \r\n \r\n \r\n \r\n \r\n {paymentOrigin === PaymentOrigin.ConEdRegistration && (\r\n \r\n {resources.lblCourse}\r\n \r\n )}\r\n \r\n {resources.lblCharge}\r\n \r\n \r\n {resources.lblAmount}\r\n \r\n {paymentOrigin === PaymentOrigin.ConEdRegistration\r\n && paymentInfo.chargeCredits.find(c => c.isCredit)\r\n && (\r\n \r\n {resources.lblDiscount}\r\n \r\n )}\r\n \r\n \r\n \r\n {paymentInfo.chargeCredits.map((row, cci) => {\r\n if (paymentOrigin === PaymentOrigin.ConEdRegistration) {\r\n rowClassName = undefined;\r\n isFirstRow = true;\r\n if (cci < paymentInfo.chargeCredits.length - 1\r\n && row.sectionId === paymentInfo.chargeCredits[cci + 1].sectionId) {\r\n rowClassName = classes.noBottomBorder;\r\n }\r\n if (cci > 0\r\n && row.sectionId === paymentInfo.chargeCredits[cci - 1].sectionId) {\r\n isFirstRow = false;\r\n }\r\n }\r\n return (\r\n \r\n {paymentOrigin === PaymentOrigin.ConEdRegistration && (\r\n \r\n {isFirstRow && !row.isCredit && !row.isOther && (\r\n \r\n {(row.eventId && row.eventName) ? Format.toString(resources.formatTitleSection, [row.eventId, row.eventName]) : '' }\r\n \r\n )}\r\n {isFirstRow && row.isOther && (\r\n \r\n {resources.lblOthers}\r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n {row.description}\r\n \r\n {paymentOrigin === PaymentOrigin.Application\r\n && paymentInfo.chargeCredits\r\n && paymentInfo.chargeCredits.length > 0\r\n && paymentInfo.totalAmount !== paymentInfo.chargeCredits[0].amount && (\r\n <>\r\n
\r\n \r\n {resources.lblProgramFees}\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n {row.amount}\r\n \r\n \r\n {paymentOrigin === PaymentOrigin.ConEdRegistration\r\n && paymentInfo.chargeCredits.find(c => c.isCredit)\r\n && (\r\n \r\n \r\n {row.discountAmount || '-'}\r\n \r\n \r\n )}\r\n \r\n );\r\n })}\r\n
\r\n \r\n \r\n \r\n {paymentInfoNoChanges.totalAmountValue !== paymentInfo.totalAmountValue ? (\r\n \r\n {Format.toString(resources.formatDiscountedTotal, [paymentInfo.totalAmount])}\r\n \r\n ) : (\r\n \r\n {Format.toString(resources.formatTotal, [paymentInfo.totalAmount])}\r\n \r\n )}\r\n {paymentOrigin === PaymentOrigin.Registration && (\r\n \r\n {Format.toString(resources.formatPaymentDue, [paymentInfo.paymentDue])}\r\n \r\n )}\r\n {paymentOrigin === PaymentOrigin.ConEdRegistration\r\n && !paymentInfo.useTransactionChargesOnly && (\r\n \r\n {Format.toString(resources.formatPaymentDue, [paymentInfo.paymentDue])}\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 return (\r\n <>\r\n {contentPage}\r\n \r\n );\r\n }\r\n}\r\n// #endregion Component\r\n\r\n// Export: Component\r\nexport default withStyles(styles)(PaymentDetailModal);","/* Copyright 2019 Ellucian Company L.P. and its affiliates.\r\n * File: ProcessPaymentModal.ts */\r\n\r\n// Types\r\nimport { ILogData } from '@hedtech/powercampus-design-system/types/ILogData';\r\nimport { IGiftCampaign } from '../../Types/MakeGift/IGiftCampaign';\r\nimport { IRequestTranscript } from '../../Types/Grades/IRequestTranscript';\r\nimport { IPaymentRequest } from '../../Types/Payment/IPaymentRequest';\r\n\r\n// Helpers\r\nimport Request from '@hedtech/powercampus-design-system/helpers/Request';\r\n\r\n// Functions for requests\r\nconst ProcessPaymentModalRequests = {\r\n postProcessPayment(paymentRequest: IPaymentRequest,\r\n resolver: (json: string) => void,\r\n resolveError: (logData: ILogData) => void): void {\r\n Request.post(this.postProcessPayment.name, '/Payment/Process', { paymentRequest }, resolver, resolveError);\r\n },\r\n postProcessTranscriptPayment(paymentRequest: IPaymentRequest,\r\n resolver: (json: string) => void,\r\n resolveError: (logData: ILogData) => void,\r\n requestTranscripts?: IRequestTranscript[]): void {\r\n Request.post(this.postProcessTranscriptPayment.name, '/Payment/Process', { paymentRequest, requestTranscripts }, resolver, resolveError);\r\n },\r\n postProcessDonationPayment(paymentRequest: IPaymentRequest,\r\n resolver: (json: string) => void,\r\n resolveError: (logData: ILogData) => void,\r\n giftCampaigns?: IGiftCampaign[]): void {\r\n Request.post(this.postProcessTranscriptPayment.name, '/Payment/Process', { paymentRequest, giftCampaigns }, resolver, resolveError);\r\n }\r\n};\r\n\r\n// Export object with the requests\r\nexport default ProcessPaymentModalRequests;","/* Copyright 2019 - 2021 Ellucian Company L.P. and its affiliates.\r\n * File: ProcessPaymentModal.tsx\r\n * Type: Container component */\r\n\r\n// #region Imports\r\nimport React from 'react';\r\n\r\n// Core components\r\nimport Alert from '@hedtech/powercampus-design-system/react/core/Alert';\r\nimport Button, { ButtonGroup } from '@hedtech/powercampus-design-system/react/core/Button';\r\nimport Grid from '@hedtech/powercampus-design-system/react/core/Grid';\r\nimport Modal from '@hedtech/powercampus-design-system/react/core/Modal';\r\n\r\n// Types\r\nimport { IAlert } from '@hedtech/powercampus-design-system/types/IAlert';\r\nimport { IJsonResult } from '@hedtech/powercampus-design-system/types/IJsonResult';\r\nimport { ILogData } from '@hedtech/powercampus-design-system/types/ILogData';\r\nimport { ResultType } from '@hedtech/powercampus-design-system/types/ResultType';\r\nimport { PaymentOrigin } from '../../Types/Enum/PaymentOrigin';\r\nimport { IYearTerm } from '../../Types/Generic/IYearTerm';\r\nimport { IRequestTranscript } from '../../Types/Grades/IRequestTranscript';\r\nimport { IPaymentPeriod } from '../../Types/Payment/IPaymentPeriod';\r\nimport { IPaymentRequest } from '../../Types/Payment/IPaymentRequest';\r\nimport { IGiftCampaign } from '../../Types/MakeGift/IGiftCampaign';\r\nimport { IProcessPaymentModalResources } from '../../Types/Resources/Generic/IProcessPaymentModalResources';\r\n\r\n// Helpers\r\nimport LogData from '@hedtech/powercampus-design-system/helpers/LogData';\r\nimport Resolver from '@hedtech/powercampus-design-system/helpers/Resolver';\r\n\r\n// Requests\r\nimport RequestsLayout from '@hedtech/powercampus-design-system/requests/LayoutRequests';\r\nimport Requests from '../../Requests/Generic/ProcessPaymentModal';\r\n\r\n// State Management\r\nimport LayoutActions from '@hedtech/powercampus-design-system/flux/actions/LayoutActions';\r\n// #endregion Imports\r\n\r\n// #region Types\r\nexport interface IProcessPaymentModalProps {\r\n amount: number;\r\n applicationId?: number;\r\n conEdTransactionId?: number;\r\n giftCampaigns?: IGiftCampaign[];\r\n open: boolean;\r\n paymentOrigin: PaymentOrigin;\r\n personId?: number;\r\n requestTranscripts?: IRequestTranscript[];\r\n returnUrl?: string;\r\n termSessionId?: string;\r\n yearTerm?: string;\r\n onClose: () => void;\r\n}\r\n\r\ninterface IProcessPaymentModalState {\r\n componentError: boolean;\r\n resources?: IProcessPaymentModalResources;\r\n}\r\n// #endregion Types\r\n\r\n// #region Component\r\nclass ProcessPaymentModal extends React.Component {\r\n private idModule: string;\r\n private idPage: string;\r\n\r\n public readonly state: Readonly;\r\n\r\n public constructor(props) {\r\n super(props);\r\n\r\n // #region Initialize Variables and State\r\n this.idModule = 'Generic';\r\n this.idPage = 'ProcessPaymentModal';\r\n this.state = this.getInitialState();\r\n // #endregion Initialize Variables and State\r\n }\r\n\r\n private getInitialState(): IProcessPaymentModalState {\r\n let resources: IProcessPaymentModalResources | undefined;\r\n if (this.state) {\r\n resources = this.state.resources;\r\n }\r\n return {\r\n componentError: false,\r\n resources: resources\r\n };\r\n }\r\n\r\n // #region Events\r\n private onOk = (): void => {\r\n try {\r\n const {\r\n amount,\r\n applicationId,\r\n conEdTransactionId,\r\n giftCampaigns,\r\n paymentOrigin,\r\n personId,\r\n requestTranscripts,\r\n returnUrl,\r\n termSessionId,\r\n yearTerm\r\n } = this.props;\r\n\r\n const paymentRequest: IPaymentRequest = {\r\n amount: amount,\r\n applicationId: applicationId,\r\n conEdTransactionId: conEdTransactionId,\r\n paymentOrigin: paymentOrigin,\r\n personId: personId,\r\n returnUrl: returnUrl\r\n } as IPaymentRequest;\r\n if (termSessionId) {\r\n const periodId = termSessionId.split('/');\r\n paymentRequest.paymentPeriod = {\r\n sessionPeriodId: periodId[1] ? Number(periodId[1]) : null,\r\n termPeriodId: periodId[0] ? Number(periodId[0]) : null\r\n } as IPaymentPeriod;\r\n }\r\n else if (yearTerm) {\r\n const split = yearTerm.split('/');\r\n paymentRequest.yearTerm = {\r\n term: split[1],\r\n year: Number(split[0])\r\n } as IYearTerm;\r\n }\r\n if (requestTranscripts) {\r\n Requests.postProcessTranscriptPayment(paymentRequest, this.resolvePostProcessPayment, this.logError, requestTranscripts);\r\n }\r\n else if (giftCampaigns) {\r\n Requests.postProcessDonationPayment(paymentRequest, this.resolvePostProcessPayment, this.logError, giftCampaigns);\r\n }\r\n else {\r\n Requests.postProcessPayment(paymentRequest, this.resolvePostProcessPayment, this.logError);\r\n }\r\n LayoutActions.setLoading(true);\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onOk.name, e));\r\n }\r\n };\r\n // #endregion Events\r\n\r\n // #region Error Functions\r\n private logError(logData: ILogData): void {\r\n LayoutActions.setLogData(logData);\r\n }\r\n\r\n private redirectError(code: number): void {\r\n LayoutActions.setRedirectCode(code);\r\n }\r\n\r\n private showError(message?: string): void {\r\n LayoutActions.setAlert({ message: message, messageType: ResultType.error } as IAlert);\r\n }\r\n // #endregion Error Functions\r\n\r\n // #region Resolvers\r\n private resolveGetResources = (json: string): void => {\r\n try {\r\n const result: IJsonResult | undefined\r\n = Resolver(json, this.resolveGetResources.name);\r\n if (result?.status) {\r\n this.setState({\r\n resources: result.data\r\n });\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.resolveGetResources.name, e));\r\n }\r\n };\r\n\r\n private resolvePostProcessPayment = (json: string): void => {\r\n try {\r\n const result: IJsonResult | undefined\r\n = Resolver(json, this.resolvePostProcessPayment.name);\r\n if (result?.status) {\r\n if (result.data) {\r\n window.location.replace(encodeURI(result.data));\r\n LayoutActions.setLoading(false);\r\n }\r\n else {\r\n this.showError();\r\n }\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.resolvePostProcessPayment.name, e));\r\n }\r\n };\r\n // #endregion Resolvers\r\n\r\n // #region Lifecycle\r\n public componentDidMount(): void {\r\n try {\r\n RequestsLayout.getResources(this.idModule, this.idPage,\r\n this.resolveGetResources,\r\n this.logError);\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.componentDidMount.name, e));\r\n }\r\n }\r\n\r\n public componentDidCatch(error, info): void {\r\n this.setState({\r\n componentError: true\r\n }, () => {\r\n this.logError(LogData.fromComponentException(this.componentDidCatch.name, error, info));\r\n this.redirectError(500);\r\n });\r\n }\r\n // #endregion Lifecycle\r\n\r\n public render(): JSX.Element {\r\n const {\r\n open,\r\n onClose\r\n } = this.props;\r\n\r\n const {\r\n componentError,\r\n resources\r\n } = this.state;\r\n\r\n let contentPage: JSX.Element | undefined;\r\n if (!componentError && resources) {\r\n contentPage = (\r\n \r\n \r\n {resources.btnCancel}\r\n \r\n \r\n {resources.btnOk}\r\n \r\n \r\n )}\r\n maxWidth=\"sm\"\r\n open={open}\r\n showTitleBarClose={false}\r\n onClose={onClose}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n return (\r\n <>\r\n {contentPage}\r\n \r\n );\r\n }\r\n}\r\n// #endregion Component\r\n\r\n// Export: Component\r\nexport default ProcessPaymentModal;","/* Copyright 2021 Ellucian Company L.P. and its affiliates.\r\n * File: AuthStatus.ts */\r\n\r\nexport enum AuthStatus {\r\n None = 0,\r\n Success = 1,\r\n InvalidCredentials = 2,\r\n InvalidPassword = 3,\r\n NoIdentity = 4,\r\n InvalidConfiguration = 5,\r\n NoStoreAssigned = 6,\r\n Unknown = 7,\r\n IsLocked = 8\r\n}","/* Copyright 2019 - 2021 Ellucian Company L.P. and its affiliates.\r\n * File: SignIn.ts */\r\n\r\n// Types\r\nimport { IPasswordChange } from '../../Types/Account/IPasswordChange';\r\n\r\n// Helpers\r\nimport Request from '@hedtech/powercampus-design-system/helpers/Request';\r\n\r\n// Functions for requests\r\nconst SignInRequests = {\r\n authenticateUser(userName: string, password: string, resolver: (json: string) => void): void {\r\n Request.post(this.authenticateUser.name, '/SignIn/Authenticate', { userName, password }, resolver);\r\n },\r\n changePassword(passwordChange: IPasswordChange, resolver: (json: string) => void): void {\r\n Request.post(this.changePassword.name, '/Password/ChangePassword', passwordChange, resolver);\r\n },\r\n getAuthenticationMode(userName: string, resolver: (json: string) => void): void {\r\n Request.post(this.getAuthenticationMode.name, '/SignIn/GetAuthenticationMode', userName, resolver);\r\n },\r\n isForgotPasswordEnabled(resolver: (json: string) => void): void {\r\n Request.post(this.isForgotPasswordEnabled.name, '/SignIn/IsForgotPasswordEnabled', null, resolver);\r\n },\r\n sendForgotPasswordEmail(userName: string, reCaptchaResponse: string, resolver: (json: string) => void): void {\r\n Request.post(this.sendForgotPasswordEmail.name, '/SignIn/SendForgotPasswordEmail', { userName, reCaptchaResponse }, resolver);\r\n },\r\n};\r\n\r\n// Export object with the requests\r\nexport default SignInRequests;","/* Copyright 2019 - 2021 Ellucian Company L.P. and its affiliates.\r\n * File: SignIn.tsx\r\n * Type: Container component */\r\n\r\n// #region Imports\r\nimport URLSearchParams from '@ungap/url-search-params';\r\nimport React, { RefObject } from 'react';\r\nimport { setTimeout } from 'timers';\r\n\r\n// Core components\r\nimport Alert from '@hedtech/powercampus-design-system/react/core/Alert';\r\nimport Button, { ButtonGroup } from '@hedtech/powercampus-design-system/react/core/Button';\r\nimport Card, { CardContent } from '@hedtech/powercampus-design-system/react/core/Card';\r\nimport Grid from '@hedtech/powercampus-design-system/react/core/Grid';\r\nimport Modal from '@hedtech/powercampus-design-system/react/core/Modal';\r\nimport Paragraph from '@hedtech/powercampus-design-system/react/core/Paragraph';\r\nimport PasswordConfirmation from '@hedtech/powercampus-design-system/react/components/PasswordConfirmation';\r\nimport ReCAPTCHA from '@hedtech/powercampus-design-system/react/core/ReCaptcha';\r\nimport Text from '@hedtech/powercampus-design-system/react/core/Text';\r\nimport TextField from '@hedtech/powercampus-design-system/react/core/TextField';\r\n\r\n// Types\r\nimport { StoreMode } from '@hedtech/powercampus-design-system/types/Account/StoreMode';\r\nimport { IAlert } from '@hedtech/powercampus-design-system/types/IAlert';\r\nimport { IJsonResult } from '@hedtech/powercampus-design-system/types/IJsonResult';\r\nimport { ILogData } from '@hedtech/powercampus-design-system/types/ILogData';\r\nimport { ResultType } from '@hedtech/powercampus-design-system/types/ResultType';\r\nimport { ChangePasswordError } from '@hedtech/powercampus-design-system/types/PasswordConfirmation/ChangePasswordError';\r\nimport { IAccountValidations } from '@hedtech/powercampus-design-system/types/PasswordConfirmation/IAccountValidations';\r\nimport { IChangePasswordResponse } from '@hedtech/powercampus-design-system/types/PasswordConfirmation/IChangePasswordResponse';\r\nimport { IPasswordChange } from '../../Types/Account/IPasswordChange';\r\nimport { AuthStatus } from '../../Types/Enum/AuthStatus';\r\nimport { IAuthResponse } from '../../Types/Generic/IAuthResponse';\r\nimport { ISignInResources } from '../../Types/Resources/Generic/ISignInResources';\r\n\r\n// Helpers\r\nimport Format from '@hedtech/powercampus-design-system/helpers/Format';\r\nimport LogData from '@hedtech/powercampus-design-system/helpers/LogData';\r\nimport PasswordValidation from '@hedtech/powercampus-design-system/helpers/PasswordValidation';\r\nimport Redirect from '@hedtech/powercampus-design-system/helpers/Redirect';\r\nimport Resolver from '@hedtech/powercampus-design-system/helpers/Resolver';\r\nimport Tokens from '@hedtech/powercampus-design-system/react/core/styles/Tokens';\r\nimport { createStyles, withStyles, WithStyles } from '@hedtech/powercampus-design-system/react/core/styles/withStyles';\r\nimport { withWidth, WithWidth } from '@hedtech/powercampus-design-system/react/core/withWidth';\r\n\r\n// Requests\r\nimport RequestsLayout from '@hedtech/powercampus-design-system/requests/LayoutRequests';\r\nimport Requests from '../../Requests/Generic/SignIn';\r\n\r\n// State Management\r\nimport LayoutActions from '@hedtech/powercampus-design-system/flux/actions/LayoutActions';\r\nimport LayoutStore from '@hedtech/powercampus-design-system/flux/stores/LayoutStore';\r\nimport PasswordConfirmationActions from '@hedtech/powercampus-design-system/flux/actions/PasswordConfirmationActions';\r\nimport PasswordConfirmationStore from '@hedtech/powercampus-design-system/flux/stores/PasswordConfirmationStore';\r\n// #endregion Imports\r\n\r\n// #region Types\r\nexport interface ISignInProps {\r\n open?: boolean;\r\n userName?: string;\r\n onAfterSignIn?: () => void;\r\n onClose?: () => void;\r\n onGoSignUp?: () => void;\r\n}\r\n\r\ninterface ISignInState {\r\n accountValidations?: IAccountValidations;\r\n alert?: IAlert;\r\n authMode?: number;\r\n isLoading: boolean;\r\n isLoadingNext: boolean;\r\n isLoadingSignIn: boolean;\r\n password: string;\r\n passwordModified: boolean;\r\n resources?: ISignInResources;\r\n stepNumber: number;\r\n uiCulture: string;\r\n userName: string;\r\n userNameModified: boolean;\r\n variation: number;\r\n\r\n // #region Change Password\r\n errorCurrentPassword: boolean;\r\n isLoadingChangePassword: boolean;\r\n newPassword?: string;\r\n openChangePassword: boolean;\r\n // #endregion Change Password\r\n\r\n // #region Forgot Password\r\n emailSent: boolean;\r\n isForgotPasswordEnabled: boolean;\r\n isLoadingSendEmail: boolean;\r\n isReCaptchaEnabled: boolean;\r\n openForgotPassword: boolean;\r\n reCaptchaError: boolean;\r\n reCaptchaSiteKey: string;\r\n userNameRecovery: string;\r\n userNameRecoveryModified: boolean;\r\n // #endregion Forgot Password\r\n}\r\n\r\nconst styles = createStyles({\r\n forgotPasswordLink: {\r\n paddingTop: Tokens.spacing30\r\n },\r\n forgotText: {\r\n marginBottom: `${Tokens.spacing40}!important`\r\n },\r\n loginCard: {\r\n animation: 'slidein 1s',\r\n marginTop: Tokens.spacing80,\r\n maxWidth: '800px'\r\n },\r\n loginText: {\r\n marginTop: `${Tokens.spacing40}!important`\r\n },\r\n reCaptchaContent: {\r\n paddingBottom: Tokens.spacing30\r\n },\r\n reCaptchaErrorText: {\r\n paddingBottom: Tokens.spacing30\r\n },\r\n signInButton: {\r\n paddingTop: Tokens.spacing20\r\n },\r\n spacingAlert: {\r\n paddingBottom: Tokens.spacing20\r\n },\r\n spacingTitle: {\r\n paddingBottom: Tokens.spacing30\r\n }\r\n});\r\n\r\ntype PropsWithStyles = ISignInProps & WithStyles & WithWidth;\r\n// #endregion Types\r\n\r\n// #region Component\r\nclass SignIn extends React.Component {\r\n private idModule: string;\r\n private idPage: string;\r\n private passwordRef: RefObject;\r\n private reCaptchaRef: RefObject;\r\n private userNameRecoveryRef: RefObject;\r\n private userNameRef: RefObject;\r\n\r\n public readonly state: Readonly;\r\n\r\n public constructor(props) {\r\n super(props);\r\n\r\n // #region Initialize Variables and State\r\n this.idModule = 'Generic';\r\n this.idPage = 'SignIn';\r\n this.passwordRef = React.createRef();\r\n this.reCaptchaRef = React.createRef();\r\n this.userNameRecoveryRef = React.createRef();\r\n this.userNameRef = React.createRef();\r\n this.state = this.getInitialState(this.props.userName);\r\n // #endregion Initialize Variables and State\r\n\r\n // #region Bind State Management Listeners\r\n PasswordConfirmationStore.addPasswordValidationListener(this.onChangePasswordValidation);\r\n // #endregion State Management Listeners\r\n }\r\n\r\n private getInitialState(userName?: string): ISignInState {\r\n let isLoading: boolean = true;\r\n let resources: ISignInResources | undefined;\r\n let isForgotPasswordEnabled: boolean = false;\r\n let isReCaptchaEnabled: boolean = false;\r\n let reCaptchaSiteKey: string;\r\n if (this.state) {\r\n isForgotPasswordEnabled = this.state.isForgotPasswordEnabled;\r\n isLoading = this.state.isLoading;\r\n isReCaptchaEnabled = this.state.isReCaptchaEnabled;\r\n reCaptchaSiteKey = this.state.reCaptchaSiteKey;\r\n resources = this.state.resources;\r\n }\r\n else {\r\n reCaptchaSiteKey = '';\r\n resources = LayoutStore.getResourcesByKey(`${this.idModule}.${this.idPage}`);\r\n }\r\n return {\r\n accountValidations: undefined,\r\n alert: undefined,\r\n authMode: undefined,\r\n isLoading: isLoading,\r\n isLoadingNext: false,\r\n isLoadingSignIn: false,\r\n password: '',\r\n passwordModified: false,\r\n resources: resources,\r\n stepNumber: 1,\r\n uiCulture: LayoutStore.getCultures().uiCulture,\r\n userName: userName || '',\r\n userNameModified: false,\r\n variation: 0,\r\n\r\n // #region Change Password\r\n errorCurrentPassword: false,\r\n isLoadingChangePassword: false,\r\n openChangePassword: false,\r\n // #endregion Change Password\r\n\r\n // #region Forgot Password\r\n emailSent: false,\r\n isForgotPasswordEnabled: isForgotPasswordEnabled,\r\n isLoadingSendEmail: false,\r\n isReCaptchaEnabled: isReCaptchaEnabled,\r\n openForgotPassword: false,\r\n reCaptchaError: false,\r\n reCaptchaSiteKey: reCaptchaSiteKey,\r\n userNameRecovery: '',\r\n userNameRecoveryModified: false\r\n // #endregion Forgot Password\r\n };\r\n }\r\n\r\n // #region Events\r\n\r\n private OnFinishSignIn = (): void => {\r\n try {\r\n LayoutStore.setIsAuthenticated(true);\r\n LayoutStore.setMenuOptions(undefined);\r\n LayoutActions.showPageLoader();\r\n const {\r\n onAfterSignIn\r\n } = this.props;\r\n if (onAfterSignIn) {\r\n onAfterSignIn();\r\n }\r\n else {\r\n const urlParams: URLSearchParams = new URLSearchParams(window.location.search);\r\n const returnUrl: string | null = urlParams.get('ReturnUrl');\r\n const newState: ISignInState = this.getInitialState();\r\n newState.isLoading = true;\r\n this.setState(newState);\r\n if (returnUrl && !returnUrl.includes('LogOut')) {\r\n window.location.assign(returnUrl);\r\n }\r\n else {\r\n Redirect.toHome();\r\n }\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.OnFinishSignIn.name, e));\r\n }\r\n };\r\n\r\n private onChangePassword = (event: React.ChangeEvent): void => {\r\n try {\r\n this.setState({\r\n alert: undefined,\r\n password: event.target.value,\r\n passwordModified: true\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onChangePassword.name, e));\r\n }\r\n };\r\n\r\n private onChangeUserName = (event: React.ChangeEvent): void => {\r\n try {\r\n this.setState({\r\n alert: undefined,\r\n userName: event.target.value,\r\n userNameModified: true\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onChangeUserName.name, e));\r\n }\r\n };\r\n\r\n private onCloseModal = (): void => {\r\n try {\r\n const {\r\n onClose\r\n } = this.props;\r\n const {\r\n isLoadingNext,\r\n isLoadingSignIn\r\n } = this.state;\r\n\r\n if (onClose && !isLoadingNext && !isLoadingSignIn) {\r\n this.setState(this.getInitialState());\r\n onClose();\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onCloseModal.name, e));\r\n }\r\n };\r\n\r\n private onGoSignUpModal = (): void => {\r\n try {\r\n const {\r\n onGoSignUp\r\n } = this.props;\r\n\r\n const {\r\n isLoadingNext\r\n } = this.state;\r\n\r\n if (onGoSignUp && !isLoadingNext) {\r\n this.setState(this.getInitialState());\r\n onGoSignUp();\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onGoSignUpModal.name, e));\r\n }\r\n };\r\n\r\n private onNext = (): void => {\r\n try {\r\n const {\r\n userName\r\n } = this.state;\r\n\r\n this.setState({\r\n userNameModified: true\r\n });\r\n\r\n if (userName) {\r\n this.showLoaderNext();\r\n Requests.getAuthenticationMode(userName, this.resolveGetAuthenticationMode);\r\n }\r\n else if (this.userNameRef?.current) {\r\n this.userNameRef.current.focus();\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onNext.name, e));\r\n }\r\n };\r\n\r\n private onSignIn = (): void => {\r\n try {\r\n const {\r\n authMode,\r\n password,\r\n userName,\r\n variation\r\n } = this.state;\r\n\r\n this.setState({\r\n passwordModified: true\r\n });\r\n\r\n if (userName && password) {\r\n this.showLoaderSignIn();\r\n if (variation === 2 && authMode) {\r\n Requests.authenticateUser(userName, password, this.resolveAuthenticateUser);\r\n }\r\n else {\r\n const timeout: number = Math.floor(Math.random() * 5 + 1) * 1000;\r\n setTimeout(() => {\r\n const {\r\n resources\r\n } = this.state;\r\n\r\n if (resources) {\r\n const alert: IAlert = {\r\n message: resources.lblInvalidCredentials,\r\n messageType: ResultType.error\r\n };\r\n this.setState({\r\n alert: alert\r\n });\r\n }\r\n else {\r\n this.showError();\r\n }\r\n this.hideLoaderSignIn();\r\n }, timeout);\r\n }\r\n }\r\n else if (this.passwordRef?.current) {\r\n this.passwordRef.current.focus();\r\n }\r\n\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onSignIn.name, e));\r\n }\r\n };\r\n\r\n private onUseAnotherAccount = (): void => {\r\n try {\r\n this.setState(this.getInitialState(), () => {\r\n if (this.userNameRef?.current) {\r\n this.userNameRef.current.focus();\r\n }\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onUseAnotherAccount.name, e));\r\n }\r\n };\r\n\r\n // #region Change Password\r\n private onChangePasswordButton = (): void => {\r\n try {\r\n const {\r\n accountValidations,\r\n errorCurrentPassword,\r\n newPassword,\r\n password,\r\n userName\r\n } = this.state;\r\n\r\n let isValid: boolean = true;\r\n if (accountValidations) {\r\n let validations: IAccountValidations = PasswordValidation.validatePassword(accountValidations, newPassword,\r\n PasswordConfirmationStore.getPasswordPolicy());\r\n validations = PasswordValidation.validateConfirmPassword(accountValidations, accountValidations.confirmPassword, newPassword);\r\n PasswordConfirmationActions.setPasswordValidation(newPassword, validations);\r\n\r\n if (validations.hasErrors || errorCurrentPassword) {\r\n validations.isCurrentPwdNewPwd = errorCurrentPassword;\r\n PasswordConfirmationActions.setPasswordValidation(newPassword, validations);\r\n isValid = false;\r\n }\r\n }\r\n\r\n if (isValid && newPassword) {\r\n this.showLoaderChangePassword();\r\n const passwordChange: IPasswordChange = {\r\n userName: userName,\r\n currentPassword: password,\r\n newPassword: newPassword\r\n };\r\n Requests.changePassword(passwordChange, this.resolveChangePassword);\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onChangePasswordButton.name, e));\r\n }\r\n };\r\n\r\n private onCloseChangePassword = (): void => {\r\n try {\r\n this.setState(this.getInitialState(), () => {\r\n if (this.userNameRef?.current) {\r\n this.userNameRef.current.focus();\r\n }\r\n });\r\n PasswordConfirmationActions.setPasswordValidation();\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onCloseChangePassword.name, e));\r\n }\r\n };\r\n\r\n private onChangePasswordValidation = (): void => {\r\n try {\r\n const {\r\n password\r\n } = this.state;\r\n\r\n this.setState({\r\n accountValidations: PasswordConfirmationStore.getPasswordValidation(),\r\n errorCurrentPassword: PasswordConfirmationStore.getPassword() === password,\r\n newPassword: PasswordConfirmationStore.getPassword()\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onChangePasswordValidation.name, e));\r\n }\r\n };\r\n // #endregion Change Password\r\n\r\n // #region Forgot Password\r\n private onChangeUserNameRecovery = (event: React.ChangeEvent): void => {\r\n try {\r\n this.setState({\r\n userNameRecovery: event.target.value,\r\n userNameRecoveryModified: true\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onChangeUserNameRecovery.name, e));\r\n }\r\n };\r\n\r\n private onClickForgotPassword = (): void => {\r\n try {\r\n this.setState({\r\n emailSent: false,\r\n openForgotPassword: true,\r\n userNameRecovery: '',\r\n userNameRecoveryModified: false\r\n }, () => {\r\n if (this.userNameRecoveryRef?.current) {\r\n this.userNameRecoveryRef.current.focus();\r\n }\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onClickForgotPassword.name, e));\r\n }\r\n };\r\n\r\n private onCloseForgotPassword = (): void => {\r\n try {\r\n const {\r\n authMode,\r\n stepNumber\r\n } = this.state;\r\n\r\n this.setState({\r\n openForgotPassword: false,\r\n reCaptchaError: false\r\n }, () => {\r\n if (stepNumber === 2 && (authMode === StoreMode.Identity || authMode === StoreMode.ActiveDirectory)) {\r\n if (this.passwordRef?.current) {\r\n this.passwordRef.current.focus();\r\n }\r\n }\r\n else {\r\n if (this.userNameRef?.current) {\r\n this.userNameRef.current.focus();\r\n }\r\n }\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onCloseForgotPassword.name, e));\r\n }\r\n };\r\n\r\n private onRecaptchaChange = (token: any): void => {\r\n try {\r\n this.setState({\r\n reCaptchaError: !Boolean(token)\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onRecaptchaChange.name, e));\r\n }\r\n };\r\n\r\n private onReCaptchaError = (): void => {\r\n try {\r\n this.setState({\r\n reCaptchaError: true\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onReCaptchaError.name, e));\r\n }\r\n };\r\n\r\n private onSendEmail = (): void => {\r\n try {\r\n const {\r\n isReCaptchaEnabled,\r\n userNameRecovery\r\n } = this.state;\r\n\r\n let reCaptchaResponse: string = '';\r\n if (isReCaptchaEnabled && this.reCaptchaRef?.current) {\r\n reCaptchaResponse = this.reCaptchaRef.current.getValue();\r\n this.setState({\r\n reCaptchaError: !Boolean(reCaptchaResponse),\r\n userNameRecoveryModified: true\r\n });\r\n }\r\n\r\n if (!isReCaptchaEnabled || reCaptchaResponse) {\r\n this.setState({\r\n reCaptchaError: false,\r\n userNameRecoveryModified: true\r\n });\r\n\r\n if (userNameRecovery) {\r\n this.showLoaderSendEmail();\r\n Requests.sendForgotPasswordEmail(userNameRecovery, reCaptchaResponse, this.resolveSendForgotPasswordEmail);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onSendEmail.name, e));\r\n }\r\n };\r\n // #endregion Forgot Password\r\n\r\n // #endregion Events\r\n\r\n // #region Loader Functions\r\n private hideAllLoaders = (): void => {\r\n this.setState({\r\n isLoading: false,\r\n isLoadingChangePassword: false,\r\n isLoadingNext: false,\r\n isLoadingSendEmail: false,\r\n isLoadingSignIn: false\r\n });\r\n };\r\n\r\n private hideLoader = (): void => {\r\n this.setState({\r\n isLoading: false\r\n });\r\n };\r\n\r\n private hideLoaderChangePassword = (): void => {\r\n this.setState({\r\n isLoadingChangePassword: false\r\n });\r\n };\r\n\r\n private hideLoaderNext = (): void => {\r\n this.setState({\r\n isLoadingNext: false\r\n });\r\n };\r\n\r\n private hideLoaderSendEmail = (): void => {\r\n this.setState({\r\n isLoadingSendEmail: false\r\n });\r\n };\r\n\r\n private hideLoaderSignIn = (): void => {\r\n this.setState({\r\n isLoadingSignIn: false\r\n });\r\n };\r\n\r\n private showLoaderChangePassword = (): void => {\r\n this.setState({\r\n isLoadingChangePassword: true\r\n });\r\n };\r\n\r\n private showLoaderNext = (): void => {\r\n this.setState({\r\n isLoadingNext: true\r\n });\r\n };\r\n\r\n private showLoaderSendEmail = (): void => {\r\n this.setState({\r\n isLoadingSendEmail: true\r\n });\r\n };\r\n\r\n private showLoaderSignIn = (): void => {\r\n this.setState({\r\n isLoadingSignIn: true\r\n });\r\n };\r\n // #endregion Loader Functions\r\n\r\n // #region Error Functions\r\n private logError(logData: ILogData): void {\r\n this.hideAllLoaders();\r\n LayoutActions.setLogData(logData);\r\n }\r\n\r\n private showError(message?: string): void {\r\n this.hideAllLoaders();\r\n LayoutActions.setAlert({ message: message, messageType: ResultType.error } as IAlert);\r\n }\r\n\r\n private showSignInError = (): void => {\r\n const {\r\n resources\r\n } = this.state;\r\n\r\n if (resources) {\r\n const alert: IAlert = {\r\n message: resources.lblGenericError,\r\n messageType: ResultType.error\r\n };\r\n this.setState({\r\n alert: alert\r\n });\r\n }\r\n else {\r\n this.showError();\r\n }\r\n }\r\n // #endregion Error Functions\r\n\r\n // #region Resolvers\r\n private resolveGetResources = (json: string): void => {\r\n try {\r\n const result: IJsonResult | undefined\r\n = Resolver(json, this.resolveGetResources.name, this.hideAllLoaders);\r\n if (result?.status) {\r\n this.setState({\r\n isLoading: false,\r\n resources: result.data\r\n });\r\n LayoutStore.setResourcesByKey(`${this.idModule}.${this.idPage}`, result.data);\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.resolveGetResources.name, e));\r\n }\r\n };\r\n\r\n private resolveGetAuthenticationMode = (json: string): void => {\r\n try {\r\n const result: IJsonResult | undefined\r\n = Resolver(json, this.resolveGetAuthenticationMode.name, this.hideAllLoaders);\r\n if (result?.status) {\r\n const mode: StoreMode = result.data.mode;\r\n const userName: string = result.data.userName;\r\n const variation: number = result.data.variation;\r\n\r\n this.setState({\r\n authMode: mode,\r\n variation: variation\r\n });\r\n\r\n if (variation === 2) {\r\n this.setState({\r\n stepNumber: 2\r\n }, () => {\r\n if (this.passwordRef?.current) {\r\n this.passwordRef.current.focus();\r\n }\r\n this.hideLoaderNext();\r\n });\r\n if (mode === StoreMode.ADFS) {\r\n Redirect.toADFSLogin(userName);\r\n }\r\n else if (mode === StoreMode.SAML) {\r\n Redirect.toSAMLLogin(userName);\r\n }\r\n }\r\n else if (variation === 1) {\r\n this.showSignInError();\r\n this.hideLoaderNext();\r\n }\r\n else {\r\n this.setState({\r\n stepNumber: 2\r\n }, () => {\r\n if (this.passwordRef?.current) {\r\n this.passwordRef.current.focus();\r\n }\r\n this.hideLoaderNext();\r\n });\r\n }\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.resolveGetAuthenticationMode.name, e));\r\n }\r\n };\r\n\r\n private resolveAuthenticateUser = (json: string): void => {\r\n try {\r\n const result: IJsonResult | undefined\r\n = Resolver(json, this.resolveAuthenticateUser.name, this.hideAllLoaders);\r\n if (result?.status) {\r\n const authResponse: IAuthResponse = result.data;\r\n\r\n if (authResponse && authResponse.success) {\r\n if (authResponse.status === AuthStatus.Success && authResponse.changePasswordAtNextLogon) {\r\n this.setState({\r\n openChangePassword: true\r\n });\r\n }\r\n else {\r\n this.OnFinishSignIn();\r\n }\r\n }\r\n else {\r\n const {\r\n resources\r\n } = this.state;\r\n\r\n if (resources) {\r\n let message: string = '';\r\n if (authResponse) {\r\n if (authResponse.status === AuthStatus.InvalidCredentials) {\r\n message = resources.lblInvalidCredentials;\r\n }\r\n else if (authResponse.status === AuthStatus.IsLocked) {\r\n if (authResponse.attempt?.remainingLockedOutTime) {\r\n message = Format.toString(resources.formatLockedAccount, [authResponse.attempt.remainingLockedOutTime]);\r\n }\r\n if (!message) {\r\n message = resources.lblLocked;\r\n }\r\n }\r\n else if (authResponse.status === AuthStatus.InvalidPassword) {\r\n if (authResponse.attempt?.remainingAttempts) {\r\n message = Format.toString(resources.formatInvalidAttempts, [authResponse.attempt.remainingAttempts]);\r\n }\r\n if (!message) {\r\n message = resources.lblInvalidCredentials;\r\n }\r\n }\r\n }\r\n\r\n if (!message) {\r\n message = resources.lblGenericError;\r\n }\r\n\r\n const alert: IAlert = {\r\n message: message,\r\n messageType: ResultType.error\r\n };\r\n this.setState({\r\n alert: alert\r\n });\r\n }\r\n else {\r\n this.showError();\r\n }\r\n this.hideLoaderSignIn();\r\n }\r\n\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.resolveAuthenticateUser.name, e));\r\n }\r\n };\r\n\r\n // #region Change Password\r\n private resolveChangePassword = (json: string): void => {\r\n try {\r\n const result: IJsonResult | undefined\r\n = Resolver(json, this.resolveChangePassword.name, this.hideAllLoaders);\r\n if (result?.status) {\r\n const {\r\n accountValidations,\r\n newPassword\r\n } = this.state;\r\n\r\n const response: IChangePasswordResponse = result.data;\r\n if (response.updatedSuccessfully) {\r\n PasswordConfirmationActions.setPasswordValidation();\r\n this.OnFinishSignIn();\r\n }\r\n else if (response.errors.length > 0) {\r\n switch (response.errors[0]) {\r\n case ChangePasswordError.AlreadyUsed:\r\n if (accountValidations) {\r\n accountValidations.isNotPreviousPassword = true;\r\n PasswordConfirmationActions.setPasswordValidation(newPassword, accountValidations);\r\n }\r\n break;\r\n default:\r\n this.showSignInError();\r\n break;\r\n }\r\n this.hideLoaderChangePassword();\r\n }\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.resolveChangePassword.name, e));\r\n }\r\n };\r\n // #endregion Change Password\r\n\r\n // #region Forgot Password\r\n private resolveIsForgotPasswordEnabled = (json: string): void => {\r\n try {\r\n const result: IJsonResult | undefined\r\n = Resolver(json, this.resolveIsForgotPasswordEnabled.name, this.hideAllLoaders);\r\n if (result?.status) {\r\n if (result.data) {\r\n this.setState({\r\n isForgotPasswordEnabled: result.data.isForgotPasswordEnabled,\r\n isReCaptchaEnabled: result.data.isReCaptchaEnabled,\r\n reCaptchaSiteKey: result.data.reCaptchaSiteKey || ''\r\n });\r\n }\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.resolveIsForgotPasswordEnabled.name, e));\r\n }\r\n };\r\n\r\n private resolveSendForgotPasswordEmail = (json: string): void => {\r\n try {\r\n const result: IJsonResult | undefined\r\n = Resolver(json, this.resolveSendForgotPasswordEmail.name, this.hideAllLoaders);\r\n if (result?.status) {\r\n if (!result.data) {\r\n const timeout: number = Math.floor(Math.random() * 15 + 1) * 1000;\r\n setTimeout(() => {\r\n this.setState({\r\n emailSent: true\r\n }, this.hideLoaderSendEmail);\r\n }, timeout);\r\n }\r\n else {\r\n this.setState({\r\n emailSent: true\r\n }, this.hideLoaderSendEmail);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.resolveSendForgotPasswordEmail.name, e));\r\n }\r\n };\r\n // #endregion Forgot Password\r\n\r\n // #endregion Resolvers\r\n\r\n // #region Lifecycle\r\n public componentDidMount(): void {\r\n try {\r\n const {\r\n resources,\r\n userName\r\n } = this.state;\r\n\r\n if (!resources) {\r\n RequestsLayout.getResources(this.idModule, this.idPage, this.resolveGetResources);\r\n }\r\n else {\r\n this.hideLoader();\r\n }\r\n Requests.isForgotPasswordEnabled(this.resolveIsForgotPasswordEnabled);\r\n\r\n if (userName) {\r\n this.onNext();\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.componentDidMount.name, e));\r\n }\r\n }\r\n\r\n public componentWillUnmount(): void {\r\n PasswordConfirmationStore.removePasswordValidationListener(this.onChangePasswordValidation);\r\n }\r\n // #endregion Lifecycle\r\n\r\n public render(): JSX.Element {\r\n const {\r\n classes,\r\n open,\r\n width,\r\n onClose,\r\n onGoSignUp\r\n } = this.props;\r\n\r\n const {\r\n alert,\r\n authMode,\r\n isLoading,\r\n isLoadingChangePassword,\r\n isLoadingNext,\r\n isLoadingSignIn,\r\n password,\r\n passwordModified,\r\n resources,\r\n stepNumber,\r\n uiCulture,\r\n userName,\r\n userNameModified,\r\n\r\n // #region Change Password\r\n openChangePassword,\r\n // #endregion Change Password\r\n\r\n // #region Forgot Password\r\n emailSent,\r\n isForgotPasswordEnabled,\r\n isLoadingSendEmail,\r\n isReCaptchaEnabled,\r\n openForgotPassword,\r\n reCaptchaSiteKey,\r\n reCaptchaError,\r\n userNameRecovery,\r\n userNameRecoveryModified\r\n // #endregion Forgot Password\r\n } = this.state;\r\n\r\n let contentPage: JSX.Element | undefined;\r\n if (resources && !isLoading) {\r\n\r\n if (openChangePassword) {\r\n contentPage = (\r\n \r\n \r\n {resources.btnCancel}\r\n \r\n \r\n {resources.btnChangePassword}\r\n \r\n \r\n )}\r\n id=\"changePasswordModal\"\r\n header={resources.lblChangePassword}\r\n maxWidth=\"md\"\r\n open={openChangePassword}\r\n onClose={this.onCloseChangePassword}\r\n >\r\n \r\n \r\n \r\n {resources.lblChangePasswordInstructions}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n else {\r\n let title: JSX.Element | undefined;\r\n let content: JSX.Element | JSX.Element[] | undefined;\r\n let button: JSX.Element | undefined;\r\n\r\n if (openForgotPassword) {\r\n title = (\r\n \r\n \r\n \r\n {resources.lblForgotPasswordTitle}\r\n \r\n \r\n \r\n );\r\n\r\n button = emailSent ? (\r\n \r\n {resources.btnClose}\r\n \r\n )\r\n : (\r\n \r\n \r\n {resources.btnCancel}\r\n \r\n \r\n {resources.btnSendEmail}\r\n \r\n \r\n );\r\n\r\n content = (\r\n
\r\n \r\n \r\n {!onClose && (\r\n <>\r\n {title}\r\n \r\n )}\r\n \r\n {emailSent ?\r\n Format.toString(resources.formatEmailSent, [userNameRecovery])\r\n : resources.lblForgotPasswordInstructions}\r\n \r\n \r\n \r\n {!emailSent && (\r\n \r\n )}\r\n \r\n \r\n {isReCaptchaEnabled && Boolean(reCaptchaSiteKey) && !emailSent && !isLoadingSendEmail && (\r\n \r\n \r\n \r\n \r\n {reCaptchaError && (\r\n \r\n \r\n {resources.lblReCaptchaRequired}\r\n \r\n \r\n )}\r\n \r\n )}\r\n {!onClose && (\r\n \r\n \r\n {button}\r\n \r\n \r\n )}\r\n
\r\n );\r\n }\r\n else {\r\n title = (\r\n <>\r\n \r\n \r\n \r\n {resources.lblLogInTitle}\r\n \r\n \r\n \r\n {alert && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {Boolean(onGoSignUp && stepNumber === 1) && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {stepNumber === 2 && (\r\n \r\n \r\n \r\n {resources.lblUseAnotherAccount}\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n\r\n button = stepNumber === 1 ? (\r\n \r\n {resources.btnNext}\r\n \r\n ) : (stepNumber === 2\r\n && (!authMode || authMode === StoreMode.Identity || authMode === StoreMode.ActiveDirectory) ? (\r\n \r\n {resources.btnSingIn}\r\n \r\n ) : undefined);\r\n\r\n content = (\r\n
\r\n \r\n \r\n {!onClose && (\r\n <>\r\n {title}\r\n \r\n )}\r\n \r\n {stepNumber === 2\r\n && (!authMode || authMode === StoreMode.Identity || authMode === StoreMode.ActiveDirectory) && (\r\n \r\n )}\r\n \r\n \r\n {isForgotPasswordEnabled && (\r\n \r\n \r\n \r\n {resources.btnForgot}\r\n \r\n \r\n \r\n )}\r\n {!onClose && (\r\n \r\n \r\n {button}\r\n \r\n \r\n )}\r\n
\r\n );\r\n }\r\n\r\n if (onClose) {\r\n contentPage = (\r\n \r\n {content}\r\n \r\n );\r\n }\r\n else {\r\n contentPage = (\r\n \r\n \r\n {content}\r\n \r\n \r\n );\r\n }\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n {contentPage}\r\n \r\n );\r\n }\r\n}\r\n// #endregion Component\r\n\r\n// Export: Component\r\nexport default withStyles(styles)(withWidth()(SignIn));","/* Copyright 2021 Ellucian Company L.P. and its affiliates.\r\n * File: IPasswordPolicy.ts */\r\n\r\nexport interface IPasswordPolicy {\r\n changePasswordUrl: string\r\n isLowerCaseRequired: boolean;\r\n isNumbersRequired: boolean;\r\n isSpecialCharacterRequired: boolean;\r\n isUpperCaseRequired: boolean;\r\n minimumLength: number;\r\n}\r\n\r\nexport interface IValidatePassword {\r\n areaName: string;\r\n password: string;\r\n}\r\n\r\nexport interface IPasswordPolicyResult {\r\n passwordValidation: IPasswordPolicyErrors;\r\n passwordMinLength: number;\r\n userAccountStatus: IPasswordPolicyErrors;\r\n status: number;\r\n userName: string;\r\n}\r\n\r\nexport enum IPasswordPolicyErrors {\r\n digits = 0,\r\n isEmpty = 1,\r\n lowerCase = 2,\r\n minLength = 3,\r\n specialCharacters = 4,\r\n upperCase = 5,\r\n newPasswordValid = 6,\r\n currentPasswordInvalid = 7,\r\n success = 8,\r\n unableToDefineUserName = 15,\r\n userAlreadyExists = 17,\r\n}","/* Copyright 2019 - 2023 Ellucian Company L.P. and its affiliates.\r\n * File: SignUp.ts */\r\n\r\n// Types\r\nimport { ILogData } from '@hedtech/powercampus-design-system/types/ILogData';\r\nimport { IIdentityAccount } from '../../Types/Account/IIdentityAccount';\r\nimport { IValidatePassword } from '../../Types/Generic/IPasswordPolicy';\r\n\r\n// Helpers\r\nimport Request from '@hedtech/powercampus-design-system/helpers/Request';\r\n\r\n// Functions for requests\r\nconst SignUpRequests = {\r\n getEmailRegExp(resolver: (json: string) => void, resolveError: (logData: ILogData) => void): void {\r\n Request.post(this.getEmailRegExp.name, '/Settings/EmailRegExp', null, resolver, resolveError);\r\n },\r\n getPasswordPolicy(appArea: string,\r\n resolver: (json: string) => void,\r\n resolveError: (logData: ILogData) => void): void {\r\n Request.post(this.getPasswordPolicy.name, '/Password/Policy', appArea, resolver, resolveError);\r\n },\r\n getReCaptchaSettings(resolver: (json: string) => void): void {\r\n Request.post(this.getReCaptchaSettings.name, '/SignUp/RecaptchaSettings', null, resolver);\r\n },\r\n postSignUpApplication(account: IIdentityAccount,\r\n resolver: (json: string) => void,\r\n resolveError: (logData: ILogData) => void): void {\r\n Request.post(this.postSignUpApplication.name, '/SignUp/Application', account, resolver, resolveError);\r\n },\r\n postSignUpConed(account: IIdentityAccount,\r\n resolver: (json: string) => void,\r\n resolveError: (logData: ILogData) => void): void {\r\n Request.post(this.postSignUpConed.name, '/SignUp/ConEd', account, resolver, resolveError);\r\n },\r\n postValidatePassword(passwordModel: IValidatePassword,\r\n resolver: (json: string) => void,\r\n resolveError: (logData: ILogData) => void): void {\r\n Request.post(this.postValidatePassword.name, '/Password/Validate', passwordModel, resolver, resolveError);\r\n },\r\n};\r\n\r\n// Export object with the requests\r\nexport default SignUpRequests;","/* Copyright 2019 - 2023 Ellucian Company L.P. and its affiliates.\r\n * File: SignUp.tsx\r\n * Type: Container component */\r\n\r\n// #region Imports\r\nimport React, { RefObject } from 'react';\r\n\r\n// Core components\r\nimport Button from '@hedtech/powercampus-design-system/react/core/Button';\r\nimport Grid from '@hedtech/powercampus-design-system/react/core/Grid';\r\nimport Modal from '@hedtech/powercampus-design-system/react/core/Modal';\r\nimport Paragraph from '@hedtech/powercampus-design-system/react/core/Paragraph';\r\nimport PasswordConfirmation from '@hedtech/powercampus-design-system/react/components/PasswordConfirmation';\r\nimport ReCAPTCHA from '@hedtech/powercampus-design-system/react/core/ReCaptcha';\r\nimport Text from '@hedtech/powercampus-design-system/react/core/Text';\r\nimport TextField from '@hedtech/powercampus-design-system/react/core/TextField';\r\n\r\n// Types\r\nimport { IAccountValidations } from '@hedtech/powercampus-design-system/types/PasswordConfirmation/IAccountValidations';\r\nimport { IAlert } from '@hedtech/powercampus-design-system/types/IAlert';\r\nimport { IJsonResult } from '@hedtech/powercampus-design-system/types/IJsonResult';\r\nimport { ILogData } from '@hedtech/powercampus-design-system/types/ILogData';\r\nimport { ResultType } from '@hedtech/powercampus-design-system/types/ResultType';\r\nimport { IIdentityAccount, IIdentityAccountValidations } from '../../Types/Account/IIdentityAccount';\r\nimport { IPasswordPolicy, IPasswordPolicyResult, IPasswordPolicyErrors } from '../../Types/Generic/IPasswordPolicy';\r\nimport { ISignUpResources } from '../../Types/Resources/Generic/ISignUpResources';\r\n\r\n// Helpers\r\nimport Constants from '@hedtech/powercampus-design-system/helpers/Constants';\r\nimport { emailIsValid } from '@hedtech/powercampus-design-system/helpers/CharRegExp';\r\nimport LogData from '@hedtech/powercampus-design-system/helpers/LogData';\r\nimport PasswordValidation from '@hedtech/powercampus-design-system/helpers/PasswordValidation';\r\nimport Resolver from '@hedtech/powercampus-design-system/helpers/Resolver';\r\nimport Tokens from '@hedtech/powercampus-design-system/react/core/styles/Tokens';\r\nimport { createStyles, withStyles, WithStyles } from '@hedtech/powercampus-design-system/react/core/styles/withStyles';\r\n\r\n// Requests\r\nimport RequestsLayout from '@hedtech/powercampus-design-system/requests/LayoutRequests';\r\nimport Requests from '../../Requests/Generic/SignUp';\r\n\r\n// State Management\r\nimport LayoutActions from '@hedtech/powercampus-design-system/flux/actions/LayoutActions';\r\nimport LayoutStore from '@hedtech/powercampus-design-system/flux/stores/LayoutStore';\r\nimport PasswordConfirmationActions from '@hedtech/powercampus-design-system/flux/actions/PasswordConfirmationActions';\r\nimport PasswordConfirmationStore from '@hedtech/powercampus-design-system/flux/stores/PasswordConfirmationStore';\r\n// #endregion Imports\r\n\r\n// #region Types\r\nexport interface ISignUpProps {\r\n open?: boolean;\r\n type: 'ConEd' | 'Application' | 'SharedAccess';\r\n onAfterSignUp?: (userName?: string) => void;\r\n onClose?: () => void;\r\n onGoSignIn?: () => void;\r\n}\r\n\r\ninterface ISignUpState {\r\n anchorEl: any;\r\n account: IIdentityAccount;\r\n cannotCreateAccount: boolean;\r\n emailRegExp?: string;\r\n isLoading: boolean;\r\n isLoadingSave: boolean;\r\n password?: string;\r\n passwordPolicy?: IPasswordPolicy;\r\n resources?: ISignUpResources;\r\n accountValidations?: IAccountValidations;\r\n validations: IIdentityAccountValidations;\r\n\r\n // #region ReCatpcha\r\n isReCaptchaEnabled: boolean;\r\n reCaptchaError: boolean;\r\n reCaptchaSiteKey: string;\r\n uiCulture: string;\r\n // #endregion ReCatpcha\r\n}\r\n\r\nconst styles = createStyles({\r\n margin: {\r\n marginLeft: `-${Tokens.spacing40}`,\r\n marginTop: Tokens.spacing30,\r\n },\r\n popperText: {\r\n maxWidth: '15rem'\r\n },\r\n spacingButtons: {\r\n paddingTop: Tokens.spacing40\r\n },\r\n spacingInstructions: {\r\n paddingTop: Tokens.spacing40\r\n },\r\n textAlign: {\r\n textAlign: 'center'\r\n },\r\n reCaptchaErrorText: {\r\n paddingBottom: Tokens.spacing30\r\n },\r\n});\r\n\r\ntype PropsWithStyles = ISignUpProps & WithStyles;\r\n// #endregion Types\r\n\r\n// #region Component\r\nclass SignUp extends React.Component {\r\n private idModule: string;\r\n private idPage: string;\r\n private reCaptchaRef: RefObject;\r\n\r\n public readonly state: Readonly;\r\n\r\n public constructor(props) {\r\n super(props);\r\n\r\n // #region Initialize Variables and State\r\n this.idModule = 'Generic';\r\n this.idPage = 'SignUp';\r\n this.state = this.getInitialState();\r\n this.reCaptchaRef = React.createRef();\r\n // #endregion Initialize Variables and State\r\n // #region Bind State Management Listeners\r\n PasswordConfirmationStore.addPasswordValidationListener(this.onChangePassword);\r\n // #endregion State Management Listeners\r\n }\r\n\r\n private getInitialState(): ISignUpState {\r\n let isLoading: boolean = true;\r\n let resources: ISignUpResources | undefined;\r\n let isReCaptchaEnabled: boolean = false;\r\n let reCaptchaSiteKey: string = '';\r\n\r\n if (this.state) {\r\n isLoading = this.state.isLoading;\r\n resources = this.state.resources;\r\n isReCaptchaEnabled = this.state.isReCaptchaEnabled;\r\n reCaptchaSiteKey = this.state.reCaptchaSiteKey;\r\n }\r\n return {\r\n account: {\r\n email: '',\r\n firstName: '',\r\n lastName: '',\r\n password: '',\r\n peopleId: ''\r\n },\r\n accountValidations: undefined,\r\n validations: {\r\n emailInvalid: false,\r\n emailModified: false,\r\n existingUser: false,\r\n firstNameModified: false,\r\n lastNameModified: false,\r\n },\r\n anchorEl: null,\r\n cannotCreateAccount: false,\r\n isLoading: isLoading,\r\n isLoadingSave: false,\r\n resources: resources,\r\n\r\n // #region ReCaptcha\r\n isReCaptchaEnabled: isReCaptchaEnabled,\r\n reCaptchaError: false,\r\n reCaptchaSiteKey: reCaptchaSiteKey,\r\n uiCulture: LayoutStore.getCultures().uiCulture\r\n // #endregion ReCaptcha\r\n };\r\n }\r\n\r\n // #region Events\r\n\r\n private onChangePassword = (): void => {\r\n try {\r\n const {\r\n account\r\n } = this.state;\r\n const password = PasswordConfirmationStore.getPassword();\r\n account.password = password;\r\n this.setState({\r\n password: password,\r\n account: account,\r\n accountValidations: PasswordConfirmationStore.getPasswordValidation()\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onChangePassword.name, e));\r\n }\r\n };\r\n\r\n private onChangeTextField = (event: React.ChangeEvent): void => {\r\n try {\r\n const {\r\n account,\r\n validations,\r\n emailRegExp,\r\n } = this.state;\r\n\r\n const id: string = event.target.id;\r\n const value: string = event.target.value;\r\n switch (id) {\r\n case 'txtFirstName':\r\n account.firstName = value;\r\n validations.firstNameModified = true;\r\n break;\r\n case 'txtLastName':\r\n account.lastName = value;\r\n validations.lastNameModified = true;\r\n break;\r\n case 'txtEmail':\r\n account.email = value;\r\n if (emailRegExp && account.email) {\r\n validations.emailInvalid = !emailIsValid(account.email, emailRegExp);\r\n }\r\n else {\r\n validations.emailInvalid = false;\r\n }\r\n validations.emailModified = true;\r\n break;\r\n }\r\n this.setState({\r\n account: account,\r\n validations: validations\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onChangeTextField.name, e));\r\n }\r\n };\r\n\r\n private onCloseModal = (): void => {\r\n try {\r\n const {\r\n onClose\r\n } = this.props;\r\n\r\n const {\r\n isLoadingSave\r\n } = this.state;\r\n\r\n if (onClose && !isLoadingSave) {\r\n this.setState(this.getInitialState());\r\n onClose();\r\n PasswordConfirmationActions.setPasswordValidation();\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onCloseModal.name, e));\r\n }\r\n };\r\n\r\n private onCreateAccount = (): void => {\r\n try {\r\n const {\r\n type\r\n } = this.props;\r\n\r\n const {\r\n account,\r\n accountValidations,\r\n isReCaptchaEnabled,\r\n isLoadingSave,\r\n password,\r\n validations\r\n } = this.state;\r\n\r\n let isValid: boolean = true;\r\n if (!isLoadingSave) {\r\n validations.emailModified = true;\r\n validations.firstNameModified = true;\r\n validations.lastNameModified = true;\r\n\r\n if (accountValidations) {\r\n let componentValidations: IAccountValidations = PasswordValidation.validatePassword(accountValidations, password,\r\n PasswordConfirmationStore.getPasswordPolicy());\r\n componentValidations = PasswordValidation.validateConfirmPassword(accountValidations, accountValidations.confirmPassword, password);\r\n PasswordConfirmationActions.setPasswordValidation(password, componentValidations);\r\n if (componentValidations.hasErrors) {\r\n isValid = false;\r\n }\r\n }\r\n\r\n let isValidRecaptcha: boolean = true;\r\n let reCaptchaResponse: string = '';\r\n\r\n if (isReCaptchaEnabled && this.reCaptchaRef?.current) {\r\n reCaptchaResponse = this.reCaptchaRef.current.getValue();\r\n isValidRecaptcha = Boolean(reCaptchaResponse);\r\n this.setState({\r\n reCaptchaError: !isValidRecaptcha\r\n });\r\n }\r\n\r\n if (!isReCaptchaEnabled || reCaptchaResponse) {\r\n this.setState({\r\n reCaptchaError: false\r\n });\r\n }\r\n\r\n if (isValid && isValidRecaptcha && Boolean(account.email)\r\n && !validations.emailInvalid\r\n && Boolean(account.firstName)\r\n && Boolean(account.lastName)\r\n && Boolean(account.password)) {\r\n this.showLoaderSave();\r\n switch (type) {\r\n case 'Application':\r\n Requests.postSignUpApplication(account, this.resolvePostSignUp, this.logError);\r\n break;\r\n case 'ConEd':\r\n Requests.postSignUpConed(account, this.resolvePostSignUp, this.logError);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onCreateAccount.name, e));\r\n }\r\n };\r\n\r\n private onGoSignInModal = (): void => {\r\n try {\r\n const {\r\n onGoSignIn\r\n } = this.props;\r\n\r\n const {\r\n isLoadingSave\r\n } = this.state;\r\n\r\n if (onGoSignIn && !isLoadingSave) {\r\n this.setState(this.getInitialState());\r\n onGoSignIn();\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onGoSignInModal.name, e));\r\n }\r\n };\r\n\r\n // #region ReCaptcha\r\n private onRecaptchaChange = (token: any): void => {\r\n try {\r\n this.setState({\r\n reCaptchaError: !Boolean(token)\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onRecaptchaChange.name, e));\r\n }\r\n };\r\n\r\n private onReCaptchaError = (): void => {\r\n try {\r\n this.setState({\r\n reCaptchaError: true\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onReCaptchaError.name, e));\r\n }\r\n };\r\n // #endregion ReCaptcha\r\n\r\n // #endregion Events\r\n\r\n // #region Loader Functions\r\n private hideAllLoaders = (): void => {\r\n this.setState({\r\n isLoading: false,\r\n isLoadingSave: false\r\n });\r\n };\r\n\r\n private hideLoaderSave = (): void => {\r\n this.setState({\r\n isLoadingSave: false\r\n });\r\n };\r\n\r\n private showLoaderSave = (): void => {\r\n this.setState({\r\n isLoadingSave: true\r\n });\r\n };\r\n // #endregion Loader Functions\r\n\r\n // #region Error Functions\r\n private logError(logData: ILogData): void {\r\n this.hideAllLoaders();\r\n LayoutActions.setLogData(logData);\r\n }\r\n\r\n private showError(message?: string): void {\r\n this.hideAllLoaders();\r\n LayoutActions.setAlert({ message: message, messageType: ResultType.error } as IAlert);\r\n }\r\n // #endregion Error Functions\r\n\r\n // #region Resolvers\r\n private resolveGetEmailRegExp = (json: string): void => {\r\n try {\r\n const result: IJsonResult | undefined\r\n = Resolver(json, this.resolveGetEmailRegExp.name, this.hideAllLoaders);\r\n if (result?.status) {\r\n this.setState({\r\n emailRegExp: result.data\r\n });\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.resolveGetEmailRegExp.name, e));\r\n }\r\n };\r\n\r\n private resolveGetResources = (json: string): void => {\r\n try {\r\n const result: IJsonResult | undefined\r\n = Resolver(json, this.resolveGetResources.name, this.hideAllLoaders);\r\n if (result?.status) {\r\n this.setState({\r\n resources: result.data,\r\n isLoading: false,\r\n });\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.resolveGetResources.name, e));\r\n }\r\n };\r\n\r\n private resolvePostSignUp = (json: string): void => {\r\n try {\r\n const result: IJsonResult | undefined\r\n = Resolver(json, this.resolvePostSignUp.name, this.hideAllLoaders);\r\n if (result?.status) {\r\n const resultSignUp: IPasswordPolicyResult = result.data;\r\n if (resultSignUp.status === 0) {\r\n const {\r\n onAfterSignUp\r\n } = this.props;\r\n\r\n const {\r\n resources\r\n } = this.state;\r\n\r\n if (resources) {\r\n LayoutActions.setAlert({\r\n message: resources.lblCreatedSuccessfully,\r\n messageType: ResultType.success\r\n } as IAlert);\r\n if (onAfterSignUp) {\r\n onAfterSignUp(result.data.userName);\r\n }\r\n PasswordConfirmationActions.setPasswordValidation();\r\n this.setState(this.getInitialState());\r\n }\r\n }\r\n else if (resultSignUp.status === -1) {\r\n if (resultSignUp.userAccountStatus == IPasswordPolicyErrors.unableToDefineUserName) {\r\n this.setState({\r\n cannotCreateAccount: true\r\n });\r\n PasswordConfirmationActions.setPasswordValidation();\r\n }\r\n else if (resultSignUp.userAccountStatus == IPasswordPolicyErrors.userAlreadyExists) {\r\n const {\r\n validations\r\n } = this.state;\r\n\r\n if (validations) {\r\n validations.existingUser = true;\r\n this.setState({\r\n validations: validations,\r\n password: '',\r\n cannotCreateAccount: true\r\n });\r\n PasswordConfirmationActions.setPasswordValidation();\r\n }\r\n }\r\n }\r\n else {\r\n this.showError();\r\n }\r\n this.hideLoaderSave();\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.resolvePostSignUp.name, e));\r\n }\r\n };\r\n\r\n private resolveGetReCaptchaSettings = (json: string): void => {\r\n try {\r\n const result: IJsonResult | undefined\r\n = Resolver(json, this.resolveGetReCaptchaSettings.name);\r\n if (result?.status) {\r\n this.setState({\r\n isReCaptchaEnabled: result.data.isReCaptchaEnabled,\r\n reCaptchaSiteKey: result.data.reCaptchaSiteKey || ''\r\n });\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.resolveGetReCaptchaSettings.name, e));\r\n }\r\n };\r\n // #endregion Resolvers\r\n\r\n // #region Lifecycle\r\n public componentDidMount(): void {\r\n try {\r\n RequestsLayout.getResources(this.idModule, this.idPage,\r\n this.resolveGetResources,\r\n this.logError);\r\n Requests.getEmailRegExp(this.resolveGetEmailRegExp, this.logError);\r\n Requests.getReCaptchaSettings(this.resolveGetReCaptchaSettings);\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.componentDidMount.name, e));\r\n }\r\n }\r\n\r\n public componentWillUnmount(): void {\r\n PasswordConfirmationStore.removePasswordValidationListener(this.onChangePassword);\r\n }\r\n\r\n // #endregion Lifecycle\r\n\r\n public render(): JSX.Element {\r\n const {\r\n classes,\r\n open,\r\n onClose,\r\n onGoSignIn,\r\n type,\r\n } = this.props;\r\n\r\n const {\r\n account,\r\n cannotCreateAccount,\r\n isLoading,\r\n isLoadingSave,\r\n resources,\r\n validations,\r\n\r\n // #region ReCaptcha\r\n isReCaptchaEnabled,\r\n reCaptchaError,\r\n reCaptchaSiteKey,\r\n uiCulture\r\n // #endregion ReCaptcha\r\n } = this.state;\r\n\r\n let contentPage: JSX.Element | undefined;\r\n if (resources && !isLoading) {\r\n let title: JSX.Element | undefined;\r\n let newAccountContent: JSX.Element | JSX.Element[] | undefined;\r\n let button: JSX.Element | undefined;\r\n let reCaptchaElement: JSX.Element | undefined;\r\n\r\n // #region First Name\r\n let errorFirstName: boolean = false;\r\n let errorTextFirstName: string | undefined;\r\n if (validations.firstNameModified) {\r\n errorFirstName = !Boolean(account.firstName);\r\n errorTextFirstName = errorFirstName ?\r\n resources.lblFirstNameRequired\r\n : undefined;\r\n }\r\n // #endregion First Name\r\n\r\n // #region Last Name\r\n let errorLastName: boolean = false;\r\n let errorTextLastName: string | undefined;\r\n if (validations.lastNameModified) {\r\n errorLastName = !Boolean(account.lastName);\r\n errorTextLastName = errorLastName ?\r\n resources.lblLastNameRequired\r\n : undefined;\r\n }\r\n // #endregion Last Name\r\n\r\n // #region Email\r\n let errorEmail: boolean = false;\r\n let errorTextEmail: string | undefined;\r\n if (validations.emailModified) {\r\n errorEmail = !Boolean(account.email)\r\n || validations.emailInvalid\r\n || validations.existingUser;\r\n errorTextEmail = !Boolean(account.email) ?\r\n resources.lblEmailRequired\r\n : (validations.emailInvalid ?\r\n resources.lblEmailInvalid\r\n : validations.existingUser ?\r\n resources.lblExistingUser\r\n : undefined);\r\n }\r\n // #endregion Email\r\n\r\n if (!cannotCreateAccount) {\r\n title = (\r\n <>\r\n \r\n {resources.lblCreateAccount}\r\n \r\n {onGoSignIn && (\r\n \r\n )}\r\n \r\n );\r\n\r\n button = (\r\n \r\n {resources.btnCreateAccount}\r\n \r\n );\r\n }\r\n\r\n if (isReCaptchaEnabled) {\r\n reCaptchaElement = (\r\n \r\n \r\n \r\n {reCaptchaError && (\r\n \r\n \r\n {resources.lblReCaptchaRequired}\r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n }\r\n\r\n if (cannotCreateAccount) {\r\n title = (\r\n <>\r\n \r\n {resources.lblCreateAccount}\r\n \r\n \r\n );\r\n newAccountContent = (\r\n \r\n \r\n \r\n \r\n {resources.lblCannotCreateAccount}\r\n \r\n \r\n \r\n );\r\n }\r\n else {\r\n newAccountContent = (\r\n <>\r\n {!onClose && (\r\n \r\n \r\n {title}\r\n \r\n \r\n )}\r\n\r\n \r\n \r\n \r\n \r\n \r\n {resources.lblContactInformation}\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 {!onClose && (\r\n \r\n \r\n {button}\r\n \r\n \r\n )}\r\n \r\n );\r\n }\r\n\r\n\r\n if (onClose) {\r\n contentPage = (\r\n \r\n {newAccountContent}\r\n {reCaptchaElement}\r\n \r\n );\r\n }\r\n else {\r\n contentPage = (\r\n <>\r\n {newAccountContent}\r\n \r\n );\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n {contentPage}\r\n \r\n );\r\n }\r\n}\r\n// #endregion Component\r\n\r\n// Export: Component\r\nexport default withStyles(styles)(SignUp);","/* Copyright 2019 - 2023 Ellucian Company L.P. and its affiliates.\r\n * File: AddressSearchModal.tsx\r\n * Type: Presentation component */\r\n\r\n// #region Imports\r\nimport React from 'react';\r\n\r\n// Core components\r\nimport Button, { ButtonGroup } from '@hedtech/powercampus-design-system/react/core/Button';\r\nimport Grid from '@hedtech/powercampus-design-system/react/core/Grid';\r\nimport Modal from '@hedtech/powercampus-design-system/react/core/Modal';\r\nimport Pagination from '@hedtech/powercampus-design-system/react/core/Pagination';\r\nimport Table, { TableBody, TableCell, TableHead, TableRow } from '@hedtech/powercampus-design-system/react/core/Table';\r\nimport Text from '@hedtech/powercampus-design-system/react/core/Text';\r\nimport TextField from '@hedtech/powercampus-design-system/react/core/TextField';\r\n\r\n// Types\r\nimport { IAddress } from '../../../Types/Account/IAddress';\r\nimport { IAddressSearchModal } from '../../../Types/Resources/Admissions/IApplicationFormResources';\r\n\r\n// #endregion Types\r\n\r\n// #region Internal types\r\nexport interface IAddressSearchModalProps {\r\n addresses?: IAddress[];\r\n hasSearchZipCode: boolean;\r\n open: boolean;\r\n pageNumber: number;\r\n pageSize: number;\r\n rowsPerPageOptions: number[];\r\n totalAddress: number;\r\n zipCode?: string;\r\n\r\n // events\r\n onChangePage: (event: any, page: number) => void;\r\n onChangeRowsPerPage: (event: any) => void;\r\n onChangeTextField?: (event: any) => void;\r\n onClear: () => void;\r\n onClickLink: (zipCode?: string, city?: string, stateProvinceId?: number, countryId?: number,\r\n countyId?: number) => void;\r\n onClose: () => void;\r\n onSearch: () => void;\r\n\r\n // resources\r\n resources: IAddressSearchModal;\r\n}\r\n// #endregion Internal types\r\n\r\n// #region Component\r\nconst AddressSearchModal: React.FC = (props: IAddressSearchModalProps): JSX.Element => {\r\n const {\r\n addresses,\r\n hasSearchZipCode,\r\n open,\r\n pageNumber,\r\n pageSize,\r\n rowsPerPageOptions,\r\n totalAddress,\r\n zipCode,\r\n\r\n // events\r\n onChangePage,\r\n onChangeRowsPerPage,\r\n onChangeTextField,\r\n onClear,\r\n onClickLink,\r\n onClose,\r\n onSearch,\r\n\r\n // resources\r\n resources\r\n } = props;\r\n\r\n const footerModal: JSX.Element = (\r\n \r\n \r\n {resources.btnSearch}\r\n \r\n \r\n {resources.btnClear}\r\n \r\n \r\n );\r\n\r\n let table: JSX.Element | undefined;\r\n\r\n if (addresses && addresses.length > 0) {\r\n const tableBody: JSX.Element[] = [];\r\n addresses.forEach((address, j) => {\r\n tableBody.push(\r\n \r\n \r\n \r\n {address.zipCode}\r\n \r\n \r\n \r\n \r\n {address.city}\r\n \r\n \r\n \r\n \r\n {address.state}\r\n \r\n \r\n \r\n \r\n {address.county}\r\n \r\n \r\n \r\n \r\n {address.country}\r\n \r\n \r\n \r\n );\r\n });\r\n\r\n table = (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {resources.lblZipCode}\r\n \r\n \r\n {resources.lblCity}\r\n \r\n \r\n {resources.lblState}\r\n \r\n \r\n {resources.lblCounty}\r\n \r\n \r\n {resources.lblCountry}\r\n \r\n \r\n \r\n \r\n {tableBody}\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n else if (hasSearchZipCode) {\r\n table = (\r\n \r\n {resources.lblNoResults}\r\n \r\n );\r\n }\r\n\r\n let paginationComponent: JSX.Element | undefined;\r\n if (addresses && addresses.length > 0) {\r\n paginationComponent = (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n let bodyModal: JSX.Element;\r\n bodyModal = (\r\n <>\r\n \r\n \r\n \r\n \r\n
\r\n \r\n {footerModal}\r\n \r\n
\r\n
\r\n
\r\n {table}\r\n
\r\n {paginationComponent}\r\n \r\n );\r\n\r\n return (\r\n \r\n {bodyModal}\r\n \r\n );\r\n};\r\n// #endregion Component\r\n\r\n// Export: Component\r\nexport default AddressSearchModal;","/* Copyright 2018 - 2023 Ellucian Company L.P. and its affiliates.\r\n * File: FieldsHandle.tsx\r\n * Type: Presentation component */\r\n\r\n// #region Imports\r\nimport React from 'react';\r\n\r\n// Core components\r\nimport Button from '@hedtech/powercampus-design-system/react/core/Button';\r\nimport Checkbox from '@hedtech/powercampus-design-system/react/core/Checkbox';\r\nimport DatePicker from '@hedtech/powercampus-design-system/react/core/DatePicker';\r\nimport Dropdown from '@hedtech/powercampus-design-system/react/core/Dropdown';\r\nimport ExpansionPanel from '@hedtech/powercampus-design-system/react/core/ExpansionPanel';\r\nimport FormControl, { FormControlLabel, FormGroup } from '@hedtech/powercampus-design-system/react/core/FormControl';\r\nimport Grid from '@hedtech/powercampus-design-system/react/core/Grid';\r\nimport Icon from '@hedtech/powercampus-design-system/react/core/Icon';\r\nimport IconButton from '@hedtech/powercampus-design-system/react/core/IconButton';\r\nimport List from '@hedtech/powercampus-design-system/react/core/List';\r\nimport Paragraph, { TextColor, TextSize } from '@hedtech/powercampus-design-system/react/core/Paragraph';\r\nimport RadioGroup from '@hedtech/powercampus-design-system/react/core/RadioGroup';\r\nimport Text from '@hedtech/powercampus-design-system/react/core/Text';\r\nimport TextField from '@hedtech/powercampus-design-system/react/core/TextField';\r\nimport TextLink from '@hedtech/powercampus-design-system/react/core/TextLink';\r\n\r\n// Internal components\r\nimport { IApplicationHandler } from '../../../Types/Resources/Admissions/IApplicationFormResources';\r\n\r\n// Helpers\r\nimport Tokens from '@hedtech/powercampus-design-system/react/core/styles/Tokens';\r\nimport { createStyles, withStyles, WithStyles } from '@hedtech/powercampus-design-system/react/core/styles/withStyles';\r\nimport { isWidthUp, withWidth, WithWidth } from '@hedtech/powercampus-design-system/react/core/withWidth';\r\n\r\n// Types\r\nimport { IDropDownOption } from '@hedtech/powercampus-design-system/types/IDropDownOption';\r\nimport { IApplicationErrors } from '../../../Types/Applications/IApplicationErrors';\r\nimport { IApplicationIpeds } from '../../../Types/Applications/IApplicationIpeds';\r\nimport { IFieldForm } from '../../../Types/Form/IFieldForm';\r\n// #endregion\r\n\r\n// #region Internal types\r\nexport interface IFieldsHandlerProps {\r\n dateTimeCulture: string;\r\n errors: IApplicationErrors[];\r\n expandedPanelId: boolean | string;\r\n fields: IFieldForm[];\r\n governmentIdFormat: string;\r\n groupIndex: number;\r\n isExpansionPanel: boolean;\r\n isHorizontalAligned: boolean;\r\n shortDatePattern: string;\r\n stepIndex: number;\r\n\r\n resources: IApplicationHandler;\r\n\r\n onClickButton: (event: React.MouseEvent) => void;\r\n onChangeCheckBox: (event: React.ChangeEvent) => void;\r\n onChangeDateTimeField: (date: string, id: string, isValid: boolean) => void;\r\n onDeleteItem: (event: any) => void;\r\n onChangeDropDown: (optionSelected: IDropDownOption, id: string) => void;\r\n onChangeExpansionPanel: (label: string) => void;\r\n onChangeListCheckbox: (event: any) => void;\r\n onChangeRadioGroup: (event: React.ChangeEvent, value: string) => void;\r\n onChangeTextField: (event: React.ChangeEvent) => void;\r\n}\r\n\r\nconst styles = createStyles({\r\n category: {\r\n marginBottom: Tokens.spacing30,\r\n marginLeft: Tokens.spacing50\r\n },\r\n federalCategory: {\r\n '& > span:nth-child(2)': {\r\n fontWeight: Tokens.fontWeightBold\r\n },\r\n marginBottom: Tokens.spacing30\r\n }\r\n});\r\n\r\ntype PropsWithStyles = IFieldsHandlerProps & WithStyles & WithWidth;\r\n// #endregion\r\n\r\n// #region Component\r\nconst FieldsHandler: React.FC = (props: PropsWithStyles): JSX.Element => {\r\n const {\r\n classes,\r\n dateTimeCulture,\r\n errors,\r\n expandedPanelId,\r\n fields,\r\n governmentIdFormat,\r\n groupIndex,\r\n isExpansionPanel,\r\n isHorizontalAligned,\r\n resources,\r\n shortDatePattern,\r\n stepIndex,\r\n width,\r\n\r\n onChangeCheckBox,\r\n onChangeDropDown,\r\n onChangeDateTimeField,\r\n onChangeExpansionPanel,\r\n onChangeListCheckbox,\r\n onChangeRadioGroup,\r\n onChangeTextField,\r\n onClickButton,\r\n onDeleteItem\r\n } = props;\r\n\r\n const elements: JSX.Element[] = [];\r\n\r\n // General Sections Arrays\r\n let ids: string[] = [];\r\n const sectionIndexes: number[] = [];\r\n let sectionElements: JSX.Element[] = [];\r\n const sectionContainers: JSX.Element[] = [];\r\n let sectionIndex: number;\r\n\r\n // Header Arrays\r\n let headerDeleteElement: JSX.Element[] = [];\r\n let headerTitleElements: string[] = [];\r\n const firstHeaderTitleElement: string[] = [];\r\n\r\n const getId = (idStringArray: string[], index: number): number => Number(idStringArray[index]);\r\n\r\n const setHeaderTitleElements = (field: IFieldForm): void => {\r\n if (field.isExpansionPanelHeader) {\r\n if (field.value) {\r\n if (headerTitleElements[0] === resources.lblNew) {\r\n headerTitleElements.splice(0, 1);\r\n }\r\n if (field.componentType && field.componentType === 'Dropdown') {\r\n let selectedOption: number = 0;\r\n if (field.data && field.data.options && field.data.options.length > 0) {\r\n selectedOption =\r\n field.data.options.findIndex(x => x.value === field.value);\r\n if (selectedOption > -1) {\r\n headerTitleElements.push(`${field.data.options[selectedOption].description} `);\r\n }\r\n }\r\n }\r\n else {\r\n headerTitleElements.push(`${field.value} `);\r\n }\r\n }\r\n if (headerTitleElements.length === 0) {\r\n headerTitleElements.push(resources.lblNew);\r\n }\r\n }\r\n };\r\n\r\n const fillElements = (fieldElement: JSX.Element, field: IFieldForm): void => {\r\n if (isExpansionPanel && field.componentType === 'DeleteIconButton') {\r\n headerDeleteElement.push(fieldElement);\r\n }\r\n else {\r\n sectionElements.push(fieldElement);\r\n }\r\n };\r\n\r\n const setMultipleFields = (field: IFieldForm, fieldElement: JSX.Element, id: string) => {\r\n ids = field.data.id.split('|');\r\n sectionIndex = errors[getId(ids, 1)].groupErrors[getId(ids, 2)].sectionErrors.findIndex(\r\n section => section.sectionIndex === Number(getId(ids, 4))\r\n );\r\n // Verify if section exists\r\n if (sectionIndexes.includes(getId(ids, 4))) {\r\n setHeaderTitleElements(field);\r\n fillElements(fieldElement, field);\r\n }\r\n // Create a new section\r\n else {\r\n sectionElements = [];\r\n headerDeleteElement = [];\r\n headerTitleElements = [];\r\n\r\n setHeaderTitleElements(field);\r\n fillElements(fieldElement, field);\r\n sectionIndexes.push(getId(ids, 4));\r\n\r\n sectionContainers.push(\r\n isExpansionPanel ? (\r\n -1 ?\r\n errors[getId(ids, 1)].groupErrors[getId(ids, 2)].sectionErrors.length > 0 ?\r\n errors[getId(ids, 1)].groupErrors[getId(ids, 2)].sectionErrors[sectionIndex].isSectionError\r\n : false\r\n : false}\r\n background=\"gray\"\r\n expandIcon={}\r\n expanded={expandedPanelId === `panel|${stepIndex}|${groupIndex}|${getId(ids, 4)}`}\r\n header={(\r\n \r\n \r\n 0 && sectionIndex > -1 ?\r\n errors[getId(ids, 1)].groupErrors[getId(ids, 2)].sectionErrors[sectionIndex].isSectionError ?\r\n 'error' : undefined\r\n : undefined}\r\n >\r\n {headerTitleElements}\r\n \r\n \r\n \r\n {headerDeleteElement}\r\n \r\n \r\n )}\r\n key={`expansionPanel|${field.data.id}|${id}`}\r\n onChange={onChangeExpansionPanel(`panel|${stepIndex}|${groupIndex}|${getId(ids, 4)}`)}\r\n >\r\n \r\n {sectionElements}\r\n \r\n \r\n ) : (\r\n \r\n \r\n {sectionElements}\r\n \r\n \r\n )\r\n );\r\n }\r\n };\r\n if (errors) {\r\n if (errors[stepIndex].groupErrors[groupIndex].groupId === 'addressInformationGroup') {\r\n firstHeaderTitleElement.push(`${resources.lblPrimary} `);\r\n }\r\n }\r\n\r\n fields.forEach((field, j) => {\r\n let fieldElement: JSX.Element | undefined;\r\n\r\n let id: string;\r\n if (field.data.modified) {\r\n id = `${field.data.id}`;\r\n }\r\n else {\r\n id = `${field.data.id}|${stepIndex}|${groupIndex}|${j}`;\r\n }\r\n\r\n let fieldSize: false | 'auto' | true | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;\r\n switch (field.gridSize) {\r\n case 'XS':\r\n fieldSize = 2;\r\n break;\r\n case 'S':\r\n fieldSize = 3;\r\n break;\r\n case 'M':\r\n fieldSize = 4;\r\n break;\r\n case 'L':\r\n fieldSize = 6;\r\n break;\r\n case 'XL':\r\n fieldSize = 12;\r\n break;\r\n default:\r\n fieldSize = 12;\r\n }\r\n\r\n switch (field.componentType) {\r\n case 'Button':\r\n fieldSize = isHorizontalAligned ? 3 : fieldSize;\r\n fieldElement = (\r\n \r\n \r\n {field.data.label}\r\n \r\n \r\n );\r\n break;\r\n case 'TextField':\r\n if (id.substr(0, 'postalCodeId'.length) === 'postalCodeId' ||\r\n id.substr(0, 'educationEtsCodeId'.length) === 'educationEtsCodeId') {\r\n let buttonId: string = '';\r\n let isPostalCode: boolean = false;\r\n if (field.data.modified) {\r\n if (id.substr(0, 'postalCodeId'.length) === 'postalCodeId') {\r\n buttonId = id.replace('postalCodeId', 'postalCodeButtonId');\r\n }\r\n if (id.substr(0, 'educationEtsCodeId'.length) === 'educationEtsCodeId') {\r\n buttonId = id.replace('educationEtsCodeId', 'educationEtsCodeButtonId');\r\n }\r\n }\r\n else {\r\n if (id.substr(0, 'postalCodeId'.length) === 'postalCodeId') {\r\n buttonId = `postalCodeButtonId|${stepIndex}|${groupIndex}|${j + 1}`;\r\n isPostalCode = true;\r\n }\r\n if (id.substr(0, 'educationEtsCodeId'.length) === 'educationEtsCodeId') {\r\n buttonId = `educationEtsCodeButtonId|${stepIndex}|${groupIndex}|${j + 1}`;\r\n }\r\n }\r\n\r\n fieldElement = (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {resources.lblSearch}\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n else {\r\n let format: string | undefined;\r\n if (id.substr(0, 'governmentId'.length) === 'governmentId' && governmentIdFormat) {\r\n format = governmentIdFormat;\r\n }\r\n\r\n fieldElement = (\r\n \r\n \r\n \r\n );\r\n }\r\n break;\r\n\r\n case 'Dropdown':\r\n const emptyOption: IDropDownOption = {\r\n description: String(resources.lblSelect),\r\n value: ''\r\n };\r\n let exist: boolean = false;\r\n if (field.default && field.data.options) {\r\n field.data.options.forEach(option => {\r\n if (option.value.toString() === field.default.toString()) {\r\n exist = true;\r\n }\r\n });\r\n }\r\n fieldElement = (\r\n \r\n \r\n \r\n );\r\n break;\r\n\r\n case 'Checkbox':\r\n let checked: boolean = false;\r\n if (field.value !== undefined) {\r\n checked = field.value;\r\n }\r\n fieldElement = (\r\n \r\n \r\n \r\n );\r\n break;\r\n\r\n case 'DatePicker':\r\n fieldElement = (\r\n \r\n \r\n \r\n );\r\n break;\r\n\r\n case 'DeleteIconButton':\r\n fieldSize = isHorizontalAligned ? 1 : fieldSize;\r\n const idDelete: string = field.data.id;\r\n fieldElement = (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n break;\r\n\r\n case 'CheckboxList':\r\n let messageRequired: JSX.Element | undefined;\r\n if (field.data.error && field.isRequired) {\r\n messageRequired = (\r\n \r\n {field.data.helperText}\r\n \r\n );\r\n }\r\n else {\r\n messageRequired = undefined;\r\n }\r\n const chkElements: JSX.Element[] = [];\r\n let isCheck: boolean;\r\n if (field.data.options) {\r\n field.data.options.forEach((option, i) => {\r\n isCheck = false;\r\n if (field.value) {\r\n const array: string[] = Object.values(field.value.split(','));\r\n if (field.value && array.length > 0) {\r\n const index: number = array.findIndex(x => x === option.value.toString());\r\n if (index > -1) {\r\n isCheck = true;\r\n }\r\n }\r\n }\r\n chkElements.push(\r\n \r\n )\r\n }\r\n label={option.description}\r\n key={`${field.data.id}|list|${i}`}\r\n />\r\n );\r\n });\r\n }\r\n fieldElement = (\r\n \r\n {messageRequired}\r\n {field.data.label ? (\r\n \r\n {field.isRequired ? `${field.data.label} *` : `${field.data.label}`}\r\n \r\n ) : undefined}\r\n \r\n \r\n {chkElements}\r\n \r\n \r\n \r\n );\r\n break;\r\n\r\n case 'Text':\r\n const errorColor: TextColor | undefined = field.data.error ? 'error' : undefined;\r\n let colorText: TextColor | undefined;\r\n if (!errorColor) {\r\n colorText = field.color ? field.color : undefined;\r\n }\r\n else {\r\n colorText = errorColor;\r\n }\r\n const size: TextSize | undefined = field.size;\r\n\r\n if (!field.isWithLink) {\r\n fieldElement = (\r\n \r\n \r\n {field.data.label}\r\n \r\n \r\n );\r\n }\r\n else {\r\n if (field.actionUrl && field.data.label) {\r\n const actions: string[] = field.actionUrl.split('|');\r\n fieldElement = (\r\n \r\n {\r\n if (action.substr(0, 'mailto:'.length) === 'mailto:' ||\r\n action.substr(0, 'tel:'.length) === 'tel:') {\r\n return ((_event: React.MouseEvent) => {\r\n window.location.href = `${action}`;\r\n });\r\n }\r\n else {\r\n return ((_event: React.MouseEvent) => {\r\n window.open(`${action}`, '_blank');\r\n });\r\n }\r\n })\r\n }\r\n />\r\n \r\n );\r\n }\r\n }\r\n break;\r\n\r\n case 'RadioGroup':\r\n const options: IDropDownOption[] = [];\r\n fieldElement = (\r\n \r\n \r\n {field.data.label}\r\n \r\n \r\n \r\n );\r\n break;\r\n\r\n case 'NestedCheckboxList':\r\n const array: IApplicationIpeds[] = [];\r\n if (field.value) {\r\n const ipedsArray = field.value.split(',');\r\n ipedsArray.forEach(iped => {\r\n const ipedItem = iped.split('$');\r\n if (ipedItem[0] !== '') {\r\n if (ipedItem.length > 1) {\r\n array.push({\r\n ipedsEthnicityId: ipedItem[1],\r\n ipedsFederalCategoryId: ipedItem[0]\r\n });\r\n }\r\n else {\r\n array.push({\r\n ipedsFederalCategoryId: ipedItem[0]\r\n });\r\n }\r\n }\r\n });\r\n }\r\n let errorMessage: JSX.Element | undefined;\r\n if (field.data.error) {\r\n errorMessage = (\r\n \r\n {field.data.helperText}\r\n \r\n );\r\n }\r\n else {\r\n errorMessage = undefined;\r\n }\r\n const elementsList: JSX.Element[] = [];\r\n if (field.data.complexOptions && field.data.complexOptions.length > 0) {\r\n field.data.complexOptions.forEach(complexItem => {\r\n const elements: JSX.Element[] = [];\r\n if (complexItem.options && complexItem.options.length > 0) {\r\n complexItem.options.forEach(item => {\r\n let childIsChecked: boolean = false;\r\n if (array.length > 0) {\r\n let index: number = -1;\r\n index =\r\n array.findIndex(x =>\r\n (x.ipedsEthnicityId ?\r\n x.ipedsEthnicityId.toString() : '') === item.value.toString() &&\r\n x.ipedsFederalCategoryId.toString() === complexItem.value.toString());\r\n if (index > -1) {\r\n childIsChecked = true;\r\n }\r\n }\r\n elements.push(\r\n \r\n )\r\n }\r\n label={item.description}\r\n />\r\n );\r\n });\r\n }\r\n let parentIsChecked: boolean = false;\r\n if (array.length > 0) {\r\n let index: number = -1;\r\n index =\r\n array.findIndex(x =>\r\n (x.ipedsFederalCategoryId ?\r\n x.ipedsFederalCategoryId.toString() : '') === complexItem.value.toString());\r\n if (index > -1) {\r\n parentIsChecked = true;\r\n }\r\n }\r\n elementsList.push(\r\n <>\r\n \r\n )\r\n }\r\n label={complexItem.description}\r\n />\r\n {elements}\r\n \r\n );\r\n });\r\n }\r\n fieldElement = (\r\n \r\n {field.data.label ? (\r\n \r\n {field.isRequired ? `${field.data.label} *` : `${field.data.label}`}\r\n \r\n ) : undefined}\r\n \r\n {errorMessage}\r\n \r\n \r\n {elementsList}\r\n \r\n \r\n \r\n \r\n );\r\n break;\r\n case 'Link':\r\n if (field.data.label) {\r\n fieldElement = (\r\n \r\n \r\n {field.data.label}\r\n \r\n \r\n );\r\n }\r\n break;\r\n case 'IconLinkEmail':\r\n if (field.data.label) {\r\n fieldElement = (\r\n \r\n { if (field.actionUrl) { window.location.href = field.actionUrl } }}\r\n >\r\n {field.data.label}\r\n \r\n \r\n );\r\n }\r\n break;\r\n case 'IconLinkPhone':\r\n if (field.data.label) {\r\n fieldElement = (\r\n \r\n { if (field.actionUrl) { window.location.href = field.actionUrl } }}\r\n >\r\n {field.data.label}\r\n \r\n \r\n );\r\n }\r\n break;\r\n case 'Divider':\r\n fieldElement = (\r\n \r\n
\r\n
\r\n );\r\n break;\r\n case 'Image':\r\n fieldElement = (\r\n \r\n \r\n \r\n );\r\n break;\r\n case 'HtmlElement':\r\n fieldElement = (\r\n \r\n \r\n
\r\n \r\n \r\n );\r\n break;\r\n }\r\n\r\n /* Determines the expansion panel header\r\n * for the first element of a group */\r\n if (field.isExpansionPanelHeader && field.value) {\r\n if (!field.data.modified) {\r\n if (field.componentType && field.componentType === 'Dropdown') {\r\n let selectedOption: number = 0;\r\n if (field.data && field.data.options && field.data.options.length > 0) {\r\n selectedOption =\r\n field.data.options.findIndex(x => x.value === field.value);\r\n if (selectedOption > -1) {\r\n firstHeaderTitleElement.push(`${field.data.options[selectedOption].description} `);\r\n }\r\n }\r\n }\r\n else {\r\n firstHeaderTitleElement.push(`${field.value} `);\r\n }\r\n }\r\n }\r\n\r\n /* Determines if the element is copied */\r\n if (fieldElement) {\r\n if (field.data.modified) {\r\n setMultipleFields(field, fieldElement, id);\r\n }\r\n else {\r\n elements.push(fieldElement);\r\n }\r\n }\r\n });\r\n\r\n return (\r\n isExpansionPanel && sectionContainers.length > 0 ? (\r\n <>\r\n }\r\n header={(\r\n \r\n {firstHeaderTitleElement.length > 0 ? firstHeaderTitleElement : resources.lblNew}\r\n \r\n )}\r\n onChange={onChangeExpansionPanel(`panel|${stepIndex}|${groupIndex}`)}\r\n >\r\n \r\n {elements}\r\n \r\n \r\n {sectionContainers}\r\n \r\n ) : (\r\n <>\r\n \r\n {elements}\r\n \r\n {sectionContainers}\r\n \r\n\r\n ));\r\n};\r\n// #endregion\r\n\r\n// Export: Component\r\nexport default withStyles(styles)(withWidth()(FieldsHandler));","/* Copyright 2019 Ellucian Company L.P. and its affiliates.\r\n* File: FieldsGroupHandler.tsx\r\n* Type: Presentation component */\r\n\r\n// #region Imports\r\nimport React from 'react';\r\n\r\n// Internal components\r\nimport { IApplicationHandler } from '../../../Types/Resources/Admissions/IApplicationFormResources';\r\nimport FieldsHandler from './FieldsHandler';\r\n\r\n// Core components\r\nimport Button from '@hedtech/powercampus-design-system/react/core/Button';\r\nimport Grid from '@hedtech/powercampus-design-system/react/core/Grid';\r\nimport Text from '@hedtech/powercampus-design-system/react/core/Text';\r\n\r\n// Helpers\r\nimport Tokens from '@hedtech/powercampus-design-system/react/core/styles/Tokens';\r\nimport { createStyles, withStyles, WithStyles } from '@hedtech/powercampus-design-system/react/core/styles/withStyles';\r\n\r\n// Types\r\nimport { IDropDownOption } from '@hedtech/powercampus-design-system/types/IDropDownOption';\r\nimport { IApplicationErrors } from '../../../Types/Applications/IApplicationErrors';\r\nimport { IFieldsGroup } from '../../../Types/Form/IFieldsGroup';\r\n// #endregion\r\n\r\n// #region Internal types\r\nexport interface IFieldsGroupHandlerProps {\r\n dateTimeCulture: string;\r\n errors: IApplicationErrors[];\r\n expanded: boolean | string;\r\n fieldGroup: IFieldsGroup;\r\n fieldGroupIndex: number;\r\n firstDayOfWeek: number;\r\n governmentIdFormat: string;\r\n isExpansionPanel: boolean;\r\n isHorizontalAligned: boolean;\r\n shortDatePattern: string;\r\n stepIndex: number;\r\n\r\n resources: IApplicationHandler;\r\n\r\n onAddMore: (fieldGroup: IFieldsGroup, stepIndex: number, fieldGroupIndex: number) => void;\r\n onChangeCheckBox: (event: React.ChangeEvent) => void;\r\n onChangeDateTimeField: (date: string, id: string, isValid: boolean) => void;\r\n onChangeDropDown: (optionSelected: IDropDownOption, id: string) => void;\r\n onChangeExpansionPanel: (label: string) => void;\r\n onChangeListCheckbox: (event: any) => void;\r\n onChangeRadioGroup: (event: React.ChangeEvent, value: string) => void;\r\n onChangeTextField: (event: React.ChangeEvent) => void;\r\n onClickButton: (event: React.MouseEvent) => void;\r\n onDeleteItem: (event: any) => void;\r\n}\r\n\r\nconst styles = (() => createStyles({\r\n buttonTop: {\r\n marginTop: Tokens.spacing30\r\n },\r\n groupTitleBottom: {\r\n marginBottom: 0\r\n }\r\n}));\r\n\r\ntype PropsWithStyles = IFieldsGroupHandlerProps & WithStyles;\r\n\r\n// #endregion\r\n\r\n// #region Component\r\nconst FieldsGroupHandler: React.FC = (props: PropsWithStyles): JSX.Element => {\r\n const {\r\n classes,\r\n dateTimeCulture,\r\n errors,\r\n expanded,\r\n fieldGroup,\r\n fieldGroupIndex,\r\n firstDayOfWeek,\r\n governmentIdFormat,\r\n isExpansionPanel,\r\n isHorizontalAligned,\r\n shortDatePattern,\r\n stepIndex,\r\n resources,\r\n\r\n onAddMore,\r\n onChangeCheckBox,\r\n onChangeDropDown,\r\n onChangeDateTimeField,\r\n onChangeExpansionPanel,\r\n onChangeListCheckbox,\r\n onChangeRadioGroup,\r\n onChangeTextField,\r\n onClickButton,\r\n onDeleteItem\r\n } = props;\r\n\r\n const isDisabled: boolean = fieldGroup.isDisableButton ? fieldGroup.isDisableButton : false;\r\n\r\n const content: JSX.Element[] = [];\r\n /* Field Id will be created in this way:\r\n * fieldId_sectionIndex_fieldIndex_positionInCollection\r\n * */\r\n const addMore = () => onAddMore(fieldGroup, stepIndex, fieldGroupIndex);\r\n if (fieldGroup.isMultiple) {\r\n content.push(\r\n \r\n \r\n \r\n );\r\n }\r\n let labelElement: JSX.Element | undefined;\r\n if (fieldGroup.label) {\r\n labelElement = (\r\n \r\n {fieldGroup.label}\r\n \r\n );\r\n }\r\n let instructionsElement: JSX.Element | undefined;\r\n if (fieldGroup.instructions) {\r\n instructionsElement = (\r\n \r\n {fieldGroup.instructions}\r\n \r\n );\r\n }\r\n\r\n content.push(\r\n \r\n {(fieldGroup.label !== '' || fieldGroup.instructions) &&\r\n fieldGroup.id !== 'confirmationGroup' ?\r\n (\r\n \r\n \r\n {labelElement}\r\n {instructionsElement}\r\n \r\n \r\n ) : undefined}\r\n \r\n \r\n );\r\n\r\n if (fieldGroup.isMultiple && Number(fieldGroup.maximumAllowed) !== 1) {\r\n content.push(\r\n \r\n \r\n \r\n {resources.lblAddNew}\r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n return (\r\n <>\r\n {content}\r\n \r\n );\r\n};\r\n// #endregion\r\n\r\n// Export: Component\r\nexport default withStyles(styles)(FieldsGroupHandler);","/* Copyright 2019 Ellucian Company L.P. and its affiliates.\r\n * File: ApplicationCompletedModal.tsx\r\n * Type: Presentation component */\r\n\r\n// #region Imports\r\nimport React from 'react';\r\n\r\n// Core components\r\nimport Button, { ButtonGroup } from '@hedtech/powercampus-design-system/react/core/Button';\r\nimport Divider from '@hedtech/powercampus-design-system/react/core/Divider';\r\nimport Grid from '@hedtech/powercampus-design-system/react/core/Grid';\r\nimport Modal from '@hedtech/powercampus-design-system/react/core/Modal';\r\nimport Text from '@hedtech/powercampus-design-system/react/core/Text';\r\n\r\n// Internal components\r\nimport { IApplicationHandler } from '../../../Types/Resources/Admissions/IApplicationFormResources';\r\nimport FieldsGroupHandler from './FieldsGroupHandler';\r\n\r\n// Helpers\r\nimport Tokens from '@hedtech/powercampus-design-system/react/core/styles/Tokens';\r\nimport { createStyles, withStyles, WithStyles } from '@hedtech/powercampus-design-system/react/core/styles/withStyles';\r\n\r\n// Types\r\nimport { IDropDownOption } from '@hedtech/powercampus-design-system/types/IDropDownOption';\r\nimport { IFieldsGroup } from '../../../Types/Form/IFieldsGroup';\r\nimport { IPaymentTransaction } from '../../../Types/Payment/IPaymentTransaction';\r\n// #endregion\r\n\r\n// #region Internal types\r\nexport interface IApplicationCompletedModalProps {\r\n dateTimeCulture: string;\r\n failedPayment: boolean;\r\n fieldGroup?: IFieldsGroup;\r\n paymentTransaction?: IPaymentTransaction;\r\n shortDatePattern: string;\r\n successPayment: boolean;\r\n\r\n onAddMore: (fieldGroup: IFieldsGroup, stepIndex: number, fieldGroupIndex: number) => void;\r\n onChangeCheckBox: (event: React.ChangeEvent) => void;\r\n onChangeDateTimeField: (date: string, id: string, isValid: boolean) => void;\r\n onChangeDropDown: (optionSelected: IDropDownOption, id: string) => void;\r\n onChangeListCheckbox: (event: any) => void;\r\n onChangeRadioGroup: (event: React.ChangeEvent, value: string) => void;\r\n onChangeTextField: (event: React.ChangeEvent) => void;\r\n onClickButton: (event: React.MouseEvent) => void;\r\n onCloseFailedPayment: (event: React.MouseEvent) => void;\r\n\r\n resourcesApplicationHandler: IApplicationHandler;\r\n}\r\n\r\nconst styles = createStyles({\r\n containerDetails: {\r\n backgroundColor: Tokens.colorBrandNeutral200,\r\n padding: Tokens.spacing50\r\n }\r\n});\r\n\r\ntype PropsWithStyles = IApplicationCompletedModalProps & WithStyles;\r\n// #endregion\r\n\r\n// #region Component\r\nconst ApplicationCompletedModal: React.FC = (props: PropsWithStyles): JSX.Element => {\r\n const {\r\n classes,\r\n dateTimeCulture,\r\n failedPayment,\r\n fieldGroup,\r\n paymentTransaction,\r\n shortDatePattern,\r\n successPayment,\r\n\r\n onAddMore,\r\n onChangeCheckBox,\r\n onChangeDateTimeField,\r\n onChangeDropDown,\r\n onChangeListCheckbox,\r\n onChangeRadioGroup,\r\n onChangeTextField,\r\n onClickButton,\r\n onCloseFailedPayment,\r\n\r\n resourcesApplicationHandler\r\n } = props;\r\n\r\n let footerModal: JSX.Element;\r\n footerModal = (\r\n \r\n \r\n {resourcesApplicationHandler.btnOk}\r\n \r\n \r\n );\r\n\r\n const bodyModal: JSX.Element[] = [];\r\n if (fieldGroup) {\r\n bodyModal.push(\r\n \r\n {failedPayment ?\r\n (\r\n \r\n \r\n {resourcesApplicationHandler.lblContentTextApplication}\r\n \r\n \r\n ) :\r\n successPayment && paymentTransaction ?\r\n (\r\n \r\n \r\n
\r\n \r\n {resourcesApplicationHandler.lblTitleDetails}\r\n \r\n \r\n \r\n \r\n \r\n {resourcesApplicationHandler.lblAmount}\r\n \r\n \r\n \r\n \r\n {paymentTransaction.amount}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {resourcesApplicationHandler.lblDescription}\r\n \r\n \r\n \r\n \r\n {paymentTransaction.description}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {resourcesApplicationHandler.lblAuthorizationCode}\r\n \r\n \r\n \r\n \r\n {paymentTransaction.authorizationNumber}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n ) :\r\n undefined\r\n }\r\n {!failedPayment ?\r\n (\r\n \r\n \r\n \r\n ) : undefined}\r\n
\r\n );\r\n }\r\n\r\n return (\r\n \r\n {bodyModal}\r\n \r\n );\r\n};\r\n// #endregion\r\n\r\n// Export: Component\r\nexport default withStyles(styles)(ApplicationCompletedModal);","/* Copyright 2019 - 2023 Ellucian Company L.P. and its affiliates.\r\n* File: ApplicationHandler.tsx\r\n* Type: Presentation component */\r\n\r\n// #region Imports\r\nimport React, { RefObject } from 'react';\r\nimport Media from 'react-media';\r\n\r\n// Core components\r\nimport Button, { ButtonGroup } from '@hedtech/powercampus-design-system/react/core/Button';\r\nimport Card from '@hedtech/powercampus-design-system/react/core/Card';\r\nimport Divider from '@hedtech/powercampus-design-system/react/core/Divider';\r\nimport Grid from '@hedtech/powercampus-design-system/react/core/Grid';\r\nimport Icon from '@hedtech/powercampus-design-system/react/core/Icon';\r\nimport MessageStyled from '@hedtech/powercampus-design-system/react/core/MessageStyled';\r\nimport ReCAPTCHA from '@hedtech/powercampus-design-system/react/core/ReCaptcha';\r\nimport StepProgress, {\r\n MobileStepper,\r\n MobileStepperLabel,\r\n MobileStepperStep,\r\n MobileStepperTitle,\r\n Step,\r\n StepButton,\r\n StepContent,\r\n StepLabel\r\n} from '@hedtech/powercampus-design-system/react/core/StepProgress';\r\nimport Text from '@hedtech/powercampus-design-system/react/core/Text';\r\n\r\n// Internal components\r\nimport ApplicationCompletedModal from './ApplicationCompletedModal';\r\nimport FieldsGroupHandler from './FieldsGroupHandler';\r\n\r\n// Helpers\r\nimport Format from '@hedtech/powercampus-design-system/helpers/Format';\r\nimport Tokens from '@hedtech/powercampus-design-system/react/core/styles/Tokens';\r\nimport { createStyles, Theme, withStyles, WithStyles } from '@hedtech/powercampus-design-system/react/core/styles/withStyles';\r\n\r\n// Types\r\nimport { IDropDownOption } from '@hedtech/powercampus-design-system/types/IDropDownOption';\r\nimport { IApplicationContent } from '../../../Types/Applications/IApplicationContent';\r\nimport { IApplicationErrors } from '../../../Types/Applications/IApplicationErrors';\r\nimport { IApplicationForm } from '../../../Types/Form/IApplicationForm';\r\nimport { IFieldsGroup } from '../../../Types/Form/IFieldsGroup';\r\nimport { IPaymentTransaction } from '../../../Types/Payment/IPaymentTransaction';\r\nimport { IApplicationHandler } from '../../../Types/Resources/Admissions/IApplicationFormResources';\r\n// #endregion\r\n\r\n// #region Internal types\r\nexport interface IApplicationHandlerProps {\r\n activeStep: number;\r\n components?: IApplicationForm;\r\n dateTimeCulture: string;\r\n errors: IApplicationErrors[];\r\n expanded: boolean | string;\r\n failedPayment: boolean;\r\n firstDayOfWeek: number;\r\n governmentIdFormat: string;\r\n paymentTransaction: IPaymentTransaction;\r\n saveMessage?: string;\r\n section?: JSON;\r\n shortDatePattern: string;\r\n showSaveButton: boolean;\r\n successPayment: boolean;\r\n\r\n resources: IApplicationHandler;\r\n onAddMore: (fieldGroup: IFieldsGroup) => void;\r\n onBackStep: () => void;\r\n onClickSave?: () => void;\r\n onClickStep: (event: React.MouseEvent) => void;\r\n onChangeCheckBox: (event: React.ChangeEvent) => void;\r\n onChangeDateTimeField: (date: string, id: string, isValid: boolean) => void;\r\n onChangeDropDown: (optionSelected: IDropDownOption, id: string) => void;\r\n onChangeExpansionPanel: (label: string) => void;\r\n onChangeListCheckbox: (event: any) => void;\r\n onChangeRadioGroup: (event: React.ChangeEvent, value: string) => void;\r\n onChangeTextField: (event: React.ChangeEvent) => void;\r\n onClickButton: (event: React.MouseEvent) => void;\r\n onCloseFailedPayment: (event: React.MouseEvent) => void;\r\n onDeleteItem: (event: any) => void;\r\n onNextStep: () => void;\r\n onSubmit: () => void;\r\n\r\n // #region ReCaptcha\r\n isReCaptchaSubmitEnabled: boolean;\r\n reCaptchaError: boolean;\r\n reCaptchaRef: RefObject;\r\n reCaptchaSiteKey: string;\r\n uiCulture: string;\r\n onRecaptchaChange: (token: any) => void;\r\n onReCaptchaError: () => void;\r\n // #endregion ReCaptcha\r\n}\r\n\r\nconst styles = (theme: Theme) => createStyles({\r\n backButtonMovil: {\r\n marginLeft: Tokens.spacing30\r\n },\r\n boxStep: {\r\n '& > span > span > span': {\r\n textAlign: 'left'\r\n },\r\n '&:focus': {\r\n boxShadow: 'none'\r\n }\r\n },\r\n buttonContainer: {\r\n marginTop: Tokens.spacing50\r\n },\r\n buttonsContainerMovil: {\r\n marginRight: Tokens.spacing50\r\n },\r\n buttonStep: {\r\n marginRight: Tokens.spacing40\r\n },\r\n cardRoot: {\r\n [theme.breakpoints.up('sm')]: {\r\n marginTop: Tokens.spacing80\r\n }\r\n },\r\n fieldContainer: {\r\n marginTop: Tokens.spacing30\r\n },\r\n footerPadding: {\r\n padding: `${Tokens.spacing50} ${Tokens.spacing50} 0 ${Tokens.spacing50}`,\r\n textAlign: 'center'\r\n },\r\n inline: {\r\n display: 'inline'\r\n },\r\n paddingLeft: {\r\n paddingLeft: Tokens.spacing80\r\n },\r\n marginLeft: {\r\n display: 'inline',\r\n marginLeft: Tokens.sizingSmall\r\n },\r\n mobileStepperContent: {\r\n minHeight: '65vh',\r\n padding: `${Tokens.spacing40} ${Tokens.spacing40} 0 ${Tokens.spacing40}`\r\n },\r\n reCaptchaErrorText: {\r\n paddingBottom: Tokens.spacing30\r\n },\r\n saveButtonMargin: {\r\n marginLeft: Tokens.sizingSmall,\r\n marginRight: Tokens.sizingSmall\r\n },\r\n saveFooter: {\r\n textAlign: 'center'\r\n },\r\n stepperDesktop: {\r\n padding: `${Tokens.spacing50} ${Tokens.spacing50} 0 ${Tokens.spacing50}`\r\n }\r\n});\r\n\r\ntype PropsWithStyles = IApplicationHandlerProps & WithStyles;\r\n// #endregion\r\n\r\n// #region Component\r\n\r\nconst ApplicationHandler: React.FC = (props: PropsWithStyles): JSX.Element => {\r\n const {\r\n activeStep,\r\n classes,\r\n components,\r\n dateTimeCulture,\r\n errors,\r\n expanded,\r\n failedPayment,\r\n firstDayOfWeek,\r\n governmentIdFormat,\r\n paymentTransaction,\r\n saveMessage,\r\n shortDatePattern,\r\n showSaveButton,\r\n successPayment,\r\n\r\n onAddMore,\r\n onBackStep,\r\n onClickSave,\r\n onClickStep,\r\n onChangeCheckBox,\r\n onChangeDateTimeField,\r\n onChangeDropDown,\r\n onChangeExpansionPanel,\r\n onChangeListCheckbox,\r\n onChangeRadioGroup,\r\n onChangeTextField,\r\n onClickButton,\r\n onCloseFailedPayment,\r\n onDeleteItem,\r\n onNextStep,\r\n onSubmit,\r\n\r\n resources,\r\n\r\n // #region ReCaptcha\r\n isReCaptchaSubmitEnabled,\r\n reCaptchaError,\r\n reCaptchaRef,\r\n reCaptchaSiteKey,\r\n uiCulture,\r\n onRecaptchaChange,\r\n onReCaptchaError\r\n // #endregion ReCaptcha\r\n } = props;\r\n\r\n const noContent: JSX.Element = (\r\n \r\n );\r\n\r\n const reCaptchaElement: JSX.Element = (\r\n <>\r\n \r\n {reCaptchaError && (\r\n \r\n \r\n {resources.lblReCaptchaRequired}\r\n \r\n \r\n )}\r\n \r\n );\r\n\r\n let content: IApplicationContent[] = [];\r\n if (components && components.steps && components.steps.length > 0) {\r\n content = Array(components.steps.length);\r\n components.steps.forEach((step, i) => {\r\n const fieldsGroupsElements: JSX.Element[] = [];\r\n if (step.fieldsGroups && step.fieldsGroups.length > 0) {\r\n step.fieldsGroups.forEach((fieldGroup, j) => {\r\n fieldsGroupsElements.push(\r\n \r\n );\r\n });\r\n }\r\n\r\n content[i] = {\r\n content: (\r\n \r\n \r\n {fieldsGroupsElements}\r\n \r\n ),\r\n instructions: step.instructions,\r\n title: step.title\r\n };\r\n });\r\n }\r\n\r\n const fieldsGroupsModal: JSX.Element[] = [];\r\n const footer: JSX.Element[] = [];\r\n if (components && components.fieldsGroups) {\r\n if (components.fieldsGroups.length > 0) {\r\n // Confirmation Dialog\r\n if (components.isCompletedApplication) {\r\n let confirmationGroup: IFieldsGroup | undefined;\r\n const confirmationIndex: number =\r\n components.fieldsGroups.findIndex(x => x.id === 'confirmationGroup');\r\n if (confirmationIndex > -1) {\r\n confirmationGroup = components.fieldsGroups[confirmationIndex];\r\n }\r\n\r\n fieldsGroupsModal.push(\r\n \r\n );\r\n }\r\n // Footer\r\n let footerGroup: IFieldsGroup | undefined;\r\n const footerGroupIndex: number =\r\n components.fieldsGroups.findIndex(x => x.id === 'footerGroup');\r\n if (footerGroupIndex > -1) {\r\n footerGroup = components.fieldsGroups[footerGroupIndex];\r\n }\r\n if (footerGroup) {\r\n footer.push(\r\n \r\n );\r\n }\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n
\r\n \r\n {content.length > 0 ? (\r\n \r\n {(matches: boolean): JSX.Element => matches ? (\r\n \r\n {resources.lblNext}\r\n \r\n )\r\n }\r\n backButton={\r\n (\r\n \r\n {resources.lblBack}\r\n \r\n )\r\n }\r\n >\r\n
\r\n \r\n <>\r\n {components ? (\r\n <>\r\n {components.name || ''}\r\n {components.enableOnlinePayment\r\n && components.feeAmount ?\r\n (\r\n \r\n {Format.toString(components.isFlatFee\r\n ? resources.formatHasFee\r\n : resources.formatHasFees,\r\n [components.feeAmount])}\r\n \r\n )\r\n : undefined}\r\n \r\n ) : undefined}\r\n \r\n \r\n\r\n {activeStep !== content.length ? (\r\n <>\r\n \r\n \r\n {content[activeStep].title}\r\n \r\n \r\n {content[activeStep].content}\r\n \r\n ) : (\r\n <>\r\n \r\n {content.map((step, i) => (\r\n \r\n \r\n \r\n {errors[i].isStepError ? (\r\n \r\n {step.title}\r\n \r\n ) : step.title}\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n {isReCaptchaSubmitEnabled && Boolean(reCaptchaSiteKey) && (\r\n \r\n {reCaptchaElement}\r\n \r\n )}\r\n \r\n \r\n {resources.lblSubmit}\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n
\r\n \r\n ) : (\r\n <>\r\n {components ? (\r\n \r\n \r\n \r\n {components.name || ''}\r\n \r\n {components.enableOnlinePayment\r\n && components.feeAmount ?\r\n (\r\n \r\n {Format.toString(components.isFlatFee\r\n ? resources.formatHasFee\r\n : resources.formatHasFees, [components.feeAmount])}\r\n \r\n )\r\n : undefined}\r\n \r\n \r\n \r\n ) : undefined}\r\n \r\n {content.map((step, i) => (\r\n \r\n \r\n \r\n {errors[i].isStepError ? (\r\n \r\n {step.title}\r\n \r\n ) : step.title}\r\n \r\n \r\n \r\n {step.content}\r\n {activeStep !== content.length - 1 && (\r\n \r\n \r\n \r\n \r\n {resources.lblBack}\r\n \r\n \r\n {resources.lblNext}\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n ))}\r\n \r\n {activeStep === content.length - 1 && (\r\n \r\n {isReCaptchaSubmitEnabled && Boolean(reCaptchaSiteKey) && (\r\n \r\n {reCaptchaElement}\r\n \r\n )}\r\n \r\n \r\n \r\n {resources.lblBack}\r\n \r\n \r\n {resources.lblSubmit}\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n )\r\n }\r\n
\r\n ) : noContent}\r\n {showSaveButton && onClickSave ?\r\n (\r\n
\r\n
\r\n \r\n \r\n {saveMessage}\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n {resources.lblSave}\r\n
\r\n \r\n
\r\n
\r\n )\r\n : undefined\r\n }\r\n
\r\n {footer}\r\n
\r\n {fieldsGroupsModal}\r\n
\r\n \r\n \r\n );\r\n};\r\n// #endregion\r\n\r\n// Export: Component\r\nexport default withStyles(styles)(ApplicationHandler);","/* Copyright 2019 Ellucian Company L.P. and its affiliates.\r\n * File: Attachments.tsx\r\n * Type: Presentation component */\r\n\r\n// #region Imports\r\nimport React from 'react';\r\n\r\n// Core components\r\nimport Button from '@hedtech/powercampus-design-system/react/core/Button';\r\nimport Card, { CardContent } from '@hedtech/powercampus-design-system/react/core/Card';\r\nimport Divider from '@hedtech/powercampus-design-system/react/core/Divider';\r\nimport Grid from '@hedtech/powercampus-design-system/react/core/Grid';\r\nimport Hidden from '@hedtech/powercampus-design-system/react/core/Hidden';\r\nimport Icon from '@hedtech/powercampus-design-system/react/core/Icon';\r\nimport IconButton from '@hedtech/powercampus-design-system/react/core/IconButton';\r\nimport MessageStyled from '@hedtech/powercampus-design-system/react/core/MessageStyled';\r\nimport Table, { TableBody, TableCell, TableHead, TableRow } from '@hedtech/powercampus-design-system/react/core/Table';\r\nimport Text from '@hedtech/powercampus-design-system/react/core/Text';\r\nimport Tooltip from '@hedtech/powercampus-design-system/react/core/Tooltip';\r\n\r\n// Helpers\r\nimport Format from '@hedtech/powercampus-design-system/helpers/Format';\r\nimport Tokens from '@hedtech/powercampus-design-system/react/core/styles/Tokens';\r\nimport { createStyles, Theme, withStyles, WithStyles } from '@hedtech/powercampus-design-system/react/core/styles/withStyles';\r\n\r\n// Types\r\nimport { IApplicationAttachment } from '../../../Types/Applications/IApplicationAttachment';\r\nimport { IAttachments } from '../../../Types/Resources/Admissions/IApplicationFormResources';\r\n// #endregion Imports\r\n// #region Types\r\n\r\nexport interface IAttachmentProps {\r\n attachments?: IApplicationAttachment[];\r\n numberOfAttachments: number;\r\n totalSize?: string;\r\n onClickContinue: (event: React.MouseEvent) => void;\r\n onClickInfo: (event: React.MouseEvent) => void;\r\n onClickOpenFolder: (event: React.MouseEvent) => void;\r\n onClickRemoveAttachment: (event: React.MouseEvent) => void;\r\n resources: IAttachments;\r\n}\r\n\r\nconst styles = (theme: Theme) => createStyles({\r\n buttonContainer: {\r\n marginTop: Tokens.spacing50\r\n },\r\n buttonStep: {\r\n marginRight: Tokens.spacing40\r\n },\r\n icon: {\r\n color: theme.palette.action.active,\r\n cursor: 'pointer'\r\n },\r\n inline: {\r\n display: 'inline'\r\n },\r\n marginLeft: {\r\n display: 'inline',\r\n marginLeft: Tokens.sizingSmall\r\n },\r\n marginRigth: {\r\n display: 'inline',\r\n marginRigth: Tokens.sizingSmall\r\n },\r\n table: {\r\n '& > tbody > tr > th:nth-child(1)': {\r\n width: '70%'\r\n },\r\n '& > tbody > tr > th:nth-child(2)': {\r\n width: '10%'\r\n },\r\n '& > tbody > tr > th:nth-child(3)': {\r\n width: '10%'\r\n },\r\n '& > tbody > tr > th:nth-child(4)': {\r\n width: '10%'\r\n }\r\n }\r\n});\r\n\r\ntype PropsWithStyles = IAttachmentProps & WithStyles;\r\n// #endregion Types\r\n\r\n// #region Component\r\nconst Attachment: React.FC = (props: PropsWithStyles): JSX.Element => {\r\n const {\r\n attachments,\r\n numberOfAttachments,\r\n classes,\r\n totalSize,\r\n onClickContinue,\r\n onClickInfo,\r\n onClickOpenFolder,\r\n onClickRemoveAttachment,\r\n resources\r\n } = props;\r\n\r\n let table: JSX.Element | undefined;\r\n if (attachments && attachments.length > 0) {\r\n table = (\r\n \r\n \r\n \r\n \r\n {resources.lblName}\r\n \r\n \r\n {resources.lblType}\r\n \r\n \r\n {resources.lblSize}\r\n \r\n \r\n {resources.lblDelete}\r\n \r\n \r\n \r\n \r\n {attachments.map((attachment, i) => (\r\n \r\n \r\n \r\n {attachment.attachmentTitle}\r\n \r\n \r\n \r\n \r\n {attachment.extension}\r\n \r\n \r\n \r\n \r\n {attachment.fileSize}\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 let content: JSX.Element | undefined;\r\n if (resources) {\r\n content = (\r\n \r\n \r\n \r\n \r\n \r\n {resources.lblTitle}\r\n \r\n \r\n \r\n \r\n \r\n {Format.toString(resources.lblInstructions, [numberOfAttachments])}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {resources.lblChooseFile}\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 {resources.lblSupportedFiles}\r\n \r\n \r\n \r\n \r\n {\r\n attachments && attachments.length > 0 ?\r\n (\r\n <>\r\n \r\n {resources.lblAttachments}\r\n \r\n {table}\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 {resources.lblContinue}\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 return (\r\n <>\r\n {content}\r\n \r\n );\r\n};\r\n// #endregion Component\r\n\r\n// Export: Component\r\nexport default withStyles(styles)(Attachment);","/* Copyright 2019 Ellucian Company L.P. and its affiliates.\r\n * File: ConfirmationSavedModal.tsx\r\n * Type: Presentation component */\r\n\r\n// #region Imports\r\nimport React from 'react';\r\n\r\n// Generic components\r\nimport Button from '@hedtech/powercampus-design-system/react/core/Button';\r\nimport Grid from '@hedtech/powercampus-design-system/react/core/Grid';\r\nimport Modal from '@hedtech/powercampus-design-system/react/core/Modal';\r\nimport Text from '@hedtech/powercampus-design-system/react/core/Text';\r\n\r\n// Types\r\nimport { IConfirmationSavedModal } from '../../../Types/Resources/Admissions/IApplicationFormResources';\r\n// #endregion Imports\r\n\r\n// #region Types\r\nexport interface IConfirmationSavedModalProps {\r\n confirmationMessage: string;\r\n open: boolean;\r\n resources: IConfirmationSavedModal;\r\n onCloseModal: () => void;\r\n}\r\n// #endregion Types\r\n\r\n// #region Component\r\nconst ConfirmationSavedModal: React.FC = (props: IConfirmationSavedModalProps): JSX.Element => {\r\n const {\r\n confirmationMessage,\r\n open,\r\n resources,\r\n onCloseModal\r\n } = props;\r\n\r\n return (\r\n \r\n {resources.btnOk}\r\n \r\n )}\r\n id=\"confirmationSaveModal\"\r\n header={resources.lblTitle}\r\n maxWidth=\"md\"\r\n open={open}\r\n onClose={onCloseModal}\r\n >\r\n \r\n \r\n \r\n {confirmationMessage}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n// #endregion Component\r\n\r\n// Export: Component\r\nexport default ConfirmationSavedModal;","/* Copyright 2019 Ellucian Company L.P. and its affiliates.\r\n * File: ETSSearchModal.tsx\r\n * Type: Presentation component */\r\n\r\n// #region Imports\r\nimport React from 'react';\r\n\r\n// Core components\r\nimport Button, { ButtonGroup } from '@hedtech/powercampus-design-system/react/core/Button';\r\nimport Dropdown from '@hedtech/powercampus-design-system/react/core/Dropdown';\r\nimport Grid from '@hedtech/powercampus-design-system/react/core/Grid';\r\nimport Link from '@hedtech/powercampus-design-system/react/core/Link';\r\nimport Modal from '@hedtech/powercampus-design-system/react/core/Modal';\r\nimport Pagination from '@hedtech/powercampus-design-system/react/core/Pagination';\r\nimport Table, { TableBody, TableCell, TableHead, TableRow } from '@hedtech/powercampus-design-system/react/core/Table';\r\nimport TextField from '@hedtech/powercampus-design-system/react/core/TextField';\r\n\r\n// Types\r\nimport { IDropDownOption } from '@hedtech/powercampus-design-system/types/IDropDownOption';\r\nimport { IInstitution } from '../../../Types/Applications/IInstitution';\r\nimport { IETSSearchModal } from '../../../Types/Resources/Admissions/IApplicationFormResources';\r\n\r\n// #endregion\r\n\r\n// #region Internal types\r\nexport interface IETSSearchModalProps {\r\n city?: string;\r\n countries: IDropDownOption[];\r\n country?: number;\r\n etsCode?: string;\r\n institutionName?: string;\r\n institutions?: IInstitution[];\r\n open: boolean;\r\n pageNumber: number;\r\n pageSize: number;\r\n rowsPerPageOptions: number[];\r\n state?: number;\r\n states: IDropDownOption[];\r\n totalInstitutions: number;\r\n\r\n // events\r\n onChangeDropDownETSSearch?: (optionSelected: IDropDownOption, id: string) => void;\r\n onChangePage: (event: any, page: number) => void;\r\n onChangeRowsPerPage: (event: any) => void;\r\n onChangeTextFieldETSSearch?: (event: any) => void;\r\n onClear: () => void;\r\n onClickLink: (institutionName?: string, etsCode?: string, ficeCode?: string,\r\n city?: string, stateProvinceId?: number, countryId?: number) => void;\r\n onClose: () => void;\r\n onSearch: () => void;\r\n\r\n // resources\r\n resources: IETSSearchModal;\r\n}\r\n// #endregion\r\n\r\n// #region Component\r\nconst ETSSearchModal: React.FC = (props: IETSSearchModalProps): JSX.Element => {\r\n const {\r\n city,\r\n countries,\r\n country,\r\n etsCode,\r\n institutionName,\r\n institutions,\r\n open,\r\n pageNumber,\r\n pageSize,\r\n rowsPerPageOptions,\r\n state,\r\n states,\r\n totalInstitutions,\r\n\r\n // events\r\n onChangeDropDownETSSearch,\r\n onChangePage,\r\n onChangeRowsPerPage,\r\n onChangeTextFieldETSSearch,\r\n onClear,\r\n onClickLink,\r\n onClose,\r\n onSearch,\r\n\r\n // resources\r\n resources\r\n } = props;\r\n\r\n const emptyOptionState: IDropDownOption = {\r\n description: resources.lblEmptyOptionState,\r\n value: ''\r\n };\r\n\r\n const emptyOptionCountry: IDropDownOption = {\r\n description: resources.lblEmptyOptionCountry,\r\n value: ''\r\n };\r\n\r\n const footerModal: JSX.Element = (\r\n \r\n \r\n {resources.btnSearch}\r\n \r\n \r\n {resources.btnClear}\r\n \r\n \r\n );\r\n\r\n let tableInstitutions: JSX.Element | undefined;\r\n if (institutions && institutions.length > 0) {\r\n tableInstitutions = (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {resources.lblInstitutionName}\r\n \r\n \r\n {resources.lblETSCode}\r\n \r\n \r\n {resources.lblFICECode}\r\n \r\n \r\n {resources.lblCity}\r\n \r\n \r\n {resources.lblState}\r\n \r\n \r\n {resources.lblCountry}\r\n \r\n \r\n \r\n \r\n {\r\n institutions.map(\r\n (row, i) => (\r\n \r\n \r\n \r\n \r\n {row.name}\r\n \r\n \r\n \r\n \r\n \r\n {row.etsCode}\r\n \r\n \r\n \r\n \r\n {row.ficeCode}\r\n \r\n \r\n \r\n \r\n {row.city}\r\n \r\n \r\n \r\n \r\n {row.stateDesc}\r\n \r\n \r\n \r\n \r\n {row.countryDesc}\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 let paginationComponent: JSX.Element | undefined;\r\n if (institutions && institutions.length > 0) {\r\n paginationComponent = (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n let bodyModal: JSX.Element;\r\n bodyModal = (\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 \r\n {footerModal}\r\n \r\n
\r\n
\r\n {tableInstitutions}\r\n {paginationComponent}\r\n \r\n );\r\n\r\n return (\r\n \r\n {bodyModal}\r\n \r\n );\r\n};\r\n// #endregion\r\n\r\n// Export: Component\r\nexport default ETSSearchModal;","/* Copyright 2019 - 2023 Ellucian Company L.P. and its affiliates.\r\n* File: ApplicationForm.ts */\r\n\r\n// Types\r\nimport { ILogData } from '@hedtech/powercampus-design-system/types/ILogData';\r\nimport { IApplication } from '../../Types/Applications/IApplication';\r\nimport { IApplicationAttachment } from '../../Types/Applications/IApplicationAttachment';\r\nimport { ISavedApplication } from '../../Types/Applications/ISavedApplication';\r\nimport { IApplicationForm } from '../../Types/Form/IApplicationForm';\r\n\r\n// Helpers\r\nimport Request from '@hedtech/powercampus-design-system/helpers/Request';\r\n\r\n// Functions for requests\r\nconst ApplicationFormRequests = {\r\n // #region Addresses\r\n getAddresses(startIndex: number, length: number, zipCode?: string, resolver?: (json: string) => void,\r\n resolveError?: (logData: ILogData) => void): void {\r\n Request.post(this.getAddresses.name, '/Address',\r\n {\r\n length,\r\n startIndex,\r\n zipCode\r\n },\r\n resolver, resolveError);\r\n },\r\n // #endregion Addresses\r\n\r\n // #region ApplicationHandler\r\n getComponents(id: number, resolver: (json: string) => void, resolveError: (logData: ILogData) => void): void {\r\n Request.post(this.getComponents.name, '/Forms/Details',\r\n {\r\n id: id,\r\n type: 0\r\n },\r\n resolver, resolveError);\r\n },\r\n\r\n getSavedApplicationComponents(savedApplicationToken: string,\r\n resolver: (json: string) => void, resolveError: (logData: ILogData) => void): void {\r\n Request.post(this.getComponents.name, '/Forms/Saved',\r\n savedApplicationToken,\r\n resolver, resolveError);\r\n },\r\n\r\n postSubmit(application: IApplication,\r\n resolver: (json: string) => void, resolveError: (logData: ILogData) => void): void {\r\n Request.post(this.postSubmit.name, '/Applications/Create', application, resolver, resolveError);\r\n },\r\n\r\n postCreateSavedApplication(savedApplication: ISavedApplication,\r\n components: IApplicationForm, resolver: (json: string) => void, resolveError: (logData: ILogData) => void): void {\r\n Request.post(this.postCreateSavedApplication.name,\r\n '/Applications/CreateSavedApplication',\r\n {\r\n components,\r\n savedApplication\r\n },\r\n resolver,\r\n resolveError);\r\n },\r\n\r\n postCreateSaveApplicationNotification(urlToSend: string, email: string,\r\n formApplicationName: string, resolver: (json: string) => void, resolveError: (ILogData: ILogData) => void): void {\r\n Request.post(this.postCreateSaveApplicationNotification.name,\r\n '/Applications/CreateSaveApplicationNotification',\r\n {\r\n email: email,\r\n formApplicationName: formApplicationName,\r\n urlToSend: urlToSend\r\n },\r\n resolver,\r\n resolveError);\r\n },\r\n\r\n postCreateApplicationAttachment(applicationAttachment: IApplicationAttachment,\r\n resolver: (json: string) => void, resolveError: (logData: ILogData) => void): void {\r\n Request.post(this.postCreateApplicationAttachment.name,\r\n '/Applications/CreateApplicationAttachment',\r\n applicationAttachment,\r\n resolver,\r\n resolveError);\r\n },\r\n\r\n postListApplicationAttachments(applicationId: number,\r\n resolver: (json: string) => void, resolveError: (logData: ILogData) => void): void {\r\n Request.post(this.postListApplicationAttachments.name,\r\n '/Applications/ListApplicationAttachments',\r\n applicationId,\r\n resolver,\r\n resolveError);\r\n },\r\n\r\n postDeleteApplicationAttachment(attachmentId: number,\r\n resolver: (json: string) => void, resolveError: (logData: ILogData) => void): void {\r\n Request.post(this.postListApplicationAttachments.name,\r\n '/Applications/DeleteApplicationAttachment',\r\n attachmentId,\r\n resolver,\r\n resolveError);\r\n },\r\n\r\n getApplicationAttachments(applicationId: number,\r\n resolver: (json: string) => void, resolveError: (logData: ILogData) => void): void {\r\n Request.post(this.getApplicationAttachments.name,\r\n '/Applications/DeleteApplicationAttachment',\r\n applicationId,\r\n resolver,\r\n resolveError);\r\n },\r\n\r\n GetApplicationAttachmentTotals(applicationId: number,\r\n resolver: (json: string) => void, resolveError: (logData: ILogData) => void): void {\r\n Request.post(this.getApplicationAttachments.name,\r\n '/Applications/GetApplicationAttachmentTotals',\r\n applicationId,\r\n resolver,\r\n resolveError);\r\n },\r\n // #endregion\r\n\r\n // #region TestScores\r\n getChildOptions(url: string, id: number, step: string, group: string, targetId: string, isApplicationForm: boolean,\r\n resolver: (json: string) => void, resolveError: (logData: ILogData) => void,\r\n formId?: number): void {\r\n if (!formId) {\r\n Request.post(this.getChildOptions.name, `/${url}`, {\r\n group,\r\n id,\r\n step,\r\n targetId\r\n }, resolver, resolveError);\r\n }\r\n else {\r\n Request.post(this.getChildOptions.name, `/${url}`, {\r\n formId,\r\n group,\r\n id,\r\n step,\r\n targetId,\r\n isApplicationForm\r\n }, resolver, resolveError);\r\n }\r\n },\r\n getValidateScoreType(\r\n applicationId: number,\r\n test: any,\r\n group: string,\r\n componentId: string,\r\n resolver: (json: string) => void,\r\n resolveError: (logData: ILogData) => void): void {\r\n Request.post(this.getValidateScoreType.name,\r\n '/TestScores/ScoreType',\r\n { formId: applicationId, testId: test, group, componentId },\r\n resolver,\r\n resolveError);\r\n },\r\n // #endregion\r\n\r\n // #region Institutions\r\n getCountries(resolver: (json: string) => void, resolveError: (logData: ILogData) => void): void {\r\n Request.get(this.getCountries.name, '/Institutions/Countries', resolver, resolveError);\r\n },\r\n getStates(resolver: (json: string) => void, resolveError: (logData: ILogData) => void): void {\r\n Request.get(this.getCountries.name, '/Institutions/States', resolver, resolveError);\r\n },\r\n getInstitutions(startIndex: number, length: number, institutionName?: string, etsCode?: string,\r\n city?: string, stateId?: number, countryId?: number, resolver?: (json: string) => void,\r\n resolveError?: (logData: ILogData) => void): void {\r\n Request.post(this.getInstitutions.name, '/Institutions',\r\n {\r\n length,\r\n startIndex,\r\n institution: {\r\n city,\r\n countryId,\r\n etsCode,\r\n name: institutionName,\r\n stateProvinceId: stateId\r\n }\r\n },\r\n resolver, resolveError);\r\n },\r\n // #endregion\r\n\r\n // #region Settings\r\n getGeneralSettings(resolver: (json: string) => void): void {\r\n Request.get(this.getGeneralSettings.name, '/Settings/General', resolver);\r\n },\r\n getReCaptchaSettings(resolver: (json: string) => void): void {\r\n Request.post(this.getReCaptchaSettings.name, '/Applications/RecaptchaSettings', null, resolver);\r\n },\r\n // #endregion Settings\r\n\r\n};\r\n\r\n// Export object with the requests\r\nexport default ApplicationFormRequests;","/* Copyright 2019 - 2021 Ellucian Company L.P. and its affiliates.\r\n * File: Applications.ts */\r\n\r\n// Types\r\nimport { ILogData } from '@hedtech/powercampus-design-system/types/ILogData';\r\n\r\n// Helpers\r\nimport Request from '@hedtech/powercampus-design-system/helpers/Request';\r\nimport { ISavedApplication } from '../../Types/Applications/ISavedApplication';\r\nimport { IApplicationForm } from '../../Types/Form/IApplicationForm';\r\n\r\n// Functions for requests\r\nconst ApplicationsRequests = {\r\n\r\n // #region ApplicationHandler\r\n getApplications(resolver: (json: string) => void, resolveError: (logData: ILogData) => void): void {\r\n Request.post(this.getApplications.name, '/Forms/List', 0 , resolver, resolveError);\r\n },\r\n // #endregion\r\n\r\n postDeleteSavedApplication(savedApplicationId: number,\r\n resolver: (json: string) => void, resolveError: (logData: ILogData) => void): void {\r\n Request.post(this.postDeleteSavedApplication.name, '/Forms/DeleteSavedApplication',\r\n savedApplicationId, resolver, resolveError);\r\n },\r\n\r\n postUpdateSavedApplication(savedApplication: ISavedApplication,\r\n components: IApplicationForm, resolver: (json: string) => void,\r\n resolveError: (logData: ILogData) => void): void {\r\n Request.post(this.postUpdateSavedApplication.name, '/Forms/UpdateSavedApplication',\r\n {\r\n components: components,\r\n savedApplication: savedApplication\r\n },\r\n resolver, resolveError);\r\n },\r\n getStatusSettings(resolver: (json: string) => void): void {\r\n Request.post(this.getStatusSettings.name, '/Settings/ApplicationStatus', null, resolver);\r\n },\r\n getSubmittedApplications(resolver: (json: string) => void): void {\r\n Request.post(this.getSubmittedApplications.name, '/Applications/GetSubmittedApplications', null, resolver);\r\n },\r\n};\r\n\r\n// Export object with the requests\r\nexport default ApplicationsRequests;","/* Copyright 2019 - 2023 Ellucian Company L.P. and its affiliates.\r\n * File: ApplicationFormView.tsx\r\n * Type: Container component */\r\n\r\n// #region Imports\r\nimport moment from 'moment';\r\nimport React, { RefObject } from 'react';\r\nimport ReactDOM from 'react-dom';\r\n\r\n// Core components\r\nimport Layout, { withLayout } from '@hedtech/powercampus-design-system/react/components/Layout';\r\nimport ConfirmationDialog from '@hedtech/powercampus-design-system/react/core/ConfirmationDialog';\r\n\r\n// Internal Components\r\nimport PaymentDetailModal from '../../Generic/PaymentDetailModal';\r\nimport ProcessPaymentModal from '../../Generic/ProcessPaymentModal';\r\nimport SignIn from '../../Generic/SignIn';\r\nimport SignUp from '../../Generic/SignUp';\r\nimport AddressSearchModal from './AddressSearchModal';\r\nimport ApplicationHandler from './ApplicationHandler';\r\nimport Attachments from './Attachments';\r\nimport ConfirmationSavedModal from './ConfirmationSavedModal';\r\nimport ETSSearchModal from './ETSSearchModal';\r\n\r\n// Generic components\r\nimport Button from '@hedtech/powercampus-design-system/react/core/Button';\r\nimport Grid from '@hedtech/powercampus-design-system/react/core/Grid';\r\nimport Modal from '@hedtech/powercampus-design-system/react/core/Modal';\r\nimport Table, { TableBody, TableCell, TableRow } from '@hedtech/powercampus-design-system/react/core/Table';\r\nimport Text from '@hedtech/powercampus-design-system/react/core/Text';\r\nimport TextField from '@hedtech/powercampus-design-system/react/core/TextField';\r\n\r\n// #region Types\r\nimport { IAddress } from '../../../Types/Account/IAddress';\r\nimport { IAlert } from '@hedtech/powercampus-design-system/types/IAlert';\r\nimport { IApplication } from '../../../Types/Applications/IApplication';\r\nimport { IApplicationActivity } from '../../../Types/Applications/IApplicationActivity';\r\nimport { IApplicationAddress } from '../../../Types/Applications/IApplicationAddress';\r\nimport { IApplicationAttachment } from '../../../Types/Applications/IApplicationAttachment';\r\nimport { IApplicationEducation } from '../../../Types/Applications/IApplicationEducation';\r\nimport { IApplicationEmergencyContact } from '../../../Types/Applications/IApplicationEmergencyContact';\r\nimport { IApplicationEmployment } from '../../../Types/Applications/IApplicationEmployment';\r\nimport { IApplicationErrors } from '../../../Types/Applications/IApplicationErrors';\r\nimport { IApplicationForm } from '../../../Types/Form/IApplicationForm';\r\nimport { IApplicationFormResources } from '../../../Types/Resources/Admissions/IApplicationFormResources';\r\nimport { IApplicationIpeds } from '../../../Types/Applications/IApplicationIpeds';\r\nimport { IApplicationPhoneList } from '../../../Types/Applications/IApplicationPhoneList';\r\nimport { IApplicationProgram } from '../../../Types/Applications/IApplicationProgram';\r\nimport { IApplicationRelative } from '../../../Types/Applications/IApplicationRelative';\r\nimport { IApplicationResidency } from '../../../Types/Applications/IApplicationResidency';\r\nimport { IApplicationUserDefined } from '../../../Types/Applications/IApplicationUserDefined';\r\nimport { ICultures } from '@hedtech/powercampus-design-system/types/ICultures';\r\nimport { IDataForm } from '../../../Types/Form/IDataForm';\r\nimport { IDropDownOption } from '@hedtech/powercampus-design-system/types/IDropDownOption';\r\nimport { IFieldForm } from '../../../Types/Form/IFieldForm';\r\nimport { IFieldsGroup } from '../../../Types/Form/IFieldsGroup';\r\nimport { IGroupErrors } from '../../../Types/Applications/IApplicationErrors';\r\nimport { IInstitution } from '../../../Types/Applications/IInstitution';\r\nimport { IJsonResult } from '@hedtech/powercampus-design-system/types/IJsonResult';\r\nimport { ILogData } from '@hedtech/powercampus-design-system/types/ILogData';\r\nimport { IPaymentInfo } from '../../../Types/Payment/IPaymentInfo';\r\nimport { IPaymentTransaction } from '../../../Types/Payment/IPaymentTransaction';\r\nimport { ISavedApplication } from '../../../Types/Applications/ISavedApplication';\r\nimport { ITestScore } from '../../../Types/Applications/ITestScore';\r\nimport { PaymentOrigin } from '../../../Types/Enum/PaymentOrigin';\r\nimport { ResultType } from '@hedtech/powercampus-design-system/types/ResultType';\r\n// #endregion Types\r\n\r\n// Helpers\r\nimport Format from '@hedtech/powercampus-design-system/helpers/Format';\r\nimport LogData from '@hedtech/powercampus-design-system/helpers/LogData';\r\nimport Resolver from '@hedtech/powercampus-design-system/helpers/Resolver';\r\n\r\n// Constants\r\nimport Constants from '@hedtech/powercampus-design-system/helpers/Constants';\r\n\r\n// Requests\r\nimport Requests from '../../../Requests/Admissions/ApplicationForm';\r\nimport RequestsApplication from '../../../Requests/Admissions/Applications';\r\n\r\n// State Management\r\nimport LayoutActions from '@hedtech/powercampus-design-system/flux/actions/LayoutActions';\r\nimport LayoutStore from '@hedtech/powercampus-design-system/flux/stores/LayoutStore';\r\n// #endregion Imports\r\n\r\ninterface IApplicationFormState {\r\n // Address Search Modal\r\n addresses?: IAddress[];\r\n openAddressSearchModal: boolean;\r\n hasSearchZipCode: boolean;\r\n selectedZipCode?: string;\r\n\r\n // Account\r\n hasPersonId: boolean;\r\n showSignIn: boolean;\r\n showSignUp: boolean;\r\n\r\n // Application\r\n activeStep: number;\r\n application: IApplication;\r\n applicationId?: number;\r\n componentError: boolean;\r\n components?: IApplicationForm;\r\n cultures: ICultures;\r\n dateTimeCulture: string;\r\n errors: IApplicationErrors[];\r\n expanded: boolean | string;\r\n expansionPanelHeaders: string[];\r\n firstDayOfWeek: number;\r\n openNotAvailableModal: boolean;\r\n resources?: IApplicationFormResources;\r\n rowsPerPageOptions: number[];\r\n shortDatePattern: string;\r\n\r\n // Attachments\r\n attachments: IApplicationAttachment[];\r\n attachmentsTotalSize?: string;\r\n attachmentsTotalSizeNumber: number;\r\n fileId?: number;\r\n fileName?: string;\r\n fileSelector?: any;\r\n openRemoveAttachmentDialog: boolean;\r\n openSupportedFilesModal: boolean;\r\n showAttachments: boolean;\r\n totalNumberOfAttachments: number;\r\n\r\n // ETS Search Modal\r\n countries?: IDropDownOption[];\r\n institutions?: IInstitution[];\r\n openETSSearchModal: boolean;\r\n pageNumber: number;\r\n pageSize: number;\r\n selectedCity?: string;\r\n selectedCountry?: number;\r\n selectedEtsCode?: string;\r\n selectedFieldId?: string;\r\n selectedInstitutionName?: string;\r\n selectedState?: number;\r\n states?: IDropDownOption[];\r\n total: number;\r\n\r\n // Payment\r\n paymentDetailModalOpen: boolean;\r\n paymentInfo?: IPaymentInfo;\r\n paymentModalOpenFail: boolean;\r\n paymentModalOpenProcess: boolean;\r\n paymentModalOpenSuccess: boolean;\r\n paymentTransaction?: IPaymentTransaction;\r\n returnUrl?: string;\r\n\r\n // Save\r\n changeEmailText: boolean;\r\n confirmationMessage?: string;\r\n emailField?: string;\r\n emptyEmailField: boolean;\r\n invalidEmail: boolean;\r\n openConfirmationSavedModal: boolean;\r\n openEmailModal: boolean;\r\n saveMessage?: string;\r\n showSaveButton: boolean;\r\n token?: string;\r\n\r\n // Settings\r\n governmentIdFormat: string;\r\n\r\n // ReCatpcha\r\n isReCaptchaSubmitApplicationEnabled: boolean;\r\n reCaptchaError: boolean;\r\n reCaptchaSiteKey: string;\r\n uiCulture: string;\r\n}\r\n// #endregion Types\r\n\r\n// #region Component\r\nclass ApplicationFormView extends React.Component {\r\n private idMainPage: string;\r\n private idModule: string;\r\n private idPage: string;\r\n private rowsPerPageOptions: number[];\r\n private reCaptchaRef: RefObject;\r\n\r\n public readonly state: Readonly;\r\n\r\n public constructor(props) {\r\n super(props);\r\n\r\n // #region Initialize Variables and State\r\n this.idMainPage = 'Applications';\r\n this.idModule = 'Admissions';\r\n this.idPage = 'ApplicationForm';\r\n this.rowsPerPageOptions = [5, 10, 15, 20, 25, 50];\r\n this.state = this.getInitialState();\r\n this.reCaptchaRef = React.createRef();\r\n // #endregion Initialize Variables and State\r\n\r\n // #region Bind State Management Listeners\r\n LayoutStore.addLayoutReadyListener(this.onLayoutReady);\r\n // #endregion State Management Listeners\r\n }\r\n\r\n private getInitialState(): IApplicationFormState {\r\n let resources: IApplicationFormResources | undefined;\r\n let isReCaptchaSubmitApplicationEnabled: boolean = false;\r\n\r\n let reCaptchaSiteKey: string = '';\r\n if (this.state) {\r\n resources = this.state.resources;\r\n isReCaptchaSubmitApplicationEnabled = this.state.isReCaptchaSubmitApplicationEnabled;\r\n reCaptchaSiteKey = this.state.reCaptchaSiteKey;\r\n }\r\n\r\n const cultures: ICultures = LayoutStore.getCultures();\r\n\r\n return {\r\n activeStep: 0,\r\n addresses: [],\r\n application: {\r\n addresses: [],\r\n education: [],\r\n employments: [],\r\n phones: [{ isPrimary: true }],\r\n testScores: [],\r\n userDefined: []\r\n },\r\n attachments: [],\r\n attachmentsTotalSizeNumber: 0,\r\n changeEmailText: true,\r\n componentError: false,\r\n components: undefined,\r\n cultures: LayoutStore.getCultures(),\r\n dateTimeCulture: cultures.dateTimeCulture,\r\n emptyEmailField: false,\r\n errors: [],\r\n expanded: false,\r\n expansionPanelHeaders: [],\r\n firstDayOfWeek: cultures.firstDayOfWeek,\r\n hasPersonId: false,\r\n hasSearchZipCode: false,\r\n institutions: [],\r\n invalidEmail: false,\r\n openAddressSearchModal: false,\r\n openConfirmationSavedModal: false,\r\n openEmailModal: false,\r\n openETSSearchModal: false,\r\n openNotAvailableModal: false,\r\n openRemoveAttachmentDialog: false,\r\n openSupportedFilesModal: false,\r\n pageNumber: 0,\r\n pageSize: 5,\r\n resources: resources,\r\n rowsPerPageOptions: [],\r\n shortDatePattern: cultures.shortDatePattern,\r\n showAttachments: false,\r\n showSaveButton: false,\r\n showSignIn: false,\r\n showSignUp: false,\r\n total: 0,\r\n totalNumberOfAttachments: 0,\r\n\r\n // Payment\r\n paymentDetailModalOpen: false,\r\n paymentModalOpenFail: false,\r\n paymentModalOpenProcess: false,\r\n paymentModalOpenSuccess: false,\r\n\r\n // Settings\r\n governmentIdFormat: '',\r\n\r\n // ReCaptcha\r\n isReCaptchaSubmitApplicationEnabled: isReCaptchaSubmitApplicationEnabled,\r\n reCaptchaError: false,\r\n reCaptchaSiteKey: reCaptchaSiteKey,\r\n uiCulture: LayoutStore.getCultures().uiCulture\r\n };\r\n }\r\n\r\n // #region Events\r\n // #region Payment\r\n private onClosePaymentDetailModal = (): void => {\r\n try {\r\n this.setState({\r\n paymentDetailModalOpen: false,\r\n paymentInfo: undefined\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onClosePaymentDetailModal.name, e));\r\n }\r\n };\r\n\r\n private onClosePaymentModalProcess = (): void => {\r\n try {\r\n this.setState({\r\n paymentModalOpenProcess: false\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onClosePaymentModalProcess.name, e));\r\n }\r\n };\r\n\r\n private onPay = (): void => {\r\n try {\r\n const {\r\n paymentInfo\r\n } = this.state;\r\n\r\n if (paymentInfo) {\r\n this.setState({\r\n paymentModalOpenProcess: true\r\n });\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onPay.name, e));\r\n }\r\n };\r\n\r\n private onCloseFailedPayment = (): void => {\r\n try {\r\n window.location.href = `${Constants.webUrl}/Admissions/Applications`;\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onCloseFailedPayment.name, e));\r\n }\r\n };\r\n // #endregion Payment\r\n\r\n // #region Attachment\r\n private buildFileSelector = () => {\r\n try {\r\n const fileSelector = document.createElement('input');\r\n const {\r\n components\r\n } = this.state;\r\n if (components) {\r\n let supportedTypes: string = '';\r\n if (components.fileTypes) {\r\n components.fileTypes.forEach(fileType => {\r\n const newFileExt = fileType.fileExtension.replace(' ', '');\r\n const fileExtensions = newFileExt.split(';');\r\n fileExtensions.forEach(fileExt => {\r\n supportedTypes = supportedTypes + fileExt.replace('*.', '') + ',';\r\n });\r\n });\r\n fileSelector.setAttribute('type', 'file');\r\n fileSelector.setAttribute('files', supportedTypes);\r\n fileSelector.onchange = this.onChangeFile.bind(this);\r\n }\r\n }\r\n return fileSelector;\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.buildFileSelector.name, e));\r\n return null;\r\n }\r\n };\r\n\r\n private getMediaTypeId = (fileExtension: string): number => {\r\n let mediaId: number = 0;\r\n try {\r\n const {\r\n components\r\n } = this.state;\r\n\r\n if (components && components.fileTypes) {\r\n components.fileTypes.forEach(fileType => {\r\n const newFileExt = fileType.fileExtension.replace(' ', '');\r\n const fileExtensions = newFileExt.split(';');\r\n fileExtensions.forEach(fileExt => {\r\n if (fileExt.replace('*.', '') === fileExtension) {\r\n mediaId = fileType.mediaTypeId;\r\n }\r\n });\r\n });\r\n }\r\n return mediaId;\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.getMediaTypeId.name, e));\r\n return mediaId;\r\n }\r\n };\r\n\r\n private readUploadedFile = inputFile => {\r\n try {\r\n const temporaryFileReader = new FileReader();\r\n\r\n return new Promise(resolve => {\r\n temporaryFileReader.onload = () => {\r\n if (temporaryFileReader.result) {\r\n let encoded = temporaryFileReader.result.toString().replace(/^data:(.*,)?/, '');\r\n if ((encoded.length % 4) > 0) {\r\n encoded += '='.repeat(4 - (encoded.length % 4));\r\n }\r\n resolve(encoded);\r\n }\r\n };\r\n temporaryFileReader.readAsDataURL(inputFile);\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.readUploadedFile.name, e));\r\n return null;\r\n }\r\n };\r\n\r\n private onChangeFile = async event => {\r\n try {\r\n const {\r\n applicationId\r\n } = this.state;\r\n\r\n event.stopPropagation();\r\n event.preventDefault();\r\n\r\n const file = event.target.files[0];\r\n const fileName = file.name.split('.');\r\n const mediaId = this.getMediaTypeId(fileName[1]);\r\n if (mediaId !== 0 && applicationId) {\r\n const {\r\n attachmentsTotalSizeNumber,\r\n components,\r\n resources,\r\n totalNumberOfAttachments\r\n } = this.state;\r\n\r\n if (components && resources) {\r\n if (components.numberOfAttachments <= totalNumberOfAttachments) {\r\n LayoutActions.setAlert({\r\n message: Format.toString(resources.attachments.lblTotalAttachmentsError, [components.numberOfAttachments]),\r\n messageType: ResultType.warning\r\n } as IAlert);\r\n }\r\n else {\r\n const bytes = (file.size / 1048576).toFixed(5);\r\n if (Number(bytes) > Number(components.maxAttachmentSize)) {\r\n LayoutActions.setAlert({\r\n message: Format.toString(resources.attachments.lblAttachmentsSizeError, [components.maxAttachmentSize]),\r\n messageType: ResultType.warning\r\n } as IAlert);\r\n }\r\n else {\r\n if (Number(bytes) + Number(attachmentsTotalSizeNumber) > Number(components.maxAttachmentSize)) {\r\n LayoutActions.setAlert({\r\n message: Format.toString(resources.attachments.lblAllAttachmentsSizeError,\r\n [components.maxApplicationAttachmentSize]),\r\n messageType: ResultType.warning\r\n } as IAlert);\r\n }\r\n else {\r\n const fileContents = await this.readUploadedFile(file);\r\n const newFile: IApplicationAttachment = {\r\n applicationId: applicationId,\r\n attachmentTitle: fileName[0],\r\n extension: `.${fileName[1]}`,\r\n fileContent: fileContents,\r\n fileSize: file.size,\r\n mediaTypeId: mediaId\r\n };\r\n LayoutActions.setLoading(true);\r\n Requests.postCreateApplicationAttachment(newFile, this.resolveCreateAttachment, this.logError);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onChangeFile.name, e));\r\n }\r\n };\r\n\r\n private onClickOpenFolder = (event: React.MouseEvent) => {\r\n try {\r\n event.preventDefault();\r\n const {\r\n fileSelector\r\n } = this.state;\r\n fileSelector.click();\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onClickOpenFolder.name, e));\r\n }\r\n };\r\n\r\n private onClickContinue = () => {\r\n try {\r\n const {\r\n components,\r\n paymentInfo\r\n } = this.state;\r\n\r\n if (components) {\r\n if (paymentInfo) {\r\n const returnUrl =\r\n `${Constants.webUrl}/Admissions/ApplicationForm/${components.applicationFormId}`;\r\n this.setState({\r\n paymentDetailModalOpen: true,\r\n returnUrl: returnUrl,\r\n showAttachments: false\r\n });\r\n }\r\n else {\r\n components.isCompletedApplication = true;\r\n this.setState({\r\n components: components,\r\n showAttachments: false\r\n });\r\n }\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onClickContinue.name, e));\r\n }\r\n };\r\n\r\n private onClickInfo = () => {\r\n try {\r\n this.setState({\r\n openSupportedFilesModal: true\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onClickInfo.name, e));\r\n }\r\n };\r\n\r\n private onCloseSupportedFilesModal = () => {\r\n try {\r\n this.setState({\r\n openSupportedFilesModal: false\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onCloseSupportedFilesModal.name, e));\r\n }\r\n };\r\n\r\n private onClickRemoveAttachmentButton = (event: any) => {\r\n try {\r\n const fieldButtonId: string[] = event.target.id.split('|');\r\n this.setState({\r\n fileId: Number(fieldButtonId[1]),\r\n fileName: fieldButtonId[2],\r\n openRemoveAttachmentDialog: true\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onClickRemoveAttachmentButton.name, e));\r\n }\r\n };\r\n\r\n private onClickRemoveAttachment = () => {\r\n try {\r\n const {\r\n fileId\r\n } = this.state;\r\n LayoutActions.setLoading(true);\r\n Requests.postDeleteApplicationAttachment(Number(fileId), this.resolveRemoveAttachment, this.logError);\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onClickRemoveAttachment.name, e));\r\n }\r\n };\r\n\r\n private onCloseRemoveAttachmentModal = (): void => {\r\n try {\r\n this.setState({\r\n openRemoveAttachmentDialog: false\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onCloseRemoveAttachmentModal.name, e));\r\n }\r\n };\r\n\r\n // #endregion Attachment\r\n\r\n // #region Account\r\n private onCloseSignIn = (): void => {\r\n try {\r\n this.setState({\r\n showSignIn: false\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onCloseSignIn.name, e));\r\n }\r\n };\r\n\r\n private onCloseSignUp = (): void => {\r\n try {\r\n this.setState({\r\n showSignUp: false\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onCloseSignUp.name, e));\r\n }\r\n };\r\n\r\n private onOpenSignIn = (): void => {\r\n try {\r\n this.setState({\r\n showSignIn: true,\r\n showSignUp: false\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onOpenSignIn.name, e));\r\n }\r\n };\r\n\r\n private onOpenSignUp = (): void => {\r\n try {\r\n this.setState({\r\n showSignIn: false,\r\n showSignUp: true\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onOpenSignUp.name, e));\r\n }\r\n };\r\n\r\n private onAfterSignUp = (userName?: string): void => {\r\n try {\r\n // After creation of new account user must be logged in\r\n LayoutStore.setIsAuthenticated(true);\r\n LayoutStore.setMenuOptions(undefined);\r\n if (userName) {\r\n this.setState({\r\n emailField: userName,\r\n showSignUp: false\r\n });\r\n this.onSaveEmailField();\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onAfterSignUp.name, e));\r\n }\r\n };\r\n\r\n private onAfterSignIn = (): void => {\r\n try {\r\n this.setState({\r\n showSignIn: false\r\n });\r\n this.onSaveApplication();\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onAfterSignIn.name, e));\r\n }\r\n };\r\n // #endregion Account\r\n\r\n // #region Stepper\r\n private onBackStep = (): void => {\r\n try {\r\n const {\r\n activeStep\r\n } = this.state;\r\n\r\n this.setState({\r\n activeStep: activeStep - 1\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onBackStep.name, e));\r\n }\r\n };\r\n\r\n private onClickStep = (event: React.MouseEvent) => {\r\n try {\r\n const steps: string[] = event.currentTarget.id.split('|');\r\n this.setState({\r\n activeStep: Number(steps[1])\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onClickStep.name, e));\r\n }\r\n };\r\n\r\n private onNextStep = (): void => {\r\n try {\r\n const {\r\n activeStep\r\n } = this.state;\r\n\r\n this.setState({\r\n activeStep: activeStep + 1\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onNextStep.name, e));\r\n }\r\n };\r\n // #endregion Stepper\r\n\r\n // #region Address\r\n private onCloseAddressSearchModal = (): void => {\r\n try {\r\n this.setState({\r\n addresses: [],\r\n openAddressSearchModal: false,\r\n hasSearchZipCode: false,\r\n selectedZipCode: undefined\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onCloseAddressSearchModal.name, e));\r\n }\r\n };\r\n\r\n private onClickZipCodeLink =\r\n (zipCode?: string, city?: string, stateProvinceId?: number, countryId?: number, countyId?: number) => (): void => {\r\n try {\r\n const {\r\n components,\r\n selectedFieldId\r\n } = this.state;\r\n\r\n if (selectedFieldId && components) {\r\n const fieldId: string[] = selectedFieldId.split('|');\r\n\r\n const fieldGroup: IFieldForm[] =\r\n components.steps[Number(fieldId[1])].fieldsGroups[Number(fieldId[2])].fields;\r\n\r\n if (fieldId.length > 4) {\r\n this.assignFieldValue(fieldGroup, fieldId, 'addressCityId', true, city);\r\n this.assignFieldValue(fieldGroup, fieldId, 'stateProvinceId', true, stateProvinceId);\r\n this.assignFieldValue(fieldGroup, fieldId, 'postalCodeId', true, zipCode);\r\n this.assignFieldValue(fieldGroup, fieldId, 'addressCountyId', true, countyId);\r\n this.assignFieldValue(fieldGroup, fieldId, 'addressCountryId', true, countryId);\r\n }\r\n else {\r\n this.assignFieldValue(fieldGroup, fieldId, 'addressCityId', false, city);\r\n this.assignFieldValue(fieldGroup, fieldId, 'stateProvinceId', false, stateProvinceId);\r\n this.assignFieldValue(fieldGroup, fieldId, 'postalCodeId', false, zipCode);\r\n this.assignFieldValue(fieldGroup, fieldId, 'addressCountyId', false, countyId);\r\n this.assignFieldValue(fieldGroup, fieldId, 'addressCountryId', false, countryId);\r\n }\r\n }\r\n\r\n this.setState({\r\n openAddressSearchModal: false\r\n });\r\n } catch (e) {\r\n this.logError(LogData.fromException(this.onClickZipCodeLink.name, e));\r\n }\r\n };\r\n\r\n private onChangeTextFieldAddressSearch = (event: any): void => {\r\n try {\r\n if (event.target.id && event.target.id !== '') {\r\n switch (event.target.id) {\r\n case 'txtZipCode':\r\n this.setState({\r\n selectedZipCode: event.target.value\r\n });\r\n break;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onChangeTextFieldAddressSearch.name, e));\r\n }\r\n };\r\n\r\n private onClearAddress = (): void => {\r\n try {\r\n this.setState({\r\n addresses: [],\r\n hasSearchZipCode: false,\r\n selectedZipCode: undefined\r\n });\r\n }\r\n catch (e) {\r\n throw e;\r\n }\r\n };\r\n\r\n private onSearchAddress = (): void => {\r\n try {\r\n LayoutActions.setLoading(true);\r\n\r\n const {\r\n pageSize,\r\n selectedZipCode\r\n } = this.state;\r\n\r\n Requests.getAddresses(\r\n 0,\r\n pageSize,\r\n selectedZipCode,\r\n this.resolveGetAddress, this.logError);\r\n\r\n const {\r\n total\r\n } = this.state;\r\n\r\n if (total) {\r\n const previousSize = pageSize;\r\n // Fix 60\r\n this.setState({\r\n pageSize: 0\r\n }, () => {\r\n this.setState({\r\n pageNumber: 0,\r\n pageSize: previousSize\r\n });\r\n });\r\n }\r\n\r\n this.setState({\r\n hasSearchZipCode: true\r\n });\r\n }\r\n catch (e) {\r\n LayoutActions.setLoading(false);\r\n throw e;\r\n }\r\n };\r\n // #endregion Address\r\n\r\n // #region Education\r\n private onChangeTextFieldETSSearch = (event: any): void => {\r\n try {\r\n if (event.target.id && event.target.id !== '') {\r\n switch (event.target.id) {\r\n case 'txtEtsCode':\r\n this.setState({\r\n selectedEtsCode: event.target.value\r\n });\r\n break;\r\n case 'txtCity':\r\n this.setState({\r\n selectedCity: event.target.value\r\n });\r\n break;\r\n case 'txtInstitutionName':\r\n this.setState({\r\n selectedInstitutionName: event.target.value\r\n });\r\n break;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onChangeTextFieldETSSearch.name, e));\r\n }\r\n };\r\n\r\n private onCloseETSSearchModal = (): void => {\r\n try {\r\n this.setState({\r\n institutions: [],\r\n openETSSearchModal: false,\r\n selectedCity: undefined,\r\n selectedCountry: undefined,\r\n selectedEtsCode: undefined,\r\n selectedInstitutionName: undefined,\r\n selectedState: undefined\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onCloseETSSearchModal.name, e));\r\n }\r\n };\r\n\r\n private onChangeDropDownETSSearch = (optionSelected: IDropDownOption, id: string): void => {\r\n try {\r\n if (id && id !== '') {\r\n switch (id) {\r\n case 'ddlCountry':\r\n this.setState({\r\n selectedCountry: optionSelected.value === '' ? undefined :\r\n Number(optionSelected.value)\r\n });\r\n break;\r\n case 'ddlState':\r\n this.setState({\r\n selectedState: optionSelected.value === '' ? undefined :\r\n Number(optionSelected.value)\r\n });\r\n break;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onChangeDropDownETSSearch.name, e));\r\n }\r\n };\r\n\r\n private onClearInstitution = (): void => {\r\n try {\r\n this.setState({\r\n institutions: [],\r\n selectedCity: undefined,\r\n selectedCountry: undefined,\r\n selectedEtsCode: undefined,\r\n selectedInstitutionName: undefined,\r\n selectedState: undefined\r\n });\r\n }\r\n catch (e) {\r\n throw e;\r\n }\r\n };\r\n\r\n private onSearchInstitution = (): void => {\r\n try {\r\n LayoutActions.setLoading(true);\r\n\r\n const {\r\n selectedCity,\r\n selectedEtsCode,\r\n selectedInstitutionName,\r\n selectedState,\r\n selectedCountry,\r\n pageSize\r\n } = this.state;\r\n\r\n Requests.getInstitutions(\r\n 0,\r\n pageSize,\r\n selectedInstitutionName,\r\n selectedEtsCode,\r\n selectedCity,\r\n selectedState,\r\n selectedCountry,\r\n this.resolveGetInstitutions, this.logError);\r\n\r\n const {\r\n total\r\n } = this.state;\r\n\r\n if (total) {\r\n const previousSize = pageSize;\r\n // Fix 60\r\n this.setState({\r\n pageSize: 0\r\n }, () => {\r\n this.setState({\r\n pageNumber: 0,\r\n pageSize: previousSize\r\n });\r\n });\r\n }\r\n }\r\n catch (e) {\r\n LayoutActions.setLoading(false);\r\n throw e;\r\n }\r\n };\r\n\r\n private onClickLink =\r\n (institutionName?: string, etsCode?: string, ficeCode?: string, city?: string, stateProvinceId?: number, countryId?: number) => (): void => {\r\n try {\r\n const {\r\n components,\r\n selectedFieldId\r\n } = this.state;\r\n\r\n if (selectedFieldId && components) {\r\n const fieldId: string[] = selectedFieldId.split('|');\r\n\r\n const fieldGroup: IFieldForm[] =\r\n components.steps[Number(fieldId[1])].fieldsGroups[Number(fieldId[2])].fields;\r\n\r\n if (fieldId.length > 4) {\r\n this.assignFieldValue(fieldGroup, fieldId, 'educationInstitutionName', true, institutionName);\r\n this.assignFieldValue(fieldGroup, fieldId, 'educationEtsCodeId', true, etsCode);\r\n this.assignFieldValue(fieldGroup, fieldId, 'educationFiceCode', true, ficeCode);\r\n this.assignFieldValue(fieldGroup, fieldId, 'educationCityId', true, city);\r\n this.assignFieldValue(fieldGroup, fieldId, 'educationStateId', true, stateProvinceId);\r\n this.assignFieldValue(fieldGroup, fieldId, 'educationCountryId', true, countryId);\r\n }\r\n else {\r\n this.assignFieldValue(fieldGroup, fieldId, 'educationInstitutionName', false, institutionName);\r\n this.assignFieldValue(fieldGroup, fieldId, 'educationEtsCodeId', false, etsCode);\r\n this.assignFieldValue(fieldGroup, fieldId, 'educationFiceCode', false, ficeCode);\r\n this.assignFieldValue(fieldGroup, fieldId, 'educationCityId', false, city);\r\n this.assignFieldValue(fieldGroup, fieldId, 'educationStateId', false, stateProvinceId);\r\n this.assignFieldValue(fieldGroup, fieldId, 'educationCountryId', false, countryId);\r\n }\r\n }\r\n\r\n this.setState({\r\n openETSSearchModal: false\r\n });\r\n } catch (e) {\r\n this.logError(LogData.fromException(this.onClickLink.name, e));\r\n }\r\n };\r\n // #endregion Education\r\n\r\n // #region Phone\r\n private onPrimaryButtonClick = (fieldId: string[], newComponents: IApplicationForm, value: any): IApplicationForm => {\r\n try {\r\n const phoneFields: any = newComponents.steps[Number(fieldId[1])].fieldsGroups[Number(fieldId[2])];\r\n let field: any = [];\r\n let numRow: number = 4;\r\n\r\n field = newComponents;\r\n phoneFields.fields.forEach(function (item, row) {\r\n const idFields: string[] = item.data.id.split('|');\r\n if (fieldId[0] === idFields[0]) {\r\n if (fieldId[3] !== idFields[3] || fieldId[4] !== idFields[4]) {\r\n item.value = '';\r\n }\r\n else {\r\n numRow = row;\r\n }\r\n }\r\n });\r\n\r\n field.steps[Number(fieldId[1])].fieldsGroups[fieldId[2]].fields[Number(numRow)].value = value;\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.resolveLayoutReady.name, e));\r\n }\r\n return newComponents;\r\n };\r\n // #endregion Phone\r\n\r\n // #region Submit and Save\r\n private onSaveApplication = (): void => {\r\n try {\r\n const {\r\n components,\r\n resources,\r\n token\r\n } = this.state;\r\n\r\n if (resources) {\r\n const applicationTop: HTMLElement | null = document.getElementById('applicationTop');\r\n if (applicationTop) {\r\n applicationTop.scrollIntoView();\r\n }\r\n LayoutActions.setLoading(true);\r\n if (components) {\r\n if (components && components.layoutId) {\r\n // Update saved application\r\n if (token) {\r\n if (components.person &&\r\n (components.person.email || components.person.temporaryEmail)) {\r\n const savedApplication: ISavedApplication = {\r\n applicationFormSettingId: components.applicationFormId,\r\n email: components.person.email ? components.person.email :\r\n components.person.temporaryEmail ? components.person.temporaryEmail : '',\r\n formLayoutId: components.layoutId,\r\n token: token\r\n };\r\n RequestsApplication.postUpdateSavedApplication(savedApplication,\r\n components, this.resolveSaveIncompleteApplication, this.logError);\r\n }\r\n }\r\n else {\r\n if (LayoutStore && !LayoutStore.getIsAuthenticated()) {\r\n // If person doesn't have a person id\r\n if (!components.person || !components.person.personId) {\r\n this.onOpenSignIn();\r\n LayoutActions.setLoading(false);\r\n }\r\n }\r\n else {\r\n // If user has primary email use this to populate email confirmation modal.\r\n if (components.person && components.person.email) {\r\n this.setState({\r\n emailField: components.person.email,\r\n openEmailModal: true\r\n });\r\n LayoutActions.setLoading(false);\r\n }\r\n else if (components.person && components.person.temporaryEmail) {\r\n this.onSaveEmailField();\r\n }\r\n // If user has not primary email and email exist in the form with some value use it.\r\n else {\r\n if (components) {\r\n let hasValueEmailField: boolean = false;\r\n components.steps.forEach(step => {\r\n step.fieldsGroups.forEach(fieldsGroup => {\r\n fieldsGroup.fields.forEach(field => {\r\n if (field.data.id === 'emailId') {\r\n if (field.value && !field.data.error) {\r\n this.setState({\r\n emailField: field.value,\r\n openEmailModal: true\r\n });\r\n hasValueEmailField = true;\r\n LayoutActions.setLoading(false);\r\n }\r\n }\r\n });\r\n });\r\n });\r\n // If user has not primary email and email not exist in the form or is empty don't populate it.\r\n if (!hasValueEmailField) {\r\n this.setState({\r\n openEmailModal: true\r\n });\r\n LayoutActions.setLoading(false);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onSaveApplication.name, e));\r\n }\r\n };\r\n\r\n private onSaveEmailField = (): void => {\r\n try {\r\n LayoutActions.setLoading(true);\r\n\r\n const {\r\n components,\r\n emailField,\r\n invalidEmail\r\n } = this.state;\r\n\r\n if (!emailField &&\r\n components && components.person && !components.person.temporaryEmail) {\r\n this.setState({\r\n emptyEmailField: true\r\n });\r\n }\r\n else {\r\n if (!invalidEmail && components && components.person) {\r\n const savedApplication: ISavedApplication = {\r\n applicationFormSettingId: components.applicationFormId,\r\n email: emailField ? emailField :\r\n components.person.temporaryEmail ? components.person.temporaryEmail : '',\r\n formLayoutId: components.layoutId\r\n };\r\n Requests.postCreateSavedApplication(savedApplication, components, this.resolveSaveIncompleteApplication, this.logError);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onChangeTextFieldModal.name, e));\r\n }\r\n };\r\n\r\n private onSubmit = (): void => {\r\n try {\r\n const {\r\n application,\r\n components,\r\n governmentIdFormat\r\n } = this.state;\r\n\r\n const applicationTop: HTMLElement | null = document.getElementById('applicationTop');\r\n if (applicationTop) {\r\n applicationTop.scrollIntoView();\r\n }\r\n\r\n if (components) {\r\n components.steps.forEach(step => {\r\n step.fieldsGroups.forEach(fieldsGroup => {\r\n fieldsGroup.fields.forEach(field => {\r\n let exist: boolean = false;\r\n if (field.componentType === 'Dropdown') {\r\n if (field.default && field.data.options) {\r\n field.data.options.forEach(option => {\r\n if (option.value.toString() === field.default.toString()) {\r\n exist = true;\r\n }\r\n });\r\n }\r\n if (exist) {\r\n field.value = field.value ? field.value : field.default;\r\n this.setApplicationValues(field.data.id, field.value);\r\n }\r\n else if (!field.default && field.value !== '') {\r\n this.setApplicationValues(field.data.id, field.value);\r\n }\r\n }\r\n else {\r\n field.value = field.value ? field.value : field.default;\r\n this.setApplicationValues(field.data.id, field.value);\r\n }\r\n });\r\n });\r\n });\r\n }\r\n\r\n this.setState({\r\n components\r\n });\r\n\r\n const {\r\n isReCaptchaSubmitApplicationEnabled\r\n } = this.state;\r\n\r\n let reCaptchaResponse: string = '';\r\n if (isReCaptchaSubmitApplicationEnabled && this.reCaptchaRef?.current) {\r\n reCaptchaResponse = this.reCaptchaRef.current.getValue();\r\n this.setState({\r\n reCaptchaError: !Boolean(reCaptchaResponse)\r\n });\r\n }\r\n\r\n const allRequiredFields: boolean = this.reviewRequiredFields();\r\n if (!isReCaptchaSubmitApplicationEnabled || reCaptchaResponse) {\r\n this.setState({\r\n reCaptchaError: false\r\n });\r\n\r\n if (allRequiredFields) {\r\n\r\n // Remove non-alphanumeric characters from governmentId\r\n if (application.governmentId && governmentIdFormat) {\r\n let cleanGovernmentId: string = '';\r\n for (let i = 0; i < governmentIdFormat.length; i++) {\r\n if (governmentIdFormat[i] === 'X' || governmentIdFormat[i] === '#') {\r\n cleanGovernmentId += application.governmentId[i];\r\n }\r\n }\r\n application.governmentId = cleanGovernmentId;\r\n }\r\n\r\n if (application) {\r\n LayoutActions.showPageLoader();\r\n Requests.postSubmit(application, this.resolveSubmitApplication, this.logError);\r\n }\r\n }\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onSubmit.name, e));\r\n }\r\n };\r\n\r\n private onCloseEmailModal = (): void => {\r\n try {\r\n this.setState({\r\n openEmailModal: false\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onCloseEmailModal.name, e));\r\n }\r\n };\r\n\r\n private onCloseNotAvailableModal = (): void => {\r\n try {\r\n window.location.assign(`${Constants.webUrl}/Admissions/Applications`);\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onCloseNotAvailableModal.name, e));\r\n }\r\n };\r\n\r\n private onCloseConfirmationSavedModal = (): void => {\r\n try {\r\n const {\r\n components\r\n } = this.state;\r\n\r\n if (components) {\r\n const confirmationIndex: number =\r\n components.fieldsGroups.findIndex(x => x.id === 'confirmationGroup');\r\n const finishButtonId: number =\r\n components.fieldsGroups[confirmationIndex].fields.findIndex(x => x.data.id === 'finishId');\r\n if (confirmationIndex > -1 && finishButtonId > -1) {\r\n const actionUrl: string | undefined = components.fieldsGroups[confirmationIndex].fields[finishButtonId].actionUrl;\r\n if (actionUrl) {\r\n window.location.assign(actionUrl);\r\n }\r\n else {\r\n window.location.assign(`${Constants.webUrl}/Admissions/Applications`);\r\n }\r\n }\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onCloseConfirmationSavedModal.name, e));\r\n }\r\n };\r\n // #endregion Submit and Save\r\n\r\n // #region Change Fields Events\r\n private onChangeCheckBox = (event: any): void => {\r\n try {\r\n const {\r\n application,\r\n components\r\n } = this.state;\r\n\r\n if (application && components) {\r\n const app: IApplication = application;\r\n const fieldId: string[] = event.target.id.split('|');\r\n const newComponents: IApplicationForm = components;\r\n const value: boolean = Boolean(event.target.checked);\r\n const evaluateAppJs = eval;\r\n\r\n if (fieldId.length < 5) {\r\n if (fieldId && fieldId[1] && fieldId[2] && fieldId[3]) {\r\n const field: IFieldForm = newComponents.steps[Number(fieldId[1])].fieldsGroups[Number(fieldId[2])].fields[Number(fieldId[3])];\r\n\r\n if (field.isUserDefined && field.customScript) {\r\n if (value) {\r\n field.value = evaluateAppJs(field.customScript);\r\n field.data.error = false;\r\n field.data.helperText = '';\r\n }\r\n else {\r\n field.value = NaN;\r\n }\r\n }\r\n else {\r\n field.value = value ? value : undefined;\r\n }\r\n }\r\n }\r\n else {\r\n const field: IFieldForm | undefined =\r\n components.steps[Number(fieldId[1])].\r\n fieldsGroups[Number(fieldId[2])].\r\n fields.find(x =>\r\n x.data.section === Number(fieldId[4]) &&\r\n x.data.id.substr(0, fieldId[0].length) === fieldId[0]);\r\n if (field) {\r\n field.value = value;\r\n }\r\n }\r\n\r\n this.setState({\r\n application: app,\r\n components: newComponents\r\n });\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onChangeCheckBox.name, e));\r\n }\r\n };\r\n\r\n private onChangeDateTimeField = (date: string, id: string, isValid: boolean): void => {\r\n try {\r\n const {\r\n application,\r\n components,\r\n cultures,\r\n resources,\r\n shortDatePattern\r\n } = this.state;\r\n\r\n if (id && id !== '' && application && components) {\r\n const app: IApplication = application;\r\n const fieldId: string[] = id.split('|');\r\n let fieldIndex: number = 0;\r\n if (fieldId[4]) {\r\n fieldIndex = Number(fieldId[4]) + 1;\r\n }\r\n let newComponents: IApplicationForm = components;\r\n const field = newComponents.steps[Number(fieldId[1])].\r\n fieldsGroups[Number(fieldId[2])].\r\n fields[Number(fieldId[3])];\r\n\r\n const dateMinFormat: string =\r\n moment().add(-100, 'years').format(cultures.shortDatePattern.toUpperCase());\r\n const dateMaxFormat: string =\r\n moment().add(100, 'years').format(cultures.shortDatePattern.toUpperCase());\r\n\r\n switch (fieldId[0]) {\r\n case 'dateOfBirthId':\r\n app.dateOfBirth = date;\r\n newComponents = this.setValues(fieldId, newComponents, date);\r\n if (isValid) {\r\n field.data.error = false;\r\n field.data.helperText = '';\r\n newComponents = this.cleanErrorMessages(fieldId, newComponents);\r\n }\r\n else {\r\n if (date) {\r\n field.data.error = true;\r\n if (resources) {\r\n field.data.helperText =\r\n Format.toString(resources.formatDateOutOfRange, [dateMinFormat, dateMaxFormat]);\r\n }\r\n }\r\n else {\r\n field.data.error = true;\r\n field.data.helperText = field.data.errorMessageRequired;\r\n }\r\n }\r\n break;\r\n case 'visaExpirationDateId':\r\n app.visaExpiration = date;\r\n newComponents = this.setValues(fieldId, newComponents, date);\r\n if (isValid) {\r\n field.data.error = false;\r\n field.data.helperText = '';\r\n newComponents = this.cleanErrorMessages(fieldId, newComponents);\r\n }\r\n else {\r\n if (date) {\r\n field.data.error = true;\r\n if (resources) {\r\n field.data.helperText =\r\n Format.toString(resources.formatDateOutOfRange, [dateMinFormat, dateMaxFormat]);\r\n }\r\n }\r\n else {\r\n field.data.error = true;\r\n field.data.helperText = field.data.errorMessageRequired;\r\n }\r\n }\r\n break;\r\n case 'passportExpirationDateId':\r\n app.passportExpiration = date;\r\n newComponents = this.setValues(fieldId, newComponents, date);\r\n if (isValid) {\r\n field.data.error = false;\r\n field.data.helperText = '';\r\n newComponents = this.cleanErrorMessages(fieldId, newComponents);\r\n }\r\n else {\r\n if (date) {\r\n field.data.error = true;\r\n if (resources) {\r\n field.data.helperText =\r\n Format.toString(resources.formatDateOutOfRange, [dateMinFormat, dateMaxFormat]);\r\n }\r\n }\r\n else {\r\n field.data.error = true;\r\n field.data.helperText = field.data.errorMessageRequired;\r\n }\r\n }\r\n break;\r\n case 'testDateTakenId':\r\n const fieldTestTaken: any = newComponents.steps[Number(fieldId[1])].fieldsGroups[Number(fieldId[2])];\r\n if (!app.testScores[fieldIndex]) {\r\n app.testScores[fieldIndex] = {} as ITestScore;\r\n }\r\n app.testScores[fieldIndex].dateTaken = date;\r\n if (!isValid) {\r\n field.data.error = true;\r\n if (resources) {\r\n field.data.helperText =\r\n Format.toString(resources.formatDateOutOfRange, [dateMinFormat, dateMaxFormat]);\r\n }\r\n }\r\n if (fieldId.length > 4) {\r\n fieldTestTaken.fields.forEach(function (field) {\r\n const itemArrId: string[] = field.data.id.split('|');\r\n if (fieldId[3] === itemArrId[3] && fieldId[4] === itemArrId[4]) {\r\n if (!isValid) {\r\n field.data.error = true;\r\n if (resources) {\r\n field.data.helperText =\r\n Format.toString(resources.formatDateOutOfRange, [dateMinFormat, dateMaxFormat]);\r\n }\r\n } else if (moment(date, shortDatePattern).toDate() > new Date()) {\r\n field.data.error = true;\r\n field.data.helperText =\r\n Format.toString(\r\n field.data.errorMessageRange, [\r\n newComponents.dateTimeMin,\r\n moment(new Date()).format(shortDatePattern.toUpperCase())]);\r\n } else {\r\n field.data.error = false;\r\n field.data.helperText = '';\r\n field.value = date;\r\n }\r\n }\r\n });\r\n }\r\n else {\r\n fieldTestTaken.fields.forEach(function (field) {\r\n const itemArrId: string[] = field.data.id.split('|');\r\n if (fieldId[0] === itemArrId[0] && itemArrId.length === 1) {\r\n if (!isValid) {\r\n field.data.error = true;\r\n if (resources) {\r\n field.data.helperText =\r\n Format.toString(resources.formatDateOutOfRange, [dateMinFormat, dateMaxFormat]);\r\n }\r\n } else if (moment(date).toDate() > new Date()) {\r\n field.data.error = true;\r\n field.data.helperText =\r\n Format.toString(\r\n field.data.errorMessageRange, [\r\n newComponents.dateTimeMin,\r\n moment(new Date()).format(shortDatePattern.toUpperCase())]);\r\n } else {\r\n field.data.error = false;\r\n field.data.helperText = '';\r\n field.value = date;\r\n }\r\n }\r\n });\r\n }\r\n break;\r\n default:\r\n newComponents = this.setValues(fieldId, newComponents, date);\r\n if (isValid) {\r\n field.data.error = false;\r\n field.data.helperText = '';\r\n newComponents = this.cleanErrorMessages(fieldId, newComponents);\r\n }\r\n else {\r\n if (date) {\r\n field.data.error = true;\r\n if (resources) {\r\n field.data.helperText =\r\n Format.toString(resources.formatDateOutOfRange, [dateMinFormat, dateMaxFormat]);\r\n }\r\n }\r\n else {\r\n if (field.isRequired) {\r\n field.data.error = true;\r\n field.data.helperText = field.data.errorMessageRequired;\r\n }\r\n }\r\n }\r\n break;\r\n }\r\n this.setState({\r\n application: app,\r\n components: newComponents\r\n });\r\n }\r\n } catch (e) {\r\n this.logError(LogData.fromException(this.onChangeDateTimeField.name, e));\r\n }\r\n };\r\n\r\n private onChangeDropDown = (optionSelected: IDropDownOption, id: string): void => {\r\n try {\r\n const {\r\n application,\r\n components\r\n } = this.state;\r\n\r\n if (id && id !== '' && application && components) {\r\n const app: IApplication = application;\r\n const fieldId: string[] = id.split('|');\r\n let fieldIndex: number = 0;\r\n if (fieldId[4]) {\r\n fieldIndex = Number(fieldId[4]) + 1;\r\n }\r\n\r\n let valueSelected: any | undefined;\r\n if (optionSelected.value) {\r\n switch (typeof optionSelected.value) {\r\n case 'string':\r\n valueSelected = String(optionSelected.value);\r\n break;\r\n case 'number':\r\n valueSelected = Number(optionSelected.value);\r\n break;\r\n default:\r\n valueSelected = optionSelected.value;\r\n break;\r\n }\r\n }\r\n\r\n switch (fieldId[0]) {\r\n case 'testId':\r\n if (!app.testScores[fieldIndex]) {\r\n app.testScores[fieldIndex] = {} as ITestScore;\r\n }\r\n app.testScores[fieldIndex].id = valueSelected;\r\n app.testScores[fieldIndex].typeId = 0;\r\n\r\n const testScoreComponents: IFieldForm[] =\r\n components.steps[Number(fieldId[1])].fieldsGroups[Number(fieldId[2])].fields;\r\n const score: IFieldForm | undefined =\r\n testScoreComponents.find(f =>\r\n f.data.id.split('|')[0] === 'testScoreId' &&\r\n (f.data.id.split('|')[4] || '') === (fieldId[4] || ''));\r\n\r\n if (score && valueSelected && valueSelected !== '') {\r\n Requests.getValidateScoreType(\r\n application.applicationId || 0,\r\n app.testScores[fieldIndex].id,\r\n 'testScoreGroup',\r\n score.data.id,\r\n this.resolveValidateScore, this.logError);\r\n }\r\n break;\r\n case 'testTypeId':\r\n if (!app.testScores[fieldIndex]) {\r\n app.testScores[fieldIndex] = {} as ITestScore;\r\n }\r\n app.testScores[fieldIndex].typeId = valueSelected;\r\n break;\r\n case 'hispanicGroupId':\r\n if (components) {\r\n // Get fieldsGroup\r\n const fieldsGroup: IFieldForm[] =\r\n components.steps[Number(fieldId[1])].fieldsGroups[Number(fieldId[2])].fields;\r\n // Get checkBoxList hispanicCheckboxListId index\r\n let checkBoxListIndex: number = -1;\r\n fieldsGroup.forEach((field, i) => {\r\n if (field.data.id.substr(0, 'hispanicCheckboxListId'.length) === 'hispanicCheckboxListId') {\r\n checkBoxListIndex = i;\r\n }\r\n });\r\n // Get checkBoxList hispanicCheckboxListId\r\n const checkBoxListField: IFieldForm =\r\n components.steps[Number(fieldId[1])].fieldsGroups[Number(fieldId[2])].fields[checkBoxListIndex];\r\n let ipedsList: IApplicationIpeds[] | undefined = application.ipeds;\r\n if (valueSelected === '1') {\r\n if (checkBoxListField) {\r\n // Add category in list\r\n const ipeds: IApplicationIpeds = { ipedsEthnicityId: undefined, ipedsFederalCategoryId: 1 };\r\n if (ipedsList) {\r\n const ipedIndex: number =\r\n ipedsList.findIndex(x => x.ipedsFederalCategoryId === 1);\r\n // Category was not found, add category\r\n if (ipedIndex === -1) {\r\n ipedsList.push(ipeds);\r\n }\r\n }\r\n // ipedsList was undefined so add a new item with category\r\n else {\r\n ipedsList = [ipeds];\r\n }\r\n checkBoxListField.value = undefined;\r\n }\r\n }\r\n if (valueSelected === '0') {\r\n if (checkBoxListField) {\r\n if (ipedsList && ipedsList.length > 0) {\r\n let index: number = -1;\r\n do {\r\n index = ipedsList.findIndex(x => x.ipedsFederalCategoryId === 1);\r\n if (index > -1) {\r\n ipedsList.splice(index, 1);\r\n }\r\n } while (index > -1);\r\n }\r\n checkBoxListField.value = undefined;\r\n }\r\n }\r\n if (valueSelected === undefined) {\r\n if (checkBoxListField) {\r\n if (ipedsList && ipedsList.length > 0) {\r\n let index: number = ipedsList.length;\r\n do {\r\n ipedsList.splice(index, 1);\r\n index--;\r\n } while (ipedsList.length > 0);\r\n }\r\n checkBoxListField.value = undefined;\r\n }\r\n }\r\n application.ipeds = ipedsList;\r\n this.setState({\r\n application: application,\r\n components: components\r\n });\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n let newComponents: IApplicationForm = components;\r\n if (fieldId && fieldId[1] && fieldId[2] && fieldId[3]) {\r\n newComponents = this.cleanErrorMessages(fieldId, newComponents);\r\n newComponents = this.setValues(fieldId, newComponents, valueSelected);\r\n\r\n const fieldGroup: any = newComponents.steps[Number(fieldId[1])].fieldsGroups[Number(fieldId[2])];\r\n const sectionFields: any = fieldGroup.fields.filter(x => (x.data.id.split('|')[4] || '') === (fieldId[4] || ''));\r\n\r\n sectionFields.forEach(field => {\r\n if (fieldId[0] === 'testId' && field.childField && valueSelected && valueSelected !== '' &&\r\n Number(valueSelected) > 0) {\r\n Requests.getChildOptions(\r\n field.childEndPoint,\r\n valueSelected || 0,\r\n fieldId[1],\r\n fieldId[2],\r\n field.childField,\r\n true,\r\n this.resolveGetChildOptions,\r\n this.logError,\r\n undefined);\r\n }\r\n if (fieldId[0] === 'activityTypeId' && field.childField && valueSelected && valueSelected !== '' &&\r\n Number(valueSelected) > 0) {\r\n Requests.getChildOptions(\r\n field.childEndPoint,\r\n valueSelected || 0,\r\n fieldId[1],\r\n fieldId[2],\r\n field.childField,\r\n true,\r\n this.resolveGetChildOptions,\r\n this.logError,\r\n Number(newComponents.applicationFormId));\r\n }\r\n if (fieldId[0] === 'campusOptionsId' && field.childField && valueSelected && valueSelected !== '' &&\r\n Number(valueSelected) > 0) {\r\n Requests.getChildOptions(\r\n field.childEndPoint,\r\n valueSelected || 0,\r\n fieldId[1],\r\n fieldId[2],\r\n field.childField,\r\n true,\r\n this.resolveGetChildOptions,\r\n this.logError,\r\n undefined);\r\n }\r\n });\r\n }\r\n this.setState({\r\n application: app,\r\n components: newComponents\r\n });\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onChangeDropDown.name, e));\r\n }\r\n };\r\n\r\n private onChangeListCheckbox = (event: any): void => {\r\n try {\r\n const {\r\n application,\r\n components\r\n } = this.state;\r\n\r\n const fieldId: string[] = event.currentTarget.id.split('|');\r\n const app: IApplication = application;\r\n\r\n if (application && components) {\r\n const childField: string[] = event.target.id.split('|');\r\n if (childField[1] === 'noHispanicNestedCheckboxListId') {\r\n const field: IFieldForm =\r\n components.steps[Number(childField[2])].\r\n fieldsGroups[Number(childField[3])].\r\n fields[Number(childField[4])];\r\n if (!app.ipeds && field.value) {\r\n const fieldGroup: IFieldsGroup =\r\n components.steps[Number(childField[2])].\r\n fieldsGroups[Number(childField[3])];\r\n this.setIpedsValuesNestedCheckList(fieldGroup);\r\n }\r\n if (event.target.checked === true) {\r\n let ipedNew: IApplicationIpeds = { ipedsFederalCategoryId: 0 };\r\n let ipedIndex: number = -1;\r\n if (childField[0] === 'child') {\r\n ipedNew = {\r\n ipedsEthnicityId: Number(childField[7]),\r\n ipedsFederalCategoryId: Number(childField[6])\r\n };\r\n if (app.ipeds) {\r\n ipedIndex = app.ipeds.findIndex(x => x.ipedsEthnicityId === undefined &&\r\n x.ipedsFederalCategoryId === Number(childField[6]));\r\n }\r\n }\r\n else if (childField[0] === 'parent') {\r\n ipedNew = {\r\n ipedsEthnicityId: undefined,\r\n ipedsFederalCategoryId: Number(childField[6])\r\n };\r\n if (app.ipeds) {\r\n ipedIndex =\r\n app.ipeds.findIndex(x => x.ipedsFederalCategoryId ===\r\n Number(childField[6]));\r\n }\r\n }\r\n if (app.ipeds) {\r\n if (ipedIndex > -1) {\r\n app.ipeds[ipedIndex] = ipedNew;\r\n }\r\n else {\r\n app.ipeds.push(ipedNew);\r\n }\r\n }\r\n else {\r\n app.ipeds = [ipedNew];\r\n }\r\n }\r\n else {\r\n if (app.ipeds) {\r\n if (childField[0] === 'child') {\r\n const itemToRemove: number =\r\n app.ipeds.findIndex(x => x.ipedsEthnicityId === Number(childField[7]) &&\r\n x.ipedsFederalCategoryId === Number(childField[6]));\r\n app.ipeds.splice(itemToRemove, 1);\r\n }\r\n else if (childField[0] === 'parent') {\r\n let index: number = -1;\r\n do {\r\n index = app.ipeds.findIndex(x =>\r\n x.ipedsFederalCategoryId === Number(childField[6]));\r\n if (index > -1) {\r\n app.ipeds.splice(index, 1);\r\n }\r\n } while (index > -1);\r\n }\r\n }\r\n }\r\n if (childField && childField[2] && childField[3] && childField[4]) {\r\n const field: IFieldForm =\r\n components.steps[Number(childField[2])].\r\n fieldsGroups[Number(childField[3])].\r\n fields[Number(childField[4])];\r\n if (app.ipeds && app.ipeds.length === 0 && field.isRequired) {\r\n field.value = undefined;\r\n }\r\n else {\r\n // change value of field\r\n if (app.ipeds) {\r\n field.value = undefined;\r\n app.ipeds.forEach(iped => {\r\n if (iped.ipedsFederalCategoryId !== 1) {\r\n if (field.value) {\r\n field.value = field.value +\r\n `${iped.ipedsFederalCategoryId.toString()}$${iped.ipedsEthnicityId ?\r\n iped.ipedsEthnicityId.toString() : ''},`;\r\n }\r\n else {\r\n field.value =\r\n `${iped.ipedsFederalCategoryId.toString()}$${iped.ipedsEthnicityId ?\r\n iped.ipedsEthnicityId.toString() : ''},`;\r\n }\r\n }\r\n });\r\n }\r\n }\r\n }\r\n }\r\n\r\n switch (fieldId[0]) {\r\n case 'campusId':\r\n if (fieldId && fieldId[1] && fieldId[2] && fieldId[3] && fieldId[4]) {\r\n const field: any =\r\n components.steps[Number(fieldId[1])].fieldsGroups[Number(fieldId[2])].fields[Number(fieldId[3])];\r\n if (!app.campuses && field.value) {\r\n const fieldGroup =\r\n components.steps[Number(fieldId[1])].fieldsGroups[Number(fieldId[2])];\r\n this.reviewCampus(fieldGroup);\r\n }\r\n }\r\n if (app.campuses) {\r\n const campusIndex: number = app.campuses.findIndex(x => x === Number(fieldId[4]));\r\n if (event.target.checked === true) {\r\n app.campuses.push(Number(fieldId[4]));\r\n }\r\n else {\r\n app.campuses.splice(campusIndex, 1);\r\n }\r\n }\r\n else {\r\n if (event.target.checked === true) {\r\n const campus: number = Number(fieldId[4]);\r\n app.campuses = [campus];\r\n }\r\n }\r\n if (fieldId && fieldId[1] && fieldId[2] && fieldId[3] && fieldId[4]) {\r\n const field: any =\r\n components.steps[Number(fieldId[1])].fieldsGroups[Number(fieldId[2])].fields[Number(fieldId[3])];\r\n if (app.campuses && app.campuses.length === 0 && field.isRequired) {\r\n field.value = undefined;\r\n field.data.error = true;\r\n field.data.helperText = field.data.errorMessageRequired;\r\n }\r\n else {\r\n if (app.campuses) {\r\n field.value = app.campuses.toString();\r\n }\r\n field.data.error = false;\r\n field.data.helperText = '';\r\n }\r\n }\r\n break;\r\n case 'interestId':\r\n if (fieldId && fieldId[1] && fieldId[2] && fieldId[3] && fieldId[4]) {\r\n const field: any =\r\n components.steps[Number(fieldId[1])].fieldsGroups[Number(fieldId[2])].fields[Number(fieldId[3])];\r\n if (!app.academicInterests && field.value) {\r\n const fieldGroup =\r\n components.steps[Number(fieldId[1])].fieldsGroups[Number(fieldId[2])];\r\n this.reviewAcademicInterest(fieldGroup);\r\n }\r\n }\r\n if (app.academicInterests) {\r\n const index: number = app.academicInterests.findIndex(x => x === Number(fieldId[4]));\r\n if (event.target.checked === true) {\r\n app.academicInterests.push(Number(fieldId[4]));\r\n }\r\n else {\r\n app.academicInterests.splice(index, 1);\r\n }\r\n }\r\n else {\r\n if (event.target.checked === true) {\r\n app.academicInterests = [Number(fieldId[4])];\r\n }\r\n }\r\n if (fieldId && fieldId[1] && fieldId[2] && fieldId[3] && fieldId[4]) {\r\n const field: any = components.steps[Number(fieldId[1])].fieldsGroups[Number(fieldId[2])].fields[Number(fieldId[3])];\r\n if (app.academicInterests && app.academicInterests.length === 0 && field.isRequired) {\r\n field.value = undefined;\r\n field.data.error = true;\r\n field.data.helperText = field.data.errorMessageRequired;\r\n }\r\n else {\r\n if (app.academicInterests) {\r\n field.value = app.academicInterests.toString();\r\n }\r\n field.data.error = false;\r\n field.data.helperText = '';\r\n }\r\n }\r\n break;\r\n case 'hispanicCheckboxListId':\r\n const field: IFieldForm =\r\n components.steps[Number(childField[1])].\r\n fieldsGroups[Number(childField[2])].\r\n fields[Number(childField[3])];\r\n if (!app.ipeds && field.value) {\r\n const fieldGroup: IFieldsGroup =\r\n components.steps[Number(childField[1])].\r\n fieldsGroups[Number(childField[2])];\r\n this.setIpedsValuesCheckList(fieldGroup);\r\n }\r\n const ipedNew: IApplicationIpeds = {\r\n ipedsEthnicityId: Number(fieldId[4]),\r\n ipedsFederalCategoryId: 1\r\n };\r\n if (app.ipeds) {\r\n const ipedIndex: number = app.ipeds.findIndex(x => x.ipedsEthnicityId === undefined &&\r\n x.ipedsFederalCategoryId === 1);\r\n if (event.target.checked === true) {\r\n // when exists category 1 and null, record should be updated\r\n if (ipedIndex > -1) {\r\n app.ipeds[ipedIndex] = ipedNew;\r\n }\r\n else {\r\n app.ipeds.push(ipedNew);\r\n }\r\n }\r\n else {\r\n // remove item from list\r\n const itemToRemove: number =\r\n app.ipeds.findIndex(x => x.ipedsEthnicityId === Number(fieldId[4]) &&\r\n x.ipedsFederalCategoryId === 1);\r\n app.ipeds.splice(itemToRemove, 1);\r\n }\r\n }\r\n else {\r\n app.ipeds = [ipedNew];\r\n }\r\n // Select yes in radio buttons\r\n components.steps[Number(fieldId[1])].\r\n fieldsGroups[Number(fieldId[2])].fields.forEach(field => {\r\n if (field.data.id === 'hispanicGroupId') {\r\n field.value = '1';\r\n }\r\n });\r\n // Add in the list of value id's selected\r\n if (fieldId && fieldId[1] && fieldId[2] && fieldId[3] && fieldId[4]) {\r\n const field: IFieldForm =\r\n components.steps[Number(fieldId[1])].fieldsGroups[Number(fieldId[2])].fields[Number(fieldId[3])];\r\n if (app.ipeds && app.ipeds.length === 0 && field.isRequired) {\r\n field.value = undefined;\r\n }\r\n else {\r\n // change value of field\r\n if (app.ipeds) {\r\n const ipedsArray: string[] = [];\r\n app.ipeds.forEach(ethnicity => {\r\n if (ethnicity.ipedsFederalCategoryId === 1) {\r\n if (ethnicity.ipedsEthnicityId) {\r\n ipedsArray.push(ethnicity.ipedsEthnicityId.toString());\r\n }\r\n }\r\n });\r\n field.value = ipedsArray.toString();\r\n }\r\n }\r\n }\r\n break;\r\n }\r\n this.setState({\r\n application: app,\r\n components: components\r\n });\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onChangeListCheckbox.name, e));\r\n }\r\n };\r\n\r\n private onChangeRadioGroup = (event: any, value: string): void => {\r\n try {\r\n const {\r\n application,\r\n components\r\n } = this.state;\r\n\r\n if (event.target.name && event.target.name !== '' && application && components) {\r\n const app: IApplication = application;\r\n const fieldId: string[] = event.target.name.split('|');\r\n let newComponents: IApplicationForm = components;\r\n\r\n switch (fieldId[0]) {\r\n case 'primaryPhoneId':\r\n newComponents = this.onPrimaryButtonClick(fieldId, newComponents, value);\r\n break;\r\n }\r\n\r\n newComponents = this.cleanErrorMessages(fieldId, newComponents);\r\n newComponents = this.setValues(fieldId, newComponents, value);\r\n\r\n this.setState({\r\n application: app,\r\n components: newComponents\r\n });\r\n }\r\n } catch (e) {\r\n this.logError(LogData.fromException(this.onChangeRadioGroup.name, e));\r\n }\r\n };\r\n\r\n private onChangeTextField = (event: any): void => {\r\n try {\r\n const {\r\n application,\r\n components\r\n } = this.state;\r\n\r\n if (event.target.id && event.target.id !== '' && application && components) {\r\n const app: IApplication = application;\r\n const fieldId: string[] = event.target.id.split('|');\r\n let fieldIndex: number = 0;\r\n if (fieldId[4]) {\r\n fieldIndex = Number(fieldId[4]) + 1;\r\n }\r\n let newComponents: IApplicationForm = components;\r\n switch (fieldId[0]) {\r\n case 'emailId':\r\n if (fieldId && fieldId[1] && fieldId[2]) {\r\n const field: any = newComponents.steps[Number(fieldId[1])].fieldsGroups[Number(fieldId[2])].fields[Number(fieldId[3])];\r\n if (!components.emailRegExpression || event.target.value.match(components.emailRegExpression)) {\r\n field.data.error = false;\r\n field.data.helperText = '';\r\n field.value = event.target.value;\r\n app.email = event.target.value;\r\n }\r\n else {\r\n field.data.error = true;\r\n field.data.helperText = field.data.errorMessageNotValid;\r\n }\r\n }\r\n break;\r\n case 'emergencyPhoneId':\r\n if (!event.target.value.match(/^[0-9]*$/g)) {\r\n const onlyNum = new RegExp(/([A-Za-zñ<> äÄëËïÏöÖüÜáÁéÉíÍóÓúÚýÝ'¿\"#_-Ä-´°%;&¨Ñ,¡.*+?^=!:$(){}|[\\]\\/\\\\])/g);\r\n event.target.value = event.target.value.replace(onlyNum, '');\r\n }\r\n break;\r\n case 'firstNameId':\r\n app.firstName = event.target.value;\r\n break;\r\n case 'formerLastNameId':\r\n app.formerLastName = event.target.value;\r\n break;\r\n case 'governmentId':\r\n if (fieldId && fieldId[1] && fieldId[2] && fieldId[3]) {\r\n const field: any = newComponents.steps[Number(fieldId[1])]\r\n .fieldsGroups[Number(fieldId[2])].fields[Number(fieldId[3])];\r\n const governmentId: string = event.target.value;\r\n if (governmentId.includes('_')) {\r\n field.data.error = true;\r\n field.data.helperText = field.data.errorMessageFormat;\r\n }\r\n else {\r\n field.data.error = false;\r\n field.data.helperText = '';\r\n }\r\n app.governmentId = governmentId;\r\n }\r\n break;\r\n case 'lastNameId':\r\n app.lastName = event.target.value;\r\n break;\r\n case 'lastNamePrefixId':\r\n app.lastNamePrefix = event.target.value;\r\n break;\r\n case 'legalNameId':\r\n app.legalName = event.target.value;\r\n break;\r\n case 'middleNameId':\r\n app.middleName = event.target.value;\r\n break;\r\n case 'monthsInCountryId':\r\n if (fieldId && fieldId[1] && fieldId[2] && fieldId[3]) {\r\n if (!event.target.value.match(/^[0-9]*$/g)) {\r\n const onlyNum = new RegExp(/([A-Za-zñ<> äÄëËïÏöÖüÜáÁéÉíÍóÓúÚýÝ'¿\"#_-Ä-´°%;&¨Ñ,¡.*+?^=!:$(){}|[\\]\\/\\\\])/g);\r\n event.target.value = event.target.value.replace(onlyNum, '');\r\n }\r\n const field: any = newComponents.steps[Number(fieldId[1])].fieldsGroups[Number(fieldId[2])].fields[Number(fieldId[3])];\r\n if (Number(event.target.value) >= 0 && Number(event.target.value) <= 9999) {\r\n field.data.error = false;\r\n field.data.helperText = '';\r\n app.monthsInCountry = Number(event.target.value);\r\n }\r\n else {\r\n if (Number(event.target.value) > 9999) {\r\n field.data.error = true;\r\n field.data.helperText = field.data.errorMessageRange;\r\n }\r\n else {\r\n field.data.error = true;\r\n field.data.helperText = field.data.errorMessageNumeric;\r\n }\r\n }\r\n }\r\n break;\r\n case 'nickNameId':\r\n app.nickname = event.target.value;\r\n break;\r\n case 'otherSourceId':\r\n app.otherSource = event.target.value;\r\n break;\r\n case 'testScoreId':\r\n const fieldGroupTestScore: any = newComponents.steps[Number(fieldId[1])].fieldsGroups[Number(fieldId[2])];\r\n\r\n if (!app.testScores[fieldIndex]) {\r\n app.testScores[fieldIndex] = {} as ITestScore;\r\n }\r\n app.testScores[fieldIndex].score = event.target.value;\r\n\r\n if (fieldId.length > 4) {\r\n fieldGroupTestScore.fields.forEach(function (field) {\r\n const itemArrId: string[] = field.data.id.split('|');\r\n if (fieldId[3] === itemArrId[3] && fieldId[4] === itemArrId[4]) {\r\n if (Number(event.target.value) > 9999) {\r\n field.data.error = true;\r\n field.data.helperText = field.data.errorMessageRange;\r\n field.value = event.target.value;\r\n } else {\r\n field.data.error = false;\r\n field.data.helperText = '';\r\n field.value = event.target.value;\r\n }\r\n }\r\n });\r\n }\r\n else {\r\n fieldGroupTestScore.fields.forEach(function (field) {\r\n const itemArrId: string[] = field.data.id.split('|');\r\n if (fieldId[0] === itemArrId[0] && itemArrId.length === 1) {\r\n if (Number(event.target.value) > 9999) {\r\n field.data.error = true;\r\n field.data.helperText = field.data.errorMessageRange;\r\n field.value = event.target.value;\r\n } else {\r\n field.data.error = false;\r\n field.data.helperText = '';\r\n field.value = event.target.value;\r\n }\r\n }\r\n });\r\n }\r\n break;\r\n case 'passportNumberId':\r\n app.passportNumber = event.target.value;\r\n break;\r\n case 'phoneNumberId':\r\n if (!event.target.value.match(/^[0-9]*$/g)) {\r\n const onlyNum = new RegExp(/([A-Za-zñ<> äÄëËïÏöÖüÜáÁéÉíÍóÓúÚýÝ'¿\"#_-Ä-´°%;&¨Ñ,¡.*+?^=!:$(){}|[\\]\\/\\\\])/g);\r\n event.target.value = event.target.value.replace(onlyNum, '');\r\n }\r\n break;\r\n case 'visaNumberId':\r\n app.visaNumber = event.target.value;\r\n break;\r\n case 'numberOfHoursPerWeekId':\r\n if (!event.target.value.match(/^[0-9]*$/g)) {\r\n const onlyNum = new RegExp(/([A-Za-zñ<> äÄëËïÏöÖüÜáÁéÉíÍóÓúÚýÝ'¿\"#_-Ä-´°%;&¨Ñ,¡.*+?^=!:$(){}|[\\]\\/\\\\])/g);\r\n event.target.value = event.target.value.replace(onlyNum, '');\r\n }\r\n let fieldHoursPerWeek: any;\r\n if (fieldId.length < 5) {\r\n fieldHoursPerWeek = newComponents.steps[Number(fieldId[1])].fieldsGroups[Number(fieldId[2])].fields[Number(fieldId[3])];\r\n }\r\n else {\r\n fieldHoursPerWeek = newComponents.steps[Number(fieldId[1])].\r\n fieldsGroups[Number(fieldId[2])].fields.find(x =>\r\n x.data.section === Number(fieldId[4]) &&\r\n x.data.id.substr(0, 'numberOfHoursPerWeekId'.length) ===\r\n 'numberOfHoursPerWeekId');\r\n }\r\n if (Number(event.target.value) > 168) {\r\n fieldHoursPerWeek.data.error = true;\r\n fieldHoursPerWeek.data.helperText = fieldHoursPerWeek.data.errorMessageRange;\r\n }\r\n else {\r\n fieldHoursPerWeek.data.error = false;\r\n fieldHoursPerWeek.data.helperText = '';\r\n }\r\n break;\r\n case 'numberOfWeeksPerYearId':\r\n if (!event.target.value.match(/^[0-9]*$/g)) {\r\n const onlyNum = new RegExp(/([A-Za-zñ<> äÄëËïÏöÖüÜáÁéÉíÍóÓúÚýÝ'¿\"#_-Ä-´°%;&¨Ñ,¡.*+?^=!:$(){}|[\\]\\/\\\\])/g);\r\n event.target.value = event.target.value.replace(onlyNum, '');\r\n }\r\n let fieldWeeksPerYear: any;\r\n if (fieldId.length < 5) {\r\n fieldWeeksPerYear = newComponents.steps[Number(fieldId[1])].fieldsGroups[Number(fieldId[2])].fields[Number(fieldId[3])];\r\n }\r\n else {\r\n fieldWeeksPerYear = newComponents.steps[Number(fieldId[1])].\r\n fieldsGroups[Number(fieldId[2])].fields.find(x =>\r\n x.data.section === Number(fieldId[4]) &&\r\n x.data.id.substr(0, 'numberOfWeeksPerYearId'.length) ===\r\n 'numberOfWeeksPerYearId');\r\n }\r\n if (Number(event.target.value) > 52) {\r\n fieldWeeksPerYear.data.error = true;\r\n fieldWeeksPerYear.data.helperText = fieldWeeksPerYear.data.errorMessageRange;\r\n }\r\n else {\r\n fieldWeeksPerYear.data.error = false;\r\n fieldWeeksPerYear.data.helperText = '';\r\n }\r\n break;\r\n case 'numberOfYearsId':\r\n if (!event.target.value.match(/^[0-9]*$/g)) {\r\n const onlyNum = new RegExp(/([A-Za-zñ<> äÄëËïÏöÖüÜáÁéÉíÍóÓúÚýÝ'¿\"#_-Ä-´°%;&¨Ñ,¡.*+?^=!:$(){}|[\\]\\/\\\\])/g);\r\n event.target.value = event.target.value.replace(onlyNum, '');\r\n }\r\n let fieldYears: any;\r\n if (fieldId.length < 5) {\r\n fieldYears = newComponents.steps[Number(fieldId[1])].fieldsGroups[Number(fieldId[2])].fields[Number(fieldId[3])];\r\n }\r\n else {\r\n fieldYears = newComponents.steps[Number(fieldId[1])].\r\n fieldsGroups[Number(fieldId[2])].fields.find(x =>\r\n x.data.section === Number(fieldId[4]) &&\r\n x.data.id.substr(0, 'numberOfYearsId'.length) ===\r\n 'numberOfYearsId');\r\n }\r\n if (Number(event.target.value) > 99) {\r\n fieldYears.data.error = true;\r\n fieldYears.data.helperText = fieldYears.data.errorMessageRange;\r\n }\r\n else {\r\n fieldYears.data.error = false;\r\n fieldYears.data.helperText = '';\r\n }\r\n break;\r\n }\r\n\r\n newComponents = this.cleanErrorMessages(fieldId, newComponents);\r\n newComponents = this.setValues(fieldId, newComponents, event.target.value);\r\n\r\n this.setState({\r\n application: app,\r\n components: newComponents\r\n });\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onChangeTextField.name, e));\r\n }\r\n };\r\n\r\n private onChangeTextFieldModal = (event: any): void => {\r\n try {\r\n\r\n if (event.target.id && event.target.id !== '') {\r\n switch (event.target.id) {\r\n case 'txtEmailField':\r\n const {\r\n components\r\n } = this.state;\r\n if (components) {\r\n if (!components.emailRegExpression || event.target.value.match(components.emailRegExpression)) {\r\n this.setState({\r\n changeEmailText: false,\r\n emailField: event.target.value,\r\n invalidEmail: false\r\n });\r\n }\r\n else {\r\n this.setState({\r\n changeEmailText: false,\r\n emailField: event.target.value,\r\n invalidEmail: true\r\n });\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onChangeTextFieldModal.name, e));\r\n }\r\n };\r\n\r\n private onClickButton = (event: React.MouseEvent): void => {\r\n try {\r\n const {\r\n application,\r\n components\r\n } = this.state;\r\n\r\n if (event.currentTarget.id && event.currentTarget.id !== '' && application && components) {\r\n const fieldId: string[] = event.currentTarget.id.split('|');\r\n\r\n switch (fieldId[0]) {\r\n case 'educationEtsCodeButtonId':\r\n this.setState({\r\n institutions: undefined,\r\n openETSSearchModal: true,\r\n selectedCity: undefined,\r\n selectedCountry: undefined,\r\n selectedEtsCode: undefined,\r\n selectedFieldId: event.currentTarget.id,\r\n selectedInstitutionName: undefined,\r\n selectedState: undefined\r\n });\r\n break;\r\n case 'postalCodeButtonId':\r\n // Get zip code\r\n let zipCode: string = '';\r\n const fieldGroup: IFieldForm[] =\r\n components.steps[Number(fieldId[1])].fieldsGroups[Number(fieldId[2])].fields;\r\n let fieldIndex: number = -1;\r\n if (fieldId.length > 4) {\r\n fieldIndex = fieldGroup.findIndex(x => x.data.section === Number(fieldId[4]) &&\r\n x.data.id.substr(0, 'postalCodeId'.length) === 'postalCodeId');\r\n }\r\n else {\r\n fieldIndex = fieldGroup.findIndex(x => x.data.id === 'postalCodeId');\r\n }\r\n if (fieldIndex > -1) {\r\n zipCode = components.steps[Number(fieldId[1])].fieldsGroups[Number(fieldId[2])].\r\n fields[fieldIndex].value;\r\n }\r\n\r\n this.setState({\r\n openAddressSearchModal: true,\r\n hasSearchZipCode: false,\r\n selectedFieldId: event.currentTarget.id,\r\n selectedZipCode: zipCode\r\n });\r\n\r\n LayoutActions.setLoading(true);\r\n\r\n const {\r\n pageSize\r\n } = this.state;\r\n\r\n Requests.getAddresses(\r\n 0,\r\n pageSize,\r\n zipCode,\r\n this.resolveGetAddress, this.logError);\r\n\r\n const {\r\n total\r\n } = this.state;\r\n\r\n if (total) {\r\n const previousSize = pageSize;\r\n // Fix 60\r\n this.setState({\r\n pageSize: 0\r\n }, () => {\r\n this.setState({\r\n pageNumber: 0,\r\n pageSize: previousSize\r\n });\r\n });\r\n }\r\n break;\r\n case 'finishId':\r\n // Get action of button\r\n const confirmationIndex: number =\r\n components.fieldsGroups.findIndex(x => x.id === 'confirmationGroup');\r\n const finishButtonId: number =\r\n components.fieldsGroups[confirmationIndex].fields.findIndex(x => x.data.id === 'finishId');\r\n if (confirmationIndex > -1 && finishButtonId > -1) {\r\n const actionUrl: string | undefined = components.fieldsGroups[confirmationIndex].fields[finishButtonId].actionUrl;\r\n if (actionUrl) {\r\n window.location.assign(actionUrl);\r\n }\r\n else {\r\n window.location.assign(`${Constants.webUrl}/Admissions/Applications`);\r\n }\r\n }\r\n break;\r\n default:\r\n const actionUrl: string | undefined =\r\n components.steps[Number(fieldId[1])].\r\n fieldsGroups[Number(fieldId[2])].\r\n fields[Number(fieldId[3])].actionUrl;\r\n if (actionUrl) {\r\n window.location.assign(actionUrl);\r\n }\r\n else {\r\n window.location.assign(`${Constants.webUrl}/Admissions/Applications`);\r\n }\r\n break;\r\n }\r\n }\r\n } catch (e) {\r\n LayoutActions.setLoading(false);\r\n this.logError(LogData.fromException(this.onClickButton.name, e));\r\n }\r\n };\r\n // #endregion Change Fields Events\r\n\r\n // #region Pagination\r\n private getRowsPerPageOptions(maxValue: number): number[] {\r\n const rowsPerPageOptions: number[] = [];\r\n try {\r\n this.rowsPerPageOptions.forEach(option => {\r\n if (option < maxValue) {\r\n rowsPerPageOptions.push(option);\r\n }\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.getRowsPerPageOptions.name, e));\r\n }\r\n return rowsPerPageOptions;\r\n }\r\n\r\n private onChangePage = (_event: any, page: number): void => {\r\n try {\r\n const {\r\n selectedInstitutionName,\r\n selectedEtsCode,\r\n selectedCity,\r\n selectedState,\r\n selectedCountry,\r\n pageSize\r\n } = this.state;\r\n\r\n this.setState({\r\n pageNumber: page\r\n });\r\n\r\n LayoutActions.setLoading(true);\r\n Requests.getInstitutions(\r\n page,\r\n pageSize,\r\n selectedInstitutionName,\r\n selectedEtsCode,\r\n selectedCity,\r\n selectedState,\r\n selectedCountry,\r\n this.resolveGetInstitutions, this.logError);\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onChangePage.name, e));\r\n }\r\n };\r\n\r\n private onChangePageAddress = (_event: any, page: number): void => {\r\n try {\r\n const {\r\n selectedZipCode,\r\n pageSize\r\n } = this.state;\r\n\r\n this.setState({\r\n pageNumber: page\r\n });\r\n\r\n LayoutActions.setLoading(true);\r\n Requests.getAddresses(\r\n page,\r\n pageSize,\r\n selectedZipCode,\r\n this.resolveGetAddress, this.logError);\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onChangePage.name, e));\r\n }\r\n };\r\n\r\n private onChangeRowsPerPage = (event: any): void => {\r\n try {\r\n this.setState({\r\n pageNumber: 0,\r\n pageSize: Number(event.target.value)\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onChangeRowsPerPage.name, e));\r\n }\r\n };\r\n // #endregion Pagination\r\n\r\n // #region Expansion\r\n private onAddMore = (fieldGroup: IFieldsGroup, stepIndex: number, fieldGroupIndex: number): void => {\r\n try {\r\n if (fieldGroup.id && fieldGroup.id !== '') {\r\n const {\r\n components,\r\n errors,\r\n expanded\r\n } = this.state;\r\n\r\n if (components) {\r\n if (components.expansionPanel === null) {\r\n components.expansionPanel = {};\r\n }\r\n switch (fieldGroup.id) {\r\n case 'employmentGroup':\r\n if (components.expansionPanel.employeeCount !== undefined) {\r\n this.createNewSection(components, fieldGroup, errors, stepIndex,\r\n fieldGroupIndex, components.expansionPanel.employeeCount, 'employmentErrosId', expanded);\r\n\r\n components.expansionPanel.employeeCount++;\r\n }\r\n else {\r\n this.createNewSection(components, fieldGroup, errors, stepIndex,\r\n fieldGroupIndex, 0, 'employmentErrosId', expanded);\r\n\r\n components.expansionPanel.employeeCount = 1;\r\n }\r\n break;\r\n case 'programOfStudyGroup':\r\n if (components.expansionPanel.programsCount !== undefined) {\r\n this.createNewSection(components, fieldGroup, errors, stepIndex,\r\n fieldGroupIndex, components.expansionPanel.programsCount, 'programOfStudydErrorsId', expanded);\r\n\r\n components.expansionPanel.programsCount++;\r\n }\r\n else {\r\n this.createNewSection(components, fieldGroup, errors, stepIndex,\r\n fieldGroupIndex, 0, 'programOfStudydErrorsId', expanded);\r\n\r\n components.expansionPanel.programsCount = 1;\r\n }\r\n break;\r\n case 'phoneGroup':\r\n if (components.expansionPanel.phoneCount !== undefined) {\r\n this.createNewSection(components, fieldGroup, errors, stepIndex,\r\n fieldGroupIndex, components.expansionPanel.phoneCount, 'phoneErrorsId', expanded);\r\n\r\n components.expansionPanel.phoneCount++;\r\n }\r\n else {\r\n this.createNewSection(components, fieldGroup, errors, stepIndex,\r\n fieldGroupIndex, 0, 'phoneErrorsId', expanded);\r\n\r\n components.expansionPanel.phoneCount = 1;\r\n }\r\n break;\r\n case 'testScoreGroup':\r\n const initialGroupLengthTS: number = fieldGroup.fields.length;\r\n\r\n this.createNewSection(components, fieldGroup, errors, stepIndex,\r\n fieldGroupIndex, initialGroupLengthTS, 'testScoreErrorsId', expanded);\r\n\r\n const finalGroupLengthTS: number = fieldGroup.fields.length;\r\n const newSetTS: IFieldForm[] = fieldGroup.fields.slice(initialGroupLengthTS, finalGroupLengthTS);\r\n const parentDropDownTS: IFieldForm = newSetTS[newSetTS.findIndex(e => e.childField !== null)];\r\n const childDropDownTS:\r\n IFieldForm =\r\n newSetTS[newSetTS.findIndex(e => e.data.id.split('|')[0] === parentDropDownTS.childField)];\r\n childDropDownTS.data.options = [];\r\n parentDropDownTS.childField = childDropDownTS.data.id;\r\n\r\n if (components.expansionPanel.testScoresCount !== undefined) {\r\n components.expansionPanel.testScoresCount++;\r\n }\r\n else {\r\n components.expansionPanel.testScoresCount = 1;\r\n }\r\n break;\r\n case 'emergencyContactGroup':\r\n if (errors[stepIndex].groupErrors[fieldGroupIndex].sectionErrors.length < 1) {\r\n if (components.expansionPanel.emergencyContactsCount !== undefined) {\r\n // Error id is not sent because errorId for this group will be excluded\r\n this.createNewSection(components, fieldGroup, errors, stepIndex,\r\n fieldGroupIndex, components.expansionPanel.emergencyContactsCount, '', expanded);\r\n\r\n components.expansionPanel.emergencyContactsCount++;\r\n }\r\n else {\r\n this.createNewSection(components, fieldGroup, errors, stepIndex,\r\n fieldGroupIndex, 0, '', expanded);\r\n\r\n components.expansionPanel.emergencyContactsCount = 1;\r\n }\r\n }\r\n break;\r\n case 'addressInformationGroup':\r\n if (components.expansionPanel.addressessCount !== undefined) {\r\n // Error id is not sent because errorId for this group will be excluded\r\n this.createNewSection(components, fieldGroup, errors, stepIndex,\r\n fieldGroupIndex, components.expansionPanel.addressessCount, '', expanded);\r\n\r\n components.expansionPanel.addressessCount++;\r\n }\r\n else {\r\n this.createNewSection(components, fieldGroup, errors, stepIndex,\r\n fieldGroupIndex, 0, '', expanded);\r\n\r\n components.expansionPanel.addressessCount = 1;\r\n }\r\n break;\r\n case 'educationGroup':\r\n if (components.expansionPanel.educationCount !== undefined) {\r\n // Error id is not sent because errorId for this group will be excluded\r\n this.createNewSection(components, fieldGroup, errors, stepIndex,\r\n fieldGroupIndex, components.expansionPanel.educationCount, '', expanded);\r\n\r\n components.expansionPanel.educationCount++;\r\n }\r\n else {\r\n this.createNewSection(components, fieldGroup, errors, stepIndex,\r\n fieldGroupIndex, 0, '', expanded);\r\n\r\n components.expansionPanel.educationCount = 1;\r\n }\r\n break;\r\n case 'activityGroup':\r\n const initialGroupLength: number = fieldGroup.fields.length;\r\n\r\n if (components.expansionPanel.activityCount !== undefined) {\r\n // Error id is not sent because errorId for this group will be excluded\r\n this.createNewSection(components, fieldGroup, errors, stepIndex,\r\n fieldGroupIndex, components.expansionPanel.activityCount, '', expanded);\r\n }\r\n else {\r\n this.createNewSection(components, fieldGroup, errors, stepIndex,\r\n fieldGroupIndex, 0, '', expanded);\r\n }\r\n\r\n const finalGroupLength: number = fieldGroup.fields.length;\r\n const newSet: IFieldForm[] = fieldGroup.fields.slice(initialGroupLength, finalGroupLength);\r\n const parentDropDown: IFieldForm = newSet[newSet.findIndex(e => e.childField !== null)];\r\n const childDropDown: IFieldForm = newSet[newSet.findIndex(e => e.data.id.split('|')[0] === parentDropDown.childField)];\r\n childDropDown.data.options = [];\r\n parentDropDown.childField = childDropDown.data.id;\r\n\r\n if (components.expansionPanel.activityCount !== undefined) {\r\n components.expansionPanel.activityCount++;\r\n }\r\n else {\r\n components.expansionPanel.activityCount = 1;\r\n }\r\n break;\r\n case 'relativesGroup':\r\n if (components.expansionPanel.relativesCount !== undefined) {\r\n // Error id is not sent because errorId for this group will be excluded\r\n this.createNewSection(components, fieldGroup, errors, stepIndex,\r\n fieldGroupIndex, components.expansionPanel.relativesCount, '', expanded);\r\n\r\n components.expansionPanel.relativesCount++;\r\n }\r\n else {\r\n this.createNewSection(components, fieldGroup, errors, stepIndex,\r\n fieldGroupIndex, 0, '', expanded);\r\n\r\n components.expansionPanel.relativesCount = 1;\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onAddMore.name, e));\r\n }\r\n };\r\n\r\n private onAddDeleteButton =\r\n (fieldGroup: IFieldsGroup, stepIndex: number, fieldGroupIndex: number, groupLength: number, sectionNumber: number): void => {\r\n try {\r\n const data: IDataForm = {\r\n id: `deleteIcon|${stepIndex}|${fieldGroupIndex}|${groupLength}|${sectionNumber}`,\r\n modified: true,\r\n section: sectionNumber\r\n };\r\n\r\n const deleteButton: IFieldForm = {\r\n componentType: 'DeleteIconButton',\r\n data: data,\r\n isNumeric: false,\r\n isRequired: false,\r\n onClick: this.onDeleteItem,\r\n value: ''\r\n };\r\n\r\n fieldGroup.fields.push(deleteButton);\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onAddDeleteButton.name, e));\r\n }\r\n };\r\n\r\n private onChangeExpansionPanel = (panelId: string) => (): void => {\r\n try {\r\n this.setState({\r\n expanded: panelId\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onChangeExpansionPanel.name, e));\r\n }\r\n };\r\n\r\n private onDeleteItem = (event: any): void => {\r\n try {\r\n const {\r\n errors,\r\n components\r\n } = this.state;\r\n\r\n if (components) {\r\n if (event.currentTarget.id) {\r\n const buttonId: string[] = event.currentTarget.id.split('|');\r\n const componentName: string = components.steps[buttonId[1]].fieldsGroups[buttonId[2]].id;\r\n const fields: IFieldForm[] = components.steps[buttonId[1]].fieldsGroups[buttonId[2]].fields;\r\n if (fields) {\r\n let fieldIndex: number;\r\n do {\r\n fieldIndex = fields.findIndex(x => x.data.section === Number(buttonId[4]));\r\n if (fieldIndex > -1) {\r\n fields.splice(fieldIndex, 1);\r\n }\r\n } while (fieldIndex > -1);\r\n }\r\n components.steps[Number(buttonId[1])].fieldsGroups[Number(buttonId[2])].fields = fields;\r\n\r\n // Delete section from sectionErrors\r\n const sectionIndex = errors[Number(buttonId[1])].groupErrors[Number(buttonId[2])].sectionErrors.findIndex(\r\n section => section.sectionIndex === Number(buttonId[4]));\r\n if (sectionIndex > -1) {\r\n errors[Number(buttonId[1])].groupErrors[Number(buttonId[2])].sectionErrors.splice(sectionIndex, 1);\r\n }\r\n\r\n switch (componentName) {\r\n case 'phoneGroup':\r\n // Search for primary selected in phone group\r\n const primaryPhoneField: IFieldForm[] = components.steps[buttonId[1]].fieldsGroups[buttonId[2]]\r\n .fields.filter(x => x.data.id.substr(0, 'primaryPhoneId'.length) === 'primaryPhoneId' && x.value === '1');\r\n // If doesn't exist, select first item as primary\r\n if (primaryPhoneField.length === 0) {\r\n const firstPrimaryPhoneField: number = components.steps[buttonId[1]].fieldsGroups[buttonId[2]]\r\n .fields.findIndex(x => x.data.id === 'primaryPhoneId');\r\n if (firstPrimaryPhoneField > -1) {\r\n components.steps[buttonId[1]].fieldsGroups[buttonId[2]]\r\n .fields[firstPrimaryPhoneField].value = '1';\r\n }\r\n }\r\n break;\r\n case 'testScoreGroup':\r\n const {\r\n application\r\n } = this.state;\r\n application.testScores[Number(buttonId[3]) + 1] = {};\r\n this.setState({\r\n application: application\r\n });\r\n break;\r\n }\r\n const fieldGroup: IFieldsGroup =\r\n components.steps[buttonId[1]].fieldsGroups[buttonId[2]];\r\n let maxAdd: number;\r\n if (fieldGroup.maximumAllowed) {\r\n maxAdd = Number(fieldGroup.maximumAllowed) - 1;\r\n }\r\n else {\r\n maxAdd = 99;\r\n }\r\n if (errors[buttonId[1]].groupErrors[buttonId[2]].sectionErrors.length < maxAdd) {\r\n // Add more button if it was remove\r\n components.steps[buttonId[1]].fieldsGroups[buttonId[2]].isMultiple = true;\r\n }\r\n }\r\n\r\n this.setState({\r\n components: components,\r\n errors: errors\r\n });\r\n\r\n event.stopPropagation();\r\n event.preventDefault();\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onDeleteItem.name, e));\r\n }\r\n };\r\n // #endregion Expansion\r\n\r\n // #region ReCaptcha\r\n private onRecaptchaChange = (token: any): void => {\r\n try {\r\n this.setState({\r\n reCaptchaError: !Boolean(token)\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onRecaptchaChange.name, e));\r\n }\r\n };\r\n\r\n private onReCaptchaError = (): void => {\r\n try {\r\n this.setState({\r\n reCaptchaError: true\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onReCaptchaError.name, e));\r\n }\r\n };\r\n // #endregion ReCaptcha\r\n // #endregion Events\r\n\r\n // #region Functions\r\n private assignFieldValue =\r\n (fieldGroup: IFieldForm[], fieldId: string[], fieldIdName: string, isSectionField: boolean, value?: any): void => {\r\n const {\r\n components\r\n } = this.state;\r\n\r\n if (components) {\r\n let fieldIndex: number = 1;\r\n if (isSectionField) {\r\n fieldIndex = fieldGroup.findIndex(x => x.data.section === Number(fieldId[4]) &&\r\n x.data.id.substr(0, fieldIdName.length) === fieldIdName);\r\n }\r\n else {\r\n fieldIndex = fieldGroup.findIndex(x => x.data.id === fieldIdName);\r\n }\r\n if (fieldIndex > -1) {\r\n components.steps[Number(fieldId[1])].fieldsGroups[Number(fieldId[2])].\r\n fields[fieldIndex].value = value;\r\n }\r\n }\r\n };\r\n\r\n private cleanErrorMessages = (fieldId: string[], newComponents: IApplicationForm): IApplicationForm => {\r\n if (fieldId && fieldId[1] && fieldId[2] && fieldId[3]) {\r\n let field: IFieldForm | undefined;\r\n\r\n if (fieldId.length > 4) {\r\n const fieldGroup: IFieldForm[] =\r\n newComponents.steps[Number(fieldId[1])].fieldsGroups[Number(fieldId[2])].fields;\r\n field =\r\n fieldGroup.find(x => x.data.id.split('|')[3] === fieldId[3] && x.data.id.split('|')[4] === fieldId[4]);\r\n }\r\n else {\r\n field =\r\n newComponents.steps[Number(fieldId[1])].fieldsGroups[Number(fieldId[2])].fields[Number(fieldId[3])];\r\n }\r\n\r\n if (field !== undefined) {\r\n if ((field.data.errorMessageDuplicate === undefined ||\r\n field.data.errorMessageDuplicate === null) &&\r\n (field.data.errorMessageFormat === undefined ||\r\n field.data.errorMessageFormat === null) &&\r\n (field.data.errorMessageNotValid === undefined ||\r\n field.data.errorMessageNotValid === null) &&\r\n (field.data.errorMessageNumeric === undefined ||\r\n field.data.errorMessageNumeric === null) &&\r\n (field.data.errorMessagePrimary === undefined ||\r\n field.data.errorMessagePrimary === null) &&\r\n (field.data.errorMessageRange === undefined ||\r\n field.data.errorMessageRange === null)) {\r\n field.data.error = false;\r\n field.data.helperText = '';\r\n }\r\n }\r\n }\r\n return newComponents;\r\n };\r\n\r\n private copyField =\r\n (id: string, stepIndex: number, fieldGroupIndex: number, groupLength: number, sectionNumber: number, components: IApplicationForm): IApplicationForm => {\r\n try {\r\n const fields: any =\r\n components.steps[stepIndex].fieldsGroups[fieldGroupIndex].fields;\r\n const fieldIndex: number =\r\n fields.findIndex(x => x.data.id === id);\r\n\r\n const copiedField: IFieldForm = fields[fieldIndex];\r\n const newField: IFieldForm = JSON.parse(JSON.stringify(copiedField));\r\n\r\n newField.data.id =\r\n `${id}|${stepIndex}|${fieldGroupIndex}|${groupLength}|${sectionNumber}`;\r\n let exist: boolean = false;\r\n if (copiedField.componentType === 'Dropdown') {\r\n if (copiedField.default && copiedField.data.options) {\r\n copiedField.data.options.forEach(option => {\r\n if (option.value.toString() === copiedField.default.toString()) {\r\n exist = true;\r\n }\r\n });\r\n }\r\n if (exist) {\r\n newField.value = copiedField.default;\r\n }\r\n else {\r\n newField.value = '';\r\n }\r\n }\r\n else {\r\n newField.value = copiedField.default ? copiedField.default : '';\r\n }\r\n newField.data.error = false;\r\n newField.data.helperText = '';\r\n newField.data.modified = true;\r\n newField.data.section = sectionNumber;\r\n fields.push(newField);\r\n components.steps[stepIndex].fieldsGroups[fieldGroupIndex].fields = fields;\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.copyField.name, e));\r\n }\r\n return components;\r\n };\r\n\r\n private createNewSection =\r\n (components: IApplicationForm, fieldGroup: IFieldsGroup, errors: IApplicationErrors[], stepIndex: number, fieldGroupIndex: number, count: number, errorTexId: string, expanded):\r\n void => {\r\n const groupLength: number = fieldGroup.fields.length;\r\n /* Initialization of SectionErrors in errors state variable and set of\r\n * SectionIndex = sectionErrors.length -1; \r\n */\r\n const sectionIndex = errors[stepIndex].groupErrors[fieldGroupIndex].sectionErrors.push(\r\n { sectionIndex: count, isSectionError: false, fieldsErrors: [] }) - 1;\r\n\r\n fieldGroup.fields.forEach((field, i) => {\r\n if (!field.data.modified) {\r\n if (field.data.id !== errorTexId) {\r\n components = this.copyField(field.data.id, stepIndex,\r\n fieldGroupIndex, (groupLength - 1) + i, count, components);\r\n }\r\n // Initialization of FieldErrors in errors state variable\r\n errors[stepIndex].groupErrors[fieldGroupIndex].sectionErrors[sectionIndex].fieldsErrors.push(\r\n { fieldId: field.data.id, isFieldError: false }\r\n );\r\n }\r\n });\r\n\r\n this.onAddDeleteButton(fieldGroup, stepIndex, fieldGroupIndex, (groupLength - 1), count);\r\n\r\n let maxAdd: number;\r\n if (fieldGroup.maximumAllowed) {\r\n maxAdd = Number(fieldGroup.maximumAllowed) - 1;\r\n }\r\n else {\r\n maxAdd = 99;\r\n }\r\n if (errors && errors[stepIndex].groupErrors[fieldGroupIndex].sectionErrors.length < maxAdd) {\r\n fieldGroup.isMultiple = true;\r\n }\r\n else {\r\n fieldGroup.isMultiple = false;\r\n }\r\n\r\n this.setState({\r\n components: components,\r\n errors: errors,\r\n expanded: fieldGroup.isExpansionPanel ?\r\n `panel|${stepIndex}|${fieldGroupIndex}|${count}` : expanded\r\n });\r\n };\r\n\r\n private reviewRequiredFields = (): boolean => {\r\n const {\r\n application,\r\n components,\r\n errors\r\n } = this.state;\r\n\r\n let isValid: boolean = true;\r\n if (components) {\r\n let programsValid: boolean = true;\r\n let testScoresValid: boolean = true;\r\n let validPhones: boolean = true;\r\n let isValidEmploymentSection: boolean = true;\r\n let emergencyContactsValid: boolean = true;\r\n let ipedsValid: boolean = true;\r\n let addressValid: boolean = true;\r\n let userDefinedValid: boolean = true;\r\n let educationValid: boolean = true;\r\n let activityValid: boolean = true;\r\n let relativeValid: boolean = true;\r\n let residencyValid: boolean = true;\r\n\r\n let ids: string[] = [];\r\n let fieldSectionIndex: number;\r\n let fieldId: string;\r\n let sectionErrorIndex: number;\r\n let fieldErrorIndex: number;\r\n\r\n components.steps.forEach((step, stepIndex) => {\r\n fieldErrorIndex = -1;\r\n step.fieldsGroups.forEach((fieldsGroup, groupIndex) => {\r\n fieldsGroup.fields.forEach(field => {\r\n if (field.isRequired && !field.value) {\r\n field.data.error = true;\r\n field.data.helperText = field.data.errorMessageRequired;\r\n isValid = false;\r\n } else if (field.isNumeric && String(field.value).length > 0 && isNaN(Number(field.value))) {\r\n field.data.error = true;\r\n field.data.helperText = field.data.errorMessageNumeric;\r\n isValid = false;\r\n } else if (field.isRequired && field.value && field.componentType === 'DatePicker') {\r\n const date = moment(field.value, 'YYYY-MM-DD');\r\n const isDateValid: boolean = date.isValid();\r\n const minDate = new Date(moment().add(-100, 'years').toDate());\r\n const maxDate = new Date(moment().add(+100, 'years').toDate());\r\n\r\n const isDateInRange: boolean =\r\n new Date(moment(field.value).toDate()) >= minDate &&\r\n new Date(moment(field.value).toDate()) <= maxDate;\r\n if (!isDateValid || !isDateInRange) {\r\n field.value = undefined;\r\n field.data.error = true;\r\n field.data.helperText = field.data.errorMessageRequired;\r\n isValid = false;\r\n }\r\n if (isDateValid && isDateInRange) {\r\n field.data.error = false;\r\n field.data.helperText = '';\r\n }\r\n } else if (field.value && field.componentType === 'DatePicker') {\r\n const date = moment(field.value, 'YYYY-MM-DD');\r\n const isDateValid: boolean = date.isValid();\r\n const minDate = new Date(moment().add(-100, 'years').toDate());\r\n const maxDate = new Date(moment().add(+100, 'years').toDate());\r\n\r\n const isDateInRange: boolean =\r\n new Date(moment(field.value).toDate()) >= minDate &&\r\n new Date(moment(field.value).toDate()) <= maxDate;\r\n if (isDateValid && !isDateInRange) {\r\n field.value = undefined;\r\n field.data.error = true;\r\n field.data.helperText = field.data.errorMessageRequired;\r\n isValid = false;\r\n }\r\n }\r\n else if (field.parentId == 'governmentIdGroup' && field.data.error) {\r\n isValid = false;\r\n }\r\n else {\r\n field.data.error = false;\r\n field.data.helperText = '';\r\n }\r\n });\r\n\r\n // init counts\r\n if (!components.expansionPanel) {\r\n components.expansionPanel = {};\r\n components.expansionPanel.activityCount = components.expansionPanel.activityCount ?\r\n components.expansionPanel.activityCount : 0;\r\n\r\n components.expansionPanel.addressessCount = components.expansionPanel.addressessCount ?\r\n components.expansionPanel.addressessCount : 0;\r\n\r\n components.expansionPanel.educationCount = components.expansionPanel.educationCount ?\r\n components.expansionPanel.educationCount : 0;\r\n\r\n components.expansionPanel.emergencyContactsCount = components.expansionPanel.emergencyContactsCount ?\r\n components.expansionPanel.emergencyContactsCount : 0;\r\n\r\n components.expansionPanel.employeeCount = components.expansionPanel.employeeCount ?\r\n components.expansionPanel.employeeCount : 0;\r\n\r\n components.expansionPanel.phoneCount = components.expansionPanel.phoneCount ?\r\n components.expansionPanel.phoneCount : 0;\r\n\r\n components.expansionPanel.programsCount = components.expansionPanel.programsCount ?\r\n components.expansionPanel.programsCount : 0;\r\n\r\n components.expansionPanel.relativesCount = components.expansionPanel.relativesCount ?\r\n components.expansionPanel.relativesCount : 0;\r\n\r\n components.expansionPanel.testScoresCount = components.expansionPanel.testScoresCount ?\r\n components.expansionPanel.testScoresCount : 0;\r\n }\r\n\r\n // #region Components Validations\r\n\r\n // #region Programs\r\n if (fieldsGroup.id === 'programOfStudyGroup') {\r\n programsValid = this.reviewPrograms(fieldsGroup);\r\n const textErrorIndex: number = fieldsGroup.fields.findIndex(x => x.data.id === 'programOfStudydErrorsId');\r\n if (!programsValid) {\r\n if (textErrorIndex > -1) {\r\n fieldsGroup.fields[textErrorIndex].data.error = true;\r\n }\r\n }\r\n else {\r\n if (textErrorIndex > -1) {\r\n fieldsGroup.fields[textErrorIndex].data.error = false;\r\n fieldsGroup.fields[textErrorIndex].data.label = '';\r\n }\r\n }\r\n }\r\n // #endregion Programs\r\n\r\n // #region TestScores\r\n if (fieldsGroup.id === 'testScoreGroup') {\r\n const filteredControls: IFieldForm[] =\r\n fieldsGroup.fields.filter(f => !(f.data.id.includes('deleteIcon') || f.data.id.includes('testScoreErrorsId')));\r\n const groupedControls: any = filteredControls.reduce(function (r, a) {\r\n const key: string | undefined = a.data.id.split('|')[4];\r\n let index: number = 0;\r\n if (!key) {\r\n index = 0;\r\n } else {\r\n index = Number(key) + 1;\r\n }\r\n r[index] = r[index] || [];\r\n r[index].push(a);\r\n return r;\r\n }, Object.create(null));\r\n\r\n const messageErrorIndex: number = fieldsGroup.fields.findIndex(x => x.data.id === 'testScoreErrorsId');\r\n testScoresValid = this.reviewTestScores(groupedControls);\r\n if (!testScoresValid) {\r\n if (messageErrorIndex > -1) {\r\n fieldsGroup.fields[messageErrorIndex].data.error = true;\r\n fieldsGroup.fields[messageErrorIndex].data.label = fieldsGroup.errorMessageDuplicate;\r\n }\r\n }\r\n else {\r\n if (messageErrorIndex > -1) {\r\n fieldsGroup.fields[messageErrorIndex].data.error = false;\r\n fieldsGroup.fields[messageErrorIndex].data.label = '';\r\n }\r\n }\r\n\r\n // Validate testscore completeness\r\n if (testScoresValid && !filteredControls.some(f => f.data.error === true)) {\r\n testScoresValid = this.reviewTestScoreCompleteness(groupedControls);\r\n\r\n if (!testScoresValid) {\r\n if (messageErrorIndex > -1) {\r\n fieldsGroup.fields[messageErrorIndex].data.error = true;\r\n fieldsGroup.fields[messageErrorIndex].data.label = fieldsGroup.errorMessageRequired;\r\n }\r\n }\r\n else {\r\n if (messageErrorIndex > -1) {\r\n fieldsGroup.fields[messageErrorIndex].data.error = false;\r\n fieldsGroup.fields[messageErrorIndex].data.label = '';\r\n }\r\n }\r\n }\r\n\r\n // removes empty test scores\r\n for (let i: number = application.testScores.length; i >= 0; i--) {\r\n if (application.testScores[i]) {\r\n if (!application.testScores[i].id) {\r\n application.testScores.splice(i, 1);\r\n }\r\n } else {\r\n application.testScores.splice(i, 1);\r\n }\r\n }\r\n }\r\n // #endregion TestScores\r\n\r\n // #region Phones\r\n if (fieldsGroup.id === 'phoneGroup') {\r\n validPhones = this.reviewPhoneGroup(fieldsGroup);\r\n const textErrorIndex: number = fieldsGroup.fields.findIndex(x => x.data.id === 'phoneErrorsId');\r\n if (!validPhones) {\r\n if (textErrorIndex > -1) {\r\n fieldsGroup.fields[textErrorIndex].data.error = true;\r\n }\r\n }\r\n else {\r\n if (textErrorIndex > -1) {\r\n fieldsGroup.fields[textErrorIndex].data.error = false;\r\n fieldsGroup.fields[textErrorIndex].data.label = '';\r\n }\r\n }\r\n }\r\n // #endregion Phones\r\n\r\n // #region Ipeds\r\n if (fieldsGroup.id === 'ipedsGroup') {\r\n ipedsValid = this.reviewIpeds(fieldsGroup);\r\n const textErrorIndex: number = fieldsGroup.fields.findIndex(x => x.data.id === 'ipedsErrorsId');\r\n if (!ipedsValid) {\r\n if (textErrorIndex > -1) {\r\n fieldsGroup.fields[textErrorIndex].data.error = true;\r\n }\r\n }\r\n else {\r\n if (textErrorIndex > -1) {\r\n fieldsGroup.fields[textErrorIndex].data.error = false;\r\n fieldsGroup.fields[textErrorIndex].data.label = '';\r\n }\r\n }\r\n }\r\n // #endregion Ipeds\r\n\r\n // #region Employment\r\n if (fieldsGroup.id === 'employmentGroup') {\r\n isValidEmploymentSection = this.reviewEmployment(fieldsGroup);\r\n const fieldsById =\r\n fieldsGroup.fields.filter(x =>\r\n x.data.id.substr(0, 'employmentErrosId'.length) === 'employmentErrosId');\r\n fieldsById.forEach(field => {\r\n if (!isValidEmploymentSection) {\r\n field.data.error = true;\r\n }\r\n else {\r\n field.data.error = false;\r\n field.data.label = '';\r\n }\r\n });\r\n isValid = !isValidEmploymentSection ? false : isValid;\r\n }\r\n // #endregion Employment\r\n\r\n // #region EmergencyContacts\r\n if (fieldsGroup.id === 'emergencyContactGroup') {\r\n emergencyContactsValid = this.reviewEmergencyContacts(fieldsGroup);\r\n isValid = !emergencyContactsValid ? false : isValid;\r\n }\r\n // #endregion EmergencyContacts\r\n\r\n // #region Address\r\n if (fieldsGroup.id === 'addressInformationGroup') {\r\n addressValid = this.reviewAddress(fieldsGroup);\r\n isValid = !addressValid ? false : isValid;\r\n }\r\n // #endregion Address\r\n\r\n // #region UserDefinedFields\r\n if (fieldsGroup.isCustom) {\r\n userDefinedValid = this.reviewUserDefined(fieldsGroup);\r\n isValid = !userDefinedValid ? false : isValid;\r\n }\r\n // #endregion UserDefinedFields\r\n\r\n // #region Education\r\n if (fieldsGroup.id === 'educationGroup') {\r\n educationValid = this.reviewEducation(fieldsGroup);\r\n isValid = !educationValid ? false : isValid;\r\n }\r\n // #endregion Education\r\n\r\n // #region Activities\r\n if (fieldsGroup.id === 'activityGroup') {\r\n activityValid = this.reviewActivities(fieldsGroup);\r\n }\r\n // #endregion Activities\r\n\r\n // #region Relatives\r\n if (fieldsGroup.id === 'relativesGroup') {\r\n relativeValid = this.reviewRelatives(fieldsGroup);\r\n isValid = !relativeValid ? false : isValid;\r\n }\r\n // #endregion Relatives\r\n\r\n // #region Residency\r\n if (fieldsGroup.id === 'residencyGroup') {\r\n residencyValid = this.reviewResidency(fieldsGroup);\r\n isValid = !residencyValid ? false : isValid;\r\n }\r\n // #endregion Residency\r\n\r\n // #region Campuses\r\n if (fieldsGroup.id === 'campusGroup') {\r\n this.reviewCampus(fieldsGroup);\r\n }\r\n // #endregion Campuses\r\n\r\n // #region Academic Interest\r\n if (fieldsGroup.id === 'interestGroup') {\r\n this.reviewAcademicInterest(fieldsGroup);\r\n }\r\n // #endregion Academic Interest\r\n // #endregion Components Validations\r\n // Group errors\r\n fieldsGroup.fields.forEach(field => {\r\n // Set errors in copied fields inside the SectionErrors array of errors state variable\r\n if (field.data.modified) {\r\n ids = field.data.id.split('|');\r\n if (ids[0] !== 'deleteIcon') {\r\n // Gets the actual Section index from the field id\r\n fieldSectionIndex = Number(ids[4]);\r\n // Gets the actual Field id\r\n fieldId = ids[0];\r\n // Gets the index of the sectionErrors array\r\n sectionErrorIndex = errors[stepIndex].groupErrors[groupIndex].sectionErrors.findIndex(section =>\r\n section.sectionIndex === fieldSectionIndex);\r\n if (sectionErrorIndex > -1) {\r\n // Gets the index of the fieldErrors array\r\n fieldErrorIndex = errors[stepIndex].groupErrors[groupIndex].sectionErrors[sectionErrorIndex].fieldsErrors\r\n .findIndex(field => field.fieldId === fieldId);\r\n if (fieldErrorIndex > -1) {\r\n // Sets the value of the error\r\n errors[stepIndex].groupErrors[groupIndex].sectionErrors[sectionErrorIndex].fieldsErrors[fieldErrorIndex]\r\n .isFieldError = field.data.error ? field.data.error : false;\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n // Set errors in first fields inside the firstSectionErrors array state variable\r\n fieldErrorIndex = errors[stepIndex].groupErrors[groupIndex].firstSectionErrors.firstFieldsErrors.findIndex(fieldError =>\r\n fieldError.fieldId === field.data.id);\r\n // Checks if the field is already in firstFieldsErrors\r\n if (fieldErrorIndex > -1) {\r\n errors[stepIndex].groupErrors[groupIndex].firstSectionErrors.firstFieldsErrors[fieldErrorIndex].isFieldError =\r\n field.data.error ? field.data.error : false;\r\n } else {\r\n errors[stepIndex].groupErrors[groupIndex].firstSectionErrors.firstFieldsErrors.push(\r\n { fieldId: field.data.id, isFieldError: field.data.error ? field.data.error : false }\r\n );\r\n }\r\n }\r\n });\r\n\r\n errors[stepIndex].groupErrors[groupIndex].firstSectionErrors.isFirstSectionErrors =\r\n errors[stepIndex].groupErrors[groupIndex].firstSectionErrors.firstFieldsErrors.some(fieldError => fieldError.isFieldError);\r\n\r\n errors[stepIndex].groupErrors[groupIndex].sectionErrors.forEach(sectionError => {\r\n sectionError.isSectionError = sectionError.fieldsErrors.some(fieldError => fieldError.isFieldError);\r\n });\r\n\r\n errors[stepIndex].groupErrors[groupIndex].isGroupError =\r\n fieldsGroup.fields.some(field => field.data.error ? field.data.error : false);\r\n });\r\n errors[stepIndex].isStepError = errors[stepIndex].groupErrors.some(groupError => groupError.isGroupError);\r\n });\r\n\r\n // Multiple components validations\r\n isValid = programsValid && testScoresValid &&\r\n validPhones && ipedsValid && addressValid &&\r\n activityValid && relativeValid &&\r\n isValid;\r\n\r\n const allErrors: IGroupErrors[] = [];\r\n const especificErrors: IGroupErrors[] = [];\r\n if (!isValid) {\r\n errors.forEach(step => {\r\n step.groupErrors.forEach(groupError => {\r\n if (groupError.isGroupError) {\r\n if (\r\n // groupError.groupId === 'emergencyContactGroup' ||\r\n (groupError.groupId === 'educationGroup' && application.education.length === 0) ||\r\n groupError.groupId === 'activityGroup' ||\r\n groupError.groupId === 'residencyGroup') {\r\n especificErrors.push(groupError);\r\n }\r\n else {\r\n allErrors.push(groupError);\r\n }\r\n }\r\n });\r\n });\r\n if (allErrors.length === 0) {\r\n isValid = programsValid && testScoresValid && validPhones &&\r\n ipedsValid && addressValid &&\r\n isValidEmploymentSection && emergencyContactsValid &&\r\n educationValid && activityValid && relativeValid && residencyValid;\r\n }\r\n }\r\n\r\n this.setState({\r\n components: components,\r\n errors: errors\r\n });\r\n }\r\n return isValid;\r\n };\r\n\r\n private setApplicationValues = (fieldId: string, fieldDefault: any): void => {\r\n const {\r\n application\r\n } = this.state;\r\n\r\n switch (fieldId) {\r\n case 'attendStatusId':\r\n application.collegeAttendStatus = fieldDefault;\r\n break;\r\n case 'campusId':\r\n application.campuses = fieldDefault;\r\n break;\r\n case 'counselorId':\r\n application.counselorId = fieldDefault;\r\n break;\r\n case 'countryOfBirthId':\r\n application.countryOfBirth = fieldDefault;\r\n break;\r\n case 'ethnicityId':\r\n application.ethnicity = fieldDefault;\r\n break;\r\n case 'genderId':\r\n application.gender = fieldDefault;\r\n break;\r\n case 'maritalyId':\r\n application.maritalStatus = fieldDefault;\r\n break;\r\n case 'passportCountryId':\r\n application.passportCountryId = fieldDefault;\r\n break;\r\n case 'primaryCitizenshipId':\r\n application.primaryCitizenship = fieldDefault;\r\n break;\r\n case 'primaryLanguageId':\r\n application.primaryLanguage = fieldDefault;\r\n break;\r\n case 'prefixId':\r\n application.prefix = fieldDefault;\r\n break;\r\n case 'religionId':\r\n application.religion = fieldDefault;\r\n break;\r\n case 'secondayCitizenshipId':\r\n application.secondaryCitizenship = fieldDefault;\r\n break;\r\n case 'secondaryLanguageId':\r\n application.secondaryLanguage = fieldDefault;\r\n break;\r\n case 'sessionPeriodId':\r\n application.period = fieldDefault;\r\n break;\r\n case 'sourceId':\r\n application.sourceId = fieldDefault;\r\n break;\r\n case 'suffixId':\r\n application.suffix = fieldDefault;\r\n break;\r\n case 'veteranId':\r\n application.veteranStatus = fieldDefault;\r\n break;\r\n case 'visaId':\r\n application.visa = fieldDefault;\r\n break;\r\n case 'visaCountryId':\r\n application.visaCountryId = fieldDefault;\r\n break;\r\n case 'extraCurricularActivityId':\r\n application.isInterestedInExtracurricular = fieldDefault;\r\n break;\r\n case 'financialAidId':\r\n application.isInterestedInFinancialAid = fieldDefault;\r\n break;\r\n case 'retiredId':\r\n application.isRetired = fieldDefault;\r\n break;\r\n case 'seekingDegreeId':\r\n application.isSeekingDegree = fieldDefault;\r\n break;\r\n case 'policyCheckboxId':\r\n application.policy = fieldDefault;\r\n break;\r\n case 'dateOfBirthId':\r\n application.dateOfBirth = fieldDefault;\r\n break;\r\n case 'visaExpirationDateId':\r\n application.visaExpiration = fieldDefault;\r\n break;\r\n case 'passportExpirationDateId':\r\n application.passportExpiration = fieldDefault;\r\n break;\r\n case 'emailId':\r\n application.email = fieldDefault;\r\n break;\r\n case 'firstNameId':\r\n application.firstName = fieldDefault;\r\n break;\r\n case 'formerLastNameId':\r\n application.formerLastName = fieldDefault;\r\n break;\r\n case 'governmentId':\r\n application.governmentId = fieldDefault;\r\n break;\r\n case 'lastNameId':\r\n application.lastName = fieldDefault;\r\n break;\r\n case 'lastNamePrefixId':\r\n application.lastNamePrefix = fieldDefault;\r\n break;\r\n case 'legalNameId':\r\n application.legalName = fieldDefault;\r\n break;\r\n case 'middleNameId':\r\n application.middleName = fieldDefault;\r\n break;\r\n case 'monthsInCountryId':\r\n application.monthsInCountry = fieldDefault;\r\n break;\r\n case 'nickNameId':\r\n application.nickname = fieldDefault;\r\n break;\r\n case 'otherSourceId':\r\n application.otherSource = fieldDefault;\r\n break;\r\n case 'passportNumberId':\r\n application.passportNumber = fieldDefault;\r\n break;\r\n case 'visaNumberId':\r\n application.visaNumber = fieldDefault;\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n this.setState({\r\n application: fieldDefault\r\n });\r\n };\r\n\r\n private setValues = (fieldId: string[], newComponents: IApplicationForm, value: any): IApplicationForm => {\r\n if (fieldId.length > 4) {\r\n const fieldGroup: IFieldForm[] =\r\n newComponents.steps[Number(fieldId[1])].fieldsGroups[Number(fieldId[2])].fields;\r\n const field: IFieldForm | undefined =\r\n fieldGroup.find(x => x.data.id.split('|')[3] === fieldId[3] && x.data.id.split('|')[4] === fieldId[4]);\r\n if (field) {\r\n field.value = value;\r\n }\r\n }\r\n else {\r\n const field: IFieldForm =\r\n newComponents.steps[Number(fieldId[1])].fieldsGroups[Number(fieldId[2])].fields[Number(fieldId[3])];\r\n if (fieldId) {\r\n field.value = value;\r\n }\r\n }\r\n return newComponents;\r\n };\r\n\r\n // #region Review Information\r\n private reviewActivities = (fieldsGroup: IFieldsGroup): boolean => {\r\n const {\r\n application,\r\n components\r\n } = this.state;\r\n\r\n let isValid = true;\r\n\r\n if (components && components.expansionPanel.activityCount === undefined) {\r\n components.expansionPanel.activityCount = 0;\r\n }\r\n\r\n if (components && components.expansionPanel.activityCount !== undefined && components.expansionPanel.activityCount > -1) {\r\n let activityList: IApplicationActivity[] = [];\r\n const activity: IApplicationActivity = {};\r\n\r\n let activityTypefield: IFieldForm | undefined;\r\n if (activityTypefield = fieldsGroup.fields.find(x => x.data.id === 'activityTypeId')) {\r\n activity.activityType = activityTypefield.value;\r\n }\r\n let activityField: IFieldForm | undefined;\r\n if (activityField = fieldsGroup.fields.find(x => x.data.id === 'activityId')) {\r\n activity.activity = activityField.value;\r\n }\r\n let positionHeldField: IFieldForm | undefined;\r\n if (positionHeldField = fieldsGroup.fields.find(x => x.data.id === 'positionHeldId')) {\r\n activity.position = positionHeldField.value;\r\n }\r\n let numberOfHoursPerWeekField: IFieldForm | undefined;\r\n if (numberOfHoursPerWeekField = fieldsGroup.fields.find(x => x.data.id === 'numberOfHoursPerWeekId')) {\r\n activity.hoursPerWeek = numberOfHoursPerWeekField.value;\r\n }\r\n let numberOfWeeksPerYearField: IFieldForm | undefined;\r\n if (numberOfWeeksPerYearField = fieldsGroup.fields.find(x => x.data.id === 'numberOfWeeksPerYearId')) {\r\n activity.weeksPerYear = numberOfWeeksPerYearField.value;\r\n }\r\n let numberOfYearsField: IFieldForm | undefined;\r\n if (numberOfYearsField = fieldsGroup.fields.find(x => x.data.id === 'numberOfYearsId')) {\r\n activity.numberOfYears = numberOfYearsField.value;\r\n }\r\n let participated9Field: IFieldForm | undefined;\r\n if (participated9Field = fieldsGroup.fields.find(x => x.data.id === 'participated9Id')) {\r\n activity.participatedGrade09 = Boolean(participated9Field.value);\r\n }\r\n let participated10Field: IFieldForm | undefined;\r\n if (participated10Field = fieldsGroup.fields.find(x => x.data.id === 'participated10Id')) {\r\n activity.participatedGrade10 = Boolean(participated10Field.value);\r\n }\r\n let participated11Field: IFieldForm | undefined;\r\n if (participated11Field = fieldsGroup.fields.find(x => x.data.id === 'participated11Id')) {\r\n activity.participatedGrade11 = Boolean(participated11Field.value);\r\n }\r\n let participated12Field: IFieldForm | undefined;\r\n if (participated12Field = fieldsGroup.fields.find(x => x.data.id === 'participated12Id')) {\r\n activity.participatedGrade12 = Boolean(participated12Field.value);\r\n }\r\n let participatedPostSecondaryField: IFieldForm | undefined;\r\n if (participatedPostSecondaryField = fieldsGroup.fields.find(x => x.data.id === 'participatedPostSecondaryId')) {\r\n activity.participatedPostsecondary = Boolean(participatedPostSecondaryField.value);\r\n }\r\n\r\n // XNOR\r\n // If any required fields or none are filled that is allowed\r\n activity.activityType = activity.activityType || 0;\r\n activity.activity = activity.activity || 0;\r\n if (!(activity.activityType !== 0 && activity.activity !== 0) &&\r\n (activity.activityType !== 0 || activity.activity !== 0)) {\r\n return false;\r\n }\r\n\r\n activityList = this.setApplicationActivitiesValues(activity, activityList);\r\n\r\n let i: number = 0;\r\n do {\r\n let activityItem: IApplicationActivity = {};\r\n activityItem = this.setApplicationActivitiesAdditional(fieldsGroup, i, activityItem);\r\n\r\n // Duplicated\r\n if (activityList.find(x => x.activityType === activityItem.activityType &&\r\n x.activity === activityItem.activity)) {\r\n const fieldsById =\r\n fieldsGroup.fields.filter(x =>\r\n x.data.id.substr(0, 'activityErrosId'.length) === 'activityErrosId' &&\r\n x.data.section === i);\r\n fieldsById.forEach(field => {\r\n field.data.label = fieldsGroup.errorMessageDuplicate;\r\n field.data.error = true;\r\n });\r\n return false;\r\n }\r\n\r\n activityList = this.setApplicationActivitiesValues(activityItem, activityList);\r\n\r\n i++;\r\n } while (i < components.expansionPanel.activityCount);\r\n\r\n if (activityList.length > 0) {\r\n // Required fields should be filled\r\n activityList.forEach(activity => {\r\n if (activity.position || activity.hoursPerWeek ||\r\n activity.weeksPerYear || activity.numberOfYears ||\r\n activity.participatedGrade09 || activity.participatedGrade10 ||\r\n activity.participatedGrade11 || activity.participatedGrade12 ||\r\n activity.participatedPostsecondary) {\r\n if ((activity.activityType === null || activity.activityType === 0) &&\r\n (activity.activity === null || activity.activity === 0)) {\r\n isValid = false;\r\n }\r\n }\r\n });\r\n }\r\n // List is empty so no error should be show\r\n else {\r\n fieldsGroup.fields.forEach(field => {\r\n field.data.error = false;\r\n field.data.helperText = '';\r\n });\r\n isValid = true;\r\n }\r\n if (isValid) {\r\n application.activities = activityList;\r\n }\r\n\r\n this.setState({\r\n application\r\n });\r\n }\r\n return isValid;\r\n\r\n };\r\n\r\n private reviewAddress = (fieldsGroup: IFieldsGroup): boolean => {\r\n const {\r\n application,\r\n components\r\n } = this.state;\r\n\r\n if (components && components.expansionPanel.addressessCount === undefined) {\r\n components.expansionPanel.addressessCount = 0;\r\n }\r\n\r\n if (components && components.expansionPanel.addressessCount !== undefined && components.expansionPanel.addressessCount > -1) {\r\n const addressList: IApplicationAddress[] = [];\r\n let address: IApplicationAddress = { isPrimary: false };\r\n\r\n address = this.setApplicationAddress(fieldsGroup, address);\r\n address = this.setApplicationAddressValues(address);\r\n\r\n if (address.type !== 0 && address.line1 !== '' &&\r\n address.city !== '' && address.country !== 0) {\r\n address.isPrimary = true;\r\n addressList.push(address);\r\n }\r\n else if (address.line2 || address.line3 || address.line4 ||\r\n address.city || address.stateProvince || address.postalCode ||\r\n address.county) {\r\n addressList.push(address);\r\n }\r\n\r\n let i: number = 0;\r\n do {\r\n let address: IApplicationAddress = { isPrimary: false };\r\n address = this.setApplicationAddressAdditional(fieldsGroup, i, address);\r\n\r\n // Duplicated\r\n if (addressList.find(x => x.type === address.type)) {\r\n const fieldsById =\r\n fieldsGroup.fields.filter(x =>\r\n x.data.id.substr(0, 'addressErrorsId'.length) === 'addressErrorsId' &&\r\n x.data.section === i);\r\n fieldsById.forEach(field => {\r\n field.data.label = fieldsGroup.errorMessageDuplicate;\r\n field.data.error = true;\r\n });\r\n return false;\r\n }\r\n\r\n address = this.setApplicationAddressValues(address);\r\n\r\n if (address.type !== 0 && address.line1 !== '' &&\r\n address.city !== '' && address.country !== 0) {\r\n addressList.push(address);\r\n }\r\n else if (address.line2 !== '' || address.line3 !== '' || address.line4 !== '' ||\r\n address.city !== '' || address.stateProvince !== 0 || address.postalCode !== '' ||\r\n address.county !== 0) {\r\n addressList.push(address);\r\n }\r\n i++;\r\n } while (i < components.expansionPanel.addressessCount);\r\n\r\n application.addresses = addressList;\r\n\r\n this.setState({\r\n application\r\n });\r\n\r\n return true;\r\n }\r\n else {\r\n return true;\r\n }\r\n };\r\n\r\n private reviewEducation = (fieldsGroup: IFieldsGroup): boolean => {\r\n const {\r\n application,\r\n components\r\n } = this.state;\r\n\r\n let isValid: boolean = true;\r\n\r\n if (components && components.expansionPanel.educationCount === undefined) {\r\n components.expansionPanel.educationCount = 0;\r\n }\r\n\r\n if (components && components.expansionPanel.educationCount !== undefined && components.expansionPanel.educationCount > -1) {\r\n const educationList: IApplicationEducation[] = [];\r\n let education: IApplicationEducation = {\r\n enrollment: {},\r\n institution: {\r\n city: '',\r\n countryDesc: '',\r\n etsCode: '',\r\n ficeCode: '',\r\n id: 0,\r\n name: '',\r\n stateDesc: ''\r\n }\r\n };\r\n\r\n education = this.setApplicationEducation(fieldsGroup, education);\r\n education = this.setApplicationEducationValues(education);\r\n\r\n if (education.institution.city || education.enrollment.startDate || education.enrollment.endDate ||\r\n education.institution.etsCode || education.institution.name || education.institution.ficeCode) {\r\n educationList.push(education);\r\n }\r\n else if (education.enrollment &&\r\n education.enrollment.curriculumId && education.enrollment.curriculumId > 0 ||\r\n education.enrollment.honorsId && education.enrollment.honorsId > 0 ||\r\n education.enrollment.degreeId && education.enrollment.degreeId > 0 ||\r\n education.institution.id && education.institution.id > 0 ||\r\n education.institution.stateProvinceId && education.institution.stateProvinceId > 0 ||\r\n education.institution.countryId && education.institution.countryId > 0) {\r\n educationList.push(education);\r\n }\r\n\r\n // Dates\r\n if (education.enrollment.startDate && education.enrollment.endDate) {\r\n if (components && (education.enrollment.startDate || education.enrollment.endDate)) {\r\n if (moment(education.enrollment.startDate).format('YYYY-MM-DD') > moment(education.enrollment.endDate).format('YYYY-MM-DD')) {\r\n const fieldsById =\r\n fieldsGroup.fields.filter(x =>\r\n x.data.id === 'educationErrosId');\r\n fieldsById.forEach(field => {\r\n field.data.label = fieldsGroup.errorMessageNotValid;\r\n field.data.error = true;\r\n });\r\n return false;\r\n }\r\n else if (moment(education.enrollment.startDate).format('YYYY-MM-DD') <\r\n moment(education.enrollment.endDate).format('YYYY-MM-DD')) {\r\n const fieldsById =\r\n fieldsGroup.fields.filter(x =>\r\n x.data.id === 'educationErrosId');\r\n fieldsById.forEach(field => {\r\n field.data.label = '';\r\n field.data.error = false;\r\n });\r\n }\r\n else if (education.enrollment && education.enrollment.startDate && education.enrollment.endDate &&\r\n (education.enrollment.startDate < moment(components.dateTimeMin).format('YYYY-MM-DD') ||\r\n education.enrollment.endDate > moment(components.dateTimeMax).format('YYYY-MM-DD'))) {\r\n const fieldsById =\r\n fieldsGroup.fields.filter(x =>\r\n x.data.id === 'educationErrosId');\r\n fieldsById.forEach(field => {\r\n field.data.label = fieldsGroup.errorMessageRange\r\n + moment(components.dateTimeMin).format('YYYY') + '-' +\r\n + moment(components.dateTimeMax).format('YYYY');\r\n field.data.error = true;\r\n });\r\n return false;\r\n }\r\n else if (education.enrollment && education.enrollment.startDate && education.enrollment.endDate &&\r\n (education.enrollment.startDate < moment(components.dateTimeMin).format('YYYY-MM-DD') ||\r\n education.enrollment.endDate < moment(components.dateTimeMax).format('YYYY-MM-DD'))) {\r\n const fieldsById =\r\n fieldsGroup.fields.filter(x =>\r\n x.data.id === 'educationErrosId');\r\n fieldsById.forEach(field => {\r\n field.data.label = '';\r\n field.data.error = false;\r\n });\r\n }\r\n }\r\n }\r\n\r\n let i: number = 0;\r\n do {\r\n let education: IApplicationEducation = {\r\n enrollment: {},\r\n institution: {\r\n city: '',\r\n countryDesc: '',\r\n etsCode: '',\r\n ficeCode: '',\r\n id: 0,\r\n name: '',\r\n stateDesc: ''\r\n }\r\n };\r\n\r\n education = this.setApplicationEducationAdditional(fieldsGroup, i, education);\r\n education = this.setApplicationEducationValues(education);\r\n\r\n // Dates\r\n if (education.enrollment.startDate && education.enrollment.endDate) {\r\n if (components && (education.enrollment.startDate || education.enrollment.endDate)) {\r\n if (moment(education.enrollment.startDate).format('YYYY-MM-DD') >\r\n moment(education.enrollment.endDate).format('YYYY-MM-DD')) {\r\n const fieldsById =\r\n fieldsGroup.fields.filter(x =>\r\n x.data.id.substr(0, 'educationErrosId'.length) === 'educationErrosId' &&\r\n x.data.section === i);\r\n fieldsById.forEach(field => {\r\n field.data.label = fieldsGroup.errorMessageNotValid;\r\n field.data.error = true;\r\n });\r\n return false;\r\n }\r\n else if (moment(education.enrollment.startDate).format('YYYY-MM-DD') <\r\n moment(education.enrollment.endDate).format('YYYY-MM-DD')) {\r\n const fieldsById =\r\n fieldsGroup.fields.filter(x =>\r\n x.data.id.substr(0, 'educationErrosId'.length) === 'educationErrosId' &&\r\n x.data.section === i);\r\n fieldsById.forEach(field => {\r\n field.data.label = '';\r\n field.data.error = false;\r\n });\r\n }\r\n else if (education.enrollment && education.enrollment.startDate && education.enrollment.endDate &&\r\n (education.enrollment.startDate < moment(components.dateTimeMin).format('YYYY-MM-DD') ||\r\n education.enrollment.endDate > moment(components.dateTimeMax).format('YYYY-MM-DD'))) {\r\n const fieldsById =\r\n fieldsGroup.fields.filter(x =>\r\n x.data.id.substr(0, 'educationErrosId'.length) === 'educationErrosId' &&\r\n x.data.section === i);\r\n fieldsById.forEach(field => {\r\n field.data.label = fieldsGroup.errorMessageRange\r\n + moment(components.dateTimeMin).format('YYYY') + '-' +\r\n + moment(components.dateTimeMax).format('YYYY');\r\n field.data.error = true;\r\n });\r\n return false;\r\n }\r\n else if (education.enrollment && education.enrollment.startDate && education.enrollment.endDate &&\r\n (education.enrollment.startDate < moment(components.dateTimeMin).format('YYYY-MM-DD') ||\r\n education.enrollment.endDate < moment(components.dateTimeMax).format('YYYY-MM-DD'))) {\r\n const fieldsById =\r\n fieldsGroup.fields.filter(x =>\r\n x.data.id.substr(0, 'educationErrosId'.length) === 'educationErrosId' &&\r\n x.data.section === i);\r\n fieldsById.forEach(field => {\r\n field.data.label = '';\r\n field.data.error = false;\r\n });\r\n }\r\n }\r\n }\r\n // Duplicated\r\n if (education.enrollment && education.enrollment.degreeId && education.enrollment.curriculumId &&\r\n education.enrollment.honorsId &&\r\n (education.enrollment.degreeId > 0 && education.enrollment.curriculumId > 0 &&\r\n education.enrollment.honorsId > 0)) {\r\n if (educationList.find(x => x.enrollment.degreeId === education.enrollment.degreeId &&\r\n x.enrollment.curriculumId === education.enrollment.curriculumId &&\r\n x.enrollment.honorsId === education.enrollment.honorsId)) {\r\n const fieldsById =\r\n fieldsGroup.fields.filter(x =>\r\n x.data.id.substr(0, 'educationErrosId'.length) === 'educationErrosId' &&\r\n x.data.section === i);\r\n fieldsById.forEach(field => {\r\n field.data.label = fieldsGroup.errorMessageDuplicate;\r\n field.data.error = true;\r\n });\r\n return false;\r\n }\r\n }\r\n else {\r\n if (education.institution.etsCode) {\r\n if (educationList.find(x => x.institution.etsCode === education.institution.etsCode)) {\r\n const fieldsById =\r\n fieldsGroup.fields.filter(x =>\r\n x.data.id.substr(0, 'educationErrosId'.length) === 'educationErrosId');\r\n fieldsById.forEach(field => {\r\n field.data.label = fieldsGroup.errorMessageDuplicate;\r\n field.data.error = true;\r\n });\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n if (education.institution.city || education.enrollment.startDate || education.enrollment.endDate ||\r\n education.institution.etsCode || education.institution.name || education.institution.ficeCode) {\r\n educationList.push(education);\r\n }\r\n else if (education.enrollment &&\r\n education.enrollment.curriculumId && education.enrollment.curriculumId > 0 ||\r\n education.enrollment.honorsId && education.enrollment.honorsId > 0 ||\r\n education.enrollment.degreeId && education.enrollment.degreeId > 0 ||\r\n education.institution.id && education.institution.id > 0 ||\r\n education.institution.stateProvinceId && education.institution.stateProvinceId > 0 ||\r\n education.institution.countryId && education.institution.countryId > 0) {\r\n educationList.push(education);\r\n }\r\n i++;\r\n } while (i < components.expansionPanel.educationCount);\r\n\r\n // Education is required\r\n if (fieldsGroup.isRequired) {\r\n // List is no empty so no error should be show.\r\n if (educationList.length > 0) {\r\n isValid = true;\r\n const fieldsById =\r\n fieldsGroup.fields.filter(x =>\r\n x.data.id === 'educationErrosId');\r\n fieldsById.forEach(field => {\r\n field.data.label = '';\r\n field.data.error = false;\r\n });\r\n }\r\n // List is empty so error should be show.\r\n else {\r\n isValid = false;\r\n const fieldsById =\r\n fieldsGroup.fields.filter(x =>\r\n x.data.id === 'educationErrosId');\r\n fieldsById.forEach(field => {\r\n field.data.label = fieldsGroup.errorMessageRequired;\r\n field.data.error = true;\r\n });\r\n }\r\n }\r\n // Education is include\r\n else {\r\n // List is empty so no error should be show\r\n if (educationList.length === 0) {\r\n fieldsGroup.fields.forEach(field => {\r\n field.data.error = false;\r\n field.data.helperText = '';\r\n });\r\n isValid = true;\r\n }\r\n }\r\n if (isValid) {\r\n application.education = educationList;\r\n }\r\n this.setState({\r\n application: application\r\n });\r\n }\r\n return isValid;\r\n };\r\n\r\n private reviewEmergencyContacts = (fieldsGroup: IFieldsGroup): boolean => {\r\n const {\r\n application,\r\n components\r\n } = this.state;\r\n\r\n let isValid = true;\r\n\r\n if (components && components.expansionPanel.emergencyContactsCount === undefined) {\r\n components.expansionPanel.emergencyContactsCount = 0;\r\n }\r\n\r\n if (components && components.expansionPanel.emergencyContactsCount !== undefined && components.expansionPanel.emergencyContactsCount > -1) {\r\n const emergencyList: IApplicationEmergencyContact[] = [];\r\n\r\n const emergency: IApplicationEmergencyContact = { firstName: '', lastName: '', phoneNumber: '' };\r\n const firstNamefield = fieldsGroup.fields.findIndex(x => x.data.id === 'emergencyFirstNameId');\r\n if (firstNamefield > -1) {\r\n emergency.firstName = fieldsGroup.fields[firstNamefield].value;\r\n }\r\n const lastNameField = fieldsGroup.fields.findIndex(x => x.data.id === 'emergencyLastNameId');\r\n if (lastNameField > -1) {\r\n emergency.lastName = fieldsGroup.fields[lastNameField].value;\r\n }\r\n const phoneField = fieldsGroup.fields.findIndex(x => x.data.id === 'emergencyPhoneId');\r\n if (phoneField > -1) {\r\n emergency.phoneNumber = fieldsGroup.fields[phoneField].value;\r\n }\r\n const suffixField = fieldsGroup.fields.findIndex(x => x.data.id === 'emergencySuffixId');\r\n if (suffixField > -1) {\r\n emergency.suffixId = fieldsGroup.fields[suffixField].value;\r\n }\r\n const middleNameField = fieldsGroup.fields.findIndex(x => x.data.id === 'emergencyMiddleNameId');\r\n if (middleNameField > -1) {\r\n emergency.middleName = fieldsGroup.fields[middleNameField].value;\r\n }\r\n const lastNamePrefixField = fieldsGroup.fields.findIndex(x => x.data.id === 'emergencyLastNamePrefixId');\r\n if (lastNamePrefixField > -1) {\r\n emergency.lastNamePrefix = fieldsGroup.fields[lastNamePrefixField].value;\r\n }\r\n const relationshipField = fieldsGroup.fields.findIndex(x => x.data.id === 'emergencyRelationshipId');\r\n if (relationshipField > -1) {\r\n emergency.relationshipId = fieldsGroup.fields[relationshipField].value;\r\n }\r\n const prefix = fieldsGroup.fields.findIndex(x => x.data.id === 'emergencyPrefixId');\r\n if (prefix > -1) {\r\n emergency.prefixId = fieldsGroup.fields[prefix].value;\r\n }\r\n\r\n // XNOR\r\n // If any required fields or none are filled that is allowed\r\n emergency.firstName = emergency.firstName === null ? '' : emergency.firstName;\r\n emergency.lastName = emergency.lastName === null ? '' : emergency.lastName;\r\n emergency.phoneNumber = emergency.phoneNumber === null ? '' : emergency.phoneNumber;\r\n if (!(emergency.firstName !== '' && emergency.lastName !== '' && emergency.phoneNumber !== '') &&\r\n (emergency.firstName !== '' || emergency.lastName !== '' || emergency.phoneNumber !== '')) {\r\n return false;\r\n }\r\n\r\n if (emergency.firstName !== null && emergency.firstName !== '' &&\r\n emergency.lastName !== null && emergency.lastName !== '' &&\r\n emergency.phoneNumber !== null && emergency.phoneNumber !== '') {\r\n emergencyList.push(emergency);\r\n }\r\n else if (emergency.suffixId || emergency.middleName ||\r\n emergency.lastNamePrefix || emergency.relationshipId || emergency.prefixId) {\r\n emergencyList.push(emergency);\r\n }\r\n let i: number = 0;\r\n do {\r\n const emergency: IApplicationEmergencyContact = { firstName: '', lastName: '', phoneNumber: '' };\r\n\r\n const fieldsBySection = fieldsGroup.fields.filter(x => x.data.section === i);\r\n fieldsBySection.forEach(field => {\r\n if (field.data.id.substr(0, 'emergencyFirstNameId'.length) === 'emergencyFirstNameId') {\r\n emergency.firstName = field.value;\r\n }\r\n if (field.data.id.substr(0, 'emergencyLastNameId'.length) === 'emergencyLastNameId') {\r\n emergency.lastName = field.value;\r\n }\r\n if (field.data.id.substr(0, 'emergencyPhoneId'.length) === 'emergencyPhoneId') {\r\n emergency.phoneNumber = field.value;\r\n }\r\n if (field.data.id.substr(0, 'emergencySuffixId'.length) === 'emergencySuffixId') {\r\n emergency.suffixId = field.value;\r\n }\r\n if (field.data.id.substr(0, 'emergencyMiddleNameId'.length) === 'emergencyMiddleNameId') {\r\n emergency.middleName = field.value;\r\n }\r\n if (field.data.id.substr(0, 'emergencyLastNamePrefixId'.length) === 'emergencyLastNamePrefixId') {\r\n emergency.lastNamePrefix = field.value;\r\n }\r\n if (field.data.id.substr(0, 'emergencyRelationshipId'.length) === 'emergencyRelationshipId') {\r\n emergency.relationshipId = field.value;\r\n }\r\n if (field.data.id.substr(0, 'emergencyPrefixId'.length) === 'emergencyPrefixId') {\r\n emergency.prefixId = field.value;\r\n }\r\n });\r\n // Duplicated\r\n if (emergencyList.find(x => x.firstName === emergency.firstName &&\r\n x.lastName === emergency.lastName && x.relationshipId === emergency.relationshipId)) {\r\n const fieldsById =\r\n fieldsGroup.fields.filter(x =>\r\n x.data.id.substr(0, 'emergencyErrorsId'.length) === 'emergencyErrorsId' &&\r\n x.data.section === i);\r\n fieldsById.forEach(field => {\r\n field.data.label = fieldsGroup.errorMessageDuplicate;\r\n field.data.error = true;\r\n });\r\n return false;\r\n }\r\n if (emergency.firstName !== null && emergency.firstName !== '' &&\r\n emergency.lastName !== null && emergency.lastName !== '' &&\r\n emergency.phoneNumber !== null && emergency.phoneNumber !== '') {\r\n emergencyList.push(emergency);\r\n }\r\n else if (emergency.suffixId || emergency.middleName ||\r\n emergency.lastNamePrefix || emergency.relationshipId || emergency.prefixId) {\r\n emergencyList.push(emergency);\r\n }\r\n i++;\r\n } while (i < components.expansionPanel.emergencyContactsCount);\r\n // Emergency is required\r\n if (fieldsGroup.isRequired) {\r\n // List is no empty so no error should be show.\r\n if (emergencyList.length > 0) {\r\n isValid = true;\r\n const fieldsById =\r\n fieldsGroup.fields.filter(x =>\r\n x.data.id === 'emergencyErrorsId');\r\n fieldsById.forEach(field => {\r\n field.data.label = '';\r\n field.data.error = false;\r\n });\r\n }\r\n // List is empty so error should be show.\r\n else {\r\n isValid = false;\r\n const fieldsById =\r\n fieldsGroup.fields.filter(x =>\r\n x.data.id === 'emergencyErrorsId');\r\n fieldsById.forEach(field => {\r\n field.data.label = fieldsGroup.errorMessageRequired;\r\n field.data.error = true;\r\n });\r\n }\r\n }\r\n // Emergency is include\r\n else {\r\n // List is not empty\r\n if (emergencyList.length > 0) {\r\n // Required fields should be filled\r\n emergencyList.forEach(emergency => {\r\n if (emergency.suffixId || emergency.middleName ||\r\n emergency.lastNamePrefix || emergency.relationshipId || emergency.prefixId) {\r\n if ((emergency.firstName === null || emergency.firstName === '') &&\r\n (emergency.lastName === null || emergency.lastName === '') &&\r\n (emergency.phoneNumber === null || emergency.phoneNumber === '')) {\r\n isValid = false;\r\n }\r\n }\r\n });\r\n }\r\n // List is empty so no error should be show\r\n else {\r\n fieldsGroup.fields.forEach(field => {\r\n field.data.error = false;\r\n field.data.helperText = '';\r\n });\r\n isValid = true;\r\n }\r\n }\r\n if (isValid) {\r\n application.emergencyContacts = emergencyList;\r\n }\r\n this.setState({\r\n application: application\r\n });\r\n }\r\n return isValid;\r\n };\r\n\r\n private reviewEmployment = (fieldsGroup: IFieldsGroup): boolean => {\r\n const {\r\n application,\r\n components\r\n } = this.state;\r\n\r\n let isValid = true;\r\n\r\n if (components && components.expansionPanel.employeeCount === undefined) {\r\n components.expansionPanel.employeeCount = 0;\r\n }\r\n\r\n if (components && components.expansionPanel.employeeCount !== undefined && components.expansionPanel.employeeCount > -1) {\r\n const employmentList: IApplicationEmployment[] = [];\r\n if (components) {\r\n const employment: IApplicationEmployment = { name: '', positionId: 0, startDate: undefined, endDate: undefined };\r\n const employerNamefield = fieldsGroup.fields.findIndex(x => x.data.id === 'employerNameId');\r\n const employerPositionField = fieldsGroup.fields.findIndex(x => x.data.id === 'employerPositionId');\r\n if (employerNamefield > -1 && employerPositionField > -1) {\r\n employment.name = fieldsGroup.fields[employerNamefield].value;\r\n employment.positionId = fieldsGroup.fields[employerPositionField].value;\r\n\r\n employment.name = employment.name === null ? '' : employment.name;\r\n employment.positionId = employment.positionId === null ? 0 : employment.positionId;\r\n // If name has value position is not required\r\n if (employment.name !== '') {\r\n fieldsGroup.fields[employerPositionField].data.error = false;\r\n fieldsGroup.fields[employerPositionField].data.helperText = '';\r\n }\r\n // If position has value name is not required\r\n if (employment.positionId > 0) {\r\n fieldsGroup.fields[employerNamefield].data.error = false;\r\n fieldsGroup.fields[employerNamefield].data.helperText = '';\r\n }\r\n }\r\n const employerStartDateField = fieldsGroup.fields.findIndex(x => x.data.id === 'employerStartDateId');\r\n if (employerStartDateField > -1) {\r\n employment.startDate = fieldsGroup.fields[employerStartDateField].value;\r\n }\r\n const employerEndDateField = fieldsGroup.fields.findIndex(x => x.data.id === 'employerEndDateId');\r\n if (employerEndDateField > -1) {\r\n employment.endDate = fieldsGroup.fields[employerEndDateField].value;\r\n }\r\n // When group is required and name and position is empty, required error is show.\r\n if (fieldsGroup.isRequired && employment.name === '' &&\r\n (employment.positionId === 0 || employment.positionId === undefined)) {\r\n isValid = false;\r\n const fieldsById =\r\n fieldsGroup.fields.filter(x =>\r\n x.data.id.substr(0, 'employmentErrosId'.length) === 'employmentErrosId');\r\n fieldsById.forEach(field => {\r\n field.data.label = fieldsGroup.errorMessageRequired;\r\n });\r\n return false;\r\n }\r\n if (employment.name !== '' || employment.positionId > 0) {\r\n employmentList.push(employment);\r\n }\r\n if (employment.startDate || employment.endDate) {\r\n if (employment.startDate && employment.endDate) {\r\n // Dates\r\n if (moment(employment.startDate).format('YYYY-MM-DD') > moment(employment.endDate).format('YYYY-MM-DD')) {\r\n isValid = false;\r\n const fieldsById =\r\n fieldsGroup.fields.filter(x =>\r\n x.data.id.substr(0, 'employmentErrosId'.length) === 'employmentErrosId');\r\n fieldsById.forEach(field => {\r\n field.data.label = fieldsGroup.errorMessageNotValid;\r\n });\r\n }\r\n else if (employment.startDate < moment(components.dateTimeMin).format('YYYY-MM-DD') ||\r\n employment.endDate > moment(components.dateTimeMax).format('YYYY-MM-DD')) {\r\n isValid = false;\r\n const fieldsById =\r\n fieldsGroup.fields.filter(x =>\r\n x.data.id.substr(0, 'employmentErrosId'.length) === 'employmentErrosId');\r\n fieldsById.forEach(field => {\r\n field.data.label = fieldsGroup.errorMessageRange\r\n + moment(components.dateTimeMin).format('YYYY') + '-' +\r\n + moment(components.dateTimeMax).format('YYYY');\r\n });\r\n }\r\n }\r\n if (employment.name === '' &&\r\n (employment.positionId === 0 || employment.positionId === undefined)) {\r\n isValid = false;\r\n const fieldsById =\r\n fieldsGroup.fields.filter(x =>\r\n x.data.id.substr(0, 'employmentErrosId'.length) === 'employmentErrosId');\r\n fieldsById.forEach(field => {\r\n field.data.label = fieldsGroup.errorMessageRequired;\r\n });\r\n return false;\r\n }\r\n }\r\n let i: number = 0;\r\n do {\r\n const employment: IApplicationEmployment = { name: '', positionId: 0, startDate: undefined, endDate: undefined };\r\n\r\n const fieldsBySection = fieldsGroup.fields.filter(x => x.data.section === i);\r\n fieldsBySection.forEach(field => {\r\n if (field.data.id.substr(0, 'employerNameId'.length) === 'employerNameId') {\r\n employment.name = field.value === null ? null : field.value;\r\n }\r\n if (field.data.id.substr(0, 'employerPositionId'.length) === 'employerPositionId') {\r\n employment.positionId = field.value === '' ? 0 : field.value;\r\n }\r\n if (field.data.id.substr(0, 'employerStartDateId'.length) === 'employerStartDateId') {\r\n employment.startDate = field.value === '' ? null : field.value;\r\n }\r\n if (field.data.id.substr(0, 'employerEndDateId'.length) === 'employerEndDateId') {\r\n employment.endDate = field.value === '' ? null : field.value;\r\n }\r\n });\r\n fieldsBySection.forEach(field => {\r\n if (field.data.id.substr(0, 'employerNameId'.length) === 'employerNameId' &&\r\n employment.positionId > 0) {\r\n field.data.error = false;\r\n field.data.helperText = '';\r\n }\r\n if (field.data.id.substr(0, 'employerPositionId'.length) === 'employerPositionId' &&\r\n employment.name !== '') {\r\n field.data.error = false;\r\n field.data.helperText = '';\r\n }\r\n });\r\n // Duplicated\r\n if (employmentList.find(x => x.name === employment.name &&\r\n x.positionId === employment.positionId &&\r\n x.startDate === employment.startDate &&\r\n x.endDate === employment.endDate)) {\r\n isValid = false;\r\n const fieldsById =\r\n fieldsGroup.fields.filter(x =>\r\n x.data.id.substr(0, 'employmentErrosId'.length) === 'employmentErrosId');\r\n fieldsById.forEach(field => {\r\n field.data.label = fieldsGroup.errorMessageDuplicate;\r\n });\r\n return false;\r\n }\r\n // If start date or end date is entered Position or Name should have a value\r\n if (employment.startDate || employment.endDate) {\r\n if (employment.name === '' &&\r\n (employment.positionId === 0 || employment.positionId === undefined)) {\r\n isValid = false;\r\n const fieldsById =\r\n fieldsGroup.fields.filter(x =>\r\n x.data.id.substr(0, 'employmentErrosId'.length) === 'employmentErrosId');\r\n fieldsById.forEach(field => {\r\n field.data.label = fieldsGroup.errorMessageRequired;\r\n });\r\n return false;\r\n }\r\n if (employment.startDate && employment.endDate) {\r\n // Dates validations\r\n if (moment(employment.startDate).format('YYYY-MM-DD') > moment(employment.endDate).format('YYYY-MM-DD')) {\r\n isValid = false;\r\n const fieldsById =\r\n fieldsGroup.fields.filter(x =>\r\n x.data.id.substr(0, 'employmentErrosId'.length) === 'employmentErrosId');\r\n fieldsById.forEach(field => {\r\n field.data.label = fieldsGroup.errorMessageNotValid;\r\n });\r\n }\r\n else if (employment.startDate < moment(components.dateTimeMin).format('YYYY-MM-DD') ||\r\n employment.endDate > moment(components.dateTimeMax).format('YYYY-MM-DD')) {\r\n isValid = false;\r\n const fieldsById =\r\n fieldsGroup.fields.filter(x =>\r\n x.data.id.substr(0, 'employmentErrosId'.length) === 'employmentErrosId');\r\n fieldsById.forEach(field => {\r\n field.data.label = fieldsGroup.errorMessageRange\r\n + moment(components.dateTimeMin).format('YYYY') + '-' +\r\n + moment(components.dateTimeMax).format('YYYY');\r\n });\r\n }\r\n }\r\n }\r\n if (employment.name !== '' || employment.positionId > 0) {\r\n employmentList.push(employment);\r\n }\r\n i++;\r\n } while (i < components.expansionPanel.employeeCount);\r\n // Employment is required\r\n if (fieldsGroup.isRequired) {\r\n // List is empty so error should be show.\r\n if (employmentList.length === 0) {\r\n isValid = false;\r\n const fieldsById =\r\n fieldsGroup.fields.filter(x =>\r\n x.data.id.substr(0, 'employmentErrosId'.length) === 'employmentErrosId');\r\n fieldsById.forEach(field => {\r\n field.data.label = fieldsGroup.errorMessageRequired;\r\n });\r\n }\r\n }\r\n // Employment is include\r\n else {\r\n // List is not empty\r\n if (employmentList.length > 0) {\r\n // Required fields should be filled\r\n employmentList.forEach(employment => {\r\n if (employment.startDate || employment.endDate) {\r\n if ((employment.name === null || employment.name === '') &&\r\n employment.positionId === 0) {\r\n isValid = false;\r\n }\r\n }\r\n });\r\n }\r\n else {\r\n fieldsGroup.fields.forEach(field => {\r\n field.data.error = false;\r\n field.data.helperText = '';\r\n });\r\n isValid = true;\r\n }\r\n }\r\n if (isValid) {\r\n application.employments = employmentList;\r\n }\r\n this.setState({\r\n application: application\r\n });\r\n }\r\n }\r\n return isValid;\r\n };\r\n\r\n private reviewIpeds = (fieldsGroup: IFieldsGroup): boolean => {\r\n const {\r\n application\r\n } = this.state;\r\n\r\n let isValid = true;\r\n const hispanicAnswer: string = fieldsGroup.fields[2].value;\r\n\r\n if (hispanicAnswer) {\r\n // If question is responded with NO, user must select at least one subrace\r\n if (hispanicAnswer === '0') {\r\n if (application.ipeds) {\r\n const subRaces: IApplicationIpeds[] =\r\n application.ipeds.filter(x => x.ipedsFederalCategoryId !== 1);\r\n if (subRaces.length === 0) {\r\n isValid = false;\r\n const textErrorIndex: number = fieldsGroup.fields.findIndex(x => x.data.id === 'ipedsErrorsId');\r\n fieldsGroup.fields[textErrorIndex].data.label =\r\n fieldsGroup.errorMessageRequired;\r\n }\r\n }\r\n else {\r\n isValid = false;\r\n const textErrorIndex: number = fieldsGroup.fields.findIndex(x => x.data.id === 'ipedsErrorsId');\r\n fieldsGroup.fields[textErrorIndex].data.label =\r\n fieldsGroup.errorMessageRequired;\r\n }\r\n }\r\n }\r\n else {\r\n // If question was not answered and some subraces were selected, user must answer question\r\n if (application.ipeds && application.ipeds.length > 0) {\r\n isValid = false;\r\n const textErrorIndex: number = fieldsGroup.fields.findIndex(x => x.data.id === 'ipedsErrorsId');\r\n fieldsGroup.fields[textErrorIndex].data.label =\r\n fieldsGroup.errorMessageNotValid;\r\n }\r\n }\r\n // Save ipeds if them were saved\r\n application.ipeds = undefined;\r\n this.setIpedsValuesCheckList(fieldsGroup);\r\n this.setIpedsValuesNestedCheckList(fieldsGroup);\r\n\r\n return isValid;\r\n };\r\n\r\n private reviewPhoneGroup = (fieldsGroup: IFieldsGroup): boolean => {\r\n const {\r\n application,\r\n components\r\n } = this.state;\r\n\r\n if (components && components.expansionPanel.phoneCount === undefined) {\r\n components.expansionPanel.phoneCount = 0;\r\n }\r\n\r\n if (components && components.expansionPanel.phoneCount !== undefined && components.expansionPanel.phoneCount > -1) {\r\n const phoneList: IApplicationPhoneList[] = [];\r\n\r\n const phone: IApplicationPhoneList = { type: '', countryId: 0, number: '', isPrimary: false };\r\n const phoneTypeField = fieldsGroup.fields.findIndex(x => x.data.id === 'phoneTypeId');\r\n if (phoneTypeField > -1) {\r\n phone.type = fieldsGroup.fields[phoneTypeField].value;\r\n }\r\n const phoneCountryField = fieldsGroup.fields.findIndex(x => x.data.id === 'phoneCountryId');\r\n if (phoneCountryField > -1) {\r\n phone.countryId = fieldsGroup.fields[phoneCountryField].value;\r\n }\r\n const phoneNumberField = fieldsGroup.fields.findIndex(x => x.data.id === 'phoneNumberId');\r\n if (phoneNumberField > -1) {\r\n phone.number = fieldsGroup.fields[phoneNumberField].value;\r\n }\r\n const primaryPhoneField = fieldsGroup.fields.findIndex(x => x.data.id === 'primaryPhoneId');\r\n if (primaryPhoneField > -1) {\r\n phone.isPrimary = fieldsGroup.fields[primaryPhoneField].value === '1' ? true : false;\r\n }\r\n\r\n // Set values\r\n phone.type = phone.type === null ? '' : phone.type;\r\n phone.countryId = phone.countryId === 0 ? 0 : phone.countryId;\r\n phone.number = phone.number === null ? '' : phone.number;\r\n phone.isPrimary = phone.isPrimary === null ? false : phone.isPrimary;\r\n\r\n // Add phone to list\r\n if (phone.type !== '' && phone.countryId !== 0 && phone.number !== '') {\r\n phoneList.push(phone);\r\n }\r\n\r\n let i: number = 0;\r\n do {\r\n const phoneItem: IApplicationPhoneList = { type: '', countryId: 0, number: '', isPrimary: false };\r\n\r\n const fieldsBySection = fieldsGroup.fields.filter(x => x.data.section === i);\r\n fieldsBySection.forEach(field => {\r\n if (field.data.id.substr(0, 'phoneTypeId'.length) === 'phoneTypeId') {\r\n phoneItem.type = field.value;\r\n }\r\n if (field.data.id.substr(0, 'phoneCountryId'.length) === 'phoneCountryId') {\r\n phoneItem.countryId = field.value;\r\n }\r\n if (field.data.id.substr(0, 'phoneNumberId'.length) === 'phoneNumberId') {\r\n phoneItem.number = field.value;\r\n }\r\n if (field.data.id.substr(0, 'primaryPhoneId'.length) === 'primaryPhoneId') {\r\n phoneItem.isPrimary = field.value === '1' ? true : false;\r\n }\r\n });\r\n // Duplicated\r\n if (phoneList.find(x => x.type === phoneItem.type &&\r\n x.countryId === phoneItem.countryId && x.number === phoneItem.number)) {\r\n const fieldsById =\r\n fieldsGroup.fields.filter(x =>\r\n x.data.id.substr(0, 'phoneErrorsId'.length) === 'phoneErrorsId');\r\n fieldsById.forEach(field => {\r\n field.data.label = fieldsGroup.errorMessageDuplicate;\r\n });\r\n return false;\r\n }\r\n // Set values\r\n phoneItem.type = phoneItem.type === null ? '' : phoneItem.type;\r\n phoneItem.countryId = phoneItem.countryId === 0 ? 0 : phoneItem.countryId;\r\n phoneItem.number = phoneItem.number === null ? '' : phoneItem.number;\r\n phoneItem.isPrimary = phoneItem.isPrimary === null ? false : phoneItem.isPrimary;\r\n\r\n // Add phone to list\r\n if (phoneItem.type !== '' && phoneItem.countryId !== 0 && phoneItem.number !== '') {\r\n phoneList.push(phoneItem);\r\n }\r\n i++;\r\n } while (i < components.expansionPanel.phoneCount);\r\n\r\n application.phones = phoneList;\r\n\r\n this.setState({\r\n application\r\n });\r\n\r\n return true;\r\n }\r\n else {\r\n return true;\r\n }\r\n };\r\n\r\n private reviewPrograms = (fieldsGroup: IFieldsGroup): boolean => {\r\n const {\r\n application,\r\n components\r\n } = this.state;\r\n\r\n let isValid = true;\r\n\r\n if (components && components.expansionPanel.programsCount === undefined) {\r\n components.expansionPanel.programsCount = 0;\r\n }\r\n\r\n if (components && components.expansionPanel.programsCount !== undefined && components.expansionPanel.programsCount > -1) {\r\n const programList: IApplicationProgram[] = [];\r\n const program: IApplicationProgram = { programId: 0 };\r\n if (fieldsGroup && fieldsGroup.fields && fieldsGroup.fields.length > 0) {\r\n let exist: boolean = false;\r\n const field = fieldsGroup.fields.find(x => x.data.id === 'programOfStudydId');\r\n if (field && field.data && field.data.options && field.data.options.length > 0) {\r\n field.data.options.forEach(option => {\r\n if (Number(option.value) === Number(field.value)) {\r\n exist = true;\r\n }\r\n });\r\n if (exist) {\r\n program.programId = field.value;\r\n }\r\n else {\r\n isValid = false;\r\n }\r\n }\r\n }\r\n if (isValid) {\r\n const commintmentField = fieldsGroup.fields.findIndex(x => x.data.id === 'commitmentId');\r\n if (commintmentField > -1) {\r\n program.commitmentId = fieldsGroup.fields[commintmentField].value;\r\n }\r\n if (program.programId > 0) {\r\n programList.push(program);\r\n }\r\n let i: number = 0;\r\n do {\r\n const program: IApplicationProgram = { programId: 0 };\r\n\r\n const fieldsBySection = fieldsGroup.fields.filter(x => x.data.section === i);\r\n fieldsBySection.forEach(field => {\r\n if (field.data.id.substr(0, 'programOfStudydId'.length) === 'programOfStudydId') {\r\n program.programId = field.value;\r\n }\r\n if (field.data.id.substr(0, 'commitmentId'.length) === 'commitmentId') {\r\n program.commitmentId = field.value;\r\n }\r\n });\r\n if (programList.find(x => x.programId === program.programId)) {\r\n isValid = false;\r\n const textErrorIndex: number = fieldsGroup.fields.findIndex(x => x.data.id === 'programOfStudydErrorsId');\r\n fieldsGroup.fields[textErrorIndex].data.label =\r\n fieldsGroup.errorMessageDuplicate;\r\n }\r\n if (programList.find(x => x.programId ===\r\n program.programId && x.commitmentId === program.commitmentId)) {\r\n isValid = false;\r\n const textErrorIndex: number = fieldsGroup.fields.findIndex(x => x.data.id === 'programOfStudydErrorsId');\r\n fieldsGroup.fields[textErrorIndex].data.label =\r\n fieldsGroup.errorMessageRequired;\r\n }\r\n else if (program.programId > 0) {\r\n programList.push(program);\r\n }\r\n i++;\r\n } while (i < components.expansionPanel.programsCount);\r\n\r\n if (isValid) {\r\n application.programs = programList;\r\n }\r\n\r\n this.setState({\r\n application\r\n });\r\n }\r\n }\r\n return isValid;\r\n };\r\n\r\n private reviewRelatives = (fieldsGroup: IFieldsGroup): boolean => {\r\n const {\r\n application,\r\n components\r\n } = this.state;\r\n\r\n let isValid: boolean = true;\r\n\r\n if (components && components.expansionPanel.relativesCount === undefined) {\r\n components.expansionPanel.relativesCount = 0;\r\n }\r\n\r\n if (components && components.expansionPanel.relativesCount !== undefined && components.expansionPanel.relativesCount > -1) {\r\n const relativeList: IApplicationRelative[] = [];\r\n let relative: IApplicationRelative = {\r\n attendedInstitution: false,\r\n relationFirstName: '',\r\n relationLastName: '',\r\n relationType: 0\r\n };\r\n relative = this.setApplicationRelative(fieldsGroup, relative);\r\n relative = this.setApplicationRelativeValues(relative);\r\n\r\n if (relative.relationFirstName || relative.relationLastName || relative.relationType > 0 ||\r\n relative.attendedInstitution) {\r\n relativeList.push(relative);\r\n }\r\n else if (relative.relationPrefix || relative.relationSuffix || relative.relationMiddleName ||\r\n relative.relationLastNamePrefix) {\r\n relativeList.push(relative);\r\n }\r\n\r\n let i: number = 0;\r\n do {\r\n let relative: IApplicationRelative = {\r\n attendedInstitution: false,\r\n relationFirstName: '',\r\n relationLastName: '',\r\n relationType: 0\r\n };\r\n\r\n relative = this.setApplicationRelativeAdditional(fieldsGroup, i, relative);\r\n relative = this.setApplicationRelativeValues(relative);\r\n\r\n // Duplicated\r\n if (relative.relationFirstName && relative.relationLastName && relative.relationType) {\r\n if (relativeList.find(x => x.relationFirstName === relative.relationFirstName &&\r\n x.relationLastName === relative.relationLastName &&\r\n x.relationType === relative.relationType)) {\r\n const fieldsById =\r\n fieldsGroup.fields.filter(x =>\r\n x.data.id.substr(0, 'relativesErrosId'.length) === 'relativesErrosId' &&\r\n x.data.section === i);\r\n fieldsById.forEach(field => {\r\n field.data.label = fieldsGroup.errorMessageDuplicate;\r\n field.data.error = true;\r\n });\r\n return false;\r\n }\r\n }\r\n if (relative.relationFirstName || relative.relationLastName || relative.relationType > 0 ||\r\n relative.attendedInstitution) {\r\n relativeList.push(relative);\r\n }\r\n else if (relative.relationPrefix || relative.relationSuffix || relative.relationMiddleName ||\r\n relative.relationLastNamePrefix) {\r\n relativeList.push(relative);\r\n }\r\n i++;\r\n } while (i < components.expansionPanel.relativesCount);\r\n\r\n // Relatives is required\r\n if (fieldsGroup.isRequired) {\r\n // List is no empty so no error should be show.\r\n if (relativeList.length > 0) {\r\n const fieldsById =\r\n fieldsGroup.fields.filter(x =>\r\n x.data.id === 'relativesErrosId');\r\n fieldsById.forEach(field => {\r\n field.data.error = false;\r\n field.data.label = '';\r\n });\r\n isValid = true;\r\n }\r\n // List is empty so error should be show.\r\n if (relativeList.length === 0) {\r\n isValid = false;\r\n const fieldsById =\r\n fieldsGroup.fields.filter(x =>\r\n x.data.id === 'relativesErrosId');\r\n fieldsById.forEach(field => {\r\n field.data.error = true;\r\n field.data.label = fieldsGroup.errorMessageRequired;\r\n });\r\n }\r\n }\r\n else {\r\n if (relativeList.length === 0) {\r\n fieldsGroup.fields.forEach(field => {\r\n field.data.error = false;\r\n field.data.helperText = '';\r\n });\r\n isValid = true;\r\n }\r\n }\r\n if (isValid) {\r\n application.relatives = relativeList;\r\n\r\n this.setState({\r\n application: application\r\n });\r\n }\r\n }\r\n return isValid;\r\n };\r\n\r\n private reviewResidency = (fieldsGroup: IFieldsGroup): boolean => {\r\n const {\r\n application\r\n } = this.state;\r\n\r\n let isValid: boolean = true;\r\n const residencyList: IApplicationResidency[] = [];\r\n let residency: IApplicationResidency = {};\r\n residency = this.setApplicationResidency(fieldsGroup, residency);\r\n\r\n if (residency.residencyPreference !== null ||\r\n residency.foodPlanInterest !== null ||\r\n residency.dormPlanInterest !== null ||\r\n residency.dormCampus !== null ||\r\n residency.dormBuilding !== null) {\r\n residencyList.push(residency);\r\n }\r\n\r\n // Residency is required\r\n if (fieldsGroup.isRequired) {\r\n // List is no empty so no error should be show.\r\n if (residencyList.length > 0) {\r\n const fieldsById =\r\n fieldsGroup.fields.filter(x =>\r\n x.data.id === 'relativesErrosId');\r\n fieldsById.forEach(field => {\r\n field.data.error = false;\r\n field.data.label = '';\r\n });\r\n isValid = true;\r\n }\r\n // List is empty so error should be show.\r\n if (residencyList.length === 0) {\r\n isValid = false;\r\n const fieldsById =\r\n fieldsGroup.fields.filter(x =>\r\n x.data.id === 'residencyErrosId');\r\n fieldsById.forEach(field => {\r\n field.data.error = true;\r\n field.data.label = fieldsGroup.errorMessageRequired;\r\n });\r\n }\r\n }\r\n // Residency is include\r\n else {\r\n // List is empty so no error should be show\r\n if (residencyList.length === 0) {\r\n fieldsGroup.fields.forEach(field => {\r\n field.data.error = false;\r\n field.data.helperText = '';\r\n });\r\n isValid = true;\r\n }\r\n }\r\n if (isValid) {\r\n if (residencyList.length > 0) {\r\n if (residencyList[0].residencyPreference && residencyList[0].residencyPreference > 0) {\r\n application.residencyPreference = residencyList[0].residencyPreference;\r\n }\r\n if (residencyList[0].foodPlanInterest) {\r\n application.foodPlanInterest = residencyList[0].foodPlanInterest;\r\n }\r\n if (residencyList[0].dormPlanInterest) {\r\n application.dormPlanInterest = residencyList[0].dormPlanInterest;\r\n }\r\n if (residencyList[0].dormCampus && residencyList[0].dormCampus > 0) {\r\n application.dormCampus = residencyList[0].dormCampus;\r\n }\r\n if (residencyList[0].dormBuilding && residencyList[0].dormBuilding > 0) {\r\n application.dormBuilding = residencyList[0].dormBuilding;\r\n }\r\n }\r\n this.setState({\r\n application: application\r\n });\r\n }\r\n return isValid;\r\n };\r\n\r\n private reviewTestScoreCompleteness = (groupedControls: any): boolean => {\r\n let validCompleteness: boolean = true;\r\n // this is meant to iterate over all controls grouped by section\r\n for (const keyIndex of Object.keys(groupedControls)) {\r\n const scoreA: IFieldForm[] = groupedControls[Number(keyIndex)];\r\n\r\n const fieldsPopulated: boolean = scoreA.every(f => f.value && f.value !== '');\r\n const fieldsEmpty: boolean = scoreA.every(f => !f.value || f.value === '');\r\n\r\n if (!fieldsPopulated && !fieldsEmpty) {\r\n scoreA.forEach(field => {\r\n if (field.value && field.value !== '') {\r\n field.data.error = false;\r\n } else {\r\n field.data.error = true;\r\n validCompleteness = false;\r\n }\r\n });\r\n }\r\n }\r\n return validCompleteness;\r\n };\r\n\r\n private reviewTestScores = (groupedControls: any): boolean => {\r\n // this is meant to iterate over all controls grouped by section\r\n for (let i: number = 0; i < Object.keys(groupedControls).length; i++) {\r\n const scoreA: any = groupedControls[Number(Object.keys(groupedControls)[i])];\r\n for (let j: number = 0; j < Object.keys(groupedControls).length; j++) {\r\n if (i !== j) {\r\n let identical: boolean = true;\r\n const scoreB: any = groupedControls[Number(Object.keys(groupedControls)[j])];\r\n for (let k: number = 0; k < scoreA.length; k++) {\r\n const fieldA: IFieldForm = scoreA[k];\r\n const fieldB: IFieldForm = scoreB[k];\r\n if (fieldA.data.id !== fieldB.data.id) {\r\n if ((fieldA.value || '') !== (fieldB.value || '')) {\r\n identical = false;\r\n }\r\n }\r\n }\r\n if (identical) {\r\n return false;\r\n }\r\n }\r\n }\r\n }\r\n return true;\r\n };\r\n\r\n private reviewUserDefined = (fieldsGroup: IFieldsGroup): boolean => {\r\n const {\r\n application\r\n } = this.state;\r\n\r\n let isValid: boolean = true;\r\n fieldsGroup.fields.forEach(field => {\r\n if (field.isUserDefined) {\r\n // validate length of field\r\n const userDefined: IApplicationUserDefined = {\r\n columnLabel: '',\r\n columnName: '',\r\n columnType: 0,\r\n columnValue: '',\r\n isUploading: false\r\n };\r\n if (field.value) {\r\n if (field.maxLength && field.value.toString().length <= field.maxLength) {\r\n field.data.error = false;\r\n field.data.helperText = '';\r\n isValid = true;\r\n\r\n userDefined.columnLabel = field.data.label ? field.data.label : '';\r\n userDefined.columnName = field.data.id;\r\n if (field.dataType === 'nvarchar') {\r\n userDefined.columnType = 1;\r\n }\r\n if (field.dataType === 'date') {\r\n userDefined.columnType = 2;\r\n }\r\n if (field.dataType === 'time') {\r\n userDefined.columnType = 3;\r\n }\r\n userDefined.columnValue = field.value;\r\n userDefined.isUploading = field.isUploading ? field.isUploading : false;\r\n let userDefinedIndex: number = -1;\r\n userDefinedIndex =\r\n application.userDefined.findIndex(x => x.columnName === userDefined.columnName);\r\n if (userDefinedIndex > -1) {\r\n application.userDefined.splice(userDefinedIndex, 1);\r\n }\r\n application.userDefined.push(userDefined);\r\n }\r\n else {\r\n field.data.error = true;\r\n field.data.helperText = field.data.errorMessageRange;\r\n isValid = false;\r\n }\r\n }\r\n else {\r\n if (field.isRequired) {\r\n field.data.error = true;\r\n field.data.helperText = field.data.errorMessageRequired;\r\n isValid = false;\r\n }\r\n }\r\n }\r\n });\r\n return isValid;\r\n };\r\n\r\n private reviewCampus = (fieldsGroup: IFieldsGroup): void => {\r\n const {\r\n application\r\n } = this.state;\r\n\r\n const campusIndex = fieldsGroup.fields.findIndex(x => x.data.id === 'campusId');\r\n if (fieldsGroup.fields[campusIndex].componentType === 'CheckboxList') {\r\n application.campuses = undefined;\r\n if (campusIndex > -1) {\r\n const campusList = fieldsGroup.fields[campusIndex].value;\r\n if (campusList) {\r\n const array = Object.values(campusList.split(','));\r\n array.forEach(campus => {\r\n if (application.campuses) {\r\n let findCampus: number = -1;\r\n findCampus = application.campuses.findIndex(x => x === Number(campus));\r\n if (findCampus === -1) {\r\n application.campuses.push(\r\n Number(campus)\r\n );\r\n }\r\n }\r\n else {\r\n application.campuses = [\r\n Number(campus)\r\n ];\r\n }\r\n });\r\n }\r\n }\r\n }\r\n else if (application.campuses) {\r\n application.campuses = [Number(application.campuses)];\r\n }\r\n else {\r\n application.campuses = undefined;\r\n }\r\n };\r\n\r\n private reviewAcademicInterest = (fieldsGroup: IFieldsGroup): void => {\r\n const {\r\n application\r\n } = this.state;\r\n\r\n const interestIndex = fieldsGroup.fields.findIndex(x => x.data.id === 'interestId');\r\n application.academicInterests = undefined;\r\n if (interestIndex > -1) {\r\n const interestList = fieldsGroup.fields[interestIndex].value;\r\n if (interestList) {\r\n const array = Object.values(interestList.split(','));\r\n array.forEach(interest => {\r\n if (application.academicInterests) {\r\n let findInterest: number = -1;\r\n findInterest = application.academicInterests.findIndex(x => x === Number(interest));\r\n if (findInterest === -1) {\r\n application.academicInterests.push(\r\n Number(interest)\r\n );\r\n }\r\n }\r\n else {\r\n application.academicInterests = [\r\n Number(interest)\r\n ];\r\n }\r\n });\r\n }\r\n }\r\n };\r\n // #endregion Review Information\r\n\r\n // #region Set Values for Collections\r\n private setApplicationActivitiesAdditional = (fieldsGroup: any, sectionNumber: number, activityItem: IApplicationActivity):\r\n IApplicationActivity => {\r\n const fieldsBySection = fieldsGroup.fields.filter(x => x.data.section === sectionNumber);\r\n fieldsBySection.forEach(field => {\r\n if (field.data.id.substr(0, 'activityTypeId'.length) === 'activityTypeId') {\r\n activityItem.activityType = field.value;\r\n }\r\n if (field.data.id.substr(0, 'activityId'.length) === 'activityId') {\r\n activityItem.activity = field.value;\r\n }\r\n if (field.data.id.substr(0, 'positionHeldId'.length) === 'positionHeldId') {\r\n activityItem.position = field.value;\r\n }\r\n if (field.data.id.substr(0, 'numberOfHoursPerWeekId'.length) === 'numberOfHoursPerWeekId') {\r\n activityItem.hoursPerWeek = field.value;\r\n }\r\n if (field.data.id.substr(0, 'numberOfWeeksPerYearId'.length) === 'numberOfWeeksPerYearId') {\r\n activityItem.weeksPerYear = field.value;\r\n }\r\n if (field.data.id.substr(0, 'numberOfYearsId'.length) === 'numberOfYearsId') {\r\n activityItem.numberOfYears = field.value;\r\n }\r\n if (field.data.id.substr(0, 'participated9Id'.length) === 'participated9Id') {\r\n activityItem.participatedGrade09 = Boolean(field.value);\r\n }\r\n if (field.data.id.substr(0, 'participated10Id'.length) === 'participated10Id') {\r\n activityItem.participatedGrade10 = Boolean(field.value);\r\n }\r\n if (field.data.id.substr(0, 'participated11Id'.length) === 'participated11Id') {\r\n activityItem.participatedGrade11 = Boolean(field.value);\r\n }\r\n if (field.data.id.substr(0, 'participated12Id'.length) === 'participated12Id') {\r\n activityItem.participatedGrade12 = Boolean(field.value);\r\n }\r\n if (field.data.id.substr(0, 'participatedPostSecondaryId'.length) === 'participatedPostSecondaryId') {\r\n activityItem.participatedPostsecondary = Boolean(field.value);\r\n }\r\n });\r\n return activityItem;\r\n };\r\n\r\n private setApplicationAddress = (fieldsGroup: any, address: IApplicationAddress):\r\n IApplicationAddress => {\r\n const addressTypefield = fieldsGroup.fields.findIndex(x => x.data.id === 'addressTypeId');\r\n if (addressTypefield > -1) {\r\n address.type = fieldsGroup.fields[addressTypefield].value;\r\n }\r\n const houseNumberField = fieldsGroup.fields.findIndex(x => x.data.id === 'houseNumberId');\r\n if (houseNumberField > -1) {\r\n address.houseNumber = fieldsGroup.fields[houseNumberField].value;\r\n }\r\n const addressLine1Field = fieldsGroup.fields.findIndex(x => x.data.id === 'addressLine1Id');\r\n if (addressLine1Field > -1) {\r\n address.line1 = fieldsGroup.fields[addressLine1Field].value;\r\n }\r\n const addressLine2Field = fieldsGroup.fields.findIndex(x => x.data.id === 'addressLine2Id');\r\n if (addressLine2Field > -1) {\r\n address.line2 = fieldsGroup.fields[addressLine2Field].value;\r\n }\r\n const addressLine3Field = fieldsGroup.fields.findIndex(x => x.data.id === 'addressLine3Id');\r\n if (addressLine3Field > -1) {\r\n address.line3 = fieldsGroup.fields[addressLine3Field].value;\r\n }\r\n const addressLine4Field = fieldsGroup.fields.findIndex(x => x.data.id === 'addressLine4Id');\r\n if (addressLine4Field > -1) {\r\n address.line4 = fieldsGroup.fields[addressLine4Field].value;\r\n }\r\n const addressCityField = fieldsGroup.fields.findIndex(x => x.data.id === 'addressCityId');\r\n if (addressCityField > -1) {\r\n address.city = fieldsGroup.fields[addressCityField].value;\r\n }\r\n const stateProvinceField = fieldsGroup.fields.findIndex(x => x.data.id === 'stateProvinceId');\r\n if (stateProvinceField > -1) {\r\n address.stateProvince = fieldsGroup.fields[stateProvinceField].value;\r\n }\r\n const postalCodeField = fieldsGroup.fields.findIndex(x => x.data.id === 'postalCodeId');\r\n if (postalCodeField > -1) {\r\n address.postalCode = fieldsGroup.fields[postalCodeField].value;\r\n }\r\n const countyIdField = fieldsGroup.fields.findIndex(x => x.data.id === 'addressCountyId');\r\n if (countyIdField > -1) {\r\n address.county = fieldsGroup.fields[countyIdField].value;\r\n }\r\n const addressCountryField = fieldsGroup.fields.findIndex(x => x.data.id === 'addressCountryId');\r\n if (addressCountryField > -1) {\r\n address.country = fieldsGroup.fields[addressCountryField].value;\r\n }\r\n return address;\r\n };\r\n\r\n private setApplicationAddressValues = (address: IApplicationAddress): IApplicationAddress => {\r\n address.type = address.type || 0;\r\n address.line1 = address.line1 || '';\r\n address.city = address.city || '';\r\n address.country = address.country || 0;\r\n\r\n address.line2 = address.line2 || '';\r\n address.line3 = address.line3 || '';\r\n address.line4 = address.line4 || '';\r\n address.city = address.city || '';\r\n address.stateProvince = address.stateProvince || 0;\r\n address.postalCode = address.postalCode || '';\r\n address.county = address.county || 0;\r\n\r\n return address;\r\n };\r\n\r\n private setApplicationAddressAdditional =\r\n (fieldsGroup: any, sectionNumber: number, address: IApplicationAddress): IApplicationAddress => {\r\n const fieldsBySection = fieldsGroup.fields.filter(x => x.data.section === sectionNumber);\r\n fieldsBySection.forEach(field => {\r\n if (field.data.id.substr(0, 'addressTypeId'.length) === 'addressTypeId') {\r\n address.type = field.value;\r\n }\r\n if (field.data.id.substr(0, 'houseNumberId'.length) === 'houseNumberId') {\r\n address.houseNumber = field.value;\r\n }\r\n if (field.data.id.substr(0, 'addressLine1Id'.length) === 'addressLine1Id') {\r\n address.line1 = field.value;\r\n }\r\n if (field.data.id.substr(0, 'addressLine2Id'.length) === 'addressLine2Id') {\r\n address.line2 = field.value;\r\n }\r\n if (field.data.id.substr(0, 'addressLine3Id'.length) === 'addressLine3Id') {\r\n address.line3 = field.value;\r\n }\r\n if (field.data.id.substr(0, 'addressLine4Id'.length) === 'addressLine4Id') {\r\n address.line4 = field.value;\r\n }\r\n if (field.data.id.substr(0, 'addressCityId'.length) === 'addressCityId') {\r\n address.city = field.value;\r\n }\r\n if (field.data.id.substr(0, 'stateProvinceId'.length) === 'stateProvinceId') {\r\n address.stateProvince = field.value;\r\n }\r\n if (field.data.id.substr(0, 'postalCodeId'.length) === 'postalCodeId') {\r\n address.postalCode = field.value;\r\n }\r\n if (field.data.id.substr(0, 'addressCountyId'.length) === 'addressCountyId') {\r\n address.county = field.value;\r\n }\r\n if (field.data.id.substr(0, 'addressCountryId'.length) === 'addressCountryId') {\r\n address.country = field.value;\r\n }\r\n });\r\n return address;\r\n };\r\n\r\n private setApplicationEducation = (fieldsGroup: any, education: IApplicationEducation): IApplicationEducation => {\r\n const degreefield = fieldsGroup.fields.findIndex(x => x.data.id === 'educationDegreeId');\r\n if (degreefield > -1) {\r\n education.enrollment.degreeId = fieldsGroup.fields[degreefield].value;\r\n }\r\n const curriculumField = fieldsGroup.fields.findIndex(x => x.data.id === 'educationCurriculumId');\r\n if (curriculumField > -1) {\r\n education.enrollment.curriculumId = fieldsGroup.fields[curriculumField].value;\r\n }\r\n const honorsField = fieldsGroup.fields.findIndex(x => x.data.id === 'educationHonorsId');\r\n if (honorsField > -1) {\r\n education.enrollment.honorsId = fieldsGroup.fields[honorsField].value;\r\n }\r\n const startDateField = fieldsGroup.fields.findIndex(x => x.data.id === 'educationStartDateId');\r\n if (startDateField > -1) {\r\n education.enrollment.startDate = fieldsGroup.fields[startDateField].value;\r\n }\r\n const endDateField = fieldsGroup.fields.findIndex(x => x.data.id === 'educationEndDateId');\r\n if (endDateField > -1) {\r\n education.enrollment.endDate = fieldsGroup.fields[endDateField].value;\r\n }\r\n const institutionField = fieldsGroup.fields.findIndex(x => x.data.id === 'educationInstitutionName');\r\n if (institutionField > -1) {\r\n education.institution.name = fieldsGroup.fields[institutionField].value;\r\n }\r\n const etsCodeField = fieldsGroup.fields.findIndex(x => x.data.id === 'educationEtsCodeId');\r\n if (etsCodeField > -1) {\r\n education.institution.etsCode = fieldsGroup.fields[etsCodeField].value;\r\n }\r\n const cityField = fieldsGroup.fields.findIndex(x => x.data.id === 'educationCityId');\r\n if (cityField > -1) {\r\n education.institution.city = fieldsGroup.fields[cityField].value;\r\n }\r\n const stateField = fieldsGroup.fields.findIndex(x => x.data.id === 'educationStateId');\r\n if (stateField > -1) {\r\n education.institution.stateProvinceId = fieldsGroup.fields[stateField].value;\r\n }\r\n const countryField = fieldsGroup.fields.findIndex(x => x.data.id === 'educationCountryId');\r\n if (countryField > -1) {\r\n education.institution.countryId = fieldsGroup.fields[countryField].value;\r\n }\r\n const ficeCodeField = fieldsGroup.fields.findIndex(x => x.data.id === 'educationFiceCode');\r\n if (ficeCodeField > -1) {\r\n education.institution.ficeCode = fieldsGroup.fields[ficeCodeField].value;\r\n }\r\n return education;\r\n };\r\n\r\n private setApplicationRelativeAdditional =\r\n (fieldsGroup: any, sectionNumber: number, relativeItem: IApplicationRelative): IApplicationRelative => {\r\n const fieldsBySection = fieldsGroup.fields.filter(x => x.data.section === sectionNumber);\r\n fieldsBySection.forEach(field => {\r\n if (field.data.id.substr(0, 'relativesPrefixId'.length) === 'relativesPrefixId') {\r\n relativeItem.relationPrefix = field.value === '' ? null : field.value;\r\n }\r\n if (field.data.id.substr(0, 'relativesFirstNameId'.length) === 'relativesFirstNameId') {\r\n relativeItem.relationFirstName = field.value;\r\n }\r\n if (field.data.id.substr(0, 'relativesMiddleNameId'.length) === 'relativesMiddleNameId') {\r\n relativeItem.relationMiddleName = field.value;\r\n }\r\n if (field.data.id.substr(0, 'relativesLastNamePrefixId'.length) === 'relativesLastNamePrefixId') {\r\n relativeItem.relationLastNamePrefix = field.value;\r\n }\r\n if (field.data.id.substr(0, 'relativesLastNameId'.length) === 'relativesLastNameId') {\r\n relativeItem.relationLastName = field.value;\r\n }\r\n if (field.data.id.substr(0, 'relativesSuffixId'.length) === 'relativesSuffixId') {\r\n relativeItem.relationSuffix = field.value === '' ? null : field.value;\r\n }\r\n if (field.data.id.substr(0, 'relativesRelationshipId'.length) === 'relativesRelationshipId') {\r\n relativeItem.relationType = field.value;\r\n }\r\n if (field.data.id.substr(0, 'relativesAttendedInstitutionId'.length) === 'relativesAttendedInstitutionId') {\r\n relativeItem.attendedInstitution = Boolean(field.value);\r\n }\r\n });\r\n return relativeItem;\r\n };\r\n\r\n private setApplicationEducationValues = (education: IApplicationEducation): IApplicationEducation => {\r\n education.institution.city = education.institution.city || '';\r\n education.enrollment.curriculumId = education.enrollment.curriculumId || 0;\r\n education.enrollment.degreeId = education.enrollment.degreeId || 0;\r\n education.enrollment.honorsId = education.enrollment.honorsId || 0;\r\n education.enrollment.startDate = education.enrollment.startDate || undefined;\r\n education.enrollment.endDate = education.enrollment.endDate || undefined;\r\n education.institution.id = education.institution.id || 0;\r\n education.institution.name = education.institution.name || '';\r\n education.institution.etsCode = education.institution.etsCode || '';\r\n education.institution.city = education.institution.city || '';\r\n education.institution.stateProvinceId = education.institution.stateProvinceId || 0;\r\n education.institution.countryId = education.institution.countryId || 0;\r\n education.institution.ficeCode = education.institution.ficeCode || '';\r\n return education;\r\n };\r\n\r\n private setApplicationEducationAdditional = (fieldsGroup: any, sectionNumber: number, education: IApplicationEducation):\r\n IApplicationEducation => {\r\n const fieldsBySection = fieldsGroup.fields.filter(x => x.data.section === sectionNumber);\r\n fieldsBySection.forEach(field => {\r\n if (field.data.id.substr(0, 'educationDegreeId'.length) === 'educationDegreeId') {\r\n education.enrollment.degreeId = field.value;\r\n }\r\n if (field.data.id.substr(0, 'educationCurriculumId'.length) === 'educationCurriculumId') {\r\n education.enrollment.curriculumId = field.value;\r\n }\r\n if (field.data.id.substr(0, 'educationHonorsId'.length) === 'educationHonorsId') {\r\n education.enrollment.honorsId = field.value;\r\n }\r\n if (field.data.id.substr(0, 'educationStartDateId'.length) === 'educationStartDateId') {\r\n education.enrollment.startDate = field.value;\r\n }\r\n if (field.data.id.substr(0, 'educationEndDateId'.length) === 'educationEndDateId') {\r\n education.enrollment.endDate = field.value;\r\n }\r\n if (field.data.id.substr(0, 'educationInstitutionName'.length) === 'educationInstitutionName') {\r\n education.institution.name = field.value;\r\n }\r\n if (field.data.id.substr(0, 'educationEtsCodeId'.length) === 'educationEtsCodeId') {\r\n education.institution.etsCode = field.value;\r\n }\r\n if (field.data.id.substr(0, 'educationCityId'.length) === 'educationCityId') {\r\n education.institution.city = field.value;\r\n }\r\n if (field.data.id.substr(0, 'educationStateId'.length) === 'educationStateId') {\r\n education.institution.stateProvinceId = field.value;\r\n }\r\n if (field.data.id.substr(0, 'educationCountryId'.length) === 'educationCountryId') {\r\n education.institution.countryId = field.value;\r\n }\r\n if (field.data.id.substr(0, 'educationFiceCode'.length) === 'educationFiceCode') {\r\n education.institution.ficeCode = field.value;\r\n }\r\n });\r\n return education;\r\n };\r\n\r\n private setApplicationResidency = (fieldsGroup: any, residency: IApplicationResidency): IApplicationResidency => {\r\n const residencyPreferenceField = fieldsGroup.fields.findIndex(x => x.data.id === 'commutePreferenceId');\r\n if (residencyPreferenceField > -1) {\r\n residency.residencyPreference = fieldsGroup.fields[residencyPreferenceField].value;\r\n }\r\n const foodPlanInterestField = fieldsGroup.fields.findIndex(x => x.data.id === 'interestedFoodPlanId');\r\n if (foodPlanInterestField > -1) {\r\n residency.foodPlanInterest = fieldsGroup.fields[foodPlanInterestField].value;\r\n }\r\n const dormPlanInterestField = fieldsGroup.fields.findIndex(x => x.data.id === 'interestedDormPlanId');\r\n if (dormPlanInterestField > -1) {\r\n residency.dormPlanInterest = fieldsGroup.fields[dormPlanInterestField].value;\r\n }\r\n const dormCampusField = fieldsGroup.fields.findIndex(x => x.data.id === 'campusOptionsId');\r\n if (dormCampusField > -1) {\r\n residency.dormCampus = fieldsGroup.fields[dormCampusField].value;\r\n }\r\n const dormBuildingField = fieldsGroup.fields.findIndex(x => x.data.id === 'dormPlanOptionsId');\r\n if (dormBuildingField > -1) {\r\n residency.dormBuilding = fieldsGroup.fields[dormBuildingField].value;\r\n }\r\n return residency;\r\n };\r\n\r\n private setApplicationRelative = (fieldsGroup: any, relative: IApplicationRelative): IApplicationRelative => {\r\n const prefixField = fieldsGroup.fields.findIndex(x => x.data.id === 'relativesPrefixId');\r\n if (prefixField > -1) {\r\n relative.relationPrefix = fieldsGroup.fields[prefixField].value === '' ? null : fieldsGroup.fields[prefixField].value;\r\n }\r\n const firstNameField = fieldsGroup.fields.findIndex(x => x.data.id === 'relativesFirstNameId');\r\n if (firstNameField > -1) {\r\n relative.relationFirstName = fieldsGroup.fields[firstNameField].value;\r\n }\r\n const middleNameField = fieldsGroup.fields.findIndex(x => x.data.id === 'relativesMiddleNameId');\r\n if (middleNameField > -1) {\r\n relative.relationMiddleName = fieldsGroup.fields[middleNameField].value;\r\n }\r\n const lastNamePrefixField = fieldsGroup.fields.findIndex(x => x.data.id === 'relativesLastNamePrefixId');\r\n if (lastNamePrefixField > -1) {\r\n relative.relationLastNamePrefix = fieldsGroup.fields[lastNamePrefixField].value;\r\n }\r\n const lastNameField = fieldsGroup.fields.findIndex(x => x.data.id === 'relativesLastNameId');\r\n if (lastNameField > -1) {\r\n relative.relationLastName = fieldsGroup.fields[lastNameField].value;\r\n }\r\n const suffixField = fieldsGroup.fields.findIndex(x => x.data.id === 'relativesSuffixId');\r\n if (suffixField > -1) {\r\n relative.relationSuffix = fieldsGroup.fields[prefixField].value === '' ? null : fieldsGroup.fields[prefixField].value;\r\n }\r\n const relationshipField = fieldsGroup.fields.findIndex(x => x.data.id === 'relativesRelationshipId');\r\n if (relationshipField > -1) {\r\n relative.relationType = fieldsGroup.fields[relationshipField].value;\r\n }\r\n const attendedInstitutionField = fieldsGroup.fields.findIndex(x => x.data.id === 'relativesAttendedInstitutionId');\r\n if (attendedInstitutionField > -1) {\r\n relative.attendedInstitution = Boolean(fieldsGroup.fields[attendedInstitutionField].value);\r\n }\r\n return relative;\r\n };\r\n\r\n private setApplicationRelativeValues = (relative: IApplicationRelative): IApplicationRelative => {\r\n relative.applicationId = relative.applicationId || 0;\r\n relative.relationMiddleName = relative.relationMiddleName || '';\r\n relative.relationLastNamePrefix = relative.relationLastNamePrefix || '';\r\n\r\n return relative;\r\n };\r\n\r\n private setApplicationActivitiesValues =\r\n (activity: IApplicationActivity, activityList: IApplicationActivity[]): IApplicationActivity[] => {\r\n activity.activityType = activity.activityType || 0;\r\n activity.activity = activity.activity || 0;\r\n activity.hoursPerWeek = activity.hoursPerWeek || 0;\r\n activity.weeksPerYear = activity.weeksPerYear || 0;\r\n activity.numberOfYears = activity.numberOfYears || 0;\r\n activity.participatedGrade09 = activity.participatedGrade09 || false;\r\n activity.participatedGrade10 = activity.participatedGrade10 || false;\r\n activity.participatedGrade11 = activity.participatedGrade11 || false;\r\n activity.participatedGrade12 = activity.participatedGrade12 || false;\r\n activity.participatedPostsecondary = activity.participatedPostsecondary || false;\r\n\r\n if (activity.activityType !== 0 && activity.activity !== 0) {\r\n activityList.push(activity);\r\n }\r\n else if (activity.position || activity.hoursPerWeek || activity.weeksPerYear ||\r\n activity.numberOfYears || activity.participatedGrade09 || activity.participatedGrade10 ||\r\n activity.participatedGrade11 || activity.participatedGrade12 || activity.participatedPostsecondary) {\r\n activityList.push(activity);\r\n }\r\n return activityList;\r\n };\r\n\r\n private setIpedsValuesCheckList = (fieldsGroup: IFieldsGroup): void => {\r\n const {\r\n application\r\n } = this.state;\r\n\r\n const ipedsCheckList = fieldsGroup.fields[3].value;\r\n if (ipedsCheckList) {\r\n const array = Object.values(ipedsCheckList.split(','));\r\n array.forEach(iped => {\r\n if (application.ipeds) {\r\n let index: number = -1;\r\n index = application.ipeds.findIndex(x => x.ipedsFederalCategoryId === 1\r\n && x.ipedsEthnicityId === Number(iped));\r\n if (index === -1) {\r\n application.ipeds.push({\r\n ipedsEthnicityId: Number(iped),\r\n ipedsFederalCategoryId: 1\r\n });\r\n }\r\n }\r\n else {\r\n application.ipeds = [{\r\n ipedsEthnicityId: Number(iped),\r\n ipedsFederalCategoryId: 1\r\n }];\r\n }\r\n });\r\n }\r\n\r\n this.setState({\r\n application: application\r\n });\r\n };\r\n\r\n private setIpedsValuesNestedCheckList = (fieldsGroup: IFieldsGroup): void => {\r\n const {\r\n application\r\n } = this.state;\r\n\r\n const ipedsNestedCheckboxList = fieldsGroup.fields[4].value;\r\n if (ipedsNestedCheckboxList) {\r\n const ipedsArray = ipedsNestedCheckboxList.split(',');\r\n ipedsArray.forEach(iped => {\r\n const ipedItem = iped.split('$');\r\n if (ipedItem[0] !== '') {\r\n if (ipedItem.length > 1) {\r\n if (application.ipeds) {\r\n application.ipeds.push({\r\n ipedsEthnicityId: ipedItem[1] !== '' ? Number(ipedItem[1]) : undefined,\r\n ipedsFederalCategoryId: Number(ipedItem[0])\r\n });\r\n }\r\n else {\r\n application.ipeds = [{\r\n ipedsEthnicityId: ipedItem[1] !== '' ? Number(ipedItem[1]) : undefined,\r\n ipedsFederalCategoryId: Number(ipedItem[0])\r\n }];\r\n }\r\n }\r\n else {\r\n if (application.ipeds) {\r\n application.ipeds.push({\r\n ipedsFederalCategoryId: Number(ipedItem[0])\r\n });\r\n }\r\n else {\r\n application.ipeds = [{\r\n ipedsFederalCategoryId: Number(ipedItem[0])\r\n }];\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n this.setState({\r\n application: application\r\n });\r\n };\r\n\r\n // #endregion Set Values for Collections\r\n // #endregion Functions\r\n\r\n // #region Error Functions\r\n private logError = (logData: ILogData): void => {\r\n LayoutActions.setLogData(logData);\r\n };\r\n\r\n private redirectError = (code: number): void => {\r\n LayoutActions.setRedirectCode(code);\r\n };\r\n\r\n private showError = (message?: string): void => {\r\n LayoutActions.setAlert({ message: message, messageType: ResultType.error } as IAlert);\r\n };\r\n // #endregion Error Functions\r\n\r\n // #region Resolvers\r\n private resolveLayoutReady = () => {\r\n try {\r\n const {\r\n application,\r\n resources\r\n } = this.state;\r\n\r\n if (resources) {\r\n document.title = resources.lblPageTitle;\r\n\r\n if (application) {\r\n const hdnAppId: HTMLInputElement | undefined =\r\n document.getElementById('hdnApplicationId') as HTMLInputElement;\r\n if (hdnAppId && hdnAppId.value) {\r\n application.applicationId = Number(hdnAppId.value);\r\n hdnAppId.remove();\r\n Requests.getComponents(application.applicationId, this.resolveGetComponents, this.logError);\r\n\r\n const hdnTransactionId: HTMLInputElement | undefined =\r\n document.getElementById('hdnTransactionId') as HTMLInputElement;\r\n const hdnTransactionStatus: HTMLInputElement | undefined =\r\n document.getElementById('hdnTransactionStatus') as HTMLInputElement;\r\n const hdnTransactionAmount: HTMLInputElement | undefined =\r\n document.getElementById('hdnTransactionAmount') as HTMLInputElement;\r\n const hdnTransactionDescription: HTMLInputElement | undefined =\r\n document.getElementById('hdnTransactionDescription') as HTMLInputElement;\r\n const hdnTransactionAuthorizationNumber: HTMLInputElement | undefined =\r\n document.getElementById('hdnTransactionAuthorizationNumber') as HTMLInputElement;\r\n const hdnTransactionReturnUrl: HTMLInputElement | undefined =\r\n document.getElementById('hdnTransactionReturnUrl') as HTMLInputElement;\r\n if (hdnTransactionId && hdnTransactionId.value\r\n && hdnTransactionStatus\r\n && hdnTransactionAmount\r\n && hdnTransactionDescription\r\n && hdnTransactionAuthorizationNumber\r\n && hdnTransactionReturnUrl) {\r\n const paymentTransaction: IPaymentTransaction = {\r\n amount: hdnTransactionAmount.value,\r\n authorizationNumber: hdnTransactionAuthorizationNumber.value,\r\n description: hdnTransactionDescription.value,\r\n returnUrl: hdnTransactionReturnUrl.value,\r\n status: Number(hdnTransactionStatus.value),\r\n transactionId: Number(hdnTransactionAmount.value)\r\n } as IPaymentTransaction;\r\n this.setState({\r\n paymentModalOpenFail: Number(hdnTransactionStatus.value) === 0,\r\n paymentModalOpenSuccess: Number(hdnTransactionStatus.value) === 1,\r\n paymentTransaction: paymentTransaction\r\n });\r\n hdnTransactionId.remove();\r\n hdnTransactionStatus.remove();\r\n hdnTransactionAmount.remove();\r\n hdnTransactionDescription.remove();\r\n hdnTransactionAuthorizationNumber.remove();\r\n hdnTransactionReturnUrl.remove();\r\n }\r\n }\r\n else {\r\n const hdnSavedApplicationToken: HTMLInputElement | undefined =\r\n document.getElementById('hdnSavedApplicationToken') as HTMLInputElement;\r\n if (hdnSavedApplicationToken && hdnSavedApplicationToken.value) {\r\n this.setState({\r\n token: hdnSavedApplicationToken.value\r\n });\r\n hdnSavedApplicationToken.remove();\r\n Requests.getSavedApplicationComponents(hdnSavedApplicationToken.value, this.resolveGetComponents, this.logError);\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n this.logError(LogData.noResources(this.resolveLayoutReady.name));\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.resolveLayoutReady.name, e));\r\n }\r\n };\r\n\r\n private resolveCountries = (json: string): void => {\r\n try {\r\n const result: IJsonResult | undefined\r\n = Resolver(json, this.resolveCountries.name);\r\n\r\n if (result?.status) {\r\n const countries: any = result.data;\r\n\r\n this.setState({\r\n countries: countries\r\n });\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.resolveCountries.name, e));\r\n }\r\n };\r\n\r\n private resolveGetAddress = (json: string): void => {\r\n try {\r\n const result: IJsonResult | undefined\r\n = Resolver(json, this.resolveGetAddress.name);\r\n\r\n if (result?.status) {\r\n const rowsPerPageOptions: number[] = this.getRowsPerPageOptions(result.data.overallCount\r\n ? result.data.overallCount : 0);\r\n this.setState({\r\n addresses: result.data.addresses,\r\n rowsPerPageOptions,\r\n total: result.data.overallCount\r\n });\r\n LayoutActions.setLoading(false);\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.resolveGetAddress.name, e));\r\n }\r\n };\r\n\r\n private resolveGetComponents = (json: string): void => {\r\n try {\r\n const result: IJsonResult | undefined\r\n = Resolver(json, this.resolveGetComponents.name);\r\n\r\n if (result?.status) {\r\n const components: IApplicationForm = result.data;\r\n if (components.steps) {\r\n const errors: IApplicationErrors[] = Array(components.steps.length);\r\n if (components.applicationFormId > 0) {\r\n const {\r\n application\r\n } = this.state;\r\n\r\n application.applicationId = components.applicationFormId;\r\n }\r\n if (components.savedApplicationId) {\r\n const {\r\n application\r\n } = this.state;\r\n\r\n application.savedApplicationId = components.savedApplicationId;\r\n }\r\n if (components.canSaveApplication) {\r\n this.setState({\r\n confirmationMessage: components.confirmationSaveMessage,\r\n saveMessage: components.footerSaveMessage,\r\n showSaveButton: components.canSaveApplication\r\n });\r\n }\r\n\r\n components.steps.forEach((step, i) => {\r\n errors[i] = { isStepError: false, groupErrors: Array(step.fieldsGroups.length), stepTitle: step.title };\r\n for (let j = 0; j < step.fieldsGroups.length; j++) {\r\n errors[i].groupErrors[j] = {\r\n firstSectionErrors: {\r\n firstFieldsErrors: [],\r\n isFirstSectionErrors: false\r\n },\r\n groupId: step.fieldsGroups[j].id,\r\n isGroupError: false,\r\n sectionErrors: []\r\n };\r\n }\r\n });\r\n\r\n const {\r\n paymentModalOpenFail,\r\n paymentModalOpenSuccess\r\n } = this.state;\r\n\r\n if (paymentModalOpenFail || paymentModalOpenSuccess) {\r\n components.isCompletedApplication = true;\r\n this.setState({\r\n showAttachments: false\r\n });\r\n }\r\n\r\n this.setState({\r\n components: components,\r\n errors: errors\r\n }, () => LayoutActions.setLoading(false));\r\n\r\n const fileSelector = this.buildFileSelector();\r\n\r\n this.setState({\r\n fileSelector: fileSelector\r\n });\r\n }\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.resolveGetComponents.name, e));\r\n }\r\n };\r\n\r\n private resolveGetChildOptions = (json: string): void => {\r\n try {\r\n const {\r\n components\r\n } = this.state;\r\n\r\n if (components) {\r\n const result: IJsonResult | undefined\r\n = Resolver(json, this.resolveGetChildOptions.name);\r\n\r\n if (result?.status) {\r\n if (result.data) {\r\n if (result.data.step && result.data.group && result.data.targetId) {\r\n const fields: any = components.steps[Number(result.data.step)].fieldsGroups[Number(result.data.group)].fields;\r\n const fieldIndex: number =\r\n fields.findIndex(x => x.data.id === result.data.targetId);\r\n if (fieldIndex > -1) {\r\n const childField: IFieldForm = fields[fieldIndex];\r\n if (result.data.results) {\r\n childField.data.options = result.data.results as IDropDownOption[];\r\n }\r\n else {\r\n childField.data.options = [] as IDropDownOption[];\r\n }\r\n if (childField) {\r\n childField.value = undefined;\r\n }\r\n this.setState({\r\n components: components\r\n });\r\n }\r\n }\r\n }\r\n }\r\n }\r\n } catch (e) {\r\n this.logError(LogData.fromException(this.resolveGetChildOptions.name, e));\r\n }\r\n };\r\n\r\n private resolveGetInstitutions = (json: string): void => {\r\n try {\r\n const result: IJsonResult | undefined\r\n = Resolver(json, this.resolveGetInstitutions.name);\r\n\r\n if (result?.status) {\r\n const rowsPerPageOptions: number[] = this.getRowsPerPageOptions(result.data.overallCount\r\n ? result.data.overallCount : 0);\r\n this.setState({\r\n institutions: result.data.institutions,\r\n rowsPerPageOptions,\r\n total: result.data.overallCount\r\n });\r\n LayoutActions.setLoading(false);\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.resolveGetInstitutions.name, e));\r\n }\r\n };\r\n\r\n private resolveStates = (json: string): void => {\r\n try {\r\n const result: IJsonResult | undefined\r\n = Resolver(json, this.resolveStates.name);\r\n\r\n if (result?.status) {\r\n const states: any = result.data;\r\n\r\n this.setState({\r\n states: states\r\n });\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.resolveStates.name, e));\r\n }\r\n };\r\n\r\n private resolveSaveIncompleteApplication = (json: string): void => {\r\n try {\r\n const result: IJsonResult | undefined\r\n = Resolver(json, this.resolveSaveIncompleteApplication.name);\r\n\r\n if (result?.status) {\r\n if (result.data.result) {\r\n const {\r\n components\r\n } = this.state;\r\n // Send notification\r\n if (components && result.data.token && result.data.email && components.name) {\r\n LayoutActions.setLoading(false);\r\n const urlToSend = `${window.location.origin}${Constants.webUrl}/Admissions/ApplicationForm/Saved/${result.data.token}`;\r\n Requests.postCreateSaveApplicationNotification(urlToSend,\r\n result.data.email, components.name, this.resolveCreateSaveApplicationNotification, this.logError);\r\n this.setState({\r\n openConfirmationSavedModal: true\r\n });\r\n }\r\n }\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.resolveSaveIncompleteApplication.name, e));\r\n }\r\n };\r\n\r\n private resolveCreateSaveApplicationNotification = (json: string): void => {\r\n try {\r\n const result: IJsonResult | undefined\r\n = Resolver(json, this.resolveCreateSaveApplicationNotification.name);\r\n\r\n if (!result?.status) {\r\n this.logError(LogData.badJsonResult(this.resolveCreateSaveApplicationNotification.name));\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.resolveCreateSaveApplicationNotification.name, e));\r\n }\r\n };\r\n\r\n private resolveSubmitApplication = (json: string): void => {\r\n try {\r\n const {\r\n components\r\n } = this.state;\r\n\r\n const result: IJsonResult | undefined\r\n = Resolver(json, this.resolveSubmitApplication.name);\r\n\r\n if (result?.status) {\r\n if (result.data.result) {\r\n if (components) {\r\n if (result.data.applicationId) {\r\n this.setState({\r\n applicationId: result.data.applicationId\r\n });\r\n }\r\n if (result.data.paymentInfo) {\r\n this.setState({\r\n paymentInfo: result.data.paymentInfo\r\n });\r\n }\r\n // Attachments are after sumbit and before payment\r\n if (components.allowAttachment) {\r\n const {\r\n applicationId\r\n } = this.state;\r\n if (applicationId !== undefined && applicationId > 0) {\r\n Requests.postListApplicationAttachments(applicationId, this.resolveGetListApplicationAttachments, this.logError);\r\n this.setState({\r\n showAttachments: true\r\n });\r\n }\r\n }\r\n else {\r\n if (result.data.paymentInfo) {\r\n const returnUrl =\r\n `${Constants.webUrl}/Admissions/ApplicationForm/${components.applicationFormId}`;\r\n\r\n this.setState({\r\n paymentDetailModalOpen: true,\r\n paymentInfo: result.data.paymentInfo,\r\n returnUrl: returnUrl\r\n });\r\n }\r\n else {\r\n components.isCompletedApplication = true;\r\n this.setState({\r\n components: components\r\n });\r\n }\r\n }\r\n LayoutActions.setLoading(false);\r\n }\r\n }\r\n else {\r\n this.showError();\r\n }\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.resolveSubmitApplication.name, e));\r\n }\r\n };\r\n\r\n private resolveValidateScore = (json: string): void => {\r\n try {\r\n const {\r\n components\r\n } = this.state;\r\n\r\n const result: IJsonResult | undefined\r\n = Resolver(json, this.resolveValidateScore.name);\r\n\r\n if (result?.status && components) {\r\n components.steps.forEach(step => {\r\n const group: IFieldsGroup | undefined = step.fieldsGroups.find(g => g.id === result.data.group);\r\n if (group) {\r\n const field: IFieldForm | undefined = group.fields.find(f => f.data.id === result.data.componentId);\r\n if (field) {\r\n if (result.data.isNumeric) {\r\n field.isNumeric = true;\r\n } else {\r\n field.isNumeric = false;\r\n }\r\n }\r\n }\r\n });\r\n\r\n this.setState({\r\n components: this.state.components\r\n });\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.resolveValidateScore.name, e));\r\n }\r\n };\r\n\r\n private resolveCreateAttachment = (json: string): void => {\r\n try {\r\n const result: IJsonResult | undefined\r\n = Resolver(json, this.resolveCreateAttachment.name);\r\n\r\n if (result?.status) {\r\n if (result.data.result) {\r\n const {\r\n applicationId\r\n } = this.state;\r\n if (applicationId !== undefined && applicationId > 0) {\r\n LayoutActions.setLoading(true);\r\n Requests.postListApplicationAttachments(applicationId, this.resolveGetListApplicationAttachments, this.logError);\r\n }\r\n }\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.resolveCreateAttachment.name, e));\r\n }\r\n };\r\n\r\n private resolveGetListApplicationAttachments = (json: string): void => {\r\n try {\r\n const result: IJsonResult | undefined\r\n = Resolver(json, this.resolveGetListApplicationAttachments.name);\r\n\r\n if (result?.status) {\r\n if (result.data) {\r\n this.setState({\r\n attachments: result.data.appAttachmentsViewModel,\r\n openRemoveAttachmentDialog: false\r\n });\r\n const {\r\n applicationId\r\n } = this.state;\r\n if (applicationId) {\r\n LayoutActions.setLoading(true);\r\n Requests.GetApplicationAttachmentTotals(applicationId, this.resolveGetAttachmentTotals, this.logError);\r\n }\r\n const fileSelector = this.buildFileSelector();\r\n this.setState({\r\n fileSelector: fileSelector\r\n });\r\n }\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.resolveGetListApplicationAttachments.name, e));\r\n }\r\n };\r\n\r\n private resolveRemoveAttachment = (json: string): void => {\r\n try {\r\n const result: IJsonResult | undefined\r\n = Resolver(json, this.resolveRemoveAttachment.name);\r\n\r\n if (result?.status) {\r\n if (result.data) {\r\n const {\r\n applicationId\r\n } = this.state;\r\n if (applicationId) {\r\n LayoutActions.setLoading(true);\r\n Requests.postListApplicationAttachments(applicationId, this.resolveGetListApplicationAttachments, this.logError);\r\n }\r\n }\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.resolveRemoveAttachment.name, e));\r\n }\r\n };\r\n\r\n private resolveGetAttachmentTotals = (json: string): void => {\r\n try {\r\n const result: IJsonResult | undefined\r\n = Resolver(json, this.resolveGetAttachmentTotals.name);\r\n\r\n if (result?.status) {\r\n this.setState({\r\n attachmentsTotalSize: result.data.appAttachmentTotalsViewModel.totalAttachmentSize,\r\n attachmentsTotalSizeNumber: Number(result.data.appAttachmentTotalsViewModel.totalAttachmentSizeNumber),\r\n totalNumberOfAttachments: Number(result.data.appAttachmentTotalsViewModel.totalNumberOfAttachments)\r\n });\r\n LayoutActions.setLoading(false);\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.resolveGetAttachmentTotals.name, e));\r\n }\r\n };\r\n\r\n private resolveGetGeneralSettings = (json: string): void => {\r\n try {\r\n const result: IJsonResult | undefined\r\n = Resolver(json, this.resolveGetGeneralSettings.name);\r\n if (result?.status) {\r\n this.setState({\r\n governmentIdFormat: result.data.general.governmentIdFormat\r\n });\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.resolveGetGeneralSettings.name, e));\r\n }\r\n };\r\n\r\n private resolveGetReCaptchaSettings = (json: string): void => {\r\n try {\r\n const result: IJsonResult | undefined\r\n = Resolver(json, this.resolveGetReCaptchaSettings.name);\r\n if (result?.status) {\r\n this.setState({\r\n isReCaptchaSubmitApplicationEnabled: result.data.isReCaptchaSubmitApplicationEnabled,\r\n reCaptchaSiteKey: result.data.reCaptchaSiteKey || ''\r\n });\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.resolveGetReCaptchaSettings.name, e));\r\n }\r\n };\r\n // #endregion Resolvers\r\n\r\n // #region State Management Events\r\n private onLayoutReady = (): void => {\r\n const ready: boolean = LayoutStore.getLayoutReady();\r\n const resources: IApplicationFormResources | undefined = LayoutStore.getResources();\r\n const cultures: ICultures = LayoutStore.getCultures();\r\n\r\n if (ready) {\r\n Requests.getStates(this.resolveStates, this.logError);\r\n Requests.getCountries(this.resolveCountries, this.logError);\r\n Requests.getGeneralSettings(this.resolveGetGeneralSettings);\r\n Requests.getReCaptchaSettings(this.resolveGetReCaptchaSettings);\r\n\r\n this.setState({\r\n dateTimeCulture: cultures.dateTimeCulture,\r\n firstDayOfWeek: cultures.firstDayOfWeek,\r\n shortDatePattern: cultures.shortDatePattern,\r\n\r\n // Resources\r\n resources: resources\r\n }, this.resolveLayoutReady);\r\n }\r\n else {\r\n this.setState({\r\n componentError: true\r\n }, () => this.logError(LogData.layoutNoReady(this.onLayoutReady.name)));\r\n }\r\n };\r\n // #endregion State Management Events\r\n\r\n // #region Lifecycle\r\n public componentWillUnmount = (): void => {\r\n LayoutStore.removeLayoutReadyListener(this.onLayoutReady);\r\n };\r\n\r\n public componentDidCatch = (error, info): void => {\r\n this.setState({\r\n componentError: true\r\n }, () => {\r\n this.logError(LogData.fromComponentException(this.componentDidCatch.name, error, info));\r\n this.redirectError(500);\r\n });\r\n };\r\n // #endregion Lifecycle\r\n\r\n public render(): JSX.Element {\r\n const {\r\n activeStep,\r\n addresses,\r\n attachments,\r\n attachmentsTotalSize,\r\n changeEmailText,\r\n componentError,\r\n components,\r\n confirmationMessage,\r\n countries,\r\n dateTimeCulture,\r\n emailField,\r\n emptyEmailField,\r\n errors,\r\n expanded,\r\n fileName,\r\n firstDayOfWeek,\r\n hasPersonId,\r\n hasSearchZipCode,\r\n institutions,\r\n invalidEmail,\r\n openAddressSearchModal,\r\n openETSSearchModal,\r\n pageNumber,\r\n pageSize,\r\n paymentModalOpenFail,\r\n paymentModalOpenSuccess,\r\n paymentTransaction,\r\n resources,\r\n rowsPerPageOptions,\r\n openConfirmationSavedModal,\r\n openEmailModal,\r\n openNotAvailableModal,\r\n openRemoveAttachmentDialog,\r\n openSupportedFilesModal,\r\n saveMessage,\r\n selectedCity,\r\n selectedCountry,\r\n selectedEtsCode,\r\n selectedInstitutionName,\r\n selectedState,\r\n selectedZipCode,\r\n shortDatePattern,\r\n showAttachments,\r\n showSaveButton,\r\n showSignIn,\r\n showSignUp,\r\n states,\r\n total,\r\n\r\n // Payment\r\n paymentDetailModalOpen,\r\n paymentInfo,\r\n paymentModalOpenProcess,\r\n returnUrl,\r\n\r\n // Settings\r\n governmentIdFormat,\r\n\r\n // ReCaptcha\r\n isReCaptchaSubmitApplicationEnabled,\r\n reCaptchaError,\r\n reCaptchaSiteKey,\r\n uiCulture\r\n } = this.state;\r\n\r\n // #region Payment modals\r\n let processPaymentModal: JSX.Element | undefined;\r\n if (paymentModalOpenProcess && paymentInfo) {\r\n processPaymentModal = (\r\n \r\n );\r\n }\r\n // #endregion Payment modals\r\n\r\n let addressSearchModal: JSX.Element | undefined;\r\n\r\n if (resources && resources.addressSearchModal) {\r\n addressSearchModal = (\r\n \r\n );\r\n }\r\n\r\n let etsSearchModal: JSX.Element | undefined;\r\n if (resources && resources.etsSearchModal && states && countries) {\r\n etsSearchModal = (\r\n \r\n );\r\n }\r\n\r\n let confirmationSavedModal: JSX.Element | undefined;\r\n if (resources && confirmationMessage) {\r\n confirmationSavedModal = (\r\n \r\n );\r\n }\r\n\r\n let emailModal: JSX.Element | undefined;\r\n if (resources && openEmailModal) {\r\n emailModal = (\r\n \r\n {resources.emailModal.lblSave}\r\n \r\n )}\r\n id=\"emailModal\"\r\n header={resources.emailModal.lblSaveApplication}\r\n maxWidth=\"md\"\r\n open={openEmailModal}\r\n onClose={this.onCloseEmailModal}\r\n >\r\n \r\n \r\n \r\n {emailField && changeEmailText ? resources.emailModal.lblSaveApplicationInstructions\r\n : resources.emailModal.lblSaveApplicationEmptyEmailIns}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n let notAvailableModal: JSX.Element | undefined;\r\n if (resources && openNotAvailableModal) {\r\n notAvailableModal = (\r\n \r\n {resources.notAvailableModal.lblOk}\r\n \r\n )}\r\n id=\"notAvailableModal\"\r\n header={resources.notAvailableModal.lblNotAvailable}\r\n maxWidth=\"md\"\r\n open={openNotAvailableModal}\r\n onClose={this.onCloseNotAvailableModal}\r\n >\r\n \r\n \r\n \r\n {resources.notAvailableModal.lblNotAvailableMessage}\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n let supportedFiles: JSX.Element | undefined;\r\n if (resources && components && components.fileTypes) {\r\n const supportedFilesBody: JSX.Element[] = [];\r\n components.fileTypes.forEach((availableFileType, i) => {\r\n let fileExt = '';\r\n const fileExtensions = availableFileType.fileExtension.split(';');\r\n fileExtensions.forEach(fExt => {\r\n fileExt = fileExt + fExt.replace('*.', '');\r\n });\r\n fileExt = fileExt.replace(/ /g, ', ');\r\n supportedFilesBody.push(\r\n \r\n \r\n \r\n {fileExt}\r\n \r\n \r\n \r\n );\r\n });\r\n\r\n supportedFiles = (\r\n \r\n \r\n {supportedFilesBody}\r\n \r\n
\r\n );\r\n }\r\n\r\n let supportedFilesModal: JSX.Element | undefined;\r\n if (resources && openSupportedFilesModal) {\r\n supportedFilesModal = (\r\n \r\n {resources.attachments.lblClose}\r\n \r\n )}\r\n id=\"supportedFilesModal\"\r\n header={resources.attachments.lblSupportedFilesTitle}\r\n maxWidth=\"md\"\r\n open={openSupportedFilesModal}\r\n onClose={this.onCloseSupportedFilesModal}\r\n >\r\n \r\n \r\n {supportedFiles}\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n let attachmentsComponent: JSX.Element | undefined;\r\n if (resources && components && components.fileTypes) {\r\n attachmentsComponent = (\r\n \r\n );\r\n }\r\n\r\n let removeAttachmentModal: JSX.Element | undefined;\r\n if (resources && openRemoveAttachmentDialog) {\r\n removeAttachmentModal = (\r\n \r\n );\r\n }\r\n\r\n let signInModal: JSX.Element | undefined;\r\n if (!hasPersonId) {\r\n signInModal = (\r\n \r\n );\r\n }\r\n\r\n let signUpModal: JSX.Element | undefined;\r\n if (showSignUp) {\r\n signUpModal = (\r\n \r\n );\r\n }\r\n\r\n let contentPage: JSX.Element | undefined;\r\n if (!componentError && resources) {\r\n // #region Payment Info modal\r\n let paymentInfoModal: JSX.Element | undefined;\r\n if (paymentInfo && components && paymentDetailModalOpen) {\r\n paymentInfoModal = (\r\n \r\n );\r\n }\r\n // #endregion Payment Info modal\r\n\r\n if (components) {\r\n if (!showAttachments) {\r\n contentPage = (\r\n <>\r\n \r\n {paymentInfoModal}\r\n \r\n );\r\n }\r\n else {\r\n contentPage = (\r\n <>\r\n {attachmentsComponent}\r\n \r\n );\r\n }\r\n }\r\n }\r\n\r\n return (\r\n \r\n {contentPage}\r\n {addressSearchModal}\r\n {etsSearchModal}\r\n {processPaymentModal}\r\n {confirmationSavedModal}\r\n {emailModal}\r\n {notAvailableModal}\r\n {supportedFilesModal}\r\n {removeAttachmentModal}\r\n {signInModal}\r\n {signUpModal}\r\n \r\n );\r\n }\r\n}\r\n\r\nconst ApplicationFormViewWithLayout = withLayout(ApplicationFormView);\r\n// #endregion Component\r\n\r\n// RenderDOM: Component\r\nReactDOM.render(, document.getElementById('root'));","var map = {\n\t\"./af\": 42786,\n\t\"./af.js\": 42786,\n\t\"./ar\": 30867,\n\t\"./ar-dz\": 14130,\n\t\"./ar-dz.js\": 14130,\n\t\"./ar-kw\": 96135,\n\t\"./ar-kw.js\": 96135,\n\t\"./ar-ly\": 56440,\n\t\"./ar-ly.js\": 56440,\n\t\"./ar-ma\": 47702,\n\t\"./ar-ma.js\": 47702,\n\t\"./ar-sa\": 16040,\n\t\"./ar-sa.js\": 16040,\n\t\"./ar-tn\": 37100,\n\t\"./ar-tn.js\": 37100,\n\t\"./ar.js\": 30867,\n\t\"./az\": 31083,\n\t\"./az.js\": 31083,\n\t\"./be\": 9808,\n\t\"./be.js\": 9808,\n\t\"./bg\": 68338,\n\t\"./bg.js\": 68338,\n\t\"./bm\": 67438,\n\t\"./bm.js\": 67438,\n\t\"./bn\": 8905,\n\t\"./bn-bd\": 76225,\n\t\"./bn-bd.js\": 76225,\n\t\"./bn.js\": 8905,\n\t\"./bo\": 11560,\n\t\"./bo.js\": 11560,\n\t\"./br\": 1278,\n\t\"./br.js\": 1278,\n\t\"./bs\": 80622,\n\t\"./bs.js\": 80622,\n\t\"./ca\": 2468,\n\t\"./ca.js\": 2468,\n\t\"./cs\": 5822,\n\t\"./cs.js\": 5822,\n\t\"./cv\": 50877,\n\t\"./cv.js\": 50877,\n\t\"./cy\": 47373,\n\t\"./cy.js\": 47373,\n\t\"./da\": 24780,\n\t\"./da.js\": 24780,\n\t\"./de\": 59740,\n\t\"./de-at\": 60217,\n\t\"./de-at.js\": 60217,\n\t\"./de-ch\": 60894,\n\t\"./de-ch.js\": 60894,\n\t\"./de.js\": 59740,\n\t\"./dv\": 5300,\n\t\"./dv.js\": 5300,\n\t\"./el\": 50837,\n\t\"./el.js\": 50837,\n\t\"./en-au\": 78348,\n\t\"./en-au.js\": 78348,\n\t\"./en-ca\": 77925,\n\t\"./en-ca.js\": 77925,\n\t\"./en-gb\": 22243,\n\t\"./en-gb.js\": 22243,\n\t\"./en-ie\": 46436,\n\t\"./en-ie.js\": 46436,\n\t\"./en-il\": 47207,\n\t\"./en-il.js\": 47207,\n\t\"./en-in\": 44175,\n\t\"./en-in.js\": 44175,\n\t\"./en-nz\": 76319,\n\t\"./en-nz.js\": 76319,\n\t\"./en-sg\": 31662,\n\t\"./en-sg.js\": 31662,\n\t\"./eo\": 92915,\n\t\"./eo.js\": 92915,\n\t\"./es\": 55655,\n\t\"./es-do\": 55251,\n\t\"./es-do.js\": 55251,\n\t\"./es-mx\": 96112,\n\t\"./es-mx.js\": 96112,\n\t\"./es-us\": 71146,\n\t\"./es-us.js\": 71146,\n\t\"./es.js\": 55655,\n\t\"./et\": 5603,\n\t\"./et.js\": 5603,\n\t\"./eu\": 77763,\n\t\"./eu.js\": 77763,\n\t\"./fa\": 76959,\n\t\"./fa.js\": 76959,\n\t\"./fi\": 11897,\n\t\"./fi.js\": 11897,\n\t\"./fil\": 42549,\n\t\"./fil.js\": 42549,\n\t\"./fo\": 94694,\n\t\"./fo.js\": 94694,\n\t\"./fr\": 94470,\n\t\"./fr-ca\": 63049,\n\t\"./fr-ca.js\": 63049,\n\t\"./fr-ch\": 52330,\n\t\"./fr-ch.js\": 52330,\n\t\"./fr.js\": 94470,\n\t\"./fy\": 5044,\n\t\"./fy.js\": 5044,\n\t\"./ga\": 29295,\n\t\"./ga.js\": 29295,\n\t\"./gd\": 2101,\n\t\"./gd.js\": 2101,\n\t\"./gl\": 38794,\n\t\"./gl.js\": 38794,\n\t\"./gom-deva\": 27884,\n\t\"./gom-deva.js\": 27884,\n\t\"./gom-latn\": 23168,\n\t\"./gom-latn.js\": 23168,\n\t\"./gu\": 95349,\n\t\"./gu.js\": 95349,\n\t\"./he\": 24206,\n\t\"./he.js\": 24206,\n\t\"./hi\": 30094,\n\t\"./hi.js\": 30094,\n\t\"./hr\": 30316,\n\t\"./hr.js\": 30316,\n\t\"./hu\": 22138,\n\t\"./hu.js\": 22138,\n\t\"./hy-am\": 11423,\n\t\"./hy-am.js\": 11423,\n\t\"./id\": 29218,\n\t\"./id.js\": 29218,\n\t\"./is\": 90135,\n\t\"./is.js\": 90135,\n\t\"./it\": 90626,\n\t\"./it-ch\": 63120,\n\t\"./it-ch.js\": 63120,\n\t\"./it.js\": 90626,\n\t\"./ja\": 39183,\n\t\"./ja.js\": 39183,\n\t\"./jv\": 24286,\n\t\"./jv.js\": 24286,\n\t\"./ka\": 12105,\n\t\"./ka.js\": 12105,\n\t\"./kk\": 47772,\n\t\"./kk.js\": 47772,\n\t\"./km\": 18758,\n\t\"./km.js\": 18758,\n\t\"./kn\": 79282,\n\t\"./kn.js\": 79282,\n\t\"./ko\": 33730,\n\t\"./ko.js\": 33730,\n\t\"./ku\": 1408,\n\t\"./ku.js\": 1408,\n\t\"./ky\": 33291,\n\t\"./ky.js\": 33291,\n\t\"./lb\": 36841,\n\t\"./lb.js\": 36841,\n\t\"./lo\": 55466,\n\t\"./lo.js\": 55466,\n\t\"./lt\": 57010,\n\t\"./lt.js\": 57010,\n\t\"./lv\": 37595,\n\t\"./lv.js\": 37595,\n\t\"./me\": 39861,\n\t\"./me.js\": 39861,\n\t\"./mi\": 35493,\n\t\"./mi.js\": 35493,\n\t\"./mk\": 95966,\n\t\"./mk.js\": 95966,\n\t\"./ml\": 87341,\n\t\"./ml.js\": 87341,\n\t\"./mn\": 5115,\n\t\"./mn.js\": 5115,\n\t\"./mr\": 10370,\n\t\"./mr.js\": 10370,\n\t\"./ms\": 9847,\n\t\"./ms-my\": 41237,\n\t\"./ms-my.js\": 41237,\n\t\"./ms.js\": 9847,\n\t\"./mt\": 72126,\n\t\"./mt.js\": 72126,\n\t\"./my\": 56165,\n\t\"./my.js\": 56165,\n\t\"./nb\": 64924,\n\t\"./nb.js\": 64924,\n\t\"./ne\": 16744,\n\t\"./ne.js\": 16744,\n\t\"./nl\": 93901,\n\t\"./nl-be\": 59814,\n\t\"./nl-be.js\": 59814,\n\t\"./nl.js\": 93901,\n\t\"./nn\": 83877,\n\t\"./nn.js\": 83877,\n\t\"./oc-lnc\": 92135,\n\t\"./oc-lnc.js\": 92135,\n\t\"./pa-in\": 15858,\n\t\"./pa-in.js\": 15858,\n\t\"./pl\": 64495,\n\t\"./pl.js\": 64495,\n\t\"./pt\": 89520,\n\t\"./pt-br\": 57971,\n\t\"./pt-br.js\": 57971,\n\t\"./pt.js\": 89520,\n\t\"./ro\": 96459,\n\t\"./ro.js\": 96459,\n\t\"./ru\": 21793,\n\t\"./ru.js\": 21793,\n\t\"./sd\": 40950,\n\t\"./sd.js\": 40950,\n\t\"./se\": 10490,\n\t\"./se.js\": 10490,\n\t\"./si\": 90124,\n\t\"./si.js\": 90124,\n\t\"./sk\": 64249,\n\t\"./sk.js\": 64249,\n\t\"./sl\": 14985,\n\t\"./sl.js\": 14985,\n\t\"./sq\": 51104,\n\t\"./sq.js\": 51104,\n\t\"./sr\": 49131,\n\t\"./sr-cyrl\": 79915,\n\t\"./sr-cyrl.js\": 79915,\n\t\"./sr.js\": 49131,\n\t\"./ss\": 85893,\n\t\"./ss.js\": 85893,\n\t\"./sv\": 98760,\n\t\"./sv.js\": 98760,\n\t\"./sw\": 91172,\n\t\"./sw.js\": 91172,\n\t\"./ta\": 27333,\n\t\"./ta.js\": 27333,\n\t\"./te\": 23110,\n\t\"./te.js\": 23110,\n\t\"./tet\": 52095,\n\t\"./tet.js\": 52095,\n\t\"./tg\": 27321,\n\t\"./tg.js\": 27321,\n\t\"./th\": 9041,\n\t\"./th.js\": 9041,\n\t\"./tk\": 19005,\n\t\"./tk.js\": 19005,\n\t\"./tl-ph\": 75768,\n\t\"./tl-ph.js\": 75768,\n\t\"./tlh\": 89444,\n\t\"./tlh.js\": 89444,\n\t\"./tr\": 72397,\n\t\"./tr.js\": 72397,\n\t\"./tzl\": 28254,\n\t\"./tzl.js\": 28254,\n\t\"./tzm\": 51106,\n\t\"./tzm-latn\": 30699,\n\t\"./tzm-latn.js\": 30699,\n\t\"./tzm.js\": 51106,\n\t\"./ug-cn\": 9288,\n\t\"./ug-cn.js\": 9288,\n\t\"./uk\": 67691,\n\t\"./uk.js\": 67691,\n\t\"./ur\": 13795,\n\t\"./ur.js\": 13795,\n\t\"./uz\": 6791,\n\t\"./uz-latn\": 60588,\n\t\"./uz-latn.js\": 60588,\n\t\"./uz.js\": 6791,\n\t\"./vi\": 65666,\n\t\"./vi.js\": 65666,\n\t\"./x-pseudo\": 14378,\n\t\"./x-pseudo.js\": 14378,\n\t\"./yo\": 75805,\n\t\"./yo.js\": 75805,\n\t\"./zh-cn\": 83839,\n\t\"./zh-cn.js\": 83839,\n\t\"./zh-hk\": 55726,\n\t\"./zh-hk.js\": 55726,\n\t\"./zh-mo\": 99807,\n\t\"./zh-mo.js\": 99807,\n\t\"./zh-tw\": 74152,\n\t\"./zh-tw.js\": 74152\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 46700;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 18;","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t18: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunk_hedtech_powercampus_self_service\"] = self[\"webpackChunk_hedtech_powercampus_self_service\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [464], () => (__webpack_require__(60072)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","props","classNameButtonText","classNameIconButton","disabled","lblPrint","link","resources","_useState","useState","_useState2","_slicedToArray","open","setOpen","onClickPrint","window","location","assign","React","Hidden","smDown","Button","TextProps","display","IconProps","name","align","className","id","textVariantStyling","variant","onClick","mdUp","IconButton","color","Icon","large","Snackbar","ContentProps","message","lblPrintProcess","type","ResultType","success","onClose","PaymentOrigin","PaymentDetailModal","_React$Component","_inherits","_super","_this","_classCallCheck","call","_defineProperty","_assertThisInitialized","json","result","Resolver","resolveGetResources","status","setState","data","e","logError","LogData","fromException","idModule","idPage","state","getInitialState","_createClass","key","value","this","componentError","logData","LayoutActions","setLogData","code","setRedirectCode","RequestsLayout","getResources","componentDidMount","error","info","_this2","fromComponentException","componentDidCatch","redirectError","contentPage","_this$props","classes","coupons","enableOnlinePayment","paymentInfo","paymentInfoNoChanges","paymentMethod","paymentOrigin","titleName","yearTerm","onApplyCoupon","onChangeCouponCode","onChangePaymentAnotherAmount","onChangePaymentMethod","onPay","onRemoveCoupon","_this$state","paymentMethods","headerModal","footerModal","rowClassName","isFirstRow","hasCharges","Registration","currentBalanceValue","totalAmountValue","push","description","Format","toString","formatBalance","currentBalance","errorTextAnotherAmount","errorAnotherAmount","modified","Boolean","anotherAmount","invalidAnotherAmount","lblAnotherAmountInvalid","undefined","lblAnotherAmountRequired","lblAnotherAmount","nodeComplement","TextField","helperText","size","onChange","ConEdRegistration","useTransactionChargesOnly","paymentDueValue","Text","formatTitle","Grid","container","alignItems","justifyContent","item","xs","instructionsContainer","lblInstructions","statementNumber","Print","printing","lblPrintStatement","concat","Constants","webUrl","headersRequestsJson","spacing","RadioGroup","options","amountContainer","direction","discountApplied","totalAmount","lblDiscountedTotal","lblTotal","paymentDue","lblPaymentDue","ButtonGroup","requireOnlinePayment","btnBillMeLater","btnPay","btnOk","Modal","disableBackdropClick","disableEscapeKeyDown","disableHeaderTypography","header","maxWidth","footer","showTitleBarClose","lblDiscountTitle","lblDiscountInstructions","map","coupon","ci","sm","md","lg","isNew","noDeleteButton","btnDeleteCoupon","isApplied","isModified","isValid","lblDiscountCouponInvalid","lblDiscountCouponRequired","label","lblDiscountCoupon","maxCharacters","onEnterPress","btnApplyCoupon","lblDetail","chargeCredits","Table","breakpoint","root","table","TableHead","TableRow","TableCell","component","lblCourse","lblCharge","lblAmount","find","c","isCredit","lblDiscount","TableBody","row","cci","length","sectionId","noBottomBorder","columnName","scope","isOther","eventId","eventName","formatTitleSection","lblOthers","Application","amount","lblProgramFees","discountAmount","TableFooter","colSpan","footerPayment","classnames","footerTextSpacing","formatDiscountedTotal","formatTotal","formatPaymentDue","withStyles","theme","createStyles","backgroundColor","Tokens","colorBrandNeutral200","height","marginBottom","spacing50","paddingBottom","paddingLeft","spacing40","paddingRight","paddingTop","width","colorTextAlertNeutral","spacing30","marginTop","sizingSmall","borderBottomColor","colorBrandNeutral100","spacing70","breakpoints","up","postProcessPayment","paymentRequest","resolver","resolveError","Request","post","postProcessTranscriptPayment","requestTranscripts","postProcessDonationPayment","giftCampaigns","ProcessPaymentModal","applicationId","conEdTransactionId","personId","returnUrl","termSessionId","periodId","split","paymentPeriod","sessionPeriodId","Number","termPeriodId","term","year","Requests","resolvePostProcessPayment","setLoading","onOk","replace","encodeURI","showError","setAlert","messageType","_this$props2","lblTitle","btnCancel","Alert","text","lblContentText","AuthStatus","authenticateUser","userName","password","changePassword","passwordChange","getAuthenticationMode","isForgotPasswordEnabled","sendForgotPasswordEmail","reCaptchaResponse","styles","forgotPasswordLink","forgotText","loginCard","animation","spacing80","loginText","reCaptchaContent","reCaptchaErrorText","signInButton","spacing20","spacingAlert","spacingTitle","SignIn","LayoutStore","setIsAuthenticated","setMenuOptions","showPageLoader","onAfterSignIn","URLSearchParams","search","get","newState","isLoading","includes","Redirect","toHome","OnFinishSignIn","event","alert","target","passwordModified","onChangePassword","userNameModified","onChangeUserName","isLoadingNext","isLoadingSignIn","onCloseModal","onGoSignUp","onGoSignUpModal","_this$userNameRef","showLoaderNext","resolveGetAuthenticationMode","userNameRef","current","focus","onNext","_this$passwordRef","_this$state2","authMode","variation","showLoaderSignIn","resolveAuthenticateUser","timeout","Math","floor","random","setTimeout","lblInvalidCredentials","hideLoaderSignIn","passwordRef","onSignIn","_this$userNameRef2","onUseAnotherAccount","_this$state3","accountValidations","errorCurrentPassword","newPassword","validations","PasswordValidation","validatePassword","PasswordConfirmationStore","getPasswordPolicy","validateConfirmPassword","confirmPassword","PasswordConfirmationActions","setPasswordValidation","hasErrors","isCurrentPwdNewPwd","showLoaderChangePassword","currentPassword","resolveChangePassword","onChangePasswordButton","_this$userNameRef3","onCloseChangePassword","getPasswordValidation","getPassword","onChangePasswordValidation","userNameRecovery","userNameRecoveryModified","onChangeUserNameRecovery","emailSent","openForgotPassword","_this$userNameRecover","userNameRecoveryRef","onClickForgotPassword","_this$state4","stepNumber","reCaptchaError","_this$userNameRef4","_this$passwordRef2","StoreMode","Identity","ActiveDirectory","onCloseForgotPassword","token","onRecaptchaChange","onReCaptchaError","_this$reCaptchaRef","_this$state5","isReCaptchaEnabled","reCaptchaRef","getValue","showLoaderSendEmail","resolveSendForgotPasswordEmail","onSendEmail","isLoadingChangePassword","isLoadingSendEmail","lblGenericError","hideAllLoaders","setResourcesByKey","mode","_this$passwordRef3","hideLoaderNext","ADFS","toADFSLogin","SAML","toSAMLLogin","showSignInError","_this$passwordRef4","authResponse","Success","changePasswordAtNextLogon","openChangePassword","InvalidCredentials","IsLocked","_authResponse$attempt","attempt","remainingLockedOutTime","formatLockedAccount","lblLocked","InvalidPassword","_authResponse$attempt2","remainingAttempts","formatInvalidAttempts","_this$state6","response","updatedSuccessfully","errors","ChangePasswordError","AlreadyUsed","isNotPreviousPassword","hideLoaderChangePassword","resolveIsForgotPasswordEnabled","reCaptchaSiteKey","hideLoaderSendEmail","addPasswordValidationListener","getResourcesByKey","uiCulture","getCultures","_this$state7","hideLoader","removePasswordValidationListener","title","content","button","_this$state8","loading","btnChangePassword","lblChangePassword","lblChangePasswordInstructions","PasswordConfirmation","route","weight","lblForgotPasswordTitle","btnClose","btnSendEmail","role","formatEmailSent","lblForgotPasswordInstructions","autoComplete","lblUserNameRequired","lblUserName","ref","ReCAPTCHA","hl","sitekey","onExpired","onErrored","lblReCaptchaRequired","lblLogInTitle","overModal","Paragraph","events","lblUseAnotherAccount","btnNext","btnSingIn","lblPasswordRequired","lblPassword","passwordToggle","btnForgot","Card","CardContent","withWidth","IPasswordPolicyErrors","getEmailRegExp","appArea","getReCaptchaSettings","postSignUpApplication","account","postSignUpConed","postValidatePassword","passwordModel","margin","marginLeft","popperText","spacingButtons","spacingInstructions","textAlign","SignUp","emailRegExp","firstName","firstNameModified","lastName","lastNameModified","email","emailInvalid","emailIsValid","emailModified","onChangeTextField","isLoadingSave","componentValidations","isValidRecaptcha","showLoaderSave","resolvePostSignUp","onCreateAccount","onGoSignIn","onGoSignInModal","resolveGetEmailRegExp","resultSignUp","onAfterSignUp","lblCreatedSuccessfully","userAccountStatus","unableToDefineUserName","cannotCreateAccount","userAlreadyExists","existingUser","hideLoaderSave","resolveGetReCaptchaSettings","peopleId","anchorEl","newAccountContent","reCaptchaElement","errorTextFirstName","errorFirstName","lblFirstNameRequired","errorTextLastName","errorLastName","lblLastNameRequired","errorTextEmail","errorEmail","lblEmailInvalid","lblExistingUser","lblEmailRequired","lblCreateAccount","btnCreateAccount","src","imagesCDN","lblCannotCreateAccount","noCompareAgainstPreviousPwd","topElements","lblContactInformation","lblFirstName","required","lblLastName","lblEmail","paginationComponent","bodyModal","addresses","hasSearchZipCode","pageNumber","pageSize","rowsPerPageOptions","totalAddress","zipCode","onChangePage","onChangeRowsPerPage","onClear","onClickLink","onSearch","btnSearch","btnClear","tableBody","forEach","address","j","lblZipCode","city","stateProvinceId","countryId","countyId","lblCity","lblState","lblCounty","county","lblCountry","country","lblNoResults","Pagination","count","page","rowsPerPage","onPageChange","onRowsPerPageChange","category","federalCategory","fontWeight","fontWeightBold","sectionIndex","dateTimeCulture","expandedPanelId","fields","governmentIdFormat","groupIndex","isExpansionPanel","isHorizontalAligned","shortDatePattern","stepIndex","onChangeCheckBox","onChangeDropDown","onChangeDateTimeField","onChangeExpansionPanel","onChangeListCheckbox","onChangeRadioGroup","onClickButton","onDeleteItem","elements","ids","sectionIndexes","sectionElements","sectionContainers","headerDeleteElement","headerTitleElements","firstHeaderTitleElement","getId","idStringArray","index","setHeaderTitleElements","field","isExpansionPanelHeader","lblNew","splice","componentType","selectedOption","findIndex","x","fillElements","fieldElement","groupErrors","groupId","lblPrimary","fieldSize","gridSize","substr","buttonId","isPostalCode","isRequired","String","lblSearch","format","placeholder","emptyOption","lblSelect","exist","option","Dropdown","multiple","allowMultipleSelection","checked","Checkbox","DatePicker","culture","idDelete","btnDelete","messageRequired","isCheck","chkElements","i","array","Object","values","FormControlLabel","control","FormControl","FormGroup","colorText","isWithLink","actionUrl","actions","action","_event","href","errorMessage","iped","ipedItem","ipedsEthnicityId","ipedsFederalCategoryId","elementsList","complexOptions","complexItem","childIsChecked","parentIsChecked","List","TextLink","alt","dangerouslySetInnerHTML","__html","sectionErrors","section","ExpansionPanel","applicationFormError","isSectionError","background","expandIcon","expanded","isWidthUp","setMultipleFields","firstSectionErrors","isFirstSectionErrors","buttonTop","groupTitleBottom","labelElement","instructionsElement","fieldGroup","fieldGroupIndex","firstDayOfWeek","onAddMore","isDisabled","isDisableButton","isMultiple","instructions","FieldsHandler","maximumAllowed","lblAddNew","containerDetails","padding","failedPayment","paymentTransaction","successPayment","onCloseFailedPayment","resourcesApplicationHandler","lblContentTextApplication","lblTitleDetails","Divider","lblDescription","lblAuthorizationCode","authorizationNumber","FieldsGroupHandler","backButtonMovil","boxStep","boxShadow","buttonContainer","buttonsContainerMovil","marginRight","buttonStep","cardRoot","fieldContainer","footerPadding","inline","mobileStepperContent","minHeight","saveButtonMargin","saveFooter","stepperDesktop","activeStep","components","saveMessage","showSaveButton","onBackStep","onClickSave","onClickStep","onNextStep","onSubmit","isReCaptchaSubmitEnabled","noContent","MessageStyled","classMessage","lblNotAvailable","steps","Array","step","fieldsGroupsElements","fieldsGroups","fieldsGroupsModal","isCompletedApplication","confirmationGroup","confirmationIndex","ApplicationCompletedModal","footerGroup","footerGroupIndex","accent","Media","query","mqXSmall","matches","MobileStepper","position","nextButton","fluid","lblNext","backButton","lblBack","MobileStepperTitle","feeAmount","isFlatFee","formatHasFee","formatHasFees","MobileStepperStep","MobileStepperLabel","StepProgress","nonLinear","orientation","Step","StepButton","StepLabel","isStepError","optional","formatCompleteStep","lblSubmit","StepContent","lblSave","icon","palette","active","cursor","marginRigth","attachments","numberOfAttachments","totalSize","onClickContinue","onClickInfo","onClickOpenFolder","onClickRemoveAttachment","lblName","lblType","lblSize","lblDelete","attachment","attachmentTitle","extension","fileSize","Tooltip","placement","applicationAttachmentId","lblChooseFile","lblSupportedFiles","lblAttachments","lblTotalSize","lblNoUploads","lblContinue","confirmationMessage","tableInstitutions","countries","etsCode","institutionName","institutions","states","totalInstitutions","onChangeDropDownETSSearch","onChangeTextFieldETSSearch","emptyOptionState","lblEmptyOptionState","emptyOptionCountry","lblEmptyOptionCountry","lblInstitutionName","lblETSCode","lblFICECode","Link","ficeCode","stateDesc","countryDesc","getAddresses","startIndex","getComponents","getSavedApplicationComponents","savedApplicationToken","postSubmit","application","postCreateSavedApplication","savedApplication","postCreateSaveApplicationNotification","urlToSend","formApplicationName","postCreateApplicationAttachment","applicationAttachment","postListApplicationAttachments","postDeleteApplicationAttachment","attachmentId","getApplicationAttachments","GetApplicationAttachmentTotals","getChildOptions","url","group","targetId","isApplicationForm","formId","getValidateScoreType","test","componentId","testId","getCountries","getStates","getInstitutions","stateId","institution","getGeneralSettings","getApplications","postDeleteSavedApplication","savedApplicationId","postUpdateSavedApplication","getStatusSettings","getSubmittedApplications","ApplicationFormView","paymentDetailModalOpen","onClosePaymentDetailModal","paymentModalOpenProcess","onClosePaymentModalProcess","fileSelector","document","createElement","supportedTypes","fileTypes","fileType","fileExtension","fileExt","setAttribute","onchange","onChangeFile","bind","buildFileSelector","mediaId","mediaTypeId","getMediaTypeId","inputFile","temporaryFileReader","FileReader","Promise","resolve","onload","encoded","repeat","readAsDataURL","readUploadedFile","_ref","_asyncToGenerator","_regeneratorRuntime","_callee","file","fileName","attachmentsTotalSizeNumber","totalNumberOfAttachments","bytes","fileContents","newFile","_context","prev","next","stopPropagation","preventDefault","files","lblTotalAttachmentsError","warning","toFixed","maxAttachmentSize","lblAttachmentsSizeError","lblAllAttachmentsSizeError","maxApplicationAttachmentSize","sent","fileContent","resolveCreateAttachment","t0","stop","_x","apply","arguments","click","applicationFormId","showAttachments","openSupportedFilesModal","onCloseSupportedFilesModal","fieldButtonId","fileId","openRemoveAttachmentDialog","onClickRemoveAttachmentButton","resolveRemoveAttachment","onCloseRemoveAttachmentModal","showSignIn","onCloseSignIn","showSignUp","onCloseSignUp","onOpenSignIn","onOpenSignUp","emailField","onSaveEmailField","onSaveApplication","currentTarget","openAddressSearchModal","selectedZipCode","onCloseAddressSearchModal","selectedFieldId","fieldId","assignFieldValue","onClickZipCodeLink","onChangeTextFieldAddressSearch","resolveGetAddress","total","previousSize","selectedEtsCode","selectedCity","selectedInstitutionName","openETSSearchModal","selectedCountry","selectedState","onCloseETSSearchModal","optionSelected","resolveGetInstitutions","newComponents","phoneFields","numRow","idFields","resolveLayoutReady","applicationTop","getElementById","scrollIntoView","layoutId","person","temporaryEmail","applicationFormSettingId","formLayoutId","RequestsApplication","resolveSaveIncompleteApplication","getIsAuthenticated","openEmailModal","hasValueEmailField","fieldsGroup","invalidEmail","emptyEmailField","onChangeTextFieldModal","_this$state9","setApplicationValues","isReCaptchaSubmitApplicationEnabled","allRequiredFields","reviewRequiredFields","governmentId","cleanGovernmentId","resolveSubmitApplication","onCloseEmailModal","onCloseNotAvailableModal","finishButtonId","onCloseConfirmationSavedModal","_this$state10","app","evaluateAppJs","eval","isUserDefined","customScript","NaN","date","_this$state11","cultures","fieldIndex","dateMinFormat","moment","add","toUpperCase","dateMaxFormat","dateOfBirth","setValues","cleanErrorMessages","formatDateOutOfRange","errorMessageRequired","visaExpiration","passportExpiration","fieldTestTaken","testScores","dateTaken","itemArrId","toDate","Date","errorMessageRange","dateTimeMin","_this$state12","valueSelected","_typeof","typeId","score","f","resolveValidateScore","checkBoxListIndex","checkBoxListField","ipedsList","ipeds","filter","childField","childEndPoint","resolveGetChildOptions","_this$state13","setIpedsValuesNestedCheckList","ipedNew","ipedIndex","itemToRemove","campuses","reviewCampus","campusIndex","campus","academicInterests","reviewAcademicInterest","setIpedsValuesCheckList","ipedsArray","ethnicity","_this$state14","onPrimaryButtonClick","_this$state15","emailRegExpression","match","errorMessageNotValid","onlyNum","RegExp","formerLastName","errorMessageFormat","lastNamePrefix","legalName","middleName","monthsInCountry","errorMessageNumeric","nickname","otherSource","fieldGroupTestScore","passportNumber","visaNumber","fieldHoursPerWeek","fieldWeeksPerYear","fieldYears","changeEmailText","_this$state16","_this$state17","_this$state18","_this$state19","expansionPanel","employeeCount","createNewSection","programsCount","phoneCount","initialGroupLengthTS","finalGroupLengthTS","newSetTS","slice","parentDropDownTS","childDropDownTS","testScoresCount","emergencyContactsCount","addressessCount","educationCount","initialGroupLength","activityCount","finalGroupLength","newSet","parentDropDown","childDropDown","relativesCount","groupLength","sectionNumber","deleteButton","isNumeric","onAddDeleteButton","panelId","_this$state20","componentName","firstPrimaryPhoneField","maxAdd","fieldIdName","isSectionField","errorMessageDuplicate","errorMessagePrimary","copiedField","newField","JSON","parse","stringify","copyField","errorTexId","fieldsErrors","isFieldError","_this$state21","fieldSectionIndex","sectionErrorIndex","fieldErrorIndex","programsValid","testScoresValid","validPhones","isValidEmploymentSection","emergencyContactsValid","ipedsValid","addressValid","userDefinedValid","educationValid","activityValid","relativeValid","residencyValid","isNaN","isDateValid","minDate","maxDate","isDateInRange","parentId","reviewPrograms","textErrorIndex","filteredControls","groupedControls","reduce","r","a","create","messageErrorIndex","reviewTestScores","some","reviewTestScoreCompleteness","reviewPhoneGroup","reviewIpeds","reviewEmployment","reviewEmergencyContacts","reviewAddress","isCustom","reviewUserDefined","reviewEducation","reviewActivities","reviewRelatives","reviewResidency","firstFieldsErrors","fieldError","sectionError","isGroupError","groupError","allErrors","especificErrors","education","fieldDefault","collegeAttendStatus","counselorId","countryOfBirth","gender","maritalStatus","passportCountryId","primaryCitizenship","primaryLanguage","prefix","religion","secondaryCitizenship","secondaryLanguage","period","sourceId","suffix","veteranStatus","visa","visaCountryId","isInterestedInExtracurricular","isInterestedInFinancialAid","isRetired","isSeekingDegree","policy","_this$state22","activityTypefield","activityField","positionHeldField","numberOfHoursPerWeekField","numberOfWeeksPerYearField","numberOfYearsField","participated9Field","participated10Field","participated11Field","participated12Field","participatedPostSecondaryField","activityList","activity","activityType","hoursPerWeek","weeksPerYear","numberOfYears","participatedGrade09","participatedGrade10","participatedGrade11","participatedGrade12","participatedPostsecondary","setApplicationActivitiesValues","_ret","_loop","activityItem","setApplicationActivitiesAdditional","v","activities","_this$state23","addressList","isPrimary","setApplicationAddress","setApplicationAddressValues","line1","line2","line3","line4","stateProvince","postalCode","_ret2","_loop2","setApplicationAddressAdditional","_this$state24","educationList","enrollment","setApplicationEducation","setApplicationEducationValues","startDate","endDate","curriculumId","honorsId","degreeId","dateTimeMax","_ret3","_loop3","setApplicationEducationAdditional","_this$state25","emergencyList","emergency","phoneNumber","firstNamefield","lastNameField","phoneField","suffixField","suffixId","middleNameField","lastNamePrefixField","relationshipField","relationshipId","prefixId","_ret4","_loop4","emergencyContacts","_this$state26","employmentList","employment","positionId","employerNamefield","employerPositionField","employerStartDateField","employerEndDateField","_ret5","_loop5","fieldsBySection","employments","hispanicAnswer","_this$state27","phoneList","phone","number","phoneTypeField","phoneCountryField","phoneNumberField","primaryPhoneField","_ret6","_loop6","phoneItem","phones","_this$state28","programList","program","programId","commintmentField","commitmentId","_loop7","programs","_this$state29","relativeList","relative","attendedInstitution","relationFirstName","relationLastName","relationType","setApplicationRelative","setApplicationRelativeValues","relationPrefix","relationSuffix","relationMiddleName","relationLastNamePrefix","_ret7","_loop8","setApplicationRelativeAdditional","relatives","residencyList","residency","setApplicationResidency","residencyPreference","foodPlanInterest","dormPlanInterest","dormCampus","dormBuilding","validCompleteness","_i","_Object$keys","keys","keyIndex","scoreA","fieldsPopulated","every","fieldsEmpty","identical","scoreB","k","fieldA","fieldB","userDefined","columnLabel","columnType","columnValue","isUploading","maxLength","userDefinedIndex","dataType","campusList","interestIndex","interestList","interest","addressTypefield","houseNumberField","houseNumber","addressLine1Field","addressLine2Field","addressLine3Field","addressLine4Field","addressCityField","stateProvinceField","postalCodeField","countyIdField","addressCountryField","degreefield","curriculumField","honorsField","startDateField","endDateField","institutionField","etsCodeField","cityField","stateField","countryField","ficeCodeField","relativeItem","residencyPreferenceField","foodPlanInterestField","dormPlanInterestField","dormCampusField","dormBuildingField","prefixField","firstNameField","attendedInstitutionField","ipedsCheckList","ipedsNestedCheckboxList","_this$state30","lblPageTitle","hdnAppId","remove","resolveGetComponents","hdnTransactionId","hdnTransactionStatus","hdnTransactionAmount","hdnTransactionDescription","hdnTransactionAuthorizationNumber","hdnTransactionReturnUrl","transactionId","paymentModalOpenFail","paymentModalOpenSuccess","hdnSavedApplicationToken","noResources","resolveCountries","getRowsPerPageOptions","overallCount","canSaveApplication","confirmationSaveMessage","footerSaveMessage","stepTitle","_this$state31","results","resolveStates","origin","resolveCreateSaveApplicationNotification","openConfirmationSavedModal","badJsonResult","allowAttachment","resolveGetListApplicationAttachments","g","appAttachmentsViewModel","resolveGetAttachmentTotals","attachmentsTotalSize","appAttachmentTotalsViewModel","totalAttachmentSize","totalAttachmentSizeNumber","resolveGetGeneralSettings","general","ready","getLayoutReady","layoutNoReady","onLayoutReady","removeLayoutReadyListener","idMainPage","addLayoutReadyListener","expansionPanelHeaders","hasPersonId","openNotAvailableModal","maxValue","processPaymentModal","addressSearchModal","etsSearchModal","confirmationSavedModal","emailModal","notAvailableModal","supportedFiles","supportedFilesModal","attachmentsComponent","removeAttachmentModal","signInModal","signUpModal","paymentInfoModal","_this$state32","AddressSearchModal","onChangePageAddress","onClearAddress","onSearchAddress","ETSSearchModal","onClearInstitution","onSearchInstitution","ConfirmationSavedModal","lblSaveApplication","lblSaveApplicationInstructions","lblSaveApplicationEmptyEmailIns","lblEnterEmail","lblInvalidEmal","lblEmailAddress","lblEmptyEmailAddress","lblOk","lblNotAvailableMessage","supportedFilesBody","availableFileType","fExt","lblClose","lblSupportedFilesTitle","Attachments","ConfirmationDialog","contentText","lblRemoveConfirmation","primaryActionOnClick","primaryActionText","lblAcceptConfirmation","secondaryActionOnClick","secondaryActionText","lblCancelConfirmation","lblRemoveTitle","ApplicationHandler","applicationHandler","Layout","hideHeader","showCart","showNotifications","ApplicationFormViewWithLayout","withLayout","ReactDOM","webpackContext","req","webpackContextResolve","__webpack_require__","o","Error","module","exports","__webpack_module_cache__","moduleId","cachedModule","loaded","__webpack_modules__","m","O","chunkIds","fn","priority","notFulfilled","Infinity","fulfilled","n","getter","__esModule","d","definition","defineProperty","enumerable","globalThis","Function","obj","prop","prototype","hasOwnProperty","Symbol","toStringTag","nmd","paths","children","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","self","nc","__webpack_exports__"],"sourceRoot":""}